@openstax/ts-utils 1.1.27 → 1.1.29

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 (145) hide show
  1. package/dist/{assertions.d.ts → cjs/assertions.d.ts} +0 -0
  2. package/dist/{assertions.js → cjs/assertions.js} +0 -0
  3. package/dist/{aws → cjs/aws}/securityTokenService.d.ts +0 -0
  4. package/dist/{aws → cjs/aws}/securityTokenService.js +0 -0
  5. package/dist/{aws → cjs/aws}/ssmService.d.ts +0 -0
  6. package/dist/{aws → cjs/aws}/ssmService.js +0 -0
  7. package/dist/cjs/config/awsAccountConfig.d.ts +5 -0
  8. package/dist/cjs/config/awsAccountConfig.js +35 -0
  9. package/dist/cjs/config/awsParameterConfig.d.ts +2 -0
  10. package/dist/cjs/config/awsParameterConfig.js +18 -0
  11. package/dist/cjs/config/envConfig.d.ts +3 -0
  12. package/dist/cjs/config/envConfig.js +35 -0
  13. package/dist/cjs/config/index.d.ts +21 -0
  14. package/dist/cjs/config/index.js +39 -0
  15. package/dist/cjs/config/lambdaParameterConfig.d.ts +2 -0
  16. package/dist/cjs/config/lambdaParameterConfig.js +36 -0
  17. package/dist/cjs/config/replaceConfig.d.ts +4 -0
  18. package/dist/cjs/config/replaceConfig.js +12 -0
  19. package/dist/cjs/config/resolveConfigValue.d.ts +2 -0
  20. package/dist/cjs/config/resolveConfigValue.js +12 -0
  21. package/dist/{config.d.ts → cjs/config.d.ts} +0 -0
  22. package/dist/{config.js → cjs/config.js} +0 -0
  23. package/dist/{errors.d.ts → cjs/errors.d.ts} +0 -0
  24. package/dist/{errors.js → cjs/errors.js} +0 -0
  25. package/dist/{fetch.d.ts → cjs/fetch.d.ts} +0 -0
  26. package/dist/{fetch.js → cjs/fetch.js} +0 -0
  27. package/dist/{guards.d.ts → cjs/guards.d.ts} +0 -0
  28. package/dist/{guards.js → cjs/guards.js} +0 -0
  29. package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  30. package/dist/{index.js → cjs/index.js} +0 -0
  31. package/dist/{middleware.d.ts → cjs/middleware.d.ts} +0 -0
  32. package/dist/{middleware.js → cjs/middleware.js} +0 -0
  33. package/dist/{pagination.d.ts → cjs/pagination.d.ts} +0 -0
  34. package/dist/{pagination.js → cjs/pagination.js} +0 -0
  35. package/dist/{profile.d.ts → cjs/profile.d.ts} +0 -0
  36. package/dist/{profile.js → cjs/profile.js} +0 -0
  37. package/dist/{routing.d.ts → cjs/routing.d.ts} +0 -0
  38. package/dist/{routing.js → cjs/routing.js} +0 -0
  39. package/dist/{services → cjs/services}/apiGateway/index.d.ts +0 -0
  40. package/dist/{services → cjs/services}/apiGateway/index.js +0 -0
  41. package/dist/{services → cjs/services}/authProvider/browser.d.ts +0 -0
  42. package/dist/{services → cjs/services}/authProvider/browser.js +0 -0
  43. package/dist/{services → cjs/services}/authProvider/decryption.d.ts +0 -0
  44. package/dist/{services → cjs/services}/authProvider/decryption.js +0 -0
  45. package/dist/{services → cjs/services}/authProvider/index.d.ts +0 -0
  46. package/dist/{services → cjs/services}/authProvider/index.js +0 -0
  47. package/dist/{services → cjs/services}/authProvider/subrequest.d.ts +0 -0
  48. package/dist/{services → cjs/services}/authProvider/subrequest.js +0 -0
  49. package/dist/{services → cjs/services}/authProvider/utils/embeddedAuthProvider.d.ts +0 -0
  50. package/dist/{services → cjs/services}/authProvider/utils/embeddedAuthProvider.js +0 -0
  51. package/dist/{services → cjs/services}/exercisesGateway/index.d.ts +0 -0
  52. package/dist/{services → cjs/services}/exercisesGateway/index.js +0 -0
  53. package/dist/{services → cjs/services}/lrsGateway/attempt-utils.d.ts +0 -0
  54. package/dist/{services → cjs/services}/lrsGateway/attempt-utils.js +0 -0
  55. package/dist/{services → cjs/services}/lrsGateway/file-system.d.ts +0 -0
  56. package/dist/{services → cjs/services}/lrsGateway/file-system.js +0 -0
  57. package/dist/{services → cjs/services}/lrsGateway/index.d.ts +0 -0
  58. package/dist/{services → cjs/services}/lrsGateway/index.js +0 -0
  59. package/dist/{services → cjs/services}/searchProvider/index.d.ts +0 -0
  60. package/dist/{services → cjs/services}/searchProvider/index.js +0 -0
  61. package/dist/{services → cjs/services}/searchProvider/memorySearchTheBadWay.d.ts +0 -0
  62. package/dist/{services → cjs/services}/searchProvider/memorySearchTheBadWay.js +0 -0
  63. package/dist/{services → cjs/services}/versionedDocumentStore/dynamodb.d.ts +0 -0
  64. package/dist/{services → cjs/services}/versionedDocumentStore/dynamodb.js +0 -0
  65. package/dist/{services → cjs/services}/versionedDocumentStore/file-system.d.ts +0 -0
  66. package/dist/{services → cjs/services}/versionedDocumentStore/file-system.js +0 -0
  67. package/dist/{services → cjs/services}/versionedDocumentStore/index.d.ts +0 -0
  68. package/dist/{services → cjs/services}/versionedDocumentStore/index.js +0 -0
  69. package/dist/cjs/tsconfig.withoutspecs.cjs.tsbuildinfo +1 -0
  70. package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
  71. package/dist/{types.js → cjs/types.js} +0 -0
  72. package/dist/esm/assertions.d.ts +9 -0
  73. package/dist/esm/assertions.js +90 -0
  74. package/dist/esm/aws/securityTokenService.d.ts +2 -0
  75. package/dist/esm/aws/securityTokenService.js +3 -0
  76. package/dist/esm/aws/ssmService.d.ts +2 -0
  77. package/dist/esm/aws/ssmService.js +3 -0
  78. package/dist/esm/config/awsAccountConfig.d.ts +5 -0
  79. package/dist/esm/config/awsAccountConfig.js +31 -0
  80. package/dist/esm/config/awsParameterConfig.d.ts +2 -0
  81. package/dist/esm/config/awsParameterConfig.js +14 -0
  82. package/dist/esm/config/envConfig.d.ts +3 -0
  83. package/dist/esm/config/envConfig.js +31 -0
  84. package/dist/esm/config/index.d.ts +21 -0
  85. package/dist/esm/config/index.js +21 -0
  86. package/dist/esm/config/lambdaParameterConfig.d.ts +2 -0
  87. package/dist/esm/config/lambdaParameterConfig.js +29 -0
  88. package/dist/esm/config/replaceConfig.d.ts +4 -0
  89. package/dist/esm/config/replaceConfig.js +8 -0
  90. package/dist/esm/config/resolveConfigValue.d.ts +2 -0
  91. package/dist/esm/config/resolveConfigValue.js +8 -0
  92. package/dist/esm/config.d.ts +27 -0
  93. package/dist/esm/config.js +127 -0
  94. package/dist/esm/errors.d.ts +12 -0
  95. package/dist/esm/errors.js +26 -0
  96. package/dist/esm/fetch.d.ts +64 -0
  97. package/dist/esm/fetch.js +46 -0
  98. package/dist/esm/guards.d.ts +6 -0
  99. package/dist/esm/guards.js +29 -0
  100. package/dist/esm/index.d.ts +29 -0
  101. package/dist/esm/index.js +210 -0
  102. package/dist/esm/middleware.d.ts +9 -0
  103. package/dist/esm/middleware.js +34 -0
  104. package/dist/esm/pagination.d.ts +63 -0
  105. package/dist/esm/pagination.js +77 -0
  106. package/dist/esm/profile.d.ts +59 -0
  107. package/dist/esm/profile.js +191 -0
  108. package/dist/esm/routing.d.ts +107 -0
  109. package/dist/esm/routing.js +208 -0
  110. package/dist/esm/services/apiGateway/index.d.ts +55 -0
  111. package/dist/esm/services/apiGateway/index.js +51 -0
  112. package/dist/esm/services/authProvider/browser.d.ts +61 -0
  113. package/dist/esm/services/authProvider/browser.js +119 -0
  114. package/dist/esm/services/authProvider/decryption.d.ts +16 -0
  115. package/dist/esm/services/authProvider/decryption.js +61 -0
  116. package/dist/esm/services/authProvider/index.d.ts +42 -0
  117. package/dist/esm/services/authProvider/index.js +15 -0
  118. package/dist/esm/services/authProvider/subrequest.d.ts +16 -0
  119. package/dist/esm/services/authProvider/subrequest.js +36 -0
  120. package/dist/esm/services/authProvider/utils/embeddedAuthProvider.d.ts +20 -0
  121. package/dist/esm/services/authProvider/utils/embeddedAuthProvider.js +30 -0
  122. package/dist/esm/services/exercisesGateway/index.d.ts +74 -0
  123. package/dist/esm/services/exercisesGateway/index.js +69 -0
  124. package/dist/esm/services/lrsGateway/attempt-utils.d.ts +62 -0
  125. package/dist/esm/services/lrsGateway/attempt-utils.js +251 -0
  126. package/dist/esm/services/lrsGateway/file-system.d.ts +15 -0
  127. package/dist/esm/services/lrsGateway/file-system.js +96 -0
  128. package/dist/esm/services/lrsGateway/index.d.ts +110 -0
  129. package/dist/esm/services/lrsGateway/index.js +87 -0
  130. package/dist/esm/services/searchProvider/index.d.ts +19 -0
  131. package/dist/esm/services/searchProvider/index.js +1 -0
  132. package/dist/esm/services/searchProvider/memorySearchTheBadWay.d.ts +12 -0
  133. package/dist/esm/services/searchProvider/memorySearchTheBadWay.js +53 -0
  134. package/dist/esm/services/versionedDocumentStore/dynamodb.d.ts +23 -0
  135. package/dist/esm/services/versionedDocumentStore/dynamodb.js +147 -0
  136. package/dist/esm/services/versionedDocumentStore/file-system.d.ts +25 -0
  137. package/dist/esm/services/versionedDocumentStore/file-system.js +81 -0
  138. package/dist/esm/services/versionedDocumentStore/index.d.ts +23 -0
  139. package/dist/esm/services/versionedDocumentStore/index.js +1 -0
  140. package/dist/esm/tsconfig.withoutspecs.esm.tsbuildinfo +1 -0
  141. package/dist/esm/types.d.ts +6 -0
  142. package/dist/esm/types.js +1 -0
  143. package/package.json +24 -8
  144. package/dist/tsconfig.tsbuildinfo +0 -1
  145. package/dist/tsconfig.withoutspecs.tsbuildinfo +0 -1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,5 @@
