@did-btcr2/api 0.4.0 → 0.7.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.
@@ -1,11 +1,16 @@
1
- import { Kms, } from '@did-btcr2/kms';
1
+ import { LocalKeyManager, } from '@did-btcr2/key-manager';
2
2
  import { assertBytes } from './helpers.js';
3
3
  /**
4
4
  * Key management operations sub-facade.
5
5
  *
6
- * Wraps a {@link KeyManager} interface. By default uses the built-in
7
- * {@link Kms} implementation; a custom implementation can be injected
8
- * via {@link ApiConfig}.
6
+ * Wraps any {@link KeyManager} interface implementation. By default uses the
7
+ * bundled {@link LocalKeyManager} (in-process reference implementation); a
8
+ * custom implementation (AWS KMS, GCP KMS, HashiCorp Vault, HSM, etc.) can
9
+ * be injected via {@link ApiConfig}.
10
+ *
11
+ * The field is named `kms` because that's the category label callers use
12
+ * conversationally ("plug in your KMS"); the actual contract is the
13
+ * {@link KeyManager} interface.
9
14
  * @public
10
15
  */
11
16
  export class KeyManagerApi {
@@ -13,7 +18,7 @@ export class KeyManagerApi {
13
18
  kms;
14
19
  /** Create a new KeyManagerApi, optionally backed by a custom KeyManager. */
15
20
  constructor(kms) {
16
- this.kms = kms ?? new Kms();
21
+ this.kms = kms ?? new LocalKeyManager();
17
22
  }
18
23
  /** Generate a new key directly in the KMS. */
19
24
  generateKey(options) {
@@ -33,13 +38,17 @@ export class KeyManagerApi {
33
38
  }
34
39
  /**
35
40
  * Export a Schnorr keypair from the KMS.
36
- * Only supported when the backing KMS is the built-in {@link Kms} class.
37
- * @throws {Error} If the backing KMS does not support key export.
41
+ * Routes through the KeyManager's declared capability (`canExport`) rather
42
+ * than an `instanceof LocalKeyManager` check, so third-party adapters can
43
+ * opt in to export support without coupling to a specific implementation.
44
+ * External adapters (AWS, Vault, HSM) typically advertise `canExport: false`.
45
+ * @throws {Error} If the backing KeyManager does not advertise canExport=true,
46
+ * or omits the optional `exportKey` method.
38
47
  */
39
48
  export(id) {
40
- if (!(this.kms instanceof Kms)) {
49
+ if (!this.kms.canExport || !this.kms.exportKey) {
41
50
  throw new Error('Key export is not supported by the current KeyManager implementation. '
42
- + 'Export is only available with the built-in Kms class.');
51
+ + 'The adapter must advertise `canExport: true` and provide an `exportKey` method.');
43
52
  }
44
53
  return this.kms.exportKey(id);
45
54
  }
@@ -55,13 +64,13 @@ export class KeyManagerApi {
55
64
  * Sign data via the KMS.
56
65
  * @param data The data to sign (must be non-empty).
57
66
  * @param id Optional key identifier; uses the active key if omitted.
58
- * @param options Signing options (scheme defaults to 'schnorr').
67
+ * @param options Signing options. Defaults: `scheme: 'bip340'`.
59
68
  */
60
69
  sign(data, id, options) {
61
70
  assertBytes(data, 'data');
62
71
  return this.kms.sign(data, id, options);
63
72
  }
64
- /** Verify a signature via the KMS. */
73
+ /** Verify a signature via the KMS. Defaults: `scheme: 'bip340'`. */
65
74
  verify(signature, data, id, options) {
66
75
  return this.kms.verify(signature, data, id, options);
67
76
  }
@@ -70,4 +79,4 @@ export class KeyManagerApi {
70
79
  return this.kms.digest(data);
71
80
  }
72
81
  }
73
- //# sourceMappingURL=kms.js.map
82
+ //# sourceMappingURL=key-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-manager.js","sourceRoot":"","sources":["../../src/key-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,eAAe,GAGhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,aAAa;IACxB,uCAAuC;IAC9B,GAAG,CAAa;IAEzB,4EAA4E;IAC5E,YAAY,GAAgB;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,eAAe,EAAE,CAAC;IAC1C,CAAC;IAED,8CAA8C;IAC9C,WAAW,CAAC,OAA4B;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,4CAA4C;IAC5C,SAAS,CAAC,EAAiB;QACzB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,qDAAqD;IACrD,YAAY,CAAC,EAAkB;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,6CAA6C;IAC7C,MAAM,CAAC,EAAkB,EAAE,OAA0B;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAiB;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,wEAAwE;kBACtE,iFAAiF,CACpF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,wCAAwC;IACxC,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED,iCAAiC;IACjC,SAAS,CAAC,EAAiB,EAAE,UAA+B,EAAE;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,IAAW,EAAE,EAAkB,EAAE,OAAqB;QACzD,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,oEAAoE;IACpE,MAAM,CAAC,SAAyB,EAAE,IAAW,EAAE,EAAkB,EAAE,OAAuB;QACxF,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,gCAAgC;IAChC,MAAM,CAAC,IAAgB;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- import { decode as decodeHash, IdentifierTypes, NotImplementedError } from '@did-btcr2/common';
2
- import { BeaconSignalDiscovery, DidBtcr2 } from '@did-btcr2/method';
1
+ import { decode as decodeHash, IdentifierTypes, INVALID_DID_UPDATE, NotImplementedError, UpdateError } from '@did-btcr2/common';
2
+ import { BeaconFactory, BeaconSignalDiscovery, DidBtcr2 } from '@did-btcr2/method';
3
3
  import { assertBytes, assertCompressedPubkey, assertString, NOOP_LOGGER } from './helpers.js';
4
4
  /**
5
5
  * DID method operations sub-facade: create, resolve, update, deactivate.
@@ -125,22 +125,72 @@ export class DidMethodApi {
125
125
  }
126
126
  }
127
127
  /**
128
- * Update an existing DID document. If a Bitcoin connection is configured on
129
- * the API, it is injected automatically.
128
+ * Update an existing DID document by driving the sans-I/O {@link Updater} state
129
+ * machine (from @did-btcr2/method). This method handles the I/O side:
130
+ * - Signing: supplies the {@link Signer} to `NeedSigningKey`.
131
+ * - Broadcast: establishes a beacon via {@link BeaconFactory} and calls
132
+ * `broadcastSignal()` with the bitcoin connection configured on the API.
133
+ *
134
+ * For multi-party aggregation of SMT/CAS beacons, the caller should drive the
135
+ * Updater directly and delegate `NeedBroadcast` to the aggregation runner
136
+ * rather than using this high-level method.
137
+ *
130
138
  * @param params The update parameters.
131
139
  * @returns The signed update.
132
140
  */
133
- async update({ sourceDocument, patches, sourceVersionId, verificationMethodId, beaconId, signingMaterial, bitcoin, }) {
134
- const btcConnection = bitcoin ?? this.#btc?.connection ?? undefined;
135
- return await DidBtcr2.update({
141
+ async update({ sourceDocument, patches, sourceVersionId, verificationMethodId, beaconId, signer, bitcoin, }) {
142
+ // Bitcoin connection resolution order: per-call `bitcoin` param wins over the
143
+ // BitcoinApi injected at DidBtcr2Api construction time. One of the two must
144
+ // be present; this can't be encoded in the type system, so it's a runtime check.
145
+ const btcConnection = bitcoin ?? this.#btc?.connection;
146
+ if (!btcConnection) {
147
+ throw new UpdateError('Bitcoin connection required for update. Pass a configured `bitcoin` parameter '
148
+ + 'or configure a BitcoinApi on the DidBtcr2Api instance.', INVALID_DID_UPDATE, { beaconId });
149
+ }
150
+ this.#log.debug('Updating DID', sourceDocument.id, { beaconId, verificationMethodId });
151
+ // Factory validates and returns a sans-I/O state machine
152
+ const updater = DidBtcr2.update({
136
153
  sourceDocument,
137
154
  patches,
138
155
  sourceVersionId,
139
156
  verificationMethodId,
140
157
  beaconId,
141
- signingMaterial,
142
- bitcoin: btcConnection,
143
158
  });
159
+ // Drive the state machine. All I/O (signing delegation, Bitcoin broadcast)
160
+ // happens inside the need-handlers below — the Updater itself is pure.
161
+ let state = updater.advance();
162
+ while (state.status === 'action-required') {
163
+ for (const need of state.needs) {
164
+ switch (need.kind) {
165
+ case 'NeedSigningKey': {
166
+ this.#log.debug('Providing signer for', need.verificationMethodId);
167
+ updater.provide(need, signer);
168
+ break;
169
+ }
170
+ case 'NeedFunding': {
171
+ this.#log.debug('Checking funding for beacon address %s', need.beaconAddress);
172
+ const utxos = await btcConnection.rest.address.getUtxos(need.beaconAddress);
173
+ if (!utxos.length) {
174
+ throw new UpdateError(`Beacon address ${need.beaconAddress} is unfunded. `
175
+ + 'Send BTC to this address before broadcasting the update.', INVALID_DID_UPDATE, { beaconAddress: need.beaconAddress });
176
+ }
177
+ this.#log.debug('Beacon address funded (%d UTXOs)', utxos.length);
178
+ updater.provide(need);
179
+ break;
180
+ }
181
+ case 'NeedBroadcast': {
182
+ this.#log.debug('Broadcasting signed update via %s beacon', need.beaconService.type);
183
+ const beacon = BeaconFactory.establish(need.beaconService);
184
+ await beacon.broadcastSignal(need.signedUpdate, signer, btcConnection);
185
+ updater.provide(need);
186
+ break;
187
+ }
188
+ }
189
+ }
190
+ state = updater.advance();
191
+ }
192
+ this.#log.debug('DID update complete', sourceDocument.id);
193
+ return state.result.signedUpdate;
144
194
  }
145
195
  /**
146
196
  * Get the signing method from a DID document by method ID.
@@ -162,8 +212,9 @@ export class DidMethodApi {
162
212
  * .buildUpdate(currentDoc)
163
213
  * .patch({ op: 'add', path: '/service/1', value: newService })
164
214
  * .version(2)
165
- * .signer('#initialKey')
215
+ * .verificationMethodId('#initialKey')
166
216
  * .beacon('#beacon-0')
217
+ * .signer(new LocalSigner(secretKey))
167
218
  * .execute();
168
219
  * ```
169
220
  */
@@ -192,7 +243,7 @@ export class UpdateBuilder {
192
243
  #sourceVersionId;
193
244
  #verificationMethodId;
194
245
  #beaconId;
195
- #signingMaterial;
246
+ #signer;
196
247
  #bitcoin;
197
248
  /** @internal */
198
249
  constructor(methodApi, sourceDocument) {
@@ -214,8 +265,8 @@ export class UpdateBuilder {
214
265
  this.#sourceVersionId = id;
215
266
  return this;
216
267
  }
217
- /** Set the verification method ID used for signing. */
218
- signer(methodId) {
268
+ /** Set the verification method ID used for signing the update. */
269
+ verificationMethodId(methodId) {
219
270
  this.#verificationMethodId = methodId;
220
271
  return this;
221
272
  }
@@ -224,37 +275,47 @@ export class UpdateBuilder {
224
275
  this.#beaconId = beaconId;
225
276
  return this;
226
277
  }
227
- /** Set the signing material (secret key bytes or hex). */
228
- signingMaterial(material) {
229
- this.#signingMaterial = material;
278
+ /**
279
+ * Set the {@link Signer} that produces the update's BIP-340 Schnorr proof
280
+ * and the beacon transaction's ECDSA input signature. Use `LocalSigner`
281
+ * for in-process secret keys, `KeyManagerSigner` for KMS-managed keys
282
+ * (AWS, Vault, HSM, etc.), or any custom adapter implementing the `Signer`
283
+ * interface.
284
+ */
285
+ signer(s) {
286
+ this.#signer = s;
230
287
  return this;
231
288
  }
232
289
  /** Override the Bitcoin connection for this update. */
233
- withBitcoin(connection) {
290
+ bitcoin(connection) {
234
291
  this.#bitcoin = connection;
235
292
  return this;
236
293
  }
237
294
  /**
238
295
  * Execute the update.
239
- * @throws {Error} If required fields (version, signer, beacon) are missing.
296
+ * @throws {Error} If required fields (version, verificationMethodId, beacon, signer) are missing.
240
297
  */
241
298
  async execute() {
242
299
  if (this.#sourceVersionId === undefined) {
243
300
  throw new Error('UpdateBuilder: sourceVersionId is required. Call .version(id) before .execute().');
244
301
  }
245
302
  if (!this.#verificationMethodId) {
246
- throw new Error('UpdateBuilder: verificationMethodId is required. Call .signer(id) before .execute().');
303
+ throw new Error('UpdateBuilder: verificationMethodId is required. '
304
+ + 'Call .verificationMethodId(id) before .execute().');
247
305
  }
248
306
  if (!this.#beaconId) {
249
307
  throw new Error('UpdateBuilder: beaconId is required. Call .beacon(id) before .execute().');
250
308
  }
309
+ if (!this.#signer) {
310
+ throw new Error('UpdateBuilder: signer is required. Call .signer(s) before .execute().');
311
+ }
251
312
  return this.#methodApi.update({
252
313
  sourceDocument: this.#sourceDocument,
253
314
  patches: this.#patches,
254
315
  sourceVersionId: this.#sourceVersionId,
255
316
  verificationMethodId: this.#verificationMethodId,
256
317
  beaconId: this.#beaconId,
257
- signingMaterial: this.#signingMaterial,
318
+ signer: this.#signer,
258
319
  bitcoin: this.#bitcoin,
259
320
  });
260
321
  }
@@ -1 +1 @@
1
- {"version":3,"file":"method.js","sourceRoot":"","sources":["../../src/method.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG/F,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAIpE,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG9F;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACvB,IAAI,CAAc;IAClB,IAAI,CAAU;IACd,IAAI,CAAS;IAEb,YAAY,GAAgB,EAAE,GAAY,EAAE,MAAe;QACzD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,WAAW,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,YAAsB,EAAE,UAA4C,EAAE;QACxF,sBAAsB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,YAA2B,EAAE,UAA4C,EAAE;QACxF,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,OAA2B;QACpD,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YAE/B,OAAM,KAAK,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;gBACzC,KAAI,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC9B,QAAO,IAAI,CAAC,IAAI,EAAE,CAAC;wBACjB,KAAK,mBAAmB,CAAC,CAAC,CAAC;4BACzB,IAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gCACd,MAAM,IAAI,KAAK,CACb,uDAAuD;sCACrD,qDAAqD,CACxD,CAAC;4BACJ,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,CACb,2CAA2C,EAC3C,IAAI,CAAC,cAAc,CAAC,MAAM,CAC3B,CAAC;4BACF,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,CACjD,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAC/C,CAAC;4BACF,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;4BAChC,MAAM;wBACR,CAAC;wBACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;4BAC3B,IAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gCACd,MAAM,IAAI,KAAK,CACb,uDAAuD,IAAI,CAAC,WAAW,KAAK;sCAC1E,wEAAwE;sCACxE,4DAA4D,CAC/D,CAAC;4BACJ,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wCAAwC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;4BAC5E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;4BAC1E,IAAG,CAAC,GAAG,EAAE,CAAC;gCACR,MAAM,IAAI,KAAK,CACb,4CAA4C,IAAI,CAAC,WAAW,IAAI,CACjE,CAAC;4BACJ,CAAC;4BACD,QAAQ,CAAC,OAAO,CAAC,IAA2B,EAAE,GAAG,CAAC,CAAC;4BACnD,MAAM;wBACR,CAAC;wBACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;4BAC3B,IAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gCACd,MAAM,IAAI,KAAK,CACb,uDAAuD,IAAI,CAAC,gBAAgB,KAAK;sCAC/E,sDAAsD;sCACtD,uDAAuD,CAC1D,CAAC;4BACJ,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wCAAwC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;4BACjF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;4BACxF,IAAG,CAAC,YAAY,EAAE,CAAC;gCACjB,MAAM,IAAI,KAAK,CACb,4CAA4C,IAAI,CAAC,gBAAgB,IAAI,CACtE,CAAC;4BACJ,CAAC;4BACD,QAAQ,CAAC,OAAO,CAAC,IAA2B,EAAE,YAA+B,CAAC,CAAC;4BAC/E,MAAM;wBACR,CAAC;wBACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;4BACxB,IAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gCACd,MAAM,IAAI,KAAK,CACb,oDAAoD,IAAI,CAAC,UAAU,KAAK;sCACtE,sDAAsD;sCACtD,oDAAoD,CACvD,CAAC;4BACJ,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;4BACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;4BAC5E,IAAG,CAAC,MAAM,EAAE,CAAC;gCACX,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,CAAC,UAAU,IAAI,CAC7D,CAAC;4BACJ,CAAC;4BACD,QAAQ,CAAC,OAAO,CAAC,IAAwB,EAAE,MAA2B,CAAC,CAAC;4BACxE,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzE,OAAO;gBACL,qBAAqB,EAAG,EAAE;gBAC1B,WAAW,EAAa,KAAK,CAAC,MAAM,CAAC,WAA4D;gBACjG,mBAAmB,EAAK,KAAK,CAAC,MAAM,CAAC,QAAQ;aAC9C,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,0BAA0B,GAAG,EAAE,EAC/B,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,EACX,cAAc,EACd,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,QAAQ,EACR,eAAe,EACf,OAAO,GASR;QACC,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,IAAI,SAAS,CAAC;QACpE,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC3B,cAAc;YACd,OAAO;YACP,eAAe;YACf,oBAAoB;YACpB,QAAQ;YACR,eAAe;YACf,OAAO,EAAG,aAAa;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,WAA6B,EAAE,QAAiB;QAC/D,OAAO,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,cAAgC;QAC1C,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,mBAAmB,CAC3B,iDAAiD,EACjD;YACE,IAAI,EAAG,gCAAgC;YACvC,IAAI,EAAG,uBAAuB;SAC/B,CACF,CAAC;IACJ,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IACxB,UAAU,CAAe;IACzB,eAAe,CAAmB;IAClC,QAAQ,GAAqB,EAAE,CAAC;IAChC,gBAAgB,CAAU;IAC1B,qBAAqB,CAAU;IAC/B,SAAS,CAAU;IACnB,gBAAgB,CAAwB;IACxC,QAAQ,CAAqB;IAE7B,gBAAgB;IAChB,YAAY,SAAuB,EAAE,cAAgC;QACnE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,EAAkB;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+DAA+D;IAC/D,OAAO,CAAC,GAAqB;QAC3B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iCAAiC;IACjC,OAAO,CAAC,EAAU;QAChB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAuD;IACvD,MAAM,CAAC,QAAgB;QACrB,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qDAAqD;IACrD,MAAM,CAAC,QAAgB;QACrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0DAA0D;IAC1D,eAAe,CAAC,QAA8B;QAC5C,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAuD;IACvD,WAAW,CAAC,UAA6B;QACvC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAC1G,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5B,cAAc,EAAS,IAAI,CAAC,eAAe;YAC3C,OAAO,EAAgB,IAAI,CAAC,QAAQ;YACpC,eAAe,EAAQ,IAAI,CAAC,gBAAgB;YAC5C,oBAAoB,EAAG,IAAI,CAAC,qBAAqB;YACjD,QAAQ,EAAe,IAAI,CAAC,SAAS;YACrC,eAAe,EAAQ,IAAI,CAAC,gBAAgB;YAC5C,OAAO,EAAgB,IAAI,CAAC,QAAQ;SACrC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"method.js","sourceRoot":"","sources":["../../src/method.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import type { NetworkName } from '@did-btcr2/bitcoin';
2
2
  import type { DocumentBytes, KeyBytes, PatchOperation } from '@did-btcr2/common';
3
3
  import type { SignedBTCR2Update } from '@did-btcr2/cryptosuite';
4
- import type { KeyIdentifier } from '@did-btcr2/kms';
4
+ import type { Signer } from '@did-btcr2/keypair';
5
+ import type { KeyIdentifier } from '@did-btcr2/key-manager';
5
6
  import type { Btcr2DidDocument, DidCreateOptions, ResolutionOptions } from '@did-btcr2/method';
6
7
  import type { DidResolutionResult } from '@web5/dids';
7
8
  import { BitcoinApi } from './bitcoin.js';
8
9
  import { CasApi } from './cas.js';
9
10
  import { CryptoApi } from './crypto.js';
10
11
  import { DidApi } from './did.js';
11
- import { KeyManagerApi } from './kms.js';
12
+ import { KeyManagerApi } from './key-manager.js';
12
13
  import { DidMethodApi } from './method.js';
13
14
  import type { ApiConfig, ResolutionResult } from './types.js';
14
15
  /**
@@ -35,8 +36,11 @@ export declare class DidBtcr2Api {
35
36
  get btc(): BitcoinApi;
36
37
  /**
37
38
  * CAS API sub-facade (lazily initialized).
38
- * Only available when `cas` config was provided to the constructor.
39
- * @throws {Error} If the instance has been disposed or no CAS config was provided.
39
+ *
40
+ * When no `cas` config was provided to the constructor, defaults to a
41
+ * read-only {@link HttpGatewayCasExecutor} backed by the public IPFS
42
+ * gateway (`https://ipfs.io`). Override via `createApi({ cas: { ... } })`.
43
+ * @throws {Error} If the instance has been disposed.
40
44
  */
41
45
  get cas(): CasApi;
42
46
  /**
@@ -96,11 +100,12 @@ export declare class DidBtcr2Api {
96
100
  * @param params The update parameters.
97
101
  * @returns The signed update.
98
102
  */
99
- updateDid({ did, patches, verificationMethodId, beaconId, sourceDocument, sourceVersionId, }: {
103
+ updateDid({ did, patches, verificationMethodId, beaconId, signer, sourceDocument, sourceVersionId, }: {
100
104
  did: string;
101
105
  patches: PatchOperation[];
102
106
  verificationMethodId: string;
103
107
  beaconId: string;
108
+ signer: Signer;
104
109
  sourceDocument?: Btcr2DidDocument;
105
110
  sourceVersionId?: number;
106
111
  }): Promise<SignedBTCR2Update>;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAkB,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAA4B,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAExF;;;;;;GAMG;AACH,qBAAa,WAAW;;IACtB,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;gBAUhB,MAAM,CAAC,EAAE,SAAS;IAS9B;;;;OAIG;IACH,IAAI,GAAG,IAAI,UAAU,CAYpB;IAED;;;;OAIG;IACH,IAAI,GAAG,IAAI,MAAM,CAYhB;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,YAAY,CAUxB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;;OAMG;IACH,SAAS,CACP,IAAI,EAAE,eAAe,GAAG,UAAU,EAClC,YAAY,EAAE,QAAQ,GAAG,aAAa,EACtC,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GACzC,MAAM;IAOT;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE;IAQ5G;;;;;OAKG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAKxF;;;;;;;;OAQG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiCxF;;;;;;;;OAQG;IACG,SAAS,CAAC,EACd,GAAG,EACH,OAAO,EACP,oBAAoB,EACpB,QAAQ,EACR,cAAc,EACd,eAAe,GAChB,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,gBAAgB,CAAC;QAClC,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+C9B;;;;;;OAMG;IACH,OAAO,IAAI,IAAI;CAchB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,CAEzD"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import type { HashBytes } from '@did-btcr2/common';
2
2
  import type { Helia } from 'helia';
3
+ /** Default IPFS HTTP gateway used for CAS reads when no CAS config is provided. */
4
+ export declare const DEFAULT_CAS_GATEWAY = "https://ipfs.io";
3
5
  /**
4
6
  * Executor interface for content-addressed storage.
5
7
  *
@@ -27,15 +29,46 @@ export declare class IpfsCasExecutor implements CasExecutor {
27
29
  retrieve(hash: string): Promise<Uint8Array | null>;
28
30
  publish(data: Uint8Array): Promise<string>;
29
31
  }
32
+ /**
33
+ * Read-only {@link CasExecutor} backed by an IPFS HTTP gateway.
34
+ *
35
+ * Converts the base64url SHA-256 hash to a CIDv1 (raw codec) and fetches
36
+ * the raw block via the
37
+ * {@link https://specs.ipfs.tech/http-gateways/trustless-gateway/ | Trustless Gateway}
38
+ * protocol.
39
+ *
40
+ * Publishing is not supported — use {@link IpfsCasExecutor} with a Helia
41
+ * instance for writes.
42
+ * @public
43
+ */
44
+ export declare class HttpGatewayCasExecutor implements CasExecutor {
45
+ #private;
46
+ constructor(gatewayUrl: string);
47
+ retrieve(hash: string): Promise<Uint8Array | null>;
48
+ publish(): Promise<string>;
49
+ }
50
+ /** Default timeout (ms) for CAS operations. */
51
+ export declare const DEFAULT_CAS_TIMEOUT_MS = 30000;
30
52
  /**
31
53
  * Configuration for the CAS (Content-Addressed Storage) driver.
54
+ *
55
+ * Provide exactly one of `executor`, `helia`, or `gateway`.
56
+ * Priority if multiple are set: `executor` > `helia` > `gateway`.
32
57
  * @public
33
58
  */
34
59
  export type CasConfig = {
35
- /** Custom executor implementation (overrides the default IPFS executor). */
60
+ /** Custom executor implementation (overrides all other options). */
36
61
  executor?: CasExecutor;
37
62
  /** Pre-existing Helia instance for the default IPFS executor. */
38
63
  helia?: Helia;
64
+ /** IPFS HTTP gateway URL for read-only CAS access (e.g. `'https://ipfs.io'`). */
65
+ gateway?: string;
66
+ /**
67
+ * Timeout in milliseconds for CAS operations. Prevents indefinite hangs
68
+ * when a Helia DHT lookup or gateway request stalls. Default: 30 000 ms.
69
+ * Set to `0` to disable.
70
+ */
71
+ timeoutMs?: number;
39
72
  };
40
73
  /**
41
74
  * Content-Addressed Storage API sub-facade.
@@ -1 +1 @@
1
- {"version":3,"file":"cas.d.ts","sourceRoot":"","sources":["../../src/cas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAMnC;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACnD,+DAA+D;IAC/D,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,WAAW;;gBAGrC,KAAK,EAAE,KAAK;IAIlB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAUlD,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CAQjD;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,iEAAiE;IACjE,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAAa,MAAM;;gBAGL,MAAM,EAAE,SAAS;IAa7B;;;;OAIG;IACG,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAO5D;;;;;;OAMG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAI/C"}
1
+ {"version":3,"file":"cas.d.ts","sourceRoot":"","sources":["../../src/cas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAMnC,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACnD,+DAA+D;IAC/D,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,WAAW;;gBAGrC,KAAK,EAAE,KAAK;IAIlB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAUlD,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CAQjD;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAuB,YAAW,WAAW;;gBAG5C,UAAU,EAAE,MAAM;IAIxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAclD,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAMjC;AAED,+CAA+C;AAC/C,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,iEAAiE;IACjE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAAa,MAAM;;gBAIL,MAAM,EAAE,SAAS;IAgB7B;;;;OAIG;IACG,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAO5D;;;;;;OAMG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAqB/C"}
@@ -2,9 +2,9 @@ import type { Bytes, Entropy, HexString, KeyBytes, SchnorrKeyPairObject, Signatu
2
2
  import type { BTCR2Update, DataIntegrityConfig, DataIntegrityProofObject, SignedBTCR2Update, UnsignedBTCR2Update, VerificationResult } from '@did-btcr2/cryptosuite';
3
3
  import { BIP340Cryptosuite, BIP340DataIntegrityProof, type FromPublicKey, type Multikey, SchnorrMultikey } from '@did-btcr2/cryptosuite';
4
4
  import { CompressedSecp256k1PublicKey, SchnorrKeyPair, Secp256k1SecretKey } from '@did-btcr2/keypair';
5
- import type { KeyIdentifier } from '@did-btcr2/kms';
5
+ import type { KeyIdentifier } from '@did-btcr2/key-manager';
6
6
  import type { DidVerificationMethod } from '@web5/dids';
7
- import type { KeyManagerApi } from './kms.js';
7
+ import type { KeyManagerApi } from './key-manager.js';
8
8
  /**
9
9
  * Schnorr keypair operations.
10
10
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/crypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/crypto.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export * from './types.js';
8
8
  export * from './helpers.js';
9
9
  export * from './bitcoin.js';
10
10
  export * from './cas.js';
11
- export * from './kms.js';
11
+ export * from './key-manager.js';
12
12
  export * from './crypto.js';
13
13
  export * from './did.js';
14
14
  export * from './method.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,SAAS,EACV,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,KAAK,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,GAAG,EACH,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGzF,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,SAAS,EACV,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,KAAK,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,GAAG,EACH,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGzF,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
@@ -1,13 +1,17 @@
1
1
  import type { Bytes, HashBytes, SignatureBytes } from '@did-btcr2/common';
2
2
  import type { SchnorrKeyPair } from '@did-btcr2/keypair';
3
- import type { KeyIdentifier, KeyManager } from '@did-btcr2/kms';
4
- import { type GenerateKeyOptions, type ImportKeyOptions, type SignOptions } from '@did-btcr2/kms';
3
+ import { type KeyIdentifier, type KeyManager, type GenerateKeyOptions, type ImportKeyOptions, type SignOptions, type VerifyOptions } from '@did-btcr2/key-manager';
5
4
  /**
6
5
  * Key management operations sub-facade.
7
6
  *
8
- * Wraps a {@link KeyManager} interface. By default uses the built-in
9
- * {@link Kms} implementation; a custom implementation can be injected
10
- * via {@link ApiConfig}.
7
+ * Wraps any {@link KeyManager} interface implementation. By default uses the
8
+ * bundled {@link LocalKeyManager} (in-process reference implementation); a
9
+ * custom implementation (AWS KMS, GCP KMS, HashiCorp Vault, HSM, etc.) can
10
+ * be injected via {@link ApiConfig}.
11
+ *
12
+ * The field is named `kms` because that's the category label callers use
13
+ * conversationally ("plug in your KMS"); the actual contract is the
14
+ * {@link KeyManager} interface.
11
15
  * @public
12
16
  */
13
17
  export declare class KeyManagerApi {
@@ -25,8 +29,12 @@ export declare class KeyManagerApi {
25
29
  import(kp: SchnorrKeyPair, options?: ImportKeyOptions): KeyIdentifier;
26
30
  /**
27
31
  * Export a Schnorr keypair from the KMS.
28
- * Only supported when the backing KMS is the built-in {@link Kms} class.
29
- * @throws {Error} If the backing KMS does not support key export.
32
+ * Routes through the KeyManager's declared capability (`canExport`) rather
33
+ * than an `instanceof LocalKeyManager` check, so third-party adapters can
34
+ * opt in to export support without coupling to a specific implementation.
35
+ * External adapters (AWS, Vault, HSM) typically advertise `canExport: false`.
36
+ * @throws {Error} If the backing KeyManager does not advertise canExport=true,
37
+ * or omits the optional `exportKey` method.
30
38
  */
31
39
  export(id: KeyIdentifier): SchnorrKeyPair;
32
40
  /** List all managed key identifiers. */
@@ -39,12 +47,12 @@ export declare class KeyManagerApi {
39
47
  * Sign data via the KMS.
40
48
  * @param data The data to sign (must be non-empty).
41
49
  * @param id Optional key identifier; uses the active key if omitted.
42
- * @param options Signing options (scheme defaults to 'schnorr').
50
+ * @param options Signing options. Defaults: `scheme: 'bip340'`.
43
51
  */
44
52
  sign(data: Bytes, id?: KeyIdentifier, options?: SignOptions): SignatureBytes;
45
- /** Verify a signature via the KMS. */
46
- verify(signature: SignatureBytes, data: Bytes, id?: KeyIdentifier, options?: SignOptions): boolean;
53
+ /** Verify a signature via the KMS. Defaults: `scheme: 'bip340'`. */
54
+ verify(signature: SignatureBytes, data: Bytes, id?: KeyIdentifier, options?: VerifyOptions): boolean;
47
55
  /** Compute a SHA-256 digest. */
48
56
  digest(data: Uint8Array): HashBytes;
49
57
  }
50
- //# sourceMappingURL=kms.d.ts.map
58
+ //# sourceMappingURL=key-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-manager.d.ts","sourceRoot":"","sources":["../../src/key-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAErB,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAa;IACxB,uCAAuC;IACvC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IAEzB,4EAA4E;gBAChE,GAAG,CAAC,EAAE,UAAU;IAI5B,8CAA8C;IAC9C,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,aAAa;IAIxD,4CAA4C;IAC5C,SAAS,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IAIlC,qDAAqD;IACrD,YAAY,CAAC,EAAE,CAAC,EAAE,aAAa,GAAG,KAAK;IAIvC,6CAA6C;IAC7C,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,aAAa;IAIrE;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,EAAE,aAAa,GAAG,cAAc;IAUzC,wCAAwC;IACxC,QAAQ,IAAI,aAAa,EAAE;IAI3B,iCAAiC;IACjC,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAIrE;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc;IAK5E,oEAAoE;IACpE,MAAM,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO;IAIpG,gCAAgC;IAChC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS;CAGpC"}
@@ -1,6 +1,7 @@
1
1
  import type { BitcoinConnection } from '@did-btcr2/bitcoin';
2
- import type { DocumentBytes, HexString, KeyBytes, PatchOperation } from '@did-btcr2/common';
2
+ import type { DocumentBytes, KeyBytes, PatchOperation } from '@did-btcr2/common';
3
3
  import type { SignedBTCR2Update } from '@did-btcr2/cryptosuite';
4
+ import type { Signer } from '@did-btcr2/keypair';
4
5
  import type { Btcr2DidDocument, DidCreateOptions, ResolutionOptions } from '@did-btcr2/method';
5
6
  import type { DidResolutionResult, DidVerificationMethod } from '@web5/dids';
6
7
  import type { BitcoinApi } from './bitcoin.js';
@@ -42,18 +43,26 @@ export declare class DidMethodApi {
42
43
  */
43
44
  resolve(did: string, options?: ResolutionOptions): Promise<DidResolutionResult>;
44
45
  /**
45
- * Update an existing DID document. If a Bitcoin connection is configured on
46
- * the API, it is injected automatically.
46
+ * Update an existing DID document by driving the sans-I/O {@link Updater} state
47
+ * machine (from @did-btcr2/method). This method handles the I/O side:
48
+ * - Signing: supplies the {@link Signer} to `NeedSigningKey`.
49
+ * - Broadcast: establishes a beacon via {@link BeaconFactory} and calls
50
+ * `broadcastSignal()` with the bitcoin connection configured on the API.
51
+ *
52
+ * For multi-party aggregation of SMT/CAS beacons, the caller should drive the
53
+ * Updater directly and delegate `NeedBroadcast` to the aggregation runner
54
+ * rather than using this high-level method.
55
+ *
47
56
  * @param params The update parameters.
48
57
  * @returns The signed update.
49
58
  */
50
- update({ sourceDocument, patches, sourceVersionId, verificationMethodId, beaconId, signingMaterial, bitcoin, }: {
59
+ update({ sourceDocument, patches, sourceVersionId, verificationMethodId, beaconId, signer, bitcoin, }: {
51
60
  sourceDocument: Btcr2DidDocument;
52
61
  patches: PatchOperation[];
53
62
  sourceVersionId: number;
54
63
  verificationMethodId: string;
55
64
  beaconId: string;
56
- signingMaterial?: KeyBytes | HexString;
65
+ signer: Signer;
57
66
  bitcoin?: BitcoinConnection;
58
67
  }): Promise<SignedBTCR2Update>;
59
68
  /**
@@ -74,8 +83,9 @@ export declare class DidMethodApi {
74
83
  * .buildUpdate(currentDoc)
75
84
  * .patch({ op: 'add', path: '/service/1', value: newService })
76
85
  * .version(2)
77
- * .signer('#initialKey')
86
+ * .verificationMethodId('#initialKey')
78
87
  * .beacon('#beacon-0')
88
+ * .signer(new LocalSigner(secretKey))
79
89
  * .execute();
80
90
  * ```
81
91
  */
@@ -100,17 +110,23 @@ export declare class UpdateBuilder {
100
110
  patches(ops: PatchOperation[]): this;
101
111
  /** Set the source version ID. */
102
112
  version(id: number): this;
103
- /** Set the verification method ID used for signing. */
104
- signer(methodId: string): this;
113
+ /** Set the verification method ID used for signing the update. */
114
+ verificationMethodId(methodId: string): this;
105
115
  /** Set the beacon ID for the update announcement. */
106
116
  beacon(beaconId: string): this;
107
- /** Set the signing material (secret key bytes or hex). */
108
- signingMaterial(material: KeyBytes | HexString): this;
117
+ /**
118
+ * Set the {@link Signer} that produces the update's BIP-340 Schnorr proof
119
+ * and the beacon transaction's ECDSA input signature. Use `LocalSigner`
120
+ * for in-process secret keys, `KeyManagerSigner` for KMS-managed keys
121
+ * (AWS, Vault, HSM, etc.), or any custom adapter implementing the `Signer`
122
+ * interface.
123
+ */
124
+ signer(s: Signer): this;
109
125
  /** Override the Bitcoin connection for this update. */
110
- withBitcoin(connection: BitcoinConnection): this;
126
+ bitcoin(connection: BitcoinConnection): this;
111
127
  /**
112
128
  * Execute the update.
113
- * @throws {Error} If required fields (version, signer, beacon) are missing.
129
+ * @throws {Error} If required fields (version, verificationMethodId, beacon, signer) are missing.
114
130
  */
115
131
  execute(): Promise<SignedBTCR2Update>;
116
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../src/method.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE5F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAmB,gBAAgB,EAA8D,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE5K,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;GAMG;AACH,qBAAa,YAAY;;gBAKX,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAM3D;;;;;;OAMG;IACH,mBAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,GAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAM,GAAG,MAAM;IAKnG;;;;;;OAMG;IACH,cAAc,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,GAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAM,GAAG,MAAM;IAKnG;;;;;;;OAOG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAqGrF;;;;;OAKG;IACG,MAAM,CAAC,EACX,cAAc,EACd,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,QAAQ,EACR,eAAe,EACf,OAAO,GACR,EAAE;QACD,cAAc,EAAE,gBAAgB,CAAC;QACjC,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;QACvC,OAAO,CAAC,EAAE,iBAAiB,CAAC;KAC7B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAa9B;;;;;OAKG;IACH,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,qBAAqB;IAIzF;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,cAAc,EAAE,gBAAgB,GAAG,aAAa;IAI5D,iEAAiE;IAC3D,UAAU,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAS/C;AAED;;;;;;GAMG;AACH,qBAAa,aAAa;;IAUxB,gBAAgB;gBACJ,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB;IAKrE,uEAAuE;IACvE,KAAK,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI;IAK/B,+DAA+D;IAC/D,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI;IAKpC,iCAAiC;IACjC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKzB,uDAAuD;IACvD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK9B,qDAAqD;IACrD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK9B,0DAA0D;IAC1D,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;IAKrD,uDAAuD;IACvD,WAAW,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAKhD;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAqB5C"}
1
+ {"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../src/method.ts"],"names":[],"mappings":"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"}