open-index/open-npm huggingface dataset:
npm package: @natlibfi/aleph-change-listener
Description: A module to listen for record changes in Aleph ILS
Latest version: 1.0.2-alpha.4

# A module to listen for record changes in Aleph ILS [![NPM Version](https://img.shields.io/npm/v/@natlibfi/aleph-change-listener.svg)](https://npmjs.org/package/@natlibfi/aleph-change-listener) [![Build Status](https://travis-ci.org/NatLibFi/aleph-change-listener.svg)](https://travis-ci.org/NatLibFi/aleph-change-listener)

A module to listen for record changes in Aleph ILS

# Installation

Oracle instantclient installed into /opt/instantclient_12_2
```
export OCI_LIB_DIR=/opt/instantclient_12_2
export OCI_INC_DIR=/opt/instantclient_12_2/sdk/include

npm install
```

# Running

The tnsnames.ora file must be used for connection. This cane be done with TNS_ADMIN.

Example:
```
TNS_ADMIN=`pwd` LD_LIBRARY_PATH=/opt/instantclient_12_2/ node auth-sync-service.js
```

Example of tnsnames.ora 
```
$ cat tnsnames.ora 
tunnel =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
   (CONNECT_DATA =
     (SID = ALEPH20)
   )
 )
 ```
 This example uses oracle in localhost

## License and copyright

Copyright (c) 2017 **University Of Helsinki (The National Library Of Finland)**

This project's source code is licensed under the terms of  **Apache License 2.0**.
npm package: @natlibfi/aleph-record-caretaker
Description: A service that applies Melinda-specific conversions when records change in Aleph
Author: The National Library of Finland
Latest version: 1.0.3

# A service that applies Melinda-specific conversions when records change in Aleph [![NPM Version](https://img.shields.io/npm/v/@natlibfi/aleph-record-caretaker.svg)](https://npmjs.org/package/aleph-record-caretaker) [![Build Status](https://travis-ci.org/NatLibFi/aleph-record-caretaker.svg)](https://travis-ci.org/NatLibFi/aleph-record-caretaker)

# Installation

This system requires oracle connections. Check instructions for installing [node-oracledb](https://github.com/oracle/node-oracledb).

Installation in short:

Oracle instantclient installed into /opt/instantclient_12_2
```
export OCI_LIB_DIR=/opt/instantclient_12_2
export OCI_INC_DIR=/opt/instantclient_12_2/sdk/include

npm install
```

# Running

The tnsnames.ora file must be used for connection. This can be done with TNS_ADMIN environment variable.

Example:
```
TNS_ADMIN=`pwd` LD_LIBRARY_PATH=/opt/instantclient_12_2/ node index.js
```

Example of tnsnames.ora 
```
$ cat tnsnames.ora 
tunnel =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
   (CONNECT_DATA =
     (SID = ALEPH20)
   )
 )
 ```
 This example uses oracle in localhost. The reposityory contains file called `tnsnames.ora.template` which can be used to make the tnsname.ora with sed, for example: 
 ```
 cat tnsnames.ora.template | sed 's/%HOST%/tunnel/g' | sed 's/%SID%/ALEPH20/g' | sed 's/%PORT%/1521/g'
 ```

## Configuration
The following environment variables are used to configure the system:

| name | mandatory | description | default |
|---|---|---|---|
| Z106_BASES | | Z106 bases for polling | FIN01\|FIN10\|FIN11 |
| Z115_BASE | | Z115 base for polling | USR00 |
| CURSOR_FILE | | file for saving the polling cursors | .aleph-changelistener-cursors.json |
| Z106_STASH_PREFIX | | file for saving intermediate info about Z106 | .z106_stash |
| POLL_INTERVAL_MS | | wait time between pollings | 5000 |
| ORACLE_USER | x | oracle username | -
| ORACLE_PASS | x | oracle password | -
| ORACLE_CONNECT_STRING | x | oracle connection string | -
| X_SERVER | x | Aleph X-server url | -
| ALEPH_CARETAKER_USER | x | Aleph username | -
| ALEPH_CARETAKER_PASS | x | Aleph password | -
| MELINDA_API | | melinda api endpoint | http://libtest1.csc.fi:8992/API

Since the Z106 resolution is only 60 seconds in Aleph, the changes that have already been handled are saved so that nothing is handled multiple times.

The ORACLE_CONNECT_STRING must match the connection string in the tnsnames.ora file. With above tnsnames.ora it should be "tunnel".

## License and copyright

Copyright (c) 2017 **University Of Helsinki (The National Library Of Finland)**

This project's source code is licensed under the terms of **Apache License 2.0**.
npm package: @natlibfi/ekirjasto-opds-feed-parser
Description: E-kirjasto OPDS feed parser
Author: The National Library of Finland
Latest version: 2.1.0

# E-kirjasto OPDS feed parser

Javascript OPDS feed parser.

The National Library of Finland's fork of the [NYPL-Simplified/opds-feed-parser](https://github.com/NYPL-Simplified/opds-feed-parser).

Covers [OPDS 1.1 version](http://opds-spec.org/specs/opds-catalog-1-1-20110627/) and E-kirjasto specific additions and modifications.

## Usage

```sh
npm install @natlibfi/ekirjasto-opds-feed-parser
```

Example:

```js
import OPDSParser, { OPDSFeed, OPDSEntry } from "ekirjasto-opds-feed-parser";

const parser = new OPDSParser();

async function fetchOPDS(url: string): Promise<OPDSEntry | OPDSFeed> {
  const response = await fetch(url);
  const text = await response.text();
  
  try {
      // parse the text into an opds feed or entry
      return await parser.parse(text);
  } catch (error) {
      // handle error
  }
}
```

## Setup

Requires Node 20 or higher.

It is recommended to use [`nvm`](https://github.com/nvm-sh/nvm) to install different versions of Node needed on your machine.

## License

```text
Copyright © 2025 The New York Public Library, Astor, Lenox, Tilden Foundations and The National Library of Finland (Kansalliskirjasto)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```