1
+ import { ConfigValueProvider } from '.';
2
+ export declare const awsAccountConfig: <C extends string>(config: {
3
+ sandbox: ConfigValueProvider<C>;
4
+ production: ConfigValueProvider<C>;
5
+ }) => ConfigValueProvider<C>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.awsAccountConfig = void 0;
4
+ const client_sts_1 = require("@aws-sdk/client-sts");
5
+ const assertions_1 = require("../assertions");
6
+ const securityTokenService_1 = require("../aws/securityTokenService");
7
+ const envConfig_1 = require("./envConfig");
8
+ const resolveConfigValue_1 = require("./resolveConfigValue");
9
+ /*
10
+ * uses a different given value depending on which aws account the code is deployed in.
11
+ * this resolves the given value recursively, so its composable with more configProviders in the
12
+ * conditional cases.
13
+ *
14
+ * eg:
15
+ * const config = {
16
+ * configValue: awsAccountConfig({sandbox: 'inTheSandboxConfig', production: 'inProductionConfig'}),
17
+ * configValue: awsAccountConfig({sandbox: envConfig('an_environment_variable'), production: 'inProductionConfig'}),
18
+ * };
19
+ * */
20
+ const awsAccountConfig = (config) => {
21
+ const production = (0, envConfig_1.envConfig)('PRODUCTION_AWS');
22
+ const sandbox = (0, envConfig_1.envConfig)('SANDBOX_AWS');
23
+ return async () => {
24
+ const identity = await (0, securityTokenService_1.securityTokenService)().send(new client_sts_1.GetCallerIdentityCommand({}));
25
+ switch (identity.Account) {
26
+ case await (0, resolveConfigValue_1.resolveConfigValue)(sandbox):
27
+ return await (0, resolveConfigValue_1.resolveConfigValue)((0, assertions_1.assertDefined)(config.sandbox, 'a sandbox config was not provided'));
28
+ case await (0, resolveConfigValue_1.resolveConfigValue)(production):
29
+ return await (0, resolveConfigValue_1.resolveConfigValue)((0, assertions_1.assertDefined)(config.production, 'a production config was not provided'));
30
+ default:
31
+ throw new Error('unknown aws account');
32
+ }
33
+ };
34
+ };
35
+ exports.awsAccountConfig = awsAccountConfig;
@@ -0,0 +1,2 @@
1
+ import { ConfigValueProvider } from '.';
2
+ export declare const awsParameterConfig: (parameterName: ConfigValueProvider<string>) => ConfigValueProvider<string>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.awsParameterConfig = void 0;
4
+ const client_ssm_1 = require("@aws-sdk/client-ssm");
5
+ const assertions_1 = require("../assertions");
6
+ const ssmService_1 = require("../aws/ssmService");
7
+ const resolveConfigValue_1 = require("./resolveConfigValue");
8
+ const awsParameterConfig = (parameterName) => {
9
+ return async () => {
10
+ const command = new client_ssm_1.GetParameterCommand({ Name: await (0, resolveConfigValue_1.resolveConfigValue)(parameterName), WithDecryption: true });
11
+ // send() throws ParameterNotFound if the parameter is missing,
12
+ // so it's not clear what missing Parameter or Value mean
13
+ const response = await (0, ssmService_1.ssmService)().send(command);
14
+ const parameter = (0, assertions_1.assertDefined)(response.Parameter, `aws GetParameter response missing Parameter key for ${parameterName}"`);
15
+ return (0, assertions_1.assertDefined)(parameter.Value, `aws GetParameter response missing Parameter.Value key for ${parameterName}"`);
16
+ };
17
+ };
18
+ exports.awsParameterConfig = awsParameterConfig;
@@ -0,0 +1,3 @@
1
+ import { ConfigValueProvider } from '.';
2
+ export declare const ENV_BUILD_CONFIGS: string[];
3
+ export declare const envConfig: (name: string, type?: 'build' | 'runtime', defaultValue?: string | undefined) => ConfigValueProvider<string>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.envConfig = exports.ENV_BUILD_CONFIGS = void 0;
4
+ const assertions_1 = require("../assertions");
5
+ const guards_1 = require("../guards");
6
+ /*
7
+ * uses a config from the process environment.
8
+ *
9
+ * there are two modes for this, by default it expects the value to be provided at build time,
10
+ * and there is access built in here for webpack to provide the configs. if you pass `runtime`
11
+ * as the second argument it skips the build logic and will try to literally pull it from
12
+ * `process.env` when the config is used at runtime
13
+ *
14
+ * the value is read from the environment when something tries to use it, not when `envConfig` is called.
15
+ *
16
+ * eg:
17
+ * const config = {
18
+ * configValue: envConfig('environment_variable_name'),
19
+ * };
20
+ * */
21
+ exports.ENV_BUILD_CONFIGS = [];
22
+ const envConfig = (name, type = 'build', defaultValue) => {
23
+ if (type === 'build') {
24
+ exports.ENV_BUILD_CONFIGS.push(name);
25
+ }
26
+ return () => {
27
+ /*global __PROCESS_ENV*/
28
+ // @ts-ignore - hack to get around the way webpack/define works
29
+ // - https://github.com/webpack/webpack/issues/14800
30
+ // - https://github.com/webpack/webpack/issues/5392
31
+ const envs = { ...process.env, ...(typeof __PROCESS_ENV !== 'undefined' ? __PROCESS_ENV : {}) };
32
+ return (0, assertions_1.assertDefined)((0, guards_1.ifDefined)(envs[name], defaultValue), `expected to find environment variable with name: ${name}`);
33
+ };
34
+ };
35
+ exports.envConfig = envConfig;
@@ -0,0 +1,21 @@
1
+ export declare type ConfigValue = string;
2
+ export declare type Config = {
3
+ [key: string]: Config | ConfigValue;
4
+ };
5
+ export declare type ConfigValueProvider<V extends ConfigValue = ConfigValue> = (() => Promise<V> | V) | V;
6
+ export declare type ConfigProvider = {
7
+ [key: string]: ConfigProvider | ConfigValueProvider;
8
+ };
9
+ export declare type ConfigForConfigProvider<T> = T extends ConfigValue ? T : T extends ConfigProvider ? {
10
+ [key in keyof T]: ConfigForConfigProvider<T[key]>;
11
+ } : T extends ConfigValueProvider<infer R> ? R : never;
12
+ export declare type ConfigProviderForConfig<T> = T extends ConfigValue ? ConfigValueProvider<T> : T extends Config ? {
13
+ [key in keyof T]: ConfigProviderForConfig<T[key]>;
14
+ } : never;
15
+ export * from './resolveConfigValue';
16
+ export declare const stubConfig: <V extends string>(configValue: V) => ConfigValueProvider<V>;
17
+ export * from './envConfig';
18
+ export * from './replaceConfig';
19
+ export * from './awsAccountConfig';
20
+ export * from './awsParameterConfig';
21
+ export * from './lambdaParameterConfig';
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.stubConfig = void 0;
18
+ __exportStar(require("./resolveConfigValue"), exports);
19
+ /*
20
+ * ===========
21
+ * re-usable config providers
22
+ * ===========
23
+ * */
24
+ /*
25
+ * stub, mostly for testing. sometimes it helps please typescript to use this if you have
26
+ * two configs you want to have the same type but one is a fixed string and one is a complicated provider
27
+ *
28
+ * eg:
29
+ * const config = {
30
+ * configValue: stubConfig('just-a-string'),
31
+ * };
32
+ * */
33
+ const stubConfig = (configValue) => configValue;
34
+ exports.stubConfig = stubConfig;
35
+ __exportStar(require("./envConfig"), exports);
36
+ __exportStar(require("./replaceConfig"), exports);
37
+ __exportStar(require("./awsAccountConfig"), exports);
38
+ __exportStar(require("./awsParameterConfig"), exports);
39
+ __exportStar(require("./lambdaParameterConfig"), exports);
@@ -0,0 +1,2 @@
1
+ import { ConfigValueProvider } from '.';
2
+ export declare const lambdaParameterConfig: (parameterName: ConfigValueProvider<string>) => ConfigValueProvider<string>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.lambdaParameterConfig = void 0;
7
+ const node_fetch_1 = __importDefault(require("node-fetch"));
8
+ const assertions_1 = require("../assertions");
9
+ const envConfig_1 = require("./envConfig");
10
+ const _1 = require(".");
11
+ const lambdaExtensionUrl = 'http://localhost:2773';
12
+ let lambdaExtensionReadyPromise;
13
+ // NOTE: Can only be used during in AWS Lambda
14
+ // The AWS Parameters and Secrets Lambda Extension Layer must be included in the Lambda function
15
+ const lambdaParameterConfig = (parameterName) => async () => {
16
+ const token = await (0, _1.resolveConfigValue)((0, envConfig_1.envConfig)('AWS_SESSION_TOKEN', 'runtime'));
17
+ const name = await (0, _1.resolveConfigValue)(parameterName);
18
+ if (!lambdaExtensionReadyPromise) {
19
+ // This request will return 400 Bad Request,
20
+ // but we only care that it'll block until the extension is ready
21
+ lambdaExtensionReadyPromise = (0, node_fetch_1.default)(lambdaExtensionUrl);
22
+ }
23
+ await lambdaExtensionReadyPromise;
24
+ const resp = await (0, node_fetch_1.default)(
25
+ // Port 2773 is the default port for the extension
26
+ `${lambdaExtensionUrl}/systemsmanager/parameters/get?name=${name}&withDecryption=true`, { headers: { 'X-Aws-Parameters-Secrets-Token': token } });
27
+ if (resp.ok) {
28
+ const response = await resp.json();
29
+ const parameter = (0, assertions_1.assertDefined)(response.Parameter, `aws GetParameter response missing Parameter key for ${name}"`);
30
+ return (0, assertions_1.assertDefined)(parameter.Value, `aws GetParameter response missing Parameter.Value key for ${name}"`);
31
+ }
32
+ else {
33
+ throw new Error(`HTTP Error Response ${resp.status} ${resp.statusText} while fetching parameter ${name}`);
34
+ }
35
+ };
36
+ exports.lambdaParameterConfig = lambdaParameterConfig;
@@ -0,0 +1,4 @@
1
+ import { ConfigValueProvider } from '.';
2
+ export declare const replaceConfig: (base: ConfigValueProvider<string>, replacements: {
3
+ [token: string]: ConfigValueProvider<string>;
4
+ }) => ConfigValueProvider<string>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.replaceConfig = void 0;
4
+ const resolveConfigValue_1 = require("./resolveConfigValue");
5
+ const replaceConfig = (base, replacements) => {
6
+ return async () => {
7
+ const resolved = await Promise.all(Object.entries(replacements)
8
+ .map(async ([token, replacement]) => [token, await (0, resolveConfigValue_1.resolveConfigValue)(replacement)]));
9
+ return resolved.reduce((result, [token, replacement]) => result.replace(token, replacement), await (0, resolveConfigValue_1.resolveConfigValue)(base));
10
+ };
11
+ };
12
+ exports.replaceConfig = replaceConfig;
@@ -0,0 +1,2 @@
1
+ import { ConfigValueProvider } from '.';
2
+ export declare const resolveConfigValue: <V extends string>(provider: ConfigValueProvider<V>) => Promise<V>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveConfigValue = void 0;
4
+ /*
5
+ * resolves a config value into a string, to be used inside of things that are provided configurations
6
+ * */
7
+ const resolveConfigValue = async (provider) => {
8
+ return typeof provider === 'function'
9
+ ? await provider()
10
+ : provider;
11
+ };
12
+ exports.resolveConfigValue = resolveConfigValue;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes