@opentdf/sdk 0.13.0-beta.122 → 0.13.0-beta.123

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 (52) hide show
  1. package/README.md +60 -10
  2. package/dist/cjs/src/access/access-rpc.js +6 -5
  3. package/dist/cjs/src/access.js +18 -5
  4. package/dist/cjs/src/auth/interceptors.js +186 -0
  5. package/dist/cjs/src/index.js +6 -2
  6. package/dist/cjs/src/opentdf.js +40 -32
  7. package/dist/cjs/src/platform.js +3 -46
  8. package/dist/cjs/src/policy/api.js +9 -5
  9. package/dist/cjs/src/policy/discovery.js +10 -9
  10. package/dist/cjs/tdf3/src/client/index.js +35 -17
  11. package/dist/cjs/tdf3/src/tdf.js +8 -7
  12. package/dist/types/src/access/access-rpc.d.ts +3 -3
  13. package/dist/types/src/access/access-rpc.d.ts.map +1 -1
  14. package/dist/types/src/access.d.ts +3 -3
  15. package/dist/types/src/access.d.ts.map +1 -1
  16. package/dist/types/src/auth/interceptors.d.ts +99 -0
  17. package/dist/types/src/auth/interceptors.d.ts.map +1 -0
  18. package/dist/types/src/index.d.ts +1 -0
  19. package/dist/types/src/index.d.ts.map +1 -1
  20. package/dist/types/src/opentdf.d.ts +18 -15
  21. package/dist/types/src/opentdf.d.ts.map +1 -1
  22. package/dist/types/src/platform.d.ts +6 -3
  23. package/dist/types/src/platform.d.ts.map +1 -1
  24. package/dist/types/src/policy/api.d.ts +3 -3
  25. package/dist/types/src/policy/api.d.ts.map +1 -1
  26. package/dist/types/src/policy/discovery.d.ts +5 -5
  27. package/dist/types/src/policy/discovery.d.ts.map +1 -1
  28. package/dist/types/tdf3/src/client/index.d.ts +10 -1
  29. package/dist/types/tdf3/src/client/index.d.ts.map +1 -1
  30. package/dist/types/tdf3/src/tdf.d.ts +5 -2
  31. package/dist/types/tdf3/src/tdf.d.ts.map +1 -1
  32. package/dist/web/src/access/access-rpc.js +6 -5
  33. package/dist/web/src/access.js +18 -5
  34. package/dist/web/src/auth/interceptors.js +142 -0
  35. package/dist/web/src/index.js +2 -1
  36. package/dist/web/src/opentdf.js +40 -32
  37. package/dist/web/src/platform.js +3 -46
  38. package/dist/web/src/policy/api.js +9 -5
  39. package/dist/web/src/policy/discovery.js +10 -9
  40. package/dist/web/tdf3/src/client/index.js +35 -17
  41. package/dist/web/tdf3/src/tdf.js +8 -7
  42. package/package.json +1 -1
  43. package/src/access/access-rpc.ts +5 -5
  44. package/src/access.ts +29 -13
  45. package/src/auth/interceptors.ts +197 -0
  46. package/src/index.ts +10 -0
  47. package/src/opentdf.ts +54 -34
  48. package/src/platform.ts +8 -52
  49. package/src/policy/api.ts +8 -5
  50. package/src/policy/discovery.ts +9 -9
  51. package/tdf3/src/client/index.ts +46 -17
  52. package/tdf3/src/tdf.ts +14 -11
@@ -38,6 +38,7 @@ exports.PlatformClient = exports.platformConnect = exports.platformConnectWeb =
38
38
  exports.platformConnectWeb = __importStar(require("@connectrpc/connect-web"));
39
39
  exports.platformConnect = __importStar(require("@connectrpc/connect"));
40
40
  const connect_web_1 = require("@connectrpc/connect-web");
41
+ const interceptors_js_1 = require("./auth/interceptors.js");
41
42
  const connect_1 = require("@connectrpc/connect");
42
43
  const wellknown_configuration_pb_js_1 = require("./platform/wellknownconfiguration/wellknown_configuration_pb.js");
43
44
  const authorization_pb_js_1 = require("./platform/authorization/authorization_pb.js");
