@interop/wallet-core 0.107.0 → 0.108.0

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 (139) hide show
  1. package/README.md +21 -19
  2. package/dist/clientAnnex/establish.d.ts +6 -5
  3. package/dist/clientAnnex/establish.d.ts.map +1 -1
  4. package/dist/clientAnnex/establish.js +9 -8
  5. package/dist/clientAnnex/establish.js.map +1 -1
  6. package/dist/clientAnnex/forget.d.ts +5 -5
  7. package/dist/clientAnnex/forget.d.ts.map +1 -1
  8. package/dist/clientAnnex/forget.js +1 -1
  9. package/dist/clientAnnex/forget.js.map +1 -1
  10. package/dist/clientAnnex/forgetLast.d.ts +8 -8
  11. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  12. package/dist/clientAnnex/forgetLast.js +2 -2
  13. package/dist/clientAnnex/forgetLast.js.map +1 -1
  14. package/dist/clientAnnex/gc.d.ts.map +1 -1
  15. package/dist/clientAnnex/gc.js +4 -1
  16. package/dist/clientAnnex/gc.js.map +1 -1
  17. package/dist/clientAnnex/grantRevocation.d.ts +11 -7
  18. package/dist/clientAnnex/grantRevocation.d.ts.map +1 -1
  19. package/dist/clientAnnex/grantRevocation.js +1 -1
  20. package/dist/clientAnnex/grantRevocation.js.map +1 -1
  21. package/dist/clientAnnex/heal.d.ts +16 -14
  22. package/dist/clientAnnex/heal.d.ts.map +1 -1
  23. package/dist/clientAnnex/heal.js +9 -9
  24. package/dist/clientAnnex/heal.js.map +1 -1
  25. package/dist/clientAnnex/ladderAnchored.d.ts +35 -27
  26. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  27. package/dist/clientAnnex/ladderAnchored.js +26 -37
  28. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  29. package/dist/clientAnnex/log.d.ts +31 -31
  30. package/dist/clientAnnex/log.d.ts.map +1 -1
  31. package/dist/clientAnnex/log.js +28 -28
  32. package/dist/clientAnnex/log.js.map +1 -1
  33. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +4 -3
  34. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  35. package/dist/clientAnnex/recoveryLadderAnchored.js +1 -1
  36. package/dist/clientAnnex/selfEnroll.d.ts +3 -3
  37. package/dist/clientAnnex/selfEnroll.d.ts.map +1 -1
  38. package/dist/clientAnnex/selfEnroll.js +1 -1
  39. package/dist/clients/grantState.d.ts +11 -9
  40. package/dist/clients/grantState.d.ts.map +1 -1
  41. package/dist/clients/grantState.js +19 -16
  42. package/dist/clients/grantState.js.map +1 -1
  43. package/dist/clients/index.d.ts +9 -9
  44. package/dist/clients/index.js +9 -9
  45. package/dist/clients/listing.d.ts +12 -14
  46. package/dist/clients/listing.d.ts.map +1 -1
  47. package/dist/clients/listing.js +17 -23
  48. package/dist/clients/listing.js.map +1 -1
  49. package/dist/clients/revocation.d.ts +2 -2
  50. package/dist/clients/revocation.d.ts.map +1 -1
  51. package/dist/clients/revocation.js.map +1 -1
  52. package/dist/connections/entry.d.ts +100 -9
  53. package/dist/connections/entry.d.ts.map +1 -1
  54. package/dist/connections/entry.js +104 -12
  55. package/dist/connections/entry.js.map +1 -1
  56. package/dist/connections/grantProof.d.ts +47 -14
  57. package/dist/connections/grantProof.d.ts.map +1 -1
  58. package/dist/connections/grantProof.js +88 -57
  59. package/dist/connections/grantProof.js.map +1 -1
  60. package/dist/connections/grants.d.ts +13 -1
  61. package/dist/connections/grants.d.ts.map +1 -1
  62. package/dist/connections/grants.js +18 -31
  63. package/dist/connections/grants.js.map +1 -1
  64. package/dist/connections/index.d.ts +13 -8
  65. package/dist/connections/index.d.ts.map +1 -1
  66. package/dist/connections/index.js +10 -6
  67. package/dist/connections/index.js.map +1 -1
  68. package/dist/connections/replicas.d.ts +227 -0
  69. package/dist/connections/replicas.d.ts.map +1 -0
  70. package/dist/connections/replicas.js +539 -0
  71. package/dist/connections/replicas.js.map +1 -0
  72. package/dist/connections/upsert.d.ts +75 -1
  73. package/dist/connections/upsert.d.ts.map +1 -1
  74. package/dist/connections/upsert.js +62 -34
  75. package/dist/connections/upsert.js.map +1 -1
  76. package/dist/recovery/continuation.d.ts +3 -9
  77. package/dist/recovery/continuation.d.ts.map +1 -1
  78. package/dist/recovery/continuation.js +1 -3
  79. package/dist/recovery/continuation.js.map +1 -1
  80. package/dist/recovery/index.d.ts +2 -1
  81. package/dist/recovery/index.d.ts.map +1 -1
  82. package/dist/recovery/recoveryWebvh.d.ts +21 -15
  83. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  84. package/dist/recovery/recoveryWebvh.js +12 -7
  85. package/dist/recovery/recoveryWebvh.js.map +1 -1
  86. package/dist/testing/accountBuilder.d.ts.map +1 -1
  87. package/dist/testing/accountBuilder.js +1 -3
  88. package/dist/testing/accountBuilder.js.map +1 -1
  89. package/dist/testing/signerFixture.d.ts +3 -3
  90. package/dist/testing/signerFixture.d.ts.map +1 -1
  91. package/dist/testing/signerFixture.js +7 -5
  92. package/dist/testing/signerFixture.js.map +1 -1
  93. package/dist/unlock/index.d.ts +2 -1
  94. package/dist/unlock/index.d.ts.map +1 -1
  95. package/dist/unlock/retire.d.ts +7 -5
  96. package/dist/unlock/retire.d.ts.map +1 -1
  97. package/dist/unlock/retire.js +5 -4
  98. package/dist/unlock/retire.js.map +1 -1
  99. package/dist/unlock/standingWebvh.d.ts +24 -15
  100. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  101. package/dist/unlock/standingWebvh.js +32 -19
  102. package/dist/unlock/standingWebvh.js.map +1 -1
  103. package/dist/webvh/accountEntry.d.ts +39 -50
  104. package/dist/webvh/accountEntry.d.ts.map +1 -1
  105. package/dist/webvh/accountEntry.js +133 -55
  106. package/dist/webvh/accountEntry.js.map +1 -1
  107. package/dist/webvh/delegatedLogStore.d.ts +4 -11
  108. package/dist/webvh/delegatedLogStore.d.ts.map +1 -1
  109. package/dist/webvh/delegatedLogStore.js +1 -1
  110. package/dist/webvh/delegatedLogStore.js.map +1 -1
  111. package/dist/webvh/didWebProjection.d.ts +30 -49
  112. package/dist/webvh/didWebProjection.d.ts.map +1 -1
  113. package/dist/webvh/didWebProjection.js +9 -56
  114. package/dist/webvh/didWebProjection.js.map +1 -1
  115. package/dist/webvh/didWebvh.d.ts +13 -8
  116. package/dist/webvh/didWebvh.d.ts.map +1 -1
  117. package/dist/webvh/didWebvh.js +11 -7
  118. package/dist/webvh/didWebvh.js.map +1 -1
  119. package/dist/webvh/enrollClient.d.ts +5 -3
  120. package/dist/webvh/enrollClient.d.ts.map +1 -1
  121. package/dist/webvh/enrollClient.js +12 -10
  122. package/dist/webvh/enrollClient.js.map +1 -1
  123. package/dist/webvh/index.d.ts +14 -7
  124. package/dist/webvh/index.d.ts.map +1 -1
  125. package/dist/webvh/index.js +12 -5
  126. package/dist/webvh/index.js.map +1 -1
  127. package/dist/webvh/listClients.d.ts +124 -15
  128. package/dist/webvh/listClients.d.ts.map +1 -1
  129. package/dist/webvh/listClients.js +148 -43
  130. package/dist/webvh/listClients.js.map +1 -1
  131. package/dist/webvh/revokeClient.d.ts +10 -4
  132. package/dist/webvh/revokeClient.d.ts.map +1 -1
  133. package/dist/webvh/revokeClient.js +22 -22
  134. package/dist/webvh/revokeClient.js.map +1 -1
  135. package/dist/webvh/standingZcap.d.ts +4 -1
  136. package/dist/webvh/standingZcap.d.ts.map +1 -1
  137. package/dist/webvh/standingZcap.js +13 -14
  138. package/dist/webvh/standingZcap.js.map +1 -1
  139. package/package.json +7 -7
