@harperfast/harper 5.2.1 → 5.2.2
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/bin/copyDb.ts +19 -7
- package/components/deploymentRecorder.ts +102 -11
- package/components/operations.js +4 -0
- package/config/configUtils.ts +66 -11
- package/config/harperConfigEnvVars.ts +114 -17
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -4
- package/dist/bin/copyDb.js +20 -7
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/components/deploymentRecorder.d.ts +6 -0
- package/dist/components/deploymentRecorder.js +94 -12
- package/dist/components/deploymentRecorder.js.map +1 -1
- package/dist/components/operations.js +4 -0
- package/dist/components/operations.js.map +1 -1
- package/dist/config/configUtils.d.ts +6 -0
- package/dist/config/configUtils.js +65 -9
- package/dist/config/configUtils.js.map +1 -1
- package/dist/config/harperConfigEnvVars.js +108 -16
- package/dist/config/harperConfigEnvVars.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +2 -0
- package/dist/resources/DatabaseTransaction.js +6 -5
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/Table.d.ts +2 -1
- package/dist/resources/Table.js +66 -16
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/auditStore.js +27 -1
- package/dist/resources/auditStore.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +15 -2
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +128 -39
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/search.d.ts +1 -1
- package/dist/resources/search.js +7 -3
- package/dist/resources/search.js.map +1 -1
- package/dist/server/threads/manageThreads.js +8 -0
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/sqlEngine/parser/normalizer.js +37 -9
- package/dist/sqlEngine/parser/normalizer.js.map +1 -1
- package/dist/utility/environment/environmentManager.d.ts +11 -0
- package/dist/utility/environment/environmentManager.js +154 -0
- package/dist/utility/environment/environmentManager.js.map +1 -1
- package/dist/utility/lmdb/environmentUtility.js +2 -1
- package/dist/utility/lmdb/environmentUtility.js.map +1 -1
- package/npm-shrinkwrap.json +13 -7
- package/package.json +2 -2
- package/resources/DESIGN.md +1 -0
- package/resources/DatabaseTransaction.ts +7 -5
- package/resources/Table.ts +77 -16
- package/resources/auditStore.ts +32 -1
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +119 -45
- package/resources/search.ts +8 -3
- package/server/threads/manageThreads.js +8 -0
- package/studio/web/assets/{Chat-aApwhRmz.js → Chat-BMUjPklt.js} +5 -5
- package/studio/web/assets/{Chat-aApwhRmz.js.map → Chat-BMUjPklt.js.map} +1 -1
- package/studio/web/assets/{FloatingChat-sC0H91n9.js → FloatingChat-Cbghuxe5.js} +5 -5
- package/studio/web/assets/{FloatingChat-sC0H91n9.js.map → FloatingChat-Cbghuxe5.js.map} +1 -1
- package/studio/web/assets/{apiToken-DZ8JhHOI.js → apiToken-CkgTQAqc.js} +2 -2
- package/studio/web/assets/{apiToken-DZ8JhHOI.js.map → apiToken-CkgTQAqc.js.map} +1 -1
- package/studio/web/assets/{applications-9SEVLIO5.js → applications-WvF4NOTN.js} +13 -13
- package/studio/web/assets/applications-WvF4NOTN.js.map +1 -0
- package/studio/web/assets/chevron-right-anDJCGlp.js +2 -0
- package/studio/web/assets/chevron-right-anDJCGlp.js.map +1 -0
- package/studio/web/assets/index-CDeqVx71.css +1 -0
- package/studio/web/assets/index-Sevt3MVx.js +819 -0
- package/studio/web/assets/index-Sevt3MVx.js.map +1 -0
- package/studio/web/assets/index.lazy-Dg5YYPGg.js +14 -0
- package/studio/web/assets/{index.lazy-CN1zq4I4.js.map → index.lazy-Dg5YYPGg.js.map} +1 -1
- package/studio/web/assets/{jsonMode-Cjj7dtlr.js → jsonMode-CBSEleE7.js} +2 -2
- package/studio/web/assets/{jsonMode-Cjj7dtlr.js.map → jsonMode-CBSEleE7.js.map} +1 -1
- package/studio/web/assets/languageServices-gxedeeTo.js +2 -0
- package/studio/web/assets/languageServices-gxedeeTo.js.map +1 -0
- package/studio/web/assets/{notifications-BFAF07xr.js → notifications-Ap84YyQp.js} +2 -2
- package/studio/web/assets/{notifications-BFAF07xr.js.map → notifications-Ap84YyQp.js.map} +1 -1
- package/studio/web/assets/notifications-vehqyOLM.js +2 -0
- package/studio/web/assets/{notifications-CKlYVvVN.js.map → notifications-vehqyOLM.js.map} +1 -1
- package/studio/web/assets/{pollUnlessForbidden-HHdQZW1N.js → pollUnlessForbidden-BhzefVRn.js} +2 -2
- package/studio/web/assets/pollUnlessForbidden-BhzefVRn.js.map +1 -0
- package/studio/web/assets/{profile-A1zhEdFG.js → profile-DzDpRLHY.js} +2 -2
- package/studio/web/assets/{profile-A1zhEdFG.js.map → profile-DzDpRLHY.js.map} +1 -1
- package/studio/web/assets/queryClient-CgtkoiCY.js +2 -0
- package/studio/web/assets/queryClient-CgtkoiCY.js.map +1 -0
- package/studio/web/assets/regions-DpJ8s7iN.js +2 -0
- package/studio/web/assets/regions-DpJ8s7iN.js.map +1 -0
- package/studio/web/assets/register-BDy01-q3.js +3 -0
- package/studio/web/assets/register-BDy01-q3.js.map +1 -0
- package/studio/web/assets/register-CQHRwNP4.js +3 -0
- package/studio/web/assets/register-CQHRwNP4.js.map +1 -0
- package/studio/web/assets/{setComponentFile-SEtBt_GV.js → setComponentFile-D0aPcI3W.js} +2 -2
- package/studio/web/assets/{setComponentFile-SEtBt_GV.js.map → setComponentFile-D0aPcI3W.js.map} +1 -1
- package/studio/web/assets/setup-I15FAF9H.js +3 -0
- package/studio/web/assets/{setup-BisINqdH.js.map → setup-I15FAF9H.js.map} +1 -1
- package/studio/web/assets/status-BF1eJshJ.js +62 -0
- package/studio/web/assets/status-BF1eJshJ.js.map +1 -0
- package/studio/web/assets/{swagger-ui-react-CAi_s1PC.js → swagger-ui-react-DwSPXXhl.js} +2 -2
- package/studio/web/assets/{swagger-ui-react-CAi_s1PC.js.map → swagger-ui-react-DwSPXXhl.js.map} +1 -1
- package/studio/web/assets/{textarea-DhLMZ3PA.js → table-DpOjNQHt.js} +2 -10
- package/studio/web/assets/table-DpOjNQHt.js.map +1 -0
- package/studio/web/assets/{tsMode-DT74tlkM.js → tsMode-Bu51A-VG.js} +2 -2
- package/studio/web/assets/{tsMode-DT74tlkM.js.map → tsMode-Bu51A-VG.js.map} +1 -1
- package/studio/web/assets/{useEntityRestURL-CGRGc1n7.js → useEntityRestURL-DrV1zMrN.js} +2 -2
- package/studio/web/assets/{useEntityRestURL-CGRGc1n7.js.map → useEntityRestURL-DrV1zMrN.js.map} +1 -1
- package/studio/web/index.html +6 -7
- package/utility/environment/environmentManager.ts +152 -0
- package/utility/lmdb/environmentUtility.ts +2 -1
- package/studio/web/assets/applications-9SEVLIO5.js.map +0 -1
- package/studio/web/assets/index-C8Mv9kHV.css +0 -1
- package/studio/web/assets/index-Dy3uDGXb.js +0 -809
- package/studio/web/assets/index-Dy3uDGXb.js.map +0 -1
- package/studio/web/assets/index.lazy-CN1zq4I4.js +0 -14
- package/studio/web/assets/notifications-CKlYVvVN.js +0 -2
- package/studio/web/assets/pollUnlessForbidden-HHdQZW1N.js.map +0 -1
- package/studio/web/assets/queryClient-CbA8wM7J.js +0 -2
- package/studio/web/assets/queryClient-CbA8wM7J.js.map +0 -1
- package/studio/web/assets/setup-BisINqdH.js +0 -3
- package/studio/web/assets/status-BuQoCc7l.js +0 -62
- package/studio/web/assets/status-BuQoCc7l.js.map +0 -1
- package/studio/web/assets/textarea-DhLMZ3PA.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environmentUtility.js","sourceRoot":"","sources":["../../../utility/lmdb/environmentUtility.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"environmentUtility.js","sourceRoot":"","sources":["../../../utility/lmdb/environmentUtility.ts"],"names":[],"mappings":"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"}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "harper",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "harper",
|
|
9
|
-
"version": "5.2.
|
|
9
|
+
"version": "5.2.2",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@aws-sdk/client-s3": "^3.1012.0",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@turf/length": "6.5.0",
|
|
31
31
|
"alasql": "4.17.3",
|
|
32
32
|
"amaro": "^1.1.8",
|
|
33
|
-
"argon2": "0.
|
|
33
|
+
"argon2": "0.45.1",
|
|
34
34
|
"asn1js": "3.0.10",
|
|
35
35
|
"busboy": "^1.6.0",
|
|
36
36
|
"cbor-x": "1.6.4",
|
|
@@ -1937,13 +1937,15 @@
|
|
|
1937
1937
|
}
|
|
1938
1938
|
},
|
|
1939
1939
|
"node_modules/argon2": {
|
|
1940
|
-
"version": "0.
|
|
1940
|
+
"version": "0.45.1",
|
|
1941
|
+
"resolved": "https://registry.npmjs.org/argon2/-/argon2-0.45.1.tgz",
|
|
1942
|
+
"integrity": "sha512-skm+/WCjkGqCQxF7FG1LuZXM5yvbFjgbfiCGsud2oLgaDhh6b6dbH0b1EkghbM+xx4Bj8Ape+KKgixoIlWZicQ==",
|
|
1941
1943
|
"hasInstallScript": true,
|
|
1942
1944
|
"license": "MIT",
|
|
1943
1945
|
"dependencies": {
|
|
1944
1946
|
"@phc/format": "^1.0.0",
|
|
1945
|
-
"cross-env": "^10.
|
|
1946
|
-
"node-addon-api": "^8.
|
|
1947
|
+
"cross-env": "^10.1.0",
|
|
1948
|
+
"node-addon-api": "^8.9.0",
|
|
1947
1949
|
"node-gyp-build": "^4.8.4"
|
|
1948
1950
|
},
|
|
1949
1951
|
"engines": {
|
|
@@ -1952,6 +1954,8 @@
|
|
|
1952
1954
|
},
|
|
1953
1955
|
"node_modules/argon2/node_modules/node-gyp-build": {
|
|
1954
1956
|
"version": "4.8.4",
|
|
1957
|
+
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
|
|
1958
|
+
"integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
|
|
1955
1959
|
"license": "MIT",
|
|
1956
1960
|
"bin": {
|
|
1957
1961
|
"node-gyp-build": "bin.js",
|
|
@@ -4082,7 +4086,9 @@
|
|
|
4082
4086
|
}
|
|
4083
4087
|
},
|
|
4084
4088
|
"node_modules/node-addon-api": {
|
|
4085
|
-
"version": "8.
|
|
4089
|
+
"version": "8.9.1",
|
|
4090
|
+
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.9.1.tgz",
|
|
4091
|
+
"integrity": "sha512-4eUQWVPCUUUiBjLnHS3cXWeC6ryoPUc0U3rP7IuzapoGbzMqd/r6KKO0clr0b+snQhsrueFEhCZDdK+LK7hxKg==",
|
|
4086
4092
|
"license": "MIT",
|
|
4087
4093
|
"engines": {
|
|
4088
4094
|
"node": "^18 || ^20 || >= 21"
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@harperfast/harper",
|
|
3
3
|
"description": "Harper is an open-source Node.js performance platform that unifies database, cache, application, and messaging layers into one in-memory process.",
|
|
4
|
-
"version": "5.2.
|
|
4
|
+
"version": "5.2.2",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://harper.fast",
|
|
7
7
|
"bugs": {
|
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
"@turf/length": "6.5.0",
|
|
193
193
|
"alasql": "4.17.3",
|
|
194
194
|
"amaro": "^1.1.8",
|
|
195
|
-
"argon2": "0.
|
|
195
|
+
"argon2": "0.45.1",
|
|
196
196
|
"asn1js": "3.0.10",
|
|
197
197
|
"busboy": "^1.6.0",
|
|
198
198
|
"cbor-x": "1.6.4",
|
package/resources/DESIGN.md
CHANGED
|
@@ -94,6 +94,7 @@ One giant `makeTable()` factory that returns a `TableResource extends Resource`
|
|
|
94
94
|
| How does a URL path map to a Resource? | `Resources.ts → getMatch` (exact/prefix fast path) then `matchParamRoute` (parameterised routes); see "Path routing" below |
|
|
95
95
|
| How does HNSW keep the graph connected on delete? | `indexes/HierarchicalNavigableSmallWorld.ts → index()` delete path: zero-degree orphans reindexed via `needsReindexing`; severed multi-node islands detected and reconnected by `repairSeveredNeighbors` (#1712) |
|
|
96
96
|
| How is a filter applied _during_ a vector search? | Predicate-aware traversal (#1241): `search.ts → executeConditions` composes companion AND conditions with request `vectorFilter` / `rowFilter` predicates into one `(primaryKey) => boolean` (`composeRecordFilter`) and passes it to `HierarchicalNavigableSmallWorld.search(cond, ctx, filter)`. The filter gates result admission at layer 0 only (routing ignores it, ACORN-style); a visit budget (`filterExpansion`) bounds the under-filled/selective case. Very selective _condition_ filters are instead diverted to the exact brute-force path by the query planner's `estimateCountAsSort` ordering. |
|
|
97
|
+
| How does post-ordering resolve vector distances safely? | Each comparator owns its `Sort`, passes it directly to the custom-index resolver, and caches distances by that immutable per-query sort object. |
|
|
97
98
|
| How is application row filtering applied? | Authorization admission happens in the resource operation before query work. The legacy `allow*` hook, when armed by the protocol, is evaluated once with its historical receiver semantics; overriding it never changes its scope. An operation override may add indexed conditions and/or attach the JavaScript-only synchronous `target.rowFilter(record, context)`. `Table.search` composes it with query filters and rechecks the final materialized cache/source record. `SubscriptionRequest.rowFilter` covers full-row events; `eventFilter(event, context)` explicitly handles tombstones/messages/raw events. Prefer indexed conditions because an opaque predicate may inspect every admitted candidate and `limit` applies after filtering. |
|
|
98
99
|
|
|
99
100
|
**QUERY admission uses the body projection.** `Resource.transactional` resolves an asynchronous HTTP QUERY body before resource resolution, recursively clones away client-supplied `checkPermission`, and copies the body's `select` onto the operation admission target before `allowRead`. After authorization, `Resource.query` transfers only the narrowed projection to the body target. This ensures a body-only relationship select is checked before `Table.search`; permission-control fields from QUERY data must never reach a search target.
|
|
@@ -335,6 +335,7 @@ export class DatabaseTransaction implements Transaction {
|
|
|
335
335
|
// link with no writes that is being read in a loop would otherwise masquerade as write activity and
|
|
336
336
|
// keep a write-holding head immortal.
|
|
337
337
|
declare writeTimeout: number;
|
|
338
|
+
timeoutBudget = 0;
|
|
338
339
|
validated = 0;
|
|
339
340
|
timestamp = 0;
|
|
340
341
|
retries = 0;
|
|
@@ -385,7 +386,7 @@ export class DatabaseTransaction implements Transaction {
|
|
|
385
386
|
// `writes`/`next` are checked inline first: this is a hot path and the dominant case is a
|
|
386
387
|
// single-store transaction that has never written.
|
|
387
388
|
if ((this.writes.length === 0 && !this.next) || this.open !== TRANSACTION_STATE.OPEN || !this.hasPendingWrites()) {
|
|
388
|
-
this.timeout = txnExpiration;
|
|
389
|
+
this.timeout = Math.max(txnExpiration, this.timeoutBudget);
|
|
389
390
|
}
|
|
390
391
|
if (this.transaction) {
|
|
391
392
|
if ((this.transaction as any).openTimer) (this.transaction as any).openTimer = 0;
|
|
@@ -578,10 +579,10 @@ export class DatabaseTransaction implements Transaction {
|
|
|
578
579
|
// A write is activity: it re-arms the idle limit on this link even though the reads it
|
|
579
580
|
// performs no longer do (see getReadTxn), so a transaction that keeps writing stays alive
|
|
580
581
|
// and only an idle one holding write intents is reaped.
|
|
581
|
-
this.timeout = txnExpiration;
|
|
582
|
+
this.timeout = Math.max(txnExpiration, this.timeoutBudget ?? 0);
|
|
582
583
|
// Independent write-recency signal for chainStillActive (see the field comment) — reads never
|
|
583
584
|
// touch this, only writes do.
|
|
584
|
-
this.writeTimeout =
|
|
585
|
+
this.writeTimeout = this.timeout;
|
|
585
586
|
this.linkWrite(operation);
|
|
586
587
|
this.writes.push(operation);
|
|
587
588
|
if (!operation.deferSave) {
|
|
@@ -1107,6 +1108,7 @@ export interface CommitResolution {
|
|
|
1107
1108
|
next?: CommitResolution;
|
|
1108
1109
|
}
|
|
1109
1110
|
export interface Transaction {
|
|
1111
|
+
timeoutBudget?: number;
|
|
1110
1112
|
commit(options): MaybePromise<CommitResolution>;
|
|
1111
1113
|
abort?(): any;
|
|
1112
1114
|
}
|
|
@@ -1190,7 +1192,7 @@ function startMonitoringTxns() {
|
|
|
1190
1192
|
// receives them, and a multi-store transaction can be writing database B while this
|
|
1191
1193
|
// head only reads A). The logical transaction is still active, so re-arm this link
|
|
1192
1194
|
// rather than aborting the whole chain out from under it.
|
|
1193
|
-
txn.timeout = txnExpiration;
|
|
1195
|
+
txn.timeout = Math.max(txnExpiration, txn.timeoutBudget ?? 0);
|
|
1194
1196
|
} else if (txn.hasPendingWrites() && !txn.sourceApply && !txn.isReplay) {
|
|
1195
1197
|
// Abort and surface an error rather than force-committing a partial write set: silently
|
|
1196
1198
|
// committing on the application's behalf breaks atomicity and can leave orphaned
|
|
@@ -1226,7 +1228,7 @@ function startMonitoringTxns() {
|
|
|
1226
1228
|
} catch (error) {
|
|
1227
1229
|
harperLogger.debug?.(`Error committing timed out transaction: ${error.message}`);
|
|
1228
1230
|
}
|
|
1229
|
-
txn.timeout = txnExpiration;
|
|
1231
|
+
txn.timeout = Math.max(txnExpiration, txn.timeoutBudget ?? 0);
|
|
1230
1232
|
}
|
|
1231
1233
|
} else {
|
|
1232
1234
|
txn.timeout -= txnExpiration;
|
package/resources/Table.ts
CHANGED
|
@@ -389,6 +389,7 @@ export function makeTable(options) {
|
|
|
389
389
|
if (!attributes) attributes = [];
|
|
390
390
|
if (!properties) properties = projectAttributesToProperties(attributes);
|
|
391
391
|
const updateRecord = recordUpdater(primaryStore, tableId, auditStore);
|
|
392
|
+
let warnedNullSourcePut = false; // latched: one warn per table per worker (see _writeUpdate)
|
|
392
393
|
let sourceLoad: any; // if a source has a load function (replicator), record it here
|
|
393
394
|
let hasSourceGet: any;
|
|
394
395
|
let primaryKeyAttribute: Attribute | undefined;
|
|
@@ -2236,6 +2237,22 @@ export function makeTable(options) {
|
|
|
2236
2237
|
const context = this.getContext();
|
|
2237
2238
|
const transaction = txnForContext(context);
|
|
2238
2239
|
checkValidId(id);
|
|
2240
|
+
if (fullUpdate && recordUpdate == null && options?.isNotification) {
|
|
2241
|
+
// A source/replication-applied put must carry the record; these applies skip record
|
|
2242
|
+
// validation, so this is the one path a nullish full update reaches (isNotification scopes
|
|
2243
|
+
// this to the apply dispatcher, not instance flows that fill from #changes). Applying it
|
|
2244
|
+
// stores nothing and mints an audit-only entry misrepresenting the write (#2153) — skip it;
|
|
2245
|
+
// a redelivery re-skips and a later real write supersedes.
|
|
2246
|
+
logger.trace?.('Skipped valueless source put', tableName, id, options?.nodeId);
|
|
2247
|
+
if (!warnedNullSourcePut) {
|
|
2248
|
+
warnedNullSourcePut = true;
|
|
2249
|
+
logger.warn?.(
|
|
2250
|
+
`Skipping a source-applied put with no record content for ${tableName} id ${id} from node ${options?.nodeId}`,
|
|
2251
|
+
new Error('valueless source put')
|
|
2252
|
+
);
|
|
2253
|
+
}
|
|
2254
|
+
return;
|
|
2255
|
+
}
|
|
2239
2256
|
const entry = this.#entry ?? primaryStore.getEntry(id, { transaction: transaction.getReadTxn() });
|
|
2240
2257
|
const writeToSource = () => {
|
|
2241
2258
|
if (!(this.constructor as any).source || (context as any)?.source) return;
|
|
@@ -3346,6 +3363,11 @@ export function makeTable(options) {
|
|
|
3346
3363
|
const operator = target.operator;
|
|
3347
3364
|
if (conditions.length > 0 || operator) conditions = prepareConditions(conditions, operator);
|
|
3348
3365
|
const sort = typeof target.sort === 'object' && target.sort;
|
|
3366
|
+
for (let order = sort; order; order = order.next) {
|
|
3367
|
+
if (typeof order.attribute !== 'string') continue;
|
|
3368
|
+
const customIndex = indices[order.attribute]?.customIndex;
|
|
3369
|
+
if (customIndex?.exactDistance) customIndex.exactDistance(order, null);
|
|
3370
|
+
}
|
|
3349
3371
|
let postOrdering;
|
|
3350
3372
|
if (sort) {
|
|
3351
3373
|
// TODO: Support index-assisted sorts of unions, which will require potentially recursively adding/modifying an order aligned condition and be able to recursively undo it if necessary
|
|
@@ -3393,9 +3415,12 @@ export function makeTable(options) {
|
|
|
3393
3415
|
if (sort.next) {
|
|
3394
3416
|
postOrdering = {
|
|
3395
3417
|
dbOrderedAttribute: sort.attribute,
|
|
3418
|
+
dbOrderedSort: sort,
|
|
3396
3419
|
attribute: sort.next.attribute,
|
|
3397
3420
|
descending: sort.next.descending,
|
|
3398
3421
|
next: sort.next.next,
|
|
3422
|
+
target: (sort.next as any).target,
|
|
3423
|
+
distance: (sort.next as any).distance,
|
|
3399
3424
|
};
|
|
3400
3425
|
}
|
|
3401
3426
|
} else {
|
|
@@ -3477,7 +3502,8 @@ export function makeTable(options) {
|
|
|
3477
3502
|
ensure_loaded,
|
|
3478
3503
|
true,
|
|
3479
3504
|
boundRowFilter,
|
|
3480
|
-
includeExpired
|
|
3505
|
+
includeExpired,
|
|
3506
|
+
postOrdering
|
|
3481
3507
|
);
|
|
3482
3508
|
let results = TableResource.transformToOrderedSelect(
|
|
3483
3509
|
entries,
|
|
@@ -3538,10 +3564,9 @@ export function makeTable(options) {
|
|
|
3538
3564
|
function createComparator(order: Sort) {
|
|
3539
3565
|
const nextComparator = order.next && createComparator(order.next);
|
|
3540
3566
|
const descending = order.descending;
|
|
3541
|
-
(context as any).sort = order; // make sure this is set to the current sort order
|
|
3542
3567
|
return (entryA, entryB) => {
|
|
3543
|
-
const a = getAttributeValue(entryA, order.attribute, context);
|
|
3544
|
-
const b = getAttributeValue(entryB, order.attribute, context);
|
|
3568
|
+
const a = getAttributeValue(entryA, order.attribute, context, order);
|
|
3569
|
+
const b = getAttributeValue(entryB, order.attribute, context, order);
|
|
3545
3570
|
const diff = descending
|
|
3546
3571
|
? compareKeys(convertToComparableKeys(b), convertToComparableKeys(a))
|
|
3547
3572
|
: compareKeys(convertToComparableKeys(a), convertToComparableKeys(b));
|
|
@@ -3582,7 +3607,12 @@ export function makeTable(options) {
|
|
|
3582
3607
|
// if the index has already provided the first order of sorting, we only need to sort
|
|
3583
3608
|
// within each grouping
|
|
3584
3609
|
if (dbOrderedAttribute) {
|
|
3585
|
-
const groupingValue = getAttributeValue(
|
|
3610
|
+
const groupingValue = getAttributeValue(
|
|
3611
|
+
entry,
|
|
3612
|
+
dbOrderedAttribute,
|
|
3613
|
+
context,
|
|
3614
|
+
(sort as any).dbOrderedSort
|
|
3615
|
+
);
|
|
3586
3616
|
if (firstEntry) {
|
|
3587
3617
|
firstEntry = false;
|
|
3588
3618
|
lastGroupingValue = groupingValue;
|
|
@@ -3681,6 +3711,7 @@ export function makeTable(options) {
|
|
|
3681
3711
|
* authorization verdict can't be made on bytes that differ from what the caller receives.
|
|
3682
3712
|
* @param includeExpired when true, a row past its TTL but not yet swept is treated as a live
|
|
3683
3713
|
* match rather than gone (used by the SQL engine's UPDATE/DELETE row-finder).
|
|
3714
|
+
* @param sort post-ordering owned by this selection
|
|
3684
3715
|
* @returns
|
|
3685
3716
|
*/
|
|
3686
3717
|
static transformEntryForSelect(
|
|
@@ -3691,7 +3722,8 @@ export function makeTable(options) {
|
|
|
3691
3722
|
ensure_loaded?,
|
|
3692
3723
|
canSkip?,
|
|
3693
3724
|
rowFilter?,
|
|
3694
|
-
includeExpired
|
|
3725
|
+
includeExpired?,
|
|
3726
|
+
sort?
|
|
3695
3727
|
) {
|
|
3696
3728
|
let checkLoaded;
|
|
3697
3729
|
if (
|
|
@@ -3767,7 +3799,7 @@ export function makeTable(options) {
|
|
|
3767
3799
|
swrResource.setRecord(record);
|
|
3768
3800
|
const loadingFromSource = ensureLoadedFromSource(source, entry.key ?? entry, entry, context, swrResource);
|
|
3769
3801
|
if (loadingFromSource?.then) {
|
|
3770
|
-
return loadingFromSource.then(transform);
|
|
3802
|
+
return loadingFromSource.then(transform.bind(this));
|
|
3771
3803
|
}
|
|
3772
3804
|
}
|
|
3773
3805
|
}
|
|
@@ -3797,7 +3829,7 @@ export function makeTable(options) {
|
|
|
3797
3829
|
value = filterMap.fromRecord?.(record);
|
|
3798
3830
|
}
|
|
3799
3831
|
} else {
|
|
3800
|
-
value = resolver(record, context, entry, true);
|
|
3832
|
+
value = resolver(record, context, entry, true, sort);
|
|
3801
3833
|
}
|
|
3802
3834
|
const handleResolvedValue = (value: any) => {
|
|
3803
3835
|
if (resolver.directReturn) return callback(value, attribute_name);
|
|
@@ -3819,7 +3851,11 @@ export function makeTable(options) {
|
|
|
3819
3851
|
context,
|
|
3820
3852
|
targetReadTxn,
|
|
3821
3853
|
filterMap,
|
|
3822
|
-
ensure_loaded
|
|
3854
|
+
ensure_loaded,
|
|
3855
|
+
undefined,
|
|
3856
|
+
undefined,
|
|
3857
|
+
undefined,
|
|
3858
|
+
typeof attribute.sort === 'object' && attribute.sort
|
|
3823
3859
|
));
|
|
3824
3860
|
if (Array.isArray(value)) {
|
|
3825
3861
|
const results = [];
|
|
@@ -4871,8 +4907,24 @@ export function makeTable(options) {
|
|
|
4871
4907
|
$updatedTime: (object, context, entry) => entry.version,
|
|
4872
4908
|
$expiresAt: (object, context, entry) => entry.expiresAt,
|
|
4873
4909
|
$record: (object, context, entry) => (entry ? { value: object } : object),
|
|
4874
|
-
$distance: (object, context, entry) => {
|
|
4875
|
-
|
|
4910
|
+
$distance: (object, context, entry, returnEntry, sort) => {
|
|
4911
|
+
if (!entry) return;
|
|
4912
|
+
if (entry.distance !== undefined) return entry.distance;
|
|
4913
|
+
let distanceSort = sort;
|
|
4914
|
+
while (
|
|
4915
|
+
distanceSort &&
|
|
4916
|
+
(typeof distanceSort.attribute !== 'string' ||
|
|
4917
|
+
!Array.isArray(distanceSort.target) ||
|
|
4918
|
+
!indices[distanceSort.attribute]?.customIndex?.propertyResolver)
|
|
4919
|
+
)
|
|
4920
|
+
distanceSort = distanceSort.next;
|
|
4921
|
+
if (!distanceSort) return;
|
|
4922
|
+
const customIndex = indices[distanceSort.attribute].customIndex;
|
|
4923
|
+
const vector = object[distanceSort.attribute];
|
|
4924
|
+
const distanceCache = context?.vectorDistanceCaches?.get(distanceSort);
|
|
4925
|
+
const cachedDistance = distanceCache?.get(entry) ?? distanceCache?.get(vector);
|
|
4926
|
+
if (cachedDistance !== undefined) return cachedDistance;
|
|
4927
|
+
return customIndex.propertyResolver(vector, context, entry, distanceSort);
|
|
4876
4928
|
},
|
|
4877
4929
|
};
|
|
4878
4930
|
for (const attribute of this.attributes) {
|
|
@@ -5020,9 +5072,14 @@ export function makeTable(options) {
|
|
|
5020
5072
|
attribute.resolve.directReturn = true;
|
|
5021
5073
|
} else if (indices[attribute.name]?.customIndex?.propertyResolver) {
|
|
5022
5074
|
const customIndex = indices[attribute.name].customIndex;
|
|
5023
|
-
propertyResolvers[attribute.name] = (object, context, entry) => {
|
|
5075
|
+
propertyResolvers[attribute.name] = (object, context, entry, returnEntry, sort, comparing) => {
|
|
5024
5076
|
const value = object[attribute.name];
|
|
5025
|
-
|
|
5077
|
+
const sortAttribute = sort?.attribute;
|
|
5078
|
+
const resolvesSort =
|
|
5079
|
+
comparing === true &&
|
|
5080
|
+
(sortAttribute === attribute.name ||
|
|
5081
|
+
(Array.isArray(sortAttribute) && sortAttribute[sortAttribute.length - 1] === attribute.name));
|
|
5082
|
+
return customIndex.propertyResolver(value, context, entry, resolvesSort ? sort : undefined);
|
|
5026
5083
|
};
|
|
5027
5084
|
propertyResolvers[attribute.name].directReturn = true;
|
|
5028
5085
|
}
|
|
@@ -5557,6 +5614,7 @@ export function makeTable(options) {
|
|
|
5557
5614
|
// Inherit never-drop-on-conflict so a source-applied multi-store transaction doesn't
|
|
5558
5615
|
// drop the canonical write when a secondary store hits a transient conflict.
|
|
5559
5616
|
transaction.next.sourceApply = transaction.sourceApply;
|
|
5617
|
+
transaction.next.timeoutBudget = transaction.timeoutBudget;
|
|
5560
5618
|
// Inherit the replay marker so a multi-table replay transaction skips validation on
|
|
5561
5619
|
// every store, not just the first (harper#1316).
|
|
5562
5620
|
transaction.next.isReplay = transaction.isReplay;
|
|
@@ -5588,7 +5646,7 @@ export function makeTable(options) {
|
|
|
5588
5646
|
return transaction;
|
|
5589
5647
|
}
|
|
5590
5648
|
}
|
|
5591
|
-
function getAttributeValue(entry, attribute_name, context) {
|
|
5649
|
+
function getAttributeValue(entry, attribute_name, context, sort?) {
|
|
5592
5650
|
if (!entry) {
|
|
5593
5651
|
return;
|
|
5594
5652
|
}
|
|
@@ -5600,14 +5658,17 @@ export function makeTable(options) {
|
|
|
5600
5658
|
for (let i = 0, l = attribute_name.length; i < l; i++) {
|
|
5601
5659
|
const attribute = attribute_name[i];
|
|
5602
5660
|
const resolver = resolvers?.[attribute];
|
|
5603
|
-
value =
|
|
5661
|
+
value =
|
|
5662
|
+
resolver && value
|
|
5663
|
+
? resolver(value, context, entry, false, i === l - 1 ? sort : undefined, true)
|
|
5664
|
+
: value?.[attribute];
|
|
5604
5665
|
entry = null; // can't use this in the nested object
|
|
5605
5666
|
resolvers = resolver?.definition?.tableClass?.propertyResolvers;
|
|
5606
5667
|
}
|
|
5607
5668
|
return value;
|
|
5608
5669
|
}
|
|
5609
5670
|
const resolver = propertyResolvers[attribute_name];
|
|
5610
|
-
return resolver ? resolver(record, context, entry) : record[attribute_name];
|
|
5671
|
+
return resolver ? resolver(record, context, entry, false, sort, true) : record[attribute_name];
|
|
5611
5672
|
}
|
|
5612
5673
|
function transformToEntries(ids, select, context, readTxn, filters?) {
|
|
5613
5674
|
// TODO: Test and ensure that we break out of these loops when a connection is lost
|
package/resources/auditStore.ts
CHANGED
|
@@ -111,6 +111,10 @@ const MAX_DELETES_PER_CLEANUP = 1000;
|
|
|
111
111
|
// setTimeout silently falls back to 1ms for delays past this, which would turn the backoff into the
|
|
112
112
|
// hot loop it is meant to avoid — a `logging.auditRetention` over ~248 days reaches it via retention/10
|
|
113
113
|
const MAX_CLEANUP_DELAY = 2 ** 31 - 1;
|
|
114
|
+
// separate mint/read latches so a legacy-entry read warn can't mask the still-minting signal;
|
|
115
|
+
// mint latch keyed per (table, type) so one entry type can't silence another's producer stack
|
|
116
|
+
const warnedBodylessMints = new Set<string>();
|
|
117
|
+
const warnedBodylessTables = new Set<number>();
|
|
114
118
|
const FLOAT_TARGET = new Float64Array(1);
|
|
115
119
|
const FLOAT_BUFFER = new Uint8Array(FLOAT_TARGET.buffer);
|
|
116
120
|
let DEFAULT_AUDIT_CLEANUP_DELAY = 10000; // default delay of 10 seconds
|
|
@@ -416,10 +420,24 @@ export function createAuditEntry(auditRecord: AuditRecord, start = 0) {
|
|
|
416
420
|
originatingOperation,
|
|
417
421
|
previousAdditionalAuditRefs,
|
|
418
422
|
} = auditRecord;
|
|
419
|
-
|
|
423
|
+
let action = EVENT_TYPES[type];
|
|
420
424
|
if (!action) {
|
|
421
425
|
throw new Error(`Invalid audit entry type ${type}`);
|
|
422
426
|
}
|
|
427
|
+
if (action & (HAS_RECORD | HAS_PARTIAL_RECORD) && !encodedRecord?.length) {
|
|
428
|
+
// Readers decode the remainder whenever HAS_RECORD is set, so an audit-only commit minted with
|
|
429
|
+
// no body must not advertise one (#2153). HAS_PARTIAL_RECORD is kept: it also drives
|
|
430
|
+
// record-history reconstruction, and the read path tolerates the empty body.
|
|
431
|
+
if (!warnedBodylessMints.has(`${tableId}:${type}`)) {
|
|
432
|
+
warnedBodylessMints.add(`${tableId}:${type}`);
|
|
433
|
+
// the Error's stack identifies which write path delivered the missing value
|
|
434
|
+
harperLogger.warn(
|
|
435
|
+
`Audit entry (${type}) for record ${recordId} in table ${tableId} has no record body`,
|
|
436
|
+
new Error('bodyless audit mint')
|
|
437
|
+
);
|
|
438
|
+
}
|
|
439
|
+
action &= ~HAS_RECORD;
|
|
440
|
+
}
|
|
423
441
|
let position = start + 1;
|
|
424
442
|
if (previousVersion) {
|
|
425
443
|
if (previousVersion > 1) ENTRY_DATAVIEW.setFloat64(start, previousVersion);
|
|
@@ -621,6 +639,19 @@ export function readAuditEntry(buffer: Uint8Array, start = 0, end = undefined):
|
|
|
621
639
|
},
|
|
622
640
|
getValue(store, fullRecord?, auditTime?) {
|
|
623
641
|
if (action & HAS_RECORD || (action & HAS_PARTIAL_RECORD && !fullRecord)) {
|
|
642
|
+
if (decoder.position >= (end ?? buffer.byteLength)) {
|
|
643
|
+
// Entry advertises a record but has no body (minted before #2153): nothing to decode, and
|
|
644
|
+
// return undefined rather than falling through — this branch means the caller asked for the
|
|
645
|
+
// entry's own content (full-record consumers with an auditTime never enter it for partials
|
|
646
|
+
// and still reconstruct below). Warn latched per table: this getter runs inside range scans.
|
|
647
|
+
if (!warnedBodylessTables.has(tableId)) {
|
|
648
|
+
warnedBodylessTables.add(tableId);
|
|
649
|
+
harperLogger.warn(
|
|
650
|
+
`Audit entry (${EVENT_TYPES[action & 0xf]}) for table ${tableId} advertises a record but has no body; treating as having no record`
|
|
651
|
+
);
|
|
652
|
+
}
|
|
653
|
+
return;
|
|
654
|
+
}
|
|
624
655
|
if (!value) {
|
|
625
656
|
value = decodeFromDatabase(
|
|
626
657
|
// the audit value has no on-disk timestamp/metadata prefix (the audit entry carries
|