@enbox/agent 0.1.5 → 0.1.7
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/browser.mjs +11 -11
- package/dist/browser.mjs.map +4 -4
- package/dist/esm/anonymous-dwn-api.js +184 -0
- package/dist/esm/anonymous-dwn-api.js.map +1 -0
- package/dist/esm/dwn-api.js +85 -785
- package/dist/esm/dwn-api.js.map +1 -1
- package/dist/esm/dwn-encryption.js +342 -0
- package/dist/esm/dwn-encryption.js.map +1 -0
- package/dist/esm/dwn-key-delivery.js +256 -0
- package/dist/esm/dwn-key-delivery.js.map +1 -0
- package/dist/esm/dwn-record-upgrade.js +119 -0
- package/dist/esm/dwn-record-upgrade.js.map +1 -0
- package/dist/esm/dwn-type-guards.js +23 -0
- package/dist/esm/dwn-type-guards.js.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/permissions-api.js +43 -2
- package/dist/esm/permissions-api.js.map +1 -1
- package/dist/esm/protocol-utils.js +158 -0
- package/dist/esm/protocol-utils.js.map +1 -0
- package/dist/esm/store-data-protocols.js +1 -1
- package/dist/esm/store-data-protocols.js.map +1 -1
- package/dist/esm/store-data.js +3 -0
- package/dist/esm/store-data.js.map +1 -1
- package/dist/esm/sync-engine-level.js +23 -354
- package/dist/esm/sync-engine-level.js.map +1 -1
- package/dist/esm/sync-messages.js +237 -0
- package/dist/esm/sync-messages.js.map +1 -0
- package/dist/esm/sync-topological-sort.js +143 -0
- package/dist/esm/sync-topological-sort.js.map +1 -0
- package/dist/esm/test-harness.js +20 -0
- package/dist/esm/test-harness.js.map +1 -1
- package/dist/types/anonymous-dwn-api.d.ts +140 -0
- package/dist/types/anonymous-dwn-api.d.ts.map +1 -0
- package/dist/types/dwn-api.d.ts +36 -184
- package/dist/types/dwn-api.d.ts.map +1 -1
- package/dist/types/dwn-encryption.d.ts +144 -0
- package/dist/types/dwn-encryption.d.ts.map +1 -0
- package/dist/types/dwn-key-delivery.d.ts +112 -0
- package/dist/types/dwn-key-delivery.d.ts.map +1 -0
- package/dist/types/dwn-record-upgrade.d.ts +33 -0
- package/dist/types/dwn-record-upgrade.d.ts.map +1 -0
- package/dist/types/dwn-type-guards.d.ts +9 -0
- package/dist/types/dwn-type-guards.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/permissions-api.d.ts +6 -1
- package/dist/types/permissions-api.d.ts.map +1 -1
- package/dist/types/protocol-utils.d.ts +70 -0
- package/dist/types/protocol-utils.d.ts.map +1 -0
- package/dist/types/store-data.d.ts +4 -0
- package/dist/types/store-data.d.ts.map +1 -1
- package/dist/types/sync-engine-level.d.ts +5 -42
- package/dist/types/sync-engine-level.d.ts.map +1 -1
- package/dist/types/sync-messages.d.ts +76 -0
- package/dist/types/sync-messages.d.ts.map +1 -0
- package/dist/types/sync-topological-sort.d.ts +15 -0
- package/dist/types/sync-topological-sort.d.ts.map +1 -0
- package/dist/types/test-harness.d.ts +10 -0
- package/dist/types/test-harness.d.ts.map +1 -1
- package/dist/types/types/permissions.d.ts +2 -0
- package/dist/types/types/permissions.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/anonymous-dwn-api.ts +263 -0
- package/src/dwn-api.ts +158 -1024
- package/src/dwn-encryption.ts +481 -0
- package/src/dwn-key-delivery.ts +370 -0
- package/src/dwn-record-upgrade.ts +166 -0
- package/src/dwn-type-guards.ts +43 -0
- package/src/index.ts +6 -0
- package/src/permissions-api.ts +54 -2
- package/src/protocol-utils.ts +185 -0
- package/src/store-data-protocols.ts +1 -1
- package/src/store-data.ts +5 -2
- package/src/sync-engine-level.ts +25 -414
- package/src/sync-messages.ts +279 -0
- package/src/sync-topological-sort.ts +167 -0
- package/src/test-harness.ts +19 -0
- package/src/types/permissions.ts +2 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { DwnInterfaceName, DwnMethodName, Message } from '@enbox/dwn-sdk-js';
|
|
11
|
+
import { DwnInterface } from './types/dwn.js';
|
|
12
|
+
import { isRecordsWrite } from './utils.js';
|
|
13
|
+
import { topologicalSort } from './sync-topological-sort.js';
|
|
14
|
+
/**
|
|
15
|
+
* 202: message was successfully written to the remote DWN
|
|
16
|
+
* 204: an initial write message was written without any data
|
|
17
|
+
* 409: message was already present on the remote DWN
|
|
18
|
+
* RecordsDelete + 404: the initial write was not found or already deleted
|
|
19
|
+
*/
|
|
20
|
+
export function syncMessageReplyIsSuccessful(reply) {
|
|
21
|
+
var _a, _b;
|
|
22
|
+
return reply.status.code === 202 ||
|
|
23
|
+
reply.status.code === 204 ||
|
|
24
|
+
reply.status.code === 409 ||
|
|
25
|
+
(((_a = reply.entry) === null || _a === void 0 ? void 0 : _a.message.descriptor.interface) === DwnInterfaceName.Records &&
|
|
26
|
+
((_b = reply.entry) === null || _b === void 0 ? void 0 : _b.message.descriptor.method) === DwnMethodName.Delete &&
|
|
27
|
+
reply.status.code === 404);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Helper to get the CID of a message for logging purposes.
|
|
31
|
+
*/
|
|
32
|
+
export function getMessageCid(message) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
try {
|
|
35
|
+
return yield Message.getCid(message);
|
|
36
|
+
}
|
|
37
|
+
catch (_a) {
|
|
38
|
+
return 'unknown';
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Fetches missing messages from the remote DWN and processes them on the local DWN
|
|
44
|
+
* in dependency order (topological sort).
|
|
45
|
+
*
|
|
46
|
+
* Messages that fail processing are re-fetched from the remote before each retry
|
|
47
|
+
* pass rather than buffered in memory. ReadableStream is single-use, so a failed
|
|
48
|
+
* message's data stream is consumed on the first attempt. Re-fetching provides a
|
|
49
|
+
* fresh stream without holding all record data in memory simultaneously.
|
|
50
|
+
*/
|
|
51
|
+
export function pullMessages(_a) {
|
|
52
|
+
return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi }) {
|
|
53
|
+
// Step 1: Fetch all missing messages from the remote in parallel.
|
|
54
|
+
const fetched = yield fetchRemoteMessages({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi });
|
|
55
|
+
// Step 2: Build dependency graph and topological sort.
|
|
56
|
+
const sorted = topologicalSort(fetched);
|
|
57
|
+
// Step 3: Process messages in dependency order with multi-pass retry.
|
|
58
|
+
// Retry up to MAX_RETRY_PASSES times for messages that fail due to
|
|
59
|
+
// dependency ordering issues (e.g., a RecordsWrite whose ProtocolsConfigure
|
|
60
|
+
// hasn't committed yet). Failed messages are re-fetched from the remote
|
|
61
|
+
// to obtain a fresh data stream, since ReadableStream is single-use.
|
|
62
|
+
const MAX_RETRY_PASSES = 3;
|
|
63
|
+
let pending = sorted;
|
|
64
|
+
for (let pass = 0; pass <= MAX_RETRY_PASSES && pending.length > 0; pass++) {
|
|
65
|
+
const failedCids = [];
|
|
66
|
+
for (const entry of pending) {
|
|
67
|
+
const pullReply = yield agent.dwn.node.processMessage(did, entry.message, { dataStream: entry.dataStream });
|
|
68
|
+
if (!syncMessageReplyIsSuccessful(pullReply)) {
|
|
69
|
+
const cid = yield getMessageCid(entry.message);
|
|
70
|
+
failedCids.push(cid);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Re-fetch failed messages from the remote to get fresh data streams.
|
|
74
|
+
if (failedCids.length > 0) {
|
|
75
|
+
const reFetched = yield fetchRemoteMessages({ did, dwnUrl, delegateDid, protocol, messageCids: failedCids, agent, permissionsApi });
|
|
76
|
+
pending = topologicalSort(reFetched);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
pending = [];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Fetches messages from a remote DWN by their CIDs using MessagesRead.
|
|
86
|
+
*/
|
|
87
|
+
export function fetchRemoteMessages(_a) {
|
|
88
|
+
return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi }) {
|
|
89
|
+
const results = [];
|
|
90
|
+
let permissionGrantId;
|
|
91
|
+
if (delegateDid) {
|
|
92
|
+
try {
|
|
93
|
+
const messagesReadGrant = yield permissionsApi.getPermissionForRequest({
|
|
94
|
+
connectedDid: did,
|
|
95
|
+
messageType: DwnInterface.MessagesRead,
|
|
96
|
+
delegateDid,
|
|
97
|
+
protocol,
|
|
98
|
+
cached: true
|
|
99
|
+
});
|
|
100
|
+
permissionGrantId = messagesReadGrant.grant.id;
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.error('SyncEngineLevel: pull - Error fetching MessagesRead permission grant for delegate DID', error);
|
|
104
|
+
return results;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Fetch messages in parallel with bounded concurrency.
|
|
108
|
+
const CONCURRENCY = 10;
|
|
109
|
+
let cursor = 0;
|
|
110
|
+
while (cursor < messageCids.length) {
|
|
111
|
+
const batch = messageCids.slice(cursor, cursor + CONCURRENCY);
|
|
112
|
+
cursor += CONCURRENCY;
|
|
113
|
+
const batchResults = yield Promise.all(batch.map((messageCid) => __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
var _a, _b;
|
|
115
|
+
const messagesRead = yield agent.processDwnRequest({
|
|
116
|
+
store: false,
|
|
117
|
+
author: did,
|
|
118
|
+
target: did,
|
|
119
|
+
messageType: DwnInterface.MessagesRead,
|
|
120
|
+
granteeDid: delegateDid,
|
|
121
|
+
messageParams: { messageCid, permissionGrantId }
|
|
122
|
+
});
|
|
123
|
+
let reply;
|
|
124
|
+
try {
|
|
125
|
+
reply = (yield agent.rpc.sendDwnRequest({
|
|
126
|
+
dwnUrl,
|
|
127
|
+
targetDid: did,
|
|
128
|
+
message: messagesRead.message,
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.error(`SyncEngineLevel: pull - failed to read ${messageCid} from ${dwnUrl}:`, (_a = error.message) !== null && _a !== void 0 ? _a : error);
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
if (reply.status.code !== 200 || !((_b = reply.entry) === null || _b === void 0 ? void 0 : _b.message)) {
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
const replyEntry = reply.entry;
|
|
139
|
+
let dataStream;
|
|
140
|
+
if (isRecordsWrite(replyEntry) && replyEntry.data) {
|
|
141
|
+
dataStream = replyEntry.data;
|
|
142
|
+
}
|
|
143
|
+
return { message: replyEntry.message, dataStream };
|
|
144
|
+
})));
|
|
145
|
+
for (const result of batchResults) {
|
|
146
|
+
if (result) {
|
|
147
|
+
results.push(result);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return results;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Reads missing messages from the local DWN and pushes them to the remote DWN.
|
|
156
|
+
* Messages are fetched first, then sorted in dependency order (topological sort)
|
|
157
|
+
* so that initial writes come before updates, and ProtocolsConfigures come before
|
|
158
|
+
* records that reference those protocols.
|
|
159
|
+
*/
|
|
160
|
+
export function pushMessages(_a) {
|
|
161
|
+
return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi }) {
|
|
162
|
+
var _b;
|
|
163
|
+
// Step 1: Fetch all local messages (streams are pull-based, not yet consumed).
|
|
164
|
+
const fetched = [];
|
|
165
|
+
for (const messageCid of messageCids) {
|
|
166
|
+
const dwnMessage = yield getLocalMessage({ author: did, messageCid, delegateDid, protocol, agent, permissionsApi });
|
|
167
|
+
if (dwnMessage) {
|
|
168
|
+
fetched.push(dwnMessage);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Step 2: Sort in dependency order using topological sort.
|
|
172
|
+
const sorted = topologicalSort(fetched);
|
|
173
|
+
// Step 3: Push messages in dependency order, consuming each stream as we go.
|
|
174
|
+
for (const entry of sorted) {
|
|
175
|
+
try {
|
|
176
|
+
const reply = yield agent.rpc.sendDwnRequest({
|
|
177
|
+
dwnUrl,
|
|
178
|
+
targetDid: did,
|
|
179
|
+
data: entry.dataStream,
|
|
180
|
+
message: entry.message
|
|
181
|
+
});
|
|
182
|
+
if (!syncMessageReplyIsSuccessful(reply)) {
|
|
183
|
+
const cid = yield getMessageCid(entry.message);
|
|
184
|
+
console.error(`SyncEngineLevel: push failed for ${cid}: ${reply.status.code} ${reply.status.detail}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
// Preserve the original error so callers can diagnose the root cause.
|
|
189
|
+
const detail = (_b = error.message) !== null && _b !== void 0 ? _b : error;
|
|
190
|
+
throw new Error(`SyncEngineLevel: push to ${dwnUrl} failed: ${detail}`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Reads a message from the local DWN by its CID using MessagesRead.
|
|
197
|
+
*/
|
|
198
|
+
export function getLocalMessage(_a) {
|
|
199
|
+
return __awaiter(this, arguments, void 0, function* ({ author, delegateDid, protocol, messageCid, agent, permissionsApi }) {
|
|
200
|
+
let permissionGrantId;
|
|
201
|
+
if (delegateDid) {
|
|
202
|
+
try {
|
|
203
|
+
const messagesReadGrant = yield permissionsApi.getPermissionForRequest({
|
|
204
|
+
connectedDid: author,
|
|
205
|
+
messageType: DwnInterface.MessagesRead,
|
|
206
|
+
delegateDid,
|
|
207
|
+
protocol,
|
|
208
|
+
cached: true
|
|
209
|
+
});
|
|
210
|
+
permissionGrantId = messagesReadGrant.grant.id;
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
console.error('SyncEngineLevel: push - Error fetching MessagesRead permission grant for delegate DID', error);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
const { reply } = yield agent.dwn.processRequest({
|
|
218
|
+
author,
|
|
219
|
+
target: author,
|
|
220
|
+
messageType: DwnInterface.MessagesRead,
|
|
221
|
+
granteeDid: delegateDid,
|
|
222
|
+
messageParams: { messageCid, permissionGrantId }
|
|
223
|
+
});
|
|
224
|
+
if (reply.status.code !== 200 || !reply.entry) {
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
const messageEntry = reply.entry;
|
|
228
|
+
const result = {
|
|
229
|
+
message: messageEntry.message
|
|
230
|
+
};
|
|
231
|
+
if (isRecordsWrite(messageEntry) && messageEntry.data) {
|
|
232
|
+
result.dataStream = messageEntry.data;
|
|
233
|
+
}
|
|
234
|
+
return result;
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=sync-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-messages.js","sourceRoot":"","sources":["../../src/sync-messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { DwnInterfaceName, DwnMethodName, PermissionsProtocol } from '@enbox/dwn-sdk-js';
|
|
2
|
+
/**
|
|
3
|
+
* Checks whether a message is an initial RecordsWrite (not an update).
|
|
4
|
+
* An initial write has dateCreated === messageTimestamp (first write for this recordId).
|
|
5
|
+
*/
|
|
6
|
+
function isInitialWrite(message) {
|
|
7
|
+
const desc = message.descriptor;
|
|
8
|
+
if (desc.interface !== DwnInterfaceName.Records || desc.method !== DwnMethodName.Write) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
// A RecordsWrite is initial if dateCreated === messageTimestamp (first write for this recordId).
|
|
12
|
+
return desc.dateCreated === desc.messageTimestamp;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Builds a dependency graph from the fetched messages and returns them in
|
|
16
|
+
* topological order so that dependencies are processed before dependents.
|
|
17
|
+
*
|
|
18
|
+
* Dependencies:
|
|
19
|
+
* - ProtocolsConfigure must come before any RecordsWrite using that protocol
|
|
20
|
+
* - Parent record must come before child record (via parentId)
|
|
21
|
+
* - Initial write must come before update writes (same recordId, not initial)
|
|
22
|
+
* - Permission grant must come before records using that permissionGrantId
|
|
23
|
+
*/
|
|
24
|
+
export function topologicalSort(messages) {
|
|
25
|
+
var _a;
|
|
26
|
+
if (messages.length <= 1) {
|
|
27
|
+
return messages;
|
|
28
|
+
}
|
|
29
|
+
// Index messages by various keys for dependency resolution.
|
|
30
|
+
const byIndex = new Map();
|
|
31
|
+
const protocolConfigureIndex = new Map(); // protocol URL -> index
|
|
32
|
+
const initialWriteIndex = new Map(); // recordId -> index of initial write
|
|
33
|
+
const grantIndex = new Map(); // grant recordId -> index
|
|
34
|
+
for (let i = 0; i < messages.length; i++) {
|
|
35
|
+
const entry = messages[i];
|
|
36
|
+
byIndex.set(i, entry);
|
|
37
|
+
const desc = entry.message.descriptor;
|
|
38
|
+
if (desc.interface === DwnInterfaceName.Protocols && desc.method === DwnMethodName.Configure) {
|
|
39
|
+
const protocolUrl = (_a = desc.definition) === null || _a === void 0 ? void 0 : _a.protocol;
|
|
40
|
+
if (protocolUrl) {
|
|
41
|
+
protocolConfigureIndex.set(protocolUrl, i);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (desc.interface === DwnInterfaceName.Records && desc.method === DwnMethodName.Write) {
|
|
45
|
+
const recordId = entry.message.recordId;
|
|
46
|
+
const initial = isInitialWrite(entry.message);
|
|
47
|
+
if (initial && recordId) {
|
|
48
|
+
initialWriteIndex.set(recordId, i);
|
|
49
|
+
}
|
|
50
|
+
// Index permission grants by recordId so dependents can reference them.
|
|
51
|
+
if (desc.protocol === PermissionsProtocol.uri &&
|
|
52
|
+
desc.protocolPath === PermissionsProtocol.grantPath &&
|
|
53
|
+
recordId) {
|
|
54
|
+
grantIndex.set(recordId, i);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Build adjacency list (edges: dependency -> dependent).
|
|
59
|
+
const edges = new Map();
|
|
60
|
+
const inDegree = new Array(messages.length).fill(0);
|
|
61
|
+
const addEdge = (from, to) => {
|
|
62
|
+
if (from === to) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (!edges.has(from)) {
|
|
66
|
+
edges.set(from, new Set());
|
|
67
|
+
}
|
|
68
|
+
const edgeSet = edges.get(from);
|
|
69
|
+
if (!edgeSet.has(to)) {
|
|
70
|
+
edgeSet.add(to);
|
|
71
|
+
inDegree[to]++;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
for (let i = 0; i < messages.length; i++) {
|
|
75
|
+
const desc = messages[i].message.descriptor;
|
|
76
|
+
// Protocol dependency: RecordsWrite depends on ProtocolsConfigure for its protocol.
|
|
77
|
+
if (desc.interface === DwnInterfaceName.Records) {
|
|
78
|
+
const protocol = desc.protocol;
|
|
79
|
+
if (protocol && protocolConfigureIndex.has(protocol)) {
|
|
80
|
+
addEdge(protocolConfigureIndex.get(protocol), i);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Parent dependency: child record depends on parent record.
|
|
84
|
+
if (desc.interface === DwnInterfaceName.Records && desc.parentId) {
|
|
85
|
+
const parentId = desc.parentId;
|
|
86
|
+
if (initialWriteIndex.has(parentId)) {
|
|
87
|
+
addEdge(initialWriteIndex.get(parentId), i);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Initial write dependency: update depends on initial write.
|
|
91
|
+
if (desc.interface === DwnInterfaceName.Records && desc.method === DwnMethodName.Write) {
|
|
92
|
+
const recordId = messages[i].message.recordId;
|
|
93
|
+
if (recordId && !isInitialWrite(messages[i].message) && initialWriteIndex.has(recordId)) {
|
|
94
|
+
addEdge(initialWriteIndex.get(recordId), i);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Delete depends on initial write.
|
|
98
|
+
if (desc.interface === DwnInterfaceName.Records && desc.method === DwnMethodName.Delete) {
|
|
99
|
+
const recordId = desc.recordId;
|
|
100
|
+
if (recordId && initialWriteIndex.has(recordId)) {
|
|
101
|
+
addEdge(initialWriteIndex.get(recordId), i);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Permission grant dependency: message depends on the grant it references.
|
|
105
|
+
const permissionGrantId = desc.permissionGrantId;
|
|
106
|
+
if (permissionGrantId && grantIndex.has(permissionGrantId)) {
|
|
107
|
+
addEdge(grantIndex.get(permissionGrantId), i);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Kahn's algorithm for topological sort.
|
|
111
|
+
const queue = [];
|
|
112
|
+
for (let i = 0; i < messages.length; i++) {
|
|
113
|
+
if (inDegree[i] === 0) {
|
|
114
|
+
queue.push(i);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const sorted = [];
|
|
118
|
+
while (queue.length > 0) {
|
|
119
|
+
const node = queue.shift();
|
|
120
|
+
sorted.push(byIndex.get(node));
|
|
121
|
+
const neighbors = edges.get(node);
|
|
122
|
+
if (neighbors) {
|
|
123
|
+
for (const neighbor of neighbors) {
|
|
124
|
+
inDegree[neighbor]--;
|
|
125
|
+
if (inDegree[neighbor] === 0) {
|
|
126
|
+
queue.push(neighbor);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// If there are nodes not in sorted (cycle), append them at the end.
|
|
132
|
+
if (sorted.length < messages.length) {
|
|
133
|
+
const sortedSet = new Set(sorted);
|
|
134
|
+
for (let i = 0; i < messages.length; i++) {
|
|
135
|
+
const entry = byIndex.get(i);
|
|
136
|
+
if (!sortedSet.has(entry)) {
|
|
137
|
+
sorted.push(entry);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return sorted;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=sync-topological-sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-topological-sort.js","sourceRoot":"","sources":["../../src/sync-topological-sort.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEzF;;;GAGG;AACH,SAAS,cAAc,CAAC,OAAuB;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,UAAiB,CAAC;IACvC,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAgB,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;QACvF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,iGAAiG;IACjG,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,gBAAgB,CAAC;AACpD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAa;;IAEb,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,4DAA4D;IAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAa,CAAC;IACrC,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,wBAAwB;IAClF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,qCAAqC;IAC1F,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,0BAA0B;IAExE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAEtC,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAgB,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC;YAC7F,MAAM,WAAW,GAAG,MAAC,IAAY,CAAC,UAAU,0CAAE,QAAQ,CAAC;YACvD,IAAI,WAAW,EAAE,CAAC;gBAChB,sBAAsB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAgB,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;YACvF,MAAM,QAAQ,GAAI,KAAK,CAAC,OAAe,CAAC,QAAQ,CAAC;YACjD,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACxB,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACrC,CAAC;YAED,wEAAwE;YACxE,IACG,IAAY,CAAC,QAAQ,KAAK,mBAAmB,CAAC,GAAG;gBACjD,IAAY,CAAC,YAAY,KAAK,mBAAmB,CAAC,SAAS;gBAC5D,QAAQ,EACR,CAAC;gBACD,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC;IAEhE,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAU,EAAQ,EAAE;QACjD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAE5C,oFAAoF;QACpF,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAI,IAAY,CAAC,QAAQ,CAAC;YACxC,IAAI,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrD,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAE,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAgB,CAAC,OAAO,IAAK,IAAY,CAAC,QAAQ,EAAE,CAAC;YAC1E,MAAM,QAAQ,GAAI,IAAY,CAAC,QAAQ,CAAC;YACxC,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAE,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAgB,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;YACvF,MAAM,QAAQ,GAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAe,CAAC,QAAQ,CAAC;YACvD,IAAI,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxF,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAE,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAgB,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;YACxF,MAAM,QAAQ,GAAI,IAAY,CAAC,QAAQ,CAAC;YACxC,IAAI,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAE,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,MAAM,iBAAiB,GAAI,IAAY,CAAC,iBAAiB,CAAC;QAC1D,IAAI,iBAAiB,IAAI,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAE,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;QAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,IAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/esm/test-harness.js
CHANGED
|
@@ -71,6 +71,26 @@ export class PlatformAgentTestHarness {
|
|
|
71
71
|
}
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Clear only DWN-level stores (data, messages, state index, resumable tasks,
|
|
76
|
+
* sync, permissions) and the DWN-backed store caches — but preserve the
|
|
77
|
+
* agent DID, vault, and all key/DID/identity material.
|
|
78
|
+
*
|
|
79
|
+
* Use this in `beforeEach` when `createAgentDid()` (and optionally
|
|
80
|
+
* `createIdentity()`) was called once in `beforeAll` to avoid expensive
|
|
81
|
+
* DID re-creation on every test.
|
|
82
|
+
*/
|
|
83
|
+
clearDwnStores() {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
yield this.syncStore.clear();
|
|
86
|
+
yield this.dwnDataStore.clear();
|
|
87
|
+
yield this.dwnStateIndex.clear();
|
|
88
|
+
yield this.dwnMessageStore.clear();
|
|
89
|
+
yield this.dwnResumableTaskStore.clear();
|
|
90
|
+
yield this.agent.permissions.clear();
|
|
91
|
+
this.dwnStores.clear();
|
|
92
|
+
});
|
|
93
|
+
}
|
|
74
94
|
closeStorage() {
|
|
75
95
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
96
|
yield this.didResolverCache.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-harness.js","sourceRoot":"","sources":["../../src/test-harness.ts"],"names":[],"mappings":";;;;;;;;;AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpI,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAgC/D,MAAM,OAAO,wBAAwB;IAyBnC,YAAY,MAAsC;QAChD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACpC,CAAC;IAEY,YAAY;;YACvB,yCAAyC;YACzC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEjC,+EAA+E;YAC/E,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;YAChC,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAEvB,gEAAgE;YAChE,oCAAoC;YACpC,qIAAqI;YACrI,mCAAmC;YACnC,6BAA6B;YAC7B,uCAAuC;YACvC,IAAI;YAEJ,0FAA0F;YAC1F,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAClC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,wBAAwB,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5H,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,cAAc,CAAC;YAC1C,CAAC;QACH,CAAC;KAAA;IAEY,YAAY;;YACvB,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;KAAA;IAEY,cAAc;;;YACzB,+EAA+E;YAC/E,qEAAqE;YACrE,8EAA8E;YAC9E,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;gBACxC,OAAO,EAAE;oBACP,OAAO,EAAe,IAAI;oBAC1B,UAAU,EAAY,MAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,mCAAI,uBAAuB;oBAChF,mBAAmB,EAAG;wBACpB;4BACE,SAAS,EAAG,SAAS;4BACrB,EAAE,EAAU,KAAK;4BACjB,QAAQ,EAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;yBAClD;wBACD;4BACE,SAAS,EAAG,QAAQ;4BACpB,EAAE,EAAU,KAAK;4BACjB,QAAQ,EAAI,CAAC,cAAc,CAAC;yBAC7B;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;KAAA;IAEY,cAAc;6DAAC,EAAE,IAAI,EAAE,WAAW,EAG9C;YACC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACtD,SAAS,EAAI,KAAK;gBAClB,UAAU,EAAG;oBACX,QAAQ,EAAE;wBACR;4BACE,EAAE,EAAgB,KAAK;4BACvB,IAAI,EAAc,sBAAsB;4BACxC,eAAe,EAAG,WAAW;4BAC7B,GAAG,EAAe,MAAM;4BACxB,GAAG,EAAe,MAAM;yBACzB;qBACF;oBACD,mBAAmB,EAAE;wBACnB;4BACE,SAAS,EAAG,SAAS;4BACrB,EAAE,EAAU,KAAK;4BACjB,QAAQ,EAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;yBAClD;wBACD;4BACE,SAAS,EAAG,QAAQ;4BACpB,EAAE,EAAU,KAAK;4BACjB,QAAQ,EAAI,CAAC,cAAc,CAAC;yBAC7B;qBACF;iBACF;gBACD,QAAQ,EAAE,EAAE,IAAI,EAAE;aACnB,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC;QACxB,CAAC;KAAA;IAEM,MAAM,CAAO,KAAK;6DAAC,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAIpE;YACC,WAAW,aAAX,WAAW,cAAX,WAAW,IAAX,WAAW,GAAK,QAAQ,EAAC;YACzB,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,IAAhB,gBAAgB,GAAK,cAAc,EAAC;YAEpC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,GAAG,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAE7E,kCAAkC;YAClC,MAAM,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;YAEvC,kCAAkC;YAClC,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;YAEtC,MAAM,SAAS,GAAG;gBAChB,QAAQ,EAAQ,IAAI,WAAW,EAAE;gBACjC,aAAa,EAAG,IAAI,gBAAgB,EAAE;gBACtC,QAAQ,EAAQ,IAAI,WAAW,EAAE;gBACjC,KAAK,EAAW,GAAQ,EAAE;;oBACxB,MAAA,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,0CAAE,KAAK,EAAE,CAAC;oBACzD,MAAA,SAAS,CAAC,aAAa,CAAC,2BAA2B,CAAC,0CAAE,KAAK,EAAE,CAAC;oBAC9D,MAAA,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,0CAAE,KAAK,EAAE,CAAC;gBAC3D,CAAC;aACF,CAAC;YAEF,MAAM,EACJ,UAAU,EACV,MAAM,EACN,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,EACf,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC;gBAC5B,CAAC,CAAC,wBAAwB,CAAC,eAAe,EAAE;gBAC5C,CAAC,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAEpF,sDAAsD;YACtD,yFAAyF;YACzF,MAAM,YAAY,GAAG,IAAI,cAAc,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAC/F,MAAM,aAAa,GAAG,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACxF,MAAM,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAChD,MAAM,qBAAqB,GAAG,IAAI,uBAAuB,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;YAEhH,MAAM,eAAe,GAAG,IAAI,iBAAiB,CAAC;gBAC5C,kBAAkB,EAAG,YAAY,CAAC,kBAAkB,CAAC;gBACrD,aAAa,EAAQ,YAAY,CAAC,kBAAkB,CAAC;aACtD,CAAC,CAAC;YAEH,oDAAoD;YACpD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC;gBACtC,QAAQ,EAAa,gBAAgB;gBACrC,SAAS,EAAY,YAAY;gBACjC,WAAW,EAAU,MAAM;gBAC3B,UAAU,EAAW,aAAa;gBAClC,WAAW,EAAU,cAAc;gBACnC,YAAY,EAAS,eAAe;gBACpC,kBAAkB,EAAG,qBAAqB;aAC3C,CAAC,CAAC;YAEH,6DAA6D;YAC7D,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAExC,oEAAoE;YACpE,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAEjD,oCAAoC;YACpC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC;gBAC3B,UAAU;gBACV,SAAS;gBACT,MAAM;gBACN,MAAM;gBACN,WAAW;gBACX,UAAU;gBACV,cAAc;gBACd,SAAS;gBACT,OAAO;aACR,CAAC,CAAC;YAEH,OAAO,IAAI,wBAAwB,CAAC;gBAClC,KAAK;gBACL,WAAW;gBACX,gBAAgB;gBAChB,GAAG;gBACH,YAAY;gBACZ,aAAa;gBACb,eAAe;gBACf,qBAAqB;gBACrB,SAAS;gBACT,SAAS;gBACT,UAAU;aACX,CAAC,CAAC;QACL,CAAC;KAAA;IAEO,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAQ7D;QACC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,GAAG,gBAAgB,IAAI,IAAI,EAAE,CAAC;QAE7E,MAAM,UAAU,GAAG,IAAI,UAAU,CAAiB,EAAE,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7F,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,EAAE,uBAAuB,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAE1F,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAErD,2BAA2B;QAC3B,MAAM,gBAAgB,GAAG,IAAI,qBAAqB,CAAC;YACjD,QAAQ,EAAE,YAAY,CAAC,mBAAmB,CAAC;SAC5C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;YAC7B,KAAK,EAAW,KAAK;YACrB,UAAU,EAAM,CAAC,MAAM,EAAE,MAAM,CAAC;YAChC,aAAa,EAAG,gBAAgB;YAChC,KAAK,EAAW,QAAQ;SACzB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,gBAAgB,CAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QAE3F,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEtE,MAAM,cAAc,GAAG,IAAI,mBAAmB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;IACvG,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,KAAqD,EAAE;QAC3F,MAAM,UAAU,GAAG,IAAI,WAAW,EAAkB,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,EAAE,uBAAuB,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAE1F,2BAA2B;QAC3B,MAAM,gBAAgB,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;YAC7B,KAAK,EAAW,KAAK;YACrB,UAAU,EAAM,CAAC,MAAM,EAAE,MAAM,CAAC;YAChC,aAAa,EAAG,gBAAgB;YAChC,KAAK,EAAW,IAAI,gBAAgB,EAAE;SACvC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAEpF,MAAM,WAAW,GAAG,IAAI,gBAAgB,CAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAEzG,MAAM,cAAc,GAAG,IAAI,mBAAmB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;IACvG,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"test-harness.js","sourceRoot":"","sources":["../../src/test-harness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { DidUrlDereferencer } from '@enbox/dids';
|
|
2
|
+
import type { DateSort, Pagination, ProtocolsQueryFilter, ProtocolsQueryReply, RecordsCountReply, RecordsFilter, RecordsQueryReply, RecordsReadReply, RecordsSubscribeReply, RecordSubscriptionHandler } from '@enbox/dwn-sdk-js';
|
|
3
|
+
import type { Web5Rpc } from '@enbox/dwn-clients';
|
|
4
|
+
/**
|
|
5
|
+
* Parameters for constructing an {@link AnonymousDwnApi}.
|
|
6
|
+
*/
|
|
7
|
+
export type AnonymousDwnApiParams = {
|
|
8
|
+
/** A DID URL dereferencer for resolving target DID service endpoints. */
|
|
9
|
+
didResolver: DidUrlDereferencer;
|
|
10
|
+
/** An RPC client for sending messages to remote DWNs. */
|
|
11
|
+
rpcClient: Web5Rpc;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Parameters for an anonymous records query.
|
|
15
|
+
* Mirrors the DWN SDK's `RecordsQueryOptions` without `signer` or delegation fields.
|
|
16
|
+
*/
|
|
17
|
+
export type AnonymousRecordsQueryParams = {
|
|
18
|
+
filter: RecordsFilter;
|
|
19
|
+
dateSort?: DateSort;
|
|
20
|
+
pagination?: Pagination;
|
|
21
|
+
messageTimestamp?: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Parameters for an anonymous records read.
|
|
25
|
+
*/
|
|
26
|
+
export type AnonymousRecordsReadParams = {
|
|
27
|
+
filter: RecordsFilter;
|
|
28
|
+
messageTimestamp?: string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Parameters for an anonymous records subscribe.
|
|
32
|
+
*/
|
|
33
|
+
export type AnonymousRecordsSubscribeParams = {
|
|
34
|
+
filter: RecordsFilter;
|
|
35
|
+
dateSort?: DateSort;
|
|
36
|
+
pagination?: Pagination;
|
|
37
|
+
messageTimestamp?: string;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Parameters for an anonymous records count.
|
|
41
|
+
*/
|
|
42
|
+
export type AnonymousRecordsCountParams = {
|
|
43
|
+
filter: RecordsFilter;
|
|
44
|
+
messageTimestamp?: string;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Parameters for an anonymous protocols query.
|
|
48
|
+
*/
|
|
49
|
+
export type AnonymousProtocolsQueryParams = {
|
|
50
|
+
filter?: ProtocolsQueryFilter;
|
|
51
|
+
messageTimestamp?: string;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* A lightweight DWN API that creates **unsigned** (anonymous) DWN messages and
|
|
55
|
+
* sends them to remote DWNs via RPC.
|
|
56
|
+
*
|
|
57
|
+
* This class does not require a vault, agent DID, signing keys, or any identity
|
|
58
|
+
* infrastructure. It leverages the DWN SDK's native support for optional
|
|
59
|
+
* `signer` on read-path operations (RecordsQuery, RecordsRead, RecordsSubscribe,
|
|
60
|
+
* RecordsCount, ProtocolsQuery).
|
|
61
|
+
*
|
|
62
|
+
* Anonymous queries return only published records. Anonymous reads succeed for
|
|
63
|
+
* published records and for protocol records with `{ who: 'anyone', can: ['read'] }`.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* const resolver = new UniversalResolver({ didResolvers: [DidDht, DidJwk] });
|
|
68
|
+
* const rpcClient = new Web5RpcClient();
|
|
69
|
+
* const anonymousDwn = new AnonymousDwnApi({ didResolver: resolver, rpcClient });
|
|
70
|
+
*
|
|
71
|
+
* const reply = await anonymousDwn.recordsQuery('did:dht:alice...', {
|
|
72
|
+
* filter: { protocol: 'https://social.example/posts', protocolPath: 'post' },
|
|
73
|
+
* });
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare class AnonymousDwnApi {
|
|
77
|
+
private _didResolver;
|
|
78
|
+
private _rpcClient;
|
|
79
|
+
constructor({ didResolver, rpcClient }: AnonymousDwnApiParams);
|
|
80
|
+
/**
|
|
81
|
+
* Send an anonymous (unsigned) `RecordsQuery` to a remote DWN.
|
|
82
|
+
*
|
|
83
|
+
* Only published records are returned by the remote DWN.
|
|
84
|
+
*
|
|
85
|
+
* @param target - The DID whose DWN will be queried.
|
|
86
|
+
* @param params - Query parameters (filter, sort, pagination).
|
|
87
|
+
* @returns The raw `RecordsQueryReply` from the remote DWN.
|
|
88
|
+
*/
|
|
89
|
+
recordsQuery(target: string, params: AnonymousRecordsQueryParams): Promise<RecordsQueryReply>;
|
|
90
|
+
/**
|
|
91
|
+
* Send an anonymous (unsigned) `RecordsRead` to a remote DWN.
|
|
92
|
+
*
|
|
93
|
+
* Succeeds for published records and for protocol records with
|
|
94
|
+
* `{ who: 'anyone', can: ['read'] }` rules.
|
|
95
|
+
*
|
|
96
|
+
* @param target - The DID whose DWN will be read from.
|
|
97
|
+
* @param params - Read parameters (filter).
|
|
98
|
+
* @returns The raw `RecordsReadReply` from the remote DWN.
|
|
99
|
+
*/
|
|
100
|
+
recordsRead(target: string, params: AnonymousRecordsReadParams): Promise<RecordsReadReply>;
|
|
101
|
+
/**
|
|
102
|
+
* Send an anonymous (unsigned) `RecordsSubscribe` to a remote DWN.
|
|
103
|
+
*
|
|
104
|
+
* Only published record events are received.
|
|
105
|
+
*
|
|
106
|
+
* @param target - The DID whose DWN to subscribe to.
|
|
107
|
+
* @param params - Subscribe parameters (filter).
|
|
108
|
+
* @param handler - Callback for incoming record events.
|
|
109
|
+
* @returns The raw `RecordsSubscribeReply` from the remote DWN.
|
|
110
|
+
*/
|
|
111
|
+
recordsSubscribe(target: string, params: AnonymousRecordsSubscribeParams, handler: RecordSubscriptionHandler): Promise<RecordsSubscribeReply>;
|
|
112
|
+
/**
|
|
113
|
+
* Send an anonymous (unsigned) `RecordsCount` to a remote DWN.
|
|
114
|
+
*
|
|
115
|
+
* Only published records are counted.
|
|
116
|
+
*
|
|
117
|
+
* @param target - The DID whose DWN to count records in.
|
|
118
|
+
* @param params - Count parameters (filter).
|
|
119
|
+
* @returns The raw `RecordsCountReply` from the remote DWN.
|
|
120
|
+
*/
|
|
121
|
+
recordsCount(target: string, params: AnonymousRecordsCountParams): Promise<RecordsCountReply>;
|
|
122
|
+
/**
|
|
123
|
+
* Send an anonymous (unsigned) `ProtocolsQuery` to a remote DWN.
|
|
124
|
+
*
|
|
125
|
+
* Only published protocol definitions are returned.
|
|
126
|
+
*
|
|
127
|
+
* @param target - The DID whose DWN to query protocols from.
|
|
128
|
+
* @param params - Optional query parameters (protocol filter).
|
|
129
|
+
* @returns The raw `ProtocolsQueryReply` from the remote DWN.
|
|
130
|
+
*/
|
|
131
|
+
protocolsQuery(target: string, params?: AnonymousProtocolsQueryParams): Promise<ProtocolsQueryReply>;
|
|
132
|
+
/**
|
|
133
|
+
* Resolve the target DID's DWN service endpoints and send an unsigned
|
|
134
|
+
* message to the first one that responds.
|
|
135
|
+
*
|
|
136
|
+
* Follows the same retry-over-endpoints pattern as `AgentDwnApi.sendDwnRpcRequest()`.
|
|
137
|
+
*/
|
|
138
|
+
private sendRequest;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=anonymous-dwn-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anonymous-dwn-api.d.ts","sourceRoot":"","sources":["../../src/anonymous-dwn-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EAEnB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAMjE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,yEAAyE;IACzE,WAAW,EAAE,kBAAkB,CAAC;IAChC,yDAAyD;IACzD,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,aAAa,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,aAAa,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,UAAU,CAAU;gBAEhB,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,qBAAqB;IAK7D;;;;;;;;OAQG;IACU,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAY1G;;;;;;;;;OASG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAUvG;;;;;;;;;OASG;IACU,gBAAgB,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,+BAA+B,EACvC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,qBAAqB,CAAC;IAYjC;;;;;;;;OAQG;IACU,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAU1G;;;;;;;;OAQG;IACU,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,6BAA6B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUjH;;;;;OAKG;YACW,WAAW;CA2C1B"}
|