@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.
Files changed (79) hide show
  1. package/dist/browser.mjs +11 -11
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/anonymous-dwn-api.js +184 -0
  4. package/dist/esm/anonymous-dwn-api.js.map +1 -0
  5. package/dist/esm/dwn-api.js +85 -785
  6. package/dist/esm/dwn-api.js.map +1 -1
  7. package/dist/esm/dwn-encryption.js +342 -0
  8. package/dist/esm/dwn-encryption.js.map +1 -0
  9. package/dist/esm/dwn-key-delivery.js +256 -0
  10. package/dist/esm/dwn-key-delivery.js.map +1 -0
  11. package/dist/esm/dwn-record-upgrade.js +119 -0
  12. package/dist/esm/dwn-record-upgrade.js.map +1 -0
  13. package/dist/esm/dwn-type-guards.js +23 -0
  14. package/dist/esm/dwn-type-guards.js.map +1 -0
  15. package/dist/esm/index.js +6 -0
  16. package/dist/esm/index.js.map +1 -1
  17. package/dist/esm/permissions-api.js +43 -2
  18. package/dist/esm/permissions-api.js.map +1 -1
  19. package/dist/esm/protocol-utils.js +158 -0
  20. package/dist/esm/protocol-utils.js.map +1 -0
  21. package/dist/esm/store-data-protocols.js +1 -1
  22. package/dist/esm/store-data-protocols.js.map +1 -1
  23. package/dist/esm/store-data.js +3 -0
  24. package/dist/esm/store-data.js.map +1 -1
  25. package/dist/esm/sync-engine-level.js +23 -354
  26. package/dist/esm/sync-engine-level.js.map +1 -1
  27. package/dist/esm/sync-messages.js +237 -0
  28. package/dist/esm/sync-messages.js.map +1 -0
  29. package/dist/esm/sync-topological-sort.js +143 -0
  30. package/dist/esm/sync-topological-sort.js.map +1 -0
  31. package/dist/esm/test-harness.js +20 -0
  32. package/dist/esm/test-harness.js.map +1 -1
  33. package/dist/types/anonymous-dwn-api.d.ts +140 -0
  34. package/dist/types/anonymous-dwn-api.d.ts.map +1 -0
  35. package/dist/types/dwn-api.d.ts +36 -184
  36. package/dist/types/dwn-api.d.ts.map +1 -1
  37. package/dist/types/dwn-encryption.d.ts +144 -0
  38. package/dist/types/dwn-encryption.d.ts.map +1 -0
  39. package/dist/types/dwn-key-delivery.d.ts +112 -0
  40. package/dist/types/dwn-key-delivery.d.ts.map +1 -0
  41. package/dist/types/dwn-record-upgrade.d.ts +33 -0
  42. package/dist/types/dwn-record-upgrade.d.ts.map +1 -0
  43. package/dist/types/dwn-type-guards.d.ts +9 -0
  44. package/dist/types/dwn-type-guards.d.ts.map +1 -0
  45. package/dist/types/index.d.ts +6 -0
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/dist/types/permissions-api.d.ts +6 -1
  48. package/dist/types/permissions-api.d.ts.map +1 -1
  49. package/dist/types/protocol-utils.d.ts +70 -0
  50. package/dist/types/protocol-utils.d.ts.map +1 -0
  51. package/dist/types/store-data.d.ts +4 -0
  52. package/dist/types/store-data.d.ts.map +1 -1
  53. package/dist/types/sync-engine-level.d.ts +5 -42
  54. package/dist/types/sync-engine-level.d.ts.map +1 -1
  55. package/dist/types/sync-messages.d.ts +76 -0
  56. package/dist/types/sync-messages.d.ts.map +1 -0
  57. package/dist/types/sync-topological-sort.d.ts +15 -0
  58. package/dist/types/sync-topological-sort.d.ts.map +1 -0
  59. package/dist/types/test-harness.d.ts +10 -0
  60. package/dist/types/test-harness.d.ts.map +1 -1
  61. package/dist/types/types/permissions.d.ts +2 -0
  62. package/dist/types/types/permissions.d.ts.map +1 -1
  63. package/package.json +5 -5
  64. package/src/anonymous-dwn-api.ts +263 -0
  65. package/src/dwn-api.ts +158 -1024
  66. package/src/dwn-encryption.ts +481 -0
  67. package/src/dwn-key-delivery.ts +370 -0
  68. package/src/dwn-record-upgrade.ts +166 -0
  69. package/src/dwn-type-guards.ts +43 -0
  70. package/src/index.ts +6 -0
  71. package/src/permissions-api.ts +54 -2
  72. package/src/protocol-utils.ts +185 -0
  73. package/src/store-data-protocols.ts +1 -1
  74. package/src/store-data.ts +5 -2
  75. package/src/sync-engine-level.ts +25 -414
  76. package/src/sync-messages.ts +279 -0
  77. package/src/sync-topological-sort.ts +167 -0
  78. package/src/test-harness.ts +19 -0
  79. package/src/types/permissions.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dwn-type-guards.d.ts","sourceRoot":"","sources":["../../src/dwn-type-guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EACV,UAAU,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,wBAAgB,YAAY,CAAC,CAAC,SAAS,YAAY,EACjD,UAAU,EAAE,iBAAiB,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,GAC1D,UAAU,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAEpC;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,YAAY,EACjD,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,GACtC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAG1B;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,YAAY,GAAG,WAAW,IAAI,oBAAoB,CAM5F;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,yBAAyB,CAErG;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,0BAA0B,CAExG"}
