@opentdf/sdk 0.4.0-beta.13 → 0.4.0-beta.15
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/cjs/src/access.js +16 -1
- package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +15 -1
- package/dist/cjs/src/index.js +4 -2
- package/dist/cjs/src/opentdf.js +64 -12
- package/dist/cjs/src/platform.js +14 -3
- package/dist/cjs/src/seekable.js +32 -1
- package/dist/cjs/src/utils.js +57 -3
- package/dist/types/src/access.d.ts +15 -0
- package/dist/types/src/access.d.ts.map +1 -1
- package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts +14 -0
- package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/opentdf.d.ts +126 -6
- package/dist/types/src/opentdf.d.ts.map +1 -1
- package/dist/types/src/platform.d.ts +16 -0
- package/dist/types/src/platform.d.ts.map +1 -1
- package/dist/types/src/seekable.d.ts +31 -0
- package/dist/types/src/seekable.d.ts.map +1 -1
- package/dist/types/src/utils.d.ts +56 -2
- package/dist/types/src/utils.d.ts.map +1 -1
- package/dist/web/src/access.js +16 -1
- package/dist/web/src/auth/oidc-refreshtoken-provider.js +15 -1
- package/dist/web/src/index.js +2 -1
- package/dist/web/src/opentdf.js +64 -12
- package/dist/web/src/platform.js +14 -3
- package/dist/web/src/seekable.js +32 -1
- package/dist/web/src/utils.js +57 -3
- package/package.json +5 -3
- package/src/access.ts +15 -0
- package/src/auth/oidc-refreshtoken-provider.ts +14 -0
- package/src/index.ts +1 -0
- package/src/opentdf.ts +147 -71
- package/src/platform.ts +17 -5
- package/src/seekable.ts +31 -0
- package/src/utils.ts +56 -2
package/dist/cjs/src/utils.js
CHANGED
|
@@ -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
|
-
*
|
|
154
|
-
*
|
|
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,
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUJBLDhDQWNDO0FBUUQsc0NBS0M7QUFPRCw4QkFFQztBQStERCxrQ0FXQztBQU9ELDhDQVNDO0FBT0Qsb0RBVUM7QUFXRCwwREFXQztBQVdELHdEQUtDO0FBVUQsc0VBWUM7QUFoT0QsK0JBQThDO0FBRTlDLG1EQUE4QztBQUM5QyxnRkFBMkY7QUFDM0YsMkNBQWlEO0FBQ2pELGlEQUFtRDtBQUVuRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsR0FBVztJQUMzQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDN0IsSUFBSSx3REFBd0QsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2RSxPQUFPLENBQUMsSUFBSSxDQUFDLDhCQUE4QixHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7U0FBTSxJQUNMLHNEQUFzRCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDaEUseURBQXlELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUNuRSxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO1NBQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLHNFQUFzRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzVGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLENBQVM7SUFDckMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEIsT0FBTyxD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
|
|
@@ -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":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAInE,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAuC,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,KAAK,SAAS,EACd,eAAe,EACf,yBAAyB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,qBAAqB,EAG1B,oBAAoB,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC3B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,oBAAoB,GACrB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;CAC5C,CAAC;
|
|
1
|
+
{"version":3,"file":"opentdf.d.ts","sourceRoot":"","sources":["../../../src/opentdf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAInE,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAuC,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,KAAK,SAAS,EACd,eAAe,EACf,yBAAyB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,qBAAqB,EAG1B,oBAAoB,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC3B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,oBAAoB,GACrB,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;CAC5C,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG;IAC1B,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,oEAAoE;IACpE,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sCAAsC;AACtC,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,kDAAkD;IAClD,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE/B,+GAA+G;IAC/G,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,8BAA8B,GAAG,oBAAoB,GAAG;IAClE,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,iCAAiC;AACjC,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,0CAA0C;AAC1C,MAAM,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAE7C,6EAA6E;AAC7E,MAAM,MAAM,SAAS,GAAG;IACtB,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IAErC,qCAAqC;IACrC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yDAAyD;IACzD,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAE7C,kCAAkC;IAClC,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACpC,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,WAAW,GAAG;IACxB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,iDAAiD;IACjD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wDAAwD;IACxD,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;CAC9C,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG;IAC3B,+BAA+B;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qEAAqE;IACrE,YAAY,EAAE,YAAY,CAAC;IAE3B,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAErD,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEjD,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAElC,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,CAAC;AAEF,mCAAmC;AACnC,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG;IACzD,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAQF;;;;KAIK;AACL,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAC,CAAgE;IAC9E,OAAO,CAAC,MAAM,CAAC,CAAiC;gBACpC,IAAI,CAAC,EAAE,kBAAkB;IAoBrC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;IAY3C,8BAA8B;IAC9B,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS;IAOrC,iDAAiD;IACjD,KAAK;CAON;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IACxC;;OAEG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElC;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACrC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,OAAO;IAClB,uBAAuB;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,gDAAgD;IAChD,oBAAoB,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACpD,+CAA+C;IAC/C,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAChD,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1C,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,gEAAgE;IAChE,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;gBAEpB,EACV,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,WAAW,GACZ,EAAE,cAAc;IAkCjB,oCAAoC;IAC9B,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBzE;;OAEG;IACG,uBAAuB,CAC3B,IAAI,EAAE,8BAA8B,GACnC,OAAO,CAAC,uBAAuB,CAAC;IAKnC,iCAAiC;IAC3B,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAwBnE,sDAAsD;IACtD,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS;IAKlC,2BAA2B;IACrB,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAKvD,8DAA8D;IAC9D,KAAK;CAGN;AAsQD,wCAAwC;AACxC,MAAM,MAAM,uBAAuB,GAAG;IACpC,sEAAsE;IACtE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,wDAAwD;IACxD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC"}
|
|
@@ -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;
|
|
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,
|
|
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"}
|