@@ -0,0 +1,227 @@
1
+ import type { ConnectionIdKey } from './resourceId.js';
2
+ import type { ConnectionsStore } from './store.js';
3
+ import type { ConnectionWriteResult } from './upsert.js';
4
+ /**
5
+ * The intent markers a replica item carries.
6
+ */
7
+ export declare const REPLICA_MARKERS: readonly ["stoppedAt", "restartedAt", "lostAt"];
8
+ /**
9
+ * One value of {@link REPLICA_MARKERS}.
10
+ */
11
+ export type ReplicaMarker = (typeof REPLICA_MARKERS)[number];
12
+ /**
13
+ * The registration ceremony's entry write, before anything touches the
14
+ * replica server: creates the `replica-server` entry, or merges into it.
15
+ * `url` is set, `name` when it passes the display-name rule, and `lastSeen`
16
+ * moves to `now`. Each item of `replicas` is added by its `fromSpace` (stored
17
+ * URL-normalized) with its freshly minted replica Space id; an item already
18
+ * listed for that source Space is left as stored, so a re-run adopts the ids
19
+ * an earlier run persisted. An item already listed that carries `lostAt` is
20
+ * refused with an `Error`: its replica Space is gone, so adopting its id
21
+ * would register under a lost Space while the item kept reading as lost.
22
+ * Delete removes the item (`removeReplica`) before the Space is registered
23
+ * again. `retired` and `declined` are cleared, since the user's registration
24
+ * is a fresh consent toward the server. `firstSeen` is set only on create,
25
+ * and `label` is never touched.
26
+ *
27
+ * A `seed` and its `seedTag` (both or neither) are written when the entry
28
+ * carries no seed, and left as stored when it carries the same one. An entry
29
+ * carrying a different seed is refused with an `Error`, since the seed is
30
+ * written once and a retired entry keeps it.
31
+ *
32
+ * Refuses an entry of another kind with {@link ConnectionKindMismatchError},
33
+ * and a `fromSpace` that is not a container URL, a `spaceId` that is not a
34
+ * fresh id, two items naming one source Space, or a `seed` without its tag
35
+ * (or the reverse) with a `TypeError`, before anything is written. The tag
36
+ * is not verified here; the caller minted both under the directory's key.
37
+ *
38
+ * @param options {object}
39
+ * @param options.store {ConnectionsStore}
40
+ * @param options.hmacKey {ConnectionIdKey}
41
+ * @param options.did {string} the replica server's `serverDid`
42
+ * @param options.url {string} the replica server's base URL
43
+ * @param options.replicas {Array<object>} `{ fromSpace, spaceId }` per
44
+ * replica Space to record
45
+ * @param [options.name] {string} the replica server's host name
46
+ * @param [options.seed] {string} the bootstrap seed, base64url with no
47
+ * padding
48
+ * @param [options.seedTag] {string} the seed's tag (`connectionSeedTag`)
49
+ * @param [options.now] {Date}
50
+ * @returns {Promise<ConnectionWriteResult>}
51
+ */
52
+ export declare function recordReplicas({ store, hmacKey, did, url, replicas, name, seed, seedTag, now }: {
53
+ store: ConnectionsStore;
54
+ hmacKey: ConnectionIdKey;
55
+ did: string;
56
+ url: string;
57
+ replicas: Array<{
58
+ fromSpace: string;
59
+ spaceId: string;
60
+ }>;
61
+ name?: string;
62
+ seed?: string;
63
+ seedTag?: string;
64
+ now?: Date;
65
+ }): Promise<ConnectionWriteResult>;
66
+ /**
67
+ * Records one pull grant on the entry, and with it a first registration's
68
+ * pending id, in one write. The grant is appended as a `'grant'` record
69
+ * stamped `grantedAt: now`; one already recorded by its capability id is
70
+ * left as stored. With `pendingRegistrationId`, the item for `fromSpace`
71
+ * gains it, unless its first registration already landed (`registrationId`
72
+ * present) or it is pending under another id, each refused with an `Error`:
73
+ * the pending id is recorded before its POST, so a second id would orphan a
74
+ * registration that may have landed under the first.
75
+ *
76
+ * With `renews`, the id of the recorded grant the capability renews, the
77
+ * record is a renewal under `renewedGrantRecord`, the rule
78
+ * `recordRenewedGrants` applies: it keeps the source's `grantKind` and
79
+ * `grantedAt` and carries `renewedAt: now`, the source stays as stored, and
80
+ * the capability must share the source's scope (controller, invocation
81
+ * target, allowed actions) and expire strictly later. A source no longer on
82
+ * the entry, no longer the latest record of its scope, or a capability not
83
+ * expiring strictly later, is refused with an `Error`. The login pass records a renewal this
84
+ * way, with no pending id; the two together are refused with a `TypeError`.
85
+ *
86
+ * This write touches neither `declined` nor `retired`: the pass records a
87
+ * renewal through it, and a declined entry must stay declined until the
88
+ * owner's re-start (`setReplicaMarker` with `restartedAt`) clears it.
89
+ *
90
+ * Refuses an entry of another kind with {@link ConnectionKindMismatchError},
91
+ * a retired entry with an `Error`, and a capability not delegated to the
92
+ * server's DID or not targeting `fromSpace` (`checkedDelegatedZcap`), one
93
+ * allowing any action but `GET` (a pull grant reads and nothing else), or a
94
+ * `pendingRegistrationId` that is not a fresh id, with a `TypeError`. An entry listing no item for
95
+ * `fromSpace` is refused with an `Error`. An absent entry writes nothing.
96
+ *
97
+ * @param options {object}
98
+ * @param options.store {ConnectionsStore}
99
+ * @param options.hmacKey {ConnectionIdKey}
100
+ * @param options.did {string} the replica server's `serverDid`, the
101
+ * grant's controller
102
+ * @param options.fromSpace {string} the source Space the grant reads from
103
+ * @param options.zcap {object} the pull capability
104
+ * @param [options.pendingRegistrationId] {string} a first registration's
105
+ * id, recorded before its POST
106
+ * @param [options.renews] {string} the capability id of the recorded grant
107
+ * this one renews
108
+ * @param [options.now] {Date}
109
+ * @returns {Promise<ConnectionWriteResult>}
110
+ */
111
+ export declare function recordReplicaGrant({ store, hmacKey, did, fromSpace: spaceValue, zcap: zcapValue, pendingRegistrationId, renews, now }: {
112
+ store: ConnectionsStore;
113
+ hmacKey: ConnectionIdKey;
114
+ did: string;
115
+ fromSpace: string;
116
+ zcap: object;
117
+ pendingRegistrationId?: string;
118
+ renews?: string;
119
+ now?: Date;
120
+ }): Promise<ConnectionWriteResult>;
121
+ /**
122
+ * Moves a landed first registration's id from `pendingRegistrationId` to
123
+ * `registrationId` on the item for `fromSpace`. An item already settled on
124
+ * `registrationId` with no pending id writes nothing. An item whose pending
125
+ * id is another, or that carries neither, is refused with an `Error`.
126
+ *
127
+ * Refuses an entry of another kind with {@link ConnectionKindMismatchError},
128
+ * and an entry listing no item for `fromSpace` with an `Error`. An absent
129
+ * entry writes nothing.
130
+ *
131
+ * @param options {object}
132
+ * @param options.store {ConnectionsStore}
133
+ * @param options.hmacKey {ConnectionIdKey}
134
+ * @param options.did {string} the replica server's `serverDid`
135
+ * @param options.fromSpace {string} the item's source Space
136
+ * @param options.registrationId {string} the id that landed
137
+ * @returns {Promise<ConnectionWriteResult>}
138
+ */
139
+ export declare function settleReplicaRegistration({ store, hmacKey, did, fromSpace: value, registrationId }: {
140
+ store: ConnectionsStore;
141
+ hmacKey: ConnectionIdKey;
142
+ did: string;
143
+ fromSpace: string;
144
+ registrationId: string;
145
+ }): Promise<ConnectionWriteResult>;
146
+ /**
147
+ * Sets one intent marker to `now` on each named item, or on every item when
148
+ * `fromSpaces` is omitted: `stoppedAt` is the user's Stop, `restartedAt` the
149
+ * re-start, and `lostAt` the replica Space reading absent under the account's
150
+ * own authority. An item already carrying the marker keeps its time. Setting
151
+ * `restartedAt` also clears the entry's `declined`, in the same write, since
152
+ * the re-start is the owner's consent. Nothing to set writes nothing.
153
+ *
154
+ * Refuses an entry of another kind with {@link ConnectionKindMismatchError},
155
+ * a named source Space the entry lists no item for with an `Error`, and an
156
+ * empty `fromSpaces` with a `TypeError`, since it would mark nothing while
157
+ * the re-start's decline clearing still ran. An absent entry writes nothing.
158
+ *
159
+ * @param options {object}
160
+ * @param options.store {ConnectionsStore}
161
+ * @param options.hmacKey {ConnectionIdKey}
162
+ * @param options.did {string} the replica server's `serverDid`
163
+ * @param options.marker {ReplicaMarker}
164
+ * @param [options.fromSpaces] {Iterable<string>} the items to mark, by
165
+ * source Space; omitted, every item
166
+ * @param [options.now] {Date}
167
+ * @returns {Promise<ConnectionWriteResult>}
168
+ */
169
+ export declare function setReplicaMarker({ store, hmacKey, did, marker, fromSpaces, now }: {
170
+ store: ConnectionsStore;
171
+ hmacKey: ConnectionIdKey;
172
+ did: string;
173
+ marker: ReplicaMarker;
174
+ fromSpaces?: Iterable<string>;
175
+ now?: Date;
176
+ }): Promise<ConnectionWriteResult>;
177
+ /**
178
+ * Clears one intent marker on each named item, or on every item when
179
+ * `fromSpaces` is omitted: a completed re-start clears `stoppedAt` and then
180
+ * `restartedAt`. An item without the marker is left as stored, and nothing
181
+ * to clear writes nothing.
182
+ *
183
+ * Refuses an entry of another kind with {@link ConnectionKindMismatchError},
184
+ * a named source Space the entry lists no item for with an `Error`, and an
185
+ * empty `fromSpaces` with a `TypeError`. An absent entry writes nothing.
186
+ *
187
+ * @param options {object}
188
+ * @param options.store {ConnectionsStore}
189
+ * @param options.hmacKey {ConnectionIdKey}
190
+ * @param options.did {string} the replica server's `serverDid`
191
+ * @param options.marker {ReplicaMarker}
192
+ * @param [options.fromSpaces] {Iterable<string>} the items to clear, by
193
+ * source Space; omitted, every item
194
+ * @returns {Promise<ConnectionWriteResult>}
195
+ */
196
+ export declare function clearReplicaMarker({ store, hmacKey, did, marker, fromSpaces }: {
197
+ store: ConnectionsStore;
198
+ hmacKey: ConnectionIdKey;
199
+ did: string;
200
+ marker: ReplicaMarker;
201
+ fromSpaces?: Iterable<string>;
202
+ }): Promise<ConnectionWriteResult>;
203
+ /**
204
+ * Removes the item for `fromSpace`, once its replica Space is gone. An
205
+ * entry listing no such item writes nothing. The entry is not retired here:
206
+ * `retireConnection` runs once the list is empty.
207
+ *
208
+ * Refuses an entry of another kind with {@link ConnectionKindMismatchError},
209
+ * and an item whose source Space a recorded grant still targets with an
210
+ * `Error`: Stop revokes and removes the pull grants first, so a grant left
211
+ * recorded means a Stop torn before its last step, and the removal would
212
+ * hide it from the readers that finish it. An absent entry writes nothing.
213
+ *
214
+ * @param options {object}
215
+ * @param options.store {ConnectionsStore}
216
+ * @param options.hmacKey {ConnectionIdKey}
217
+ * @param options.did {string} the replica server's `serverDid`
218
+ * @param options.fromSpace {string} the item's source Space
219
+ * @returns {Promise<ConnectionWriteResult>}
220
+ */
221
+ export declare function removeReplica({ store, hmacKey, did, fromSpace: value }: {
222
+ store: ConnectionsStore;
223
+ hmacKey: ConnectionIdKey;
224
+ did: string;
225
+ fromSpace: string;
226
+ }): Promise<ConnectionWriteResult>;
227
+ //# sourceMappingURL=replicas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replicas.d.ts","sourceRoot":"","sources":["../../src/connections/replicas.ts"],"names":[],"mappings":"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"}