@interop/wallet-core 0.109.0 → 0.110.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.
- package/dist/clientAnnex/gc.d.ts +31 -2
- package/dist/clientAnnex/gc.d.ts.map +1 -1
- package/dist/clientAnnex/gc.js +44 -7
- package/dist/clientAnnex/gc.js.map +1 -1
- package/dist/clientAnnex/heal.d.ts.map +1 -1
- package/dist/clientAnnex/heal.js +13 -3
- package/dist/clientAnnex/heal.js.map +1 -1
- package/dist/clientAnnex/index.d.ts +2 -2
- package/dist/clientAnnex/index.d.ts.map +1 -1
- package/dist/clientAnnex/index.js +1 -1
- package/dist/clientAnnex/index.js.map +1 -1
- package/dist/clientAnnex/log.d.ts +160 -4
- package/dist/clientAnnex/log.d.ts.map +1 -1
- package/dist/clientAnnex/log.js +229 -17
- package/dist/clientAnnex/log.js.map +1 -1
- package/dist/connections/grants.d.ts +48 -3
- package/dist/connections/grants.d.ts.map +1 -1
- package/dist/connections/grants.js +54 -3
- package/dist/connections/grants.js.map +1 -1
- package/dist/connections/index.d.ts +7 -4
- package/dist/connections/index.d.ts.map +1 -1
- package/dist/connections/index.js +7 -4
- package/dist/connections/index.js.map +1 -1
- package/dist/connections/replicas.d.ts +43 -1
- package/dist/connections/replicas.d.ts.map +1 -1
- package/dist/connections/replicas.js +87 -14
- package/dist/connections/replicas.js.map +1 -1
- package/dist/connections/upsert.d.ts +52 -19
- package/dist/connections/upsert.d.ts.map +1 -1
- package/dist/connections/upsert.js +93 -41
- package/dist/connections/upsert.js.map +1 -1
- package/package.json +2 -2
|
@@ -630,6 +630,139 @@ export declare function generationDelegationServiceEntry({ clientAnnexDid, deleg
|
|
|
630
630
|
export declare function embeddedGenerationDelegation({ doc }: {
|
|
631
631
|
doc: DIDDoc;
|
|
632
632
|
}): IZcap | undefined;
|
|
633
|
+
/**
|
|
634
|
+
* The type IRI of the annex document's replica pointer entries: one entry per
|
|
635
|
+
* replica server the account registers, each naming that server's DID. The
|
|
636
|
+
* term is the PWS companion spec's, since replication is its domain.
|
|
637
|
+
* Wire-level and permanent (app-connect-spec decision 0001): the source
|
|
638
|
+
* server gates a ladder-signed pull on it, and readers dispatch on this IRI
|
|
639
|
+
* rather than on the entry's fragment id.
|
|
640
|
+
*/
|
|
641
|
+
export declare const REPLICA_SERVER_SERVICE_TYPE = "https://w3id.org/pws#ReplicaServer";
|
|
642
|
+
/**
|
|
643
|
+
* Refuses, with a `TypeError`, a replica server DID that is not a did:webvh
|
|
644
|
+
* whose path is `space:server:id` (app-connect-spec decision 0003, predicate
|
|
645
|
+
* 6: the source server checks the grantee's shape beside the pointer). A
|
|
646
|
+
* malformed value would land permanently in a hash-chained annex entry the
|
|
647
|
+
* server refuses anyway, so the wallet refuses it before minting the entry.
|
|
648
|
+
*
|
|
649
|
+
* @param options {object}
|
|
650
|
+
* @param options.serverDid {string}
|
|
651
|
+
*/
|
|
652
|
+
export declare function assertReplicaServerDid({ serverDid }: {
|
|
653
|
+
serverDid: string;
|
|
654
|
+
}): void;
|
|
655
|
+
/**
|
|
656
|
+
* The fragment id of a replica pointer entry: `replica-` followed by the
|
|
657
|
+
* SHA-256 multihash of the replica server's DID string (its UTF-8 bytes),
|
|
658
|
+
* base64url with no padding. Derived rather than random, so one server's
|
|
659
|
+
* entry has the same id on every restate. Wire-level and permanent; readers
|
|
660
|
+
* still dispatch on {@link REPLICA_SERVER_SERVICE_TYPE}.
|
|
661
|
+
*
|
|
662
|
+
* @param options {object}
|
|
663
|
+
* @param options.serverDid {string} the replica server's DID
|
|
664
|
+
* @returns {string} the fragment, without the `#`
|
|
665
|
+
*/
|
|
666
|
+
export declare function replicaServerServiceFragment({ serverDid }: {
|
|
667
|
+
serverDid: string;
|
|
668
|
+
}): string;
|
|
669
|
+
/**
|
|
670
|
+
* Builds a replica pointer entry for an annex document. The
|
|
671
|
+
* `serviceEndpoint` is the replica server's bare DID STRING, and the entry
|
|
672
|
+
* carries nothing beside it. Refuses a malformed `serverDid`
|
|
673
|
+
* ({@link assertReplicaServerDid}).
|
|
674
|
+
*
|
|
675
|
+
* @param options {object}
|
|
676
|
+
* @param options.clientAnnexDid {string} the generation's annex DID
|
|
677
|
+
* @param options.serverDid {string} the replica server's DID
|
|
678
|
+
* @returns {ServiceEndpoint}
|
|
679
|
+
*/
|
|
680
|
+
export declare function replicaServerServiceEntry({ clientAnnexDid, serverDid }: {
|
|
681
|
+
clientAnnexDid: string;
|
|
682
|
+
serverDid: string;
|
|
683
|
+
}): ServiceEndpoint;
|
|
684
|
+
/**
|
|
685
|
+
* The replica servers an annex document points at: the `serviceEndpoint` of
|
|
686
|
+
* every entry whose `type` names (or includes)
|
|
687
|
+
* {@link REPLICA_SERVER_SERVICE_TYPE}, in document order, each DID once.
|
|
688
|
+
* Only a bare DID-string endpoint counts, the same predicate the server's
|
|
689
|
+
* replica-pointer clause evaluates, so wallet and server read the same
|
|
690
|
+
* pointer set off one document.
|
|
691
|
+
*
|
|
692
|
+
* @param options {object}
|
|
693
|
+
* @param options.doc {DIDDoc} the resolved (and verified) annex document
|
|
694
|
+
* @returns {string[]}
|
|
695
|
+
*/
|
|
696
|
+
export declare function replicaServerPointers({ doc }: {
|
|
697
|
+
doc: DIDDoc;
|
|
698
|
+
}): string[];
|
|
699
|
+
/**
|
|
700
|
+
* Whether an annex document carries a replica pointer at `serverDid`: a
|
|
701
|
+
* replica pointer entry whose endpoint is the server's DID. The match is by
|
|
702
|
+
* endpoint alone, the one the server's replica-pointer clause makes; an
|
|
703
|
+
* entry's fragment id is a selector and names no server.
|
|
704
|
+
*
|
|
705
|
+
* @param options {object}
|
|
706
|
+
* @param options.doc {DIDDoc} the resolved (and verified) annex document
|
|
707
|
+
* @param options.serverDid {string} the replica server's DID
|
|
708
|
+
* @returns {boolean}
|
|
709
|
+
*/
|
|
710
|
+
export declare function replicaServerPointerStands({ doc, serverDid }: {
|
|
711
|
+
doc: DIDDoc;
|
|
712
|
+
serverDid: string;
|
|
713
|
+
}): boolean;
|
|
714
|
+
/**
|
|
715
|
+
* The replica servers of `serverDids`, each once, that an annex document
|
|
716
|
+
* carries no pointer at ({@link replicaServerPointerStands}). The set the
|
|
717
|
+
* installing entry adds, and what a caller whose install pass published
|
|
718
|
+
* nothing reads off the head that pass stood on.
|
|
719
|
+
*
|
|
720
|
+
* @param options {object}
|
|
721
|
+
* @param options.doc {DIDDoc}
|
|
722
|
+
* @param options.serverDids {string[]}
|
|
723
|
+
* @returns {string[]}
|
|
724
|
+
*/
|
|
725
|
+
export declare function replicaServersMissing({ doc, serverDids }: {
|
|
726
|
+
doc: DIDDoc;
|
|
727
|
+
serverDids: string[];
|
|
728
|
+
}): string[];
|
|
729
|
+
/**
|
|
730
|
+
* The service entries the entry installing a generation delegation writes
|
|
731
|
+
* beside it, computed over the document as published so an installer can
|
|
732
|
+
* skip what the document already carries and refuse what collides. The one
|
|
733
|
+
* hook every installing writer forwards, so an install-time convention (the
|
|
734
|
+
* replica pointers, {@link replicaPointerInstaller}) is wired once rather
|
|
735
|
+
* than once per layer, and the layers between the caller and the install
|
|
736
|
+
* entry learn nothing about it. Invoked only by the entry that installs the
|
|
737
|
+
* delegation; every other entry ignores it.
|
|
738
|
+
*/
|
|
739
|
+
export type InstalledServices = (options: {
|
|
740
|
+
doc: DIDDoc;
|
|
741
|
+
clientAnnexDid: string;
|
|
742
|
+
}) => ServiceEndpoint[];
|
|
743
|
+
/**
|
|
744
|
+
* An {@link InstalledServices} hook that points the generation at
|
|
745
|
+
* `serverDids`: a replica pointer entry for each one the document does not
|
|
746
|
+
* already carry ({@link replicaServerPointerStands}). Every standing entry,
|
|
747
|
+
* replica pointers among them, is carried through untouched: the hook only
|
|
748
|
+
* adds, since dropping a pointer is the replica pass's decision, made against
|
|
749
|
+
* the connections directory.
|
|
750
|
+
*
|
|
751
|
+
* The hook refuses, before any entry is minted, a malformed server DID
|
|
752
|
+
* ({@link assertReplicaServerDid}) with a `TypeError`, standing ones
|
|
753
|
+
* included, and with an `Error` a document that already carries a service
|
|
754
|
+
* entry under the id an added pointer would take (one of another type,
|
|
755
|
+
* another endpoint, or an endpoint that is not a DID string): a second entry
|
|
756
|
+
* under one id is a document no resolver admits, and the entry standing
|
|
757
|
+
* there was not written by this hook.
|
|
758
|
+
*
|
|
759
|
+
* @param options {object}
|
|
760
|
+
* @param options.serverDids {string[]} the replica servers to point at
|
|
761
|
+
* @returns {InstalledServices}
|
|
762
|
+
*/
|
|
763
|
+
export declare function replicaPointerInstaller({ serverDids }: {
|
|
764
|
+
serverDids: string[];
|
|
765
|
+
}): InstalledServices;
|
|
633
766
|
/**
|
|
634
767
|
* Every generation delegation a generation's log has ever embedded, in log
|
|
635
768
|
* order and deduplicated by zcap id -- the annex-log HISTORY WALK the
|
|
@@ -896,9 +1029,13 @@ export declare function readClientAnnexLogOrAbsent({ store, expectedDid }: {
|
|
|
896
1029
|
* delegation this entry installs when it publishes the generation's FIRST
|
|
897
1030
|
* transient verification method (and the document carries no delegation
|
|
898
1031
|
* entry yet). Never invoked otherwise: the delegation is installed with
|
|
899
|
-
* the first transient VM or by the GC ceremony's own install stage,
|
|
900
|
-
* by genesis (a genesis-embedded signed zcap can never verify -- its
|
|
1032
|
+
* the first transient VM or by the GC ceremony's own install stage, and
|
|
1033
|
+
* not by genesis (a genesis-embedded signed zcap can never verify -- its
|
|
901
1034
|
* `controller` embeds the SCID the genesis hash derives from)
|
|
1035
|
+
* @param [options.installedServices] {InstalledServices} the service
|
|
1036
|
+
* entries the installing entry writes beside the delegation (the replica
|
|
1037
|
+
* pointers, {@link replicaPointerInstaller}). Invoked only by the entry
|
|
1038
|
+
* that installs the delegation; ignored on every other entry
|
|
902
1039
|
* @param [options.expectedDid] {string} the annex DID the log must
|
|
903
1040
|
* resolve to, from the account document's pointer. The read and the publish
|
|
904
1041
|
* run under the store's own chain-head pin
|
|
@@ -920,6 +1057,7 @@ export declare function enrollClientAnnexTransientClient({ published: threadedHe
|
|
|
920
1057
|
mintGenerationDelegation?: (options: {
|
|
921
1058
|
clientAnnexDid: string;
|
|
922
1059
|
}) => Promise<IZcap>;
|
|
1060
|
+
installedServices?: InstalledServices;
|
|
923
1061
|
expectedDid?: string;
|
|
924
1062
|
published?: PublishedWebvhLog;
|
|
925
1063
|
}): Promise<{
|
|
@@ -1083,6 +1221,9 @@ export declare function setDelegatedClientsPointerOnce({ idStore, signer, client
|
|
|
1083
1221
|
* {@link enrollClientAnnexTransientClient}). The closure receives whichever
|
|
1084
1222
|
* annex DID the round enrolls into, so a GC-race re-enroll mints for
|
|
1085
1223
|
* the fresh generation
|
|
1224
|
+
* @param [options.installedServices] {InstalledServices} forwarded to
|
|
1225
|
+
* the enrollment entry: what the installing entry writes beside the
|
|
1226
|
+
* delegation
|
|
1086
1227
|
* @param [options.maxRounds] {number} how many pointer moves to chase
|
|
1087
1228
|
* before giving up (a GC pass is quarterly, so more than one mid-ceremony
|
|
1088
1229
|
* move means something else is wrong)
|
|
@@ -1094,7 +1235,7 @@ export declare function setDelegatedClientsPointerOnce({ idStore, signer, client
|
|
|
1094
1235
|
* every later round does
|
|
1095
1236
|
* @returns {Promise<{ clientAnnexDid: string, doc: DIDDoc, log: DIDLog }>}
|
|
1096
1237
|
*/
|
|
1097
|
-
export declare function enrollTransientClient({ readAccountDocument, storeForGenerationId, ladderSeed, transientKeyMultibase, mintGenerationDelegation: mintDelegation, maxRounds, published: threadedHead }: {
|
|
1238
|
+
export declare function enrollTransientClient({ readAccountDocument, storeForGenerationId, ladderSeed, transientKeyMultibase, mintGenerationDelegation: mintDelegation, installedServices, maxRounds, published: threadedHead }: {
|
|
1098
1239
|
readAccountDocument: () => Promise<DIDDoc>;
|
|
1099
1240
|
storeForGenerationId: (generationId: string) => ClientAnnexWriteStore;
|
|
1100
1241
|
ladderSeed: Uint8Array;
|
|
@@ -1102,6 +1243,7 @@ export declare function enrollTransientClient({ readAccountDocument, storeForGen
|
|
|
1102
1243
|
mintGenerationDelegation?: (options: {
|
|
1103
1244
|
clientAnnexDid: string;
|
|
1104
1245
|
}) => Promise<IZcap>;
|
|
1246
|
+
installedServices?: InstalledServices;
|
|
1105
1247
|
maxRounds?: number;
|
|
1106
1248
|
published?: PublishedWebvhLog;
|
|
1107
1249
|
}): Promise<{
|
|
@@ -1150,6 +1292,10 @@ export declare function enrollTransientClient({ readAccountDocument, storeForGen
|
|
|
1150
1292
|
* generation's standing set, restated in the fresh genesis (see
|
|
1151
1293
|
* {@link mintCredentialClientAnnexGeneration}); absent on a first
|
|
1152
1294
|
* generation and wherever no superseded log was readable
|
|
1295
|
+
* @param [options.installedServices] {InstalledServices} what the
|
|
1296
|
+
* install entry writes beside the delegation, the restated replica pointers
|
|
1297
|
+
* ({@link replicaPointerInstaller}); absent on a first generation and
|
|
1298
|
+
* wherever the caller holds no list
|
|
1153
1299
|
* @param [options.beforePointerEntry] {Function}
|
|
1154
1300
|
* `({ minted }) => Promise<void>` -- runs after the install and before the
|
|
1155
1301
|
* pointer entry, with the mint's published head (its `spaceDescription`
|
|
@@ -1158,7 +1304,7 @@ export declare function enrollTransientClient({ readAccountDocument, storeForGen
|
|
|
1158
1304
|
* @returns {Promise<{ clientAnnexDid: string, generationDelegation: IZcap,
|
|
1159
1305
|
* pointed: T }>}
|
|
1160
1306
|
*/
|
|
1161
|
-
export declare function mintPointedClientAnnexGeneration<T>({ was, baseServerUrl, spaceId, controller, ladderSeed, mintGenerationDelegation, point, pinStore, capability, standingRungHashes, beforePointerEntry, now }: {
|
|
1307
|
+
export declare function mintPointedClientAnnexGeneration<T>({ was, baseServerUrl, spaceId, controller, ladderSeed, mintGenerationDelegation, point, pinStore, capability, standingRungHashes, installedServices, beforePointerEntry, now }: {
|
|
1162
1308
|
was: WasClient;
|
|
1163
1309
|
baseServerUrl: string;
|
|
1164
1310
|
spaceId: string;
|
|
@@ -1171,6 +1317,7 @@ export declare function mintPointedClientAnnexGeneration<T>({ was, baseServerUrl
|
|
|
1171
1317
|
pinStore: ResourceLogPinStore;
|
|
1172
1318
|
capability?: IZcap;
|
|
1173
1319
|
standingRungHashes?: string[];
|
|
1320
|
+
installedServices?: InstalledServices;
|
|
1174
1321
|
beforePointerEntry?: (options: {
|
|
1175
1322
|
minted: Awaited<ReturnType<typeof mintCredentialClientAnnexGeneration>>;
|
|
1176
1323
|
}) => Promise<void>;
|
|
@@ -1237,6 +1384,14 @@ export declare function mintPointedClientAnnexGeneration<T>({ was, baseServerUrl
|
|
|
1237
1384
|
* its own ladder VM (whose delegations it revokes server-side in the next
|
|
1238
1385
|
* breath, a state no client-side predicate can read) and the client its
|
|
1239
1386
|
* removal entry has yet to strike
|
|
1387
|
+
* @param [options.installedServices] {InstalledServices} the service
|
|
1388
|
+
* entries the installing entry writes beside the delegation, the replica
|
|
1389
|
+
* pointers ({@link replicaPointerInstaller}): a fresh generation's install
|
|
1390
|
+
* stage writes them beside the delegation, and a renewal on a live
|
|
1391
|
+
* generation adds what the document lacks and keeps every standing entry
|
|
1392
|
+
* through the prior-state clone. A pass that publishes nothing never
|
|
1393
|
+
* invokes the hook; the caller reads what the head still lacks off the
|
|
1394
|
+
* `published` it hands back ({@link replicaServersMissing})
|
|
1240
1395
|
* @param [options.now] {number} epoch milliseconds, for tests
|
|
1241
1396
|
* @param [options.published] {PublishedWebvhLog} a head the caller already
|
|
1242
1397
|
* read and verified under this same pin slot, so the stage builds on it
|
|
@@ -1265,6 +1420,7 @@ export declare function ensureGenerationDelegationCurrent({ published: threadedH
|
|
|
1265
1420
|
expectedDid?: string;
|
|
1266
1421
|
accountDoc?: PublishedKeyDocument;
|
|
1267
1422
|
retiringKeyMultibases?: string[];
|
|
1423
|
+
installedServices?: InstalledServices;
|
|
1268
1424
|
now?: number;
|
|
1269
1425
|
published?: PublishedWebvhLog;
|
|
1270
1426
|
}): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/log.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/log.ts"],"names":[],"mappings":"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"}
|
package/dist/clientAnnex/log.js
CHANGED
|
@@ -27,10 +27,13 @@
|
|
|
27
27
|
* portability move.
|
|
28
28
|
* - The genesis document is bare -- no verification methods, no service
|
|
29
29
|
* entries, the DID core context only. Transient verification methods are
|
|
30
|
-
* published per visit by later entries
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
30
|
+
* published per visit by later entries. The entry that installs the
|
|
31
|
+
* generation delegation (the swap's install stage, or the entry publishing
|
|
32
|
+
* the generation's first transient method) also carries the generation's
|
|
33
|
+
* replica pointers, one entry per replica server the caller restates.
|
|
34
|
+
* Genesis carries neither: the delegation's bytes would have to name the
|
|
35
|
+
* SCID the genesis hash derives from, and the pointers ride the same entry
|
|
36
|
+
* so a generation with no delegation points at no replica.
|
|
34
37
|
* - No `did:web` projection exists: the generation collection holds only its
|
|
35
38
|
* `did.jsonl`, capability-gated rather than world-readable.
|
|
36
39
|
*
|
|
@@ -47,9 +50,12 @@
|
|
|
47
50
|
* generation collection's name, and the annex DID string embeds it.
|
|
48
51
|
*/
|
|
49
52
|
import { createDID, deriveNextKeyHash, updateDID } from '@interop/did-method-webvh';
|
|
53
|
+
import { createMultihash, MultihashAlgorithm } from '@interop/data-integrity-core/multihash';
|
|
50
54
|
import { rootCapabilityId, spaceUrlById } from '@interop/was-client/paths';
|
|
55
|
+
import { sha256 } from '@noble/hashes/sha2.js';
|
|
51
56
|
import { base64urlnopad } from '@scure/base';
|
|
52
57
|
import { isJsonObject } from '../jsonObject.js';
|
|
58
|
+
import { ID_COLLECTION } from '../space/collections.js';
|
|
53
59
|
import { plaintextCollection } from '../space/plaintextCollection.js';
|
|
54
60
|
import { clientAnnexRung } from './generationRung.js';
|
|
55
61
|
import { ladderRung } from '../webvh/ladderDerivation.js';
|
|
@@ -1018,6 +1024,187 @@ export function embeddedGenerationDelegation({ doc }) {
|
|
|
1018
1024
|
endpoint: 'map'
|
|
1019
1025
|
});
|
|
1020
1026
|
}
|
|
1027
|
+
/**
|
|
1028
|
+
* The type IRI of the annex document's replica pointer entries: one entry per
|
|
1029
|
+
* replica server the account registers, each naming that server's DID. The
|
|
1030
|
+
* term is the PWS companion spec's, since replication is its domain.
|
|
1031
|
+
* Wire-level and permanent (app-connect-spec decision 0001): the source
|
|
1032
|
+
* server gates a ladder-signed pull on it, and readers dispatch on this IRI
|
|
1033
|
+
* rather than on the entry's fragment id.
|
|
1034
|
+
*/
|
|
1035
|
+
export const REPLICA_SERVER_SERVICE_TYPE = 'https://w3id.org/pws#ReplicaServer';
|
|
1036
|
+
/**
|
|
1037
|
+
* The Space id a replica server publishes its own did:webvh log under.
|
|
1038
|
+
*/
|
|
1039
|
+
const REPLICA_SERVER_SPACE_ID = 'server';
|
|
1040
|
+
/**
|
|
1041
|
+
* Refuses, with a `TypeError`, a replica server DID that is not a did:webvh
|
|
1042
|
+
* whose path is `space:server:id` (app-connect-spec decision 0003, predicate
|
|
1043
|
+
* 6: the source server checks the grantee's shape beside the pointer). A
|
|
1044
|
+
* malformed value would land permanently in a hash-chained annex entry the
|
|
1045
|
+
* server refuses anyway, so the wallet refuses it before minting the entry.
|
|
1046
|
+
*
|
|
1047
|
+
* @param options {object}
|
|
1048
|
+
* @param options.serverDid {string}
|
|
1049
|
+
*/
|
|
1050
|
+
export function assertReplicaServerDid({ serverDid }) {
|
|
1051
|
+
let location;
|
|
1052
|
+
try {
|
|
1053
|
+
location = didWebvhLogLocation({ did: serverDid });
|
|
1054
|
+
}
|
|
1055
|
+
catch {
|
|
1056
|
+
location = undefined;
|
|
1057
|
+
}
|
|
1058
|
+
if (location === undefined ||
|
|
1059
|
+
location.spaceId !== REPLICA_SERVER_SPACE_ID ||
|
|
1060
|
+
location.collectionId !== ID_COLLECTION.id) {
|
|
1061
|
+
throw new TypeError('A replica server DID is a did:webvh whose path is ' +
|
|
1062
|
+
`space:${REPLICA_SERVER_SPACE_ID}:${ID_COLLECTION.id}; got ` +
|
|
1063
|
+
`"${serverDid}".`);
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
/**
|
|
1067
|
+
* The fragment id of a replica pointer entry: `replica-` followed by the
|
|
1068
|
+
* SHA-256 multihash of the replica server's DID string (its UTF-8 bytes),
|
|
1069
|
+
* base64url with no padding. Derived rather than random, so one server's
|
|
1070
|
+
* entry has the same id on every restate. Wire-level and permanent; readers
|
|
1071
|
+
* still dispatch on {@link REPLICA_SERVER_SERVICE_TYPE}.
|
|
1072
|
+
*
|
|
1073
|
+
* @param options {object}
|
|
1074
|
+
* @param options.serverDid {string} the replica server's DID
|
|
1075
|
+
* @returns {string} the fragment, without the `#`
|
|
1076
|
+
*/
|
|
1077
|
+
export function replicaServerServiceFragment({ serverDid }) {
|
|
1078
|
+
const digest = sha256(new TextEncoder().encode(serverDid));
|
|
1079
|
+
const multihash = createMultihash(digest, MultihashAlgorithm.SHA2_256);
|
|
1080
|
+
return `replica-${base64urlnopad.encode(multihash)}`;
|
|
1081
|
+
}
|
|
1082
|
+
/**
|
|
1083
|
+
* Builds a replica pointer entry for an annex document. The
|
|
1084
|
+
* `serviceEndpoint` is the replica server's bare DID STRING, and the entry
|
|
1085
|
+
* carries nothing beside it. Refuses a malformed `serverDid`
|
|
1086
|
+
* ({@link assertReplicaServerDid}).
|
|
1087
|
+
*
|
|
1088
|
+
* @param options {object}
|
|
1089
|
+
* @param options.clientAnnexDid {string} the generation's annex DID
|
|
1090
|
+
* @param options.serverDid {string} the replica server's DID
|
|
1091
|
+
* @returns {ServiceEndpoint}
|
|
1092
|
+
*/
|
|
1093
|
+
export function replicaServerServiceEntry({ clientAnnexDid, serverDid }) {
|
|
1094
|
+
assertReplicaServerDid({ serverDid });
|
|
1095
|
+
return {
|
|
1096
|
+
id: `${clientAnnexDid}#${replicaServerServiceFragment({ serverDid })}`,
|
|
1097
|
+
type: REPLICA_SERVER_SERVICE_TYPE,
|
|
1098
|
+
serviceEndpoint: serverDid
|
|
1099
|
+
};
|
|
1100
|
+
}
|
|
1101
|
+
/**
|
|
1102
|
+
* The replica servers an annex document points at: the `serviceEndpoint` of
|
|
1103
|
+
* every entry whose `type` names (or includes)
|
|
1104
|
+
* {@link REPLICA_SERVER_SERVICE_TYPE}, in document order, each DID once.
|
|
1105
|
+
* Only a bare DID-string endpoint counts, the same predicate the server's
|
|
1106
|
+
* replica-pointer clause evaluates, so wallet and server read the same
|
|
1107
|
+
* pointer set off one document.
|
|
1108
|
+
*
|
|
1109
|
+
* @param options {object}
|
|
1110
|
+
* @param options.doc {DIDDoc} the resolved (and verified) annex document
|
|
1111
|
+
* @returns {string[]}
|
|
1112
|
+
*/
|
|
1113
|
+
export function replicaServerPointers({ doc }) {
|
|
1114
|
+
return [
|
|
1115
|
+
...new Set(serviceEntriesWith({
|
|
1116
|
+
doc,
|
|
1117
|
+
type: REPLICA_SERVER_SERVICE_TYPE,
|
|
1118
|
+
endpoint: 'string'
|
|
1119
|
+
}).map(entry => entry.serviceEndpoint))
|
|
1120
|
+
];
|
|
1121
|
+
}
|
|
1122
|
+
/**
|
|
1123
|
+
* Whether an annex document carries a replica pointer at `serverDid`: a
|
|
1124
|
+
* replica pointer entry whose endpoint is the server's DID. The match is by
|
|
1125
|
+
* endpoint alone, the one the server's replica-pointer clause makes; an
|
|
1126
|
+
* entry's fragment id is a selector and names no server.
|
|
1127
|
+
*
|
|
1128
|
+
* @param options {object}
|
|
1129
|
+
* @param options.doc {DIDDoc} the resolved (and verified) annex document
|
|
1130
|
+
* @param options.serverDid {string} the replica server's DID
|
|
1131
|
+
* @returns {boolean}
|
|
1132
|
+
*/
|
|
1133
|
+
export function replicaServerPointerStands({ doc, serverDid }) {
|
|
1134
|
+
return replicaServerPointers({ doc }).includes(serverDid);
|
|
1135
|
+
}
|
|
1136
|
+
/**
|
|
1137
|
+
* The replica servers of `serverDids`, each once, that an annex document
|
|
1138
|
+
* carries no pointer at ({@link replicaServerPointerStands}). The set the
|
|
1139
|
+
* installing entry adds, and what a caller whose install pass published
|
|
1140
|
+
* nothing reads off the head that pass stood on.
|
|
1141
|
+
*
|
|
1142
|
+
* @param options {object}
|
|
1143
|
+
* @param options.doc {DIDDoc}
|
|
1144
|
+
* @param options.serverDids {string[]}
|
|
1145
|
+
* @returns {string[]}
|
|
1146
|
+
*/
|
|
1147
|
+
export function replicaServersMissing({ doc, serverDids }) {
|
|
1148
|
+
const standing = new Set(replicaServerPointers({ doc }));
|
|
1149
|
+
return [...new Set(serverDids)].filter(serverDid => !standing.has(serverDid));
|
|
1150
|
+
}
|
|
1151
|
+
/**
|
|
1152
|
+
* An {@link InstalledServices} hook that points the generation at
|
|
1153
|
+
* `serverDids`: a replica pointer entry for each one the document does not
|
|
1154
|
+
* already carry ({@link replicaServerPointerStands}). Every standing entry,
|
|
1155
|
+
* replica pointers among them, is carried through untouched: the hook only
|
|
1156
|
+
* adds, since dropping a pointer is the replica pass's decision, made against
|
|
1157
|
+
* the connections directory.
|
|
1158
|
+
*
|
|
1159
|
+
* The hook refuses, before any entry is minted, a malformed server DID
|
|
1160
|
+
* ({@link assertReplicaServerDid}) with a `TypeError`, standing ones
|
|
1161
|
+
* included, and with an `Error` a document that already carries a service
|
|
1162
|
+
* entry under the id an added pointer would take (one of another type,
|
|
1163
|
+
* another endpoint, or an endpoint that is not a DID string): a second entry
|
|
1164
|
+
* under one id is a document no resolver admits, and the entry standing
|
|
1165
|
+
* there was not written by this hook.
|
|
1166
|
+
*
|
|
1167
|
+
* @param options {object}
|
|
1168
|
+
* @param options.serverDids {string[]} the replica servers to point at
|
|
1169
|
+
* @returns {InstalledServices}
|
|
1170
|
+
*/
|
|
1171
|
+
export function replicaPointerInstaller({ serverDids }) {
|
|
1172
|
+
return ({ doc, clientAnnexDid }) => {
|
|
1173
|
+
for (const serverDid of serverDids) {
|
|
1174
|
+
assertReplicaServerDid({ serverDid });
|
|
1175
|
+
}
|
|
1176
|
+
const added = replicaServersMissing({ doc, serverDids }).map(serverDid => replicaServerServiceEntry({ clientAnnexDid, serverDid }));
|
|
1177
|
+
const taken = new Set((doc.service ?? []).map(entry => entry.id));
|
|
1178
|
+
for (const entry of added) {
|
|
1179
|
+
if (taken.has(entry.id)) {
|
|
1180
|
+
throw new Error(`client annex: the document already carries a service entry at ` +
|
|
1181
|
+
`"${entry.id}" that is not the replica pointer at ` +
|
|
1182
|
+
`"${entry.serviceEndpoint}"; nothing was written.`);
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
return added;
|
|
1186
|
+
};
|
|
1187
|
+
}
|
|
1188
|
+
/**
|
|
1189
|
+
* The service list the entry installing a generation delegation publishes:
|
|
1190
|
+
* the delegation entry ({@link withGenerationDelegationEntry}) followed by
|
|
1191
|
+
* whatever the caller's {@link InstalledServices} hook adds. The one
|
|
1192
|
+
* composition both installing writers run, so an install-time entry can
|
|
1193
|
+
* never land in an entry other than the delegation's.
|
|
1194
|
+
*
|
|
1195
|
+
* @param options {object}
|
|
1196
|
+
* @param options.doc {DIDDoc} the annex document as published
|
|
1197
|
+
* @param options.clientAnnexDid {string}
|
|
1198
|
+
* @param options.delegation {IZcap}
|
|
1199
|
+
* @param [options.installedServices] {InstalledServices}
|
|
1200
|
+
* @returns {ServiceEndpoint[]}
|
|
1201
|
+
*/
|
|
1202
|
+
function withInstalledEntries({ doc, clientAnnexDid, delegation, installedServices }) {
|
|
1203
|
+
return [
|
|
1204
|
+
...withGenerationDelegationEntry({ doc, clientAnnexDid, delegation }),
|
|
1205
|
+
...(installedServices?.({ doc, clientAnnexDid }) ?? [])
|
|
1206
|
+
];
|
|
1207
|
+
}
|
|
1021
1208
|
/**
|
|
1022
1209
|
* Every generation delegation a generation's log has ever embedded, in log
|
|
1023
1210
|
* order and deduplicated by zcap id -- the annex-log HISTORY WALK the
|
|
@@ -1393,9 +1580,13 @@ export async function readClientAnnexLogOrAbsent({ store, expectedDid }) {
|
|
|
1393
1580
|
* delegation this entry installs when it publishes the generation's FIRST
|
|
1394
1581
|
* transient verification method (and the document carries no delegation
|
|
1395
1582
|
* entry yet). Never invoked otherwise: the delegation is installed with
|
|
1396
|
-
* the first transient VM or by the GC ceremony's own install stage,
|
|
1397
|
-
* by genesis (a genesis-embedded signed zcap can never verify -- its
|
|
1583
|
+
* the first transient VM or by the GC ceremony's own install stage, and
|
|
1584
|
+
* not by genesis (a genesis-embedded signed zcap can never verify -- its
|
|
1398
1585
|
* `controller` embeds the SCID the genesis hash derives from)
|
|
1586
|
+
* @param [options.installedServices] {InstalledServices} the service
|
|
1587
|
+
* entries the installing entry writes beside the delegation (the replica
|
|
1588
|
+
* pointers, {@link replicaPointerInstaller}). Invoked only by the entry
|
|
1589
|
+
* that installs the delegation; ignored on every other entry
|
|
1399
1590
|
* @param [options.expectedDid] {string} the annex DID the log must
|
|
1400
1591
|
* resolve to, from the account document's pointer. The read and the publish
|
|
1401
1592
|
* run under the store's own chain-head pin
|
|
@@ -1423,7 +1614,7 @@ export async function enrollClientAnnexTransientClient({ published: threadedHead
|
|
|
1423
1614
|
* @param options {object} see {@link enrollClientAnnexTransientClient}
|
|
1424
1615
|
* @returns {Promise<{ did: string, doc: DIDDoc, log: DIDLog }>}
|
|
1425
1616
|
*/
|
|
1426
|
-
async function enrollClientAnnexTransientClientOnce({ store, ladderSeed, transientKeyMultibase, services, mintGenerationDelegation: mintDelegation, expectedDid, published: alreadyRead }) {
|
|
1617
|
+
async function enrollClientAnnexTransientClientOnce({ store, ladderSeed, transientKeyMultibase, services, mintGenerationDelegation: mintDelegation, installedServices, expectedDid, published: alreadyRead }) {
|
|
1427
1618
|
const published = alreadyRead !== undefined
|
|
1428
1619
|
? assertPublishedLogDid({
|
|
1429
1620
|
published: alreadyRead,
|
|
@@ -1457,16 +1648,18 @@ async function enrollClientAnnexTransientClientOnce({ store, ladderSeed, transie
|
|
|
1457
1648
|
// The generation delegation installs with the first transient VM (never at
|
|
1458
1649
|
// genesis): a delegation-less document about to receive its first method
|
|
1459
1650
|
// gets the entry minted and appended here, so a generation with no visits
|
|
1460
|
-
// never carries a delegation and stays authorization-inert.
|
|
1651
|
+
// never carries a delegation and stays authorization-inert. The replica
|
|
1652
|
+
// pointers ride the same entry.
|
|
1461
1653
|
if (services === undefined &&
|
|
1462
1654
|
mintDelegation !== undefined &&
|
|
1463
1655
|
existingMethods.length === 0 &&
|
|
1464
1656
|
embeddedGenerationDelegation({ doc }) === undefined) {
|
|
1465
1657
|
const delegation = await mintDelegation({ clientAnnexDid: did });
|
|
1466
|
-
services =
|
|
1658
|
+
services = withInstalledEntries({
|
|
1467
1659
|
doc,
|
|
1468
1660
|
clientAnnexDid: did,
|
|
1469
|
-
delegation
|
|
1661
|
+
delegation,
|
|
1662
|
+
...(installedServices !== undefined ? { installedServices } : {})
|
|
1470
1663
|
});
|
|
1471
1664
|
}
|
|
1472
1665
|
const transientMethod = {
|
|
@@ -1712,6 +1905,9 @@ export async function setDelegatedClientsPointerOnce({ idStore, signer, clientAn
|
|
|
1712
1905
|
* {@link enrollClientAnnexTransientClient}). The closure receives whichever
|
|
1713
1906
|
* annex DID the round enrolls into, so a GC-race re-enroll mints for
|
|
1714
1907
|
* the fresh generation
|
|
1908
|
+
* @param [options.installedServices] {InstalledServices} forwarded to
|
|
1909
|
+
* the enrollment entry: what the installing entry writes beside the
|
|
1910
|
+
* delegation
|
|
1715
1911
|
* @param [options.maxRounds] {number} how many pointer moves to chase
|
|
1716
1912
|
* before giving up (a GC pass is quarterly, so more than one mid-ceremony
|
|
1717
1913
|
* move means something else is wrong)
|
|
@@ -1723,7 +1919,7 @@ export async function setDelegatedClientsPointerOnce({ idStore, signer, clientAn
|
|
|
1723
1919
|
* every later round does
|
|
1724
1920
|
* @returns {Promise<{ clientAnnexDid: string, doc: DIDDoc, log: DIDLog }>}
|
|
1725
1921
|
*/
|
|
1726
|
-
export async function enrollTransientClient({ readAccountDocument, storeForGenerationId, ladderSeed, transientKeyMultibase, mintGenerationDelegation: mintDelegation, maxRounds = 3, published: threadedHead }) {
|
|
1922
|
+
export async function enrollTransientClient({ readAccountDocument, storeForGenerationId, ladderSeed, transientKeyMultibase, mintGenerationDelegation: mintDelegation, installedServices, maxRounds = 3, published: threadedHead }) {
|
|
1727
1923
|
let accountDoc = await readAccountDocument();
|
|
1728
1924
|
for (let round = 0; round < maxRounds; round++) {
|
|
1729
1925
|
const clientAnnexDid = delegatedClientsPointer({ doc: accountDoc });
|
|
@@ -1746,7 +1942,8 @@ export async function enrollTransientClient({ readAccountDocument, storeForGener
|
|
|
1746
1942
|
...(head !== undefined ? { published: head } : {}),
|
|
1747
1943
|
...(mintDelegation !== undefined
|
|
1748
1944
|
? { mintGenerationDelegation: mintDelegation }
|
|
1749
|
-
: {})
|
|
1945
|
+
: {}),
|
|
1946
|
+
...(installedServices !== undefined ? { installedServices } : {})
|
|
1750
1947
|
});
|
|
1751
1948
|
// The GC-race re-read: an unchanged pointer means the enrollment stands
|
|
1752
1949
|
// in the pointed generation; a moved one means a concurrent GC abandoned
|
|
@@ -1800,6 +1997,10 @@ export async function enrollTransientClient({ readAccountDocument, storeForGener
|
|
|
1800
1997
|
* generation's standing set, restated in the fresh genesis (see
|
|
1801
1998
|
* {@link mintCredentialClientAnnexGeneration}); absent on a first
|
|
1802
1999
|
* generation and wherever no superseded log was readable
|
|
2000
|
+
* @param [options.installedServices] {InstalledServices} what the
|
|
2001
|
+
* install entry writes beside the delegation, the restated replica pointers
|
|
2002
|
+
* ({@link replicaPointerInstaller}); absent on a first generation and
|
|
2003
|
+
* wherever the caller holds no list
|
|
1803
2004
|
* @param [options.beforePointerEntry] {Function}
|
|
1804
2005
|
* `({ minted }) => Promise<void>` -- runs after the install and before the
|
|
1805
2006
|
* pointer entry, with the mint's published head (its `spaceDescription`
|
|
@@ -1808,7 +2009,7 @@ export async function enrollTransientClient({ readAccountDocument, storeForGener
|
|
|
1808
2009
|
* @returns {Promise<{ clientAnnexDid: string, generationDelegation: IZcap,
|
|
1809
2010
|
* pointed: T }>}
|
|
1810
2011
|
*/
|
|
1811
|
-
export async function mintPointedClientAnnexGeneration({ was, baseServerUrl, spaceId, controller, ladderSeed, mintGenerationDelegation, point, pinStore, capability, standingRungHashes, beforePointerEntry, now }) {
|
|
2012
|
+
export async function mintPointedClientAnnexGeneration({ was, baseServerUrl, spaceId, controller, ladderSeed, mintGenerationDelegation, point, pinStore, capability, standingRungHashes, installedServices, beforePointerEntry, now }) {
|
|
1812
2013
|
const minted = await mintCredentialClientAnnexGeneration({
|
|
1813
2014
|
was,
|
|
1814
2015
|
baseServerUrl,
|
|
@@ -1829,6 +2030,7 @@ export async function mintPointedClientAnnexGeneration({ was, baseServerUrl, spa
|
|
|
1829
2030
|
}),
|
|
1830
2031
|
ladderSeed,
|
|
1831
2032
|
mintGenerationDelegation,
|
|
2033
|
+
...(installedServices !== undefined ? { installedServices } : {}),
|
|
1832
2034
|
expectedDid: minted.did,
|
|
1833
2035
|
...(minted.etag !== undefined ? { published: minted } : {}),
|
|
1834
2036
|
...(now !== undefined ? { now } : {})
|
|
@@ -1900,6 +2102,14 @@ export async function mintPointedClientAnnexGeneration({ was, baseServerUrl, spa
|
|
|
1900
2102
|
* its own ladder VM (whose delegations it revokes server-side in the next
|
|
1901
2103
|
* breath, a state no client-side predicate can read) and the client its
|
|
1902
2104
|
* removal entry has yet to strike
|
|
2105
|
+
* @param [options.installedServices] {InstalledServices} the service
|
|
2106
|
+
* entries the installing entry writes beside the delegation, the replica
|
|
2107
|
+
* pointers ({@link replicaPointerInstaller}): a fresh generation's install
|
|
2108
|
+
* stage writes them beside the delegation, and a renewal on a live
|
|
2109
|
+
* generation adds what the document lacks and keeps every standing entry
|
|
2110
|
+
* through the prior-state clone. A pass that publishes nothing never
|
|
2111
|
+
* invokes the hook; the caller reads what the head still lacks off the
|
|
2112
|
+
* `published` it hands back ({@link replicaServersMissing})
|
|
1903
2113
|
* @param [options.now] {number} epoch milliseconds, for tests
|
|
1904
2114
|
* @param [options.published] {PublishedWebvhLog} a head the caller already
|
|
1905
2115
|
* read and verified under this same pin slot, so the stage builds on it
|
|
@@ -1934,7 +2144,7 @@ export async function ensureGenerationDelegationCurrent({ published: threadedHea
|
|
|
1934
2144
|
* @returns {Promise<{ delegation: IZcap, renewed: boolean,
|
|
1935
2145
|
* published?: PublishedWebvhLog }>}
|
|
1936
2146
|
*/
|
|
1937
|
-
async function ensureGenerationDelegationCurrentOnce({ store, ladderSeed, mintGenerationDelegation: mintDelegation, expectedDid, accountDoc, retiringKeyMultibases = [], now, published: alreadyRead }) {
|
|
2147
|
+
async function ensureGenerationDelegationCurrentOnce({ store, ladderSeed, mintGenerationDelegation: mintDelegation, expectedDid, accountDoc, retiringKeyMultibases = [], installedServices, now, published: alreadyRead }) {
|
|
1938
2148
|
const published = alreadyRead !== undefined
|
|
1939
2149
|
? assertPublishedLogDid({
|
|
1940
2150
|
published: alreadyRead,
|
|
@@ -1975,13 +2185,15 @@ async function ensureGenerationDelegationCurrentOnce({ store, ladderSeed, mintGe
|
|
|
1975
2185
|
// The writer's rung-0 key reveals at its first annex write, exactly
|
|
1976
2186
|
// as the enrollment entry does; `nextKeyHashes` is re-stated verbatim,
|
|
1977
2187
|
// never inherited. Verification methods, relationship arrays, and every
|
|
1978
|
-
// other service entry
|
|
2188
|
+
// other service entry (the standing replica pointers among them) ride
|
|
2189
|
+
// the library's prior-state clone untouched.
|
|
1979
2190
|
updateKeys: [...new Set([...published.updateKeys, rung.keyMultibase])],
|
|
1980
2191
|
nextKeyHashes: [...published.nextKeyHashes],
|
|
1981
|
-
services:
|
|
2192
|
+
services: withInstalledEntries({
|
|
1982
2193
|
doc,
|
|
1983
2194
|
clientAnnexDid: did,
|
|
1984
|
-
delegation: fresh
|
|
2195
|
+
delegation: fresh,
|
|
2196
|
+
...(installedServices !== undefined ? { installedServices } : {})
|
|
1985
2197
|
})
|
|
1986
2198
|
});
|
|
1987
2199
|
// The publish advances the store's chain-head pin to what it just wrote, so
|