@opentdf/sdk 0.3.0-beta.2029 → 0.3.0-beta.2166

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/cjs/src/access.js +1 -2
  2. package/dist/cjs/src/index.js +2 -1
  3. package/dist/cjs/src/nanoclients.js +13 -6
  4. package/dist/cjs/src/opentdf.js +4 -3
  5. package/dist/cjs/src/tdf/Policy.js +15 -12
  6. package/dist/cjs/tdf3/src/assertions.js +23 -4
  7. package/dist/cjs/tdf3/src/client/builders.js +1 -1
  8. package/dist/cjs/tdf3/src/models/attribute.js +3 -0
  9. package/dist/cjs/tdf3/src/models/index.js +2 -2
  10. package/dist/cjs/tdf3/src/tdf.js +57 -21
  11. package/dist/types/src/access.d.ts.map +1 -1
  12. package/dist/types/src/index.d.ts +1 -0
  13. package/dist/types/src/index.d.ts.map +1 -1
  14. package/dist/types/src/nanoclients.d.ts +1 -1
  15. package/dist/types/src/nanoclients.d.ts.map +1 -1
  16. package/dist/types/src/opentdf.d.ts +1 -0
  17. package/dist/types/src/opentdf.d.ts.map +1 -1
  18. package/dist/types/src/tdf/Policy.d.ts +4 -2
  19. package/dist/types/src/tdf/Policy.d.ts.map +1 -1
  20. package/dist/types/tdf3/src/assertions.d.ts +4 -1
  21. package/dist/types/tdf3/src/assertions.d.ts.map +1 -1
  22. package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts +1 -1
  23. package/dist/types/tdf3/src/client/builders.d.ts +2 -0
  24. package/dist/types/tdf3/src/client/builders.d.ts.map +1 -1
  25. package/dist/types/tdf3/src/models/attribute.d.ts +16 -0
  26. package/dist/types/tdf3/src/models/attribute.d.ts.map +1 -0
  27. package/dist/types/tdf3/src/models/index.d.ts +1 -1
  28. package/dist/types/tdf3/src/models/index.d.ts.map +1 -1
  29. package/dist/types/tdf3/src/models/payload.d.ts +1 -0
  30. package/dist/types/tdf3/src/models/payload.d.ts.map +1 -1
  31. package/dist/types/tdf3/src/models/policy.d.ts +1 -1
  32. package/dist/types/tdf3/src/models/policy.d.ts.map +1 -1
  33. package/dist/types/tdf3/src/tdf.d.ts +4 -9
  34. package/dist/types/tdf3/src/tdf.d.ts.map +1 -1
  35. package/dist/web/src/access.js +1 -2
  36. package/dist/web/src/index.js +2 -1
  37. package/dist/web/src/nanoclients.js +14 -7
  38. package/dist/web/src/opentdf.js +4 -3
  39. package/dist/web/src/tdf/Policy.js +13 -10
  40. package/dist/web/tdf3/src/assertions.js +23 -4
  41. package/dist/web/tdf3/src/client/builders.js +1 -1
  42. package/dist/web/tdf3/src/models/attribute.js +2 -0
  43. package/dist/web/tdf3/src/models/index.js +2 -2
  44. package/dist/web/tdf3/src/tdf.js +58 -22
  45. package/package.json +1 -1
  46. package/src/access.ts +0 -1
  47. package/src/index.ts +1 -0
  48. package/src/nanoclients.ts +15 -7
  49. package/src/opentdf.ts +9 -5
  50. package/src/tdf/Policy.ts +15 -9
  51. package/tdf3/src/assertions.ts +29 -7
  52. package/tdf3/src/client/builders.ts +2 -0
  53. package/tdf3/src/models/attribute.ts +26 -0
  54. package/tdf3/src/models/index.ts +1 -1
  55. package/tdf3/src/models/payload.ts +1 -0
  56. package/tdf3/src/models/policy.ts +1 -1
  57. package/tdf3/src/tdf.ts +92 -39
  58. package/dist/cjs/src/tdf/PolicyObject.js +0 -3
  59. package/dist/cjs/tdf3/src/models/attribute-set.js +0 -122
  60. package/dist/types/src/tdf/PolicyObject.d.ts +0 -10
  61. package/dist/types/src/tdf/PolicyObject.d.ts.map +0 -1
  62. package/dist/types/tdf3/src/models/attribute-set.d.ts +0 -65
  63. package/dist/types/tdf3/src/models/attribute-set.d.ts.map +0 -1
  64. package/dist/web/src/tdf/PolicyObject.js +0 -2
  65. package/dist/web/tdf3/src/models/attribute-set.js +0 -118
  66. package/src/tdf/PolicyObject.ts +0 -11
  67. package/tdf3/src/models/attribute-set.ts +0 -142