@@ -82,8 +83,7 @@ class PlatformClient {
82
83
  constructor(options) {
83
84
  const interceptors = [];
84
85
  if (options.authProvider) {
85
- const authInterceptor = createAuthInterceptor(options.authProvider);
86
- interceptors.push(authInterceptor);
86
+ interceptors.push((0, interceptors_js_1.authProviderInterceptor)(options.authProvider));
87
87
  }
88
88
  if (options.interceptors?.length) {
89
89
  interceptors.push(...options.interceptors);
@@ -114,47 +114,4 @@ class PlatformClient {
114
114
  }
115
115
  }
116
116
  exports.PlatformClient = PlatformClient;
117
- /**
118
- * Creates an interceptor that adds authentication headers to outgoing requests.
119
- *
120
- * This function uses the provided `AuthProvider` to generate authentication credentials
121
- * for each request. The `AuthProvider` is expected to implement a `withCreds` method
122
- * that returns an object containing authentication headers. These headers are then
123
- * added to the request before it is sent to the server.
124
- *
125
- */
126
- function createAuthInterceptor(authProvider) {
127
- const authInterceptor = (next) => async (req) => {
128
- const url = new URL(req.url);
129
- const pathOnly = url.pathname;
130
- // Signs only the path of the url in the request
131
- let token;
132
- try {
133
- token = await authProvider.withCreds({
134
- url: pathOnly,
135
- method: 'POST',
136
- // Start with any headers Connect already has
137
- headers: {
138
- ...Object.fromEntries(req.header.entries()),
139
- 'Content-Type': 'application/json',
140
- },
141
- });
142
- }
143
- catch (err) {
144
- const msg = err instanceof Error ? err.message : String(err);
145
- if (msg.includes('public key') || msg.includes('updateClientPublicKey')) {
146
- throw new Error('PlatformClient: DPoP key binding is not complete. ' +
147
- 'If you are using OpenTDF with PlatformClient, create OpenTDF first and ' +
148
- '`await client.ready` before constructing PlatformClient. ' +
149
- `Original error: ${msg}`);
150
- }
151
- throw err;
152
- }
153
- Object.entries(token.headers).forEach(([key, value]) => {
154
- req.header.set(key, value);
155
- });
156
- return await next(req);
157
- };
158
- return authInterceptor;
159
- }
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGxhdGZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLDhFQUE4RDtBQUM5RCx1RUFBdUQ7QUFFdkQseURBQWlFO0FBR2pFLGlEQUF3RTtBQUN4RSxtSEFBbUc7QUFDbkcsc0ZBQW9GO0FBQ3BGLHlGQUFpSDtBQUNqSCxpR0FBOEY7QUFDOUYsd0RBQXlEO0FBQ3pELDJFQUF3RTtBQUN4RSxvRkFBa0Y7QUFDbEYscUhBQWdIO0FBQ2hILCtGQUE0RjtBQUM1Rix1RkFBK0Y7QUFDL0Ysb0ZBQWlGO0FBQ2pGLGlIQUE4RztBQUM5RyxxR0FBa0c7QUFDbEcsa0dBQStGO0FBQy9GLHdFQUFzRTtBQWdDdEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBRUgsTUFBYSxjQUFjO0lBSXpCLFlBQVksT0FBOEI7UUFDeEMsTUFBTSxZQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUV2QyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN6QixNQUFNLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEUsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUEsb0NBQXNCLEVBQUM7WUFDdkMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQzVCLFlBQVk7U0FDYixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsRUFBRSxHQUFHO1lBQ1IsYUFBYSxFQUFFLElB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
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGxhdGZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLDhFQUE4RDtBQUM5RCx1RUFBdUQ7QUFFdkQseURBQWlFO0FBRWpFLDREQUFpRTtBQUVqRSxpREFBd0U7QUFDeEUsbUhBQW1HO0FBQ25HLHNGQUFvRjtBQUNwRix5RkFBaUg7QUFDakgsaUdBQThGO0FBQzlGLHdEQUF5RDtBQUN6RCwyRUFBd0U7QUFDeEUsb0ZBQWtGO0FBQ2xGLHFIQUFnSDtBQUNoSCwrRkFBNEY7QUFDNUYsdUZBQStGO0FBQy9GLG9GQUFpRjtBQUNqRixpSEFBOEc7QUFDOUcscUdBQWtHO0FBQ2xHLGtHQUErRjtBQUMvRix3RUFBc0U7QUFtQ3RFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUVILE1BQWEsY0FBYztJQUl6QixZQUFZLE9BQThCO1FBQ3hDLE1BQU0sWUFBWSxHQUFrQixFQUFFLENBQUM7UUFFdkMsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekIsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFBLHlDQUF1QixFQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDakMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBQSxvQ0FBc0IsRUFBQztZQUN2QyxPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDNUIsWUFBWTtTQUNiLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxFQUFFLEdBQUc7WUFDUixhQUFhLEVBQUUsSUFBQSxzQkFBWSxFQUFDLDBDQUFvQixFQUFFLFNBQVMsQ0FBQztZQUM1RCxnQkFBZ0IsRUFBRSxJQUFBLHNCQUFZLEVBQUMsaURBQXVCLEVBQUUsU0FBUyxDQUFDO1lBQ2xFLE1BQU0sRUFBRSxJQUFBLHNCQUFZLEVBQUMseUJBQWEsRUFBRSxTQUFTLENBQUM7WUFDOUMsTUFBTSxFQUFFLElBQUEsc0JBQVksRUFBQyw2QkFBYSxFQUFFLFNBQVMsQ0FBQztZQUM5QyxVQUFVLEVBQUUsSUFBQSxzQkFBWSxFQUFDLG9DQUFpQixFQUFFLFNBQVMsQ0FBQztZQUN0RCx1QkFBdUIsRUFBRSxJQUFBLHNCQUFZLEVBQUMsaUVBQThCLEVBQUUsU0FBUyxDQUFDO1lBQ2hGLGFBQWEsRUFBRSxJQUFBLHNCQUFZLEVBQUMsMkNBQW9CLEVBQUUsU0FBUyxDQUFDO1lBQzVELFNBQVMsRUFBRSxJQUFBLHNCQUFZLEVBQUMsbUNBQWdCLEVBQUUsU0FBUyxDQUFDO1lBQ3BELFVBQVUsRUFBRSxJQUFBLHNCQUFZLEVBQUMsMkJBQWlCLEVBQUUsU0FBUyxDQUFDO1lBQ3RELG1CQUFtQixFQUFFLElBQUEsc0JBQVksRUFBQyx1REFBMEIsRUFBRSxTQUFTLENBQUM7WUFDeEUsZUFBZSxFQUFFLElBQUEsc0JBQVksRUFBQywrQ0FBc0IsRUFBRSxTQUFTLENBQUM7WUFDaEUsY0FBYyxFQUFFLElBQUEsc0JBQVksRUFBQyw2Q0FBcUIsRUFBRSxTQUFTLENBQUM7WUFDOUQsTUFBTSxFQUFFLElBQUEsc0JBQVksRUFBQyw0QkFBYSxFQUFFLFNBQVMsQ0FBQztZQUM5QyxTQUFTLEVBQUUsSUFBQSxzQkFBWSxFQUFDLGdEQUFnQixFQUFFLFNBQVMsQ0FBQztTQUNyRCxDQUFDO1FBRUYsSUFBSSxDQUFDLEVBQUUsR0FBRztZQUNSLGFBQWEsRUFBRSxJQUFBLHNCQUFZLEVBQUMsMENBQXNCLEVBQUUsU0FBUyxDQUFDO1NBQy9ELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF6Q0Qsd0NBeUNDIn0=
@@ -3,14 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.attributeFQNsAsValues = attributeFQNsAsValues;
4
4
  exports.getRootCertsFromNamespace = getRootCertsFromNamespace;
5
5
  const errors_js_1 = require("../errors.js");
6
+ const interceptors_js_1 = require("../auth/interceptors.js");
6
7
  const utils_js_1 = require("../utils.js");
7
8
  const platform_js_1 = require("../platform.js");
8
9
  const protobuf_1 = require("@bufbuild/protobuf");
9
10
  const objects_pb_js_1 = require("../platform/policy/objects_pb.js");
10
11
  // TODO KAS: go over web-sdk and remove policyEndpoint that is only defined to be used here
11
- async function attributeFQNsAsValues(platformUrl, authProvider, ...fqns) {
12
+ async function attributeFQNsAsValues(platformUrl, auth, ...fqns) {
12
13
  platformUrl = (0, utils_js_1.getPlatformUrlFromKasEndpoint)(platformUrl);
13
- const platform = new platform_js_1.PlatformClient({ authProvider, platformUrl });
14
+ const platform = new platform_js_1.PlatformClient({ interceptors: (0, interceptors_js_1.resolveInterceptors)(auth), platformUrl });
14
15
  let response;
15
16
  try {
16
17
  response = await platform.v1.attributes.getAttributeValuesByFqns({
@@ -39,13 +40,16 @@ async function attributeFQNsAsValues(platformUrl, authProvider, ...fqns) {
39
40
  return values;
40
41
  }
41
42
  // Get root certificates from a namespace
42
- async function getRootCertsFromNamespace(platformUrl, authProvider, namespaceId, fqn) {
43
+ async function getRootCertsFromNamespace(platformUrl, auth, namespaceId, fqn) {
43
44
  platformUrl = (0, utils_js_1.getPlatformUrlFromKasEndpoint)(platformUrl);
44
45
  // Ensure at least one identifier is provided to avoid guaranteed API failure
45
46
  if (!namespaceId && !fqn) {
46
47
  throw new Error('Either namespaceId or fqn must be provided');
47
48
  }
48
- const platform = new platform_js_1.PlatformClient({ authProvider, platformUrl });
49
+ const platform = new platform_js_1.PlatformClient({
50
+ ...(auth ? { interceptors: (0, interceptors_js_1.resolveInterceptors)(auth) } : {}),
51
+ platformUrl,
52
+ });
49
53
  let response;
50
54
  try {
51
55
  response = await platform.v1.namespace.getNamespace({
@@ -63,4 +67,4 @@ async function getRootCertsFromNamespace(platformUrl, authProvider, namespaceId,
63
67
  }
64
68
  return response.namespace.rootCerts || [];
65
69
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BvbGljeS9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSxzREFxQ0M7QUFHRCw4REFnQ0M7QUFwRkQsNENBQTRDO0FBRTVDLDBDQUFvRjtBQUNwRixnREFBZ0Q7QUFLaEQsaURBQTRDO0FBQzVDLG9FQUErRDtBQUUvRCwyRkFBMkY7QUFDcEYsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxXQUFtQixFQUNuQixZQUEwQixFQUMxQixHQUFHLElBQWM7SUFFakIsV0FBVyxHQUFHLElBQUEsd0NBQTZCLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBYyxDQUFDLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFbkUsSUFBSSxRQUEwQyxDQUFDO0lBQy9DLElBQUksQ0FBQztRQUNILFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDO1lBQy9ELElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSx3QkFBWSxDQUNwQixJQUFJLFdBQVcsZ0NBQWdDLElBQUEsaUNBQXNCLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDM0UsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7SUFDM0IsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNwRSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMscUNBQXFDLEdBQUcsK0JBQStCLENBQUMsQ0FBQztnQkFDdEYsU0FBUztZQUNYLENBQUM7WUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxHQUFHLHFDQUFxQyxDQUFDLENBQUM7WUFFeEYsS0FBSyxHQUFHLElBQUEsaUJBQU0sRUFBQywyQkFBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDO2FBQU0sSUFBSSxFQUFFLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQzdDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELHlDQUF5QztBQUNsQyxLQUFLLFVBQVUseUJBQXlCLENBQzdDLFdBQW1CLEVBQ25CLFlBQTJCLEVBQzNCLFdBQW9CLEVBQ3BCLEdBQVk7SUFFWixXQUFXLEdBQUcsSUFBQSx3Q0FBNkIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUV6RCw2RUFBNkU7SUFDN0UsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBYyxDQUFDLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFbkUsSUFBSSxRQUE4QixDQUFDO0lBQ25DLElBQUksQ0FBQztRQUNILFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztZQUNsRCxFQUFFLEVBQUUsRUFBRSxFQUFFLGlDQUFpQztZQUN6QyxVQUFVLEVBQUUsV0FBVztnQkFDckIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO2dCQUM3QyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUU7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksd0JBQVksQ0FBQyxJQUFJLFdBQVcsb0JBQW9CLElBQUEsaUNBQXNCLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSx3QkFBWSxDQUFDLElBQUksV0FBVyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztBQUM1QyxDQUFDIn0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BvbGljeS9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSxzREFxQ0M7QUFHRCw4REFtQ0M7QUF2RkQsNENBQTRDO0FBQzVDLDZEQUErRTtBQUMvRSwwQ0FBb0Y7QUFDcEYsZ0RBQWdEO0FBS2hELGlEQUE0QztBQUM1QyxvRUFBK0Q7QUFFL0QsMkZBQTJGO0FBQ3BGLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsV0FBbUIsRUFDbkIsSUFBZ0IsRUFDaEIsR0FBRyxJQUFjO0lBRWpCLFdBQVcsR0FBRyxJQUFBLHdDQUE2QixFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUksNEJBQWMsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFBLHFDQUFtQixFQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFOUYsSUFBSSxRQUEwQyxDQUFDO0lBQy9DLElBQUksQ0FBQztRQUNILFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDO1lBQy9ELElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSx3QkFBWSxDQUNwQixJQUFJLFdBQVcsZ0NBQWdDLElBQUEsaUNBQXNCLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDM0UsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7SUFDM0IsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNwRSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMscUNBQXFDLEdBQUcsK0JBQStCLENBQUMsQ0FBQztnQkFDdEYsU0FBUztZQUNYLENBQUM7WUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxHQUFHLHFDQUFxQyxDQUFDLENBQUM7WUFFeEYsS0FBSyxHQUFHLElBQUEsaUJBQU0sRUFBQywyQkFBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDO2FBQU0sSUFBSSxFQUFFLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQzdDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELHlDQUF5QztBQUNsQyxLQUFLLFVBQVUseUJBQXlCLENBQzdDLFdBQW1CLEVBQ25CLElBQWlCLEVBQ2pCLFdBQW9CLEVBQ3BCLEdBQVk7SUFFWixXQUFXLEdBQUcsSUFBQSx3Q0FBNkIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUV6RCw2RUFBNkU7SUFDN0UsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBYyxDQUFDO1FBQ2xDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUEscUNBQW1CLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVELFdBQVc7S0FDWixDQUFDLENBQUM7SUFFSCxJQUFJLFFBQThCLENBQUM7SUFDbkMsSUFBSSxDQUFDO1FBQ0gsUUFBUSxHQUFHLE1BQU0sUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1lBQ2xELEVBQUUsRUFBRSxFQUFFLEVBQUUsaUNBQWlDO1lBQ3pDLFVBQVUsRUFBRSxXQUFXO2dCQUNyQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7Z0JBQzdDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUksRUFBRTtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSx3QkFBWSxDQUFDLElBQUksV0FBVyxvQkFBb0IsSUFBQSxpQ0FBc0IsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLHdCQUFZLENBQUMsSUFBSSxXQUFXLHNDQUFzQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO0FBQzVDLENBQUMifQ==
@@ -6,6 +6,7 @@ exports.attributeExists = attributeExists;
6
6
  exports.attributeValueExists = attributeValueExists;
7
7
  const connect_1 = require("@connectrpc/connect");
8
8
  const errors_js_1 = require("../errors.js");
9
+ const interceptors_js_1 = require("../auth/interceptors.js");
9
10
  const utils_js_1 = require("../utils.js");
10
11
  const platform_js_1 = require("../platform.js");
11
12
  // Caps the pagination loop in listAttributes. 10 pages × 1000 records = 10,000
@@ -44,11 +45,11 @@ const ATTRIBUTE_FQN_RE = /^https?:\/\/[a-zA-Z0-9._~%-]+\/attr\/[a-zA-Z0-9._~%-]+
44
45
  * }
45
46
  * ```
46
47
  */
47
- async function listAttributes(platformUrl, authProvider, namespace) {
48
+ async function listAttributes(platformUrl, auth, namespace) {
48
49
  if (!(0, utils_js_1.validateSecureUrl)(platformUrl)) {
49
50
  throw new errors_js_1.ConfigurationError('platformUrl must use HTTPS protocol');
50
51
  }
51
- const platform = new platform_js_1.PlatformClient({ authProvider, platformUrl });
52
+ const platform = new platform_js_1.PlatformClient({ interceptors: (0, interceptors_js_1.resolveInterceptors)(auth), platformUrl });
52
53
  const result = [];
53
54
  let nextOffset = 0;
54
55
  for (let pages = 0; pages < MAX_LIST_ATTRIBUTES_PAGES; pages++) {
@@ -92,7 +93,7 @@ async function listAttributes(platformUrl, authProvider, namespace) {
92
93
  * // Safe to encrypt — all attributes confirmed present
93
94
  * ```
94
95
  */
95
- async function validateAttributes(platformUrl, authProvider, fqns) {
96
+ async function validateAttributes(platformUrl, auth, fqns) {
96
97
  if (!fqns || fqns.length === 0) {
97
98
  return;
98
99
  }
@@ -107,7 +108,7 @@ async function validateAttributes(platformUrl, authProvider, fqns) {
107
108
  throw new errors_js_1.ConfigurationError('invalid attribute value FQN format');
108
109
  }
109
110
  }
110
- const platform = new platform_js_1.PlatformClient({ authProvider, platformUrl });
111
+ const platform = new platform_js_1.PlatformClient({ interceptors: (0, interceptors_js_1.resolveInterceptors)(auth), platformUrl });
111
112
  let resp;
112
113
  try {
113
114
  resp = await platform.v1.attributes.getAttributeValuesByFqns({ fqns });
@@ -134,14 +135,14 @@ async function validateAttributes(platformUrl, authProvider, fqns) {
134
135
  * @throws {@link ConfigurationError} if the FQN format is invalid or the URL is insecure.
135
136
  * @throws {@link NetworkError} if a non-not-found service error occurs.
136
137
  */
137
- async function attributeExists(platformUrl, authProvider, attributeFqn) {
138
+ async function attributeExists(platformUrl, auth, attributeFqn) {
138
139
  if (!(0, utils_js_1.validateSecureUrl)(platformUrl)) {
139
140
  throw new errors_js_1.ConfigurationError('platformUrl must use HTTPS protocol');
140
141
  }
141
142
  if (!ATTRIBUTE_FQN_RE.test(attributeFqn)) {
142
143
  throw new errors_js_1.ConfigurationError('invalid attribute FQN format');
143
144
  }
144
- const platform = new platform_js_1.PlatformClient({ authProvider, platformUrl });
145
+ const platform = new platform_js_1.PlatformClient({ interceptors: (0, interceptors_js_1.resolveInterceptors)(auth), platformUrl });
145
146
  try {
146
147
  await platform.v1.attributes.getAttribute({
147
148
  identifier: { case: 'fqn', value: attributeFqn },
@@ -168,14 +169,14 @@ async function attributeExists(platformUrl, authProvider, attributeFqn) {
168
169
  * @throws {@link ConfigurationError} if the FQN format is invalid or the URL is insecure.
169
170
  * @throws {@link NetworkError} if a service error occurs.
170
171
  */
171
- async function attributeValueExists(platformUrl, authProvider, valueFqn) {
172
+ async function attributeValueExists(platformUrl, auth, valueFqn) {
172
173
  if (!(0, utils_js_1.validateSecureUrl)(platformUrl)) {
173
174
  throw new errors_js_1.ConfigurationError('platformUrl must use HTTPS protocol');
174
175
  }
175
176
  if (!ATTRIBUTE_VALUE_FQN_RE.test(valueFqn)) {
176
177
  throw new errors_js_1.ConfigurationError('invalid attribute value FQN format');
177
178
  }
178
- const platform = new platform_js_1.PlatformClient({ authProvider, platformUrl });
179
+ const platform = new platform_js_1.PlatformClient({ interceptors: (0, interceptors_js_1.resolveInterceptors)(auth), platformUrl });
179
180
  let resp;
180
181
  try {
181
182
  resp = await platform.v1.attributes.getAttributeValuesByFqns({ fqns: [valueFqn] });
@@ -185,4 +186,4 @@ async function attributeValueExists(platformUrl, authProvider, valueFqn) {
185
186
  }
186
187
  return valueFqn in resp.fqnAttributeValues;
187
188
  }
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BvbGljeS9kaXNjb3ZlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpREEsd0NBaUNDO0FBd0JELGdEQXNDQztBQWVELDBDQXlCQztBQWVELG9EQXNCQztBQTdORCxpREFBeUQ7QUFDekQsNENBQXdGO0FBRXhGLDBDQUF3RTtBQUN4RSxnREFBZ0Q7QUFHaEQsK0VBQStFO0FBQy9FLGlGQUFpRjtBQUNqRix1RUFBdUU7QUFDdkUsTUFBTSx5QkFBeUIsR0FBRyxFQUFFLENBQUM7QUFFckMsMkVBQTJFO0FBQzNFLHNGQUFzRjtBQUN0RixNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQztBQUV2QyxnRkFBZ0Y7QUFDaEYsNkVBQTZFO0FBQzdFLGtFQUFrRTtBQUNsRSxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUU5Qiw0RUFBNEU7QUFDNUUsNkVBQTZFO0FBQzdFLE1BQU0sc0JBQXNCLEdBQzFCLG9GQUFvRixDQUFDO0FBRXZGLG9GQUFvRjtBQUNwRiw2RUFBNkU7QUFDN0UsTUFBTSxnQkFBZ0IsR0FBRywwREFBMEQsQ0FBQztBQUVwRjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0ksS0FBSyxVQUFVLGNBQWMsQ0FDbEMsV0FBbUIsRUFDbkIsWUFBMEIsRUFDMUIsU0FBa0I7SUFFbEIsSUFBSSxDQUFDLElBQUEsNEJBQWlCLEVBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxNQUFNLElBQUksOEJBQWtCLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBYyxDQUFDLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDbkUsTUFBTSxNQUFNLEdBQWdCLEVBQUUsQ0FBQztJQUMvQixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFbkIsS0FBSyxJQUFJLEtB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
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BvbGljeS9kaXNjb3ZlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpREEsd0NBaUNDO0FBd0JELGdEQXNDQztBQWVELDBDQXlCQztBQWVELG9EQXNCQztBQTdORCxpREFBeUQ7QUFDekQsNENBQXdGO0FBQ3hGLDZEQUErRTtBQUMvRSwwQ0FBd0U7QUFDeEUsZ0RBQWdEO0FBR2hELCtFQUErRTtBQUMvRSxpRkFBaUY7QUFDakYsdUVBQXVFO0FBQ3ZFLE1BQU0seUJBQXlCLEdBQUcsRUFBRSxDQUFDO0FBRXJDLDJFQUEyRTtBQUMzRSxzRkFBc0Y7QUFDdEYsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUM7QUFFdkMsZ0ZBQWdGO0FBQ2hGLDZFQUE2RTtBQUM3RSxrRUFBa0U7QUFDbEUsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFFOUIsNEVBQTRFO0FBQzVFLDZFQUE2RTtBQUM3RSxNQUFNLHNCQUFzQixHQUMxQixvRkFBb0YsQ0FBQztBQUV2RixvRkFBb0Y7QUFDcEYsNkVBQTZFO0FBQzdFLE1BQU0sZ0JBQWdCLEdBQUcsMERBQTBELENBQUM7QUFFcEY7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNJLEtBQUssVUFBVSxjQUFjLENBQ2xDLFdBQW1CLEVBQ25CLElBQWdCLEVBQ2hCLFNBQWtCO0lBRWxCLElBQUksQ0FBQyxJQUFBLDRCQUFpQixFQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFJLDhCQUFrQixDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLElBQUksNEJBQWMsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFBLHFDQUFtQixFQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUYsTUFBTSxNQUFNLEdBQWdCLEVBQUUsQ0FBQztJQUMv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
@@ -280,19 +280,20 @@ class Client {
280
280
  if (clientConfig.easEndpoint) {
281
281
  this.easEndpoint = clientConfig.easEndpoint;
282
282
  }
283
- this.authProvider = config.authProvider;
284
283
  this.clientConfig = clientConfig;
284
+ // Resolve auth once at the boundary. Internally, only `this.auth` is used.
285
+ let authProvider = config.authProvider;
285
286
  this.clientId = clientConfig.clientId;
286
- if (!this.authProvider) {
287
+ if (!authProvider && !config.interceptors?.length) {
287
288
  if (!clientConfig.clientId) {
288
- throw new errors_js_1.ConfigurationError('Client ID or custom AuthProvider must be defined');
289
+ throw new errors_js_1.ConfigurationError('Client ID, custom AuthProvider, or interceptors must be defined');
289
290
  }
290
291
  //Are we exchanging a refreshToken for a bearer token (normal AuthCode browser auth flow)?
291
292
  //If this is a browser context, we expect the caller to handle the initial
292
293
  //browser-based OIDC login and authentication process against the OIDC endpoint using their chosen method,
293
294
  //and provide us with a valid refresh token/clientId obtained from that process.
294
295
  if (clientConfig.refreshToken) {
295
- this.authProvider = new oidc_refreshtoken_provider_js_1.OIDCRefreshTokenProvider({
296
+ authProvider = new oidc_refreshtoken_provider_js_1.OIDCRefreshTokenProvider({
296
297
  clientId: clientConfig.clientId,
297
298
  refreshToken: clientConfig.refreshToken,
298
299
  oidcOrigin: clientConfig.oidcOrigin,
@@ -300,18 +301,32 @@ class Client {
300
301
  }
301
302
  else if (clientConfig.externalJwt) {
302
303
  //Are we exchanging a JWT previously issued by a trusted external entity (e.g. Google) for a bearer token?
303
- this.authProvider = new oidc_externaljwt_provider_js_1.OIDCExternalJwtProvider({
304
+ authProvider = new oidc_externaljwt_provider_js_1.OIDCExternalJwtProvider({
304
305
  clientId: clientConfig.clientId,
305
306
  externalJwt: clientConfig.externalJwt,
306
307
  oidcOrigin: clientConfig.oidcOrigin,
307
308
  }, this.cryptoService);
308
309
  }
309
310
  }
310
- this.dpopKeys = createSessionKeys({
311
- authProvider: this.authProvider,
312
- cryptoService: this.cryptoService,
313
- dpopKeys: clientConfig.dpopKeys,
314
- });
311
+ // Resolve to AuthConfig: interceptors take precedence over authProvider.
312
+ if (config.interceptors?.length) {
313
+ this.auth = { interceptors: config.interceptors };
314
+ }
315
+ else if (authProvider) {
316
+ this.auth = authProvider;
317
+ }
318
+ if (config.interceptors?.length && !authProvider) {
319
+ // Interceptor path: no updateClientPublicKey needed.
320
+ // Still need dpopKeys for request body signing (reqSignature).
321
+ this.dpopKeys = clientConfig.dpopKeys ?? this.cryptoService.generateSigningKeyPair();
322
+ }
323
+ else {
324
+ this.dpopKeys = createSessionKeys({
325
+ authProvider,
326
+ cryptoService: this.cryptoService,
327
+ dpopKeys: clientConfig.dpopKeys,
328
+ });
329
+ }
315
330
  }
316
331
  /** Necessary only for testing. A dependency-injection approach should be preferred, but that is difficult currently */
317
332
  _doFetchKasKeyWithCache(...params) {
@@ -380,7 +395,10 @@ class Client {
380
395
  if (!this.platformUrl) {
381
396
  throw new errors_js_1.ConfigurationError('platformUrl not set in TDF3 Client constructor');
382
397
  }
383
- const fetchedFQNValues = await (0, api_js_1.attributeFQNsAsValues)(this.platformUrl, this.authProvider, ...fqnsWithoutValues);
398
+ if (!this.auth) {
399
+ throw new errors_js_1.ConfigurationError('AuthProvider or interceptors required for autoconfigure');
400
+ }
401
+ const fetchedFQNValues = await (0, api_js_1.attributeFQNsAsValues)(this.platformUrl, this.auth, ...fqnsWithoutValues);
384
402
  fetchedFQNValues.forEach((fetchedValue) => {
385
403
  attributeValues.push(fetchedValue);
386
404
  });
@@ -505,7 +523,7 @@ class Client {
505
523
  contentStream: opts.source,
506
524
  mimeType,
507
525
  policy: policyObject,
508
- authProvider: this.authProvider,
526
+ auth: this.auth,
509
527
  progressHandler: this.clientConfig.progressHandler,
510
528
  keyForEncryption,
511
529
  keyForManifest,
@@ -529,15 +547,15 @@ class Client {
529
547
  */
530
548
  async decrypt({ source, allowList, keyMiddleware = async (key) => key, streamMiddleware = async (stream) => stream, assertionVerificationKeys, noVerifyAssertions, concurrencyLimit = 1, wrappingKeyAlgorithm, fulfillableObligationFQNs = [], }) {
531
549
  const dpopKeys = await this.dpopKeys;
532
- if (!this.authProvider) {
533
- throw new errors_js_1.ConfigurationError('AuthProvider missing');
550
+ if (!this.auth) {
551
+ throw new errors_js_1.ConfigurationError('AuthProvider or interceptors missing');
534
552
  }
535
553
  const chunker = await makeChunkable(source);
536
554
  if (!allowList && this.allowedKases) {
537
555
  allowList = this.allowedKases;
538
556
  }
539
557
  else if (this.platformUrl) {
540
- allowList = await (0, access_js_1.fetchKeyAccessServers)(this.platformUrl, this.authProvider);
558
+ allowList = await (0, access_js_1.fetchKeyAccessServers)(this.platformUrl, this.auth);
541
559
  }
542
560
  else {
543
561
  throw new errors_js_1.ConfigurationError('platformUrl is required when allowedKases is empty');
@@ -550,7 +568,7 @@ class Client {
550
568
  // TODO: Write error event to stream and don't await.
551
569
  return await streamMiddleware(await (0, tdf_js_1.readStream)({
552
570
  allowList,
553
- authProvider: this.authProvider,
571
+ auth: this.auth,
554
572
  chunker,
555
573
  concurrencyLimit,
556
574
  cryptoService: this.cryptoService,
@@ -588,4 +606,4 @@ class Client {
588
606
  }
589
607
  }
590
608
  exports.Client = Client;
591
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZGYzL3NyYy9jbGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUtBLDhDQXVCQztBQXFDRCw0Q0FxQkM7QUExUEQsK0JBQTBCO0FBQzFCLGdEQUkyQjtBQUMzQiw4REFBeUQ7QUFDekQsc0NBUW1CO0FBQ25CLGtEQUFnRDtBQUNoRCxtR0FBMkY7QUFDM0YsaUdBQXlGO0FBRXpGLHVEQUF3RjtBQXV6QnBCLDRGQXZ6QnhDLHFCQUFXLE9BdXpCd0M7QUFBRSw0RkF2ekJ4QyxxQkFBVyxPQXV6QndDO0FBdHpCNUYsb0RBQWlHO0FBRWpHLCtDQVd1QjtBQXl5QmQscUdBbHpCUCxrQ0FBb0IsT0FrekJPO0FBQWlCLHFHQTV5QjVDLGtDQUFvQixPQTR5QjRDO0FBdnlCbEUsc0RBSWdDO0FBQ2hDLHNEQUE0RDtBQUM1RCxvRUFBNEQ7QUFFNUQseUVBQTJEO0FBQzNELGlEQUs0QjtBQUM1QiwrREFBc0Q7QUFDdEQsdURBQW1FO0FBQ25FLDBEQUFnRjtBQUNoRiw4RUFBcUY7QUFDckYsaUVBQW1FO0FBRW5FLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsc0JBQXNCO0FBRXpFLHVFQUF1RTtBQUN2RSxNQUFNLG1CQUFtQixHQUFHLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztBQUVwRixNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBRSxPQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVuRyxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLGFB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
609
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZGYzL3NyYy9jbGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOEtBLDhDQXVCQztBQXFDRCw0Q0FxQkM7QUEvUEQsK0JBQTBCO0FBQzFCLGdEQUkyQjtBQUMzQiw4REFBeUQ7QUFDekQsc0NBUW1CO0FBQ25CLGtEQUFnRDtBQUNoRCxtR0FBMkY7QUFDM0YsaUdBQXlGO0FBRXpGLHVEQUF3RjtBQW8xQnBCLDRGQXAxQnhDLHFCQUFXLE9BbzFCd0M7QUFBRSw0RkFwMUJ4QyxxQkFBVyxPQW8xQndDO0FBajFCNUYsb0RBQWlHO0FBRWpHLCtDQVd1QjtBQW8wQmQscUdBNzBCUCxrQ0FBb0IsT0E2MEJPO0FBQWlCLHFHQXYwQjVDLGtDQUFvQixPQXUwQjRDO0FBbDBCbEUsc0RBSWdDO0FBQ2hDLHNEQUE0RDtBQUM1RCxvRUFBNEQ7QUFFNUQseUVBQTJEO0FBQzNELGlEQUs0QjtBQUM1QiwrREFBc0Q7QUFDdEQsdURBQW1FO0FBQ25FLDBEQUFnRjtBQUNoRiw4RUFBcUY7QUFDckYsaUVBQW1FO0FBRW5FLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsc0JBQXNCO0FBRXpFLHVFQUF1RTtBQUN2RSxNQUFNLG1CQUFtQixHQUFHLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztBQUVwRixNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBRSxPQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVuRyxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLGFB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