@openstax/ts-utils 1.43.1 → 1.44.0
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/aws/ssmService.js +2 -2
- package/dist/cjs/config/awsParameterConfig.d.ts +1 -1
- package/dist/cjs/config/awsParameterConfig.js +3 -3
- package/dist/cjs/config/envConfig.d.ts +1 -1
- package/dist/cjs/config/lambdaParameterConfig.d.ts +1 -1
- package/dist/cjs/config/lambdaParameterConfig.js +6 -6
- package/dist/cjs/config/replaceConfig.d.ts +1 -1
- package/dist/cjs/config/resolveConfigValue.d.ts +1 -1
- package/dist/cjs/errors/index.d.ts +1 -1
- package/dist/cjs/fetch/fetchStatusRetry.d.ts +1 -1
- package/dist/cjs/fetch/index.d.ts +1 -1
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/middleware/apiErrorHandler.d.ts +3 -3
- package/dist/cjs/middleware/apiErrorHandler.js +12 -12
- package/dist/cjs/middleware/apiSlowResponseMiddleware.d.ts +3 -3
- package/dist/cjs/middleware/apiSlowResponseMiddleware.js +5 -5
- package/dist/cjs/middleware/lambdaCorsResponseMiddleware.d.ts +2 -2
- package/dist/cjs/middleware/lambdaCorsResponseMiddleware.js +2 -2
- package/dist/cjs/middleware/throwNotFoundMiddleware.js +2 -2
- package/dist/cjs/misc/helpers.d.ts +1 -1
- package/dist/cjs/misc/merge.js +2 -2
- package/dist/cjs/misc/timingSafeCompareStrings.d.ts +5 -0
- package/dist/cjs/misc/timingSafeCompareStrings.js +15 -0
- package/dist/cjs/pagination/index.d.ts +1 -1
- package/dist/cjs/pagination/index.js +10 -10
- package/dist/cjs/routing/helpers.d.ts +1 -1
- package/dist/cjs/routing/helpers.js +7 -7
- package/dist/cjs/routing/index.d.ts +1 -1
- package/dist/cjs/routing/lambdaBatchRequestHandler.d.ts +2 -2
- package/dist/cjs/routing/lambdaBatchRequestHandler.js +2 -2
- package/dist/cjs/routing/validators/zod.js +2 -2
- package/dist/cjs/services/accountsGateway/index.d.ts +5 -5
- package/dist/cjs/services/accountsGateway/index.js +17 -17
- package/dist/cjs/services/apiGateway/index.d.ts +4 -4
- package/dist/cjs/services/apiGateway/index.js +10 -10
- package/dist/cjs/services/authProvider/browser.d.ts +3 -3
- package/dist/cjs/services/authProvider/browser.js +9 -9
- package/dist/cjs/services/authProvider/decryption.d.ts +3 -3
- package/dist/cjs/services/authProvider/decryption.js +7 -7
- package/dist/cjs/services/authProvider/index.d.ts +3 -3
- package/dist/cjs/services/authProvider/launchToken.d.ts +3 -3
- package/dist/cjs/services/authProvider/launchToken.js +3 -3
- package/dist/cjs/services/authProvider/subrequest.d.ts +3 -3
- package/dist/cjs/services/authProvider/subrequest.js +10 -10
- package/dist/cjs/services/authProvider/utils/decryptAndVerify.d.ts +1 -1
- package/dist/cjs/services/authProvider/utils/decryptAndVerify.js +3 -3
- package/dist/cjs/services/authProvider/utils/embeddedAuthProvider.d.ts +1 -1
- package/dist/cjs/services/authProvider/utils/userRoleValidator.d.ts +3 -3
- package/dist/cjs/services/authProvider/utils/userRoleValidator.js +4 -4
- package/dist/cjs/services/authProvider/utils/userSubrequest.d.ts +2 -2
- package/dist/cjs/services/documentStore/dynamoEncoding.d.ts +1 -1
- package/dist/cjs/services/documentStore/dynamoEncoding.js +2 -2
- package/dist/cjs/services/documentStore/unversioned/dynamodb.d.ts +2 -2
- package/dist/cjs/services/documentStore/unversioned/dynamodb.js +14 -14
- package/dist/cjs/services/documentStore/unversioned/file-system.d.ts +2 -2
- package/dist/cjs/services/documentStore/unversioned/file-system.js +13 -13
- package/dist/cjs/services/documentStore/versioned/dynamodb.d.ts +3 -3
- package/dist/cjs/services/documentStore/versioned/dynamodb.js +6 -6
- package/dist/cjs/services/documentStore/versioned/file-system.d.ts +3 -3
- package/dist/cjs/services/documentStore/versioned/index.d.ts +1 -1
- package/dist/cjs/services/exercisesGateway/index.d.ts +2 -2
- package/dist/cjs/services/exercisesGateway/index.js +14 -14
- package/dist/cjs/services/fileServer/index.js +3 -3
- package/dist/cjs/services/fileServer/localFileServer.d.ts +2 -2
- package/dist/cjs/services/fileServer/localFileServer.js +9 -9
- package/dist/cjs/services/fileServer/s3FileServer.d.ts +2 -2
- package/dist/cjs/services/fileServer/s3FileServer.js +13 -13
- package/dist/cjs/services/httpMessageVerifier/index.d.ts +1 -1
- package/dist/cjs/services/httpMessageVerifier/index.js +16 -16
- package/dist/cjs/services/launchParams/signer.d.ts +2 -2
- package/dist/cjs/services/launchParams/signer.js +9 -9
- package/dist/cjs/services/launchParams/verifier.d.ts +1 -1
- package/dist/cjs/services/launchParams/verifier.js +8 -8
- package/dist/cjs/services/logger/console.d.ts +1 -1
- package/dist/cjs/services/logger/console.js +2 -2
- package/dist/cjs/services/logger/index.d.ts +1 -1
- package/dist/cjs/services/lrsGateway/addStatementDefaultFields.d.ts +1 -1
- package/dist/cjs/services/lrsGateway/attempt-utils.d.ts +7 -7
- package/dist/cjs/services/lrsGateway/batching.d.ts +2 -2
- package/dist/cjs/services/lrsGateway/batching.js +2 -2
- package/dist/cjs/services/lrsGateway/file-system.d.ts +3 -3
- package/dist/cjs/services/lrsGateway/file-system.js +8 -8
- package/dist/cjs/services/lrsGateway/index.d.ts +4 -4
- package/dist/cjs/services/lrsGateway/index.js +15 -15
- package/dist/cjs/services/lrsGateway/xapiUtils.d.ts +3 -3
- package/dist/cjs/services/lrsGateway/xapiUtils.js +2 -2
- package/dist/cjs/services/postgresConnection/index.d.ts +2 -2
- package/dist/cjs/services/postgresConnection/index.js +10 -10
- package/dist/cjs/services/queueProvider/local.d.ts +2 -2
- package/dist/cjs/services/queueProvider/local.js +5 -5
- package/dist/cjs/services/queueProvider/sqs.d.ts +2 -2
- package/dist/cjs/services/queueProvider/sqs.js +5 -5
- package/dist/cjs/services/searchProvider/memorySearchTheBadWay.d.ts +1 -1
- package/dist/cjs/services/searchProvider/memorySearchTheBadWay.js +9 -9
- package/dist/cjs/services/searchProvider/openSearch.d.ts +2 -2
- package/dist/cjs/services/searchProvider/openSearch.js +6 -6
- package/dist/cjs/services/searchProvider/streamIndexer.d.ts +2 -2
- package/dist/cjs/services/searchProvider/streamIndexer.js +3 -3
- package/dist/cjs/tsconfig.without-specs.cjs.tsbuildinfo +1 -1
- package/dist/esm/aws/ssmService.js +1 -1
- package/dist/esm/config/awsParameterConfig.d.ts +1 -1
- package/dist/esm/config/awsParameterConfig.js +1 -1
- package/dist/esm/config/envConfig.d.ts +1 -1
- package/dist/esm/config/lambdaParameterConfig.d.ts +1 -1
- package/dist/esm/config/lambdaParameterConfig.js +2 -2
- package/dist/esm/config/replaceConfig.d.ts +1 -1
- package/dist/esm/config/resolveConfigValue.d.ts +1 -1
- package/dist/esm/errors/index.d.ts +1 -1
- package/dist/esm/fetch/fetchStatusRetry.d.ts +1 -1
- package/dist/esm/fetch/index.d.ts +1 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +3 -2
- package/dist/esm/middleware/apiErrorHandler.d.ts +3 -3
- package/dist/esm/middleware/apiErrorHandler.js +3 -3
- package/dist/esm/middleware/apiSlowResponseMiddleware.d.ts +3 -3
- package/dist/esm/middleware/apiSlowResponseMiddleware.js +2 -2
- package/dist/esm/middleware/lambdaCorsResponseMiddleware.d.ts +2 -2
- package/dist/esm/middleware/lambdaCorsResponseMiddleware.js +1 -1
- package/dist/esm/middleware/throwNotFoundMiddleware.js +1 -1
- package/dist/esm/misc/helpers.d.ts +1 -1
- package/dist/esm/misc/merge.js +1 -1
- package/dist/esm/misc/timingSafeCompareStrings.d.ts +5 -0
- package/dist/esm/misc/timingSafeCompareStrings.js +11 -0
- package/dist/esm/pagination/index.d.ts +1 -1
- package/dist/esm/pagination/index.js +3 -3
- package/dist/esm/routing/helpers.d.ts +1 -1
- package/dist/esm/routing/helpers.js +3 -3
- package/dist/esm/routing/index.d.ts +1 -1
- package/dist/esm/routing/lambdaBatchRequestHandler.d.ts +2 -2
- package/dist/esm/routing/lambdaBatchRequestHandler.js +1 -1
- package/dist/esm/routing/validators/zod.js +1 -1
- package/dist/esm/services/accountsGateway/index.d.ts +5 -5
- package/dist/esm/services/accountsGateway/index.js +4 -4
- package/dist/esm/services/apiGateway/index.d.ts +4 -4
- package/dist/esm/services/apiGateway/index.js +4 -4
- package/dist/esm/services/authProvider/browser.d.ts +3 -3
- package/dist/esm/services/authProvider/browser.js +4 -4
- package/dist/esm/services/authProvider/decryption.d.ts +3 -3
- package/dist/esm/services/authProvider/decryption.js +3 -3
- package/dist/esm/services/authProvider/index.d.ts +3 -3
- package/dist/esm/services/authProvider/launchToken.d.ts +3 -3
- package/dist/esm/services/authProvider/launchToken.js +1 -1
- package/dist/esm/services/authProvider/subrequest.d.ts +3 -3
- package/dist/esm/services/authProvider/subrequest.js +4 -4
- package/dist/esm/services/authProvider/utils/decryptAndVerify.d.ts +1 -1
- package/dist/esm/services/authProvider/utils/decryptAndVerify.js +1 -1
- package/dist/esm/services/authProvider/utils/embeddedAuthProvider.d.ts +1 -1
- package/dist/esm/services/authProvider/utils/userRoleValidator.d.ts +3 -3
- package/dist/esm/services/authProvider/utils/userRoleValidator.js +2 -2
- package/dist/esm/services/authProvider/utils/userSubrequest.d.ts +2 -2
- package/dist/esm/services/documentStore/dynamoEncoding.d.ts +1 -1
- package/dist/esm/services/documentStore/dynamoEncoding.js +1 -1
- package/dist/esm/services/documentStore/unversioned/dynamodb.d.ts +2 -2
- package/dist/esm/services/documentStore/unversioned/dynamodb.js +4 -4
- package/dist/esm/services/documentStore/unversioned/file-system.d.ts +2 -2
- package/dist/esm/services/documentStore/unversioned/file-system.js +4 -4
- package/dist/esm/services/documentStore/versioned/dynamodb.d.ts +3 -3
- package/dist/esm/services/documentStore/versioned/dynamodb.js +3 -3
- package/dist/esm/services/documentStore/versioned/file-system.d.ts +3 -3
- package/dist/esm/services/documentStore/versioned/index.d.ts +1 -1
- package/dist/esm/services/exercisesGateway/index.d.ts +2 -2
- package/dist/esm/services/exercisesGateway/index.js +5 -5
- package/dist/esm/services/fileServer/index.js +1 -1
- package/dist/esm/services/fileServer/localFileServer.d.ts +2 -2
- package/dist/esm/services/fileServer/localFileServer.js +3 -3
- package/dist/esm/services/fileServer/s3FileServer.d.ts +2 -2
- package/dist/esm/services/fileServer/s3FileServer.js +4 -4
- package/dist/esm/services/httpMessageVerifier/index.d.ts +1 -1
- package/dist/esm/services/httpMessageVerifier/index.js +3 -3
- package/dist/esm/services/launchParams/signer.d.ts +2 -2
- package/dist/esm/services/launchParams/signer.js +3 -3
- package/dist/esm/services/launchParams/verifier.d.ts +1 -1
- package/dist/esm/services/launchParams/verifier.js +3 -3
- package/dist/esm/services/logger/console.d.ts +1 -1
- package/dist/esm/services/logger/console.js +1 -1
- package/dist/esm/services/logger/index.d.ts +1 -1
- package/dist/esm/services/lrsGateway/addStatementDefaultFields.d.ts +1 -1
- package/dist/esm/services/lrsGateway/attempt-utils.d.ts +7 -7
- package/dist/esm/services/lrsGateway/batching.d.ts +2 -2
- package/dist/esm/services/lrsGateway/batching.js +1 -1
- package/dist/esm/services/lrsGateway/file-system.d.ts +3 -3
- package/dist/esm/services/lrsGateway/file-system.js +4 -4
- package/dist/esm/services/lrsGateway/index.d.ts +4 -4
- package/dist/esm/services/lrsGateway/index.js +6 -6
- package/dist/esm/services/lrsGateway/xapiUtils.d.ts +3 -3
- package/dist/esm/services/lrsGateway/xapiUtils.js +1 -1
- package/dist/esm/services/postgresConnection/index.d.ts +2 -2
- package/dist/esm/services/postgresConnection/index.js +3 -3
- package/dist/esm/services/queueProvider/local.d.ts +2 -2
- package/dist/esm/services/queueProvider/local.js +2 -2
- package/dist/esm/services/queueProvider/sqs.d.ts +2 -2
- package/dist/esm/services/queueProvider/sqs.js +2 -2
- package/dist/esm/services/searchProvider/memorySearchTheBadWay.d.ts +1 -1
- package/dist/esm/services/searchProvider/memorySearchTheBadWay.js +3 -3
- package/dist/esm/services/searchProvider/openSearch.d.ts +2 -2
- package/dist/esm/services/searchProvider/openSearch.js +2 -2
- package/dist/esm/services/searchProvider/streamIndexer.d.ts +2 -2
- package/dist/esm/services/searchProvider/streamIndexer.js +1 -1
- package/dist/esm/tsconfig.without-specs.esm.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/script/bin/.init-params-script.bash.swp +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GetParameterCommand } from '@aws-sdk/client-ssm';
|
|
2
|
-
import { assertDefined } from '../assertions
|
|
2
|
+
import { assertDefined } from '../assertions';
|
|
3
3
|
import { ssmService } from '../aws/ssmService';
|
|
4
4
|
import { resolveConfigValue } from './resolveConfigValue';
|
|
5
5
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConfigValueProvider } from '
|
|
1
|
+
import { ConfigValueProvider } from '.';
|
|
2
2
|
/**
|
|
3
3
|
* Returns a value from the AWS Parameter Store. Can only be used during in AWS Lambda, and
|
|
4
4
|
* requires that the AWS Parameters and Secrets Lambda Extension Layer be included in the Lambda.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import fetch from 'node-fetch';
|
|
2
|
-
import { assertDefined } from '../assertions
|
|
2
|
+
import { assertDefined } from '../assertions';
|
|
3
3
|
import { retryWithDelay } from '../misc/helpers';
|
|
4
4
|
import { envConfig } from './envConfig';
|
|
5
|
-
import { resolveConfigValue } from '
|
|
5
|
+
import { resolveConfigValue } from '.';
|
|
6
6
|
const lambdaExtensionUrl = 'http://localhost:2773';
|
|
7
7
|
let lambdaExtensionReadyPromise;
|
|
8
8
|
/**
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export * from './misc/
|
|
1
|
+
export * from './misc/hashValue';
|
|
2
2
|
export * from './misc/helpers';
|
|
3
3
|
export * from './misc/merge';
|
|
4
|
-
export * from './misc/
|
|
4
|
+
export * from './misc/partitionSequence';
|
|
5
|
+
export * from './misc/timingSafeCompareStrings';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export * from './misc/
|
|
1
|
+
export * from './misc/hashValue';
|
|
2
2
|
export * from './misc/helpers';
|
|
3
3
|
export * from './misc/merge';
|
|
4
|
-
export * from './misc/
|
|
4
|
+
export * from './misc/partitionSequence';
|
|
5
|
+
export * from './misc/timingSafeCompareStrings';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ForbiddenError, InvalidRequestError, NotFoundError, SessionExpiredError, UnauthorizedError, ValidationError } from '../errors
|
|
2
|
-
import type { ApiResponse } from '../routing
|
|
3
|
-
import type { Logger } from '../services/logger
|
|
1
|
+
import { ForbiddenError, InvalidRequestError, NotFoundError, SessionExpiredError, UnauthorizedError, ValidationError } from '../errors';
|
|
2
|
+
import type { ApiResponse } from '../routing';
|
|
3
|
+
import type { Logger } from '../services/logger';
|
|
4
4
|
export type DefaultErrors = {
|
|
5
5
|
InvalidRequestError: InvalidRequestError;
|
|
6
6
|
UnauthorizedError: UnauthorizedError;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { isAppError, } from '../errors
|
|
2
|
-
import { apiJsonResponse, apiTextResponse } from '../routing
|
|
3
|
-
import { Level } from '../services/logger
|
|
1
|
+
import { isAppError, } from '../errors';
|
|
2
|
+
import { apiJsonResponse, apiTextResponse } from '../routing';
|
|
3
|
+
import { Level } from '../services/logger';
|
|
4
4
|
export const defaultHandlers = {
|
|
5
5
|
InvalidRequestError: (e) => apiTextResponse(400, `400 ${e.message}`),
|
|
6
6
|
UnauthorizedError: (e) => apiTextResponse(401, `401 ${e.message}`),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { ConfigProviderForConfig } from '../config
|
|
2
|
-
import type { ApiResponse } from '../routing
|
|
3
|
-
import type { Logger } from '../services/logger
|
|
1
|
+
import type { ConfigProviderForConfig } from '../config';
|
|
2
|
+
import type { ApiResponse } from '../routing';
|
|
3
|
+
import type { Logger } from '../services/logger';
|
|
4
4
|
type Config = {
|
|
5
5
|
logResponseSlowerThan: string;
|
|
6
6
|
timeoutResponseAfter: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resolveConfigValue } from '../config/resolveConfigValue';
|
|
2
2
|
import { once } from '../misc/helpers';
|
|
3
|
-
import { apiTextResponse } from '../routing
|
|
4
|
-
import { Level } from '../services/logger
|
|
3
|
+
import { apiTextResponse } from '../routing';
|
|
4
|
+
import { Level } from '../services/logger';
|
|
5
5
|
/**
|
|
6
6
|
* Creates response middleware that logs slow responses and times out responses that take too long. lambda functions have a timeout setting, but when a lambda times out there is no way to log anything helpful before it exists. this middleware allows the logger context to show up for timeout requests. just make sure that the `timeoutResponseAfter` is set to something slightly shorter than the lambda timeout so that it has time to run.
|
|
7
7
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { APIGatewayProxyEventV2 } from 'aws-lambda';
|
|
2
|
-
import { ConfigProviderForConfig } from '../config
|
|
3
|
-
import { ApiResponse } from '../routing
|
|
2
|
+
import { ConfigProviderForConfig } from '../config';
|
|
3
|
+
import { ApiResponse } from '../routing';
|
|
4
4
|
type Config = {
|
|
5
5
|
corsAllowedHostRegex: string;
|
|
6
6
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolveConfigValue } from '../config/resolveConfigValue';
|
|
2
2
|
import { once } from '../misc/helpers';
|
|
3
|
-
import { apiTextResponse } from '../routing
|
|
3
|
+
import { apiTextResponse } from '../routing';
|
|
4
4
|
/**
|
|
5
5
|
* Creates response middleware that adds CORS headers to responses from approved hosts.
|
|
6
6
|
*
|
package/dist/esm/misc/merge.js
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { timingSafeEqual } from 'crypto';
|
|
2
|
+
/**
|
|
3
|
+
* Compares two strings in constant time to prevent timing attacks.
|
|
4
|
+
* Safe to use for shared secret or API token comparisons.
|
|
5
|
+
*/
|
|
6
|
+
export const timingSafeCompareStrings = (a, b) => {
|
|
7
|
+
const aBuf = Buffer.from(a, 'utf8');
|
|
8
|
+
const bBuf = Buffer.alloc(aBuf.length);
|
|
9
|
+
bBuf.write(b, 0, aBuf.length, 'utf8');
|
|
10
|
+
return timingSafeEqual(aBuf, bBuf) && a.length === b.length;
|
|
11
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { QueryParams, RouteMatchRecord } from '../routing
|
|
1
|
+
import { QueryParams, RouteMatchRecord } from '../routing';
|
|
2
2
|
export type PaginationHandler<Pa, Q extends QueryParams> = <R>(queryParams: Q, match: RouteMatchRecord<R>) => Pa & {
|
|
3
3
|
getUnusedQueryParams: () => Q;
|
|
4
4
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { notNaN } from '../assertions
|
|
2
|
-
import { InvalidRequestError } from '../errors
|
|
3
|
-
import { renderAnyRouteUrl } from '../routing
|
|
1
|
+
import { notNaN } from '../assertions';
|
|
2
|
+
import { InvalidRequestError } from '../errors';
|
|
3
|
+
import { renderAnyRouteUrl } from '../routing';
|
|
4
4
|
/**
|
|
5
5
|
* helper to create middleware with the given paginator. aside from taking care of annoying to write pagination logic, these helpers also make
|
|
6
6
|
* sure that all item list responses have the same formatting.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { assertErrorInstanceOf } from '../assertions
|
|
2
|
-
import { InvalidRequestError } from '../errors
|
|
3
|
-
import { isPlainObject } from '../guards
|
|
1
|
+
import { assertErrorInstanceOf } from '../assertions';
|
|
2
|
+
import { InvalidRequestError } from '../errors';
|
|
3
|
+
import { isPlainObject } from '../guards';
|
|
4
4
|
/**
|
|
5
5
|
* Get the value of a header, case insensitive; note if there are multiple headers of the same
|
|
6
6
|
* value, this only returns the first value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { APIGatewayProxyEventV2 } from 'aws-lambda';
|
|
2
|
-
import { Logger } from '../services/logger
|
|
3
|
-
import { ApiResponse, BatchHandler } from '
|
|
2
|
+
import { Logger } from '../services/logger';
|
|
3
|
+
import { ApiResponse, BatchHandler } from '.';
|
|
4
4
|
type Ro = Promise<ApiResponse<number, any>>;
|
|
5
5
|
export declare const lambdaBatchRequestHandler: <Sa, Ri extends APIGatewayProxyEventV2>(config: {
|
|
6
6
|
batchPath: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { asyncPool } from '../misc/asyncPool';
|
|
3
3
|
import { getRequestBody } from './helpers';
|
|
4
|
-
import { apiJsonResponse } from '
|
|
4
|
+
import { apiJsonResponse } from '.';
|
|
5
5
|
const BatchItemSchema = z.object({
|
|
6
6
|
id: z.string(),
|
|
7
7
|
path: z.string(),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* spell-checker: ignore treeify */
|
|
2
2
|
import { treeifyError } from 'zod';
|
|
3
|
-
import { ValidationError } from '../../errors
|
|
3
|
+
import { ValidationError } from '../../errors';
|
|
4
4
|
export const zodPayloadValidator = (validator) => (input) => {
|
|
5
5
|
const result = validator.safeParse(input);
|
|
6
6
|
if (result.success) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ConfigProviderForConfig } from '../../config
|
|
2
|
-
import { GenericFetch } from '../../fetch
|
|
3
|
-
import { JsonCompatibleStruct } from '../../routing
|
|
4
|
-
import { ApiUser } from '../authProvider
|
|
5
|
-
import { Logger } from '../logger
|
|
1
|
+
import { ConfigProviderForConfig } from '../../config';
|
|
2
|
+
import { GenericFetch } from '../../fetch';
|
|
3
|
+
import { JsonCompatibleStruct } from '../../routing';
|
|
4
|
+
import { ApiUser } from '../authProvider';
|
|
5
|
+
import { Logger } from '../logger';
|
|
6
6
|
export type Config = {
|
|
7
7
|
accountsBase: string;
|
|
8
8
|
accountsAuthToken: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { chunk, isEqual } from 'lodash';
|
|
2
2
|
import queryString from 'query-string';
|
|
3
|
-
import { resolveConfigValue } from '../../config
|
|
4
|
-
import { ifDefined, isDefined } from '../../guards
|
|
3
|
+
import { resolveConfigValue } from '../../config';
|
|
4
|
+
import { ifDefined, isDefined } from '../../guards';
|
|
5
5
|
import { once } from '../../misc/helpers';
|
|
6
|
-
import { METHOD } from '../../routing
|
|
7
|
-
import { Level } from '../logger
|
|
6
|
+
import { METHOD } from '../../routing';
|
|
7
|
+
import { Level } from '../logger';
|
|
8
8
|
class ApiError extends Error {
|
|
9
9
|
constructor(message, status) {
|
|
10
10
|
super(message);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Headers } from 'node-fetch';
|
|
2
|
-
import { ConfigProviderForConfig } from '../../config
|
|
3
|
-
import { ConfigForFetch, GenericFetch, Response } from '../../fetch
|
|
4
|
-
import { AnyRoute, ApiResponse, OutputForRoute, ParamsForRoute, PayloadForRoute, QueryParams } from '../../routing
|
|
2
|
+
import { ConfigProviderForConfig } from '../../config';
|
|
3
|
+
import { ConfigForFetch, GenericFetch, Response } from '../../fetch';
|
|
4
|
+
import { AnyRoute, ApiResponse, OutputForRoute, ParamsForRoute, PayloadForRoute, QueryParams } from '../../routing';
|
|
5
5
|
import { UnwrapPromise } from '../../types';
|
|
6
|
-
import { Logger } from '../logger
|
|
6
|
+
import { Logger } from '../logger';
|
|
7
7
|
export type TResponsePayload<R> = R extends ApiResponse<any, infer P> ? P : never;
|
|
8
8
|
export type TResponseStatus<R> = R extends ApiResponse<infer S, any> ? S : never;
|
|
9
9
|
export type RouteClient<R> = {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as pathToRegexp from 'path-to-regexp';
|
|
2
2
|
import queryString from 'query-string';
|
|
3
3
|
import { v4 as uuid } from 'uuid';
|
|
4
|
-
import { merge } from '
|
|
5
|
-
import { resolveConfigValue } from '../../config
|
|
6
|
-
import { SessionExpiredError, UnauthorizedError } from '../../errors
|
|
4
|
+
import { merge } from '../..';
|
|
5
|
+
import { resolveConfigValue } from '../../config';
|
|
6
|
+
import { SessionExpiredError, UnauthorizedError } from '../../errors';
|
|
7
7
|
import { fetchStatusRetry } from '../../fetch/fetchStatusRetry';
|
|
8
|
-
import { Level } from '../logger
|
|
8
|
+
import { Level } from '../logger';
|
|
9
9
|
/** Pulls the content out of a response based on the content type */
|
|
10
10
|
export const loadResponse = (response) => () => {
|
|
11
11
|
const [contentType] = (response.headers.get('content-type') || '').split(';');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ConfigProviderForConfig } from '../../config
|
|
2
|
-
import { GenericFetch } from '../../fetch
|
|
1
|
+
import { ConfigProviderForConfig } from '../../config';
|
|
2
|
+
import { GenericFetch } from '../../fetch';
|
|
3
3
|
import { UserData } from './utils/embeddedAuthProvider';
|
|
4
|
-
import { ApiUser, AuthProvider } from '
|
|
4
|
+
import { ApiUser, AuthProvider } from '.';
|
|
5
5
|
type Config = {
|
|
6
6
|
accountsBase: string;
|
|
7
7
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { once } from '
|
|
2
|
-
import { resolveConfigValue } from '../../config
|
|
3
|
-
import { ifDefined } from '../../guards
|
|
4
|
-
import { METHOD, unsafePayloadValidator } from '../../routing
|
|
1
|
+
import { once } from '../..';
|
|
2
|
+
import { resolveConfigValue } from '../../config';
|
|
3
|
+
import { ifDefined } from '../../guards';
|
|
4
|
+
import { METHOD, unsafePayloadValidator } from '../../routing';
|
|
5
5
|
import { embeddedAuthProvider, PostMessageTypes } from './utils/embeddedAuthProvider';
|
|
6
6
|
const isUserData = unsafePayloadValidator();
|
|
7
7
|
export const browserAuthProvider = ({ window, configSpace }) => (configProvider) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { ConfigProviderForConfig } from '../../config
|
|
2
|
-
import { GenericFetch } from '../../fetch
|
|
3
|
-
import { ApiUser, AuthProvider, CookieAuthProvider } from '
|
|
1
|
+
import type { ConfigProviderForConfig } from '../../config';
|
|
2
|
+
import { GenericFetch } from '../../fetch';
|
|
3
|
+
import { ApiUser, AuthProvider, CookieAuthProvider } from '.';
|
|
4
4
|
type Config = {
|
|
5
5
|
accountsBase: string;
|
|
6
6
|
cookieName: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { resolveConfigValue } from '../../config/resolveConfigValue';
|
|
2
|
-
import { SessionExpiredError } from '../../errors
|
|
3
|
-
import { ifDefined } from '../../guards
|
|
2
|
+
import { SessionExpiredError } from '../../errors';
|
|
3
|
+
import { ifDefined } from '../../guards';
|
|
4
4
|
import { once } from '../../misc/helpers';
|
|
5
5
|
import { decryptAndVerify } from './utils/decryptAndVerify';
|
|
6
6
|
import { loadUserData } from './utils/userSubrequest';
|
|
7
|
-
import { getAuthTokenOrCookie } from '
|
|
7
|
+
import { getAuthTokenOrCookie } from '.';
|
|
8
8
|
export const decryptionAuthProvider = (initializer) => (configProvider) => {
|
|
9
9
|
const config = configProvider[ifDefined(initializer.configSpace, 'decryption')];
|
|
10
10
|
const accountsBase = once(() => resolveConfigValue(config.accountsBase));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { FetchConfig } from '../../fetch
|
|
2
|
-
import type { HttpHeaders, QueryParams } from '../../routing
|
|
3
|
-
import type { Logger } from '../logger
|
|
1
|
+
import type { FetchConfig } from '../../fetch';
|
|
2
|
+
import type { HttpHeaders, QueryParams } from '../../routing';
|
|
3
|
+
import type { Logger } from '../logger';
|
|
4
4
|
export type ConsentPreferences = {
|
|
5
5
|
consent_preferences: {
|
|
6
6
|
accepted: string[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AccountsGateway } from '../accountsGateway
|
|
1
|
+
import { AccountsGateway } from '../accountsGateway';
|
|
2
2
|
import { LaunchVerifier } from '../launchParams/verifier';
|
|
3
|
-
import type { Logger } from '../logger
|
|
4
|
-
import { AuthProvider } from '
|
|
3
|
+
import type { Logger } from '../logger';
|
|
4
|
+
import { AuthProvider } from '.';
|
|
5
5
|
export declare const launchTokenAuthMiddleware: () => <M extends {
|
|
6
6
|
logger: Logger;
|
|
7
7
|
accountsGateway: AccountsGateway;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ConfigProviderForConfig } from '../../config
|
|
2
|
-
import { GenericFetch } from '../../fetch
|
|
3
|
-
import { CookieAuthProvider } from '
|
|
1
|
+
import { ConfigProviderForConfig } from '../../config';
|
|
2
|
+
import { GenericFetch } from '../../fetch';
|
|
3
|
+
import { CookieAuthProvider } from '.';
|
|
4
4
|
type Config = {
|
|
5
5
|
accountsBase: string;
|
|
6
6
|
cookieName: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { once } from '
|
|
2
|
-
import { resolveConfigValue } from '../../config
|
|
3
|
-
import { ifDefined } from '../../guards
|
|
1
|
+
import { once } from '../..';
|
|
2
|
+
import { resolveConfigValue } from '../../config';
|
|
3
|
+
import { ifDefined } from '../../guards';
|
|
4
4
|
import { loadUserData } from './utils/userSubrequest';
|
|
5
|
-
import { getAuthTokenOrCookie } from '
|
|
5
|
+
import { getAuthTokenOrCookie } from '.';
|
|
6
6
|
export const subrequestAuthProvider = (initializer) => (configProvider) => {
|
|
7
7
|
const config = configProvider[ifDefined(initializer.configSpace, 'subrequest')];
|
|
8
8
|
const cookieName = once(() => resolveConfigValue(config.cookieName));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createDecipheriv, verify } from 'crypto';
|
|
2
|
-
import { isPlainObject } from '../../../guards
|
|
2
|
+
import { isPlainObject } from '../../../guards';
|
|
3
3
|
export const decryptJwe = (jwe, encryptionPrivateKey) => {
|
|
4
4
|
const jweParts = jwe.split('.', 6);
|
|
5
5
|
if (jweParts.length !== 5 || jweParts[1]) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AuthProvider } from '
|
|
2
|
-
import { AssertionFailed } from '../../../assertions
|
|
3
|
-
import { ConfigProviderForConfig } from '../../../config
|
|
1
|
+
import { AuthProvider } from '..';
|
|
2
|
+
import { AssertionFailed } from '../../../assertions';
|
|
3
|
+
import { ConfigProviderForConfig } from '../../../config';
|
|
4
4
|
type Config = {
|
|
5
5
|
application: string;
|
|
6
6
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { doThrow } from '../../../assertions
|
|
1
|
+
import { doThrow } from '../../../assertions';
|
|
2
2
|
import { resolveConfigValue } from '../../../config/resolveConfigValue';
|
|
3
|
-
import { UnauthorizedError } from '../../../errors
|
|
3
|
+
import { UnauthorizedError } from '../../../errors';
|
|
4
4
|
import { once } from '../../../misc/helpers';
|
|
5
5
|
export const createUserRoleValidator = (auth, config) => {
|
|
6
6
|
const application = once(() => resolveConfigValue(config.application));
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ApiUser } from '
|
|
2
|
-
import { GenericFetch } from '../../../fetch
|
|
1
|
+
import { ApiUser } from '..';
|
|
2
|
+
import { GenericFetch } from '../../../fetch';
|
|
3
3
|
export declare const loadUserData: (fetch: GenericFetch, accountsBase: string, cookieName: string, token: string) => Promise<ApiUser | undefined>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AttributeValue } from '@aws-sdk/client-dynamodb';
|
|
2
|
-
import { DocumentBaseType, DocumentBaseValueTypes } from '
|
|
2
|
+
import { DocumentBaseType, DocumentBaseValueTypes } from '.';
|
|
3
3
|
export declare const encodeDynamoAttribute: (value: DocumentBaseValueTypes) => AttributeValue;
|
|
4
4
|
export declare const encodeDynamoDocument: (base: DocumentBaseType) => {
|
|
5
5
|
[k: string]: AttributeValue;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DynamoDB } from '@aws-sdk/client-dynamodb';
|
|
2
|
-
import { Config, TDocument } from '
|
|
3
|
-
import { ConfigProviderForConfig } from '../../../config
|
|
2
|
+
import { Config, TDocument } from '..';
|
|
3
|
+
import { ConfigProviderForConfig } from '../../../config';
|
|
4
4
|
interface Initializer<C> {
|
|
5
5
|
configSpace?: C;
|
|
6
6
|
dynamoClient?: DynamoDB;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BatchGetItemCommand, DynamoDB, GetItemCommand, PutItemCommand, QueryCommand, ScanCommand, UpdateItemCommand } from '@aws-sdk/client-dynamodb';
|
|
2
2
|
import asyncPool from 'tiny-async-pool';
|
|
3
|
-
import { once } from '
|
|
4
|
-
import { resolveConfigValue } from '../../../config
|
|
5
|
-
import { ConflictError, NotFoundError } from '../../../errors
|
|
6
|
-
import { ifDefined } from '../../../guards
|
|
3
|
+
import { once } from '../../..';
|
|
4
|
+
import { resolveConfigValue } from '../../../config';
|
|
5
|
+
import { ConflictError, NotFoundError } from '../../../errors';
|
|
6
|
+
import { ifDefined } from '../../../guards';
|
|
7
7
|
import { decodeDynamoDocument, encodeDynamoAttribute, encodeDynamoDocument } from '../dynamoEncoding';
|
|
8
8
|
export const dynamoUnversionedDocumentStore = (initializer) => {
|
|
9
9
|
const init = ifDefined(initializer, {});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Config, TDocument } from '
|
|
2
|
-
import { ConfigProviderForConfig } from '../../../config
|
|
1
|
+
import { Config, TDocument } from '..';
|
|
2
|
+
import { ConfigProviderForConfig } from '../../../config';
|
|
3
3
|
interface Initializer<C> {
|
|
4
4
|
dataDir: string;
|
|
5
5
|
fs?: Pick<typeof import('fs'), 'mkdir' | 'readdir' | 'readFile' | 'writeFile'>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as fsModule from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import { hashValue } from '
|
|
4
|
-
import { resolveConfigValue } from '../../../config
|
|
5
|
-
import { ConflictError, NotFoundError } from '../../../errors
|
|
6
|
-
import { ifDefined, isDefined } from '../../../guards
|
|
3
|
+
import { hashValue } from '../../..';
|
|
4
|
+
import { resolveConfigValue } from '../../../config';
|
|
5
|
+
import { ConflictError, NotFoundError } from '../../../errors';
|
|
6
|
+
import { ifDefined, isDefined } from '../../../guards';
|
|
7
7
|
export const fileSystemUnversionedDocumentStore = (initializer) => () => (configProvider) => (_, hashKey, options) => {
|
|
8
8
|
const tableName = resolveConfigValue(configProvider[initializer.configSpace || 'fileSystem'].tableName);
|
|
9
9
|
const tablePath = tableName.then((table) => path.join(initializer.dataDir, table));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DynamoDB } from '@aws-sdk/client-dynamodb';
|
|
2
|
-
import { Config } from '
|
|
3
|
-
import { ConfigProviderForConfig } from '../../../config
|
|
4
|
-
import { VersionedDocumentAuthor, VersionedTDocument } from '
|
|
2
|
+
import { Config } from '..';
|
|
3
|
+
import { ConfigProviderForConfig } from '../../../config';
|
|
4
|
+
import { VersionedDocumentAuthor, VersionedTDocument } from '.';
|
|
5
5
|
interface Initializer<C> {
|
|
6
6
|
configSpace?: C;
|
|
7
7
|
dynamoClient?: DynamoDB;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DynamoDB, PutItemCommand, QueryCommand, ScanCommand } from '@aws-sdk/client-dynamodb';
|
|
2
|
-
import { once } from '
|
|
3
|
-
import { resolveConfigValue } from '../../../config
|
|
4
|
-
import { ifDefined } from '../../../guards
|
|
2
|
+
import { once } from '../../..';
|
|
3
|
+
import { resolveConfigValue } from '../../../config';
|
|
4
|
+
import { ifDefined } from '../../../guards';
|
|
5
5
|
import { decodeDynamoDocument, encodeDynamoAttribute, encodeDynamoDocument } from '../dynamoEncoding';
|
|
6
6
|
// i'm not really excited about getAuthor being required, but ts is getting confused about the type when unspecified
|
|
7
7
|
export const dynamoVersionedDocumentStore = (initializer) => {
|