@enbox/agent 0.5.9 → 0.5.11

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.
Files changed (44) hide show
  1. package/dist/browser.mjs +9 -9
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/dwn-api.js.map +1 -1
  4. package/dist/esm/dwn-record-upgrade.js +1 -1
  5. package/dist/esm/dwn-record-upgrade.js.map +1 -1
  6. package/dist/esm/index.js +4 -0
  7. package/dist/esm/index.js.map +1 -1
  8. package/dist/esm/sync-closure-resolver.js +855 -0
  9. package/dist/esm/sync-closure-resolver.js.map +1 -0
  10. package/dist/esm/sync-closure-types.js +189 -0
  11. package/dist/esm/sync-closure-types.js.map +1 -0
  12. package/dist/esm/sync-engine-level.js +977 -224
  13. package/dist/esm/sync-engine-level.js.map +1 -1
  14. package/dist/esm/sync-messages.js +19 -5
  15. package/dist/esm/sync-messages.js.map +1 -1
  16. package/dist/esm/sync-replication-ledger.js +220 -0
  17. package/dist/esm/sync-replication-ledger.js.map +1 -0
  18. package/dist/esm/types/sync.js +54 -1
  19. package/dist/esm/types/sync.js.map +1 -1
  20. package/dist/types/dwn-api.d.ts.map +1 -1
  21. package/dist/types/index.d.ts +5 -0
  22. package/dist/types/index.d.ts.map +1 -1
  23. package/dist/types/sync-closure-resolver.d.ts +19 -0
  24. package/dist/types/sync-closure-resolver.d.ts.map +1 -0
  25. package/dist/types/sync-closure-types.d.ts +122 -0
  26. package/dist/types/sync-closure-types.d.ts.map +1 -0
  27. package/dist/types/sync-engine-level.d.ts +137 -11
  28. package/dist/types/sync-engine-level.d.ts.map +1 -1
  29. package/dist/types/sync-messages.d.ts +6 -1
  30. package/dist/types/sync-messages.d.ts.map +1 -1
  31. package/dist/types/sync-replication-ledger.d.ts +72 -0
  32. package/dist/types/sync-replication-ledger.d.ts.map +1 -0
  33. package/dist/types/types/sync.d.ts +188 -0
  34. package/dist/types/types/sync.d.ts.map +1 -1
  35. package/package.json +3 -3
  36. package/src/dwn-api.ts +2 -1
  37. package/src/dwn-record-upgrade.ts +1 -1
  38. package/src/index.ts +5 -0
  39. package/src/sync-closure-resolver.ts +919 -0
  40. package/src/sync-closure-types.ts +270 -0
  41. package/src/sync-engine-level.ts +1062 -255
  42. package/src/sync-messages.ts +21 -6
  43. package/src/sync-replication-ledger.ts +197 -0
  44. package/src/types/sync.ts +202 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-closure-resolver.js","sourceRoot":"","sources":["../../src/sync-closure-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,189 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Closure failure codes
