@bcts/xid 1.0.0-alpha.21 → 1.0.0-alpha.23
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/index.cjs +123 -113
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.iife.js +179 -170
- package/dist/index.iife.js.map +1 -1
- package/dist/index.mjs +107 -97
- package/dist/index.mjs.map +1 -1
- package/package.json +14 -14
- package/src/key.ts +1 -1
- package/src/provenance.ts +2 -5
- package/src/service.ts +1 -1
- package/src/xid-document.ts +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
let _bcts_components = require("@bcts/components");
|
|
3
3
|
let _bcts_known_values = require("@bcts/known-values");
|
|
4
4
|
let _bcts_envelope = require("@bcts/envelope");
|
|
5
5
|
let _bcts_provenance_mark = require("@bcts/provenance-mark");
|
|
6
|
-
|
|
7
6
|
//#region src/error.ts
|
|
8
7
|
/**
|
|
9
8
|
* Copyright © 2023-2026 Blockchain Commons, LLC
|
|
@@ -60,180 +59,177 @@ var XIDError = class XIDError extends Error {
|
|
|
60
59
|
* Returned when attempting to add a duplicate item.
|
|
61
60
|
*/
|
|
62
61
|
static duplicate(item) {
|
|
63
|
-
return new XIDError(
|
|
62
|
+
return new XIDError("DUPLICATE", `duplicate item: ${item}`);
|
|
64
63
|
}
|
|
65
64
|
/**
|
|
66
65
|
* Returned when an item is not found.
|
|
67
66
|
*/
|
|
68
67
|
static notFound(item) {
|
|
69
|
-
return new XIDError(
|
|
68
|
+
return new XIDError("NOT_FOUND", `item not found: ${item}`);
|
|
70
69
|
}
|
|
71
70
|
/**
|
|
72
71
|
* Returned when an item is still referenced by other items.
|
|
73
72
|
*/
|
|
74
73
|
static stillReferenced(item) {
|
|
75
|
-
return new XIDError(
|
|
74
|
+
return new XIDError("STILL_REFERENCED", `item is still referenced: ${item}`);
|
|
76
75
|
}
|
|
77
76
|
/**
|
|
78
77
|
* Returned when a value is invalid or empty.
|
|
79
78
|
*/
|
|
80
79
|
static emptyValue(field) {
|
|
81
|
-
return new XIDError(
|
|
80
|
+
return new XIDError("EMPTY_VALUE", `invalid or empty value: ${field}`);
|
|
82
81
|
}
|
|
83
82
|
/**
|
|
84
83
|
* Returned when an unknown privilege is encountered.
|
|
85
84
|
*/
|
|
86
85
|
static unknownPrivilege() {
|
|
87
|
-
return new XIDError(
|
|
86
|
+
return new XIDError("UNKNOWN_PRIVILEGE", "unknown privilege");
|
|
88
87
|
}
|
|
89
88
|
/**
|
|
90
89
|
* Returned when the XID is invalid.
|
|
91
90
|
*/
|
|
92
91
|
static invalidXid() {
|
|
93
|
-
return new XIDError(
|
|
92
|
+
return new XIDError("INVALID_XID", "invalid XID");
|
|
94
93
|
}
|
|
95
94
|
/**
|
|
96
95
|
* Returned when the inception key is missing.
|
|
97
96
|
*/
|
|
98
97
|
static missingInceptionKey() {
|
|
99
|
-
return new XIDError(
|
|
98
|
+
return new XIDError("MISSING_INCEPTION_KEY", "missing inception key");
|
|
100
99
|
}
|
|
101
100
|
/**
|
|
102
101
|
* Returned when the resolution method is invalid.
|
|
103
102
|
*/
|
|
104
103
|
static invalidResolutionMethod() {
|
|
105
|
-
return new XIDError(
|
|
104
|
+
return new XIDError("INVALID_RESOLUTION_METHOD", "invalid resolution method");
|
|
106
105
|
}
|
|
107
106
|
/**
|
|
108
107
|
* Returned when multiple provenance marks are found.
|
|
109
108
|
*/
|
|
110
109
|
static multipleProvenanceMarks() {
|
|
111
|
-
return new XIDError(
|
|
110
|
+
return new XIDError("MULTIPLE_PROVENANCE_MARKS", "multiple provenance marks");
|
|
112
111
|
}
|
|
113
112
|
/**
|
|
114
113
|
* Returned when an unexpected predicate is encountered.
|
|
115
114
|
*/
|
|
116
115
|
static unexpectedPredicate(predicate) {
|
|
117
|
-
return new XIDError(
|
|
116
|
+
return new XIDError("UNEXPECTED_PREDICATE", `unexpected predicate: ${predicate}`);
|
|
118
117
|
}
|
|
119
118
|
/**
|
|
120
119
|
* Returned when unexpected nested assertions are found.
|
|
121
120
|
*/
|
|
122
121
|
static unexpectedNestedAssertions() {
|
|
123
|
-
return new XIDError(
|
|
122
|
+
return new XIDError("UNEXPECTED_NESTED_ASSERTIONS", "unexpected nested assertions");
|
|
124
123
|
}
|
|
125
124
|
/**
|
|
126
125
|
* Returned when a service has no permissions.
|
|
127
126
|
*/
|
|
128
127
|
static noPermissions(uri) {
|
|
129
|
-
return new XIDError(
|
|
128
|
+
return new XIDError("NO_PERMISSIONS", `no permissions in service '${uri}'`);
|
|
130
129
|
}
|
|
131
130
|
/**
|
|
132
131
|
* Returned when a service has no key or delegate references.
|
|
133
132
|
*/
|
|
134
133
|
static noReferences(uri) {
|
|
135
|
-
return new XIDError(
|
|
134
|
+
return new XIDError("NO_REFERENCES", `no key or delegate references in service '${uri}'`);
|
|
136
135
|
}
|
|
137
136
|
/**
|
|
138
137
|
* Returned when an unknown key reference is found in a service.
|
|
139
138
|
*/
|
|
140
139
|
static unknownKeyReference(reference, uri) {
|
|
141
|
-
return new XIDError(
|
|
140
|
+
return new XIDError("UNKNOWN_KEY_REFERENCE", `unknown key reference ${reference} in service '${uri}'`);
|
|
142
141
|
}
|
|
143
142
|
/**
|
|
144
143
|
* Returned when an unknown delegate reference is found in a service.
|
|
145
144
|
*/
|
|
146
145
|
static unknownDelegateReference(reference, uri) {
|
|
147
|
-
return new XIDError(
|
|
146
|
+
return new XIDError("UNKNOWN_DELEGATE_REFERENCE", `unknown delegate reference ${reference} in service '${uri}'`);
|
|
148
147
|
}
|
|
149
148
|
/**
|
|
150
149
|
* Returned when a key is not found in the XID document.
|
|
151
150
|
*/
|
|
152
151
|
static keyNotFoundInDocument(key) {
|
|
153
|
-
return new XIDError(
|
|
152
|
+
return new XIDError("KEY_NOT_FOUND_IN_DOCUMENT", `key not found in XID document: ${key}`);
|
|
154
153
|
}
|
|
155
154
|
/**
|
|
156
155
|
* Returned when a delegate is not found in the XID document.
|
|
157
156
|
*/
|
|
158
157
|
static delegateNotFoundInDocument(delegate) {
|
|
159
|
-
return new XIDError(
|
|
158
|
+
return new XIDError("DELEGATE_NOT_FOUND_IN_DOCUMENT", `delegate not found in XID document: ${delegate}`);
|
|
160
159
|
}
|
|
161
160
|
/**
|
|
162
161
|
* Returned when the password is invalid.
|
|
163
162
|
*/
|
|
164
163
|
static invalidPassword() {
|
|
165
|
-
return new XIDError(
|
|
164
|
+
return new XIDError("INVALID_PASSWORD", "invalid password");
|
|
166
165
|
}
|
|
167
166
|
/**
|
|
168
167
|
* Returned when the envelope is not signed.
|
|
169
168
|
*/
|
|
170
169
|
static envelopeNotSigned() {
|
|
171
|
-
return new XIDError(
|
|
170
|
+
return new XIDError("ENVELOPE_NOT_SIGNED", "envelope is not signed");
|
|
172
171
|
}
|
|
173
172
|
/**
|
|
174
173
|
* Returned when signature verification fails.
|
|
175
174
|
*/
|
|
176
175
|
static signatureVerificationFailed() {
|
|
177
|
-
return new XIDError(
|
|
176
|
+
return new XIDError("SIGNATURE_VERIFICATION_FAILED", "signature verification failed");
|
|
178
177
|
}
|
|
179
178
|
/**
|
|
180
179
|
* Returned when there is no provenance mark to advance.
|
|
181
180
|
*/
|
|
182
181
|
static noProvenanceMark() {
|
|
183
|
-
return new XIDError(
|
|
182
|
+
return new XIDError("NO_PROVENANCE_MARK", "no provenance mark to advance");
|
|
184
183
|
}
|
|
185
184
|
/**
|
|
186
185
|
* Returned when document already has generator but external generator was provided.
|
|
187
186
|
*/
|
|
188
187
|
static generatorConflict() {
|
|
189
|
-
return new XIDError(
|
|
188
|
+
return new XIDError("GENERATOR_CONFLICT", "document already has generator, cannot provide external generator");
|
|
190
189
|
}
|
|
191
190
|
/**
|
|
192
191
|
* Returned when document does not have generator but needs one.
|
|
193
192
|
*/
|
|
194
193
|
static noGenerator() {
|
|
195
|
-
return new XIDError(
|
|
194
|
+
return new XIDError("NO_GENERATOR", "document does not have generator, must provide external generator");
|
|
196
195
|
}
|
|
197
196
|
/**
|
|
198
197
|
* Returned when generator chain ID doesn't match.
|
|
199
198
|
*/
|
|
200
199
|
static chainIdMismatch(expected, actual) {
|
|
201
|
-
|
|
202
|
-
const actualHex = Array.from(actual).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
203
|
-
return new XIDError(XIDErrorCode.CHAIN_ID_MISMATCH, `generator chain ID mismatch: expected ${expectedHex}, got ${actualHex}`);
|
|
200
|
+
return new XIDError("CHAIN_ID_MISMATCH", `generator chain ID mismatch: expected ${Array.from(expected).map((b) => b.toString(16).padStart(2, "0")).join("")}, got ${Array.from(actual).map((b) => b.toString(16).padStart(2, "0")).join("")}`);
|
|
204
201
|
}
|
|
205
202
|
/**
|
|
206
203
|
* Returned when generator sequence doesn't match.
|
|
207
204
|
*/
|
|
208
205
|
static sequenceMismatch(expected, actual) {
|
|
209
|
-
return new XIDError(
|
|
206
|
+
return new XIDError("SEQUENCE_MISMATCH", `generator sequence mismatch: expected ${expected}, got ${actual}`);
|
|
210
207
|
}
|
|
211
208
|
/**
|
|
212
209
|
* Envelope parsing error wrapper.
|
|
213
210
|
*/
|
|
214
211
|
static envelopeParsing(cause) {
|
|
215
|
-
return new XIDError(
|
|
212
|
+
return new XIDError("ENVELOPE_PARSING", "envelope parsing error", cause);
|
|
216
213
|
}
|
|
217
214
|
/**
|
|
218
215
|
* Component error wrapper.
|
|
219
216
|
*/
|
|
220
217
|
static component(cause) {
|
|
221
|
-
return new XIDError(
|
|
218
|
+
return new XIDError("COMPONENT", "component error", cause);
|
|
222
219
|
}
|
|
223
220
|
/**
|
|
224
221
|
* CBOR error wrapper.
|
|
225
222
|
*/
|
|
226
223
|
static cbor(cause) {
|
|
227
|
-
return new XIDError(
|
|
224
|
+
return new XIDError("CBOR", "CBOR error", cause);
|
|
228
225
|
}
|
|
229
226
|
/**
|
|
230
227
|
* Provenance mark error wrapper.
|
|
231
228
|
*/
|
|
232
229
|
static provenanceMark(cause) {
|
|
233
|
-
return new XIDError(
|
|
230
|
+
return new XIDError("PROVENANCE_MARK", "provenance mark error", cause);
|
|
234
231
|
}
|
|
235
232
|
};
|
|
236
|
-
|
|
237
233
|
//#endregion
|
|
238
234
|
//#region src/privilege.ts
|
|
239
235
|
/**
|
|
@@ -287,20 +283,20 @@ let Privilege = /* @__PURE__ */ function(Privilege) {
|
|
|
287
283
|
*/
|
|
288
284
|
function privilegeToKnownValue(privilege) {
|
|
289
285
|
switch (privilege) {
|
|
290
|
-
case
|
|
291
|
-
case
|
|
292
|
-
case
|
|
293
|
-
case
|
|
294
|
-
case
|
|
295
|
-
case
|
|
296
|
-
case
|
|
297
|
-
case
|
|
298
|
-
case
|
|
299
|
-
case
|
|
300
|
-
case
|
|
301
|
-
case
|
|
302
|
-
case
|
|
303
|
-
case
|
|
286
|
+
case "All": return _bcts_known_values.PRIVILEGE_ALL;
|
|
287
|
+
case "Auth": return _bcts_known_values.PRIVILEGE_AUTH;
|
|
288
|
+
case "Sign": return _bcts_known_values.PRIVILEGE_SIGN;
|
|
289
|
+
case "Encrypt": return _bcts_known_values.PRIVILEGE_ENCRYPT;
|
|
290
|
+
case "Elide": return _bcts_known_values.PRIVILEGE_ELIDE;
|
|
291
|
+
case "Issue": return _bcts_known_values.PRIVILEGE_ISSUE;
|
|
292
|
+
case "Access": return _bcts_known_values.PRIVILEGE_ACCESS;
|
|
293
|
+
case "Delegate": return _bcts_known_values.PRIVILEGE_DELEGATE;
|
|
294
|
+
case "Verify": return _bcts_known_values.PRIVILEGE_VERIFY;
|
|
295
|
+
case "Update": return _bcts_known_values.PRIVILEGE_UPDATE;
|
|
296
|
+
case "Transfer": return _bcts_known_values.PRIVILEGE_TRANSFER;
|
|
297
|
+
case "Elect": return _bcts_known_values.PRIVILEGE_ELECT;
|
|
298
|
+
case "Burn": return _bcts_known_values.PRIVILEGE_BURN;
|
|
299
|
+
case "Revoke": return _bcts_known_values.PRIVILEGE_REVOKE;
|
|
304
300
|
default: throw XIDError.unknownPrivilege();
|
|
305
301
|
}
|
|
306
302
|
}
|
|
@@ -309,20 +305,20 @@ function privilegeToKnownValue(privilege) {
|
|
|
309
305
|
*/
|
|
310
306
|
function privilegeFromKnownValue(knownValue) {
|
|
311
307
|
switch (knownValue.value()) {
|
|
312
|
-
case _bcts_known_values.PRIVILEGE_ALL.value(): return
|
|
313
|
-
case _bcts_known_values.PRIVILEGE_AUTH.value(): return
|
|
314
|
-
case _bcts_known_values.PRIVILEGE_SIGN.value(): return
|
|
315
|
-
case _bcts_known_values.PRIVILEGE_ENCRYPT.value(): return
|
|
316
|
-
case _bcts_known_values.PRIVILEGE_ELIDE.value(): return
|
|
317
|
-
case _bcts_known_values.PRIVILEGE_ISSUE.value(): return
|
|
318
|
-
case _bcts_known_values.PRIVILEGE_ACCESS.value(): return
|
|
319
|
-
case _bcts_known_values.PRIVILEGE_DELEGATE.value(): return
|
|
320
|
-
case _bcts_known_values.PRIVILEGE_VERIFY.value(): return
|
|
321
|
-
case _bcts_known_values.PRIVILEGE_UPDATE.value(): return
|
|
322
|
-
case _bcts_known_values.PRIVILEGE_TRANSFER.value(): return
|
|
323
|
-
case _bcts_known_values.PRIVILEGE_ELECT.value(): return
|
|
324
|
-
case _bcts_known_values.PRIVILEGE_BURN.value(): return
|
|
325
|
-
case _bcts_known_values.PRIVILEGE_REVOKE.value(): return
|
|
308
|
+
case _bcts_known_values.PRIVILEGE_ALL.value(): return "All";
|
|
309
|
+
case _bcts_known_values.PRIVILEGE_AUTH.value(): return "Auth";
|
|
310
|
+
case _bcts_known_values.PRIVILEGE_SIGN.value(): return "Sign";
|
|
311
|
+
case _bcts_known_values.PRIVILEGE_ENCRYPT.value(): return "Encrypt";
|
|
312
|
+
case _bcts_known_values.PRIVILEGE_ELIDE.value(): return "Elide";
|
|
313
|
+
case _bcts_known_values.PRIVILEGE_ISSUE.value(): return "Issue";
|
|
314
|
+
case _bcts_known_values.PRIVILEGE_ACCESS.value(): return "Access";
|
|
315
|
+
case _bcts_known_values.PRIVILEGE_DELEGATE.value(): return "Delegate";
|
|
316
|
+
case _bcts_known_values.PRIVILEGE_VERIFY.value(): return "Verify";
|
|
317
|
+
case _bcts_known_values.PRIVILEGE_UPDATE.value(): return "Update";
|
|
318
|
+
case _bcts_known_values.PRIVILEGE_TRANSFER.value(): return "Transfer";
|
|
319
|
+
case _bcts_known_values.PRIVILEGE_ELECT.value(): return "Elect";
|
|
320
|
+
case _bcts_known_values.PRIVILEGE_BURN.value(): return "Burn";
|
|
321
|
+
case _bcts_known_values.PRIVILEGE_REVOKE.value(): return "Revoke";
|
|
326
322
|
default: throw XIDError.unknownPrivilege();
|
|
327
323
|
}
|
|
328
324
|
}
|
|
@@ -340,7 +336,6 @@ function privilegeFromEnvelope(envelope) {
|
|
|
340
336
|
if (envelopeCase.type !== "knownValue") throw XIDError.unknownPrivilege();
|
|
341
337
|
return privilegeFromKnownValue(envelopeCase.value);
|
|
342
338
|
}
|
|
343
|
-
|
|
344
339
|
//#endregion
|
|
345
340
|
//#region src/permissions.ts
|
|
346
341
|
/**
|
|
@@ -359,24 +354,45 @@ function privilegeFromEnvelope(envelope) {
|
|
|
359
354
|
* Helper methods for HasPermissions implementers.
|
|
360
355
|
*/
|
|
361
356
|
const HasPermissionsMixin = {
|
|
357
|
+
/**
|
|
358
|
+
* Get the set of allowed privileges.
|
|
359
|
+
*/
|
|
362
360
|
allow(obj) {
|
|
363
361
|
return obj.permissions().allow;
|
|
364
362
|
},
|
|
363
|
+
/**
|
|
364
|
+
* Get the set of denied privileges.
|
|
365
|
+
*/
|
|
365
366
|
deny(obj) {
|
|
366
367
|
return obj.permissions().deny;
|
|
367
368
|
},
|
|
369
|
+
/**
|
|
370
|
+
* Add an allowed privilege.
|
|
371
|
+
*/
|
|
368
372
|
addAllow(obj, privilege) {
|
|
369
373
|
obj.permissionsMut().allow.add(privilege);
|
|
370
374
|
},
|
|
375
|
+
/**
|
|
376
|
+
* Add a denied privilege.
|
|
377
|
+
*/
|
|
371
378
|
addDeny(obj, privilege) {
|
|
372
379
|
obj.permissionsMut().deny.add(privilege);
|
|
373
380
|
},
|
|
381
|
+
/**
|
|
382
|
+
* Remove an allowed privilege.
|
|
383
|
+
*/
|
|
374
384
|
removeAllow(obj, privilege) {
|
|
375
385
|
obj.permissionsMut().allow.delete(privilege);
|
|
376
386
|
},
|
|
387
|
+
/**
|
|
388
|
+
* Remove a denied privilege.
|
|
389
|
+
*/
|
|
377
390
|
removeDeny(obj, privilege) {
|
|
378
391
|
obj.permissionsMut().deny.delete(privilege);
|
|
379
392
|
},
|
|
393
|
+
/**
|
|
394
|
+
* Clear all permissions.
|
|
395
|
+
*/
|
|
380
396
|
clearAllPermissions(obj) {
|
|
381
397
|
obj.permissionsMut().allow.clear();
|
|
382
398
|
obj.permissionsMut().deny.clear();
|
|
@@ -403,7 +419,7 @@ var Permissions = class Permissions {
|
|
|
403
419
|
*/
|
|
404
420
|
static newAllowAll() {
|
|
405
421
|
const allow = /* @__PURE__ */ new Set();
|
|
406
|
-
allow.add(
|
|
422
|
+
allow.add("All");
|
|
407
423
|
return new Permissions(allow);
|
|
408
424
|
}
|
|
409
425
|
/**
|
|
@@ -449,14 +465,14 @@ var Permissions = class Permissions {
|
|
|
449
465
|
* Check if a specific privilege is allowed.
|
|
450
466
|
*/
|
|
451
467
|
isAllowed(privilege) {
|
|
452
|
-
if (this.deny.has(privilege) || this.deny.has(
|
|
453
|
-
return this.allow.has(privilege) || this.allow.has(
|
|
468
|
+
if (this.deny.has(privilege) || this.deny.has("All")) return false;
|
|
469
|
+
return this.allow.has(privilege) || this.allow.has("All");
|
|
454
470
|
}
|
|
455
471
|
/**
|
|
456
472
|
* Check if a specific privilege is denied.
|
|
457
473
|
*/
|
|
458
474
|
isDenied(privilege) {
|
|
459
|
-
return this.deny.has(privilege) || this.deny.has(
|
|
475
|
+
return this.deny.has(privilege) || this.deny.has("All");
|
|
460
476
|
}
|
|
461
477
|
permissions() {
|
|
462
478
|
return this;
|
|
@@ -480,7 +496,6 @@ var Permissions = class Permissions {
|
|
|
480
496
|
return new Permissions(new Set(this.allow), new Set(this.deny));
|
|
481
497
|
}
|
|
482
498
|
};
|
|
483
|
-
|
|
484
499
|
//#endregion
|
|
485
500
|
//#region src/name.ts
|
|
486
501
|
/**
|
|
@@ -497,12 +512,15 @@ var Permissions = class Permissions {
|
|
|
497
512
|
/**
|
|
498
513
|
* Helper methods for HasNickname implementers.
|
|
499
514
|
*/
|
|
500
|
-
const HasNicknameMixin = {
|
|
515
|
+
const HasNicknameMixin = {
|
|
516
|
+
/**
|
|
517
|
+
* Add a nickname, throwing if one already exists or is empty.
|
|
518
|
+
*/
|
|
519
|
+
addNickname(obj, name) {
|
|
501
520
|
if (obj.nickname() !== "") throw XIDError.duplicate("nickname");
|
|
502
521
|
if (name === "") throw XIDError.emptyValue("nickname");
|
|
503
522
|
obj.setNickname(name);
|
|
504
523
|
} };
|
|
505
|
-
|
|
506
524
|
//#endregion
|
|
507
525
|
//#region src/shared.ts
|
|
508
526
|
/**
|
|
@@ -567,7 +585,6 @@ var Shared = class Shared {
|
|
|
567
585
|
return new Shared(this.value);
|
|
568
586
|
}
|
|
569
587
|
};
|
|
570
|
-
|
|
571
588
|
//#endregion
|
|
572
589
|
//#region src/key.ts
|
|
573
590
|
/**
|
|
@@ -740,7 +757,7 @@ var Key = class Key {
|
|
|
740
757
|
/**
|
|
741
758
|
* Convert to envelope with specified options.
|
|
742
759
|
*/
|
|
743
|
-
intoEnvelopeOpt(privateKeyOptions =
|
|
760
|
+
intoEnvelopeOpt(privateKeyOptions = "Omit") {
|
|
744
761
|
let envelope = _bcts_envelope.Envelope.new(this._publicKeys.taggedCborData());
|
|
745
762
|
if (this._privateKeyData !== void 0) {
|
|
746
763
|
const { data, salt } = this._privateKeyData;
|
|
@@ -748,17 +765,17 @@ var Key = class Key {
|
|
|
748
765
|
envelope = envelope.addAssertion(kv$3(_bcts_known_values.PRIVATE_KEY), data.envelope);
|
|
749
766
|
envelope = envelope.addAssertion(kv$3(_bcts_known_values.SALT), salt.toData());
|
|
750
767
|
} else if (data.type === "decrypted") switch (typeof privateKeyOptions === "object" ? privateKeyOptions.type : privateKeyOptions) {
|
|
751
|
-
case
|
|
768
|
+
case "Include":
|
|
752
769
|
envelope = envelope.addAssertion(kv$3(_bcts_known_values.PRIVATE_KEY), data.privateKeys.taggedCborData());
|
|
753
770
|
envelope = envelope.addAssertion(kv$3(_bcts_known_values.SALT), salt.toData());
|
|
754
771
|
break;
|
|
755
|
-
case
|
|
772
|
+
case "Elide": {
|
|
756
773
|
const elidedAssertion = _bcts_envelope.Envelope.newAssertion(kv$3(_bcts_known_values.PRIVATE_KEY), data.privateKeys.taggedCborData()).elide();
|
|
757
774
|
envelope = envelope.addAssertionEnvelope(elidedAssertion);
|
|
758
775
|
envelope = envelope.addAssertion(kv$3(_bcts_known_values.SALT), salt.toData());
|
|
759
776
|
break;
|
|
760
777
|
}
|
|
761
|
-
case
|
|
778
|
+
case "Encrypt":
|
|
762
779
|
if (typeof privateKeyOptions === "object") {
|
|
763
780
|
const privateKeysEnvelope = _bcts_envelope.Envelope.new(data.privateKeys.taggedCborData());
|
|
764
781
|
const method = privateKeyOptions.method ?? (0, _bcts_components.defaultKeyDerivationMethod)();
|
|
@@ -767,7 +784,6 @@ var Key = class Key {
|
|
|
767
784
|
envelope = envelope.addAssertion(kv$3(_bcts_known_values.SALT), salt.toData());
|
|
768
785
|
}
|
|
769
786
|
break;
|
|
770
|
-
case XIDPrivateKeyOptions.Omit:
|
|
771
787
|
default: break;
|
|
772
788
|
}
|
|
773
789
|
}
|
|
@@ -777,7 +793,7 @@ var Key = class Key {
|
|
|
777
793
|
return envelope;
|
|
778
794
|
}
|
|
779
795
|
intoEnvelope() {
|
|
780
|
-
return this.intoEnvelopeOpt(
|
|
796
|
+
return this.intoEnvelopeOpt("Omit");
|
|
781
797
|
}
|
|
782
798
|
/**
|
|
783
799
|
* Try to extract a Key from an envelope, optionally with password for decryption.
|
|
@@ -902,7 +918,6 @@ var Key = class Key {
|
|
|
902
918
|
} : void 0, this._nickname, new Set(this._endpoints), this._permissions.clone());
|
|
903
919
|
}
|
|
904
920
|
};
|
|
905
|
-
|
|
906
921
|
//#endregion
|
|
907
922
|
//#region src/service.ts
|
|
908
923
|
/**
|
|
@@ -1156,7 +1171,6 @@ function hexToBytes(hex) {
|
|
|
1156
1171
|
function bytesToHex(bytes) {
|
|
1157
1172
|
return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
1158
1173
|
}
|
|
1159
|
-
|
|
1160
1174
|
//#endregion
|
|
1161
1175
|
//#region src/delegate.ts
|
|
1162
1176
|
let XIDDocumentClass = null;
|
|
@@ -1242,7 +1256,6 @@ var Delegate = class Delegate {
|
|
|
1242
1256
|
return new Delegate(Shared.new(this._controller.read().clone()), this._permissions.clone());
|
|
1243
1257
|
}
|
|
1244
1258
|
};
|
|
1245
|
-
|
|
1246
1259
|
//#endregion
|
|
1247
1260
|
//#region src/provenance.ts
|
|
1248
1261
|
/**
|
|
@@ -1416,7 +1429,7 @@ var Provenance = class Provenance {
|
|
|
1416
1429
|
/**
|
|
1417
1430
|
* Convert to envelope with specified options.
|
|
1418
1431
|
*/
|
|
1419
|
-
intoEnvelopeOpt(generatorOptions =
|
|
1432
|
+
intoEnvelopeOpt(generatorOptions = "Omit") {
|
|
1420
1433
|
let envelope = _bcts_envelope.Envelope.new(this._mark.toCborData());
|
|
1421
1434
|
if (this._generator !== void 0) {
|
|
1422
1435
|
const { data, salt } = this._generator;
|
|
@@ -1424,20 +1437,20 @@ var Provenance = class Provenance {
|
|
|
1424
1437
|
envelope = envelope.addAssertion(kv$1(_bcts_known_values.PROVENANCE_GENERATOR), data.envelope);
|
|
1425
1438
|
envelope = envelope.addAssertion(kv$1(_bcts_known_values.SALT), salt.toData());
|
|
1426
1439
|
} else if (data.type === "decrypted") switch (typeof generatorOptions === "object" ? generatorOptions.type : generatorOptions) {
|
|
1427
|
-
case
|
|
1440
|
+
case "Include": {
|
|
1428
1441
|
const generatorBytes = encodeGeneratorJSON(data.generator.toJSON());
|
|
1429
1442
|
envelope = envelope.addAssertion(kv$1(_bcts_known_values.PROVENANCE_GENERATOR), generatorBytes);
|
|
1430
1443
|
envelope = envelope.addAssertion(kv$1(_bcts_known_values.SALT), salt.toData());
|
|
1431
1444
|
break;
|
|
1432
1445
|
}
|
|
1433
|
-
case
|
|
1446
|
+
case "Elide": {
|
|
1434
1447
|
const generatorBytes2 = encodeGeneratorJSON(data.generator.toJSON());
|
|
1435
1448
|
const elidedAssertion = _bcts_envelope.Envelope.newAssertion(kv$1(_bcts_known_values.PROVENANCE_GENERATOR), generatorBytes2).elide();
|
|
1436
1449
|
envelope = envelope.addAssertionEnvelope(elidedAssertion);
|
|
1437
1450
|
envelope = envelope.addAssertion(kv$1(_bcts_known_values.SALT), salt.toData());
|
|
1438
1451
|
break;
|
|
1439
1452
|
}
|
|
1440
|
-
case
|
|
1453
|
+
case "Encrypt":
|
|
1441
1454
|
if (typeof generatorOptions === "object") {
|
|
1442
1455
|
const generatorBytes3 = encodeGeneratorJSON(data.generator.toJSON());
|
|
1443
1456
|
const wrapped = _bcts_envelope.Envelope.new(generatorBytes3).wrap();
|
|
@@ -1447,14 +1460,13 @@ var Provenance = class Provenance {
|
|
|
1447
1460
|
envelope = envelope.addAssertion(kv$1(_bcts_known_values.SALT), salt.toData());
|
|
1448
1461
|
}
|
|
1449
1462
|
break;
|
|
1450
|
-
case XIDGeneratorOptions.Omit:
|
|
1451
1463
|
default: break;
|
|
1452
1464
|
}
|
|
1453
1465
|
}
|
|
1454
1466
|
return envelope;
|
|
1455
1467
|
}
|
|
1456
1468
|
intoEnvelope() {
|
|
1457
|
-
return this.intoEnvelopeOpt(
|
|
1469
|
+
return this.intoEnvelopeOpt("Omit");
|
|
1458
1470
|
}
|
|
1459
1471
|
/**
|
|
1460
1472
|
* Try to extract a Provenance from an envelope, optionally with password for decryption.
|
|
@@ -1541,7 +1553,6 @@ var Provenance = class Provenance {
|
|
|
1541
1553
|
} : void 0);
|
|
1542
1554
|
}
|
|
1543
1555
|
};
|
|
1544
|
-
|
|
1545
1556
|
//#endregion
|
|
1546
1557
|
//#region src/xid-document.ts
|
|
1547
1558
|
/**
|
|
@@ -1776,7 +1787,7 @@ var XIDDocument = class XIDDocument {
|
|
|
1776
1787
|
* Extract inception private keys from an envelope (convenience static method).
|
|
1777
1788
|
*/
|
|
1778
1789
|
static extractInceptionPrivateKeysFromEnvelope(envelope, password) {
|
|
1779
|
-
return XIDDocument.fromEnvelope(envelope, password,
|
|
1790
|
+
return XIDDocument.fromEnvelope(envelope, password, "None").inceptionPrivateKeys();
|
|
1780
1791
|
}
|
|
1781
1792
|
/**
|
|
1782
1793
|
* Get the private key envelope for a specific key, optionally decrypting it.
|
|
@@ -2054,7 +2065,7 @@ var XIDDocument = class XIDDocument {
|
|
|
2054
2065
|
/**
|
|
2055
2066
|
* Convert to envelope with options.
|
|
2056
2067
|
*/
|
|
2057
|
-
toEnvelope(privateKeyOptions =
|
|
2068
|
+
toEnvelope(privateKeyOptions = "Omit", generatorOptions = "Omit", signingOptions = { type: "none" }) {
|
|
2058
2069
|
let envelope = _bcts_envelope.Envelope.newLeaf(this._xid.taggedCbor());
|
|
2059
2070
|
for (const method of this._resolutionMethods) envelope = envelope.addAssertion(kv(_bcts_known_values.DEREFERENCE_VIA), method);
|
|
2060
2071
|
for (const key of this._keys.values()) envelope = envelope.addAssertion(kv(_bcts_known_values.KEY), key.intoEnvelopeOpt(privateKeyOptions));
|
|
@@ -2089,10 +2100,10 @@ var XIDDocument = class XIDDocument {
|
|
|
2089
2100
|
/**
|
|
2090
2101
|
* Extract an XIDDocument from an envelope.
|
|
2091
2102
|
*/
|
|
2092
|
-
static fromEnvelope(envelope, password, verifySignature =
|
|
2103
|
+
static fromEnvelope(envelope, password, verifySignature = "None") {
|
|
2093
2104
|
const envelopeExt = envelope;
|
|
2094
2105
|
switch (verifySignature) {
|
|
2095
|
-
case
|
|
2106
|
+
case "None": {
|
|
2096
2107
|
const subject = envelopeExt.subject();
|
|
2097
2108
|
const envelopeToParse = subject.isWrapped() ? subject.tryUnwrap() : envelope;
|
|
2098
2109
|
const attachments = _bcts_envelope.Attachments.fromEnvelope(envelopeToParse);
|
|
@@ -2102,7 +2113,7 @@ var XIDDocument = class XIDDocument {
|
|
|
2102
2113
|
doc._edges = edges;
|
|
2103
2114
|
return doc;
|
|
2104
2115
|
}
|
|
2105
|
-
case
|
|
2116
|
+
case "Inception": {
|
|
2106
2117
|
if (!envelopeExt.subject().isWrapped()) throw XIDError.envelopeNotSigned();
|
|
2107
2118
|
const unwrapped = envelopeExt.tryUnwrap();
|
|
2108
2119
|
const attachments = _bcts_envelope.Attachments.fromEnvelope(unwrapped);
|
|
@@ -2177,13 +2188,13 @@ var XIDDocument = class XIDDocument {
|
|
|
2177
2188
|
* Create a signed envelope.
|
|
2178
2189
|
*/
|
|
2179
2190
|
toSignedEnvelope(signingKey) {
|
|
2180
|
-
return this.toSignedEnvelopeOpt(signingKey,
|
|
2191
|
+
return this.toSignedEnvelopeOpt(signingKey, "Omit");
|
|
2181
2192
|
}
|
|
2182
2193
|
/**
|
|
2183
2194
|
* Create a signed envelope with private key options.
|
|
2184
2195
|
*/
|
|
2185
|
-
toSignedEnvelopeOpt(signingKey, privateKeyOptions =
|
|
2186
|
-
return this.toEnvelope(privateKeyOptions,
|
|
2196
|
+
toSignedEnvelopeOpt(signingKey, privateKeyOptions = "Omit") {
|
|
2197
|
+
return this.toEnvelope(privateKeyOptions, "Omit", { type: "none" }).sign(signingKey);
|
|
2187
2198
|
}
|
|
2188
2199
|
/**
|
|
2189
2200
|
* Get the reference for this document.
|
|
@@ -2235,7 +2246,7 @@ var XIDDocument = class XIDDocument {
|
|
|
2235
2246
|
* Try to extract from envelope (alias for fromEnvelope with default options).
|
|
2236
2247
|
*/
|
|
2237
2248
|
static tryFromEnvelope(envelope) {
|
|
2238
|
-
return XIDDocument.fromEnvelope(envelope, void 0,
|
|
2249
|
+
return XIDDocument.fromEnvelope(envelope, void 0, "None");
|
|
2239
2250
|
}
|
|
2240
2251
|
};
|
|
2241
2252
|
registerXIDDocumentClass(XIDDocument);
|
|
@@ -2244,24 +2255,22 @@ function bytesEqual(a, b) {
|
|
|
2244
2255
|
for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;
|
|
2245
2256
|
return true;
|
|
2246
2257
|
}
|
|
2247
|
-
|
|
2248
2258
|
//#endregion
|
|
2249
2259
|
//#region src/index.ts
|
|
2250
2260
|
const VERSION = "1.0.0-alpha.3";
|
|
2251
|
-
|
|
2252
2261
|
//#endregion
|
|
2253
|
-
Object.defineProperty(exports,
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2262
|
+
Object.defineProperty(exports, "Attachments", {
|
|
2263
|
+
enumerable: true,
|
|
2264
|
+
get: function() {
|
|
2265
|
+
return _bcts_envelope.Attachments;
|
|
2266
|
+
}
|
|
2258
2267
|
});
|
|
2259
2268
|
exports.Delegate = Delegate;
|
|
2260
|
-
Object.defineProperty(exports,
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2269
|
+
Object.defineProperty(exports, "Edges", {
|
|
2270
|
+
enumerable: true,
|
|
2271
|
+
get: function() {
|
|
2272
|
+
return _bcts_envelope.Edges;
|
|
2273
|
+
}
|
|
2265
2274
|
});
|
|
2266
2275
|
exports.HasNicknameMixin = HasNicknameMixin;
|
|
2267
2276
|
exports.HasPermissionsMixin = HasPermissionsMixin;
|
|
@@ -2272,11 +2281,11 @@ exports.Provenance = Provenance;
|
|
|
2272
2281
|
exports.Service = Service;
|
|
2273
2282
|
exports.Shared = Shared;
|
|
2274
2283
|
exports.VERSION = VERSION;
|
|
2275
|
-
Object.defineProperty(exports,
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2284
|
+
Object.defineProperty(exports, "XID", {
|
|
2285
|
+
enumerable: true,
|
|
2286
|
+
get: function() {
|
|
2287
|
+
return _bcts_components.XID;
|
|
2288
|
+
}
|
|
2280
2289
|
});
|
|
2281
2290
|
exports.XIDDocument = XIDDocument;
|
|
2282
2291
|
exports.XIDError = XIDError;
|
|
@@ -2289,4 +2298,5 @@ exports.privilegeFromKnownValue = privilegeFromKnownValue;
|
|
|
2289
2298
|
exports.privilegeToEnvelope = privilegeToEnvelope;
|
|
2290
2299
|
exports.privilegeToKnownValue = privilegeToKnownValue;
|
|
2291
2300
|
exports.registerXIDDocumentClass = registerXIDDocumentClass;
|
|
2301
|
+
|
|
2292
2302
|
//# sourceMappingURL=index.cjs.map
|