@@ -7,10 +7,16 @@ export type * from './types/permissions.js';
7
7
  export type * from './types/sync.js';
8
8
  export type * from './types/vc.js';
9
9
  export * from './agent-did-resolver-cache.js';
10
+ export * from './anonymous-dwn-api.js';
10
11
  export * from './bearer-identity.js';
11
12
  export * from './crypto-api.js';
12
13
  export * from './did-api.js';
13
14
  export * from './dwn-api.js';
15
+ export * from './dwn-encryption.js';
16
+ export * from './dwn-key-delivery.js';
17
+ export * from './dwn-record-upgrade.js';
18
+ export * from './dwn-type-guards.js';
19
+ export * from './protocol-utils.js';
14
20
  export * from './hd-identity-vault.js';
15
21
  export * from './identity-api.js';
16
22
  export * from './local-key-manager.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,kBAAkB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,mBAAmB,qBAAqB,CAAC;AACzC,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,eAAe,CAAC;AAEnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,kBAAkB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,mBAAmB,qBAAqB,CAAC;AACzC,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,eAAe,CAAC;AAEnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC"}
@@ -11,7 +11,12 @@ export declare class AgentPermissionsApi implements PermissionsApi {
11
11
  agent?: Web5Agent;
12
12
  });
13
13
  getPermissionForRequest({ connectedDid, delegateDid, delegate, messageType, protocol, cached }: GetPermissionParams): Promise<PermissionGrantEntry>;
14
- fetchGrants({ author, target, grantee, grantor, protocol, remote }: FetchPermissionsParams): Promise<PermissionGrantEntry[]>;
14
+ fetchGrants({ author, target, grantee, grantor, protocol, remote, checkRevoked, }: FetchPermissionsParams): Promise<PermissionGrantEntry[]>;
15
+ /**
16
+ * Fetch all revocation record IDs for grants, returned as a Set of parent grant record IDs.
17
+ * Issues a single RecordsQuery for all revocation records, optionally scoped to a grantor and protocol.
18
+ */
19
+ private fetchRevokedGrantIds;
15
20
  fetchRequests({ author, target, protocol, remote }: FetchPermissionRequestParams): Promise<PermissionRequestEntry[]>;
16
21
  isGrantRevoked({ author, target, grantRecordId, remote }: IsGrantRevokedParams): Promise<boolean>;