@@ -63,6 +63,7 @@ const index_js_3 = require("./utils/index.js");
63
63
  const salt_js_1 = require("./crypto/salt.js");
64
64
  // TODO: input validation on manifest JSON
65
65
  const DEFAULT_SEGMENT_SIZE = 1024 * 1024;
66
+ const HEX_SEMVER_VERSION = '4.2.2';
66
67
  function mailbox() {
67
68
  let set;
68
69
  let reject;
@@ -144,7 +145,7 @@ function validatePolicyObject(policy) {
144
145
  throw new errors_js_1.ConfigurationError(`The given policy object requires the following properties: ${missingFields}`);
145
146
  }
146
147
  }
147
- async function _generateManifest(keyInfo, encryptionInformation, policy, mimeType) {
148
+ async function _generateManifest(keyInfo, encryptionInformation, policy, mimeType, targetSpecVersion) {
148
149
  // (maybe) Fields are quoted to avoid renaming
149
150
  const payload = {
150
151
  type: 'reference',
@@ -160,7 +161,8 @@ async function _generateManifest(keyInfo, encryptionInformation, policy, mimeTyp
160
161
  // generate the manifest first, then insert integrity information into it
161
162
  encryptionInformation: encryptionInformationStr,
162
163
  assertions: assertions,
163
- schemaVersion: version_js_1.tdfSpecVersion,
164
+ // when `targetSpecVersion` is provided, overrides the tdfSpecVersion
165
+ schemaVersion: targetSpecVersion || version_js_1.tdfSpecVersion,
164
166
  };
165
167
  }
166
168
  async function getSignature(unwrappedKey, content, algorithmType) {
@@ -181,6 +183,20 @@ async function getSignature(unwrappedKey, content, algorithmType) {
181
183
  throw new errors_js_1.ConfigurationError(`Unsupported signature alg [${algorithmType}]`);
182
184
  }
183
185
  }
186
+ async function getSignatureVersion422(unwrappedKeyBinary, payloadBinary, algorithmType, cryptoService) {
187
+ switch (algorithmType.toUpperCase()) {
188
+ case 'GMAC':
189
+ // use the auth tag baked into the encrypted payload
190
+ return (0, index_js_3.buffToString)(Uint8Array.from(payloadBinary.asByteArray()).slice(-16), 'hex');
191
+ case 'HS256':
192
+ return await cryptoService.hmac((0, index_js_3.buffToString)(new Uint8Array(unwrappedKeyBinary.asArrayBuffer()), 'hex'), (0, index_js_3.buffToString)(new Uint8Array(payloadBinary.asArrayBuffer()), 'utf-8'));
193
+ default:
194
+ throw new errors_js_1.ConfigurationError(`Unsupported signature alg [${algorithmType}]`);
195
+ }
196
+ }
197
+ function isTargetSpecLegacyTDF(targetSpecVersion) {
198
+ return targetSpecVersion === HEX_SEMVER_VERSION;
199
+ }
184
200
  async function writeStream(cfg) {
185
201
  if (!cfg.authProvider) {
186
202
  throw new errors_js_1.ConfigurationError('No authorization middleware defined');
@@ -204,9 +220,10 @@ async function writeStream(cfg) {
204
220
  let bytesProcessed = 0;
205
221
  let crcCounter = 0;
206
222
  let fileByteCount = 0;
223
+ let aggregateHash422 = '';
207
224
  const segmentHashList = [];
208
225
  const zipWriter = new index_js_3.ZipWriter();
209
- const manifest = await _generateManifest(cfg.keyForManifest, cfg.encryptionInformation, cfg.policy, cfg.mimeType);
226
+ const manifest = await _generateManifest(cfg.keyForManifest, cfg.encryptionInformation, cfg.policy, cfg.mimeType, cfg.tdfSpecVersion ?? '4.3.0');
210
227
  if (!manifest) {
211
228
  // Set in encrypt; should never be reached.
212
229
  throw new errors_js_1.ConfigurationError('internal: please use "loadTDFStream" first to load a manifest.');
@@ -271,11 +288,20 @@ async function writeStream(cfg) {
271
288
  _countChunk(getHeader(entryInfos[1].filename));
272
289
  crcCounter = 0;
273
290
  fileByteCount = 0;
274
- // hash the concat of all hashes
275
- const aggregateHash = await concatenateUint8Array(segmentHashList);
276
- const payloadSig = await getSignature(new Uint8Array(cfg.keyForEncryption.unwrappedKeyBinary.asArrayBuffer()), aggregateHash, cfg.integrityAlgorithm);
277
- const rootSig = index_js_1.base64.encodeArrayBuffer(payloadSig);
278
- manifest.encryptionInformation.integrityInformation.rootSignature.sig = rootSig;
291
+ let aggregateHash;
292
+ if (isTargetSpecLegacyTDF(cfg.tdfSpecVersion)) {
293
+ aggregateHash = aggregateHash422;
294
+ const payloadSigStr = await getSignatureVersion422(cfg.keyForEncryption.unwrappedKeyBinary, binary_js_1.Binary.fromString(aggregateHash), cfg.integrityAlgorithm, cfg.cryptoService);
295
+ manifest.encryptionInformation.integrityInformation.rootSignature.sig =
296
+ index_js_1.base64.encode(payloadSigStr);
297
+ }
298
+ else {
299
+ // hash the concat of all hashes
300
+ aggregateHash = await concatenateUint8Array(segmentHashList);
301
+ const payloadSig = await getSignature(new Uint8Array(cfg.keyForEncryption.unwrappedKeyBinary.asArrayBuffer()), aggregateHash, cfg.integrityAlgorithm);
302
+ const rootSig = index_js_1.base64.encodeArrayBuffer(payloadSig);
303
+ manifest.encryptionInformation.integrityInformation.rootSignature.sig = rootSig;
304
+ }
279
305
  manifest.encryptionInformation.integrityInformation.rootSignature.alg =
280
306
  cfg.integrityAlgorithm;
281
307
  manifest.encryptionInformation.integrityInformation.segmentSizeDefault = segmentSizeDefault;
@@ -352,10 +378,20 @@ async function writeStream(cfg) {
352
378
  // Don't pass in an IV here. The encrypt function will generate one for you, ensuring that each segment has a unique IV.
353
379
  const encryptedResult = await cfg.encryptionInformation.encrypt(binary_js_1.Binary.fromArrayBuffer(chunk.buffer), cfg.keyForEncryption.unwrappedKeyBinary);
354
380
  const payloadBuffer = new Uint8Array(encryptedResult.payload.asByteArray());
355
- const payloadSig = await getSignature(new Uint8Array(cfg.keyForEncryption.unwrappedKeyBinary.asArrayBuffer()), new Uint8Array(encryptedResult.payload.asArrayBuffer()), cfg.segmentIntegrityAlgorithm);
356
- segmentHashList.push(new Uint8Array(payloadSig));
381
+ let hash;
382
+ if (isTargetSpecLegacyTDF(cfg.tdfSpecVersion)) {
383
+ const payloadSigStr = await getSignatureVersion422(cfg.keyForEncryption.unwrappedKeyBinary, encryptedResult.payload, cfg.segmentIntegrityAlgorithm, cfg.cryptoService);
384
+ // combined string of all hashes for root signature
385
+ aggregateHash422 += payloadSigStr;
386
+ hash = index_js_1.base64.encode(payloadSigStr);
387
+ }
388
+ else {
389
+ const payloadSig = await getSignature(new Uint8Array(cfg.keyForEncryption.unwrappedKeyBinary.asArrayBuffer()), new Uint8Array(encryptedResult.payload.asArrayBuffer()), cfg.segmentIntegrityAlgorithm);
390
+ segmentHashList.push(new Uint8Array(payloadSig));
391
+ hash = index_js_1.base64.encodeArrayBuffer(payloadSig);
392
+ }
357
393
  segmentInfos.push({
358
- hash: index_js_1.base64.encodeArrayBuffer(payloadSig),
394
+ hash,
359
395
  segmentSize: chunk.length === segmentSizeDefault ? undefined : chunk.length,
360
396
  encryptedSegmentSize: payloadBuffer.length === encryptedSegmentSizeDefault ? undefined : payloadBuffer.length,
361
397
  });
@@ -495,12 +531,12 @@ function handleRewrapError(error) {
495
531
  }
496
532
  return error;
497
533
  }
498
- async function decryptChunk(encryptedChunk, reconstructedKeyBinary, hash, cipher, segmentIntegrityAlgorithm, isLegacyTDF) {
534
+ async function decryptChunk(encryptedChunk, reconstructedKeyBinary, hash, cipher, segmentIntegrityAlgorithm, specVersion) {
499
535
  if (segmentIntegrityAlgorithm !== 'GMAC' && segmentIntegrityAlgorithm !== 'HS256') {
500
536
  throw new errors_js_1.UnsupportedFeatureError(`Unsupported integrity alg [${segmentIntegrityAlgorithm}]`);
501
537
  }
502
538
  const segmentSig = await getSignature(new Uint8Array(reconstructedKeyBinary.asArrayBuffer()), encryptedChunk, segmentIntegrityAlgorithm);
503
- const segmentHash = isLegacyTDF
539
+ const segmentHash = isTargetSpecLegacyTDF(specVersion)
504
540
  ? index_js_1.base64.encode(index_js_1.hex.encodeArrayBuffer(segmentSig))
505
541
  : index_js_1.base64.encodeArrayBuffer(segmentSig);
506
542
  if (hash !== segmentHash) {
@@ -508,7 +544,7 @@ async function decryptChunk(encryptedChunk, reconstructedKeyBinary, hash, cipher
508
544
  }
509
545
  return await cipher.decrypt(encryptedChunk, reconstructedKeyBinary);
510
546
  }
511
- async function updateChunkQueue(chunkMap, centralDirectory, zipReader, reconstructedKeyBinary, cipher, segmentIntegrityAlgorithm, cryptoService, isLegacyTDF) {
547
+ async function updateChunkQueue(chunkMap, centralDirectory, zipReader, reconstructedKeyBinary, cipher, segmentIntegrityAlgorithm, cryptoService, specVersion) {
512
548
  const chunksInOneDownload = 500;
513
549
  let requests = [];
514
550
  const maxLength = 3;
@@ -538,13 +574,13 @@ async function updateChunkQueue(chunkMap, centralDirectory, zipReader, reconstru
538
574
  slice,
539
575
  cipher,
540
576
  segmentIntegrityAlgorithm,
541
- isLegacyTDF,
577
+ specVersion,
542
578
  });
543
579
  }
544
580
  })());
545
581
  }
546
582
  }
547
- async function sliceAndDecrypt({ buffer, reconstructedKeyBinary, slice, cipher, segmentIntegrityAlgorithm, isLegacyTDF, }) {
583
+ async function sliceAndDecrypt({ buffer, reconstructedKeyBinary, slice, cipher, segmentIntegrityAlgorithm, specVersion, }) {
548
584
  for (const index in slice) {
549
585
  const { encryptedOffset, encryptedSegmentSize, plainSegmentSize } = slice[index];
550
586
  const offset = slice[0].encryptedOffset === 0 ? encryptedOffset : encryptedOffset % slice[0].encryptedOffset;
@@ -553,7 +589,7 @@ async function sliceAndDecrypt({ buffer, reconstructedKeyBinary, slice, cipher,
553
589
  throw new errors_js_1.DecryptError('Failed to fetch entire segment');
554
590
  }
555
591
  try {
556
- const result = await decryptChunk(encryptedChunk, reconstructedKeyBinary, slice[index]['hash'], cipher, segmentIntegrityAlgorithm, isLegacyTDF);
592
+ const result = await decryptChunk(encryptedChunk, reconstructedKeyBinary, slice[index]['hash'], cipher, segmentIntegrityAlgorithm, specVersion);
557
593
  if (plainSegmentSize && result.payload.length() !== plainSegmentSize) {
558
594
  throw new errors_js_1.DecryptError(`incorrect segment size: found [${result.payload.length()}], expected [${plainSegmentSize}]`);
559
595
  }
@@ -592,8 +628,8 @@ async function decryptStreamFrom(cfg, { manifest, zipReader, centralDirectory })
592
628
  const keyForDecryption = await cfg.keyMiddleware(reconstructedKeyBinary);
593
629
  const encryptedSegmentSizeDefault = defaultSegmentSize || DEFAULT_SEGMENT_SIZE;
594
630
  // check if the TDF is a legacy TDF
595
- const specVersion = manifest.schemaVersion || manifest.tdf_spec_version;
596
- const isLegacyTDF = !specVersion || specVersion.startsWith('3.');
631
+ const specVersion = manifest.schemaVersion || manifest.tdf_spec_version || '4.2.2';
632
+ const isLegacyTDF = isTargetSpecLegacyTDF(specVersion);
597
633
  // Decode each hash and store it in an array of Uint8Array
598
634
  const segmentHashList = segments.map(({ hash }) => new Uint8Array(index_js_1.base64.decodeArrayBuffer(hash)));
599
635
  // Concatenate all segment hashes into a single Uint8Array
@@ -646,7 +682,7 @@ async function decryptStreamFrom(cfg, { manifest, zipReader, centralDirectory })
646
682
  throw new errors_js_1.UnsupportedFeatureError(`Unsupported segment hash alg [${segmentIntegrityAlg}]`);
647
683
  }
648
684
  // Not waiting for Promise to resolve
649
- updateChunkQueue(Array.from(chunkMap.values()), centralDirectory, zipReader, keyForDecryption, cipher, segmentIntegrityAlg, cfg.cryptoService, isLegacyTDF);
685
+ updateChunkQueue(Array.from(chunkMap.values()), centralDirectory, zipReader, keyForDecryption, cipher, segmentIntegrityAlg, cfg.cryptoService, specVersion);
650
686
  let progress = 0;
651
687
  const underlyingSource = {
652
688
  pull: async (controller) => {
@@ -673,4 +709,4 @@ async function concatenateUint8Array(uint8arrays) {
673
709
  const buffer = await blob.arrayBuffer();
674
710
  return new Uint8Array(buffer);
675
711
  }
676
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGRmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGRmMy9zcmMvdGRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdU1BLDhDQUtDO0FBRUQsMERBZUM7QUFlRCx3Q0FtQ0M7QUFFRCxvREFZQztBQXlERCxrQ0ErUEM7QUFTRCxzQ0FLQztBQUVELDBEQWdDQztBQXNPRCwwQ0FnREM7QUFFRCxnQ0FHQztBQUVELDhDQXVKQztBQXpqQ0QsK0JBQThDO0FBRTlDLG1EQU82QjtBQUM3QixvREFBeUU7QUFDekUsNkRBQTREO0FBQzVELDJEQUEyRDtBQUMzRCxtREFRNkI7QUFDN0Isb0ZBQThFO0FBQzlFLDhFQUF3RTtBQUN4RSx3RkFBa0Y7QUFHbEYscURBQXNEO0FBRXRELDREQUE4QztBQUM5QywyQ0FBcUM7QUFDckMsbUVBQTJEO0FBRzNELG9GQUE4RTtBQU85RSxnREFXMkI7QUFDM0IsNkRBQW1EO0FBQ25ELCtDQUErRTtBQUUvRSw4Q0FBNEM7QUFFNUMsMENBQTBDO0FBQzFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQW1EekMsU0FBUyxPQUFPO0lBQ2QsSUFBSSxHQUF1QixDQUFDO0lBQzVCLElBQUksTUFBOEIsQ0FBQztJQUVuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUNuRCxHQUFHLEdBQUcsT0FBTyxDQUFDO1FBQ2QsTUFBTSxHQUFHLFFBQVEsQ0FBQztJQUNwQixDQUFDLENBQWUsQ0FBQztJQUVqQixPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUksQ0FBQztJQUNuQixPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU8sQ0FBQztJQUV6QixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBd0VEOzs7R0FHRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsR0FB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
712
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGRmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGRmMy9zcmMvdGRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcU1BLDhDQUtDO0FBRUQsMERBZUM7QUFlRCx3Q0FtQ0M7QUFFRCxvREFZQztBQW1GRCxrQ0E0UkM7QUFTRCxzQ0FLQztBQUVELDBEQWdDQztBQXNPRCwwQ0FnREM7QUFFRCxnQ0FHQztBQUVELDhDQXVKQztBQTltQ0QsK0JBQThDO0FBRTlDLG1EQU82QjtBQUM3QixvREFBeUU7QUFDekUsNkRBQTREO0FBQzVELDJEQUEyRDtBQUMzRCxtREFRNkI7QUFDN0Isb0ZBQThFO0FBQzlFLDhFQUF3RTtBQUN4RSx3RkFBa0Y7QUFFbEYscURBQXNEO0FBRXRELDREQUE4QztBQUM5QywyQ0FBcUM7QUFDckMsbUVBQTJEO0FBRzNELG9GQUE4RTtBQU85RSxnREFXMkI7QUFDM0IsNkRBQW1EO0FBQ25ELCtDQUE2RjtBQUU3Riw4Q0FBNEM7QUFHNUMsMENBQTBDO0FBQzFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUV6QyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQThDbkMsU0FBUyxPQUFPO0lBQ2QsSUFBSSxHQUF1QixDQUFDO0lBQzVCLElBQUksTUFBOEIsQ0FBQztJQUVuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUNuRCxHQUFHLEdBQUcsT0FBTyxDQUFDO1FBQ2QsTUFBTSxHQUFHLFFBQVEsQ0FBQztJQUNwQixDQUFDLENBQWUsQ0FBQztJQUVqQixPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUksQ0FBQztJQUNuQixPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU8sQ0FBQztJQUV6QixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBeUVEOzs7R0FH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
@@ -1 +1 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../src/access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAWnD,MAAM,MAAM,aAAa,GAAG;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,aAAa,EAC1B,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC,CAmDzB;AAED,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,UAAU,CAAC;AAEhE,eAAO,MAAM,oBAAoB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,qBAErD,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAAI,GAAG,YAAY,KAAG,qBAqBlE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,GAAG,qBAAqB,KAAG,MAOlE,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IAEZ,2DAA2D;IAC3D,SAAS,EAAE,qBAAqB,CAAC;IAEjC,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAElB;;+CAE2C;IAC3C,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CACzB,CAAC;AAaF;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAErF;AAED,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,qBAAqB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CA2D3B;AAWD,qBAAa,eAAe;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;gBACN,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO;IAK9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAM7B"}
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../src/access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAWnD,MAAM,MAAM,aAAa,GAAG;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,aAAa,EAC1B,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC,CAkDzB;AAED,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,UAAU,CAAC;AAEhE,eAAO,MAAM,oBAAoB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,qBAErD,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAAI,GAAG,YAAY,KAAG,qBAqBlE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,GAAG,qBAAqB,KAAG,MAOlE,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IAEZ,2DAA2D;IAC3D,SAAS,EAAE,qBAAqB,CAAC;IAEjC,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAElB;;+CAE2C;IAC3C,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CACzB,CAAC;AAaF;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAErF;AAED,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,qBAAqB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CA2D3B;AAWD,qBAAa,eAAe;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;gBACN,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO;IAK9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAM7B"}
@@ -4,4 +4,5 @@ export { attributeFQNsAsValues } from './policy/api.js';
4
4
  export { version, clientType, tdfSpecVersion } from './version.js';
5
5
  export * from './opentdf.js';
6
6
  export * from './seekable.js';
7
+ export * from '../tdf3/src/models/index.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnE,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnE,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Client, NanoTDF } from './nanotdf/index.js';
2
- import { ClientConfig } from './nanotdf/Client.js';
2
+ import { type ClientConfig } from './nanotdf/Client.js';
3
3
  export type EncryptOptions = {
4
4
  ecdsaBinding: boolean;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"nanoclients.d.ts","sourceRoot":"","sources":["../../../src/nanoclients.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,OAAO,EAOR,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAOF;;;GAGG;AACH,qBAAa,aAAc,SAAQ,MAAM;IACvC;;;;;;OAMG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBzE;;;;;;OAMG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAoBlF;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;CAyD9F;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,oBAAqB,SAAQ,MAAM;IAG9C,MAAM,CAAC,QAAQ,CAAC,uBAAuB,WAAW;IAElD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,kBAAkB,CAAC,CAAa;IACxC,OAAO,CAAC,YAAY,CAAC,CAAY;IACjC,OAAO,CAAC,YAAY,CAAC,CAAY;IACjC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAU;IAE9B;;;;;;;;;;;OAWG;gBACS,IAAI,EAAE,aAAa;IAe/B;;;;;;OAMG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IA+E7F;;;;;;OAMG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBnE,gBAAgB,CAAC,OAAO,EAAE,OAAO;IAsBvC,UAAU,IAAI,UAAU;CAkCzB"}
1
+ {"version":3,"file":"nanoclients.d.ts","sourceRoot":"","sources":["../../../src/nanoclients.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,OAAO,EAOR,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAOF;;;GAGG;AACH,qBAAa,aAAc,SAAQ,MAAM;IACvC;;;;;;OAMG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBzE;;;;;;OAMG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAoBlF;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;CA6D9F;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,oBAAqB,SAAQ,MAAM;IAG9C,MAAM,CAAC,QAAQ,CAAC,uBAAuB,WAAW;IAElD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,kBAAkB,CAAC,CAAa;IACxC,OAAO,CAAC,YAAY,CAAC,CAAY;IACjC,OAAO,CAAC,YAAY,CAAC,CAAY;IACjC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAU;IAE9B;;;;;;;;;;;OAWG;gBACS,IAAI,EAAE,aAAa;IAe/B;;;;;;OAMG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAmF7F;;;;;;OAMG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBnE,gBAAgB,CAAC,OAAO,EAAE,OAAO;IAsBvC,UAAU,IAAI,UAAU;CAkCzB"}
@@ -43,6 +43,7 @@ export type CreateZTDFOptions = CreateOptions & {
43
43
  splitPlan?: SplitStep[];
44
44
  windowSize?: number;
45
45
  wrappingKeyAlgorithm?: KasPublicKeyAlgorithm;
46
+ tdfSpecVersion?: '4.2.2' | '4.3.0';
46
47
  };
47
48
  export type ReadOptions = {
48
49
  source: Source;
@@ -1 +1 @@
1
- {"version":3,"file":"opentdf.d.ts","sourceRoot":"","sources":["../../../src/opentdf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opentdf.d.ts","sourceRoot":"","sources":["../../../src/opentdf.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { type AttributeObject } from './AttributeObject.js';
2
- export declare class Policy {
1
+ import { type AttributeObject } from '../../tdf3/src/models/attribute.js';
2
+ import { type Policy } from '../../tdf3/src/models/policy.js';
3
+ export declare class PolicyBuilder {
3
4
  static CURRENT_VERSION: string;
4
5
  private uuidStr;
5
6
  private dataAttributesList;
@@ -18,6 +19,7 @@ export declare class Policy {
18
19
  * @param attribute will be added to the policy
19
20
  */
20
21
  addAttribute(attribute: AttributeObject): void;
22
+ toPolicy(): Policy;
21
23
  /**
22
24
  * Returns the JSON string of Policy object
23
25
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Policy.d.ts","sourceRoot":"","sources":["../../../../src/tdf/Policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,qBAAa,MAAM;IACjB,MAAM,CAAC,eAAe,SAAW;IAEjC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IASrC;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAI9C;;;;OAIG;IACH,MAAM,IAAI,MAAM;CASjB"}
1
+ {"version":3,"file":"Policy.d.ts","sourceRoot":"","sources":["../../../../src/tdf/Policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAE9D,qBAAa,aAAa;IACxB,MAAM,CAAC,eAAe,SAAW;IAEjC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IASrC;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAI9C,QAAQ,IAAI,MAAM;IAUlB;;;;OAIG;IACH,MAAM,IAAI,MAAM;CAGjB"}
@@ -42,7 +42,10 @@ export declare function verify(thiz: Assertion, aggregateHash: Uint8Array, key:
42
42
  /**
43
43
  * Creates an Assertion object with the specified properties.
44
44
  */
45
- export declare function CreateAssertion(aggregateHash: Uint8Array, assertionConfig: AssertionConfig): Promise<Assertion>;
45
+ /**
46
+ * Creates an Assertion object with the specified properties.
47
+ */
48
+ export declare function CreateAssertion(aggregateHash: Uint8Array | string, assertionConfig: AssertionConfig, tdfSpecVersion?: string): Promise<Assertion>;
46
49
  export type AssertionKey = {
47
50
  alg: AssertionKeyAlg;
48
51
  key: CryptoKey | Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../../../tdf3/src/assertions.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC;AACjD,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AACtC,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,aAAa,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC;AAGlC,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAKxD;AAiCD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAmBtE;AAED;;;;;;GAMG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,UAAU,EACzB,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,UAAU,EACzB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,SAAS,CAAC,CAuBpB;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,SAAS,GAAG,UAAU,CAAC;CAC7B,CAAC;AAIF,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACpC,CAAC"}
1
+ {"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../../../tdf3/src/assertions.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC;AACjD,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AACtC,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,aAAa,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC;AAGlC,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAKxD;AAiCD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAmBtE;AAED;;;;;;GAMG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,UAAU,EACzB,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;GAEG;AACH;;GAEG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,UAAU,GAAG,MAAM,EAClC,eAAe,EAAE,eAAe,EAChC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,SAAS,CAAC,CAyCpB;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,SAAS,GAAG,UAAU,CAAC;CAC7B,CAAC;AAIF,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACpC,CAAC"}
@@ -18,7 +18,7 @@ export declare class DecoratedReadableStream {
18
18
  constructor(underlyingSource: UnderlyingSource & {
19
19
  fileStreamServiceWorker?: string;
20
20
  });
21
- getMetadata(): Promise<Metadata | undefined>;
21
+ getMetadata(): Promise<unknown>;
22
22
  /**
23
23
  * Dump the stream content to a buffer. This will consume the stream.
24
24
  * @return the plaintext in Buffer form.
@@ -46,6 +46,7 @@ export type EncryptParams = {
46
46
  wrappingKeyAlgorithm?: KasPublicKeyAlgorithm;
47
47
  asHtml?: boolean;
48
48
  offline?: boolean;
49
+ tdfSpecVersion?: string;
49
50
  };
50
51
  /**
51
52
  * A builder capable of constructing the necessary parameters object for a
@@ -273,6 +274,7 @@ declare class EncryptParamsBuilder {
273
274
  wrappingKeyAlgorithm?: KasPublicKeyAlgorithm;
274
275
  asHtml?: boolean;
275
276
  offline?: boolean;
277
+ tdfSpecVersion?: string;
276
278
  }>;
277
279
  /**
278
280
  * Generate a parameters object in the form expected by <code>{@link EncryptParamsBuilder#build|build()}</code>.
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/client/builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/client/builders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Information about a data or entity attribute, its meaning and interpretation.
3
+ * While usually we just refer to an attribute by its URL,
4
+ * we often need to store additional information about it,
5
+ * for display or analysis.
6
+ */
7
+ export type AttributeObject = {
8
+ attribute: string;
9
+ displayName?: string;
10
+ isDefault?: boolean;
11
+ jwt?: string;
12
+ kasUrl?: string;
13
+ kid?: string;
14
+ pubKey?: string;
15
+ };
16
+ //# sourceMappingURL=attribute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribute.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/models/attribute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAE5B,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
@@ -1,4 +1,4 @@
1
- export * from './attribute-set.js';
1
+ export * from './attribute.js';
2
2
  export * from './encryption-information.js';
3
3
  export * from './key-access.js';
4
4
  export * from './manifest.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC"}
@@ -3,5 +3,6 @@ export type Payload = {
3
3
  url: string;
4
4
  protocol: string;
5
5
  isEncrypted: boolean;
6
+ mimeType?: string;
6
7
  };
7
8
  //# sourceMappingURL=payload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/models/payload.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC"}
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/models/payload.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AttributeObject } from './attribute-set.js';
1
+ import { type AttributeObject } from './attribute.js';
2
2
  export declare const CURRENT_VERSION = "1.1.0";
3
3
  export type PolicyBody = {
4
4
  dataAttributes: AttributeObject[];
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/models/policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG;IACvB,cAAc,EAAE,eAAe,EAAE,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,IAAI,MAAM,CAkBhF"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/models/policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG;IACvB,cAAc,EAAE,eAAe,EAAE,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,IAAI,MAAM,CAkBhF"}