3
+ // ---------------------------------------------------------------------------
4
+ /**
5
+ * Typed failure codes for closure resolution. Each code maps to a specific
6
+ * dependency class from the closure RFC.
7
+ */
8
+ export var ClosureFailureCode;
9
+ (function (ClosureFailureCode) {
10
+ /** Class 1: The ProtocolsConfigure for the protocol could not be found. */
11
+ ClosureFailureCode["ProtocolMetadataMissing"] = "ClosureProtocolMetadataMissing";
12
+ /** Class 2: The initialWrite for a non-initial RecordsWrite is missing. */
13
+ ClosureFailureCode["InitialWriteMissing"] = "ClosureInitialWriteMissing";
14
+ /** Class 2: A parent record in the parentId chain is missing. */
15
+ ClosureFailureCode["ParentChainMissing"] = "ClosureParentChainMissing";
16
+ /** Class 2: A context ancestor record is missing. */
17
+ ClosureFailureCode["ContextChainMissing"] = "ClosureContextChainMissing";
18
+ /** Class 3: A permission grant referenced by permissionGrantId is missing. */
19
+ ClosureFailureCode["GrantMissing"] = "ClosureGrantMissing";
20
+ /** Class 3: The grant exists but is not yet active at the message's timestamp. */
21
+ ClosureFailureCode["GrantNotYetActive"] = "ClosureGrantNotYetActive";
22
+ /** Class 3: The grant exists but has expired at the message's timestamp. */
23
+ ClosureFailureCode["GrantExpired"] = "ClosureGrantExpired";
24
+ /** Class 3: A revocation record that affects a referenced grant is missing. */
25
+ ClosureFailureCode["GrantRevocationMissing"] = "ClosureGrantRevocationMissing";
26
+ /** Class 4: A squash floor or visibility-floor record is missing. */
27
+ ClosureFailureCode["VisibilityFloorMissing"] = "ClosureVisibilityFloorMissing";
28
+ /** Class 5: An encryption/key-delivery dependency is missing. */
29
+ ClosureFailureCode["EncryptionDependencyMissing"] = "ClosureEncryptionDependencyMissing";
30
+ /** Class 6: A cross-protocol $ref dependency is missing. */
31
+ ClosureFailureCode["CrossProtocolReferenceMissing"] = "ClosureCrossProtocolReferenceMissing";
32
+ /** A dependency exists but the syncing principal is not authorized to fetch it. */
33
+ ClosureFailureCode["DependencyForbidden"] = "ClosureDependencyForbidden";
34
+ /** Traversal depth exceeded the configured maximum (default 32). */
35
+ ClosureFailureCode["DepthExceeded"] = "ClosureDepthExceeded";
36
+ })(ClosureFailureCode || (ClosureFailureCode = {}));
37
+ /**
38
+ * Create a fresh evaluation context for a batch of closure evaluations.
39
+ */
40
+ export function createClosureContext(tenantDid, maxDepth) {
41
+ return {
42
+ tenantDid,
43
+ protocolCache: new Map(),
44
+ grantCache: new Map(),
45
+ satisfiedDeps: new Set(),
46
+ missingDeps: new Set(),
47
+ maxDepth: maxDepth !== null && maxDepth !== void 0 ? maxDepth : 32,
48
+ };
49
+ }
50
+ /**
51
+ * Invalidate cached entries that may be affected by a newly processed message.
52
+ * Called after `processRawMessage` succeeds to ensure subsequent closure
53
+ * evaluations see the updated state.
54
+ *
55
+ * - `ProtocolsConfigure` → clears protocolCache for that protocol URI
56
+ * - Permissions grant write → clears grantCache for that recordId
57
+ * - Permissions revocation → clears grantCache for the parent grantId
58
+ * - Any Records message → clears satisfiedDeps/missingDeps for that recordId
59
+ * (the message may have changed what's locally present)
60
+ */
61
+ export function invalidateClosureCache(context, message) {
62
+ var _a;
63
+ const desc = message.descriptor;
64
+ // ProtocolsConfigure update → invalidate protocol cache.
65
+ if (desc.interface === 'Protocols' && desc.method === 'Configure') {
66
+ const protocol = desc.definition
67
+ ? desc.definition.protocol
68
+ : undefined;
69
+ if (protocol) {
70
+ context.protocolCache.delete(protocol);
71
+ }
72
+ }
73
+ // Permissions protocol messages → invalidate grant/revocation cache.
74
+ if (desc.protocol === 'https://identity.foundation/dwn/permissions') {
75
+ const recordId = message.recordId;
76
+ const protocolPath = desc.protocolPath;
77
+ if (protocolPath === 'grant' && recordId) {
78
+ // Grant write → invalidate the grant cache and dep keys.
79
+ context.grantCache.delete(recordId);
80
+ context.satisfiedDeps.delete(`permissionGrant:grantId:${recordId}`);
81
+ context.missingDeps.delete(`permissionGrant:grantId:${recordId}`);
82
+ }
83
+ if (protocolPath === 'grant/revocation') {
84
+ // Revocation write → invalidate revocation cache and both dep keys.
85
+ const parentId = desc.parentId;
86
+ if (parentId) {
87
+ context.grantCache.delete(`revocation:${parentId}`);
88
+ context.satisfiedDeps.delete(`grantRevocation:grantId:${parentId}`);
89
+ context.missingDeps.delete(`grantRevocation:grantId:${parentId}`);
90
+ // Also invalidate the grant itself since its revocation state changed.
91
+ context.satisfiedDeps.delete(`permissionGrant:grantId:${parentId}`);
92
+ context.missingDeps.delete(`permissionGrant:grantId:${parentId}`);
93
+ }
94
+ }
95
+ }
96
+ // Any Records message → invalidate dep keys that could be affected.
97
+ // Handles multiple key formats:
98
+ // - plain recordId entries (class 2 parent/context/initialWrite)
99
+ // - composite protocol|recordId entries (class 6 crossProtocolParent)
100
+ // - filter-based entries keyed by protocol+protocolPath (class 6 role records)
101
+ // - contextKeyRecord entries keyed by source protocol from tags (class 5)
102
+ // Uses boundary-aware matching for recordId to avoid substring collisions,
103
+ // prefix matching for filter/contextKey entries, and tag-based source
104
+ // protocol extraction for key-delivery records.
105
+ if (desc.interface === 'Records') {
106
+ const recordId = message.recordId;
107
+ const protocol = desc.protocol;
108
+ const protocolPath = desc.protocolPath;
109
+ if (recordId) {
110
+ // Invalidate dep keys that reference this exact recordId.
111
+ // Check for recordId at a key boundary (preceded by ':' or '|')
112
+ // to avoid substring false matches (e.g., 'thread-1' matching 'thread-10').
113
+ const matchesRecordId = (key) => {
114
+ const idx = key.indexOf(recordId);
115
+ if (idx === -1) {
116
+ return false;
117
+ }
118
+ const charBefore = idx > 0 ? key[idx - 1] : ':';
119
+ const charAfter = idx + recordId.length < key.length ? key[idx + recordId.length] : '|';
120
+ const validBefore = charBefore === ':' || charBefore === '|';
121
+ const validAfter = charAfter === '|' || charAfter === undefined;
122
+ return validBefore && (idx + recordId.length === key.length || validAfter);
123
+ };
124
+ for (const key of context.satisfiedDeps) {
125
+ if (matchesRecordId(key)) {
126
+ context.satisfiedDeps.delete(key);
127
+ }
128
+ }
129
+ for (const key of context.missingDeps) {
130
+ if (matchesRecordId(key)) {
131
+ context.missingDeps.delete(key);
132
+ }
133
+ }
134
+ }
135
+ // Invalidate filter-based role record deps that match this protocol + protocolPath.
136
+ // Dep keys are "label:filter:protocol|protocolPath|author|context".
137
+ // We match any key containing "filter:protocol|protocolPath".
138
+ if (protocol && protocolPath) {
139
+ const filterFragment = `filter:${protocol}|${protocolPath}`;
140
+ for (const key of context.satisfiedDeps) {
141
+ if (key.includes(filterFragment)) {
142
+ context.satisfiedDeps.delete(key);
143
+ }
144
+ }
145
+ for (const key of context.missingDeps) {
146
+ if (key.includes(filterFragment)) {
147
+ context.missingDeps.delete(key);
148
+ }
149
+ }
150
+ }
151
+ // Invalidate contextKeyRecord deps.
152
+ // Context key records are in the key-delivery protocol, but their closure
153
+ // cache keys use the SOURCE protocol (from tags.protocol), not the
154
+ // key-delivery protocol URI. So when a key-delivery record arrives, we
155
+ // must extract the source protocol from the record's tags.
156
+ if (protocol === 'https://identity.foundation/protocols/key-delivery') {
157
+ // Real key-delivery writes have tags: { protocol: sourceProtocol, contextId: ... }
158
+ const tags = (_a = message.descriptor) === null || _a === void 0 ? void 0 : _a.tags;
159
+ const sourceProtocol = tags === null || tags === void 0 ? void 0 : tags.protocol;
160
+ if (sourceProtocol) {
161
+ const ctxKeyFragment = `messageCid:${sourceProtocol}|`;
162
+ for (const key of context.satisfiedDeps) {
163
+ if (key.includes(ctxKeyFragment)) {
164
+ context.satisfiedDeps.delete(key);
165
+ }
166
+ }
167
+ for (const key of context.missingDeps) {
168
+ if (key.includes(ctxKeyFragment)) {
169
+ context.missingDeps.delete(key);
170
+ }
171
+ }
172
+ }
173
+ }
174
+ else if (protocol) {
175
+ const ctxKeyFragment = `messageCid:${protocol}|`;
176
+ for (const key of context.satisfiedDeps) {
177
+ if (key.includes(ctxKeyFragment)) {
178
+ context.satisfiedDeps.delete(key);
179
+ }
180
+ }
181
+ for (const key of context.missingDeps) {
182
+ if (key.includes(ctxKeyFragment)) {
183
+ context.missingDeps.delete(key);
184
+ }
185
+ }
186
+ }
187
+ }
188
+ }
189
+ //# sourceMappingURL=sync-closure-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-closure-types.js","sourceRoot":"","sources":["../../src/sync-closure-types.ts"],"names":[],"mappings":"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"}