17
22
  createGrant(params: CreateGrantParams): Promise<PermissionGrantEntry>;
@@ -1 +1 @@
1
- {"version":3,"file":"permissions-api.d.ts","sourceRoot":"","sources":["../../src/permissions-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOvS,OAAO,EAAE,YAAY,EAA4C,MAAM,gBAAgB,CAAC;AAExF,qBAAa,mBAAoB,YAAW,cAAc;IAExD,4GAA4G;IAC5G,OAAO,CAAC,kBAAkB,CAA4E;IAEtG,OAAO,CAAC,MAAM,CAAC,CAAY;IAE3B,IAAI,KAAK,IAAI,SAAS,CAKrB;IAED,IAAI,KAAK,CAAC,KAAK,EAAC,SAAS,EAExB;gBAEW,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAO;IAI3C,uBAAuB,CAAC,EAC5B,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAc,EACf,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiChD,WAAW,CAAC,EAChB,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAc,EACf,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAmCrD,aAAa,CAAC,EAClB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAc,EACf,EAAC,4BAA4B,GAAE,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA+B3D,cAAc,CAAC,EACnB,MAAM,EACN,MAAM,EACN,aAAa,EACb,MAAc,EACf,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BpC,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiDrE,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8C3E,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAyCpF,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;OAIG;WACU,mBAAmB,CAAC,CAAC,SAAS,YAAY,EACrD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE;QACb,WAAW,EAAE,CAAC,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,EACD,MAAM,EAAE,oBAAoB,EAAE,EAC9B,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAc5C,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAwDlC,OAAO,CAAC,MAAM,CAAC,2BAA2B;CAG3C"}
1
+ {"version":3,"file":"permissions-api.d.ts","sourceRoot":"","sources":["../../src/permissions-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOvS,OAAO,EAAE,YAAY,EAA4C,MAAM,gBAAgB,CAAC;AAExF,qBAAa,mBAAoB,YAAW,cAAc;IAExD,4GAA4G;IAC5G,OAAO,CAAC,kBAAkB,CAA4E;IAEtG,OAAO,CAAC,MAAM,CAAC,CAAY;IAE3B,IAAI,KAAK,IAAI,SAAS,CAKrB;IAED,IAAI,KAAK,CAAC,KAAK,EAAC,SAAS,EAExB;gBAEW,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAO;IAI3C,uBAAuB,CAAC,EAC5B,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAc,EACf,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiChD,WAAW,CAAC,EAChB,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAc,EACd,YAAmB,GACpB,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA2C3D;;;OAGG;YACW,oBAAoB;IAuC5B,aAAa,CAAC,EAClB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAc,EACf,EAAC,4BAA4B,GAAE,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA+B3D,cAAc,CAAC,EACnB,MAAM,EACN,MAAM,EACN,aAAa,EACb,MAAc,EACf,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BpC,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiDrE,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8C3E,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAyCpF,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;OAIG;WACU,mBAAmB,CAAC,CAAC,SAAS,YAAY,EACrD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE;QACb,WAAW,EAAE,CAAC,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,EACD,MAAM,EAAE,oBAAoB,EAAE,EAC9B,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAc5C,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAwDlC,OAAO,CAAC,MAAM,CAAC,2BAA2B;CAG3C"}
@@ -0,0 +1,70 @@
1
+ import type { ProtocolDefinition, ProtocolRuleSet } from '@enbox/dwn-sdk-js';
2
+ /**
3
+ * Navigates a protocol definition's structure to find the rule set at a given protocol path.
4
+ * @param protocolDefinition - The protocol definition to search
5
+ * @param protocolPath - The dot-separated protocol path (e.g. 'thread/message')
6
+ * @returns The rule set at the given path, or undefined if the path doesn't exist
7
+ */
8
+ export declare function getRuleSetAtPath(protocolDefinition: ProtocolDefinition, protocolPath: string): ProtocolRuleSet | undefined;
9
+ /**
10
+ * Extracts the root context ID from a contextId or parentContextId.
11
+ * e.g. 'abc/def/ghi' -> 'abc', 'abc' -> 'abc'
12
+ * @param contextId - The context ID to extract the root from
13
+ * @returns The root context ID
14
+ */
15
+ export declare function getRootContextId(contextId: string): string;
16
+ /**
17
+ * Checks if a protocol path represents a multi-party context.
18
+ * Returns true if the root path's subtree contains $role descendants
19
+ * or relational who/of $actions rules that grant read access.
20
+ *
21
+ * @param protocolDefinition - The full protocol definition
22
+ * @param rootProtocolPath - The root protocol path to check
23
+ * @returns true if the protocol path represents a multi-party context
24
+ */
25
+ export declare function isMultiPartyContext(protocolDefinition: ProtocolDefinition, rootProtocolPath: string): boolean;
26
+ /**
27
+ * Checks whether any relational who/of rule in the protocol grants
28
+ * read access for a given actor type and ancestor path.
29
+ *
30
+ * Walks the *entire* protocol structure looking for any $actions rule that:
31
+ * - Has `who` equal to `actorType` ('recipient' or 'author'), or any actor
32
+ * type if `actorType` is `undefined`
33
+ * - Has `of` equal to `ofPath`
34
+ * - Has `can` including 'read'
35
+ *
36
+ * @param actorType - 'author' | 'recipient', or undefined for any
37
+ * @param ofPath - The protocol path to check (e.g. 'thread', 'email')
38
+ * @param protocolDefinition - The full protocol definition
39
+ * @returns true if a matching relational read rule exists
40
+ */
41
+ export declare function hasRelationalReadAccess(actorType: 'author' | 'recipient' | undefined, ofPath: string, protocolDefinition: ProtocolDefinition): boolean;
42
+ /**
43
+ * Analyses a record write to determine which DIDs need context key delivery.
44
+ *
45
+ * Returns a set of participant DIDs that should receive `contextKey` records.
46
+ * The DWN owner (tenantDid) is always excluded — they have ProtocolPath access.
47
+ *
48
+ * Cases handled:
49
+ * 1. `$role` record with a recipient -> recipient is a participant
50
+ * 2. Record has a recipient and a relational read rule grants access
51
+ * via `{ who: 'recipient', of: '<path>', can: ['read'] }`
52
+ * 3. Record is authored by an external party -> if `{ who: 'author', of:
53
+ * '<path>', can: ['read'] }` rules grant read access, the author needs
54
+ * a context key.
55
+ *
56
+ * @param params.protocolDefinition - The installed protocol definition
57
+ * @param params.protocolPath - The written record's protocol path
58
+ * @param params.recipient - Recipient DID from the record, if any
59
+ * @param params.tenantDid - The DWN owner's DID (excluded from results)
60
+ * @param params.authorDid - Author DID if externally authored, undefined otherwise
61
+ * @returns Set of DIDs that need context key delivery
62
+ */
63
+ export declare function detectNewParticipants({ protocolDefinition, protocolPath, recipient, tenantDid, authorDid }: {
64
+ protocolDefinition: ProtocolDefinition;
65
+ protocolPath: string;
66
+ recipient?: string;
67
+ tenantDid: string;
68
+ authorDid?: string;
69
+ }): Set<string>;
70
+ //# sourceMappingURL=protocol-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-utils.d.ts","sourceRoot":"","sources":["../../src/protocol-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE7E;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,MAAM,GACnB,eAAe,GAAG,SAAS,CAS7B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAAE,MAAM,GACvB,OAAO,CA2BT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,EAC7C,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CA+BT;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;IAC3G,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,GAAG,CAAC,MAAM,CAAC,CAgCd"}
@@ -64,9 +64,13 @@ export declare class DwnDataStore<TStoreObject extends Record<string, any> = Jwk
64
64
  private _tenantEncryptionActive;
65
65
  /**
66
66
  * Properties to use when writing and querying records with the DWN store.
67
+ * Subclasses MUST override this to include `protocol` and `protocolPath`.
67
68
  */
68
69
  protected _recordProperties: {
69
70
  dataFormat: string;
71
+ protocol: string;
72
+ protocolPath: string;
73
+ schema?: string;
70
74
  };
71
75
  delete({ id, agent, tenant }: DataStoreDeleteParams): Promise<boolean>;
72
76
  get({ id, agent, tenant, useCache }: DataStoreGetParams): Promise<TStoreObject | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"store-data.d.ts","sourceRoot":"","sources":["../../src/store-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-data.d.ts","sourceRoot":"","sources":["../../src/store-data.ts"],"names":[],"mappings":"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"}
@@ -84,59 +84,22 @@ export declare class SyncEngineLevel implements SyncEngine {
84
84
  private getLocalLeaves;
85
85
  private getRemoteLeaves;
86
86
  /**
87
- * Fetches missing messages from the remote DWN and processes them on the local DWN
87
+ * Fetches missing messages from the remote DWN and processes them locally
88
88
  * in dependency order (topological sort).
89
- *
90
- * Messages that fail processing are re-fetched from the remote before each retry
91
- * pass rather than buffered in memory. ReadableStream is single-use, so a failed
92
- * message's data stream is consumed on the first attempt. Re-fetching provides a
93
- * fresh stream without holding all record data in memory simultaneously.
94
89
  */
95
90
  private pullMessages;
96
91
  /**
97
- * Fetches messages from a remote DWN by their CIDs using MessagesRead.
98
- */
99
- private fetchRemoteMessages;
100
- /**
101
- * Reads missing messages from the local DWN and pushes them to the remote DWN.
102
- * Messages are fetched first, then sorted in dependency order (topological sort)
103
- * so that initial writes come before updates, and ProtocolsConfigures come before
104
- * records that reference those protocols.
92
+ * Reads missing messages from the local DWN and pushes them to the remote DWN
93
+ * in dependency order (topological sort).
105
94
  */
106
95
  private pushMessages;
107
96
  /**
108
- * Helper to get the CID of a message for logging purposes.
109
- */
110
- private static getMessageCid;
111
- /**
112
- * Reads a message from the local DWN by its CID using MessagesRead.
113
- */
114
- private getLocalMessage;
115
- /**
116
- * Builds a dependency graph from the fetched messages and returns them in
117
- * topological order so that dependencies are processed before dependents.
118
- *
119
- * Dependencies:
120
- * - ProtocolsConfigure must come before any RecordsWrite using that protocol
121
- * - Parent record must come before child record (via parentId)
122
- * - Initial write must come before update writes (same recordId, not initial)
123
- * - Permission grant must come before records using that permissionGrantId
97
+ * Delegate to the standalone `topologicalSort` function.
98
+ * Tests call `SyncEngineLevel.topologicalSort(...)` so this static method must remain.
124
99
  */
125
100
  static topologicalSort<T extends {
126
101
  message: GenericMessage;
127
102
  }>(messages: T[]): T[];
128
- /**
129
- * Checks whether a message is an initial RecordsWrite (not an update).
130
- * An initial write has recordId === message CID context or has no `dateModified` != `dateCreated`.
131
- */
132
- private static isInitialWrite;
133
- /**
134
- * 202: message was successfully written to the remote DWN
135
- * 204: an initial write message was written without any data
136
- * 409: message was already present on the remote DWN
137
- * RecordsDelete + 404: the initial write was not found or already deleted
138
- */
139
- private static syncMessageReplyIsSuccessful;
140
103
  /**
141
104
  * Returns the list of sync targets: (did, dwnUrl, delegateDid?, protocol?) tuples.
142
105
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine-level.d.ts","sourceRoot":"","sources":["../../src/sync-engine-level.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-engine-level.d.ts","sourceRoot":"","sources":["../../src/sync-engine-level.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AAQ3E,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAa,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAQrE,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;CAClD,CAAC;AASF,qBAAa,eAAgB,YAAW,UAAU;IAChD;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,CAAoB;IAEnC;;OAEG;IACH,OAAO,CAAC,eAAe,CAAiB;IAExC,OAAO,CAAC,GAAG,CAA8C;IACzD,OAAO,CAAC,eAAe,CAAC,CAAiC;IACzD,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAC,CAAsB;gBAElC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,qBAAqB;IAM1D;;;;;OAKG;IACH,IAAI,KAAK,IAAI,iBAAiB,CAM7B;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,iBAAiB,EAGjC;IAEY,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,gBAAgB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjG,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9C,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAkBzE,qBAAqB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDhD,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE;QACnC,QAAQ,EAAE,MAAM,CAAA;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCjB;;OAEG;IACU,QAAQ,CAAC,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5D;;;OAGG;YACW,iBAAiB;IAiB/B;;;OAGG;YACW,YAAY;IAmB1B;;;OAGG;YACW,aAAa;IA6B3B;;;;;OAKG;YACW,YAAY;YA0EZ,mBAAmB;YAoBnB,oBAAoB;YA0BpB,cAAc;YAoBd,eAAe;IAkC7B;;;OAGG;YACW,YAAY;IAc1B;;;OAGG;YACW,YAAY;IAkB1B;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS;QAAE,OAAO,EAAE,cAAc,CAAA;KAAE,EAC1D,QAAQ,EAAE,CAAC,EAAE,GACZ,CAAC,EAAE;IAIN;;OAEG;YACW,cAAc;IAsC5B;;;OAGG;YACW,wBAAwB;CAmBvC"}
@@ -0,0 +1,76 @@
1
+ import type { PermissionsApi } from './types/permissions.js';
2
+ import type { Web5PlatformAgent } from './types/agent.js';
3
+ import type { GenericMessage, UnionMessageReply } from '@enbox/dwn-sdk-js';
4
+ /** Entry type for fetched messages with optional data stream. */
5
+ export type SyncMessageEntry = {
6
+ message: GenericMessage;
7
+ dataStream?: ReadableStream<Uint8Array>;
8
+ };
9
+ /**
10
+ * 202: message was successfully written to the remote DWN
11
+ * 204: an initial write message was written without any data
12
+ * 409: message was already present on the remote DWN
13
+ * RecordsDelete + 404: the initial write was not found or already deleted
14
+ */
15
+ export declare function syncMessageReplyIsSuccessful(reply: UnionMessageReply): boolean;
16
+ /**
17
+ * Helper to get the CID of a message for logging purposes.
18
+ */
19
+ export declare function getMessageCid(message: GenericMessage): Promise<string>;
20
+ /**
21
+ * Fetches missing messages from the remote DWN and processes them on the local DWN
22
+ * in dependency order (topological sort).
23
+ *
24
+ * Messages that fail processing are re-fetched from the remote before each retry
25
+ * pass rather than buffered in memory. ReadableStream is single-use, so a failed
26
+ * message's data stream is consumed on the first attempt. Re-fetching provides a
27
+ * fresh stream without holding all record data in memory simultaneously.
28
+ */
29
+ export declare function pullMessages({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi }: {
30
+ did: string;
31
+ dwnUrl: string;
32
+ delegateDid?: string;
33
+ protocol?: string;
34
+ messageCids: string[];
35
+ agent: Web5PlatformAgent;
36
+ permissionsApi: PermissionsApi;
37
+ }): Promise<void>;
38
+ /**
39
+ * Fetches messages from a remote DWN by their CIDs using MessagesRead.
40
+ */
41
+ export declare function fetchRemoteMessages({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi }: {
42
+ did: string;
43
+ dwnUrl: string;
44
+ delegateDid?: string;
45
+ protocol?: string;
46
+ messageCids: string[];
47
+ agent: Web5PlatformAgent;
48
+ permissionsApi: PermissionsApi;
49
+ }): Promise<SyncMessageEntry[]>;
50
+ /**
51
+ * Reads missing messages from the local DWN and pushes them to the remote DWN.
52
+ * Messages are fetched first, then sorted in dependency order (topological sort)
53
+ * so that initial writes come before updates, and ProtocolsConfigures come before
54
+ * records that reference those protocols.
55
+ */
56
+ export declare function pushMessages({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi }: {
57
+ did: string;
58
+ dwnUrl: string;
59
+ delegateDid?: string;
60
+ protocol?: string;
61
+ messageCids: string[];
62
+ agent: Web5PlatformAgent;
63
+ permissionsApi: PermissionsApi;
64
+ }): Promise<void>;
65
+ /**
66
+ * Reads a message from the local DWN by its CID using MessagesRead.
67
+ */
68
+ export declare function getLocalMessage({ author, delegateDid, protocol, messageCid, agent, permissionsApi }: {
69
+ author: string;
70
+ delegateDid?: string;
71
+ protocol?: string;
72
+ messageCid: string;
73
+ agent: Web5PlatformAgent;
74
+ permissionsApi: PermissionsApi;
75
+ }): Promise<SyncMessageEntry | undefined>;
76
+ //# sourceMappingURL=sync-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-messages.d.ts","sourceRoot":"","sources":["../../src/sync-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAqB,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAQ9F,iEAAiE;AACjE,MAAM,MAAM,gBAAgB,GAAG;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CAAE,CAAC;AAEpG;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAS9E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAM5E;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAC7G,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,iBAAiB,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACpH,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,iBAAiB,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAwE9B;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAC7G,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,iBAAiB,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAC1G,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,iBAAiB,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAwCxC"}
@@ -0,0 +1,15 @@
1
+ import type { GenericMessage } from '@enbox/dwn-sdk-js';
2
+ /**
3
+ * Builds a dependency graph from the fetched messages and returns them in
4
+ * topological order so that dependencies are processed before dependents.
5
+ *
6
+ * Dependencies:
7
+ * - ProtocolsConfigure must come before any RecordsWrite using that protocol
8
+ * - Parent record must come before child record (via parentId)
9
+ * - Initial write must come before update writes (same recordId, not initial)
10
+ * - Permission grant must come before records using that permissionGrantId
11
+ */
12
+ export declare function topologicalSort<T extends {
13
+ message: GenericMessage;
14
+ }>(messages: T[]): T[];
15
+ //# sourceMappingURL=sync-topological-sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-topological-sort.d.ts","sourceRoot":"","sources":["../../src/sync-topological-sort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAiBxD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,EACnE,QAAQ,EAAE,CAAC,EAAE,GACZ,CAAC,EAAE,CAyIL"}
@@ -51,6 +51,16 @@ export declare class PlatformAgentTestHarness {
51
51
  };
52
52
  constructor(params: PlatformAgentTestHarnessParams);
53
53
  clearStorage(): Promise<void>;
54
+ /**
55
+ * Clear only DWN-level stores (data, messages, state index, resumable tasks,
56
+ * sync, permissions) and the DWN-backed store caches — but preserve the
57
+ * agent DID, vault, and all key/DID/identity material.
58
+ *
59
+ * Use this in `beforeEach` when `createAgentDid()` (and optionally
60
+ * `createIdentity()`) was called once in `beforeAll` to avoid expensive
61
+ * DID re-creation on every test.
62
+ */
63
+ clearDwnStores(): Promise<void>;
54
64
  closeStorage(): Promise<void>;
55
65
  createAgentDid(): Promise<void>;
56
66
  createIdentity({ name, testDwnUrls }: {
@@ -1 +1 @@
1
- {"version":3,"file":"test-harness.d.ts","sourceRoot":"","sources":["../../src/test-harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAsB,iBAAiB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAYpI,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAyB,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAY/D,KAAK,8BAA8B,GAAG;IACpC,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAA;IAEzC,WAAW,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,cAAc,CAAC;IAC7B,aAAa,EAAE,eAAe,CAAC;IAC/B,eAAe,EAAE,iBAAiB,CAAC;IACnC,qBAAqB,EAAE,uBAAuB,CAAC;IAC/C,SAAS,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;IACvD,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,SAAS,EAAE;QACT,QAAQ,EAAE,WAAW,CAAC;QACtB,aAAa,EAAE,gBAAgB,CAAC;QAChC,QAAQ,EAAE,WAAW,CAAC;QACtB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAA;CACF,CAAC;AAEF,qBAAa,wBAAwB;IAC5B,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAE1C,WAAW,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,cAAc,CAAC;IAC7B,aAAa,EAAE,eAAe,CAAC;IAC/B,eAAe,EAAE,iBAAiB,CAAC;IACnC,qBAAqB,EAAE,uBAAuB,CAAC;IAC/C,SAAS,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;IACvD,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjD;;;OAGG;IACI,SAAS,EAAE;QAChB,QAAQ,EAAE,WAAW,CAAC;QACtB,aAAa,EAAE,gBAAgB,CAAC;QAChC,QAAQ,EAAE,WAAW,CAAC;QACtB,gDAAgD;QAChD,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;gBAEU,MAAM,EAAE,8BAA8B;IAcrC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC7B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAU7B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB/B,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;QACjD,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,GAAG,OAAO,CAAC,cAAc,CAAC;WAgCP,KAAK,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE;QACvE,UAAU,EAAE,KAAK,MAAM,EAAE,GAAG,KAAK,iBAAiB,CAAC,eAAe,CAAC,CAAA;QACnE,WAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;QAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA8FrC,OAAO,CAAC,MAAM,CAAC,aAAa;IAqC5B,OAAO,CAAC,MAAM,CAAC,eAAe;CAsB/B"}
1
+ {"version":3,"file":"test-harness.d.ts","sourceRoot":"","sources":["../../src/test-harness.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export type FetchPermissionsParams = {
6
6
  grantor?: string;
7
7
  protocol?: string;
8
8
  remote?: boolean;
9
+ /** Whether to filter out revoked grants. Defaults to `true`. */
10
+ checkRevoked?: boolean;
9
11
  };
10
12
  export type FetchPermissionRequestParams = {
11
13
  author: string;
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/types/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/types/permissions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enbox/agent",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "type": "module",
5
5
  "main": "./dist/esm/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -15,7 +15,7 @@
15
15
  "test:node": "bun test --timeout 10000 .spec.ts",
16
16
  "test:node:coverage": "bun test --timeout 10000 --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir=coverage .spec.ts",
17
17
  "test:browser": "bunx --bun vitest --config vitest.browser.config.ts --run",
18
- "test:browser:coverage": "bunx --bun vitest --config vitest.browser.config.ts --run --coverage --coverage.provider=istanbul --coverage.reportsDirectory=./coverage-browser"
18
+ "test:browser:coverage": "bunx --bun vitest --config vitest.browser.config.ts --run --coverage --coverage.provider=istanbul"
19
19
  },
20
20
  "homepage": "https://github.com/enboxorg/enbox/tree/main/packages/agent#readme",
21
21
  "bugs": "https://github.com/enboxorg/enbox/issues",
@@ -71,11 +71,11 @@
71
71
  },
72
72
  "dependencies": {
73
73
  "@scure/bip39": "1.2.2",
74
- "@enbox/dwn-clients": "0.0.3",
75
- "@enbox/dwn-sdk-js": "0.0.6",
74
+ "@enbox/dwn-clients": "0.0.4",
75
+ "@enbox/dwn-sdk-js": "0.0.7",
76
76
  "@enbox/common": "0.0.3",
77
77
  "@enbox/crypto": "0.0.4",
78
- "@enbox/dids": "0.0.4",
78
+ "@enbox/dids": "0.0.5",
79
79
  "abstract-level": "1.0.4",
80
80
  "ed25519-keygen": "0.4.11",
81
81
  "level": "8.0.0",