@origintrail-official/dkg-agent 10.0.21 → 10.0.23
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/dist/approved-private-replica-proof-runs.d.ts +40 -0
- package/dist/approved-private-replica-proof-runs.d.ts.map +1 -0
- package/dist/approved-private-replica-proof-runs.js +49 -0
- package/dist/approved-private-replica-proof-runs.js.map +1 -0
- package/dist/approved-private-replica.d.ts +18 -1
- package/dist/approved-private-replica.d.ts.map +1 -1
- package/dist/approved-private-replica.js +9 -3
- package/dist/approved-private-replica.js.map +1 -1
- package/dist/context-graph-chain-discovery-binding.d.ts +2 -0
- package/dist/context-graph-chain-discovery-binding.d.ts.map +1 -1
- package/dist/context-graph-chain-discovery-binding.js +7 -0
- package/dist/context-graph-chain-discovery-binding.js.map +1 -1
- package/dist/context-graph-dormant-identity.d.ts +8 -0
- package/dist/context-graph-dormant-identity.d.ts.map +1 -0
- package/dist/context-graph-dormant-identity.js +48 -0
- package/dist/context-graph-dormant-identity.js.map +1 -0
- package/dist/context-graph-meta-projection.d.ts +19 -55
- package/dist/context-graph-meta-projection.d.ts.map +1 -1
- package/dist/context-graph-meta-projection.js +94 -46
- package/dist/context-graph-meta-projection.js.map +1 -1
- package/dist/context-graph-name-binding-target.d.ts +21 -0
- package/dist/context-graph-name-binding-target.d.ts.map +1 -0
- package/dist/context-graph-name-binding-target.js +68 -0
- package/dist/context-graph-name-binding-target.js.map +1 -0
- package/dist/context-graph-persisted-name-aliases.d.ts +47 -0
- package/dist/context-graph-persisted-name-aliases.d.ts.map +1 -0
- package/dist/context-graph-persisted-name-aliases.js +173 -0
- package/dist/context-graph-persisted-name-aliases.js.map +1 -0
- package/dist/context-graph-read-authority.d.ts +26 -11
- package/dist/context-graph-read-authority.d.ts.map +1 -1
- package/dist/context-graph-read-authority.js +26 -2
- package/dist/context-graph-read-authority.js.map +1 -1
- package/dist/context-graph-subscription-authority-recovery.d.ts +4 -0
- package/dist/context-graph-subscription-authority-recovery.d.ts.map +1 -1
- package/dist/context-graph-subscription-authority-recovery.js +8 -2
- package/dist/context-graph-subscription-authority-recovery.js.map +1 -1
- package/dist/context-graph-subscription-policy.d.ts +34 -1
- package/dist/context-graph-subscription-policy.d.ts.map +1 -1
- package/dist/context-graph-subscription-policy.js +143 -1
- package/dist/context-graph-subscription-policy.js.map +1 -1
- package/dist/curator-meta-refresh.d.ts.map +1 -1
- package/dist/curator-meta-refresh.js +31 -9
- package/dist/curator-meta-refresh.js.map +1 -1
- package/dist/dkg-agent-base.d.ts.map +1 -1
- package/dist/dkg-agent-base.js +0 -1
- package/dist/dkg-agent-base.js.map +1 -1
- package/dist/dkg-agent-cg-name-resolution.d.ts +6 -24
- package/dist/dkg-agent-cg-name-resolution.d.ts.map +1 -1
- package/dist/dkg-agent-cg-name-resolution.js +42 -58
- package/dist/dkg-agent-cg-name-resolution.js.map +1 -1
- package/dist/dkg-agent-cg-on-chain-id.d.ts +3 -3
- package/dist/dkg-agent-cg-on-chain-id.d.ts.map +1 -1
- package/dist/dkg-agent-cg-on-chain-id.js +7 -23
- package/dist/dkg-agent-cg-on-chain-id.js.map +1 -1
- package/dist/dkg-agent-cg-registry.d.ts +7 -3
- package/dist/dkg-agent-cg-registry.d.ts.map +1 -1
- package/dist/dkg-agent-cg-registry.js +30 -16
- package/dist/dkg-agent-cg-registry.js.map +1 -1
- package/dist/dkg-agent-cg-resolve.d.ts +10 -6
- package/dist/dkg-agent-cg-resolve.d.ts.map +1 -1
- package/dist/dkg-agent-cg-resolve.js +16 -19
- package/dist/dkg-agent-cg-resolve.js.map +1 -1
- package/dist/dkg-agent-context-graph.d.ts.map +1 -1
- package/dist/dkg-agent-context-graph.js +0 -4
- package/dist/dkg-agent-context-graph.js.map +1 -1
- package/dist/dkg-agent-crypto.d.ts.map +1 -1
- package/dist/dkg-agent-crypto.js +53 -57
- package/dist/dkg-agent-crypto.js.map +1 -1
- package/dist/dkg-agent-lifecycle.d.ts +5 -0
- package/dist/dkg-agent-lifecycle.d.ts.map +1 -1
- package/dist/dkg-agent-lifecycle.js +156 -133
- package/dist/dkg-agent-lifecycle.js.map +1 -1
- package/dist/dkg-agent-publish.d.ts.map +1 -1
- package/dist/dkg-agent-publish.js +2 -3
- package/dist/dkg-agent-publish.js.map +1 -1
- package/dist/dkg-agent-query.d.ts.map +1 -1
- package/dist/dkg-agent-query.js +12 -9
- package/dist/dkg-agent-query.js.map +1 -1
- package/dist/dkg-agent-registered-private-empty-vm.d.ts +8 -0
- package/dist/dkg-agent-registered-private-empty-vm.d.ts.map +1 -1
- package/dist/dkg-agent-registered-private-empty-vm.js +15 -0
- package/dist/dkg-agent-registered-private-empty-vm.js.map +1 -1
- package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-catalog-auto-publish.js +4 -0
- package/dist/dkg-agent-rfc64-catalog-auto-publish.js.map +1 -1
- package/dist/dkg-agent-rfc64-catalog-upsert.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-catalog-upsert.js +7 -0
- package/dist/dkg-agent-rfc64-catalog-upsert.js.map +1 -1
- package/dist/dkg-agent-rfc64-catalog.d.ts +4 -0
- package/dist/dkg-agent-rfc64-catalog.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-catalog.js +12 -2
- package/dist/dkg-agent-rfc64-catalog.js.map +1 -1
- package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.d.ts +2 -1
- package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.js +23 -15
- package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.js.map +1 -1
- package/dist/dkg-agent-rfc64-swm-catalog-projection.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-swm-catalog-projection.js +3 -0
- package/dist/dkg-agent-rfc64-swm-catalog-projection.js.map +1 -1
- package/dist/dkg-agent-swm-host.d.ts +13 -22
- package/dist/dkg-agent-swm-host.d.ts.map +1 -1
- package/dist/dkg-agent-swm-host.js +179 -81
- package/dist/dkg-agent-swm-host.js.map +1 -1
- package/dist/dkg-agent-swm-substrate.d.ts +2 -0
- package/dist/dkg-agent-swm-substrate.d.ts.map +1 -1
- package/dist/dkg-agent-swm-substrate.js +5 -9
- package/dist/dkg-agent-swm-substrate.js.map +1 -1
- package/dist/dkg-agent-types.d.ts +3 -2
- package/dist/dkg-agent-types.d.ts.map +1 -1
- package/dist/dkg-agent.d.ts +4 -10
- package/dist/dkg-agent.d.ts.map +1 -1
- package/dist/dkg-agent.js +43 -58
- package/dist/dkg-agent.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.d.ts +6 -1
- package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.d.ts.map +1 -1
- package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.js +5 -5
- package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.js.map +1 -1
- package/dist/internal/context-graph-authority/context-graph-authority.d.ts +14 -1
- package/dist/internal/context-graph-authority/context-graph-authority.d.ts.map +1 -1
- package/dist/internal/context-graph-authority/context-graph-authority.js +19 -0
- package/dist/internal/context-graph-authority/context-graph-authority.js.map +1 -1
- package/dist/internal/context-graph-cache-invalidating-store.d.ts +10 -2
- package/dist/internal/context-graph-cache-invalidating-store.d.ts.map +1 -1
- package/dist/internal/context-graph-cache-invalidating-store.js +67 -67
- package/dist/internal/context-graph-cache-invalidating-store.js.map +1 -1
- package/dist/internal/context-graph-meta-record-copy.d.ts +1 -1
- package/dist/internal/context-graph-meta-record-copy.d.ts.map +1 -1
- package/dist/internal/context-graph-meta-record.d.ts +40 -0
- package/dist/internal/context-graph-meta-record.d.ts.map +1 -0
- package/dist/internal/context-graph-meta-record.js +3 -0
- package/dist/internal/context-graph-meta-record.js.map +1 -0
- package/dist/internal/peer-gate-revision.d.ts +28 -0
- package/dist/internal/peer-gate-revision.d.ts.map +1 -0
- package/dist/internal/peer-gate-revision.js +46 -0
- package/dist/internal/peer-gate-revision.js.map +1 -0
- package/dist/internal/projection-mutation-observer.d.ts +5 -0
- package/dist/internal/projection-mutation-observer.d.ts.map +1 -0
- package/dist/internal/projection-mutation-observer.js +24 -0
- package/dist/internal/projection-mutation-observer.js.map +1 -0
- package/dist/internal/promote/assertion-promote-precommit.d.ts +8 -6
- package/dist/internal/promote/assertion-promote-precommit.d.ts.map +1 -1
- package/dist/internal/promote/assertion-promote-precommit.js +8 -6
- package/dist/internal/promote/assertion-promote-precommit.js.map +1 -1
- package/dist/internal/recipient-key-route-fence.d.ts +57 -0
- package/dist/internal/recipient-key-route-fence.d.ts.map +1 -0
- package/dist/internal/recipient-key-route-fence.js +169 -0
- package/dist/internal/recipient-key-route-fence.js.map +1 -0
- package/dist/internal/store-mutation.d.ts +28 -0
- package/dist/internal/store-mutation.d.ts.map +1 -0
- package/dist/internal/store-mutation.js +3 -0
- package/dist/internal/store-mutation.js.map +1 -0
- package/dist/main-thread-time-slice.d.ts +19 -0
- package/dist/main-thread-time-slice.d.ts.map +1 -0
- package/dist/main-thread-time-slice.js +32 -0
- package/dist/main-thread-time-slice.js.map +1 -0
- package/dist/p2p/storage-ack-registrar.d.ts.map +1 -1
- package/dist/p2p/storage-ack-registrar.js +3 -5
- package/dist/p2p/storage-ack-registrar.js.map +1 -1
- package/dist/registered-context-graph-authority.d.ts +17 -0
- package/dist/registered-context-graph-authority.d.ts.map +1 -1
- package/dist/registered-private-empty-vm-attempt-v1.d.ts.map +1 -1
- package/dist/registered-private-empty-vm-attempt-v1.js +8 -4
- package/dist/registered-private-empty-vm-attempt-v1.js.map +1 -1
- package/dist/rfc64/catalog-repair-retry-v1.d.ts +9 -3
- package/dist/rfc64/catalog-repair-retry-v1.d.ts.map +1 -1
- package/dist/rfc64/catalog-repair-retry-v1.js +22 -6
- package/dist/rfc64/catalog-repair-retry-v1.js.map +1 -1
- package/dist/rfc64/control-envelope-signer-v1.d.ts +8 -0
- package/dist/rfc64/control-envelope-signer-v1.d.ts.map +1 -1
- package/dist/rfc64/control-envelope-signer-v1.js +20 -0
- package/dist/rfc64/control-envelope-signer-v1.js.map +1 -1
- package/dist/rfc64/legacy-swm-boundary-fence-v1.d.ts +109 -0
- package/dist/rfc64/legacy-swm-boundary-fence-v1.d.ts.map +1 -0
- package/dist/rfc64/legacy-swm-boundary-fence-v1.js +236 -0
- package/dist/rfc64/legacy-swm-boundary-fence-v1.js.map +1 -0
- package/dist/rfc64/legacy-swm-boundary-v1.d.ts +28 -1
- package/dist/rfc64/legacy-swm-boundary-v1.d.ts.map +1 -1
- package/dist/rfc64/legacy-swm-boundary-v1.js +74 -145
- package/dist/rfc64/legacy-swm-boundary-v1.js.map +1 -1
- package/dist/rfc64/public-catalog-successor-producer-v1.d.ts +2 -0
- package/dist/rfc64/public-catalog-successor-producer-v1.d.ts.map +1 -1
- package/dist/rfc64/public-catalog-successor-producer-v1.js +77 -33
- package/dist/rfc64/public-catalog-successor-producer-v1.js.map +1 -1
- package/dist/rfc64/public-catalog-successor-row-binding-v1.d.ts +16 -0
- package/dist/rfc64/public-catalog-successor-row-binding-v1.d.ts.map +1 -0
- package/dist/rfc64/public-catalog-successor-row-binding-v1.js +28 -0
- package/dist/rfc64/public-catalog-successor-row-binding-v1.js.map +1 -0
- package/dist/rfc64/swm-inventory-catalog-reconciler-v1.d.ts +6 -0
- package/dist/rfc64/swm-inventory-catalog-reconciler-v1.d.ts.map +1 -1
- package/dist/rfc64/swm-inventory-catalog-reconciler-v1.js +9 -3
- package/dist/rfc64/swm-inventory-catalog-reconciler-v1.js.map +1 -1
- package/dist/rfc64/swm-inventory-settlement-outlook-v1.d.ts +8 -0
- package/dist/rfc64/swm-inventory-settlement-outlook-v1.d.ts.map +1 -0
- package/dist/rfc64/swm-inventory-settlement-outlook-v1.js +32 -0
- package/dist/rfc64/swm-inventory-settlement-outlook-v1.js.map +1 -0
- package/dist/sync/requester/swm-recovery-apply.d.ts +1 -1
- package/dist/sync/requester/swm-recovery-apply.d.ts.map +1 -1
- package/dist/sync/requester/swm-recovery-apply.js +0 -1
- package/dist/sync/requester/swm-recovery-apply.js.map +1 -1
- package/dist/sync/requester/swm-target-executor.d.ts +2 -2
- package/dist/sync/requester/swm-target-executor.d.ts.map +1 -1
- package/dist/sync/requester/swm-target-executor.js +1 -2
- package/dist/sync/requester/swm-target-executor.js.map +1 -1
- package/package.json +11 -8
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
import { isSafeIri } from '@origintrail-official/dkg-core';
|
|
3
|
+
const CONTEXT_GRAPH_PREFIX = 'did:dkg:context-graph:';
|
|
4
|
+
const DELEGATION_PREFIX = 'did:dkg:agent-delegation:';
|
|
5
|
+
/**
|
|
6
|
+
* A revision per context graph that moves only when a write can change the
|
|
7
|
+
* metadata facts its peer allowlist and its agent roster are built from. The
|
|
8
|
+
* graph's own cache is invalidated by every write to its meta graph, among them
|
|
9
|
+
* the knowledge-asset metadata that every publish writes, so that revision says
|
|
10
|
+
* nothing about either; this one lets a resolution check, synchronously and
|
|
11
|
+
* right after its last asynchronous read, that what it collected still holds.
|
|
12
|
+
*/
|
|
13
|
+
export class PeerGateRevision {
|
|
14
|
+
recordPredicates;
|
|
15
|
+
everything = 0;
|
|
16
|
+
graphs = new Map();
|
|
17
|
+
/** `recordPredicates` is every predicate the projection reads from a context graph's metadata. */
|
|
18
|
+
constructor(recordPredicates) {
|
|
19
|
+
this.recordPredicates = recordPredicates;
|
|
20
|
+
}
|
|
21
|
+
read(contextGraphId) {
|
|
22
|
+
return `${this.everything}:${this.graphs.get(contextGraphId) ?? 0}`;
|
|
23
|
+
}
|
|
24
|
+
/** A write that changes the metadata facts of one context graph. */
|
|
25
|
+
noteFacts(contextGraphId) {
|
|
26
|
+
this.graphs.set(contextGraphId, (this.graphs.get(contextGraphId) ?? 0) + 1);
|
|
27
|
+
}
|
|
28
|
+
/** A write that may have changed the metadata facts of any context graph. */
|
|
29
|
+
noteEverything() {
|
|
30
|
+
this.everything += 1;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A removal from a context graph's meta or catalog graph. It is harmless only
|
|
34
|
+
* when it names a subject its facts cannot have (they are about the graph, its
|
|
35
|
+
* sub-graphs and its delegations) or a predicate the projection does not read.
|
|
36
|
+
*/
|
|
37
|
+
noteRemoval(contextGraphId, { subject, predicate }) {
|
|
38
|
+
if (subject !== undefined && isSafeIri(subject)
|
|
39
|
+
&& !subject.startsWith(CONTEXT_GRAPH_PREFIX) && !subject.startsWith(DELEGATION_PREFIX))
|
|
40
|
+
return;
|
|
41
|
+
if (predicate !== undefined && isSafeIri(predicate) && !this.recordPredicates.has(predicate))
|
|
42
|
+
return;
|
|
43
|
+
this.noteFacts(contextGraphId);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=peer-gate-revision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-gate-revision.js","sourceRoot":"","sources":["../../src/internal/peer-gate-revision.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAG3D,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AACtD,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAgB;IAKE;IAJrB,UAAU,GAAG,CAAC,CAAC;IACN,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEpD,kGAAkG;IAClG,YAA6B,gBAAqC;QAArC,qBAAgB,GAAhB,gBAAgB,CAAqB;IAAG,CAAC;IAEtE,IAAI,CAAC,cAAsB;QACzB,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IACtE,CAAC;IAED,oEAAoE;IACpE,SAAS,CAAC,cAAsB;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,6EAA6E;IAC7E,cAAc;QACZ,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,cAAsB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAgB;QACtE,IAAI,OAAO,KAAK,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC;eAC1C,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAAE,OAAO;QACjG,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QACrG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ContextGraphMetaProjection } from '../context-graph-meta-projection.js';
|
|
2
|
+
import type { StoreMutationObserver } from './store-mutation.js';
|
|
3
|
+
/** How the agent's store wrapper tells the metadata projection what a write is about to change and did change. */
|
|
4
|
+
export declare function createProjectionMutationObserver(getProjection: () => ContextGraphMetaProjection | undefined): StoreMutationObserver;
|
|
5
|
+
//# sourceMappingURL=projection-mutation-observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection-mutation-observer.d.ts","sourceRoot":"","sources":["../../src/internal/projection-mutation-observer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,kHAAkH;AAClH,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,MAAM,0BAA0B,GAAG,SAAS,GAC1D,qBAAqB,CAiBvB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/** How the agent's store wrapper tells the metadata projection what a write is about to change and did change. */
|
|
3
|
+
export function createProjectionMutationObserver(getProjection) {
|
|
4
|
+
return {
|
|
5
|
+
begin(mutation) {
|
|
6
|
+
const projection = getProjection();
|
|
7
|
+
const release = projection?.recipientKeyRouteFence.begin(mutation);
|
|
8
|
+
let settled = false;
|
|
9
|
+
return (outcome) => {
|
|
10
|
+
if (settled)
|
|
11
|
+
return;
|
|
12
|
+
settled = true;
|
|
13
|
+
try {
|
|
14
|
+
if (outcome !== 'unchanged' && projection)
|
|
15
|
+
projection.invalidateStoreMutation(mutation);
|
|
16
|
+
}
|
|
17
|
+
finally {
|
|
18
|
+
release?.(outcome);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=projection-mutation-observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection-mutation-observer.js","sourceRoot":"","sources":["../../src/internal/projection-mutation-observer.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAKtC,kHAAkH;AAClH,MAAM,UAAU,gCAAgC,CAC9C,aAA2D;IAE3D,OAAO;QACL,KAAK,CAAC,QAAQ;YACZ,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,UAAU,EAAE,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnE,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO,CAAC,OAAO,EAAE,EAAE;gBACjB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC;oBACH,IAAI,OAAO,KAAK,WAAW,IAAI,UAAU;wBAAE,UAAU,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;gBAC1F,CAAC;wBAAS,CAAC;oBACT,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -40,14 +40,16 @@ export interface PromoteRecipientRetryTiming {
|
|
|
40
40
|
* Repeat a promote's recipient read while it fails with a retryable authority
|
|
41
41
|
* outage and the bound allows.
|
|
42
42
|
*
|
|
43
|
-
* The recipient read accepts its roster only while the
|
|
44
|
-
*
|
|
43
|
+
* The recipient read accepts its roster only while the facts it depends on
|
|
44
|
+
* stand still, and it gives up after a few attempts. For a private roster those
|
|
45
|
+
* are the roster, the peer allowlist and the members' keys and routes (GH#3067);
|
|
46
|
+
* the other kinds also watch the node-wide authority facts revision. Work that
|
|
45
47
|
* has nothing to do with this promote moves that revision: after a Context
|
|
46
48
|
* Graph is registered the node reconciles the new graph's gossip subscription
|
|
47
|
-
* several times within a few hundred milliseconds. A share
|
|
48
|
-
* a registration can therefore use up those attempts
|
|
49
|
-
* temporarily unavailable, although no fact changed
|
|
50
|
-
* moments later.
|
|
49
|
+
* several times within a few hundred milliseconds. A share of one of the other
|
|
50
|
+
* kinds sent straight after a registration can therefore use up those attempts
|
|
51
|
+
* and report the roster as temporarily unavailable, although no fact changed
|
|
52
|
+
* and the same read succeeds moments later.
|
|
51
53
|
*
|
|
52
54
|
* Repeating it is safe. It only reads authority and recipient keys, it fails
|
|
53
55
|
* closed every time, and the publisher asks for it before the attempt claims
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-promote-precommit.d.ts","sourceRoot":"","sources":["../../../src/internal/promote/assertion-promote-precommit.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,qCAAqC,CAAC;AAM7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,KAAK,YAAY,GAAG,OAAO,CACzB,UAAU,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC,CAC3D,CAAC;AAEF,KAAK,gCAAgC,GAAG,IAAI,CAC1C,uBAAuB,EACrB,cAAc,GACd,iBAAiB,GACjB,qBAAqB,GACrB,cAAc,GACd,cAAc,CACjB,CAAC;AAEF,KAAK,mCAAmC,GACpC,oCAAoC,GACpC,0BAA0B,GAC1B,iCAAiC,GACjC,8BAA8B,GAC9B,2BAA2B,CAAC;AAEhC,KAAK,6BAA6B,GAAG;KAClC,MAAM,IAAI,mCAAmC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CACrF,CAAC;AAEF,UAAU,8BAA8B;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,gCAAgC,CAAC;CAC5C;AAED,KAAK,+BAA+B,GAAG;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,gCAAgC,CAAC;CACpD,CAAC;AAuBF;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CASxE;AAED,8DAA8D;AAC9D,eAAO,MAAM,iCAAiC,EAAE,SAAS,MAAM,EAAmC,CAAC;AAEnG;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD,yEAAyE;AACzE,MAAM,WAAW,2BAA2B;IAC1C,GAAG,IAAI,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAOD
|
|
1
|
+
{"version":3,"file":"assertion-promote-precommit.d.ts","sourceRoot":"","sources":["../../../src/internal/promote/assertion-promote-precommit.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,qCAAqC,CAAC;AAM7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,KAAK,YAAY,GAAG,OAAO,CACzB,UAAU,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC,CAC3D,CAAC;AAEF,KAAK,gCAAgC,GAAG,IAAI,CAC1C,uBAAuB,EACrB,cAAc,GACd,iBAAiB,GACjB,qBAAqB,GACrB,cAAc,GACd,cAAc,CACjB,CAAC;AAEF,KAAK,mCAAmC,GACpC,oCAAoC,GACpC,0BAA0B,GAC1B,iCAAiC,GACjC,8BAA8B,GAC9B,2BAA2B,CAAC;AAEhC,KAAK,6BAA6B,GAAG;KAClC,MAAM,IAAI,mCAAmC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CACrF,CAAC;AAEF,UAAU,8BAA8B;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,gCAAgC,CAAC;CAC5C;AAED,KAAK,+BAA+B,GAAG;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,gCAAgC,CAAC;CACpD,CAAC;AAuBF;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CASxE;AAED,8DAA8D;AAC9D,eAAO,MAAM,iCAAiC,EAAE,SAAS,MAAM,EAAmC,CAAC;AAEnG;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD,yEAAyE;AACzE,MAAM,WAAW,2BAA2B;IAC1C,GAAG,IAAI,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAOD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,mCAAmC,CAAC,CAAC,EACzD,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,MAAM,GAAE,2BAAiE,GACxE,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,6BAA6B,EACnC,KAAK,EAAE,8BAA8B,EACrC,oBAAoB,CAAC,EAAE,2BAA2B,GACjD,OAAO,CAAC,+BAA+B,CAAC,CA+C1C"}
|
|
@@ -55,14 +55,16 @@ const REAL_PROMOTE_RECIPIENT_RETRY_TIMING = Object.freeze({
|
|
|
55
55
|
* Repeat a promote's recipient read while it fails with a retryable authority
|
|
56
56
|
* outage and the bound allows.
|
|
57
57
|
*
|
|
58
|
-
* The recipient read accepts its roster only while the
|
|
59
|
-
*
|
|
58
|
+
* The recipient read accepts its roster only while the facts it depends on
|
|
59
|
+
* stand still, and it gives up after a few attempts. For a private roster those
|
|
60
|
+
* are the roster, the peer allowlist and the members' keys and routes (GH#3067);
|
|
61
|
+
* the other kinds also watch the node-wide authority facts revision. Work that
|
|
60
62
|
* has nothing to do with this promote moves that revision: after a Context
|
|
61
63
|
* Graph is registered the node reconciles the new graph's gossip subscription
|
|
62
|
-
* several times within a few hundred milliseconds. A share
|
|
63
|
-
* a registration can therefore use up those attempts
|
|
64
|
-
* temporarily unavailable, although no fact changed
|
|
65
|
-
* moments later.
|
|
64
|
+
* several times within a few hundred milliseconds. A share of one of the other
|
|
65
|
+
* kinds sent straight after a registration can therefore use up those attempts
|
|
66
|
+
* and report the roster as temporarily unavailable, although no fact changed
|
|
67
|
+
* and the same read succeeds moments later.
|
|
66
68
|
*
|
|
67
69
|
* Repeating it is safe. It only reads authority and recipient keys, it fails
|
|
68
70
|
* closed every time, and the publisher asks for it before the attempt claims
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-promote-precommit.js","sourceRoot":"","sources":["../../../src/internal/promote/assertion-promote-precommit.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EACL,sBAAsB,EACtB,iDAAiD,GAClD,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,6BAA6B,GAE9B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,wCAAwC,EACxC,iDAAiD,GAClD,MAAM,uDAAuD,CAAC;AAsC/D,iFAAiF;AACjF,SAAS,+BAA+B,CAAC,KAAc;IACrD,OAAO,wCAAwC,CAAC,KAAK,CAAC;WACjD,iDAAiD,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,uBAAuB,CAAI,OAAyB;IACjE,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iCAAiC,CAAI,OAAgB;IACnE,IAAI,CAAC;QACH,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,iDAAiD,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iCAAiC,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEnG;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AAQvD,MAAM,mCAAmC,GAAgC,MAAM,CAAC,MAAM,CAAC;IACrF,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;IAC5B,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9F,CAAC,CAAC;AAEH
|
|
1
|
+
{"version":3,"file":"assertion-promote-precommit.js","sourceRoot":"","sources":["../../../src/internal/promote/assertion-promote-precommit.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EACL,sBAAsB,EACtB,iDAAiD,GAClD,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,6BAA6B,GAE9B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,wCAAwC,EACxC,iDAAiD,GAClD,MAAM,uDAAuD,CAAC;AAsC/D,iFAAiF;AACjF,SAAS,+BAA+B,CAAC,KAAc;IACrD,OAAO,wCAAwC,CAAC,KAAK,CAAC;WACjD,iDAAiD,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,uBAAuB,CAAI,OAAyB;IACjE,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iCAAiC,CAAI,OAAgB;IACnE,IAAI,CAAC;QACH,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,iDAAiD,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iCAAiC,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEnG;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AAQvD,MAAM,mCAAmC,GAAgC,MAAM,CAAC,MAAM,CAAC;IACrF,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;IAC5B,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9F,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,OAAyB,EACzB,SAAsC,mCAAmC;IAEzE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IAC/B,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC;YAC3D,IACE,OAAO,KAAK,SAAS;mBAClB,CAAC,+BAA+B,CAAC,KAAK,CAAC;mBACvC,MAAM,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,iCAAiC,EACzE,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAmC,EACnC,KAAqC,EACrC,oBAAkD;IAElD,OAAO,uBAAuB,CAAC,KAAK,IAAI,EAAE;QACxC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACzF,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAC7D,KAAK,CAAC,cAAc,EACpB,YAAY,EACZ;YACE,eAAe,EAAE,KAAK,CAAC,OAAO,EAAE,eAAe;YAC/C,mBAAmB,EAAE,KAAK,CAAC,OAAO,EAAE,mBAAmB;SACxD,EACD,sBAAsB,CAAC,OAAO,CAAC,CAChC,CAAC;QAEF,IAAI,iBAAiB,GAAG,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC;QACpD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAClF,IAAI,WAAW,CAAC,YAAY,KAAK,CAAC;gBAAE,iBAAiB,GAAG,WAAW,CAAC;iBAC/D,IAAI,WAAW,CAAC,YAAY,KAAK,CAAC;gBAAE,iBAAiB,GAAG,QAAQ,CAAC;iBACjE,IAAI,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1E,iBAAiB,GAAG,WAAW,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO;YACL,YAAY;YACZ,gBAAgB,EAAE;gBAChB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,KAAK,SAAS;oBAC3C,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;oBAC9C,CAAC,CAAC,EAAE,CAAC;gBACP,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,kBAAkB,EAAE,YAAY,EAAE,YAAY;gBAC9C,mBAAmB,EAAE,mBAAmB,KAAK,SAAS;oBACpD,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAC5E,0BAA0B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,uBAAuB,CAC9D,GAAG,EAAE,CAAC,mCAAmC,CACvC,GAAG,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,EACnD,oBAAoB,CACrB,CACF;gBACD,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,KAAK,SAAS;oBAC3C,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;oBACnD,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Quad, TripleStore } from '@origintrail-official/dkg-storage';
|
|
2
|
+
import type { StoreMutation, StoreMutationOutcome, StoreRemoval } from './store-mutation.js';
|
|
3
|
+
/** The predicates a recipient key lookup reads. Each is read only on an agent DID or key IRI subject. */
|
|
4
|
+
export declare const RECIPIENT_KEY_ROUTE_PREDICATES: ReadonlySet<string>;
|
|
5
|
+
/**
|
|
6
|
+
* A revision that moves only when a write can change which recipient keys or
|
|
7
|
+
* routes a private-roster resolution finds. It ignores the job, share, metadata
|
|
8
|
+
* and content writes that move the node-wide authority revision on a busy node.
|
|
9
|
+
*
|
|
10
|
+
* Fail closed: anything this class cannot prove harmless moves the revision.
|
|
11
|
+
* A removal is harmless when its subject is not an agent DID, its predicate is
|
|
12
|
+
* not a key or route predicate, or its graph has never held such a fact. The
|
|
13
|
+
* lookup reads every named graph, so the graphs that hold key facts are found
|
|
14
|
+
* by one scan and kept current from every write that names its quads. A write
|
|
15
|
+
* is opaque when it may change anything, or stores a key fact under a graph
|
|
16
|
+
* name that is not a bare IRI (an adapter may store it under another name): the
|
|
17
|
+
* list is not trusted while it is in flight, nor after it has changed something,
|
|
18
|
+
* until a scan has run again. An opaque write whose outcome is unknown may still
|
|
19
|
+
* commit later, into a graph no scan has seen, so after one the list is never
|
|
20
|
+
* trusted again and a removal moves the revision unless its subject or predicate
|
|
21
|
+
* proves it harmless.
|
|
22
|
+
*/
|
|
23
|
+
export declare class RecipientKeyRouteFence {
|
|
24
|
+
private readonly store;
|
|
25
|
+
private value;
|
|
26
|
+
private readonly keyGraphs;
|
|
27
|
+
private staleGeneration;
|
|
28
|
+
private scannedGeneration;
|
|
29
|
+
private pendingEverything;
|
|
30
|
+
private graphsUnknown;
|
|
31
|
+
private scan;
|
|
32
|
+
constructor(store: TripleStore);
|
|
33
|
+
get revision(): number;
|
|
34
|
+
private get trusted();
|
|
35
|
+
/**
|
|
36
|
+
* A write is about to be dispatched. The graphs of its quads are learned before
|
|
37
|
+
* it can commit, so no removal of one of them completes while it is unknown. An
|
|
38
|
+
* opaque write makes the list untrusted until it has settled and the graphs have
|
|
39
|
+
* been scanned again. Returns what to call when it settles.
|
|
40
|
+
*/
|
|
41
|
+
begin(mutation: StoreMutation): (outcome?: StoreMutationOutcome) => void;
|
|
42
|
+
/** Quads that were inserted, removed or replaced into a graph. */
|
|
43
|
+
noteQuads(quads: readonly Quad[]): void;
|
|
44
|
+
/** A removal whose scope is known, in whole or in part. */
|
|
45
|
+
noteRemoval({ graph, subject, predicate }: StoreRemoval): void;
|
|
46
|
+
/** A write that may have changed anything has changed something (an UPDATE, a prefix delete). */
|
|
47
|
+
noteUnscopedWrite(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Make the set of key-holding graphs trustworthy before a resolution reads the
|
|
50
|
+
* revision. A failed scan, or one that overlapped a write that may change
|
|
51
|
+
* anything, leaves it untrusted, so removals keep moving the revision until a
|
|
52
|
+
* later scan.
|
|
53
|
+
*/
|
|
54
|
+
ensureReady(): Promise<void>;
|
|
55
|
+
private scanKeyGraphs;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=recipient-key-route-fence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipient-key-route-fence.d.ts","sourceRoot":"","sources":["../../src/internal/recipient-key-route-fence.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7F,yGAAyG;AACzG,eAAO,MAAM,8BAA8B,EAAE,WAAW,CAAC,MAAM,CAE9D,CAAC;AA0BF;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,sBAAsB;IASrB,OAAO,CAAC,QAAQ,CAAC,KAAK;IARlC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,IAAI,CAA8B;gBAEb,KAAK,EAAE,WAAW;IAE/C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,OAAO,KAAK,OAAO,GAElB;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,OAAO,CAAC,EAAE,oBAAoB,KAAK,IAAI;IAmCxE,kEAAkE;IAClE,SAAS,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI;IAYvC,2DAA2D;IAC3D,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,YAAY,GAAG,IAAI;IAO9D,iGAAiG;IACjG,iBAAiB,IAAI,IAAI;IAKzB;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;YAMpB,aAAa;CAa5B"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
import { AGENT_DID_PREFIX, isSafeIri, unwrapIri } from '@origintrail-official/dkg-core';
|
|
3
|
+
import { WORKSPACE_RECIPIENT_KEY_ROUTE_PREDICATES } from '@origintrail-official/dkg-publisher';
|
|
4
|
+
/** The predicates a recipient key lookup reads. Each is read only on an agent DID or key IRI subject. */
|
|
5
|
+
export const RECIPIENT_KEY_ROUTE_PREDICATES = new Set(WORKSPACE_RECIPIENT_KEY_ROUTE_PREDICATES);
|
|
6
|
+
// One branch per predicate, so every pattern is bound by its predicate and the scan
|
|
7
|
+
// reads only the key and route facts, never every triple of every graph.
|
|
8
|
+
const KEY_GRAPH_SCAN = `SELECT DISTINCT ?g WHERE {
|
|
9
|
+
${[...RECIPIENT_KEY_ROUTE_PREDICATES].map((predicate) => `{ GRAPH ?g { ?s <${predicate}> ?o } }`).join('\n UNION\n ')}
|
|
10
|
+
FILTER(STRSTARTS(STR(?s), "${AGENT_DID_PREFIX}"))
|
|
11
|
+
}`;
|
|
12
|
+
// Harmlessness is proven only by a bare IRI that is not an agent DID. Some adapters
|
|
13
|
+
// read an empty term as a wildcard, rewrite unsafe characters, and turn a blank node
|
|
14
|
+
// in a delete into a variable that can match any subject; none of those prove
|
|
15
|
+
// anything, and `isSafeIri` refuses all of them (and brackets, and a name without
|
|
16
|
+
// a scheme).
|
|
17
|
+
const isNonAgentIri = (term) => (term !== undefined && isSafeIri(term) && !term.startsWith(AGENT_DID_PREFIX));
|
|
18
|
+
const isBareIri = (term) => term !== undefined && isSafeIri(term);
|
|
19
|
+
// A predicate that is not a bare IRI may be stored under another name (an adapter cleans unsafe
|
|
20
|
+
// characters), so it cannot be shown to be something other than a key or route predicate.
|
|
21
|
+
const isKeyRouteFact = (quad) => ((RECIPIENT_KEY_ROUTE_PREDICATES.has(unwrapIri(quad.predicate)) || !isBareIri(quad.predicate))
|
|
22
|
+
&& !isNonAgentIri(quad.subject));
|
|
23
|
+
/**
|
|
24
|
+
* A revision that moves only when a write can change which recipient keys or
|
|
25
|
+
* routes a private-roster resolution finds. It ignores the job, share, metadata
|
|
26
|
+
* and content writes that move the node-wide authority revision on a busy node.
|
|
27
|
+
*
|
|
28
|
+
* Fail closed: anything this class cannot prove harmless moves the revision.
|
|
29
|
+
* A removal is harmless when its subject is not an agent DID, its predicate is
|
|
30
|
+
* not a key or route predicate, or its graph has never held such a fact. The
|
|
31
|
+
* lookup reads every named graph, so the graphs that hold key facts are found
|
|
32
|
+
* by one scan and kept current from every write that names its quads. A write
|
|
33
|
+
* is opaque when it may change anything, or stores a key fact under a graph
|
|
34
|
+
* name that is not a bare IRI (an adapter may store it under another name): the
|
|
35
|
+
* list is not trusted while it is in flight, nor after it has changed something,
|
|
36
|
+
* until a scan has run again. An opaque write whose outcome is unknown may still
|
|
37
|
+
* commit later, into a graph no scan has seen, so after one the list is never
|
|
38
|
+
* trusted again and a removal moves the revision unless its subject or predicate
|
|
39
|
+
* proves it harmless.
|
|
40
|
+
*/
|
|
41
|
+
export class RecipientKeyRouteFence {
|
|
42
|
+
store;
|
|
43
|
+
value = 0;
|
|
44
|
+
keyGraphs = new Set();
|
|
45
|
+
staleGeneration = 0;
|
|
46
|
+
scannedGeneration = -1;
|
|
47
|
+
pendingEverything = 0;
|
|
48
|
+
graphsUnknown = false;
|
|
49
|
+
scan = null;
|
|
50
|
+
constructor(store) {
|
|
51
|
+
this.store = store;
|
|
52
|
+
}
|
|
53
|
+
get revision() {
|
|
54
|
+
return this.value;
|
|
55
|
+
}
|
|
56
|
+
get trusted() {
|
|
57
|
+
return !this.graphsUnknown && this.scannedGeneration === this.staleGeneration;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A write is about to be dispatched. The graphs of its quads are learned before
|
|
61
|
+
* it can commit, so no removal of one of them completes while it is unknown. An
|
|
62
|
+
* opaque write makes the list untrusted until it has settled and the graphs have
|
|
63
|
+
* been scanned again. Returns what to call when it settles.
|
|
64
|
+
*/
|
|
65
|
+
begin(mutation) {
|
|
66
|
+
const unscoped = mutation.everything === true
|
|
67
|
+
|| mutation.quads?.some((quad) => !isBareIri(quad.predicate)) === true
|
|
68
|
+
|| mutation.removals?.some(({ graph }) => !isBareIri(graph)) === true;
|
|
69
|
+
let opaque = unscoped;
|
|
70
|
+
for (const quad of mutation.quads ?? []) {
|
|
71
|
+
if (!isKeyRouteFact(quad))
|
|
72
|
+
continue;
|
|
73
|
+
if (isBareIri(quad.graph))
|
|
74
|
+
this.keyGraphs.add(quad.graph);
|
|
75
|
+
else
|
|
76
|
+
opaque = true;
|
|
77
|
+
}
|
|
78
|
+
if (opaque) {
|
|
79
|
+
this.staleGeneration += 1;
|
|
80
|
+
this.pendingEverything += 1;
|
|
81
|
+
}
|
|
82
|
+
let settled = false;
|
|
83
|
+
return (outcome = 'changed') => {
|
|
84
|
+
if (settled)
|
|
85
|
+
return;
|
|
86
|
+
settled = true;
|
|
87
|
+
try {
|
|
88
|
+
if (outcome !== 'unchanged') {
|
|
89
|
+
if (unscoped)
|
|
90
|
+
this.noteUnscopedWrite();
|
|
91
|
+
else {
|
|
92
|
+
for (const removal of mutation.removals ?? [])
|
|
93
|
+
this.noteRemoval(removal);
|
|
94
|
+
if (mutation.quads)
|
|
95
|
+
this.noteQuads(mutation.quads);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
if (opaque) {
|
|
101
|
+
this.pendingEverything -= 1;
|
|
102
|
+
if (outcome === 'indeterminate')
|
|
103
|
+
this.graphsUnknown = true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/** Quads that were inserted, removed or replaced into a graph. */
|
|
109
|
+
noteQuads(quads) {
|
|
110
|
+
let changed = false;
|
|
111
|
+
for (const quad of quads) {
|
|
112
|
+
if (!isKeyRouteFact(quad))
|
|
113
|
+
continue;
|
|
114
|
+
// A name that is not a bare IRI may be stored under another one: the next scan learns it.
|
|
115
|
+
if (isBareIri(quad.graph))
|
|
116
|
+
this.keyGraphs.add(quad.graph);
|
|
117
|
+
else
|
|
118
|
+
this.staleGeneration += 1;
|
|
119
|
+
changed = true;
|
|
120
|
+
}
|
|
121
|
+
if (changed)
|
|
122
|
+
this.value += 1;
|
|
123
|
+
}
|
|
124
|
+
/** A removal whose scope is known, in whole or in part. */
|
|
125
|
+
noteRemoval({ graph, subject, predicate }) {
|
|
126
|
+
if (isNonAgentIri(subject))
|
|
127
|
+
return;
|
|
128
|
+
if (isBareIri(predicate) && !RECIPIENT_KEY_ROUTE_PREDICATES.has(predicate))
|
|
129
|
+
return;
|
|
130
|
+
if (isBareIri(graph) && this.trusted && !this.keyGraphs.has(graph))
|
|
131
|
+
return;
|
|
132
|
+
this.value += 1;
|
|
133
|
+
}
|
|
134
|
+
/** A write that may have changed anything has changed something (an UPDATE, a prefix delete). */
|
|
135
|
+
noteUnscopedWrite() {
|
|
136
|
+
this.value += 1;
|
|
137
|
+
this.staleGeneration += 1;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Make the set of key-holding graphs trustworthy before a resolution reads the
|
|
141
|
+
* revision. A failed scan, or one that overlapped a write that may change
|
|
142
|
+
* anything, leaves it untrusted, so removals keep moving the revision until a
|
|
143
|
+
* later scan.
|
|
144
|
+
*/
|
|
145
|
+
async ensureReady() {
|
|
146
|
+
if (this.trusted || this.graphsUnknown)
|
|
147
|
+
return;
|
|
148
|
+
this.scan ??= this.scanKeyGraphs().finally(() => { this.scan = null; });
|
|
149
|
+
await this.scan;
|
|
150
|
+
}
|
|
151
|
+
async scanKeyGraphs() {
|
|
152
|
+
const generation = this.staleGeneration;
|
|
153
|
+
try {
|
|
154
|
+
const result = await this.store.query(KEY_GRAPH_SCAN, { source: 'agent.recipientKeyRouteFence.scan' });
|
|
155
|
+
if (result.type !== 'bindings')
|
|
156
|
+
return;
|
|
157
|
+
for (const row of result.bindings) {
|
|
158
|
+
if (typeof row['g'] === 'string')
|
|
159
|
+
this.keyGraphs.add(unwrapIri(row['g']));
|
|
160
|
+
}
|
|
161
|
+
if (generation === this.staleGeneration && this.pendingEverything === 0)
|
|
162
|
+
this.scannedGeneration = generation;
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
// Not ready: every removal that cannot be proven harmless by subject or predicate still moves the revision.
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=recipient-key-route-fence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipient-key-route-fence.js","sourceRoot":"","sources":["../../src/internal/recipient-key-route-fence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Quad } from '@origintrail-official/dkg-storage';
|
|
2
|
+
/** What a removal names. An absent field means "any". */
|
|
3
|
+
export interface StoreRemoval {
|
|
4
|
+
readonly graph?: string;
|
|
5
|
+
readonly subject?: string;
|
|
6
|
+
readonly predicate?: string;
|
|
7
|
+
}
|
|
8
|
+
/** What a store write does, described once and reused before it is dispatched and after it settles. */
|
|
9
|
+
export interface StoreMutation {
|
|
10
|
+
/** Quads it inserts, or removes by value (a blank node among them can stand for any subject). */
|
|
11
|
+
readonly quads?: readonly Quad[];
|
|
12
|
+
/** What it removes by scope. */
|
|
13
|
+
readonly removals?: readonly StoreRemoval[];
|
|
14
|
+
/** It may change anything (an UPDATE, a prefix delete). */
|
|
15
|
+
readonly everything?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* How a write ended. `unchanged`: it provably changed nothing (it succeeded without
|
|
19
|
+
* effect, or was refused before dispatch). `indeterminate`: it failed in a way that
|
|
20
|
+
* does not prove it did not commit (a timeout, a lost response), so a remote backend
|
|
21
|
+
* may still apply it later.
|
|
22
|
+
*/
|
|
23
|
+
export type StoreMutationOutcome = 'changed' | 'unchanged' | 'indeterminate';
|
|
24
|
+
export interface StoreMutationObserver {
|
|
25
|
+
/** Called before a write is dispatched. The returned function is called exactly once, when the write settles. */
|
|
26
|
+
begin(mutation: StoreMutation): (outcome: StoreMutationOutcome) => void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=store-mutation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-mutation.d.ts","sourceRoot":"","sources":["../../src/internal/store-mutation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAE9D,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,uGAAuG;AACvG,MAAM,WAAW,aAAa;IAC5B,iGAAiG;IACjG,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACjC,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,WAAW,GAAG,eAAe,CAAC;AAE7E,MAAM,WAAW,qBAAqB;IACpC,iHAAiH;IACjH,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACzE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-mutation.js","sourceRoot":"","sources":["../../src/internal/store-mutation.ts"],"names":[],"mappings":"AAAA,sCAAsC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Main-thread CPU a sliced loop may use before timers and I/O get a turn. */
|
|
2
|
+
export declare const MAIN_THREAD_TIME_SLICE_MS = 25;
|
|
3
|
+
/**
|
|
4
|
+
* One full turn of the event loop: due timers and ready I/O both run before
|
|
5
|
+
* the caller continues. One immediate is not enough for a caller that was
|
|
6
|
+
* resumed by an I/O callback: it runs in the same loop iteration, ahead of the
|
|
7
|
+
* next timers phase. The second one cannot. Use it between two phases that
|
|
8
|
+
* each walk a whole set.
|
|
9
|
+
*/
|
|
10
|
+
export declare function yieldMainThread(): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Checkpoint for a CPU-bound loop that runs on the daemon's main thread.
|
|
13
|
+
* Await it between iterations: once the work since the last turn has used
|
|
14
|
+
* `sliceMs`, it gives the event loop one full turn before the loop continues.
|
|
15
|
+
* A resolved promise does not do that: its continuation runs before the
|
|
16
|
+
* event loop moves on. The total CPU is unchanged.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createMainThreadTimeSlice(sliceMs?: number): () => Promise<void>;
|
|
19
|
+
//# sourceMappingURL=main-thread-time-slice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-thread-time-slice.d.ts","sourceRoot":"","sources":["../src/main-thread-time-slice.ts"],"names":[],"mappings":"AAIA,8EAA8E;AAC9E,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;;;GAMG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrD;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,MAAkC,GAC1C,MAAM,OAAO,CAAC,IAAI,CAAC,CAOrB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
import { setImmediate as nextMacrotask } from 'node:timers/promises';
|
|
3
|
+
/** Main-thread CPU a sliced loop may use before timers and I/O get a turn. */
|
|
4
|
+
export const MAIN_THREAD_TIME_SLICE_MS = 25;
|
|
5
|
+
/**
|
|
6
|
+
* One full turn of the event loop: due timers and ready I/O both run before
|
|
7
|
+
* the caller continues. One immediate is not enough for a caller that was
|
|
8
|
+
* resumed by an I/O callback: it runs in the same loop iteration, ahead of the
|
|
9
|
+
* next timers phase. The second one cannot. Use it between two phases that
|
|
10
|
+
* each walk a whole set.
|
|
11
|
+
*/
|
|
12
|
+
export async function yieldMainThread() {
|
|
13
|
+
await nextMacrotask();
|
|
14
|
+
await nextMacrotask();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Checkpoint for a CPU-bound loop that runs on the daemon's main thread.
|
|
18
|
+
* Await it between iterations: once the work since the last turn has used
|
|
19
|
+
* `sliceMs`, it gives the event loop one full turn before the loop continues.
|
|
20
|
+
* A resolved promise does not do that: its continuation runs before the
|
|
21
|
+
* event loop moves on. The total CPU is unchanged.
|
|
22
|
+
*/
|
|
23
|
+
export function createMainThreadTimeSlice(sliceMs = MAIN_THREAD_TIME_SLICE_MS) {
|
|
24
|
+
let sliceStartedAt = performance.now();
|
|
25
|
+
return async () => {
|
|
26
|
+
if (performance.now() - sliceStartedAt < sliceMs)
|
|
27
|
+
return;
|
|
28
|
+
await yieldMainThread();
|
|
29
|
+
sliceStartedAt = performance.now();
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=main-thread-time-slice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-thread-time-slice.js","sourceRoot":"","sources":["../src/main-thread-time-slice.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,aAAa,EAAE,CAAC;IACtB,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAkB,yBAAyB;IAE3C,IAAI,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACvC,OAAO,KAAK,IAAmB,EAAE;QAC/B,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,OAAO;YAAE,OAAO;QACzD,MAAM,eAAe,EAAE,CAAC;QACxB,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-ack-registrar.d.ts","sourceRoot":"","sources":["../../src/p2p/storage-ack-registrar.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"storage-ack-registrar.d.ts","sourceRoot":"","sources":["../../src/p2p/storage-ack-registrar.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,11 +107,9 @@ export function createStorageACKRegistrationPlan(ports) {
|
|
|
107
107
|
chainId: chainIdForHandler,
|
|
108
108
|
kav10Address: kav10AddressForHandler,
|
|
109
109
|
workspaceWriteLocks: ports.writeLocks,
|
|
110
|
-
resolveDurableRootAtomicCompanion:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
return ports.prepareDurableRootAtomicCompanion(input);
|
|
114
|
-
},
|
|
110
|
+
resolveDurableRootAtomicCompanion: ports.config.dataDir === undefined
|
|
111
|
+
? undefined
|
|
112
|
+
: ports.prepareDurableRootAtomicCompanion,
|
|
115
113
|
ackHandlerDeadlineMs: ports.config.storageAckTiming.handlerDeadlineMs,
|
|
116
114
|
// Codex review (round 2) on PR #727: must NOT collapse to a
|
|
117
115
|
// plain `gossipWireIdFor` because `PublishIntent.swmGraphId`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-ack-registrar.js","sourceRoot":"","sources":["../../src/p2p/storage-ack-registrar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage-ack-registrar.js","sourceRoot":"","sources":["../../src/p2p/storage-ack-registrar.ts"],"names":[],"mappings":"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"}
|