quidproquo-actionprocessor-awslambda 0.1.7 → 0.1.8
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/lib/commonjs/getActionProcessor/core/ai/getAiPromptActionProcessor.js +1 -1
- package/lib/commonjs/getActionProcessor/core/ai/getAiPromptActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.js +16 -5
- package/lib/commonjs/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/ai/logic/createDriveFileResolver.js +2 -2
- package/lib/commonjs/getActionProcessor/core/ai/logic/createDriveFileResolver.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/ai/logic/index.d.ts +1 -0
- package/lib/commonjs/getActionProcessor/core/ai/logic/index.js +1 -0
- package/lib/commonjs/getActionProcessor/core/ai/logic/index.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinish.js +2 -1
- package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinish.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.js +2 -1
- package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/ai/logic/prepareAiPromptCall.js +10 -12
- package/lib/commonjs/getActionProcessor/core/ai/logic/prepareAiPromptCall.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/ai/logic/toAiStreamFinishReason.d.ts +2 -0
- package/lib/commonjs/getActionProcessor/core/ai/logic/toAiStreamFinishReason.js +10 -0
- package/lib/commonjs/getActionProcessor/core/ai/logic/toAiStreamFinishReason.js.map +1 -0
- package/lib/commonjs/getActionProcessor/core/ai/logic/toCacheableMessages.js +9 -9
- package/lib/commonjs/getActionProcessor/core/ai/logic/toCacheableMessages.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/ai/logic/toSdkMessages.d.ts +1 -1
- package/lib/commonjs/getActionProcessor/core/ai/logic/toSdkMessages.js +1 -1
- package/lib/commonjs/getActionProcessor/core/ai/logic/toSdkMessages.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.d.ts +2 -2
- package/lib/commonjs/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.js +10 -6
- package/lib/commonjs/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileDeleteActionProcessor.js +4 -2
- package/lib/commonjs/getActionProcessor/core/file/getFileDeleteActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileExistsActionProcessor.js +4 -2
- package/lib/commonjs/getActionProcessor/core/file/getFileExistsActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileGenerateTemporarySecureUrlActionProcessor.js +7 -3
- package/lib/commonjs/getActionProcessor/core/file/getFileGenerateTemporarySecureUrlActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js +7 -3
- package/lib/commonjs/getActionProcessor/core/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileIsColdStorageActionProcessor.js +4 -2
- package/lib/commonjs/getActionProcessor/core/file/getFileIsColdStorageActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileListDirectoryActionProcessor.js +6 -4
- package/lib/commonjs/getActionProcessor/core/file/getFileListDirectoryActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileReadBinaryContentsActionProcessor.js +4 -2
- package/lib/commonjs/getActionProcessor/core/file/getFileReadBinaryContentsActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileReadObjectJsonActionProcessor.js +7 -2
- package/lib/commonjs/getActionProcessor/core/file/getFileReadObjectJsonActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileReadTextContentsActionProcessor.js +6 -2
- package/lib/commonjs/getActionProcessor/core/file/getFileReadTextContentsActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileStreamOpenActionProcessor.js +3 -2
- package/lib/commonjs/getActionProcessor/core/file/getFileStreamOpenActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileWriteBinaryContentsActionProcessor.js +3 -2
- package/lib/commonjs/getActionProcessor/core/file/getFileWriteBinaryContentsActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileWriteObjectJsonActionProcessor.js +3 -2
- package/lib/commonjs/getActionProcessor/core/file/getFileWriteObjectJsonActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.js +3 -2
- package/lib/commonjs/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.js +11 -9
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.js +7 -3
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js +8 -3
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js +9 -5
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js +9 -2
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js +10 -8
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.js +13 -11
- package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/keyValueStore/index.js +2 -1
- package/lib/commonjs/getActionProcessor/core/keyValueStore/index.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.js +2 -2
- package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.js.map +1 -1
- package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.js +11 -1
- package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.js.map +1 -1
- package/lib/commonjs/lambdaHandlers/getSqsEvent_queueEvent.js +3 -3
- package/lib/commonjs/lambdaHandlers/getSqsEvent_queueEvent.js.map +1 -1
- package/lib/commonjs/logic/cognito/requestEmailVerificationCode.d.ts +2 -1
- package/lib/commonjs/logic/cognito/requestEmailVerificationCode.js +8 -1
- package/lib/commonjs/logic/cognito/requestEmailVerificationCode.js.map +1 -1
- package/lib/commonjs/logic/dynamo/getAllItems.d.ts +2 -1
- package/lib/commonjs/logic/dynamo/getAllItems.js +7 -2
- package/lib/commonjs/logic/dynamo/getAllItems.js.map +1 -1
- package/lib/commonjs/logic/dynamo/getItem.d.ts +2 -1
- package/lib/commonjs/logic/dynamo/getItem.js +8 -5
- package/lib/commonjs/logic/dynamo/getItem.js.map +1 -1
- package/lib/esm/getActionProcessor/core/ai/getAiPromptActionProcessor.js +1 -1
- package/lib/esm/getActionProcessor/core/ai/getAiPromptActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.js +16 -6
- package/lib/esm/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/ai/logic/createDriveFileResolver.js +2 -2
- package/lib/esm/getActionProcessor/core/ai/logic/createDriveFileResolver.js.map +1 -1
- package/lib/esm/getActionProcessor/core/ai/logic/index.d.ts +1 -0
- package/lib/esm/getActionProcessor/core/ai/logic/index.js +1 -0
- package/lib/esm/getActionProcessor/core/ai/logic/index.js.map +1 -1
- package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinish.js +2 -1
- package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinish.js.map +1 -1
- package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.js +2 -1
- package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.js.map +1 -1
- package/lib/esm/getActionProcessor/core/ai/logic/prepareAiPromptCall.js +13 -8
- package/lib/esm/getActionProcessor/core/ai/logic/prepareAiPromptCall.js.map +1 -1
- package/lib/esm/getActionProcessor/core/ai/logic/toAiStreamFinishReason.d.ts +2 -0
- package/lib/esm/getActionProcessor/core/ai/logic/toAiStreamFinishReason.js +6 -0
- package/lib/esm/getActionProcessor/core/ai/logic/toAiStreamFinishReason.js.map +1 -0
- package/lib/esm/getActionProcessor/core/ai/logic/toCacheableMessages.js +15 -15
- package/lib/esm/getActionProcessor/core/ai/logic/toCacheableMessages.js.map +1 -1
- package/lib/esm/getActionProcessor/core/ai/logic/toSdkMessages.d.ts +1 -1
- package/lib/esm/getActionProcessor/core/ai/logic/toSdkMessages.js +1 -1
- package/lib/esm/getActionProcessor/core/ai/logic/toSdkMessages.js.map +1 -1
- package/lib/esm/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.d.ts +2 -2
- package/lib/esm/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.js +10 -6
- package/lib/esm/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileDeleteActionProcessor.js +5 -3
- package/lib/esm/getActionProcessor/core/file/getFileDeleteActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileExistsActionProcessor.js +5 -3
- package/lib/esm/getActionProcessor/core/file/getFileExistsActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileGenerateTemporarySecureUrlActionProcessor.js +9 -5
- package/lib/esm/getActionProcessor/core/file/getFileGenerateTemporarySecureUrlActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js +9 -5
- package/lib/esm/getActionProcessor/core/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileIsColdStorageActionProcessor.js +5 -3
- package/lib/esm/getActionProcessor/core/file/getFileIsColdStorageActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileListDirectoryActionProcessor.js +7 -4
- package/lib/esm/getActionProcessor/core/file/getFileListDirectoryActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileReadBinaryContentsActionProcessor.js +5 -3
- package/lib/esm/getActionProcessor/core/file/getFileReadBinaryContentsActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileReadObjectJsonActionProcessor.js +8 -3
- package/lib/esm/getActionProcessor/core/file/getFileReadObjectJsonActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileReadTextContentsActionProcessor.js +7 -3
- package/lib/esm/getActionProcessor/core/file/getFileReadTextContentsActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileStreamOpenActionProcessor.js +4 -3
- package/lib/esm/getActionProcessor/core/file/getFileStreamOpenActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileWriteBinaryContentsActionProcessor.js +4 -3
- package/lib/esm/getActionProcessor/core/file/getFileWriteBinaryContentsActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileWriteObjectJsonActionProcessor.js +4 -3
- package/lib/esm/getActionProcessor/core/file/getFileWriteObjectJsonActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.js +4 -3
- package/lib/esm/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.js +7 -5
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.js +8 -4
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js +9 -4
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js +10 -6
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js +11 -4
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js +7 -5
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.js +14 -12
- package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/keyValueStore/index.js +2 -0
- package/lib/esm/getActionProcessor/core/keyValueStore/index.js.map +1 -1
- package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.js +2 -2
- package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.js.map +1 -1
- package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.js +12 -2
- package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.js.map +1 -1
- package/lib/esm/lambdaHandlers/getSqsEvent_queueEvent.js +3 -3
- package/lib/esm/lambdaHandlers/getSqsEvent_queueEvent.js.map +1 -1
- package/lib/esm/logic/cognito/requestEmailVerificationCode.d.ts +2 -1
- package/lib/esm/logic/cognito/requestEmailVerificationCode.js +7 -1
- package/lib/esm/logic/cognito/requestEmailVerificationCode.js.map +1 -1
- package/lib/esm/logic/dynamo/getAllItems.d.ts +2 -1
- package/lib/esm/logic/dynamo/getAllItems.js +7 -2
- package/lib/esm/logic/dynamo/getAllItems.js.map +1 -1
- package/lib/esm/logic/dynamo/getItem.d.ts +2 -1
- package/lib/esm/logic/dynamo/getItem.js +8 -5
- package/lib/esm/logic/dynamo/getItem.js.map +1 -1
- package/lib/extension-layer/qpq-log-extension/index.js +37 -37
- package/package.json +7 -7
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getKeyValueStoreDeleteActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"getKeyValueStoreDeleteActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,6BAA6B,EAC7B,uBAAuB,EAEvB,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,6BAA6B,GAAG,CAAC,SAAoB,EAAsC,EAAE;IACjG,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAC5D,MAAM,eAAe,GAAG,+BAA+B,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,iBAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,4BAA4B,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAEhI,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC5H,yBAAyB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC/H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC7G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aACnH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAgC,KAAK,EAAE,SAAoB,EAAgC,EAAE,CAAC,CAAC;IAC/I,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC;CAC3E,CAAC,CAAC","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport { ActionProcessorList, ActionProcessorListResolver, QPQConfig } from 'quidproquo-core';\nimport {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n getScopedKvsTranslatorOrThrow,\n KeyValueStoreActionType,\n KeyValueStoreDeleteActionProcessor,\n KeyValueStoreDeleteErrorTypeEnum,\n resolveKvsStoreConfigOrThrow,\n} from 'quidproquo-core';\n\nimport { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';\nimport { deleteItem } from '../../../logic/dynamo';\n\nconst getProcessKeyValueStoreDelete = (qpqConfig: QPQConfig): KeyValueStoreDeleteActionProcessor => {\n return async ({ keyValueStoreName, key, sortKey, options }) => {\n const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');\n const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);\n\n try {\n const storeConfig = resolveKvsStoreConfigOrThrow(qpqConfig, keyValueStoreName);\n const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);\n\n await deleteItem(dynamoTableName, region, scoped.key(key), storeConfig.partitionKey.key, sortKey, storeConfig.sortKeys[0]?.key);\n\n return actionResult(void 0);\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InternalServerError: () => actionResultError(KeyValueStoreDeleteErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),\n ResourceNotFoundException: () => actionResultError(KeyValueStoreDeleteErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),\n InvalidScopeError: (error) => actionResultError(KeyValueStoreDeleteErrorTypeEnum.InvalidScope, error.message),\n KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreDeleteErrorTypeEnum.StoreNotFound, error.message),\n });\n }\n };\n};\n\nexport const getKeyValueStoreDeleteActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.Delete]: getProcessKeyValueStoreDelete(qpqConfig),\n});\n"]}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import { qpqConfigAwsUtils } from 'quidproquo-config-aws';
|
|
2
|
-
import { actionResult, actionResultError, actionResultErrorFromCaughtError, KeyValueStoreActionType, KeyValueStoreGetErrorTypeEnum, } from 'quidproquo-core';
|
|
2
|
+
import { actionResult, actionResultError, actionResultErrorFromCaughtError, getScopedKvsTranslatorOrThrow, KeyValueStoreActionType, KeyValueStoreGetErrorTypeEnum, resolveKvsStoreConfigOrThrow, } from 'quidproquo-core';
|
|
3
3
|
import { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';
|
|
4
4
|
import { getItem } from '../../../logic/dynamo';
|
|
5
5
|
const getProcessKeyValueStoreGet = (qpqConfig) => {
|
|
6
|
-
return async ({ keyValueStoreName, key }) => {
|
|
6
|
+
return async ({ keyValueStoreName, key, options }) => {
|
|
7
7
|
const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');
|
|
8
8
|
const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
|
|
9
9
|
try {
|
|
10
|
-
const
|
|
11
|
-
|
|
10
|
+
const storeConfig = resolveKvsStoreConfigOrThrow(qpqConfig, keyValueStoreName);
|
|
11
|
+
const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);
|
|
12
|
+
const result = await getItem(dynamoTableName, region, storeConfig.partitionKey.key, scoped.key(key));
|
|
13
|
+
return actionResult(scoped.strip(result));
|
|
12
14
|
}
|
|
13
15
|
catch (error) {
|
|
14
16
|
return actionResultErrorFromCaughtError(error, {
|
|
15
17
|
InternalServerError: () => actionResultError(KeyValueStoreGetErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
|
|
16
18
|
ResourceNotFoundException: () => actionResultError(KeyValueStoreGetErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
|
|
19
|
+
InvalidScopeError: (error) => actionResultError(KeyValueStoreGetErrorTypeEnum.InvalidScope, error.message),
|
|
20
|
+
KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreGetErrorTypeEnum.StoreNotFound, error.message),
|
|
17
21
|
});
|
|
18
22
|
}
|
|
19
23
|
};
|
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getKeyValueStoreGetActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,uBAAuB,EAEvB,6BAA6B,
|
|
1
|
+
{"version":3,"file":"getKeyValueStoreGetActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,6BAA6B,EAC7B,uBAAuB,EAEvB,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,MAAM,0BAA0B,GAAG,CAAC,SAAoB,EAAwC,EAAE;IAChG,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;QACnD,MAAM,eAAe,GAAG,+BAA+B,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,iBAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,4BAA4B,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAErG,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBACzH,yBAAyB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC5H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC1G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aAChH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAgC,KAAK,EAAE,SAAoB,EAAgC,EAAE,CAAC,CAAC;IAC5I,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,0BAA0B,CAAC,SAAS,CAAC;CACrE,CAAC,CAAC","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport { ActionProcessorList, ActionProcessorListResolver, QPQConfig } from 'quidproquo-core';\nimport {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n getScopedKvsTranslatorOrThrow,\n KeyValueStoreActionType,\n KeyValueStoreGetActionProcessor,\n KeyValueStoreGetErrorTypeEnum,\n resolveKvsStoreConfigOrThrow,\n} from 'quidproquo-core';\n\nimport { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';\nimport { getItem } from '../../../logic/dynamo';\n\nconst getProcessKeyValueStoreGet = (qpqConfig: QPQConfig): KeyValueStoreGetActionProcessor<any> => {\n return async ({ keyValueStoreName, key, options }) => {\n const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');\n const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);\n\n try {\n const storeConfig = resolveKvsStoreConfigOrThrow(qpqConfig, keyValueStoreName);\n const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);\n\n const result = await getItem(dynamoTableName, region, storeConfig.partitionKey.key, scoped.key(key));\n\n return actionResult(scoped.strip(result));\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InternalServerError: () => actionResultError(KeyValueStoreGetErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),\n ResourceNotFoundException: () => actionResultError(KeyValueStoreGetErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),\n InvalidScopeError: (error) => actionResultError(KeyValueStoreGetErrorTypeEnum.InvalidScope, error.message),\n KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreGetErrorTypeEnum.StoreNotFound, error.message),\n });\n }\n };\n};\n\nexport const getKeyValueStoreGetActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.Get]: getProcessKeyValueStoreGet(qpqConfig),\n});\n"]}
|
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js
CHANGED
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { qpqConfigAwsUtils } from 'quidproquo-config-aws';
|
|
2
|
-
import { actionResult, actionResultError, actionResultErrorFromCaughtError, KeyValueStoreActionType, KeyValueStoreGetAllErrorTypeEnum, } from 'quidproquo-core';
|
|
2
|
+
import { actionResult, actionResultError, actionResultErrorFromCaughtError, getScopedKvsTranslatorOrThrow, KeyValueStoreActionType, KeyValueStoreGetAllErrorTypeEnum, } from 'quidproquo-core';
|
|
3
3
|
import { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';
|
|
4
4
|
import { getAllItems } from '../../../logic/dynamo';
|
|
5
5
|
const getProcessKeyValueStoreGetAll = (qpqConfig) => {
|
|
6
|
-
return async ({ keyValueStoreName }) => {
|
|
6
|
+
return async ({ keyValueStoreName, options }) => {
|
|
7
7
|
const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');
|
|
8
8
|
const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
|
|
9
9
|
try {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
// GetAll has no key condition, so scope is enforced as a begins_with
|
|
11
|
+
// prefix filter (a full scan on the Dynamo side either way).
|
|
12
|
+
const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);
|
|
13
|
+
const result = await getAllItems(dynamoTableName, region, scoped.scanFilter(undefined));
|
|
14
|
+
return actionResult(result.map((item) => scoped.strip(item)));
|
|
12
15
|
}
|
|
13
16
|
catch (error) {
|
|
14
17
|
return actionResultErrorFromCaughtError(error, {
|
|
15
18
|
InternalServerError: () => actionResultError(KeyValueStoreGetAllErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
|
|
16
19
|
ResourceNotFoundException: () => actionResultError(KeyValueStoreGetAllErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
|
|
20
|
+
InvalidScopeError: (error) => actionResultError(KeyValueStoreGetAllErrorTypeEnum.InvalidScope, error.message),
|
|
21
|
+
KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreGetAllErrorTypeEnum.StoreNotFound, error.message),
|
|
17
22
|
});
|
|
18
23
|
}
|
|
19
24
|
};
|
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getKeyValueStoreGetAllActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,uBAAuB,EAEvB,gCAAgC,GACjC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,6BAA6B,GAAG,CAAC,SAAoB,EAA2C,EAAE;IACtG,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"getKeyValueStoreGetAllActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,6BAA6B,EAC7B,uBAAuB,EAEvB,gCAAgC,GACjC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,6BAA6B,GAAG,CAAC,SAAoB,EAA2C,EAAE;IACtG,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9C,MAAM,eAAe,GAAG,+BAA+B,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,iBAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,qEAAqE;YACrE,6DAA6D;YAC7D,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YAExF,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC5H,yBAAyB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC/H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC7G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aACnH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAgC,KAAK,EAAE,SAAoB,EAAgC,EAAE,CAAC,CAAC;IAC/I,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC;CAC3E,CAAC,CAAC","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport { ActionProcessorList, ActionProcessorListResolver, QPQConfig } from 'quidproquo-core';\nimport {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n getScopedKvsTranslatorOrThrow,\n KeyValueStoreActionType,\n KeyValueStoreGetAllActionProcessor,\n KeyValueStoreGetAllErrorTypeEnum,\n} from 'quidproquo-core';\n\nimport { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';\nimport { getAllItems } from '../../../logic/dynamo';\n\nconst getProcessKeyValueStoreGetAll = (qpqConfig: QPQConfig): KeyValueStoreGetAllActionProcessor<any> => {\n return async ({ keyValueStoreName, options }) => {\n const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');\n const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);\n\n try {\n // GetAll has no key condition, so scope is enforced as a begins_with\n // prefix filter (a full scan on the Dynamo side either way).\n const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);\n\n const result = await getAllItems(dynamoTableName, region, scoped.scanFilter(undefined));\n\n return actionResult(result.map((item) => scoped.strip(item)));\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InternalServerError: () => actionResultError(KeyValueStoreGetAllErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),\n ResourceNotFoundException: () => actionResultError(KeyValueStoreGetAllErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),\n InvalidScopeError: (error) => actionResultError(KeyValueStoreGetAllErrorTypeEnum.InvalidScope, error.message),\n KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreGetAllErrorTypeEnum.StoreNotFound, error.message),\n });\n }\n };\n};\n\nexport const getKeyValueStoreGetAllActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.GetAll]: getProcessKeyValueStoreGetAll(qpqConfig),\n});\n"]}
|
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { qpqConfigAwsUtils } from 'quidproquo-config-aws';
|
|
2
|
-
import { actionResultError, actionResultErrorFromCaughtError,
|
|
2
|
+
import { actionResultError, actionResultErrorFromCaughtError, getScopedKvsTranslatorOrThrow, resolveKvsStoreConfigOrThrow, } from 'quidproquo-core';
|
|
3
3
|
import { actionResult, KeyValueStoreActionType, KeyValueStoreQueryErrorTypeEnum } from 'quidproquo-core';
|
|
4
4
|
import { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';
|
|
5
5
|
import { query } from '../../../logic/dynamo';
|
|
@@ -8,18 +8,22 @@ const getProcessKeyValueStoreQuery = (qpqConfig) => {
|
|
|
8
8
|
return async ({ keyValueStoreName, keyCondition, options }) => {
|
|
9
9
|
const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');
|
|
10
10
|
const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
|
|
11
|
-
const storeConfig = qpqCoreUtils.getKeyValueStoreByName(qpqConfig, keyValueStoreName);
|
|
12
|
-
if (!storeConfig) {
|
|
13
|
-
return actionResultError(ErrorTypeEnum.NotFound, `Could not find key value store with name "${keyValueStoreName}"`);
|
|
14
|
-
}
|
|
15
11
|
try {
|
|
16
|
-
const
|
|
12
|
+
const storeConfig = resolveKvsStoreConfigOrThrow(qpqConfig, keyValueStoreName);
|
|
13
|
+
// Scope lives inside the pk values, so pk conditions are rewritten to the
|
|
14
|
+
// composed form (throws when the key condition never constrains the pk).
|
|
15
|
+
const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);
|
|
16
|
+
const effectiveKeyCondition = scoped.keyCondition(keyCondition);
|
|
17
|
+
const items = await query(dynamoTableName, region, effectiveKeyCondition, scoped.filter(options?.filter), options?.nextPageKey, getDynamoTableIndexByConfigAndQuery(storeConfig, effectiveKeyCondition), options?.limit, options?.sortAscending);
|
|
18
|
+
items.items = items.items.map((item) => scoped.strip(item));
|
|
17
19
|
return actionResult(items);
|
|
18
20
|
}
|
|
19
21
|
catch (error) {
|
|
20
22
|
return actionResultErrorFromCaughtError(error, {
|
|
21
23
|
InternalServerError: () => actionResultError(KeyValueStoreQueryErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
|
|
22
24
|
ResourceNotFoundException: () => actionResultError(KeyValueStoreQueryErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
|
|
25
|
+
InvalidScopeError: (error) => actionResultError(KeyValueStoreQueryErrorTypeEnum.InvalidScope, error.message),
|
|
26
|
+
KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreQueryErrorTypeEnum.StoreNotFound, error.message),
|
|
23
27
|
});
|
|
24
28
|
}
|
|
25
29
|
};
|
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getKeyValueStoreQueryActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAGL,iBAAiB,EACjB,gCAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"getKeyValueStoreQueryActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAGL,iBAAiB,EACjB,gCAAgC,EAChC,6BAA6B,EAE7B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAqC,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAE5I,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,mCAAmC,EAAE,MAAM,oCAAoC,CAAC;AAEzF,MAAM,4BAA4B,GAAG,CAAC,SAAoB,EAA0C,EAAE;IACpG,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;QAC5D,MAAM,eAAe,GAAG,+BAA+B,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,iBAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,4BAA4B,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YAE/E,0EAA0E;YAC1E,yEAAyE;YACzE,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3F,MAAM,qBAAqB,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAEhE,MAAM,KAAK,GAAG,MAAM,KAAK,CACvB,eAAe,EACf,MAAM,EACN,qBAAqB,EACrB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAC9B,OAAO,EAAE,WAAW,EACpB,mCAAmC,CAAC,WAAW,EAAE,qBAAqB,CAAC,EACvE,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,aAAa,CACvB,CAAC;YAEF,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAEjE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC3H,yBAAyB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC9H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC5G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aAClH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAgC,KAAK,EAAE,SAAoB,EAAgC,EAAE,CAAC,CAAC;IAC9I,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,4BAA4B,CAAC,SAAS,CAAC;CACzE,CAAC,CAAC","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResultError,\n actionResultErrorFromCaughtError,\n getScopedKvsTranslatorOrThrow,\n QPQConfig,\n resolveKvsStoreConfigOrThrow,\n} from 'quidproquo-core';\nimport { actionResult, KeyValueStoreActionType, KeyValueStoreQueryActionProcessor, KeyValueStoreQueryErrorTypeEnum } from 'quidproquo-core';\n\nimport { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';\nimport { query } from '../../../logic/dynamo';\nimport { getDynamoTableIndexByConfigAndQuery } from '../../../logic/dynamo/qpqDynamoOrm';\n\nconst getProcessKeyValueStoreQuery = (qpqConfig: QPQConfig): KeyValueStoreQueryActionProcessor<any> => {\n return async ({ keyValueStoreName, keyCondition, options }) => {\n const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');\n const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);\n\n try {\n const storeConfig = resolveKvsStoreConfigOrThrow(qpqConfig, keyValueStoreName);\n\n // Scope lives inside the pk values, so pk conditions are rewritten to the\n // composed form (throws when the key condition never constrains the pk).\n const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);\n const effectiveKeyCondition = scoped.keyCondition(keyCondition);\n\n const items = await query<any>(\n dynamoTableName,\n region,\n effectiveKeyCondition,\n scoped.filter(options?.filter),\n options?.nextPageKey,\n getDynamoTableIndexByConfigAndQuery(storeConfig, effectiveKeyCondition),\n options?.limit,\n options?.sortAscending,\n );\n\n items.items = items.items.map((item: any) => scoped.strip(item));\n\n return actionResult(items);\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InternalServerError: () => actionResultError(KeyValueStoreQueryErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),\n ResourceNotFoundException: () => actionResultError(KeyValueStoreQueryErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),\n InvalidScopeError: (error) => actionResultError(KeyValueStoreQueryErrorTypeEnum.InvalidScope, error.message),\n KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreQueryErrorTypeEnum.StoreNotFound, error.message),\n });\n }\n };\n};\n\nexport const getKeyValueStoreQueryActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.Query]: getProcessKeyValueStoreQuery(qpqConfig),\n});\n"]}
|
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js
CHANGED
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
import { qpqConfigAwsUtils } from 'quidproquo-config-aws';
|
|
2
|
-
import { actionResultError, actionResultErrorFromCaughtError
|
|
3
|
-
import { actionResult, KeyValueStoreActionType, KeyValueStoreScanErrorTypeEnum } from 'quidproquo-core';
|
|
2
|
+
import { actionResultError, actionResultErrorFromCaughtError } from 'quidproquo-core';
|
|
3
|
+
import { actionResult, getScopedKvsTranslatorOrThrow, KeyValueStoreActionType, KeyValueStoreScanErrorTypeEnum, } from 'quidproquo-core';
|
|
4
4
|
import { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';
|
|
5
5
|
import { scan } from '../../../logic/dynamo/scan';
|
|
6
6
|
const getProcessKeyValueStoreScan = (qpqConfig) => {
|
|
7
|
-
return async ({ keyValueStoreName, filterCondition, nextPageKey }) => {
|
|
7
|
+
return async ({ keyValueStoreName, filterCondition, nextPageKey, options }) => {
|
|
8
8
|
const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');
|
|
9
9
|
const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
|
|
10
10
|
try {
|
|
11
|
-
|
|
11
|
+
// A scan has no key condition, so scope is enforced as a begins_with
|
|
12
|
+
// prefix predicate ANDed onto the caller's filter. Still a full-table
|
|
13
|
+
// scan on the Dynamo side - only the results are isolated.
|
|
14
|
+
const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);
|
|
15
|
+
const items = await scan(dynamoTableName, region, scoped.scanFilter(filterCondition), nextPageKey);
|
|
16
|
+
items.items = items.items.map((item) => scoped.strip(item));
|
|
12
17
|
return actionResult(items);
|
|
13
18
|
}
|
|
14
19
|
catch (error) {
|
|
15
20
|
return actionResultErrorFromCaughtError(error, {
|
|
16
21
|
InternalServerError: () => actionResultError(KeyValueStoreScanErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
|
|
17
22
|
ResourceNotFoundException: () => actionResultError(KeyValueStoreScanErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
|
|
23
|
+
InvalidScopeError: (error) => actionResultError(KeyValueStoreScanErrorTypeEnum.InvalidScope, error.message),
|
|
24
|
+
KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreScanErrorTypeEnum.StoreNotFound, error.message),
|
|
18
25
|
});
|
|
19
26
|
}
|
|
20
27
|
};
|
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getKeyValueStoreScanActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"getKeyValueStoreScanActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAoD,iBAAiB,EAAE,gCAAgC,EAAa,MAAM,iBAAiB,CAAC;AACnJ,OAAO,EACL,YAAY,EACZ,6BAA6B,EAC7B,uBAAuB,EAEvB,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAElD,MAAM,2BAA2B,GAAG,CAAC,SAAoB,EAAyC,EAAE;IAClG,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;QAC5E,MAAM,eAAe,GAAG,+BAA+B,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,iBAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,qEAAqE;YACrE,sEAAsE;YACtE,2DAA2D;YAC3D,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAM,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,CAAC;YAExG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAEjE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC1H,yBAAyB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC7H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC3G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aACjH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAAgC,KAAK,EAAE,SAAoB,EAAgC,EAAE,CAAC,CAAC;IAC7I,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,2BAA2B,CAAC,SAAS,CAAC;CACvE,CAAC,CAAC","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport { ActionProcessorList, ActionProcessorListResolver, actionResultError, actionResultErrorFromCaughtError, QPQConfig } from 'quidproquo-core';\nimport {\n actionResult,\n getScopedKvsTranslatorOrThrow,\n KeyValueStoreActionType,\n KeyValueStoreScanActionProcessor,\n KeyValueStoreScanErrorTypeEnum,\n} from 'quidproquo-core';\n\nimport { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';\nimport { scan } from '../../../logic/dynamo/scan';\n\nconst getProcessKeyValueStoreScan = (qpqConfig: QPQConfig): KeyValueStoreScanActionProcessor<any> => {\n return async ({ keyValueStoreName, filterCondition, nextPageKey, options }) => {\n const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');\n const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);\n\n try {\n // A scan has no key condition, so scope is enforced as a begins_with\n // prefix predicate ANDed onto the caller's filter. Still a full-table\n // scan on the Dynamo side - only the results are isolated.\n const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);\n\n const items = await scan<any>(dynamoTableName, region, scoped.scanFilter(filterCondition), nextPageKey);\n\n items.items = items.items.map((item: any) => scoped.strip(item));\n\n return actionResult(items);\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InternalServerError: () => actionResultError(KeyValueStoreScanErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),\n ResourceNotFoundException: () => actionResultError(KeyValueStoreScanErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),\n InvalidScopeError: (error) => actionResultError(KeyValueStoreScanErrorTypeEnum.InvalidScope, error.message),\n KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreScanErrorTypeEnum.StoreNotFound, error.message),\n });\n }\n };\n};\n\nexport const getKeyValueStoreScanActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.Scan]: getProcessKeyValueStoreScan(qpqConfig),\n});\n"]}
|
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import { qpqConfigAwsUtils } from 'quidproquo-config-aws';
|
|
2
|
-
import {
|
|
3
|
-
import { actionResult, actionResultError, actionResultErrorFromCaughtError, KeyValueStoreActionType, KeyValueStoreUpdateErrorTypeEnum, } from 'quidproquo-core';
|
|
2
|
+
import { actionResult, actionResultError, actionResultErrorFromCaughtError, getScopedKvsTranslatorOrThrow, KeyValueStoreActionType, KeyValueStoreUpdateErrorTypeEnum, resolveKvsStoreConfigOrThrow, } from 'quidproquo-core';
|
|
4
3
|
import { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';
|
|
5
4
|
import { updateItem } from '../../../logic/dynamo';
|
|
6
5
|
const getProcessKeyValueStoreUpdate = (qpqConfig) => {
|
|
7
6
|
return async ({ keyValueStoreName, key, sortKey, updates, options }) => {
|
|
8
7
|
const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');
|
|
9
8
|
const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
|
|
10
|
-
const storeConfig = qpqCoreUtils.getKeyValueStoreByName(qpqConfig, keyValueStoreName);
|
|
11
9
|
try {
|
|
12
|
-
const
|
|
13
|
-
|
|
10
|
+
const storeConfig = resolveKvsStoreConfigOrThrow(qpqConfig, keyValueStoreName);
|
|
11
|
+
const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);
|
|
12
|
+
const item = await updateItem(dynamoTableName, region, updates, storeConfig.partitionKey.key, scoped.key(key), storeConfig.sortKeys[0]?.key, sortKey);
|
|
13
|
+
return actionResult(scoped.strip(item));
|
|
14
14
|
}
|
|
15
15
|
catch (error) {
|
|
16
16
|
return actionResultErrorFromCaughtError(error, {
|
|
17
17
|
InternalServerError: () => actionResultError(KeyValueStoreUpdateErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
|
|
18
18
|
ResourceNotFoundException: () => actionResultError(KeyValueStoreUpdateErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
|
|
19
|
+
InvalidScopeError: (error) => actionResultError(KeyValueStoreUpdateErrorTypeEnum.InvalidScope, error.message),
|
|
20
|
+
KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreUpdateErrorTypeEnum.StoreNotFound, error.message),
|
|
19
21
|
});
|
|
20
22
|
}
|
|
21
23
|
};
|
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getKeyValueStoreUpdateActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"getKeyValueStoreUpdateActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,6BAA6B,EAC7B,uBAAuB,EAEvB,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,6BAA6B,GAAG,CAAC,SAAoB,EAA2C,EAAE;IACtG,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QACrE,MAAM,eAAe,GAAG,+BAA+B,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,iBAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,4BAA4B,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,eAAe,EACf,MAAM,EACN,OAAO,EACP,WAAW,CAAC,YAAY,CAAC,GAAG,EAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EACf,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAC5B,OAAO,CACR,CAAC;YAEF,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC5H,yBAAyB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC/H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC7G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aACnH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAgC,KAAK,EAAE,SAAoB,EAAgC,EAAE,CAAC,CAAC;IAC/I,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC;CAC3E,CAAC,CAAC","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport { ActionProcessorList, ActionProcessorListResolver, QPQConfig } from 'quidproquo-core';\nimport {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n getScopedKvsTranslatorOrThrow,\n KeyValueStoreActionType,\n KeyValueStoreUpdateActionProcessor,\n KeyValueStoreUpdateErrorTypeEnum,\n resolveKvsStoreConfigOrThrow,\n} from 'quidproquo-core';\n\nimport { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';\nimport { updateItem } from '../../../logic/dynamo';\n\nconst getProcessKeyValueStoreUpdate = (qpqConfig: QPQConfig): KeyValueStoreUpdateActionProcessor<any> => {\n return async ({ keyValueStoreName, key, sortKey, updates, options }) => {\n const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');\n const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);\n\n try {\n const storeConfig = resolveKvsStoreConfigOrThrow(qpqConfig, keyValueStoreName);\n const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);\n\n const item = await updateItem(\n dynamoTableName,\n region,\n updates,\n storeConfig.partitionKey.key,\n scoped.key(key),\n storeConfig.sortKeys[0]?.key,\n sortKey,\n );\n\n return actionResult(scoped.strip(item));\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InternalServerError: () => actionResultError(KeyValueStoreUpdateErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),\n ResourceNotFoundException: () => actionResultError(KeyValueStoreUpdateErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),\n InvalidScopeError: (error) => actionResultError(KeyValueStoreUpdateErrorTypeEnum.InvalidScope, error.message),\n KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreUpdateErrorTypeEnum.StoreNotFound, error.message),\n });\n }\n };\n};\n\nexport const getKeyValueStoreUpdateActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.Update]: getProcessKeyValueStoreUpdate(qpqConfig),\n});\n"]}
|
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { qpqConfigAwsUtils } from 'quidproquo-config-aws';
|
|
2
|
-
import { actionResult, actionResultError, actionResultErrorFromCaughtError,
|
|
2
|
+
import { actionResult, actionResultError, actionResultErrorFromCaughtError, getScopedKvsTranslatorOrThrow, KeyValueStoreActionType, resolveKvsStoreConfigOrThrow, } from 'quidproquo-core';
|
|
3
3
|
import { KeyValueStoreUpsertErrorTypeEnum } from 'quidproquo-core';
|
|
4
4
|
import { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';
|
|
5
5
|
import { putItem } from '../../../logic/dynamo';
|
|
@@ -7,18 +7,18 @@ const getProcessKeyValueStoreUpsert = (qpqConfig) => {
|
|
|
7
7
|
return async ({ keyValueStoreName, item, options }) => {
|
|
8
8
|
const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');
|
|
9
9
|
const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
|
|
10
|
-
const storeConfig = qpqCoreUtils.getKeyValueStoreByName(qpqConfig, keyValueStoreName);
|
|
11
|
-
if (!storeConfig) {
|
|
12
|
-
return actionResultError(ErrorTypeEnum.NotFound, `Could not find key value store with name "${keyValueStoreName}"`);
|
|
13
|
-
}
|
|
14
|
-
const keys = [
|
|
15
|
-
storeConfig.partitionKey,
|
|
16
|
-
...storeConfig.sortKeys,
|
|
17
|
-
...storeConfig.indexes.map((i) => i.partitionKey),
|
|
18
|
-
...storeConfig.indexes.filter((i) => !!i.sortKey).map((i) => i.sortKey),
|
|
19
|
-
];
|
|
20
10
|
try {
|
|
21
|
-
|
|
11
|
+
const storeConfig = resolveKvsStoreConfigOrThrow(qpqConfig, keyValueStoreName);
|
|
12
|
+
const keys = [
|
|
13
|
+
storeConfig.partitionKey,
|
|
14
|
+
...storeConfig.sortKeys,
|
|
15
|
+
...storeConfig.indexes.map((i) => i.partitionKey),
|
|
16
|
+
...storeConfig.indexes.filter((i) => !!i.sortKey).map((i) => i.sortKey),
|
|
17
|
+
];
|
|
18
|
+
// The scope lives inside the stored partition key value, so the item is
|
|
19
|
+
// persisted with a composed pk; reads strip it back off.
|
|
20
|
+
const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);
|
|
21
|
+
await putItem(dynamoTableName, scoped.item(item), keys, {
|
|
22
22
|
expires: options?.ttlInSeconds,
|
|
23
23
|
ifNotExistsAttribute: options?.ifNotExists ? storeConfig.partitionKey.key : undefined,
|
|
24
24
|
}, region);
|
|
@@ -29,6 +29,8 @@ const getProcessKeyValueStoreUpsert = (qpqConfig) => {
|
|
|
29
29
|
InternalServerError: () => actionResultError(KeyValueStoreUpsertErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
|
|
30
30
|
ResourceNotFoundException: () => actionResultError(KeyValueStoreUpsertErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
|
|
31
31
|
ConditionalCheckFailedException: () => actionResultError(KeyValueStoreUpsertErrorTypeEnum.Conflict, 'KVS item already exists'),
|
|
32
|
+
InvalidScopeError: (error) => actionResultError(KeyValueStoreUpsertErrorTypeEnum.InvalidScope, error.message),
|
|
33
|
+
KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreUpsertErrorTypeEnum.StoreNotFound, error.message),
|
|
32
34
|
});
|
|
33
35
|
}
|
|
34
36
|
};
|
package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getKeyValueStoreUpsertActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAGL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"getKeyValueStoreUpsertActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAGL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,6BAA6B,EAC7B,uBAAuB,EAGvB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,MAAM,6BAA6B,GAAG,CAAC,SAAoB,EAA2C,EAAE;IACtG,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QACpD,MAAM,eAAe,GAAG,+BAA+B,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,iBAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,4BAA4B,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YAE/E,MAAM,IAAI,GAAG;gBACX,WAAW,CAAC,YAAY;gBACxB,GAAG,WAAW,CAAC,QAAQ;gBACvB,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;gBACjD,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAQ,CAAC;aACzE,CAAC;YAEF,wEAAwE;YACxE,yDAAyD;YACzD,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,OAAO,CACX,eAAe,EACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACjB,IAAI,EACJ;gBACE,OAAO,EAAE,OAAO,EAAE,YAAY;gBAC9B,oBAAoB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;aACtF,EACD,MAAM,CACP,CAAC;YAEF,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC5H,yBAAyB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC/H,+BAA+B,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,QAAQ,EAAE,yBAAyB,CAAC;gBAC9H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC7G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aACnH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAgC,KAAK,EAAE,SAAoB,EAAgC,EAAE,CAAC,CAAC;IAC/I,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC;CAC3E,CAAC,CAAC","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n getScopedKvsTranslatorOrThrow,\n KeyValueStoreActionType,\n KeyValueStoreUpsertActionProcessor,\n QPQConfig,\n resolveKvsStoreConfigOrThrow,\n} from 'quidproquo-core';\nimport { KeyValueStoreUpsertErrorTypeEnum } from 'quidproquo-core';\n\nimport { getKvsDynamoTableNameFromConfig } from '../../../awsNamingUtils';\nimport { putItem } from '../../../logic/dynamo';\n\nconst getProcessKeyValueStoreUpsert = (qpqConfig: QPQConfig): KeyValueStoreUpsertActionProcessor<any> => {\n return async ({ keyValueStoreName, item, options }) => {\n const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');\n const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);\n\n try {\n const storeConfig = resolveKvsStoreConfigOrThrow(qpqConfig, keyValueStoreName);\n\n const keys = [\n storeConfig.partitionKey,\n ...storeConfig.sortKeys,\n ...storeConfig.indexes.map((i) => i.partitionKey),\n ...storeConfig.indexes.filter((i) => !!i.sortKey).map((i) => i.sortKey!),\n ];\n\n // The scope lives inside the stored partition key value, so the item is\n // persisted with a composed pk; reads strip it back off.\n const scoped = getScopedKvsTranslatorOrThrow(qpqConfig, keyValueStoreName, options?.scope);\n\n await putItem(\n dynamoTableName,\n scoped.item(item),\n keys,\n {\n expires: options?.ttlInSeconds,\n ifNotExistsAttribute: options?.ifNotExists ? storeConfig.partitionKey.key : undefined,\n },\n region,\n );\n\n return actionResult(void 0);\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InternalServerError: () => actionResultError(KeyValueStoreUpsertErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),\n ResourceNotFoundException: () => actionResultError(KeyValueStoreUpsertErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),\n ConditionalCheckFailedException: () => actionResultError(KeyValueStoreUpsertErrorTypeEnum.Conflict, 'KVS item already exists'),\n InvalidScopeError: (error) => actionResultError(KeyValueStoreUpsertErrorTypeEnum.InvalidScope, error.message),\n KvsStoreNotFoundError: (error) => actionResultError(KeyValueStoreUpsertErrorTypeEnum.StoreNotFound, error.message),\n });\n }\n };\n};\n\nexport const getKeyValueStoreUpsertActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.Upsert]: getProcessKeyValueStoreUpsert(qpqConfig),\n});\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getKeyValueStoreDeleteActionProcessor } from './getKeyValueStoreDeleteActionProcessor';
|
|
2
2
|
import { getKeyValueStoreGetActionProcessor } from './getKeyValueStoreGetActionProcessor';
|
|
3
|
+
import { getKeyValueStoreGetAllActionProcessor } from './getKeyValueStoreGetAllActionProcessor';
|
|
3
4
|
import { getKeyValueStoreQueryActionProcessor } from './getKeyValueStoreQueryActionProcessor';
|
|
4
5
|
import { getKeyValueStoreScanActionProcessor } from './getKeyValueStoreScanActionProcessor';
|
|
5
6
|
import { getKeyValueStoreUpdateActionProcessor } from './getKeyValueStoreUpdateActionProcessor';
|
|
@@ -7,6 +8,7 @@ import { getKeyValueStoreUpsertActionProcessor } from './getKeyValueStoreUpsertA
|
|
|
7
8
|
export const getKeyValueStoreActionProcessor = async (qpqConfig, dynamicModuleLoader) => ({
|
|
8
9
|
...(await getKeyValueStoreDeleteActionProcessor(qpqConfig, dynamicModuleLoader)),
|
|
9
10
|
...(await getKeyValueStoreGetActionProcessor(qpqConfig, dynamicModuleLoader)),
|
|
11
|
+
...(await getKeyValueStoreGetAllActionProcessor(qpqConfig, dynamicModuleLoader)),
|
|
10
12
|
...(await getKeyValueStoreUpsertActionProcessor(qpqConfig, dynamicModuleLoader)),
|
|
11
13
|
...(await getKeyValueStoreUpdateActionProcessor(qpqConfig, dynamicModuleLoader)),
|
|
12
14
|
...(await getKeyValueStoreQueryActionProcessor(qpqConfig, dynamicModuleLoader)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAEhG,MAAM,CAAC,MAAM,+BAA+B,GAAgC,KAAK,EAC/E,SAAoB,EACpB,mBAAwC,EACV,EAAE,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,qCAAqC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAChF,GAAG,CAAC,MAAM,kCAAkC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC7E,GAAG,CAAC,MAAM,qCAAqC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAChF,GAAG,CAAC,MAAM,qCAAqC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAChF,GAAG,CAAC,MAAM,oCAAoC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC/E,GAAG,CAAC,MAAM,mCAAmC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;CAC/E,CAAC,CAAC","sourcesContent":["import { ActionProcessorList, ActionProcessorListResolver, DynamicModuleLoader, QPQConfig } from 'quidproquo-core';\n\nimport { getKeyValueStoreDeleteActionProcessor } from './getKeyValueStoreDeleteActionProcessor';\nimport { getKeyValueStoreGetActionProcessor } from './getKeyValueStoreGetActionProcessor';\nimport { getKeyValueStoreQueryActionProcessor } from './getKeyValueStoreQueryActionProcessor';\nimport { getKeyValueStoreScanActionProcessor } from './getKeyValueStoreScanActionProcessor';\nimport { getKeyValueStoreUpdateActionProcessor } from './getKeyValueStoreUpdateActionProcessor';\nimport { getKeyValueStoreUpsertActionProcessor } from './getKeyValueStoreUpsertActionProcessor';\n\nexport const getKeyValueStoreActionProcessor: ActionProcessorListResolver = async (\n qpqConfig: QPQConfig,\n dynamicModuleLoader: DynamicModuleLoader,\n): Promise<ActionProcessorList> => ({\n ...(await getKeyValueStoreDeleteActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getKeyValueStoreGetActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getKeyValueStoreUpsertActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getKeyValueStoreUpdateActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getKeyValueStoreQueryActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getKeyValueStoreScanActionProcessor(qpqConfig, dynamicModuleLoader)),\n});\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAEhG,MAAM,CAAC,MAAM,+BAA+B,GAAgC,KAAK,EAC/E,SAAoB,EACpB,mBAAwC,EACV,EAAE,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,qCAAqC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAChF,GAAG,CAAC,MAAM,kCAAkC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC7E,GAAG,CAAC,MAAM,qCAAqC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAChF,GAAG,CAAC,MAAM,qCAAqC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAChF,GAAG,CAAC,MAAM,qCAAqC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAChF,GAAG,CAAC,MAAM,oCAAoC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC/E,GAAG,CAAC,MAAM,mCAAmC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;CAC/E,CAAC,CAAC","sourcesContent":["import { ActionProcessorList, ActionProcessorListResolver, DynamicModuleLoader, QPQConfig } from 'quidproquo-core';\n\nimport { getKeyValueStoreDeleteActionProcessor } from './getKeyValueStoreDeleteActionProcessor';\nimport { getKeyValueStoreGetActionProcessor } from './getKeyValueStoreGetActionProcessor';\nimport { getKeyValueStoreGetAllActionProcessor } from './getKeyValueStoreGetAllActionProcessor';\nimport { getKeyValueStoreQueryActionProcessor } from './getKeyValueStoreQueryActionProcessor';\nimport { getKeyValueStoreScanActionProcessor } from './getKeyValueStoreScanActionProcessor';\nimport { getKeyValueStoreUpdateActionProcessor } from './getKeyValueStoreUpdateActionProcessor';\nimport { getKeyValueStoreUpsertActionProcessor } from './getKeyValueStoreUpsertActionProcessor';\n\nexport const getKeyValueStoreActionProcessor: ActionProcessorListResolver = async (\n qpqConfig: QPQConfig,\n dynamicModuleLoader: DynamicModuleLoader,\n): Promise<ActionProcessorList> => ({\n ...(await getKeyValueStoreDeleteActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getKeyValueStoreGetActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getKeyValueStoreGetAllActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getKeyValueStoreUpsertActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getKeyValueStoreUpdateActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getKeyValueStoreQueryActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getKeyValueStoreScanActionProcessor(qpqConfig, dynamicModuleLoader)),\n});\n"]}
|
|
@@ -5,8 +5,8 @@ const getProcessRequestEmailVerification = (qpqConfig) => {
|
|
|
5
5
|
return async ({ userDirectoryName, accessToken }) => {
|
|
6
6
|
const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
|
|
7
7
|
try {
|
|
8
|
-
await requestEmailVerificationCode(region, accessToken);
|
|
9
|
-
return actionResult(
|
|
8
|
+
const deliveryDetails = await requestEmailVerificationCode(region, accessToken);
|
|
9
|
+
return actionResult(deliveryDetails);
|
|
10
10
|
}
|
|
11
11
|
catch (error) {
|
|
12
12
|
return actionResultErrorFromCaughtError(error, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUserDirectoryRequestEmailVerificationActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAGL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAEhC,uBAAuB,EAEvB,kDAAkD,GACnD,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,4BAA4B,EAAE,MAAM,qDAAqD,CAAC;AAEnG,MAAM,kCAAkC,GAAG,CAAC,SAAoB,EAAwD,EAAE;IACxH,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,iBAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,4BAA4B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"getUserDirectoryRequestEmailVerificationActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAGL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAEhC,uBAAuB,EAEvB,kDAAkD,GACnD,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,4BAA4B,EAAE,MAAM,qDAAqD,CAAC;AAEnG,MAAM,kCAAkC,GAAG,CAAC,SAAoB,EAAwD,EAAE;IACxH,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,iBAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,4BAA4B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAEhF,OAAO,YAAY,CAAC,eAAe,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,sBAAsB,EAAE,GAAG,EAAE,CAC3B,iBAAiB,CAAC,kDAAkD,CAAC,YAAY,EAAE,wCAAwC,CAAC;gBAC9H,sBAAsB,EAAE,GAAG,EAAE,CAC3B,iBAAiB,CAAC,kDAAkD,CAAC,aAAa,EAAE,2CAA2C,CAAC;gBAClI,4BAA4B,EAAE,GAAG,EAAE,CACjC,iBAAiB,CAAC,kDAAkD,CAAC,kBAAkB,EAAE,yCAAyC,CAAC;aACtI,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uDAAuD,GAAgC,KAAK,EACvG,SAAoB,EACU,EAAE,CAAC,CAAC;IAClC,CAAC,uBAAuB,CAAC,wBAAwB,CAAC,EAAE,kCAAkC,CAAC,SAAS,CAAC;CAClG,CAAC,CAAC","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n QPQConfig,\n UserDirectoryActionType,\n UserDirectoryRequestEmailVerificationActionProcessor,\n UserDirectoryRequestEmailVerificationErrorTypeEnum,\n} from 'quidproquo-core';\n\nimport { requestEmailVerificationCode } from '../../../logic/cognito/requestEmailVerificationCode';\n\nconst getProcessRequestEmailVerification = (qpqConfig: QPQConfig): UserDirectoryRequestEmailVerificationActionProcessor => {\n return async ({ userDirectoryName, accessToken }) => {\n const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);\n\n try {\n const deliveryDetails = await requestEmailVerificationCode(region, accessToken);\n\n return actionResult(deliveryDetails);\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n NotAuthorizedException: () =>\n actionResultError(UserDirectoryRequestEmailVerificationErrorTypeEnum.Unauthorized, 'Access token is invalid or has expired'),\n LimitExceededException: () =>\n actionResultError(UserDirectoryRequestEmailVerificationErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),\n CodeDeliveryFailureException: () =>\n actionResultError(UserDirectoryRequestEmailVerificationErrorTypeEnum.CodeDeliveryFailed, 'Could not deliver the verification code'),\n });\n }\n };\n};\n\nexport const getUserDirectoryRequestEmailVerificationActionProcessor: ActionProcessorListResolver = async (\n qpqConfig: QPQConfig,\n): Promise<ActionProcessorList> => ({\n [UserDirectoryActionType.RequestEmailVerification]: getProcessRequestEmailVerification(qpqConfig),\n});\n"]}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
import { actionResult, UserDirectoryActionType, } from 'quidproquo-core';
|
|
1
|
+
import { actionResult, actionResultError, ErrorTypeEnum, UserDirectoryActionType, } from 'quidproquo-core';
|
|
2
2
|
import { decodeAccessToken } from '../../../logic/cognito';
|
|
3
3
|
const getProcessSetAccessToken = (qpqConfig) => {
|
|
4
4
|
return async ({ accessToken, userDirectoryName }, session, apl, logger, updateSession) => {
|
|
5
|
-
|
|
5
|
+
// decodeAccessToken throws on a missing/unverifiable/expired token; surface that
|
|
6
|
+
// as a typed Unauthorized result (matching the dev-server processor and
|
|
7
|
+
// ReadAccessToken) instead of letting the raw error escape as a GenericError.
|
|
8
|
+
// The session is left untouched on failure.
|
|
9
|
+
let decodedAccessToken;
|
|
10
|
+
try {
|
|
11
|
+
decodedAccessToken = await decodeAccessToken(userDirectoryName, qpqConfig, accessToken, false);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return actionResultError(ErrorTypeEnum.Unauthorized, 'Invalid accessToken');
|
|
15
|
+
}
|
|
6
16
|
updateSession({
|
|
7
17
|
decodedAccessToken: decodedAccessToken,
|
|
8
18
|
accessToken,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUserDirectorySetAccessTokenActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,
|
|
1
|
+
{"version":3,"file":"getUserDirectorySetAccessTokenActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,iBAAiB,EAEjB,aAAa,EAEb,uBAAuB,GAExB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,wBAAwB,GAAG,CAAC,SAAoB,EAA8C,EAAE;IACpG,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;QACvF,iFAAiF;QACjF,wEAAwE;QACxE,8EAA8E;QAC9E,4CAA4C;QAC5C,IAAI,kBAAsC,CAAC;QAC3C,IAAI,CAAC;YACH,kBAAkB,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACjG,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,iBAAiB,CAAC,aAAa,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;QAC9E,CAAC;QAED,aAAa,CAAC;YACZ,kBAAkB,EAAE,kBAAkB;YACtC,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6CAA6C,GAAgC,KAAK,EAC7F,SAAoB,EACU,EAAE,CAAC,CAAC;IAClC,CAAC,uBAAuB,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC,SAAS,CAAC;CAC9E,CAAC,CAAC","sourcesContent":["import {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n DecodedAccessToken,\n ErrorTypeEnum,\n QPQConfig,\n UserDirectoryActionType,\n UserDirectorySetAccessTokenActionProcessor,\n} from 'quidproquo-core';\n\nimport { decodeAccessToken } from '../../../logic/cognito';\n\nconst getProcessSetAccessToken = (qpqConfig: QPQConfig): UserDirectorySetAccessTokenActionProcessor => {\n return async ({ accessToken, userDirectoryName }, session, apl, logger, updateSession) => {\n // decodeAccessToken throws on a missing/unverifiable/expired token; surface that\n // as a typed Unauthorized result (matching the dev-server processor and\n // ReadAccessToken) instead of letting the raw error escape as a GenericError.\n // The session is left untouched on failure.\n let decodedAccessToken: DecodedAccessToken;\n try {\n decodedAccessToken = await decodeAccessToken(userDirectoryName, qpqConfig, accessToken, false);\n } catch {\n return actionResultError(ErrorTypeEnum.Unauthorized, 'Invalid accessToken');\n }\n\n updateSession({\n decodedAccessToken: decodedAccessToken,\n accessToken,\n });\n\n return actionResult(decodedAccessToken);\n };\n};\n\nexport const getUserDirectorySetAccessTokenActionProcessor: ActionProcessorListResolver = async (\n qpqConfig: QPQConfig,\n): Promise<ActionProcessorList> => ({\n [UserDirectoryActionType.SetAccessToken]: getProcessSetAccessToken(qpqConfig),\n});\n"]}
|
|
@@ -2,9 +2,9 @@ import { askProcessEvent, askProcessEventWithGroupOrdering, QpqRuntimeType } fro
|
|
|
2
2
|
import { getSqsQueueEventProcessor } from '../getActionProcessor';
|
|
3
3
|
import { getQueueConfigSetting } from '../getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor';
|
|
4
4
|
import { getQpqLambdaRuntimeForEvent } from './helpers/getQpqLambdaRuntimeForEvent';
|
|
5
|
-
const getProcessEventStory = () => {
|
|
5
|
+
const getProcessEventStory = (qpqConfig) => {
|
|
6
6
|
// FIFO queues must process records one group at a time, blocking a group once a record fails
|
|
7
|
-
if (getQueueConfigSetting().isFifo) {
|
|
7
|
+
if (getQueueConfigSetting(qpqConfig).isFifo) {
|
|
8
8
|
return function* askProcessQueueEventWithGroupOrdering(...eventArguments) {
|
|
9
9
|
return yield* askProcessEventWithGroupOrdering((record) => record.groupId, ...eventArguments);
|
|
10
10
|
};
|
|
@@ -16,5 +16,5 @@ export const getSqsEvent_queueEvent = (dynamicModuleLoader, qpqConfig) => getQpq
|
|
|
16
16
|
depth: 0,
|
|
17
17
|
context: {},
|
|
18
18
|
};
|
|
19
|
-
}, getSqsQueueEventProcessor, dynamicModuleLoader, qpqConfig, getProcessEventStory);
|
|
19
|
+
}, getSqsQueueEventProcessor, dynamicModuleLoader, qpqConfig, () => getProcessEventStory(qpqConfig));
|
|
20
20
|
//# sourceMappingURL=getSqsEvent_queueEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSqsEvent_queueEvent.js","sourceRoot":"","sources":["../../../src/lambdaHandlers/getSqsEvent_queueEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gCAAgC,EAAkC,cAAc,EAAc,MAAM,iBAAiB,CAAC;AAIhJ,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8EAA8E,CAAC;AACrH,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AAEpF,MAAM,oBAAoB,GAAG,
|
|
1
|
+
{"version":3,"file":"getSqsEvent_queueEvent.js","sourceRoot":"","sources":["../../../src/lambdaHandlers/getSqsEvent_queueEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gCAAgC,EAAkC,cAAc,EAAc,MAAM,iBAAiB,CAAC;AAIhJ,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8EAA8E,CAAC;AACrH,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AAEpF,MAAM,oBAAoB,GAAG,CAAC,SAAoB,EAA0B,EAAE;IAC5E,6FAA6F;IAC7F,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC,CAAC,qCAAqC,CAAC,GAAG,cAAc;YACtE,OAAO,KAAK,CAAC,CAAC,gCAAgC,CAAC,CAAC,MAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;QACjH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,mBAAwC,EAAE,SAAoB,EAAE,EAAE,CACvG,2BAA2B,CACzB,cAAc,CAAC,WAAW,EAC1B,CAAC,KAAK,EAAE,EAAE;IACR,OAAO;QACL,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC,EACD,yBAAyB,EACzB,mBAAmB,EACnB,SAAS,EACT,GAAG,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,CACtC,CAAC","sourcesContent":["import { askProcessEvent, askProcessEventWithGroupOrdering, DynamicModuleLoader, QPQConfig, QpqRuntimeType, QueueEvent } from 'quidproquo-core';\n\nimport { SQSEvent } from 'aws-lambda';\n\nimport { getSqsQueueEventProcessor } from '../getActionProcessor';\nimport { getQueueConfigSetting } from '../getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor';\nimport { getQpqLambdaRuntimeForEvent } from './helpers/getQpqLambdaRuntimeForEvent';\n\nconst getProcessEventStory = (qpqConfig: QPQConfig): typeof askProcessEvent => {\n // FIFO queues must process records one group at a time, blocking a group once a record fails\n if (getQueueConfigSetting(qpqConfig).isFifo) {\n return function* askProcessQueueEventWithGroupOrdering(...eventArguments) {\n return yield* askProcessEventWithGroupOrdering((record: QueueEvent<any>) => record.groupId, ...eventArguments);\n };\n }\n\n return askProcessEvent;\n};\n\nexport const getSqsEvent_queueEvent = (dynamicModuleLoader: DynamicModuleLoader, qpqConfig: QPQConfig) =>\n getQpqLambdaRuntimeForEvent<SQSEvent>(\n QpqRuntimeType.QUEUE_EVENT,\n (event) => {\n return {\n depth: 0,\n context: {},\n };\n },\n getSqsQueueEventProcessor,\n dynamicModuleLoader,\n qpqConfig,\n () => getProcessEventStory(qpqConfig),\n );\n"]}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { AuthenticationDeliveryDetails } from 'quidproquo-core';
|
|
2
|
+
export declare const requestEmailVerificationCode: (region: string, accessToken: string) => Promise<AuthenticationDeliveryDetails>;
|
|
@@ -8,6 +8,12 @@ export const requestEmailVerificationCode = async (region, accessToken) => {
|
|
|
8
8
|
AccessToken: accessToken,
|
|
9
9
|
AttributeName: 'email', // Request verification for the email attribute
|
|
10
10
|
};
|
|
11
|
-
const
|
|
11
|
+
const response = await cognitoClient.send(new GetUserAttributeVerificationCodeCommand(params));
|
|
12
|
+
const deliveryInfo = {
|
|
13
|
+
attributeName: response.CodeDeliveryDetails?.AttributeName || 'email',
|
|
14
|
+
destination: response.CodeDeliveryDetails?.Destination || 'unknown@email.com',
|
|
15
|
+
deliveryMedium: response.CodeDeliveryDetails?.DeliveryMedium || 'EMAIL',
|
|
16
|
+
};
|
|
17
|
+
return deliveryInfo;
|
|
12
18
|
};
|
|
13
19
|
//# sourceMappingURL=requestEmailVerificationCode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestEmailVerificationCode.js","sourceRoot":"","sources":["../../../../src/logic/cognito/requestEmailVerificationCode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"requestEmailVerificationCode.js","sourceRoot":"","sources":["../../../../src/logic/cognito/requestEmailVerificationCode.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,6BAA6B,EAC7B,uCAAuC,GAExC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAAE,MAAc,EAAE,WAAmB,EAA0C,EAAE;IAChI,MAAM,aAAa,GAAG,eAAe,CAAC,6BAA6B,EAAE;QACnE,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,MAAM,GAAiD;QAC3D,WAAW,EAAE,WAAW;QACxB,aAAa,EAAE,OAAO,EAAE,+CAA+C;KACxE,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,uCAAuC,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/F,MAAM,YAAY,GAAG;QACnB,aAAa,EAAE,QAAQ,CAAC,mBAAmB,EAAE,aAAa,IAAI,OAAO;QACrE,WAAW,EAAE,QAAQ,CAAC,mBAAmB,EAAE,WAAW,IAAI,mBAAmB;QAC7E,cAAc,EAAE,QAAQ,CAAC,mBAAmB,EAAE,cAAc,IAAI,OAAO;KACvC,CAAC;IAEnC,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC","sourcesContent":["import { AuthenticationDeliveryDetails } from 'quidproquo-core';\n\nimport {\n CognitoIdentityProviderClient,\n GetUserAttributeVerificationCodeCommand,\n GetUserAttributeVerificationCodeCommandInput,\n} from '@aws-sdk/client-cognito-identity-provider';\n\nimport { createAwsClient } from '../createAwsClient';\n\nexport const requestEmailVerificationCode = async (region: string, accessToken: string): Promise<AuthenticationDeliveryDetails> => {\n const cognitoClient = createAwsClient(CognitoIdentityProviderClient, {\n region,\n });\n\n const params: GetUserAttributeVerificationCodeCommandInput = {\n AccessToken: accessToken,\n AttributeName: 'email', // Request verification for the email attribute\n };\n\n const response = await cognitoClient.send(new GetUserAttributeVerificationCodeCommand(params));\n\n const deliveryInfo = {\n attributeName: response.CodeDeliveryDetails?.AttributeName || 'email',\n destination: response.CodeDeliveryDetails?.Destination || 'unknown@email.com',\n deliveryMedium: response.CodeDeliveryDetails?.DeliveryMedium || 'EMAIL',\n } as AuthenticationDeliveryDetails;\n\n return deliveryInfo;\n};\n"]}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { KvsQueryOperation } from 'quidproquo-core';
|
|
2
|
+
export declare function getAllItems(tableName: string, region: string, filterExpression?: KvsQueryOperation): Promise<any[]>;
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import { DynamoDBClient, ScanCommand } from '@aws-sdk/client-dynamodb';
|
|
2
2
|
import { createAwsClient } from '../createAwsClient';
|
|
3
|
-
|
|
3
|
+
import { convertDynamoMapToObject } from './convertObjectToDynamoMap';
|
|
4
|
+
import { buildDynamoQueryExpression, buildExpressionAttributeNames, buildExpressionAttributeValues } from './qpqDynamoOrm';
|
|
5
|
+
export async function getAllItems(tableName, region, filterExpression) {
|
|
4
6
|
const dynamoDBClient = createAwsClient(DynamoDBClient, { region });
|
|
5
7
|
let records = [];
|
|
6
8
|
let lastEvaluatedKey;
|
|
7
9
|
do {
|
|
8
10
|
const scanParams = {
|
|
9
11
|
TableName: tableName,
|
|
12
|
+
FilterExpression: buildDynamoQueryExpression(filterExpression),
|
|
13
|
+
ExpressionAttributeValues: filterExpression && buildExpressionAttributeValues([filterExpression]),
|
|
14
|
+
ExpressionAttributeNames: filterExpression && buildExpressionAttributeNames([filterExpression]),
|
|
10
15
|
ExclusiveStartKey: lastEvaluatedKey,
|
|
11
16
|
};
|
|
12
17
|
try {
|
|
13
18
|
const result = await dynamoDBClient.send(new ScanCommand(scanParams));
|
|
14
|
-
records = records.concat(result.Items);
|
|
19
|
+
records = records.concat((result.Items || []).map((item) => convertDynamoMapToObject(item)));
|
|
15
20
|
lastEvaluatedKey = result.LastEvaluatedKey;
|
|
16
21
|
}
|
|
17
22
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAllItems.js","sourceRoot":"","sources":["../../../../src/logic/dynamo/getAllItems.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getAllItems.js","sourceRoot":"","sources":["../../../../src/logic/dynamo/getAllItems.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAoB,MAAM,0BAA0B,CAAC;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAE3H,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,MAAc,EAAE,gBAAoC;IACvG,MAAM,cAAc,GAAG,eAAe,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnE,IAAI,OAAO,GAAU,EAAE,CAAC;IACxB,IAAI,gBAAoD,CAAC;IAEzD,GAAG,CAAC;QACF,MAAM,UAAU,GAAqB;YACnC,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,0BAA0B,CAAC,gBAAgB,CAAC;YAC9D,yBAAyB,EAAE,gBAAgB,IAAI,8BAA8B,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACjG,wBAAwB,EAAE,gBAAgB,IAAI,6BAA6B,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC/F,iBAAiB,EAAE,gBAAgB;SACpC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;YACtE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7F,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,QAAQ,gBAAgB,EAAE;IAE3B,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { KvsQueryOperation } from 'quidproquo-core';\n\nimport { DynamoDBClient, ScanCommand, ScanCommandInput } from '@aws-sdk/client-dynamodb';\n\nimport { createAwsClient } from '../createAwsClient';\nimport { convertDynamoMapToObject } from './convertObjectToDynamoMap';\nimport { buildDynamoQueryExpression, buildExpressionAttributeNames, buildExpressionAttributeValues } from './qpqDynamoOrm';\n\nexport async function getAllItems(tableName: string, region: string, filterExpression?: KvsQueryOperation): Promise<any[]> {\n const dynamoDBClient = createAwsClient(DynamoDBClient, { region });\n\n let records: any[] = [];\n let lastEvaluatedKey: { [key: string]: any } | undefined;\n\n do {\n const scanParams: ScanCommandInput = {\n TableName: tableName,\n FilterExpression: buildDynamoQueryExpression(filterExpression),\n ExpressionAttributeValues: filterExpression && buildExpressionAttributeValues([filterExpression]),\n ExpressionAttributeNames: filterExpression && buildExpressionAttributeNames([filterExpression]),\n ExclusiveStartKey: lastEvaluatedKey,\n };\n\n try {\n const result = await dynamoDBClient.send(new ScanCommand(scanParams));\n records = records.concat((result.Items || []).map((item) => convertDynamoMapToObject(item)));\n lastEvaluatedKey = result.LastEvaluatedKey;\n } catch (error) {\n console.error('Error scanning DynamoDB table:', error);\n throw error;\n }\n } while (lastEvaluatedKey);\n\n return records;\n}\n"]}
|