@opentdf/sdk 0.3.2-beta.3 → 0.4.0-beta.14

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 (40) hide show
  1. package/dist/cjs/src/access.js +16 -1
  2. package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +15 -1
  3. package/dist/cjs/src/index.js +4 -2
  4. package/dist/cjs/src/opentdf.js +64 -12
  5. package/dist/cjs/src/platform.js +14 -3
  6. package/dist/cjs/src/seekable.js +32 -1
  7. package/dist/cjs/src/utils.js +57 -3
  8. package/dist/cjs/src/version.js +1 -1
  9. package/dist/types/src/access.d.ts +15 -0
  10. package/dist/types/src/access.d.ts.map +1 -1
  11. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts +14 -0
  12. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts.map +1 -1
  13. package/dist/types/src/index.d.ts +1 -0
  14. package/dist/types/src/index.d.ts.map +1 -1
  15. package/dist/types/src/opentdf.d.ts +126 -6
  16. package/dist/types/src/opentdf.d.ts.map +1 -1
  17. package/dist/types/src/platform.d.ts +16 -0
  18. package/dist/types/src/platform.d.ts.map +1 -1
  19. package/dist/types/src/seekable.d.ts +31 -0
  20. package/dist/types/src/seekable.d.ts.map +1 -1
  21. package/dist/types/src/utils.d.ts +56 -2
  22. package/dist/types/src/utils.d.ts.map +1 -1
  23. package/dist/types/src/version.d.ts +1 -1
  24. package/dist/web/src/access.js +16 -1
  25. package/dist/web/src/auth/oidc-refreshtoken-provider.js +15 -1
  26. package/dist/web/src/index.js +2 -1
  27. package/dist/web/src/opentdf.js +64 -12
  28. package/dist/web/src/platform.js +14 -3
  29. package/dist/web/src/seekable.js +32 -1
  30. package/dist/web/src/utils.js +57 -3
  31. package/dist/web/src/version.js +1 -1
  32. package/package.json +5 -3
  33. package/src/access.ts +15 -0
  34. package/src/auth/oidc-refreshtoken-provider.ts +14 -0
  35. package/src/index.ts +1 -0
  36. package/src/opentdf.ts +147 -71
  37. package/src/platform.ts +17 -5
  38. package/src/seekable.ts +31 -0
  39. package/src/utils.ts +56 -2
  40. package/src/version.ts +1 -1
@@ -44,15 +44,32 @@ function validateSecureUrl(url) {
44
44
  }
45
45
  return true;
46
46
  }
47
+ /**
48
+ * Pads a URL with a trailing slash if it does not already have one.
49
+ * This is useful for ensuring that URLs are in a consistent format.
50
+ * @param u The URL to pad.
51
+ * @returns The padded URL.
52
+ */
47
53
  function padSlashToUrl(u) {
48
54
  if (u.endsWith('/')) {
49
55
  return u;
50
56
  }
51
57
  return `${u}/`;
52
58
  }
59
+ /**
60
+ * Checks if the current environment is a browser.
61
+ * This is useful for determining if certain APIs or features are available.
62
+ * @returns true if running in a browser, false otherwise.
63
+ */
53
64
  function isBrowser() {
54
65
  return typeof window !== 'undefined'; // eslint-disable-line
55
66
  }
