open-index/open-npm huggingface dataset:
npm package: @onthecut/crt-notice-scraper
Description: Canal and River Trust (CRT) Notice Scraper
Author: Ben Evans
Latest version: 2.1.8

# onthecut / crt-notice-scraper

> Canal and River Trust (CRT) Notice Scraper

## Install

```
npm install @onthecut/crt-notice-scraper
```

## API

```js
import {
    getNotices,
    getNotice
} from '@onthecut/crt-notice-scraper';

// Retreive all notice summaries (CRT Notice Search Results)
const notices = await getNotices()

// Get detailed information on individual notices
const url = 'https://canalrivertrust.org.uk/notices/14494-boston-lock';
const notice = await getNotice(url);
```

## Related

* [CRT Notices Website](https://canalrivertrust.org.uk/notices)
* [CRT Open Data](https://data-canalrivertrust.opendata.arcgis.com/)

## Licence

MIT
npm package: @onthecut/crt-open-data
Description: Canal and River Trust (CRT) Canals
Latest version: 1.0.0

# onthecut / crt-open-data

> Canal and River Trust Open Data Loader

## Install

    npm install @onthecut/crt-open-data

## API

```js
import loadDataset, { DATASETS } from '@onthecut/crt-open-data';

const canals = await loadDataset('canals');
// >
// { type: 'FeatureCollection',
//  features:
//   [ { type: 'Feature', properties: [Object], geometry: [Object] },
//     { type: 'Feature', properties: [Object], geometry: [Object] },
// ...
```

## Datasets

- canals
- canals-km
- tunnel-portals-public
- winding-holes-public
- boat-lift-public
- dry-docks-public
- lakes-ponds-and-fisheries-public
- canal-river-trust-planning-buffer
- pumping-stations-public
- tunnels-public
- reservoirs-public
- locks-public
- bridges-public
- aqueducts-public
- sluices-public
- weirs-public
- culverts-public
- embankments-public
- outfalls-public
- wharves-public
- docks-public
- slipways-public
- lakes-ponds-and-fisheries-view-public
- embankments-view-public
- bridges-view-public


## Licence

The licences covering CRTs open data can be found on the relevant dataset page on https://data-canalrivertrust.opendata.arcgis.com.

This data loader module is released under the MIT licence.
npm package: @ontik/logger
Description: Ontik logger library
Author: HaoLD
Latest version: 1.0.0

# @top-review/logger

Thư viện logger production-ready cho Node.js applications.

## Cài đặt

```bash
npm install @top-review/logger
```

## Sử dụng cơ bản

```typescript
import { createLogger } from '@top-review/logger';

const logger = createLogger();

logger.info('Hello World');
logger.error('Error message', { error: 'details' });
```

## Sử dụng với Express

```typescript
import express from 'express';
import { createLoggerMiddleware } from '@top-review/logger';

const app = express();
const loggerMiddleware = createLoggerMiddleware();

app.use(loggerMiddleware.requestLoggerMiddleware);
app.use(loggerMiddleware.errorLoggerMiddleware);
```

## Cấu hình

```typescript
import { createRequestLogger } from '@top-review/logger';

const requestLogger = createRequestLogger({
    enabled: true,
    logLevel: 'info',
    logRequests: true,
    logResponses: true,
    performanceThreshold: 1000
});
```

## Environment Variables

- `LOG_LEVEL`: Log level (info, debug, warn, error)
- `REQUEST_LOGGING_ENABLED`: Enable/disable request logging
- `REQUEST_LOG_LEVEL`: Request log level
- `PERFORMANCE_THRESHOLD`: Performance threshold in ms
- `SANITIZE_SENSITIVE_DATA`: Enable data sanitization
npm package: @ontola/memoized-factory
Description: RDF Factory with neat memory usage and good cpu performance.
Latest version: 2.1.1

# `@ontola/memoized-factory`

[RDFJS compatible data factory](http://rdf.js.org/data-model-spec/) which implements memoization
based on the term's value and incrementing counters. Once a term is created the same instance will
be returned for future requests.

This saves memory and allows comparison by reference (`===`) which is great for browsers on mobile
devices, but can cause out of memory exceptions for long running processes since the current
implementation will always hold a strong reference to the created objects (I.e. they can't be
garbage collected).

See [@ontologies/core](https://npmjs.com/package/@ontologies/core) for more info on usage.

## Usage
Put the following in a file;

```javascript
/* useMemoizedHashFactory.js */
import singletonInstance from "@ontola/memoized-factory";
import { setup } from "@ontologies/core";

setup(singletonInstance)
```

It is important to import the code which calls `setup` before importing any of the
`@ontologies/package` helpers, since their exports use the factory which you pass to `setup`;

```javascript
// This must be done first
import "./useMemoizedFactory"

// This import will use the factory you passed to `setup`.
import schema from "@ontologies/schema"
```
npm package: @ontola/memoized-hash-factory
Description: RDF Factory optimized for memory usage.
Latest version: 2.1.0

# `@ontola/memoized-hash-factory`

[RDFJS compatible data factory](http://rdf.js.org/data-model-spec/) which implements memoization
based on the term's hash. Once a term is created the same instance will be returned for future
requests.

This saves memory and allows comparison by reference (`===`) which is great for browsers on mobile
devices, but can cause out of memory exceptions for long running processes since the current
implementation will always hold a strong reference to the created objects (I.e. they can't be
garbage collected).

See [@ontologies/core](https://npmjs.com/package/@ontologies/core) for more info on usage.

## Usage
Put the following in a file;

```javascript
/* useMemoizedHashFactory.js */
import singletonInstance from "@ontola/memoized-hash-factory";
import { setup } from "@ontologies/core";

setup(singletonInstance)
```

It is important to import the code which calls `setup` before importing any of the
`@ontologies/package` helpers, since their exports use the factory which you pass to `setup`;

```javascript
// This must be done first
import "./useMemoizedHashFactory"

// This import will use the factory you passed to `setup`.
import schema from "@ontologies/schema"
```