@enbox/api 0.6.11 → 0.6.12

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.
@@ -167,11 +167,20 @@ export class TypedEnbox {
167
167
  }
168
168
  }
169
169
  // Not installed or definition has changed — configure the new version.
170
- // Auto-enable encryption if any type in the definition requires it.
171
- // Skip encryption key derivation when operating as a delegate the
172
- // wallet already configured the protocol with encryption keys.
173
- const needsEncryption = !this._dwn.isDelegate && Object.values(this._definition.types)
170
+ // In delegate mode, the wallet is responsible for installing encrypted
171
+ // protocols during the connect flow. The delegate cannot derive the
172
+ // owner's encryption keys, so configuring here would install the
173
+ // protocol WITHOUT $encryption keys — breaking all encrypted writes.
174
+ const hasEncryptedTypes = Object.values(this._definition.types)
174
175
  .some((type) => (type === null || type === void 0 ? void 0 : type.encryptionRequired) === true);
176
+ if (this._dwn.isDelegate && hasEncryptedTypes) {
177
+ throw new Error(`TypedEnbox: Protocol '${this._definition.protocol}' requires ` +
178
+ `encryption but is not installed or has changed. In delegate mode, ` +
179
+ `encrypted protocols must be installed by the wallet during the ` +
180
+ `connect flow. Ensure the sync engine has completed its initial ` +
181
+ `sync before performing record operations.`);
182
+ }
183
+ const needsEncryption = !this._dwn.isDelegate && hasEncryptedTypes;
175
184
  const result = yield this._dwn.protocols.configure({
176
185
  definition: this._definition,
177
186
  encryption: (_a = options === null || options === void 0 ? void 0 : options.encryption) !== null && _a !== void 0 ? _a : (needsEncryption || undefined),
@@ -281,12 +290,22 @@ export class TypedEnbox {
281
290
  return;
282
291
  }
283
292
  // Not installed — configure it now.
284
- // Auto-enable encryption if any type in the definition requires it.
285
- // Skip encryption key derivation when operating as a delegate — the
286
- // wallet already configured the protocol with encryption keys. The
287
- // delegate can't derive the owner's keys.
288
- const needsEncryption = !this._dwn.isDelegate && Object.values(this._definition.types)
293
+ // In delegate mode, the wallet is responsible for installing encrypted
294
+ // protocols during the connect flow. The delegate cannot derive the
295
+ // owner's encryption keys, so attempting to configure an encrypted
296
+ // protocol here would install it WITHOUT $encryption keys — causing
297
+ // all subsequent encrypted writes to be rejected by the DWN.
298
+ // Fail fast with a clear message instead.
299
+ const hasEncryptedTypes = Object.values(this._definition.types)
289
300
  .some((type) => (type === null || type === void 0 ? void 0 : type.encryptionRequired) === true);
301
+ if (this._dwn.isDelegate && hasEncryptedTypes) {
302
+ throw new Error(`TypedEnbox: Protocol '${this._definition.protocol}' requires ` +
303
+ `encryption but is not yet installed. In delegate mode, encrypted ` +
304
+ `protocols must be installed by the wallet during the connect flow. ` +
305
+ `Ensure the sync engine has completed its initial sync before ` +
306
+ `performing record operations.`);
307
+ }
308
+ const needsEncryption = !this._dwn.isDelegate && hasEncryptedTypes;
290
309
  const result = yield this._dwn.protocols.configure({
291
310
  definition: this._definition,
292
311
  encryption: needsEncryption || undefined,
@@ -353,10 +372,11 @@ export class TypedEnbox {
353
372
  yield this._ensureReady(normalizedPath);
354
373
  const typeName = lastSegment(normalizedPath);
355
374
  const typeEntry = this._definition.types[typeName];
356
- // Auto-enable encryption when the type requires it, but skip for
357
- // delegates they don't have the owner's keys to derive encryption
358
- // keys. The owner's DWN handles encryption on the remote side.
359
- const autoEncryption = !this._dwn.isDelegate && (typeEntry === null || typeEntry === void 0 ? void 0 : typeEntry.encryptionRequired) === true
375
+ // Auto-enable encryption when the type requires it.
376
+ // Delegates CAN encrypt because the $encryption public keys in the
377
+ // synced protocol definition are sufficient for ProtocolPath
378
+ // encryption no private key access is needed for writes.
379
+ const autoEncryption = (typeEntry === null || typeEntry === void 0 ? void 0 : typeEntry.encryptionRequired) === true
360
380
  ? true : undefined;
361
381
  const { status, record } = yield this._dwn.records.write(Object.assign(Object.assign({ data: request.data, store: request.store, encryption: (_a = request.encryption) !== null && _a !== void 0 ? _a : autoEncryption, parentContextId: request.parentContextId, published: request.published, datePublished: request.datePublished, recipient: request.recipient, protocolRole: request.protocolRole, tags: request.tags, protocol: this._definition.protocol, protocolPath: normalizedPath }, ((typeEntry === null || typeEntry === void 0 ? void 0 : typeEntry.schema) !== undefined ? { schema: typeEntry.schema } : {})), { dataFormat: (_b = request.dataFormat) !== null && _b !== void 0 ? _b : (_c = typeEntry === null || typeEntry === void 0 ? void 0 : typeEntry.dataFormats) === null || _c === void 0 ? void 0 : _c[0] }));
362
382
  return {
@@ -406,7 +426,10 @@ export class TypedEnbox {
406
426
  const typeName = lastSegment(normalizedPath);
407
427
  const typeEntry = this._definition.types[typeName];
408
428
  const queryFilter = mapParentContextId(request === null || request === void 0 ? void 0 : request.filter);
409
- const autoEncryption = !this._dwn.isDelegate && (typeEntry === null || typeEntry === void 0 ? void 0 : typeEntry.encryptionRequired) === true
429
+ // Auto-enable decryption when the type requires it. Delegates use
430
+ // delivered ProtocolPath keys from the connect flow; the agent layer
431
+ // resolves the correct key decrypter automatically.
432
+ const autoEncryption = (typeEntry === null || typeEntry === void 0 ? void 0 : typeEntry.encryptionRequired) === true
410
433
  ? true : undefined;
411
434
  const { status, records, cursor } = yield this._dwn.records.query({
412
435
  from: request === null || request === void 0 ? void 0 : request.from,
@@ -451,7 +474,9 @@ export class TypedEnbox {
451
474
  const typeName = lastSegment(normalizedPath);
452
475
  const typeEntry = this._definition.types[typeName];
453
476
  const readFilter = mapParentContextId(request.filter);
454
- const autoEncryption = !this._dwn.isDelegate && (typeEntry === null || typeEntry === void 0 ? void 0 : typeEntry.encryptionRequired) === true
477
+ // Auto-enable decryption when the type requires it. See query()
478
+ // comment for delegate decryption details.
479
+ const autoEncryption = (typeEntry === null || typeEntry === void 0 ? void 0 : typeEntry.encryptionRequired) === true
455
480
  ? true : undefined;
456
481
  const { status, record } = yield this._dwn.records.read({
457
482
  from: request.from,
@@ -571,14 +596,42 @@ function mapParentContextId(filter) {
571
596
  return rest;
572
597
  }
573
598
  /**
574
- * Compares two protocol definitions for deep equality using deterministic
575
- * JSON serialization.
599
+ * Compares two protocol definitions for **logical** equality using
600
+ * deterministic JSON serialization with `$encryption` blocks stripped.
601
+ *
602
+ * When a protocol is installed with `encryption: true`, the agent injects
603
+ * `$encryption` blocks into the `structure` containing derived public keys.
604
+ * These blocks are operational metadata — not part of the developer-authored
605
+ * definition — so they must be ignored during equality checks. Otherwise,
606
+ * the installed definition (with `$encryption`) would always differ from
607
+ * the source definition (without `$encryption`), causing false drift
608
+ * detection and spurious reconfigure warnings.
576
609
  *
577
610
  * Keys are sorted recursively so that semantically identical definitions
578
611
  * with different key ordering are treated as equal.
579
612
  */
580
- function definitionsEqual(a, b) {
581
- return stableStringify(a) === stableStringify(b);
613
+ export function definitionsEqual(a, b) {
614
+ return stableStringify(stripEncryptionBlocks(a)) === stableStringify(stripEncryptionBlocks(b));
615
+ }
616
+ /**
617
+ * Recursively removes `$encryption` keys from an object tree.
618
+ * Returns a new object — the original is not mutated.
619
+ */
620
+ function stripEncryptionBlocks(value) {
621
+ if (value === null || value === undefined || typeof value !== 'object') {
622
+ return value;
623
+ }
624
+ if (Array.isArray(value)) {
625
+ return value.map((item) => stripEncryptionBlocks(item));
626
+ }
627
+ const result = {};
628
+ for (const [key, val] of Object.entries(value)) {
629
+ if (key === '$encryption') {
630
+ continue;
631
+ }
632
+ result[key] = stripEncryptionBlocks(val);
633
+ }
634
+ return result;
582
635
  }
583
636
  /**
584
637
  * Strips leading and trailing slashes from a path.
@@ -1 +1 @@
1
- {"version":3,"file":"typed-enbox.js","sourceRoot":"","sources":["../../src/typed-enbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed-enbox.js","sourceRoot":"","sources":["../../src/typed-enbox.ts"],"names":[],"mappings":"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"}
@@ -634,5 +634,21 @@ export declare class TypedEnbox<D extends ProtocolDefinition = ProtocolDefinitio
634
634
  subscribe: <Path extends ProtocolPaths<D> & string>(path: Path, request?: TypedSubscribeRequest) => Promise<TypedSubscribeResponse<DataForPath<D, M, Path>>>;
635
635
  };
636
636
  }
637
+ /**
638
+ * Compares two protocol definitions for **logical** equality using
639
+ * deterministic JSON serialization with `$encryption` blocks stripped.
640
+ *
641
+ * When a protocol is installed with `encryption: true`, the agent injects
642
+ * `$encryption` blocks into the `structure` containing derived public keys.
643
+ * These blocks are operational metadata — not part of the developer-authored
644
+ * definition — so they must be ignored during equality checks. Otherwise,
645
+ * the installed definition (with `$encryption`) would always differ from
646
+ * the source definition (without `$encryption`), causing false drift
647
+ * detection and spurious reconfigure warnings.
648
+ *
649
+ * Keys are sorted recursively so that semantically identical definitions
650
+ * with different key ordering are treated as equal.
651
+ */
652
+ export declare function definitionsEqual(a: unknown, b: unknown): boolean;
637
653
  export {};
638
654
  //# sourceMappingURL=typed-enbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typed-enbox.d.ts","sourceRoot":"","sources":["../../src/typed-enbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed-enbox.d.ts","sourceRoot":"","sources":["../../src/typed-enbox.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enbox/api",
3
- "version": "0.6.11",
3
+ "version": "0.6.12",
4
4
  "description": "Enbox SDK — high-level API for Decentralized Web Nodes, DIDs, and Verifiable Credentials",
5
5
  "type": "module",
6
6
  "main": "./dist/esm/index.js",
@@ -81,10 +81,10 @@
81
81
  "bun": ">=1.0.0"
82
82
  },
83
83
  "dependencies": {
84
- "@enbox/agent": "0.5.16",
85
- "@enbox/auth": "0.6.19",
84
+ "@enbox/agent": "0.6.0",
85
+ "@enbox/auth": "0.6.20",
86
86
  "@enbox/common": "0.1.0",
87
- "@enbox/dwn-clients": "0.2.6"
87
+ "@enbox/dwn-clients": "0.3.0"
88
88
  },
89
89
  "devDependencies": {
90
90
  "@enbox/crypto": "0.1.0",
@@ -639,12 +639,25 @@ export class TypedEnbox<
639
639
  }
640
640
 
641
641
  // Not installed or definition has changed — configure the new version.
642
- // Auto-enable encryption if any type in the definition requires it.
643
- // Skip encryption key derivation when operating as a delegate the
644
- // wallet already configured the protocol with encryption keys.
645
- const needsEncryption = !this._dwn.isDelegate && Object.values(this._definition.types)
642
+ // In delegate mode, the wallet is responsible for installing encrypted
643
+ // protocols during the connect flow. The delegate cannot derive the
644
+ // owner's encryption keys, so configuring here would install the
645
+ // protocol WITHOUT $encryption keys — breaking all encrypted writes.
646
+ const hasEncryptedTypes = Object.values(this._definition.types)
646
647
  .some((type) => (type as ProtocolType)?.encryptionRequired === true);
647
648
 
649
+ if (this._dwn.isDelegate && hasEncryptedTypes) {
650
+ throw new Error(
651
+ `TypedEnbox: Protocol '${this._definition.protocol}' requires ` +
652
+ `encryption but is not installed or has changed. In delegate mode, ` +
653
+ `encrypted protocols must be installed by the wallet during the ` +
654
+ `connect flow. Ensure the sync engine has completed its initial ` +
655
+ `sync before performing record operations.`,
656
+ );
657
+ }
658
+
659
+ const needsEncryption = !this._dwn.isDelegate && hasEncryptedTypes;
660
+
648
661
  const result = await this._dwn.protocols.configure({
649
662
  definition : this._definition,
650
663
  encryption : options?.encryption ?? (needsEncryption || undefined),
@@ -766,13 +779,27 @@ export class TypedEnbox<
766
779
  }
767
780
 
768
781
  // Not installed — configure it now.
769
- // Auto-enable encryption if any type in the definition requires it.
770
- // Skip encryption key derivation when operating as a delegate — the
771
- // wallet already configured the protocol with encryption keys. The
772
- // delegate can't derive the owner's keys.
773
- const needsEncryption = !this._dwn.isDelegate && Object.values(this._definition.types)
782
+ // In delegate mode, the wallet is responsible for installing encrypted
783
+ // protocols during the connect flow. The delegate cannot derive the
784
+ // owner's encryption keys, so attempting to configure an encrypted
785
+ // protocol here would install it WITHOUT $encryption keys — causing
786
+ // all subsequent encrypted writes to be rejected by the DWN.
787
+ // Fail fast with a clear message instead.
788
+ const hasEncryptedTypes = Object.values(this._definition.types)
774
789
  .some((type) => (type as ProtocolType)?.encryptionRequired === true);
775
790
 
791
+ if (this._dwn.isDelegate && hasEncryptedTypes) {
792
+ throw new Error(
793
+ `TypedEnbox: Protocol '${this._definition.protocol}' requires ` +
794
+ `encryption but is not yet installed. In delegate mode, encrypted ` +
795
+ `protocols must be installed by the wallet during the connect flow. ` +
796
+ `Ensure the sync engine has completed its initial sync before ` +
797
+ `performing record operations.`,
798
+ );
799
+ }
800
+
801
+ const needsEncryption = !this._dwn.isDelegate && hasEncryptedTypes;
802
+
776
803
  const result = await this._dwn.protocols.configure({
777
804
  definition : this._definition,
778
805
  encryption : needsEncryption || undefined,
@@ -869,10 +896,11 @@ export class TypedEnbox<
869
896
  const typeName = lastSegment(normalizedPath);
870
897
  const typeEntry = this._definition.types[typeName] as ProtocolType | undefined;
871
898
 
872
- // Auto-enable encryption when the type requires it, but skip for
873
- // delegates they don't have the owner's keys to derive encryption
874
- // keys. The owner's DWN handles encryption on the remote side.
875
- const autoEncryption = !this._dwn.isDelegate && typeEntry?.encryptionRequired === true
899
+ // Auto-enable encryption when the type requires it.
900
+ // Delegates CAN encrypt because the $encryption public keys in the
901
+ // synced protocol definition are sufficient for ProtocolPath
902
+ // encryption no private key access is needed for writes.
903
+ const autoEncryption = typeEntry?.encryptionRequired === true
876
904
  ? true : undefined;
877
905
 
878
906
  const { status, record } = await this._dwn.records.write({
@@ -942,7 +970,10 @@ export class TypedEnbox<
942
970
  const typeEntry = this._definition.types[typeName] as ProtocolType | undefined;
943
971
 
944
972
  const queryFilter = mapParentContextId(request?.filter);
945
- const autoEncryption = !this._dwn.isDelegate && typeEntry?.encryptionRequired === true
973
+ // Auto-enable decryption when the type requires it. Delegates use
974
+ // delivered ProtocolPath keys from the connect flow; the agent layer
975
+ // resolves the correct key decrypter automatically.
976
+ const autoEncryption = typeEntry?.encryptionRequired === true
946
977
  ? true : undefined;
947
978
 
948
979
  const { status, records, cursor } = await this._dwn.records.query({
@@ -998,7 +1029,9 @@ export class TypedEnbox<
998
1029
  const typeEntry = this._definition.types[typeName] as ProtocolType | undefined;
999
1030
 
1000
1031
  const readFilter = mapParentContextId(request.filter);
1001
- const autoEncryption = !this._dwn.isDelegate && typeEntry?.encryptionRequired === true
1032
+ // Auto-enable decryption when the type requires it. See query()
1033
+ // comment for delegate decryption details.
1034
+ const autoEncryption = typeEntry?.encryptionRequired === true
1002
1035
  ? true : undefined;
1003
1036
 
1004
1037
  const { status, record } = await this._dwn.records.read({
@@ -1145,14 +1178,43 @@ function mapParentContextId<T extends Record<string, unknown>>(
1145
1178
  }
1146
1179
 
1147
1180
  /**
1148
- * Compares two protocol definitions for deep equality using deterministic
1149
- * JSON serialization.
1181
+ * Compares two protocol definitions for **logical** equality using
1182
+ * deterministic JSON serialization with `$encryption` blocks stripped.
1183
+ *
1184
+ * When a protocol is installed with `encryption: true`, the agent injects
1185
+ * `$encryption` blocks into the `structure` containing derived public keys.
1186
+ * These blocks are operational metadata — not part of the developer-authored
1187
+ * definition — so they must be ignored during equality checks. Otherwise,
1188
+ * the installed definition (with `$encryption`) would always differ from
1189
+ * the source definition (without `$encryption`), causing false drift
1190
+ * detection and spurious reconfigure warnings.
1150
1191
  *
1151
1192
  * Keys are sorted recursively so that semantically identical definitions
1152
1193
  * with different key ordering are treated as equal.
1153
1194
  */
1154
- function definitionsEqual(a: unknown, b: unknown): boolean {
1155
- return stableStringify(a) === stableStringify(b);
1195
+ export function definitionsEqual(a: unknown, b: unknown): boolean {
1196
+ return stableStringify(stripEncryptionBlocks(a)) === stableStringify(stripEncryptionBlocks(b));
1197
+ }
1198
+
1199
+ /**
1200
+ * Recursively removes `$encryption` keys from an object tree.
1201
+ * Returns a new object — the original is not mutated.
1202
+ */
1203
+ function stripEncryptionBlocks(value: unknown): unknown {
1204
+ if (value === null || value === undefined || typeof value !== 'object') {
1205
+ return value;
1206
+ }
1207
+
1208
+ if (Array.isArray(value)) {
1209
+ return value.map((item) => stripEncryptionBlocks(item));
1210
+ }
1211
+
1212
+ const result: Record<string, unknown> = {};
1213
+ for (const [key, val] of Object.entries(value as Record<string, unknown>)) {
1214
+ if (key === '$encryption') { continue; }
1215
+ result[key] = stripEncryptionBlocks(val);
1216
+ }
1217
+ return result;
1156
1218
  }
1157
1219
 
1158
1220
  /**