@harperfast/harper-pro 5.0.4 → 5.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/AGENTS.md +107 -0
- package/core/CLAUDE.md +1 -0
- package/core/package-lock.json +82 -70
- package/core/security/keys.js +1 -1
- package/dist/core/security/keys.js +1 -1
- package/dist/replication/replicationConnection.js +1 -0
- package/dist/replication/replicationConnection.js.map +1 -1
- package/dist/replication/setNode.js +1 -1
- package/dist/replication/setNode.js.map +1 -1
- package/dist/replication/subscriptionManager.js +1 -0
- package/dist/replication/subscriptionManager.js.map +1 -1
- package/npm-shrinkwrap.json +936 -867
- package/package.json +13 -13
- package/replication/replicationConnection.ts +1 -0
- package/replication/setNode.ts +1 -1
- package/replication/subscriptionManager.ts +1 -0
- package/studio/web/assets/{index-CjeZNBFc.js → index-D07pIqJt.js} +2 -2
- package/studio/web/assets/{index-CjeZNBFc.js.map → index-D07pIqJt.js.map} +1 -1
- package/studio/web/index.html +1 -1
package/core/AGENTS.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## What This Is
|
|
8
|
+
|
|
9
|
+
Harper is a Node.js unified development platform that fuses a document database (RocksDB-backed), in-memory cache, application runtime, and messaging broker (WebSockets, MQTT, NATS) into a single in-process runtime. This directory is the open-source core (`harper` npm package, Apache-2.0), which is the base for the enterprise `harper-pro` wrapper above it.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Commands
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Build
|
|
17
|
+
npm run build # TypeScript → dist/ via tsconfig.build.json
|
|
18
|
+
npm run build:watch # Incremental watch build
|
|
19
|
+
|
|
20
|
+
# Lint / Format
|
|
21
|
+
npm run lint # oxlint (warnings = errors)
|
|
22
|
+
npm run lint:fix # Auto-fix
|
|
23
|
+
npm run format:write # Prettier
|
|
24
|
+
|
|
25
|
+
# Test — run specific suites
|
|
26
|
+
npm run test:unit # All unit tests (mocha)
|
|
27
|
+
npm run test:unit:main # Core unit tests (excludes apiTests, lmdb, resources)
|
|
28
|
+
npm run test:unit:resources # Resource layer tests
|
|
29
|
+
npm run test:unit:server # Server layer tests
|
|
30
|
+
npm run test:unit:dataLayer # Data layer tests
|
|
31
|
+
npm run test:unit:components # Component/plugin system tests
|
|
32
|
+
npm run test:unit:security # Security tests
|
|
33
|
+
npm run test:unit:apitests # API tests (stops running server first)
|
|
34
|
+
npm run test:unit:lmdb # LMDB storage engine tests
|
|
35
|
+
npm run test:integration # Full integration test suite
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Run a single test file directly:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npx mocha unitTests/resources/mytest.js
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
TypeScript is stripped at runtime via `--conditions=typestrip` (Node.js native type stripping) — no compilation required for development. Use `npm run test:unit:typestrip` to run tests with this mode.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Architecture
|
|
49
|
+
|
|
50
|
+
### Layers (top to bottom)
|
|
51
|
+
|
|
52
|
+
**Components** (`components/`)
|
|
53
|
+
The plugin/application loader. Applications export a `handleApplication(scope)` function. `Scope` is the primary object passed to apps; it exposes:
|
|
54
|
+
|
|
55
|
+
- `scope.options` — `OptionsWatcher` for live-reloaded YAML config
|
|
56
|
+
- `scope.resources` — access to database tables and registered resources
|
|
57
|
+
- `scope.server` — the HTTP server handle
|
|
58
|
+
|
|
59
|
+
Files within a component are discovered via micromatch glob patterns and automatically mapped to URL paths.
|
|
60
|
+
|
|
61
|
+
**Server** (`server/`)
|
|
62
|
+
Two HTTP stacks coexist:
|
|
63
|
+
|
|
64
|
+
- **Native layer** (`server/http.ts`) — direct socket handling for HTTP/1.1, HTTPS, HTTP/2, and WebSockets in one path; highest performance
|
|
65
|
+
- **Fastify layer** (`server/fastifyRoutes.ts`) — used for legacy custom functions; wraps Fastify with autoload
|
|
66
|
+
|
|
67
|
+
All inbound protocols (REST, GraphQL, MQTT, NATS, WebSockets) eventually resolve to the same **Resource interface**.
|
|
68
|
+
|
|
69
|
+
**Resources** (`resources/`)
|
|
70
|
+
The universal abstraction. Everything that can be queried or mutated — database tables, caches, message topics, custom endpoints — extends `Resource` (`resources/Resource.ts`).
|
|
71
|
+
|
|
72
|
+
Static methods (`Resource.get`, `Resource.put`, `Resource.post`, `Resource.delete`, `Resource.patch`, `Resource.subscribe`) are the entry points and are automatically wrapped with `transactional()` for transaction management. Override instance methods (`get`, `put`, etc.) for custom behavior.
|
|
73
|
+
|
|
74
|
+
`Table.ts` is the database table implementation (~177KB) — the most complex file in the codebase.
|
|
75
|
+
|
|
76
|
+
**Data Layer** (`dataLayer/`)
|
|
77
|
+
Legacy translation modules plus SQL translation (`sqlTranslator/`) via AlaSQL; these should be avoided. The storage engine is selectable via `HARPER_STORAGE_ENGINE=lmdb`.
|
|
78
|
+
|
|
79
|
+
**Configuration** (`config/`)
|
|
80
|
+
YAML-based. `configUtils.js` parses config; `RootConfigWatcher.ts` enables hot reload. Environment variables override YAML values.
|
|
81
|
+
|
|
82
|
+
**Utility** (`utility/`)
|
|
83
|
+
Logging, error types, helpers, async utilities.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Key Patterns
|
|
88
|
+
|
|
89
|
+
**`transactional()` wrapper** — All static Resource methods go through this. It ensures async operations run inside a database transaction. Use `contextStorage` (AsyncLocalStorage) to access the current transaction context without passing it explicitly.
|
|
90
|
+
|
|
91
|
+
**Resource discovery** — A component's config file maps glob patterns to URL paths. Files matching a pattern become routable resources automatically; no explicit route registration is needed.
|
|
92
|
+
|
|
93
|
+
**Lazy loading** — GraphQL, secure sandboxing, and tarball extraction are imported on demand. Do not add top-level imports for these modules.
|
|
94
|
+
|
|
95
|
+
**TypeScript + type stripping** — Source files are `.ts` but Node.js runs them directly via type stripping in development. The `dist/` directory is the compiled production artifact. Both `.ts` and legacy `.js` files coexist; new code should be `.ts`.
|
|
96
|
+
|
|
97
|
+
**Minimal dependencies** — `dependencies.md` documents the rationale for every dependency. Adding a new dependency requires justification; implementing something ourselves is often preferred.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Non-Obvious Constraints
|
|
102
|
+
|
|
103
|
+
- `Resource` static methods must stay wrapped with `transactional()` — removing this breaks transaction isolation.
|
|
104
|
+
- Worker threads (`server/threads/`) receive `workerData.noServerStart = true` to prevent recursive server startup; never start the server inside a worker.
|
|
105
|
+
- `contextStorage` (AsyncLocalStorage) carries per-request context (user, transaction) across async boundaries — this is how authorization and transactions work without explicit parameter threading.
|
|
106
|
+
- Tests under `unitTests/apiTests/` require the server to be stopped first (`node ./dist/bin/harper.js stop`) — `test:unit:apitests` does this automatically.
|
|
107
|
+
- `@export` annotation on a schema class auto-generates a REST API for that table — this is the primary developer-facing API.
|
package/core/CLAUDE.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Please see AGENTS.md for guidance on this project.
|
package/core/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "harper",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.4",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "harper",
|
|
9
|
-
"version": "5.0.
|
|
9
|
+
"version": "5.0.4",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@aws-sdk/client-s3": "^3.1012.0",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"@fastify/cors": "^11.2.0",
|
|
19
19
|
"@fastify/static": "^9.0.0",
|
|
20
20
|
"@harperfast/extended-iterable": "^1.0.1",
|
|
21
|
-
"@harperfast/rocksdb-js": "^1.0.
|
|
21
|
+
"@harperfast/rocksdb-js": "^1.0.1",
|
|
22
22
|
"@turf/area": "6.5.0",
|
|
23
23
|
"@turf/boolean-contains": "6.5.0",
|
|
24
24
|
"@turf/boolean-disjoint": "6.5.0",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"json-bigint-fixes": "1.1.0",
|
|
54
54
|
"jsonata": "1.8.7",
|
|
55
55
|
"jsonwebtoken": "9.0.3",
|
|
56
|
-
"lmdb": "3.5.
|
|
56
|
+
"lmdb": "3.5.4",
|
|
57
57
|
"lodash": "^4.17.23",
|
|
58
58
|
"mathjs": "11.12.0",
|
|
59
59
|
"micromatch": "^4.0.8",
|
|
@@ -2529,9 +2529,9 @@
|
|
|
2529
2529
|
"license": "Apache-2.0"
|
|
2530
2530
|
},
|
|
2531
2531
|
"node_modules/@harperfast/rocksdb-js": {
|
|
2532
|
-
"version": "1.0.
|
|
2533
|
-
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js/-/rocksdb-js-1.0.
|
|
2534
|
-
"integrity": "sha512-
|
|
2532
|
+
"version": "1.0.1",
|
|
2533
|
+
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js/-/rocksdb-js-1.0.1.tgz",
|
|
2534
|
+
"integrity": "sha512-XqSdZC8ChvqBcOjTAQafmVJaVKf4govEwcCiiqAOJ35cUCU8jcM6MnuPbx7mbQRQ39qecHpGewaDxfIM1LIJFQ==",
|
|
2535
2535
|
"license": "Apache-2.0",
|
|
2536
2536
|
"dependencies": {
|
|
2537
2537
|
"@harperfast/extended-iterable": "1.0.3",
|
|
@@ -2542,20 +2542,20 @@
|
|
|
2542
2542
|
"node": ">=18"
|
|
2543
2543
|
},
|
|
2544
2544
|
"optionalDependencies": {
|
|
2545
|
-
"@harperfast/rocksdb-js-darwin-arm64": "1.0.
|
|
2546
|
-
"@harperfast/rocksdb-js-darwin-x64": "1.0.
|
|
2547
|
-
"@harperfast/rocksdb-js-linux-arm64-glibc": "1.0.
|
|
2548
|
-
"@harperfast/rocksdb-js-linux-arm64-musl": "1.0.
|
|
2549
|
-
"@harperfast/rocksdb-js-linux-x64-glibc": "1.0.
|
|
2550
|
-
"@harperfast/rocksdb-js-linux-x64-musl": "1.0.
|
|
2551
|
-
"@harperfast/rocksdb-js-win32-arm64": "1.0.
|
|
2552
|
-
"@harperfast/rocksdb-js-win32-x64": "1.0.
|
|
2545
|
+
"@harperfast/rocksdb-js-darwin-arm64": "1.0.1",
|
|
2546
|
+
"@harperfast/rocksdb-js-darwin-x64": "1.0.1",
|
|
2547
|
+
"@harperfast/rocksdb-js-linux-arm64-glibc": "1.0.1",
|
|
2548
|
+
"@harperfast/rocksdb-js-linux-arm64-musl": "1.0.1",
|
|
2549
|
+
"@harperfast/rocksdb-js-linux-x64-glibc": "1.0.1",
|
|
2550
|
+
"@harperfast/rocksdb-js-linux-x64-musl": "1.0.1",
|
|
2551
|
+
"@harperfast/rocksdb-js-win32-arm64": "1.0.1",
|
|
2552
|
+
"@harperfast/rocksdb-js-win32-x64": "1.0.1"
|
|
2553
2553
|
}
|
|
2554
2554
|
},
|
|
2555
2555
|
"node_modules/@harperfast/rocksdb-js-darwin-arm64": {
|
|
2556
|
-
"version": "1.0.
|
|
2557
|
-
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-darwin-arm64/-/rocksdb-js-darwin-arm64-1.0.
|
|
2558
|
-
"integrity": "sha512-
|
|
2556
|
+
"version": "1.0.1",
|
|
2557
|
+
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-darwin-arm64/-/rocksdb-js-darwin-arm64-1.0.1.tgz",
|
|
2558
|
+
"integrity": "sha512-b7Tn2TZgQ23iwIv6BQHnaXUgoUSaJ7A26GW0kjhTq8ylK7YzdtbFW1pSkAIQU5e9mQIXhbo0/N+u+MLCvafGgQ==",
|
|
2559
2559
|
"cpu": [
|
|
2560
2560
|
"arm64"
|
|
2561
2561
|
],
|
|
@@ -2569,9 +2569,9 @@
|
|
|
2569
2569
|
}
|
|
2570
2570
|
},
|
|
2571
2571
|
"node_modules/@harperfast/rocksdb-js-darwin-x64": {
|
|
2572
|
-
"version": "1.0.
|
|
2573
|
-
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-darwin-x64/-/rocksdb-js-darwin-x64-1.0.
|
|
2574
|
-
"integrity": "sha512-
|
|
2572
|
+
"version": "1.0.1",
|
|
2573
|
+
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-darwin-x64/-/rocksdb-js-darwin-x64-1.0.1.tgz",
|
|
2574
|
+
"integrity": "sha512-VswnRKHvvbgheb/PNy4ZtfNdLvqQ0eUPwY5jxvbgMZy+yD030FO84IbOvBaKl7Z8u2GpI2p9wG9/qwLtmz8XaQ==",
|
|
2575
2575
|
"cpu": [
|
|
2576
2576
|
"x64"
|
|
2577
2577
|
],
|
|
@@ -2585,12 +2585,15 @@
|
|
|
2585
2585
|
}
|
|
2586
2586
|
},
|
|
2587
2587
|
"node_modules/@harperfast/rocksdb-js-linux-arm64-glibc": {
|
|
2588
|
-
"version": "1.0.
|
|
2589
|
-
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-linux-arm64-glibc/-/rocksdb-js-linux-arm64-glibc-1.0.
|
|
2590
|
-
"integrity": "sha512-
|
|
2588
|
+
"version": "1.0.1",
|
|
2589
|
+
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-linux-arm64-glibc/-/rocksdb-js-linux-arm64-glibc-1.0.1.tgz",
|
|
2590
|
+
"integrity": "sha512-rKCGOpdrOVqCOahWAGk+v3aCRNV0acUwJ+EBnEXMlsiMubpFt0wxQg+EWIhWaOyZQoQ/omCSXzRLXBS/G0L6HA==",
|
|
2591
2591
|
"cpu": [
|
|
2592
2592
|
"arm64"
|
|
2593
2593
|
],
|
|
2594
|
+
"libc": [
|
|
2595
|
+
"glibc"
|
|
2596
|
+
],
|
|
2594
2597
|
"license": "Apache-2.0",
|
|
2595
2598
|
"optional": true,
|
|
2596
2599
|
"os": [
|
|
@@ -2601,12 +2604,15 @@
|
|
|
2601
2604
|
}
|
|
2602
2605
|
},
|
|
2603
2606
|
"node_modules/@harperfast/rocksdb-js-linux-arm64-musl": {
|
|
2604
|
-
"version": "1.0.
|
|
2605
|
-
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-linux-arm64-musl/-/rocksdb-js-linux-arm64-musl-1.0.
|
|
2606
|
-
"integrity": "sha512-
|
|
2607
|
+
"version": "1.0.1",
|
|
2608
|
+
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-linux-arm64-musl/-/rocksdb-js-linux-arm64-musl-1.0.1.tgz",
|
|
2609
|
+
"integrity": "sha512-ylJruv9WBvT4CACvXlLW610O53z3d2otfpnRSOcGBQVzZsGbd9n1L1cEZbAiiyJPBCFk5tBCueU6n7w6Mnh4Qg==",
|
|
2607
2610
|
"cpu": [
|
|
2608
2611
|
"arm64"
|
|
2609
2612
|
],
|
|
2613
|
+
"libc": [
|
|
2614
|
+
"musl"
|
|
2615
|
+
],
|
|
2610
2616
|
"license": "Apache-2.0",
|
|
2611
2617
|
"optional": true,
|
|
2612
2618
|
"os": [
|
|
@@ -2617,12 +2623,15 @@
|
|
|
2617
2623
|
}
|
|
2618
2624
|
},
|
|
2619
2625
|
"node_modules/@harperfast/rocksdb-js-linux-x64-glibc": {
|
|
2620
|
-
"version": "1.0.
|
|
2621
|
-
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-linux-x64-glibc/-/rocksdb-js-linux-x64-glibc-1.0.
|
|
2622
|
-
"integrity": "sha512-
|
|
2626
|
+
"version": "1.0.1",
|
|
2627
|
+
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-linux-x64-glibc/-/rocksdb-js-linux-x64-glibc-1.0.1.tgz",
|
|
2628
|
+
"integrity": "sha512-bx3q7VYPWyq1HhhhHIEqEMPIRR1DHn0VEuOmyrHgxaaRhpk21TECSgQDGe1DZYmppJfvj6IRI5pdfQjJL/pZNw==",
|
|
2623
2629
|
"cpu": [
|
|
2624
2630
|
"x64"
|
|
2625
2631
|
],
|
|
2632
|
+
"libc": [
|
|
2633
|
+
"glibc"
|
|
2634
|
+
],
|
|
2626
2635
|
"license": "Apache-2.0",
|
|
2627
2636
|
"optional": true,
|
|
2628
2637
|
"os": [
|
|
@@ -2633,12 +2642,15 @@
|
|
|
2633
2642
|
}
|
|
2634
2643
|
},
|
|
2635
2644
|
"node_modules/@harperfast/rocksdb-js-linux-x64-musl": {
|
|
2636
|
-
"version": "1.0.
|
|
2637
|
-
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-linux-x64-musl/-/rocksdb-js-linux-x64-musl-1.0.
|
|
2638
|
-
"integrity": "sha512-
|
|
2645
|
+
"version": "1.0.1",
|
|
2646
|
+
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-linux-x64-musl/-/rocksdb-js-linux-x64-musl-1.0.1.tgz",
|
|
2647
|
+
"integrity": "sha512-nwoCS1/k7a43NmrKk1bPOu5V/lkENVs6fXGh4y0mgQfjcQ+csJhzXnlFQaE4RTSD0DLWuob7EoBaA0ipF5xLJQ==",
|
|
2639
2648
|
"cpu": [
|
|
2640
2649
|
"x64"
|
|
2641
2650
|
],
|
|
2651
|
+
"libc": [
|
|
2652
|
+
"musl"
|
|
2653
|
+
],
|
|
2642
2654
|
"license": "Apache-2.0",
|
|
2643
2655
|
"optional": true,
|
|
2644
2656
|
"os": [
|
|
@@ -2649,9 +2661,9 @@
|
|
|
2649
2661
|
}
|
|
2650
2662
|
},
|
|
2651
2663
|
"node_modules/@harperfast/rocksdb-js-win32-arm64": {
|
|
2652
|
-
"version": "1.0.
|
|
2653
|
-
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-win32-arm64/-/rocksdb-js-win32-arm64-1.0.
|
|
2654
|
-
"integrity": "sha512-
|
|
2664
|
+
"version": "1.0.1",
|
|
2665
|
+
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-win32-arm64/-/rocksdb-js-win32-arm64-1.0.1.tgz",
|
|
2666
|
+
"integrity": "sha512-h7VYXXa2pGgyidCgfRdJIGxcAmcJVtO5lQjxO3WH5qpknm7+D0arZg8ebDyicgqZkb+uN/zi0blIi6z1bc6f6Q==",
|
|
2655
2667
|
"cpu": [
|
|
2656
2668
|
"arm64"
|
|
2657
2669
|
],
|
|
@@ -2665,9 +2677,9 @@
|
|
|
2665
2677
|
}
|
|
2666
2678
|
},
|
|
2667
2679
|
"node_modules/@harperfast/rocksdb-js-win32-x64": {
|
|
2668
|
-
"version": "1.0.
|
|
2669
|
-
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-win32-x64/-/rocksdb-js-win32-x64-1.0.
|
|
2670
|
-
"integrity": "sha512-
|
|
2680
|
+
"version": "1.0.1",
|
|
2681
|
+
"resolved": "https://registry.npmjs.org/@harperfast/rocksdb-js-win32-x64/-/rocksdb-js-win32-x64-1.0.1.tgz",
|
|
2682
|
+
"integrity": "sha512-Ikxl3CMsRutsfpaGX2JU9LLPH6tUcmMD5id5gzaNj2LE0O7ApJYX/ROqe21B6x8vDfxRk77qb8fcmvPHojNQXQ==",
|
|
2671
2683
|
"cpu": [
|
|
2672
2684
|
"x64"
|
|
2673
2685
|
],
|
|
@@ -2860,9 +2872,9 @@
|
|
|
2860
2872
|
}
|
|
2861
2873
|
},
|
|
2862
2874
|
"node_modules/@lmdb/lmdb-darwin-arm64": {
|
|
2863
|
-
"version": "3.5.
|
|
2864
|
-
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.
|
|
2865
|
-
"integrity": "sha512-
|
|
2875
|
+
"version": "3.5.4",
|
|
2876
|
+
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.4.tgz",
|
|
2877
|
+
"integrity": "sha512-Kk4Kz3iyu1QiLsLZBS9Af1eSKUC8VR2T+/jyE2iAyuGw2VwK08pp5iTbZnXn6sWu0LogO/RFktMxOjiDA2sS3w==",
|
|
2866
2878
|
"cpu": [
|
|
2867
2879
|
"arm64"
|
|
2868
2880
|
],
|
|
@@ -2873,9 +2885,9 @@
|
|
|
2873
2885
|
]
|
|
2874
2886
|
},
|
|
2875
2887
|
"node_modules/@lmdb/lmdb-darwin-x64": {
|
|
2876
|
-
"version": "3.5.
|
|
2877
|
-
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.
|
|
2878
|
-
"integrity": "sha512-
|
|
2888
|
+
"version": "3.5.4",
|
|
2889
|
+
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.4.tgz",
|
|
2890
|
+
"integrity": "sha512-BEe5Rp3trn26oxoXOVL5HVDoiYmjUDwr8NRPkBOdUdCSBEorKI+7JrZLRKAdxO+G6cGQLgseXk0gR7qIQa7aGw==",
|
|
2879
2891
|
"cpu": [
|
|
2880
2892
|
"x64"
|
|
2881
2893
|
],
|
|
@@ -2886,9 +2898,9 @@
|
|
|
2886
2898
|
]
|
|
2887
2899
|
},
|
|
2888
2900
|
"node_modules/@lmdb/lmdb-linux-arm": {
|
|
2889
|
-
"version": "3.5.
|
|
2890
|
-
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.
|
|
2891
|
-
"integrity": "sha512-
|
|
2901
|
+
"version": "3.5.4",
|
|
2902
|
+
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.4.tgz",
|
|
2903
|
+
"integrity": "sha512-SGbFR7816uBcTHc2ZY4S6WyOkl9bICnzqTQd2Mv4V/j24cfds88xx2nC6cm/y8zGQL7Ds31YF/5NGxjgcdM5Hw==",
|
|
2892
2904
|
"cpu": [
|
|
2893
2905
|
"arm"
|
|
2894
2906
|
],
|
|
@@ -2899,9 +2911,9 @@
|
|
|
2899
2911
|
]
|
|
2900
2912
|
},
|
|
2901
2913
|
"node_modules/@lmdb/lmdb-linux-arm64": {
|
|
2902
|
-
"version": "3.5.
|
|
2903
|
-
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.
|
|
2904
|
-
"integrity": "sha512-
|
|
2914
|
+
"version": "3.5.4",
|
|
2915
|
+
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.4.tgz",
|
|
2916
|
+
"integrity": "sha512-cUXEengO8o60v1SWerJTH4/RH4U3+9jC0/4njp2Z9NdmvaGzhKsbRM2wpXuRYrN8tytsoJCg0SvWEWwHAwLbCA==",
|
|
2905
2917
|
"cpu": [
|
|
2906
2918
|
"arm64"
|
|
2907
2919
|
],
|
|
@@ -2912,9 +2924,9 @@
|
|
|
2912
2924
|
]
|
|
2913
2925
|
},
|
|
2914
2926
|
"node_modules/@lmdb/lmdb-linux-x64": {
|
|
2915
|
-
"version": "3.5.
|
|
2916
|
-
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.
|
|
2917
|
-
"integrity": "sha512-
|
|
2927
|
+
"version": "3.5.4",
|
|
2928
|
+
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.4.tgz",
|
|
2929
|
+
"integrity": "sha512-Gxq8jpgOWXwd0PUR+c9R2Ik1/uBnGd5GMIIzRRDqABCkvmjtC3KWcyhesV9jSPCz759isl0NlbsstZ2oyvk8lA==",
|
|
2918
2930
|
"cpu": [
|
|
2919
2931
|
"x64"
|
|
2920
2932
|
],
|
|
@@ -2925,9 +2937,9 @@
|
|
|
2925
2937
|
]
|
|
2926
2938
|
},
|
|
2927
2939
|
"node_modules/@lmdb/lmdb-win32-arm64": {
|
|
2928
|
-
"version": "3.5.
|
|
2929
|
-
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.
|
|
2930
|
-
"integrity": "sha512-
|
|
2940
|
+
"version": "3.5.4",
|
|
2941
|
+
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.4.tgz",
|
|
2942
|
+
"integrity": "sha512-pKv1DJ1bPZAaHkdFsSz5IDfUG8x9vntgquXF9/Dm2xuupcIe/EkLzylpoBxppFVK5vzbV561Dq26jNY2fIMA7g==",
|
|
2931
2943
|
"cpu": [
|
|
2932
2944
|
"arm64"
|
|
2933
2945
|
],
|
|
@@ -2938,9 +2950,9 @@
|
|
|
2938
2950
|
]
|
|
2939
2951
|
},
|
|
2940
2952
|
"node_modules/@lmdb/lmdb-win32-x64": {
|
|
2941
|
-
"version": "3.5.
|
|
2942
|
-
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.
|
|
2943
|
-
"integrity": "sha512-
|
|
2953
|
+
"version": "3.5.4",
|
|
2954
|
+
"resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.4.tgz",
|
|
2955
|
+
"integrity": "sha512-JF1BmLCm9kGEVZgYmJq43zeQVdHVgAJnTi/NURWEsy6L1ZrrlSmdltS+D17QN4LODwf+1LMXAA9auIZVXtWwzw==",
|
|
2944
2956
|
"cpu": [
|
|
2945
2957
|
"x64"
|
|
2946
2958
|
],
|
|
@@ -7738,9 +7750,9 @@
|
|
|
7738
7750
|
"license": "MIT"
|
|
7739
7751
|
},
|
|
7740
7752
|
"node_modules/lmdb": {
|
|
7741
|
-
"version": "3.5.
|
|
7742
|
-
"resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.
|
|
7743
|
-
"integrity": "sha512-
|
|
7753
|
+
"version": "3.5.4",
|
|
7754
|
+
"resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.4.tgz",
|
|
7755
|
+
"integrity": "sha512-9FKQA6G1MMtqNxfxvSBNXD/axeG2QRjYbNh0/ykRL5xYcRbCm2vXq7B9bhc7nSuKdHzr8/BHIwfPuYYH1UsXXw==",
|
|
7744
7756
|
"hasInstallScript": true,
|
|
7745
7757
|
"license": "MIT",
|
|
7746
7758
|
"dependencies": {
|
|
@@ -7755,13 +7767,13 @@
|
|
|
7755
7767
|
"download-lmdb-prebuilds": "bin/download-prebuilds.js"
|
|
7756
7768
|
},
|
|
7757
7769
|
"optionalDependencies": {
|
|
7758
|
-
"@lmdb/lmdb-darwin-arm64": "3.5.
|
|
7759
|
-
"@lmdb/lmdb-darwin-x64": "3.5.
|
|
7760
|
-
"@lmdb/lmdb-linux-arm": "3.5.
|
|
7761
|
-
"@lmdb/lmdb-linux-arm64": "3.5.
|
|
7762
|
-
"@lmdb/lmdb-linux-x64": "3.5.
|
|
7763
|
-
"@lmdb/lmdb-win32-arm64": "3.5.
|
|
7764
|
-
"@lmdb/lmdb-win32-x64": "3.5.
|
|
7770
|
+
"@lmdb/lmdb-darwin-arm64": "3.5.4",
|
|
7771
|
+
"@lmdb/lmdb-darwin-x64": "3.5.4",
|
|
7772
|
+
"@lmdb/lmdb-linux-arm": "3.5.4",
|
|
7773
|
+
"@lmdb/lmdb-linux-arm64": "3.5.4",
|
|
7774
|
+
"@lmdb/lmdb-linux-x64": "3.5.4",
|
|
7775
|
+
"@lmdb/lmdb-win32-arm64": "3.5.4",
|
|
7776
|
+
"@lmdb/lmdb-win32-x64": "3.5.4"
|
|
7765
7777
|
}
|
|
7766
7778
|
},
|
|
7767
7779
|
"node_modules/lmdb/node_modules/node-addon-api": {
|
package/core/security/keys.js
CHANGED
|
@@ -238,7 +238,7 @@ function loadCertificates() {
|
|
|
238
238
|
|
|
239
239
|
promise = certificateTable.put({
|
|
240
240
|
name: certCn,
|
|
241
|
-
uses: config.uses ??
|
|
241
|
+
uses: config.uses ?? (configKey.includes('operations') ? ['operations-api'] : []),
|
|
242
242
|
ciphers: config.ciphers,
|
|
243
243
|
certificate: certificatePem,
|
|
244
244
|
private_key_name,
|
|
@@ -211,7 +211,7 @@ function loadCertificates() {
|
|
|
211
211
|
}
|
|
212
212
|
promise = certificateTable.put({
|
|
213
213
|
name: certCn,
|
|
214
|
-
uses: config.uses ??
|
|
214
|
+
uses: config.uses ?? (configKey.includes('operations') ? ['operations-api'] : []),
|
|
215
215
|
ciphers: config.ciphers,
|
|
216
216
|
certificate: certificatePem,
|
|
217
217
|
private_key_name,
|
|
@@ -277,6 +277,7 @@ class NodeReplicationConnection extends events_1.EventEmitter {
|
|
|
277
277
|
this.sessionResolve = resolve;
|
|
278
278
|
this.sessionReject = reject;
|
|
279
279
|
});
|
|
280
|
+
this.session.catch(() => { }); // suppress any unhandled errors
|
|
280
281
|
}
|
|
281
282
|
subscribe(nodeSubscriptions, replicateTablesByDefault) {
|
|
282
283
|
this.nodeSubscriptions = nodeSubscriptions;
|