67
+ /**
68
+ * Removes trailing characters from a string.
69
+ * @param str The string to trim.
70
+ * @param suffix The suffix to remove (default is a single space).
71
+ * @returns The trimmed string.
72
+ */
56
73
  const rstrip = (str, suffix = ' ') => {
57
74
  while (str && suffix && str.endsWith(suffix)) {
58
75
  str = str.slice(0, -suffix.length);
@@ -96,6 +113,15 @@ const estimateSkewFromHeaders = (headers, dateNowBefore) => {
96
113
  return Math.round((deltaBefore + deltaAfter) / 2);
97
114
  };
98
115
  exports.estimateSkewFromHeaders = estimateSkewFromHeaders;
116
+ /**
117
+ * Adds new lines to a string every 64 characters.
118
+ * @param str A string to add new lines to.
119
+ * This function takes a string and adds new lines every 64 characters.
120
+ * If the string is empty or undefined, it returns the original string.
121
+ * This is useful for formatting long strings, such as public keys or certificates,
122
+ * to ensure they are properly formatted for PEM encoding.
123
+ * @returns The formatted string with new lines added.
124
+ */
99
125
  function addNewLines(str) {
100
126
  if (!str) {
101
127
  return str;
@@ -108,6 +134,11 @@ function addNewLines(str) {
108
134
  }
109
135
  return finalString;
110
136
  }
137
+ /**
138
+ * Creates a PEM-encoded string from a public key.
139
+ * @param publicKey The public key to convert.
140
+ * @returns A promise that resolves to a PEM-encoded string.
141
+ */
111
142
  async function cryptoPublicToPem(publicKey) {
112
143
  if (publicKey.type !== 'public') {
113
144
  throw new errors_js_1.ConfigurationError('incorrect key type');
@@ -117,6 +148,11 @@ async function cryptoPublicToPem(publicKey) {
117
148
  const pem = addNewLines(b64);
118
149
  return `-----BEGIN PUBLIC KEY-----\r\n${pem}-----END PUBLIC KEY-----`;
119
150
  }
151
+ /**
152
+ * Converts a PEM-encoded public key to a CryptoKey.
153
+ * @param pem The PEM-encoded public key.
154
+ * @returns A promise that resolves to a CryptoKey.
155
+ */
120
156
  async function pemToCryptoPublicKey(pem) {
121
157
  if (/-----BEGIN PUBLIC KEY-----/.test(pem)) {
122
158
  return (0, pemPublicToCrypto_js_1.pemPublicToCrypto)(pem);
@@ -129,6 +165,15 @@ async function pemToCryptoPublicKey(pem) {
129
165
  // - When converting between PEM and CryptoKey formats for user provided session keys (e.g. for DPoP)
130
166
  throw new TypeError(`unsupported pem type [${pem}]`);
131
167
  }
168
+ /**
169
+ * Extracts the PEM-encoded public key from a key string.
170
+ * @param keyString A string containing a public key or certificate.
171
+ * This function extracts the PEM-encoded public key from a given key string.
172
+ * If the key string contains a certificate, it imports the certificate and exports
173
+ * the public key in PEM format. If the key string is already in PEM format, it returns
174
+ * the key string as is.
175
+ * @returns A promise that resolves to a PEM-encoded public key.
176
+ */
132
177
  async function extractPemFromKeyString(keyString) {
133
178
  let pem = keyString;
134
179
  // Skip the public key extraction if we find that the KAS url provides a
@@ -141,6 +186,12 @@ async function extractPemFromKeyString(keyString) {
141
186
  }
142
187
  /**
143
188
  * Extracts the error message from an RPC catch error.
189
+ * @param error An error object, typically from a network request.
190
+ * This function extracts the error message from a ConnectError or a generic Error.
191
+ * If the error is a ConnectError or a standard Error, it returns the message.
192
+ * If the error is of an unknown type, it returns a default message indicating
193
+ * that an unknown network error occurred.
194
+ * @returns The extracted error message.
144
195
  */
145
196
  function extractRpcErrorMessage(error) {
146
197
  if (error instanceof connect_1.ConnectError || error instanceof Error) {
@@ -150,8 +201,11 @@ function extractRpcErrorMessage(error) {
150
201
  }
151
202
  /**
152
203
  * Converts a KAS endpoint URL to a platform URL.
153
- * If the KAS endpoint ends with '/kas', it returns the host url
154
- * Otherwise, it returns the original KAS endpoint.
204
+ * @param endpoint The KAS endpoint URL to extract the platform URL from.
205
+ * This function extracts the base URL from a KAS endpoint URL.
206
+ * It removes any trailing slashes and specific path segments related to rewrap or kas.
207
+ * This is useful for obtaining the base URL for further API requests.
208
+ * @returns The base URL of the platform.
155
209
  */
156
210
  function getPlatformUrlFromKasEndpoint(endpoint) {
157
211
  let result = endpoint || '';
@@ -166,4 +220,4 @@ function getPlatformUrlFromKasEndpoint(endpoint) {
166
220
  }
167
221
  return result;
168
222
  }
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUJBLDhDQWNDO0FBRUQsc0NBS0M7QUFFRCw4QkFFQztBQWdERCxrQ0FXQztBQUVELDhDQVNDO0FBRUQsb0RBVUM7QUFFRCwwREFXQztBQUtELHdEQUtDO0FBT0Qsc0VBWUM7QUExS0QsK0JBQThDO0FBRTlDLG1EQUE4QztBQUM5QyxnRkFBMkY7QUFDM0YsMkNBQWlEO0FBQ2pELGlEQUFtRDtBQUVuRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsR0FBVztJQUMzQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDN0IsSUFBSSx3REFBd0QsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2RSxPQUFPLENBQUMsSUFBSSxDQUFDLDhCQUE4QixHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7U0FBTSxJQUNMLHNEQUFzRCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDaEUseURBQXlELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUNuRSxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO1NBQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLHNFQUFzRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzVGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxDQUFTO0lBQ3JDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gs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
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUJBLDhDQWNDO0FBUUQsc0NBS0M7QUFPRCw4QkFFQztBQStERCxrQ0FXQztBQU9ELDhDQVNDO0FBT0Qsb0RBVUM7QUFXRCwwREFXQztBQVdELHdEQUtDO0FBVUQsc0VBWUM7QUFoT0QsK0JBQThDO0FBRTlDLG1EQUE4QztBQUM5QyxnRkFBMkY7QUFDM0YsMkNBQWlEO0FBQ2pELGlEQUFtRDtBQUVuRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsR0FBVztJQUMzQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDN0IsSUFBSSx3REFBd0QsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2RSxPQUFPLENBQUMsSUFBSSxDQUFDLDhCQUE4QixHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7U0FBTSxJQUNMLHNEQUFzRCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDaEUseURBQXlELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUNuRSxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO1NBQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLHNFQUFzRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzVGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLENBQVM7SUFDckMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEIsT0FBTyxD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
@@ -4,7 +4,7 @@ exports.tdfSpecVersion = exports.clientType = exports.version = void 0;
4
4
  /**
5
5
  * Exposes the released version number of the `@opentdf/sdk` package
6
6
  */
7
- exports.version = '0.3.2'; // x-release-please-version
7
+ exports.version = '0.4.0'; // x-release-please-version
8
8
  /**
9
9
  * A string name used to label requests as coming from this library client.
10
10
  */
@@ -34,6 +34,12 @@ export type KasPublicKeyInfo = {
34
34
  key: Promise<CryptoKey>;
35
35
  };
36
36
  export declare function noteInvalidPublicKey(url: URL, r: Promise<CryptoKey>): Promise<CryptoKey>;
37
+ /**
38
+ * Fetches the key access servers for a given platform URL.
39
+ * @param platformUrl The platform URL to fetch key access servers for.
40
+ * @param authProvider The authentication provider to use for the request.
41
+ * @returns A promise that resolves to an OriginAllowList.
42
+ */
37
43
  export declare function fetchKeyAccessServers(platformUrl: string, authProvider: AuthProvider): Promise<OriginAllowList>;
38
44
  /**
39
45
  * Fetch the EC (secp256r1) public key for a KAS endpoint.
@@ -52,6 +58,15 @@ export declare function fetchECKasPubKey(kasEndpoint: string): Promise<KasPublic
52
58
  * @returns The public key information.
53
59
  */
54
60
  export declare function fetchKasPubKey(kasEndpoint: string, algorithm?: KasPublicKeyAlgorithm): Promise<KasPublicKeyInfo>;
61
+ /**
62
+ * Manages a list of origins that are allowed to access the Key Access Server (KAS).
63
+ * @origins A list of origins that are allowed to access the KAS.
64
+ * @allowAll If true, all origins are allowed to access the KAS.
65
+ * If false, only the origins in the list are allowed to access the KAS.
66
+ * @description This class is used to manage a list of origins that are allowed to access the KAS.
67
+ * It validates the URLs and provides a method to check if a given URL is allowed.
68
+ * It is used to ensure that only authorized origins can access the KAS.
69
+ */
55
70
  export declare class OriginAllowList {
56
71
  origins: string[];
57
72
  allowAll: boolean;
@@ -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;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAa1D,MAAM,MAAM,aAAa,GAAG;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,cAAc,CAAC,CAYzB;AAED,MAAM,MAAM,qBAAqB,GAC7B,cAAc,GACd,cAAc,GACd,cAAc,GACd,UAAU,GACV,UAAU,CAAC;AAEf,eAAO,MAAM,oBAAoB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,qBAErD,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAAI,GAAG,SAAS,KAAG,qBA8B/D,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,GAAG,qBAAqB,KAAG,MAelE,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;AAEF,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAS9F;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAErF;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,qBAAqB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAW3B;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;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAa1D,MAAM,MAAM,aAAa,GAAG;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,cAAc,CAAC,CAYzB;AAED,MAAM,MAAM,qBAAqB,GAC7B,cAAc,GACd,cAAc,GACd,cAAc,GACd,UAAU,GACV,UAAU,CAAC;AAEf,eAAO,MAAM,oBAAoB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,qBAErD,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAAI,GAAG,SAAS,KAAG,qBA8B/D,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,GAAG,qBAAqB,KAAG,MAelE,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;AAEF,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAS9F;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAErF;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,qBAAqB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAW3B;AAWD;;;;;;;;GAQG;AACH,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,5 +1,19 @@
1
1
  import { type AuthProvider, type HttpRequest } from './auth.js';
2
2
  import { AccessToken, type RefreshTokenCredentials } from './oidc.js';
3
+ /**
4
+ * An AuthProvider that uses an OIDC refresh token to obtain an access token.
5
+ * It exchanges the refresh token for an access token and uses that to augment HTTP requests with credentials.
6
+ * @example
7
+ * ```ts
8
+ * import { OIDCRefreshTokenProvider } from '@opentdf/sdk';
9
+ * await AuthProviders.refreshAuthProvider({
10
+ clientId: 'my-client-id',
11
+ exchange: 'refresh',
12
+ refreshToken: 'refresh-token-from-oidc-provider',
13
+ oidcOrigin: 'https://example.oidc.provider.com',
14
+ });
15
+ ```
16
+ */
3
17
  export declare class OIDCRefreshTokenProvider implements AuthProvider {
4
18
  oidcAuth: AccessToken;
5
19
  refreshToken?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"oidc-refreshtoken-provider.d.ts","sourceRoot":"","sources":["../../../../src/auth/oidc-refreshtoken-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEtE,qBAAa,wBAAyB,YAAW,YAAY;IAC3D,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEV,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC;IAczE,qBAAqB,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAU5D"}
1
+ {"version":3,"file":"oidc-refreshtoken-provider.d.ts","sourceRoot":"","sources":["../../../../src/auth/oidc-refreshtoken-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAC3D,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEV,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC;IAczE,qBAAqB,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAU5D"}
@@ -2,6 +2,7 @@ export { type AuthProvider, type HttpMethod, HttpRequest, withHeaders } from './
2
2
  export * as AuthProviders from './auth/providers.js';
3
3
  export { attributeFQNsAsValues } from './policy/api.js';
4
4
  export { version, clientType, tdfSpecVersion } from './version.js';
5
+ export { PlatformClient, type PlatformClientOptions, type PlatformServices } from './platform.js';
5
6
  export * from './opentdf.js';
6
7
  export * from './seekable.js';
7
8
  export * from '../tdf3/src/models/index.js';
@@ -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;AAC9B,cAAc,6BAA6B,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,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClG,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC"}
@@ -11,77 +11,154 @@ import { type Segment, type SplitType, type EncryptionInformation } from '../tdf
11
11
  import { type KeyAccessObject } from '../tdf3/src/models/key-access.js';
12
12
  import { type IntegrityAlgorithm } from '../tdf3/src/tdf.js';
13
13
  export { type Assertion, type EncryptionInformation, type IntegrityAlgorithm, type KasPublicKeyAlgorithm, type KeyAccessObject, type Manifest, type Payload, type Segment, type SplitType, isPublicKeyAlgorithm, };
14
+ /** A map of key identifiers to cryptographic keys. */
14
15
  export type Keys = {
15
16
  [keyID: string]: CryptoKey | CryptoKeyPair;
16
17
  };
18
+ /** Options for creating a new TDF object, shared between all container types. */
17
19
  export type CreateOptions = {
20
+ /** If the policy service should be used to control creation options. */
18
21
  autoconfigure?: boolean;
22
+ /** List of attributes that will be assigned to the object's policy. */
19
23
  attributes?: string[];
24
+ /**
25
+ * If set and positive, this represents the maxiumum number of bytes to read from a stream to encrypt.
26
+ * This is helpful for enforcing size limits and preventing DoS attacks.
27
+ */
20
28
  byteLimit?: number;
29
+ /** The KAS to use for creation, if none is specified by the attribute service. */
21
30
  defaultKASEndpoint?: string;
31
+ /** Private (or shared) keys for signing assertions and bindings. */
22
32
  signers?: Keys;
33
+ /** Source of plaintext data. */
23
34
  source: Source;
24
35
  };
36
+ /** Options for creating a NanoTDF. */
25
37
  export type CreateNanoTDFOptions = CreateOptions & {
38
+ /** The type of binding to use for the NanoTDF. */
26
39
  bindingType?: 'ecdsa' | 'gmac';
40
+ /** When creating a new collection, use ECDSA binding with this key id from the signers, instead of the DEK. */
27
41
  ecdsaBindingKeyID?: string;
42
+ /**
43
+ * When creating a new collection, use the key in the `signers` list with this id
44
+ * to generate a signature for each element. When absent, the nanotdf is unsigned.
45
+ */
28
46
  signingKeyID?: string;
29
47
  };
48
+ /** Options for creating a NanoTDF collection. */
30
49
  export type CreateNanoTDFCollectionOptions = CreateNanoTDFOptions & {
50
+ /** The platform URL. */
31
51
  platformUrl: string;
52
+ /** The maximum number of key iterations to use for a single DEK. */
32
53
  maxKeyIterations?: number;
33
54
  };
55
+ /** Metadata for a TDF object. */
34
56
  export type Metadata = object;
57
+ /** MIME type of the decrypted content. */
35
58
  export type MimeType = `${string}/${string}`;
59
+ /** Template for a Key Access Object (KAO) to be filled in during encrypt. */
36
60
  export type SplitStep = {
61
+ /** Which KAS to use to rewrap this segment of the key. */
37
62
  kas: string;
63
+ /**
64
+ * An identifier for a key segment.
65
+ * Leave empty to share the key.
66
+ */
38
67
  sid?: string;
39
68
  };
69
+ /** Options specific to the ZTDF container format. */
40
70
  export type CreateZTDFOptions = CreateOptions & {
71
+ /** Configuration for bound metadata. */
41
72
  assertionConfigs?: AssertionConfig[];
73
+ /** Unbound metadata (deprecated). */
42
74
  metadata?: Metadata;
75
+ /** MIME type of the decrypted content. Used for display. */
43
76
  mimeType?: MimeType;
77
+ /** How to split or share the data encryption key across multiple KASes. */
44
78
  splitPlan?: SplitStep[];
79
+ /**
80
+ * The segment size for the content; smaller is slower, but allows faster random access.
81
+ * The current default is 1 MiB (2^20 bytes).
82
+ */
45
83
  windowSize?: number;
84
+ /** Preferred algorithm to use for Key Access Objects. */
46
85
  wrappingKeyAlgorithm?: KasPublicKeyAlgorithm;
86
+ /** TDF spec version to target. */
47
87
  tdfSpecVersion?: '4.2.2' | '4.3.0';
48
88
  };
89
+ /** Settings for decrypting any variety of TDF file. */
49
90
  export type ReadOptions = {
91
+ /** The ciphertext source. */
50
92
  source: Source;
93
+ /** The platform URL. */
51
94
  platformUrl?: string;
95
+ /** List of KASes that may be contacted for a rewrap. */
52
96
  allowedKASEndpoints?: string[];
97
+ /** Optionally disable checking the allowlist. */
53
98
  ignoreAllowlist?: boolean;
99
+ /** Public (or shared) keys for verifying assertions. */
54
100
  assertionVerificationKeys?: AssertionVerificationKeys;
101
+ /** Optionally disable assertion verification. */
55
102
  noVerify?: boolean;
103
+ /** If set, prevents more than this number of concurrent requests to the KAS. */
56
104
  concurrencyLimit?: number;
105
+ /** Type of key to use for wrapping responses. */
57
106
  wrappingKeyAlgorithm?: KasPublicKeyAlgorithm;
58
107
  };
108
+ /** Defaults and shared settings that are relevant to creating TDF objects. */
59
109
  export type OpenTDFOptions = {
110
+ /** Policy service endpoint. */
60
111
  policyEndpoint?: string;
112
+ /** Platform URL. */
61
113
  platformUrl?: string;
114
+ /** Auth provider for connections to the policy service and KASes. */
62
115
  authProvider: AuthProvider;
116
+ /** Default settings for 'encrypt' type requests. */
63
117
  defaultCreateOptions?: Omit<CreateOptions, 'source'>;
118
+ /** Default settings for 'decrypt' type requests. */
64
119
  defaultReadOptions?: Omit<ReadOptions, 'source'>;
120
+ /** If we want to *not* send a DPoP token. */
65
121
  disableDPoP?: boolean;
122
+ /**
123
+ * Optional keys for DPoP requests to a server.
124
+ * These often must be registered via a DPoP flow with the IdP
125
+ * which is out of the scope of this library.
126
+ */
66
127
  dpopKeys?: Promise<CryptoKeyPair>;
128
+ /** Configuration options for the collection header cache. */
67
129
  rewrapCacheOptions?: RewrapCacheOptions;
68
130
  };
131
+ /** A decorated readable stream. */
69
132
  export type DecoratedStream = ReadableStream<Uint8Array> & {
133
+ /** If the source is a TDF3/ZTDF, and includes metadata, and it has been read. */
70
134
  metadata?: Promise<unknown>;
135
+ /** The TDF manifest. */
71
136
  manifest?: Promise<Manifest>;
137
+ /** If the source is a NanoTDF, this will be set. */
72
138
  header?: Header;
73
139
  };
140
+ /** Configuration options for the collection header cache. */
74
141
  export type RewrapCacheOptions = {
142
+ /** If we should disable (bypass) the cache. */
75
143
  bypass?: boolean;
144
+ /** Evict keys after this many milliseconds. */
76
145
  maxAge?: number;
146
+ /** Check for expired keys once every this many milliseconds. */
77
147
  pollInterval?: number;
78
148
  };
149
+ /**
150
+ * Cache for headers of nanotdf collections, to quickly open multiple entries of the same collection.
151
+ * It has a demon that removes all keys that have not been accessed in the last 5 minutes.
152
+ * To cancel the demon, and clear the cache, call `close()`.
153
+ * */
79
154
  export declare class RewrapCache {
80
155
  private cache?;
81
156
  private closer?;
82
157
  constructor(opts?: RewrapCacheOptions);
83
158
  get(key: Uint8Array): CryptoKey | undefined;
159
+ /** Set a key in the cache. */
84
160
  set(key: Uint8Array, value: CryptoKey): void;
161
+ /** Close the cache and release any resources. */
85
162
  close(): void;
86
163
  }
87
164
  /**
@@ -105,35 +182,78 @@ export type TDFReader = {
105
182
  */
106
183
  attributes: () => Promise<string[]>;
107
184
  };
185
+ /**
186
+ * The main OpenTDF class that provides methods for creating and reading TDF files.
187
+ * It supports both NanoTDF and ZTDF formats.
188
+ * It can be used to create new TDF files and read existing ones.
189
+ * This class is the entry point for using the OpenTDF SDK.
190
+ * It requires an authentication provider to be passed in the constructor.
191
+ * It also requires a platform URL to be set, which is used to fetch key access servers and policies.
192
+ * @example
193
+ * ```
194
+ * import { type Chunker, OpenTDF } from '@opentdf/sdk';
195
+ *
196
+ * const oidcCredentials: RefreshTokenCredentials = {
197
+ * clientId: keycloakClientId,
198
+ * exchange: 'refresh',
199
+ * refreshToken: refreshToken,
200
+ * oidcOrigin: keycloakUrl,
201
+ * };
202
+ * const authProvider = await AuthProviders.refreshAuthProvider(oidcCredentials);
203
+ *
204
+ * const client = new OpenTDF({
205
+ * authProvider,
206
+ * platformUrl: 'https://platform.example.com',
207
+ * });
208
+ *
209
+ * const cipherText = await client.createZTDF({
210
+ * source: { type: 'stream', location: source },
211
+ * autoconfigure: false,
212
+ * });
213
+ *
214
+ * const clearText = await client.read({ type: 'stream', location: cipherText });
215
+ * ```
216
+ */
108
217
  export declare class OpenTDF {
218
+ /** The platform URL */
109
219
  readonly platformUrl: string;
220
+ /** The policy service endpoint */
110
221
  readonly policyEndpoint: string;
222
+ /** The auth provider for the OpenTDF instance. */
111
223
  readonly authProvider: AuthProvider;
224
+ /** If DPoP is enabled for this instance. */
112
225
  readonly dpopEnabled: boolean;
226
+ /** Default options for creating TDF objects. */
113
227
  defaultCreateOptions: Omit<CreateOptions, 'source'>;
228
+ /** Default options for reading TDF objects. */
114
229
  defaultReadOptions: Omit<ReadOptions, 'source'>;
230
+ /** The DPoP keys for this instance, if any. */
115
231
  readonly dpopKeys: Promise<CryptoKeyPair>;
232
+ /** Cache for rewrapped keys */
116
233
  private readonly rewrapCache;
234
+ /** The TDF3 client for encrypting and decrypting ZTDF files. */
117
235
  readonly tdf3Client: TDF3Client;
118
236
  constructor({ authProvider, dpopKeys, defaultCreateOptions, defaultReadOptions, disableDPoP, policyEndpoint, rewrapCacheOptions, platformUrl, }: OpenTDFOptions);
237
+ /** Creates a new NanoTDF stream. */
119
238
  createNanoTDF(opts: CreateNanoTDFOptions): Promise<DecoratedStream>;
120
239
  /**
121
240
  * Creates a new collection object, which can be used to encrypt a series of data with the same policy.
122
- * @returns
123
241
  */
124
242
  createNanoTDFCollection(opts: CreateNanoTDFCollectionOptions): Promise<NanoTDFCollectionWriter>;
243
+ /** Creates a new ZTDF stream. */
125
244
  createZTDF(opts: CreateZTDFOptions): Promise<DecoratedStream>;
126
- /**
127
- * Opens a TDF file for inspection and decryption.
128
- * @param opts the file to open, and any appropriate configuration options
129
- * @returns
130
- */
245
+ /** Opens a TDF file for inspection and decryption. */
131
246
  open(opts: ReadOptions): TDFReader;
247
+ /** Decrypts a TDF file. */
132
248
  read(opts: ReadOptions): Promise<DecoratedStream>;
249
+ /** Closes the OpenTDF instance and releases any resources. */
133
250
  close(): void;
134
251
  }
252
+ /** A writer for NanoTDF collections. */
135
253
  export type NanoTDFCollectionWriter = {
254
+ /** The NanoTDF client used for encrypting data in this collection. */
136
255
  encrypt: (source: Source) => Promise<ReadableStream<Uint8Array>>;
256
+ /** Closes the collection and releases any resources. */
137
257
  close: () => Promise<void>;
138
258
  };
139
259
  //# sourceMappingURL=opentdf.d.ts.map
@@ -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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"}
@@ -27,8 +27,11 @@ export interface PlatformServices {
27
27
  wellknown: Client<typeof WellKnownService>;
28
28
  }
29
29
  export interface PlatformClientOptions {
30
+ /** Optional authentication provider for generating auth interceptor. */
30
31
  authProvider?: AuthProvider;
32
+ /** Array of custom interceptors to apply to rpc requests. */
31
33
  interceptors?: Interceptor[];
34
+ /** Base URL of the platform API. */
32
35
  platformUrl: string;
33
36
  }
34
37
  /**
@@ -40,7 +43,20 @@ export interface PlatformClientOptions {
40
43
  *
41
44
  * This client supports authentication via an `AuthProvider` or custom interceptors, which can
42
45
  * be used to add authentication headers or other custom logic to outgoing requests.
46
+ * @example
47
+ * ```
48
+ * import { AuthProviders, OpenTDF } from '@opentdf/sdk';
49
+ * import { PlatformClient } from '@opentdf/sdk/platform';
43
50
  *
51
+ * const authProvider: AuthProvider = await AuthProviders.refreshAuthProvider({...});
52
+ * const platform = new PlatformClient({
53
+ * authProvider,
54
+ * platformUrl: 'https://platform.example.com',
55
+ * });
56
+ *
57
+ * const wellKnownResponse = await platform.v1.wellknown.getWellKnownConfiguration({});
58
+ * console.log('Well-known configuration:', wellKnownResponse.configuration);
59
+ * ```
44
60
  */
45
61
  export declare class PlatformClient {
46
62
  readonly v1: PlatformServices;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../src/platform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,eAAe,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAgB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iEAAiE,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,8BAA8B,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACnD,gBAAgB,EAAE,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;IACzD,MAAM,EAAE,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC7C,uBAAuB,EAAE,MAAM,CAAC,OAAO,8BAA8B,CAAC,CAAC;IACvE,SAAS,EAAE,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC3C,eAAe,EAAE,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACvD,cAAc,EAAE,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,qBAAqB;IAEpC,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAE7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,EAAE,EAAE,gBAAgB,CAAC;gBAElB,OAAO,EAAE,qBAAqB;CA+B3C"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../src/platform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,eAAe,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAgB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iEAAiE,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,8BAA8B,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACnD,gBAAgB,EAAE,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;IACzD,MAAM,EAAE,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC7C,uBAAuB,EAAE,MAAM,CAAC,OAAO,8BAA8B,CAAC,CAAC;IACvE,SAAS,EAAE,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC3C,eAAe,EAAE,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACvD,cAAc,EAAE,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,qBAAa,cAAc;IACzB,QAAQ,CAAC,EAAE,EAAE,gBAAgB,CAAC;gBAElB,OAAO,EAAE,qBAAqB;CA+B3C"}
@@ -29,10 +29,41 @@ export type Source = {
29
29
  * @param fileRef the browser file data
30
30
  */
31
31
  export declare const fromBrowserFile: (fileRef: Blob) => Chunker;
32
+ /**
33
+ * Creates a seekable object from a buffer.
34
+ * @param source A Uint8Array to read from.
35
+ * If byteStart and byteEnd are not provided, reads the entire array.
36
+ * If byteStart is provided, reads from that index to the end of the array.
37
+ * If byteEnd is provided, reads from byteStart to byteEnd (exclusive).
38
+ * If both byteStart and byteEnd are provided, reads from byteStart to byteEnd (exclusive).
39
+ * @returns A promise that resolves to a Uint8Array containing the requested data.
40
+ */
32
41
  export declare const fromBuffer: (source: Uint8Array) => Chunker;
42
+ /**
43
+ * Creates a seekable object from a string.
44
+ * @param source A string to read from.
45
+ * If byteStart and byteEnd are not provided, reads the entire string.
46
+ * If byteStart is provided, reads from that index to the end of the string.
47
+ * If byteEnd is provided, reads from byteStart to byteEnd (exclusive).
48
+ * If both byteStart and byteEnd are provided, reads from byteStart to byteEnd (exclusive).
49
+ * @returns A promise that resolves to a Uint8Array containing the requested data.
50
+ */
33
51
  export declare const fromString: (source: string) => Chunker;
34
52
  export declare const fromUrl: (location: string) => Promise<Chunker>;
53
+ /**
54
+ * Creates a seekable object from a source.
55
+ * @param source A Source object containing the type and location of the data.
56
+ * @returns A promise that resolves to a Chunker function.
57
+ * @throws ConfigurationError if the source type is not supported or the location is invalid.
58
+ */
35
59
  export declare const fromSource: ({ type, location }: Source) => Promise<Chunker>;
60
+ /**
61
+ * Converts a Source object to a ReadableStream.
62
+ * @param source A Source object containing the type and location of the data.
63
+ * Converts the source to a ReadableStream of Uint8Array.
64
+ * This is useful for streaming data from various sources like files, remote URLs, or chunkers.
65
+ * @returns A ReadableStream of Uint8Array.
66
+ */
36
67
  export declare function sourceToStream(source: Source): Promise<ReadableStream<Uint8Array>>;
37
68
  export declare const fromDataSource: ({ type, location }: Source) => Promise<Chunker>;
38
69
  export type DataSource = Source;
@@ -1 +1 @@
1
- {"version":3,"file":"seekable.d.ts","sourceRoot":"","sources":["../../../src/seekable.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAEpF;;GAEG;AACH,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,UAAU,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CAAE,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,IAAI,KAAG,OAS/C,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,UAAU,KAAG,OAI/C,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,OAE3C,CAAC;AAqDF,eAAO,MAAM,OAAO,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAc/D,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,oBAAoB,MAAM,KAAG,OAAO,CAAC,OAAO,CA2B5E,CAAC;AAEF,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAgCxF;AAGD,eAAO,MAAM,cAAc,uBAhE0B,MAAM,KAAG,OAAO,CAAC,OAAO,CAgErC,CAAC;AAGzC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"seekable.d.ts","sourceRoot":"","sources":["../../../src/seekable.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAEpF;;GAEG;AACH,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,UAAU,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CAAE,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,IAAI,KAAG,OAS/C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,UAAU,KAAG,OAI/C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,OAE3C,CAAC;AAqDF,eAAO,MAAM,OAAO,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAc/D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAU,oBAAoB,MAAM,KAAG,OAAO,CAAC,OAAO,CA2B5E,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAgCxF;AAGD,eAAO,MAAM,cAAc,uBAvE0B,MAAM,KAAG,OAAO,CAAC,OAAO,CAuErC,CAAC;AAGzC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC"}