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.
Files changed (168) hide show
  1. package/lib/commonjs/getActionProcessor/core/ai/getAiPromptActionProcessor.js +1 -1
  2. package/lib/commonjs/getActionProcessor/core/ai/getAiPromptActionProcessor.js.map +1 -1
  3. package/lib/commonjs/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.js +16 -5
  4. package/lib/commonjs/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.js.map +1 -1
  5. package/lib/commonjs/getActionProcessor/core/ai/logic/createDriveFileResolver.js +2 -2
  6. package/lib/commonjs/getActionProcessor/core/ai/logic/createDriveFileResolver.js.map +1 -1
  7. package/lib/commonjs/getActionProcessor/core/ai/logic/index.d.ts +1 -0
  8. package/lib/commonjs/getActionProcessor/core/ai/logic/index.js +1 -0
  9. package/lib/commonjs/getActionProcessor/core/ai/logic/index.js.map +1 -1
  10. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinish.js +2 -1
  11. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinish.js.map +1 -1
  12. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.js +2 -1
  13. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.js.map +1 -1
  14. package/lib/commonjs/getActionProcessor/core/ai/logic/prepareAiPromptCall.js +10 -12
  15. package/lib/commonjs/getActionProcessor/core/ai/logic/prepareAiPromptCall.js.map +1 -1
  16. package/lib/commonjs/getActionProcessor/core/ai/logic/toAiStreamFinishReason.d.ts +2 -0
  17. package/lib/commonjs/getActionProcessor/core/ai/logic/toAiStreamFinishReason.js +10 -0
  18. package/lib/commonjs/getActionProcessor/core/ai/logic/toAiStreamFinishReason.js.map +1 -0
  19. package/lib/commonjs/getActionProcessor/core/ai/logic/toCacheableMessages.js +9 -9
  20. package/lib/commonjs/getActionProcessor/core/ai/logic/toCacheableMessages.js.map +1 -1
  21. package/lib/commonjs/getActionProcessor/core/ai/logic/toSdkMessages.d.ts +1 -1
  22. package/lib/commonjs/getActionProcessor/core/ai/logic/toSdkMessages.js +1 -1
  23. package/lib/commonjs/getActionProcessor/core/ai/logic/toSdkMessages.js.map +1 -1
  24. package/lib/commonjs/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.d.ts +2 -2
  25. package/lib/commonjs/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.js +10 -6
  26. package/lib/commonjs/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.js.map +1 -1
  27. package/lib/commonjs/getActionProcessor/core/file/getFileDeleteActionProcessor.js +4 -2
  28. package/lib/commonjs/getActionProcessor/core/file/getFileDeleteActionProcessor.js.map +1 -1
  29. package/lib/commonjs/getActionProcessor/core/file/getFileExistsActionProcessor.js +4 -2
  30. package/lib/commonjs/getActionProcessor/core/file/getFileExistsActionProcessor.js.map +1 -1
  31. package/lib/commonjs/getActionProcessor/core/file/getFileGenerateTemporarySecureUrlActionProcessor.js +7 -3
  32. package/lib/commonjs/getActionProcessor/core/file/getFileGenerateTemporarySecureUrlActionProcessor.js.map +1 -1
  33. package/lib/commonjs/getActionProcessor/core/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js +7 -3
  34. package/lib/commonjs/getActionProcessor/core/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js.map +1 -1
  35. package/lib/commonjs/getActionProcessor/core/file/getFileIsColdStorageActionProcessor.js +4 -2
  36. package/lib/commonjs/getActionProcessor/core/file/getFileIsColdStorageActionProcessor.js.map +1 -1
  37. package/lib/commonjs/getActionProcessor/core/file/getFileListDirectoryActionProcessor.js +6 -4
  38. package/lib/commonjs/getActionProcessor/core/file/getFileListDirectoryActionProcessor.js.map +1 -1
  39. package/lib/commonjs/getActionProcessor/core/file/getFileReadBinaryContentsActionProcessor.js +4 -2
  40. package/lib/commonjs/getActionProcessor/core/file/getFileReadBinaryContentsActionProcessor.js.map +1 -1
  41. package/lib/commonjs/getActionProcessor/core/file/getFileReadObjectJsonActionProcessor.js +7 -2
  42. package/lib/commonjs/getActionProcessor/core/file/getFileReadObjectJsonActionProcessor.js.map +1 -1
  43. package/lib/commonjs/getActionProcessor/core/file/getFileReadTextContentsActionProcessor.js +6 -2
  44. package/lib/commonjs/getActionProcessor/core/file/getFileReadTextContentsActionProcessor.js.map +1 -1
  45. package/lib/commonjs/getActionProcessor/core/file/getFileStreamOpenActionProcessor.js +3 -2
  46. package/lib/commonjs/getActionProcessor/core/file/getFileStreamOpenActionProcessor.js.map +1 -1
  47. package/lib/commonjs/getActionProcessor/core/file/getFileWriteBinaryContentsActionProcessor.js +3 -2
  48. package/lib/commonjs/getActionProcessor/core/file/getFileWriteBinaryContentsActionProcessor.js.map +1 -1
  49. package/lib/commonjs/getActionProcessor/core/file/getFileWriteObjectJsonActionProcessor.js +3 -2
  50. package/lib/commonjs/getActionProcessor/core/file/getFileWriteObjectJsonActionProcessor.js.map +1 -1
  51. package/lib/commonjs/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.js +3 -2
  52. package/lib/commonjs/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.js.map +1 -1
  53. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.js +11 -9
  54. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.js.map +1 -1
  55. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.js +7 -3
  56. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.js.map +1 -1
  57. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js +8 -3
  58. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js.map +1 -1
  59. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js +9 -5
  60. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js.map +1 -1
  61. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js +9 -2
  62. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js.map +1 -1
  63. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js +10 -8
  64. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js.map +1 -1
  65. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.js +13 -11
  66. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.js.map +1 -1
  67. package/lib/commonjs/getActionProcessor/core/keyValueStore/index.js +2 -1
  68. package/lib/commonjs/getActionProcessor/core/keyValueStore/index.js.map +1 -1
  69. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.js +2 -2
  70. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.js.map +1 -1
  71. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.js +11 -1
  72. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.js.map +1 -1
  73. package/lib/commonjs/lambdaHandlers/getSqsEvent_queueEvent.js +3 -3
  74. package/lib/commonjs/lambdaHandlers/getSqsEvent_queueEvent.js.map +1 -1
  75. package/lib/commonjs/logic/cognito/requestEmailVerificationCode.d.ts +2 -1
  76. package/lib/commonjs/logic/cognito/requestEmailVerificationCode.js +8 -1
  77. package/lib/commonjs/logic/cognito/requestEmailVerificationCode.js.map +1 -1
  78. package/lib/commonjs/logic/dynamo/getAllItems.d.ts +2 -1
  79. package/lib/commonjs/logic/dynamo/getAllItems.js +7 -2
  80. package/lib/commonjs/logic/dynamo/getAllItems.js.map +1 -1
  81. package/lib/commonjs/logic/dynamo/getItem.d.ts +2 -1
  82. package/lib/commonjs/logic/dynamo/getItem.js +8 -5
  83. package/lib/commonjs/logic/dynamo/getItem.js.map +1 -1
  84. package/lib/esm/getActionProcessor/core/ai/getAiPromptActionProcessor.js +1 -1
  85. package/lib/esm/getActionProcessor/core/ai/getAiPromptActionProcessor.js.map +1 -1
  86. package/lib/esm/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.js +16 -6
  87. package/lib/esm/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.js.map +1 -1
  88. package/lib/esm/getActionProcessor/core/ai/logic/createDriveFileResolver.js +2 -2
  89. package/lib/esm/getActionProcessor/core/ai/logic/createDriveFileResolver.js.map +1 -1
  90. package/lib/esm/getActionProcessor/core/ai/logic/index.d.ts +1 -0
  91. package/lib/esm/getActionProcessor/core/ai/logic/index.js +1 -0
  92. package/lib/esm/getActionProcessor/core/ai/logic/index.js.map +1 -1
  93. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinish.js +2 -1
  94. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinish.js.map +1 -1
  95. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.js +2 -1
  96. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.js.map +1 -1
  97. package/lib/esm/getActionProcessor/core/ai/logic/prepareAiPromptCall.js +13 -8
  98. package/lib/esm/getActionProcessor/core/ai/logic/prepareAiPromptCall.js.map +1 -1
  99. package/lib/esm/getActionProcessor/core/ai/logic/toAiStreamFinishReason.d.ts +2 -0
  100. package/lib/esm/getActionProcessor/core/ai/logic/toAiStreamFinishReason.js +6 -0
  101. package/lib/esm/getActionProcessor/core/ai/logic/toAiStreamFinishReason.js.map +1 -0
  102. package/lib/esm/getActionProcessor/core/ai/logic/toCacheableMessages.js +15 -15
  103. package/lib/esm/getActionProcessor/core/ai/logic/toCacheableMessages.js.map +1 -1
  104. package/lib/esm/getActionProcessor/core/ai/logic/toSdkMessages.d.ts +1 -1
  105. package/lib/esm/getActionProcessor/core/ai/logic/toSdkMessages.js +1 -1
  106. package/lib/esm/getActionProcessor/core/ai/logic/toSdkMessages.js.map +1 -1
  107. package/lib/esm/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.d.ts +2 -2
  108. package/lib/esm/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.js +10 -6
  109. package/lib/esm/getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor.js.map +1 -1
  110. package/lib/esm/getActionProcessor/core/file/getFileDeleteActionProcessor.js +5 -3
  111. package/lib/esm/getActionProcessor/core/file/getFileDeleteActionProcessor.js.map +1 -1
  112. package/lib/esm/getActionProcessor/core/file/getFileExistsActionProcessor.js +5 -3
  113. package/lib/esm/getActionProcessor/core/file/getFileExistsActionProcessor.js.map +1 -1
  114. package/lib/esm/getActionProcessor/core/file/getFileGenerateTemporarySecureUrlActionProcessor.js +9 -5
  115. package/lib/esm/getActionProcessor/core/file/getFileGenerateTemporarySecureUrlActionProcessor.js.map +1 -1
  116. package/lib/esm/getActionProcessor/core/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js +9 -5
  117. package/lib/esm/getActionProcessor/core/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js.map +1 -1
  118. package/lib/esm/getActionProcessor/core/file/getFileIsColdStorageActionProcessor.js +5 -3
  119. package/lib/esm/getActionProcessor/core/file/getFileIsColdStorageActionProcessor.js.map +1 -1
  120. package/lib/esm/getActionProcessor/core/file/getFileListDirectoryActionProcessor.js +7 -4
  121. package/lib/esm/getActionProcessor/core/file/getFileListDirectoryActionProcessor.js.map +1 -1
  122. package/lib/esm/getActionProcessor/core/file/getFileReadBinaryContentsActionProcessor.js +5 -3
  123. package/lib/esm/getActionProcessor/core/file/getFileReadBinaryContentsActionProcessor.js.map +1 -1
  124. package/lib/esm/getActionProcessor/core/file/getFileReadObjectJsonActionProcessor.js +8 -3
  125. package/lib/esm/getActionProcessor/core/file/getFileReadObjectJsonActionProcessor.js.map +1 -1
  126. package/lib/esm/getActionProcessor/core/file/getFileReadTextContentsActionProcessor.js +7 -3
  127. package/lib/esm/getActionProcessor/core/file/getFileReadTextContentsActionProcessor.js.map +1 -1
  128. package/lib/esm/getActionProcessor/core/file/getFileStreamOpenActionProcessor.js +4 -3
  129. package/lib/esm/getActionProcessor/core/file/getFileStreamOpenActionProcessor.js.map +1 -1
  130. package/lib/esm/getActionProcessor/core/file/getFileWriteBinaryContentsActionProcessor.js +4 -3
  131. package/lib/esm/getActionProcessor/core/file/getFileWriteBinaryContentsActionProcessor.js.map +1 -1
  132. package/lib/esm/getActionProcessor/core/file/getFileWriteObjectJsonActionProcessor.js +4 -3
  133. package/lib/esm/getActionProcessor/core/file/getFileWriteObjectJsonActionProcessor.js.map +1 -1
  134. package/lib/esm/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.js +4 -3
  135. package/lib/esm/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.js.map +1 -1
  136. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.js +7 -5
  137. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.js.map +1 -1
  138. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.js +8 -4
  139. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.js.map +1 -1
  140. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js +9 -4
  141. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js.map +1 -1
  142. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js +10 -6
  143. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js.map +1 -1
  144. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js +11 -4
  145. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js.map +1 -1
  146. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js +7 -5
  147. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js.map +1 -1
  148. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.js +14 -12
  149. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.js.map +1 -1
  150. package/lib/esm/getActionProcessor/core/keyValueStore/index.js +2 -0
  151. package/lib/esm/getActionProcessor/core/keyValueStore/index.js.map +1 -1
  152. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.js +2 -2
  153. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.js.map +1 -1
  154. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.js +12 -2
  155. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.js.map +1 -1
  156. package/lib/esm/lambdaHandlers/getSqsEvent_queueEvent.js +3 -3
  157. package/lib/esm/lambdaHandlers/getSqsEvent_queueEvent.js.map +1 -1
  158. package/lib/esm/logic/cognito/requestEmailVerificationCode.d.ts +2 -1
  159. package/lib/esm/logic/cognito/requestEmailVerificationCode.js +7 -1
  160. package/lib/esm/logic/cognito/requestEmailVerificationCode.js.map +1 -1
  161. package/lib/esm/logic/dynamo/getAllItems.d.ts +2 -1
  162. package/lib/esm/logic/dynamo/getAllItems.js +7 -2
  163. package/lib/esm/logic/dynamo/getAllItems.js.map +1 -1
  164. package/lib/esm/logic/dynamo/getItem.d.ts +2 -1
  165. package/lib/esm/logic/dynamo/getItem.js +8 -5
  166. package/lib/esm/logic/dynamo/getItem.js.map +1 -1
  167. package/lib/extension-layer/qpq-log-extension/index.js +37 -37
  168. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"getKeyValueStoreGetActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAE1D,qDAOyB;AAEzB,4DAA0E;AAC1E,kDAAgD;AAEhD,MAAM,0BAA0B,GAAG,CAAC,SAAoB,EAAwC,EAAE;IAChG,OAAO,KAAmC,EAAE,4CAA9B,EAAE,iBAAiB,EAAE,GAAG,EAAE;QACtC,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAO,EAAC,eAAe,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAE3D,OAAO,IAAA,8BAAY,EAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,+CAA6B,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBACzH,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,+CAA6B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;aAC7H,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,kCAAkC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC5I,CAAC,yCAAuB,CAAC,GAAG,CAAC,EAAE,0BAA0B,CAAC,SAAS,CAAC;KACrE,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,kCAAkC,sCAE5C","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport { ActionProcessorList, ActionProcessorListResolver, QPQConfig, qpqCoreUtils } from 'quidproquo-core';\nimport {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n KeyValueStoreActionType,\n KeyValueStoreGetActionProcessor,\n KeyValueStoreGetErrorTypeEnum,\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 }) => {\n const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');\n const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);\n\n try {\n const result = await getItem(dynamoTableName, key, region);\n\n return actionResult(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 });\n }\n };\n};\n\nexport const getKeyValueStoreGetActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.Get]: getProcessKeyValueStoreGet(qpqConfig),\n});\n"]}
1
+ {"version":3,"file":"getKeyValueStoreGetActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAE1D,qDASyB;AAEzB,4DAA0E;AAC1E,kDAAgD;AAEhD,MAAM,0BAA0B,GAAG,CAAC,SAAoB,EAAwC,EAAE;IAChG,OAAO,KAA4C,EAAE,4CAAvC,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE;QAC/C,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAA,8CAA4B,EAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,IAAA,+CAA6B,EAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAO,EAAC,eAAe,EAAE,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAErG,OAAO,IAAA,8BAAY,EAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,+CAA6B,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBACzH,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,+CAA6B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC5H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,+CAA6B,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC1G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,+CAA6B,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aAChH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,kCAAkC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC5I,CAAC,yCAAuB,CAAC,GAAG,CAAC,EAAE,0BAA0B,CAAC,SAAS,CAAC;KACrE,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,kCAAkC,sCAE5C","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"]}
@@ -15,17 +15,22 @@ const quidproquo_core_1 = require("quidproquo-core");
15
15
  const awsNamingUtils_1 = require("../../../awsNamingUtils");
16
16
  const dynamo_1 = require("../../../logic/dynamo");
17
17
  const getProcessKeyValueStoreGetAll = (qpqConfig) => {
18
- return (_a) => __awaiter(void 0, [_a], void 0, function* ({ keyValueStoreName }) {
18
+ return (_a) => __awaiter(void 0, [_a], void 0, function* ({ keyValueStoreName, options }) {
19
19
  const dynamoTableName = (0, awsNamingUtils_1.getKvsDynamoTableNameFromConfig)(keyValueStoreName, qpqConfig, 'kvs');
20
20
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
21
21
  try {
22
- const result = yield (0, dynamo_1.getAllItems)(dynamoTableName, region);
23
- return (0, quidproquo_core_1.actionResult)(result);
22
+ // GetAll has no key condition, so scope is enforced as a begins_with
23
+ // prefix filter (a full scan on the Dynamo side either way).
24
+ const scoped = (0, quidproquo_core_1.getScopedKvsTranslatorOrThrow)(qpqConfig, keyValueStoreName, options === null || options === void 0 ? void 0 : options.scope);
25
+ const result = yield (0, dynamo_1.getAllItems)(dynamoTableName, region, scoped.scanFilter(undefined));
26
+ return (0, quidproquo_core_1.actionResult)(result.map((item) => scoped.strip(item)));
24
27
  }
25
28
  catch (error) {
26
29
  return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
27
30
  InternalServerError: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.KeyValueStoreGetAllErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
28
31
  ResourceNotFoundException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.KeyValueStoreGetAllErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
32
+ InvalidScopeError: (error) => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.KeyValueStoreGetAllErrorTypeEnum.InvalidScope, error.message),
33
+ KvsStoreNotFoundError: (error) => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.KeyValueStoreGetAllErrorTypeEnum.StoreNotFound, error.message),
29
34
  });
30
35
  }
31
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"getKeyValueStoreGetAllActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAE1D,qDAOyB;AAEzB,4DAA0E;AAC1E,kDAAoD;AAEpD,MAAM,6BAA6B,GAAG,CAAC,SAAoB,EAA2C,EAAE;IACtG,OAAO,KAA8B,EAAE,4CAAzB,EAAE,iBAAiB,EAAE;QACjC,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAW,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAE1D,OAAO,IAAA,8BAAY,EAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC5H,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;aAChI,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,qCAAqC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC/I,CAAC,yCAAuB,CAAC,MAAM,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC;KAC3E,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,qCAAqC,yCAE/C","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport { ActionProcessorList, ActionProcessorListResolver, QPQConfig, qpqCoreUtils } from 'quidproquo-core';\nimport {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\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 }) => {\n const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');\n const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);\n\n try {\n const result = await getAllItems(dynamoTableName, region);\n\n return actionResult(result);\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 });\n }\n };\n};\n\nexport const getKeyValueStoreGetAllActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.GetAll]: getProcessKeyValueStoreGetAll(qpqConfig),\n});\n"]}
1
+ {"version":3,"file":"getKeyValueStoreGetAllActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAE1D,qDAQyB;AAEzB,4DAA0E;AAC1E,kDAAoD;AAEpD,MAAM,6BAA6B,GAAG,CAAC,SAAoB,EAA2C,EAAE;IACtG,OAAO,KAAuC,EAAE,4CAAlC,EAAE,iBAAiB,EAAE,OAAO,EAAE;QAC1C,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,qEAAqE;YACrE,6DAA6D;YAC7D,MAAM,MAAM,GAAG,IAAA,+CAA6B,EAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAW,EAAC,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YAExF,OAAO,IAAA,8BAAY,EAAC,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,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC5H,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC/H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC7G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aACnH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,qCAAqC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC/I,CAAC,yCAAuB,CAAC,MAAM,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC;KAC3E,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,qCAAqC,yCAE/C","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"]}
@@ -20,18 +20,22 @@ const getProcessKeyValueStoreQuery = (qpqConfig) => {
20
20
  return (_a) => __awaiter(void 0, [_a], void 0, function* ({ keyValueStoreName, keyCondition, options }) {
21
21
  const dynamoTableName = (0, awsNamingUtils_1.getKvsDynamoTableNameFromConfig)(keyValueStoreName, qpqConfig, 'kvs');
22
22
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
23
- const storeConfig = quidproquo_core_1.qpqCoreUtils.getKeyValueStoreByName(qpqConfig, keyValueStoreName);
24
- if (!storeConfig) {
25
- return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.ErrorTypeEnum.NotFound, `Could not find key value store with name "${keyValueStoreName}"`);
26
- }
27
23
  try {
28
- const items = yield (0, dynamo_1.query)(dynamoTableName, region, keyCondition, options === null || options === void 0 ? void 0 : options.filter, options === null || options === void 0 ? void 0 : options.nextPageKey, (0, qpqDynamoOrm_1.getDynamoTableIndexByConfigAndQuery)(storeConfig, keyCondition), options === null || options === void 0 ? void 0 : options.limit, options === null || options === void 0 ? void 0 : options.sortAscending);
24
+ const storeConfig = (0, quidproquo_core_1.resolveKvsStoreConfigOrThrow)(qpqConfig, keyValueStoreName);
25
+ // Scope lives inside the pk values, so pk conditions are rewritten to the
26
+ // composed form (throws when the key condition never constrains the pk).
27
+ const scoped = (0, quidproquo_core_1.getScopedKvsTranslatorOrThrow)(qpqConfig, keyValueStoreName, options === null || options === void 0 ? void 0 : options.scope);
28
+ const effectiveKeyCondition = scoped.keyCondition(keyCondition);
29
+ const items = yield (0, dynamo_1.query)(dynamoTableName, region, effectiveKeyCondition, scoped.filter(options === null || options === void 0 ? void 0 : options.filter), options === null || options === void 0 ? void 0 : options.nextPageKey, (0, qpqDynamoOrm_1.getDynamoTableIndexByConfigAndQuery)(storeConfig, effectiveKeyCondition), options === null || options === void 0 ? void 0 : options.limit, options === null || options === void 0 ? void 0 : options.sortAscending);
30
+ items.items = items.items.map((item) => scoped.strip(item));
29
31
  return (0, quidproquo_core_2.actionResult)(items);
30
32
  }
31
33
  catch (error) {
32
34
  return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
33
35
  InternalServerError: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreQueryErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
34
36
  ResourceNotFoundException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreQueryErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
37
+ InvalidScopeError: (error) => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreQueryErrorTypeEnum.InvalidScope, error.message),
38
+ KvsStoreNotFoundError: (error) => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreQueryErrorTypeEnum.StoreNotFound, error.message),
35
39
  });
36
40
  }
37
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"getKeyValueStoreQueryActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAC1D,qDAQyB;AACzB,qDAA4I;AAE5I,4DAA0E;AAC1E,kDAA8C;AAC9C,qEAAyF;AAEzF,MAAM,4BAA4B,GAAG,CAAC,SAAoB,EAA0C,EAAE;IACpG,OAAO,KAAqD,EAAE,4CAAhD,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,EAAE;QACxD,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,MAAM,WAAW,GAAG,8BAAY,CAAC,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACtF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAA,mCAAiB,EAAC,+BAAa,CAAC,QAAQ,EAAE,6CAA6C,iBAAiB,GAAG,CAAC,CAAC;QACtH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAA,cAAK,EACvB,eAAe,EACf,MAAM,EACN,YAAY,EACZ,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EACf,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EACpB,IAAA,kDAAmC,EAAC,WAAW,EAAE,YAAY,CAAC,EAC9D,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EACd,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CACvB,CAAC;YAEF,OAAO,IAAA,8BAAY,EAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,iDAA+B,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC3H,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,iDAA+B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;aAC/H,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,oCAAoC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC9I,CAAC,yCAAuB,CAAC,KAAK,CAAC,EAAE,4BAA4B,CAAC,SAAS,CAAC;KACzE,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,oCAAoC,wCAE9C","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResultError,\n actionResultErrorFromCaughtError,\n ErrorTypeEnum,\n QPQConfig,\n qpqCoreUtils,\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 const storeConfig = qpqCoreUtils.getKeyValueStoreByName(qpqConfig, keyValueStoreName);\n if (!storeConfig) {\n return actionResultError(ErrorTypeEnum.NotFound, `Could not find key value store with name \"${keyValueStoreName}\"`);\n }\n\n try {\n const items = await query<any>(\n dynamoTableName,\n region,\n keyCondition,\n options?.filter,\n options?.nextPageKey,\n getDynamoTableIndexByConfigAndQuery(storeConfig, keyCondition),\n options?.limit,\n options?.sortAscending,\n );\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 });\n }\n };\n};\n\nexport const getKeyValueStoreQueryActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.Query]: getProcessKeyValueStoreQuery(qpqConfig),\n});\n"]}
1
+ {"version":3,"file":"getKeyValueStoreQueryActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAC1D,qDAQyB;AACzB,qDAA4I;AAE5I,4DAA0E;AAC1E,kDAA8C;AAC9C,qEAAyF;AAEzF,MAAM,4BAA4B,GAAG,CAAC,SAAoB,EAA0C,EAAE;IACpG,OAAO,KAAqD,EAAE,4CAAhD,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,EAAE;QACxD,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAA,8CAA4B,EAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YAE/E,0EAA0E;YAC1E,yEAAyE;YACzE,MAAM,MAAM,GAAG,IAAA,+CAA6B,EAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,CAAC;YAC3F,MAAM,qBAAqB,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAEhE,MAAM,KAAK,GAAG,MAAM,IAAA,cAAK,EACvB,eAAe,EACf,MAAM,EACN,qBAAqB,EACrB,MAAM,CAAC,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,EAC9B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EACpB,IAAA,kDAAmC,EAAC,WAAW,EAAE,qBAAqB,CAAC,EACvE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EACd,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,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,IAAA,8BAAY,EAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,iDAA+B,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC3H,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,iDAA+B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC9H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,iDAA+B,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC5G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,iDAA+B,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aAClH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,oCAAoC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC9I,CAAC,yCAAuB,CAAC,KAAK,CAAC,EAAE,4BAA4B,CAAC,SAAS,CAAC;KACzE,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,oCAAoC,wCAE9C","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"]}
@@ -16,17 +16,24 @@ const quidproquo_core_2 = require("quidproquo-core");
16
16
  const awsNamingUtils_1 = require("../../../awsNamingUtils");
17
17
  const scan_1 = require("../../../logic/dynamo/scan");
18
18
  const getProcessKeyValueStoreScan = (qpqConfig) => {
19
- return (_a) => __awaiter(void 0, [_a], void 0, function* ({ keyValueStoreName, filterCondition, nextPageKey }) {
19
+ return (_a) => __awaiter(void 0, [_a], void 0, function* ({ keyValueStoreName, filterCondition, nextPageKey, options }) {
20
20
  const dynamoTableName = (0, awsNamingUtils_1.getKvsDynamoTableNameFromConfig)(keyValueStoreName, qpqConfig, 'kvs');
21
21
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
22
22
  try {
23
- const items = yield (0, scan_1.scan)(dynamoTableName, region, filterCondition, nextPageKey);
23
+ // A scan has no key condition, so scope is enforced as a begins_with
24
+ // prefix predicate ANDed onto the caller's filter. Still a full-table
25
+ // scan on the Dynamo side - only the results are isolated.
26
+ const scoped = (0, quidproquo_core_2.getScopedKvsTranslatorOrThrow)(qpqConfig, keyValueStoreName, options === null || options === void 0 ? void 0 : options.scope);
27
+ const items = yield (0, scan_1.scan)(dynamoTableName, region, scoped.scanFilter(filterCondition), nextPageKey);
28
+ items.items = items.items.map((item) => scoped.strip(item));
24
29
  return (0, quidproquo_core_2.actionResult)(items);
25
30
  }
26
31
  catch (error) {
27
32
  return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
28
33
  InternalServerError: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreScanErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
29
34
  ResourceNotFoundException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreScanErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
35
+ InvalidScopeError: (error) => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreScanErrorTypeEnum.InvalidScope, error.message),
36
+ KvsStoreNotFoundError: (error) => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreScanErrorTypeEnum.StoreNotFound, error.message),
30
37
  });
31
38
  }
32
39
  });
@@ -1 +1 @@
1
- {"version":3,"file":"getKeyValueStoreScanActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAC1D,qDAOyB;AACzB,qDAA0I;AAE1I,4DAA0E;AAC1E,qDAAkD;AAElD,MAAM,2BAA2B,GAAG,CAAC,SAAoB,EAAyC,EAAE;IAClG,OAAO,KAA4D,EAAE,4CAAvD,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE;QAC/D,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAA,WAAI,EAAM,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;YAErF,OAAO,IAAA,8BAAY,EAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,gDAA8B,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC1H,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,gDAA8B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;aAC9H,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,mCAAmC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC7I,CAAC,yCAAuB,CAAC,IAAI,CAAC,EAAE,2BAA2B,CAAC,SAAS,CAAC;KACvE,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,mCAAmC,uCAE7C","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResultError,\n actionResultErrorFromCaughtError,\n QPQConfig,\n qpqCoreUtils,\n} from 'quidproquo-core';\nimport { actionResult, KeyValueStoreActionType, KeyValueStoreScanActionProcessor, KeyValueStoreScanErrorTypeEnum } 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 }) => {\n const dynamoTableName = getKvsDynamoTableNameFromConfig(keyValueStoreName, qpqConfig, 'kvs');\n const region = qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);\n\n try {\n const items = await scan<any>(dynamoTableName, region, filterCondition, nextPageKey);\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 });\n }\n };\n};\n\nexport const getKeyValueStoreScanActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.Scan]: getProcessKeyValueStoreScan(qpqConfig),\n});\n"]}
1
+ {"version":3,"file":"getKeyValueStoreScanActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAC1D,qDAAmJ;AACnJ,qDAMyB;AAEzB,4DAA0E;AAC1E,qDAAkD;AAElD,MAAM,2BAA2B,GAAG,CAAC,SAAoB,EAAyC,EAAE;IAClG,OAAO,KAAqE,EAAE,4CAAhE,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE;QACxE,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,qEAAqE;YACrE,sEAAsE;YACtE,2DAA2D;YAC3D,MAAM,MAAM,GAAG,IAAA,+CAA6B,EAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,KAAK,GAAG,MAAM,IAAA,WAAI,EAAM,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,IAAA,8BAAY,EAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,gDAA8B,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC1H,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,gDAA8B,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC7H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,gDAA8B,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC3G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,gDAA8B,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aACjH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,mCAAmC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC7I,CAAC,yCAAuB,CAAC,IAAI,CAAC,EAAE,2BAA2B,CAAC,SAAS,CAAC;KACvE,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,mCAAmC,uCAE7C","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"]}
@@ -12,7 +12,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.getKeyValueStoreUpdateActionProcessor = void 0;
13
13
  const quidproquo_config_aws_1 = require("quidproquo-config-aws");
14
14
  const quidproquo_core_1 = require("quidproquo-core");
15
- const quidproquo_core_2 = require("quidproquo-core");
16
15
  const awsNamingUtils_1 = require("../../../awsNamingUtils");
17
16
  const dynamo_1 = require("../../../logic/dynamo");
18
17
  const getProcessKeyValueStoreUpdate = (qpqConfig) => {
@@ -20,22 +19,25 @@ const getProcessKeyValueStoreUpdate = (qpqConfig) => {
20
19
  var _b;
21
20
  const dynamoTableName = (0, awsNamingUtils_1.getKvsDynamoTableNameFromConfig)(keyValueStoreName, qpqConfig, 'kvs');
22
21
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
23
- const storeConfig = quidproquo_core_1.qpqCoreUtils.getKeyValueStoreByName(qpqConfig, keyValueStoreName);
24
22
  try {
25
- const item = yield (0, dynamo_1.updateItem)(dynamoTableName, region, updates, storeConfig.partitionKey.key, key, (_b = storeConfig.sortKeys[0]) === null || _b === void 0 ? void 0 : _b.key, sortKey);
26
- return (0, quidproquo_core_2.actionResult)(item);
23
+ const storeConfig = (0, quidproquo_core_1.resolveKvsStoreConfigOrThrow)(qpqConfig, keyValueStoreName);
24
+ const scoped = (0, quidproquo_core_1.getScopedKvsTranslatorOrThrow)(qpqConfig, keyValueStoreName, options === null || options === void 0 ? void 0 : options.scope);
25
+ const item = yield (0, dynamo_1.updateItem)(dynamoTableName, region, updates, storeConfig.partitionKey.key, scoped.key(key), (_b = storeConfig.sortKeys[0]) === null || _b === void 0 ? void 0 : _b.key, sortKey);
26
+ return (0, quidproquo_core_1.actionResult)(scoped.strip(item));
27
27
  }
28
28
  catch (error) {
29
- return (0, quidproquo_core_2.actionResultErrorFromCaughtError)(error, {
30
- InternalServerError: () => (0, quidproquo_core_2.actionResultError)(quidproquo_core_2.KeyValueStoreUpdateErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
31
- ResourceNotFoundException: () => (0, quidproquo_core_2.actionResultError)(quidproquo_core_2.KeyValueStoreUpdateErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
29
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
30
+ InternalServerError: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.KeyValueStoreUpdateErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
31
+ ResourceNotFoundException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.KeyValueStoreUpdateErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
32
+ InvalidScopeError: (error) => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.KeyValueStoreUpdateErrorTypeEnum.InvalidScope, error.message),
33
+ KvsStoreNotFoundError: (error) => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.KeyValueStoreUpdateErrorTypeEnum.StoreNotFound, error.message),
32
34
  });
33
35
  }
34
36
  });
35
37
  };
36
38
  const getKeyValueStoreUpdateActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
37
39
  return ({
38
- [quidproquo_core_2.KeyValueStoreActionType.Update]: getProcessKeyValueStoreUpdate(qpqConfig),
40
+ [quidproquo_core_1.KeyValueStoreActionType.Update]: getProcessKeyValueStoreUpdate(qpqConfig),
39
41
  });
40
42
  });
41
43
  exports.getKeyValueStoreUpdateActionProcessor = getKeyValueStoreUpdateActionProcessor;
@@ -1 +1 @@
1
- {"version":3,"file":"getKeyValueStoreUpdateActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAC1D,qDAA4G;AAC5G,qDAOyB;AAEzB,4DAA0E;AAC1E,kDAAmD;AAEnD,MAAM,6BAA6B,GAAG,CAAC,SAAoB,EAA2C,EAAE;IACtG,OAAO,KAA8D,EAAE,4CAAzD,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;;QACjE,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,MAAM,WAAW,GAAG,8BAAY,CAAC,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,CAAE,CAAC;QAEvF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAA,mBAAU,EAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAA,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,0CAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAE1I,OAAO,IAAA,8BAAY,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC5H,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;aAChI,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,qCAAqC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC/I,CAAC,yCAAuB,CAAC,MAAM,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC;KAC3E,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,qCAAqC,yCAE/C","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport { ActionProcessorList, ActionProcessorListResolver, QPQConfig, qpqCoreUtils } from 'quidproquo-core';\nimport {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n KeyValueStoreActionType,\n KeyValueStoreUpdateActionProcessor,\n KeyValueStoreUpdateErrorTypeEnum,\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 const storeConfig = qpqCoreUtils.getKeyValueStoreByName(qpqConfig, keyValueStoreName)!;\n\n try {\n const item = await updateItem(dynamoTableName, region, updates, storeConfig.partitionKey.key, key, storeConfig.sortKeys[0]?.key, sortKey);\n\n return actionResult(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 });\n }\n };\n};\n\nexport const getKeyValueStoreUpdateActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.Update]: getProcessKeyValueStoreUpdate(qpqConfig),\n});\n"]}
1
+ {"version":3,"file":"getKeyValueStoreUpdateActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAE1D,qDASyB;AAEzB,4DAA0E;AAC1E,kDAAmD;AAEnD,MAAM,6BAA6B,GAAG,CAAC,SAAoB,EAA2C,EAAE;IACtG,OAAO,KAA8D,EAAE,4CAAzD,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;;QACjE,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAA,8CAA4B,EAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,IAAA,+CAA6B,EAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,IAAI,GAAG,MAAM,IAAA,mBAAU,EAC3B,eAAe,EACf,MAAM,EACN,OAAO,EACP,WAAW,CAAC,YAAY,CAAC,GAAG,EAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EACf,MAAA,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,0CAAE,GAAG,EAC5B,OAAO,CACR,CAAC;YAEF,OAAO,IAAA,8BAAY,EAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC5H,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC/H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC7G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aACnH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,qCAAqC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC/I,CAAC,yCAAuB,CAAC,MAAM,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC;KAC3E,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,qCAAqC,yCAE/C","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"]}
@@ -19,18 +19,18 @@ const getProcessKeyValueStoreUpsert = (qpqConfig) => {
19
19
  return (_a) => __awaiter(void 0, [_a], void 0, function* ({ keyValueStoreName, item, options }) {
20
20
  const dynamoTableName = (0, awsNamingUtils_1.getKvsDynamoTableNameFromConfig)(keyValueStoreName, qpqConfig, 'kvs');
21
21
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
22
- const storeConfig = quidproquo_core_1.qpqCoreUtils.getKeyValueStoreByName(qpqConfig, keyValueStoreName);
23
- if (!storeConfig) {
24
- return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.ErrorTypeEnum.NotFound, `Could not find key value store with name "${keyValueStoreName}"`);
25
- }
26
- const keys = [
27
- storeConfig.partitionKey,
28
- ...storeConfig.sortKeys,
29
- ...storeConfig.indexes.map((i) => i.partitionKey),
30
- ...storeConfig.indexes.filter((i) => !!i.sortKey).map((i) => i.sortKey),
31
- ];
32
22
  try {
33
- yield (0, dynamo_1.putItem)(dynamoTableName, item, keys, {
23
+ const storeConfig = (0, quidproquo_core_1.resolveKvsStoreConfigOrThrow)(qpqConfig, keyValueStoreName);
24
+ const keys = [
25
+ storeConfig.partitionKey,
26
+ ...storeConfig.sortKeys,
27
+ ...storeConfig.indexes.map((i) => i.partitionKey),
28
+ ...storeConfig.indexes.filter((i) => !!i.sortKey).map((i) => i.sortKey),
29
+ ];
30
+ // The scope lives inside the stored partition key value, so the item is
31
+ // persisted with a composed pk; reads strip it back off.
32
+ const scoped = (0, quidproquo_core_1.getScopedKvsTranslatorOrThrow)(qpqConfig, keyValueStoreName, options === null || options === void 0 ? void 0 : options.scope);
33
+ yield (0, dynamo_1.putItem)(dynamoTableName, scoped.item(item), keys, {
34
34
  expires: options === null || options === void 0 ? void 0 : options.ttlInSeconds,
35
35
  ifNotExistsAttribute: (options === null || options === void 0 ? void 0 : options.ifNotExists) ? storeConfig.partitionKey.key : undefined,
36
36
  }, region);
@@ -41,6 +41,8 @@ const getProcessKeyValueStoreUpsert = (qpqConfig) => {
41
41
  InternalServerError: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreUpsertErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
42
42
  ResourceNotFoundException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreUpsertErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
43
43
  ConditionalCheckFailedException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreUpsertErrorTypeEnum.Conflict, 'KVS item already exists'),
44
+ InvalidScopeError: (error) => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreUpsertErrorTypeEnum.InvalidScope, error.message),
45
+ KvsStoreNotFoundError: (error) => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreUpsertErrorTypeEnum.StoreNotFound, error.message),
44
46
  });
45
47
  }
46
48
  });
@@ -1 +1 @@
1
- {"version":3,"file":"getKeyValueStoreUpsertActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAC1D,qDAWyB;AACzB,qDAAmE;AAEnE,4DAA0E;AAC1E,kDAAgD;AAEhD,MAAM,6BAA6B,GAAG,CAAC,SAAoB,EAA2C,EAAE;IACtG,OAAO,KAA6C,EAAE,4CAAxC,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;QAChD,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,MAAM,WAAW,GAAG,8BAAY,CAAC,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACtF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAA,mCAAiB,EAAC,+BAAa,CAAC,QAAQ,EAAE,6CAA6C,iBAAiB,GAAG,CAAC,CAAC;QACtH,CAAC;QAED,MAAM,IAAI,GAAG;YACX,WAAW,CAAC,YAAY;YACxB,GAAG,WAAW,CAAC,QAAQ;YACvB,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;YACjD,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;SACzE,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAA,gBAAO,EACX,eAAe,EACf,IAAI,EACJ,IAAI,EACJ;gBACE,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;gBAC9B,oBAAoB,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;aACtF,EACD,MAAM,CACP,CAAC;YAEF,OAAO,IAAA,8BAAY,EAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC5H,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC/H,+BAA+B,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,QAAQ,EAAE,yBAAyB,CAAC;aAC/H,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,qCAAqC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC/I,CAAC,yCAAuB,CAAC,MAAM,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC;KAC3E,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,qCAAqC,yCAE/C","sourcesContent":["import { qpqConfigAwsUtils } from 'quidproquo-config-aws';\nimport {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n ErrorTypeEnum,\n KeyValueStoreActionType,\n KeyValueStoreUpsertActionProcessor,\n QPQConfig,\n qpqCoreUtils,\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 const storeConfig = qpqCoreUtils.getKeyValueStoreByName(qpqConfig, keyValueStoreName);\n if (!storeConfig) {\n return actionResultError(ErrorTypeEnum.NotFound, `Could not find key value store with name \"${keyValueStoreName}\"`);\n }\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 try {\n await putItem(\n dynamoTableName,\n 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 });\n }\n };\n};\n\nexport const getKeyValueStoreUpsertActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [KeyValueStoreActionType.Upsert]: getProcessKeyValueStoreUpsert(qpqConfig),\n});\n"]}
1
+ {"version":3,"file":"getKeyValueStoreUpsertActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/getKeyValueStoreUpsertActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAC1D,qDAWyB;AACzB,qDAAmE;AAEnE,4DAA0E;AAC1E,kDAAgD;AAEhD,MAAM,6BAA6B,GAAG,CAAC,SAAoB,EAA2C,EAAE;IACtG,OAAO,KAA6C,EAAE,4CAAxC,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;QAChD,MAAM,eAAe,GAAG,IAAA,gDAA+B,EAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAA,8CAA4B,EAAC,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,IAAA,+CAA6B,EAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,IAAA,gBAAO,EACX,eAAe,EACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACjB,IAAI,EACJ;gBACE,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;gBAC9B,oBAAoB,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;aACtF,EACD,MAAM,CACP,CAAC;YAEF,OAAO,IAAA,8BAAY,EAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBAC5H,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;gBAC/H,+BAA+B,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,QAAQ,EAAE,yBAAyB,CAAC;gBAC9H,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC7G,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAiB,EAAC,kDAAgC,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;aACnH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,qCAAqC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC/I,CAAC,yCAAuB,CAAC,MAAM,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC;KAC3E,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,qCAAqC,yCAE/C","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"]}
@@ -12,12 +12,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.getKeyValueStoreActionProcessor = void 0;
13
13
  const getKeyValueStoreDeleteActionProcessor_1 = require("./getKeyValueStoreDeleteActionProcessor");
14
14
  const getKeyValueStoreGetActionProcessor_1 = require("./getKeyValueStoreGetActionProcessor");
15
+ const getKeyValueStoreGetAllActionProcessor_1 = require("./getKeyValueStoreGetAllActionProcessor");
15
16
  const getKeyValueStoreQueryActionProcessor_1 = require("./getKeyValueStoreQueryActionProcessor");
16
17
  const getKeyValueStoreScanActionProcessor_1 = require("./getKeyValueStoreScanActionProcessor");
17
18
  const getKeyValueStoreUpdateActionProcessor_1 = require("./getKeyValueStoreUpdateActionProcessor");
18
19
  const getKeyValueStoreUpsertActionProcessor_1 = require("./getKeyValueStoreUpsertActionProcessor");
19
20
  const getKeyValueStoreActionProcessor = (qpqConfig, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
20
- return (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (yield (0, getKeyValueStoreDeleteActionProcessor_1.getKeyValueStoreDeleteActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getKeyValueStoreGetActionProcessor_1.getKeyValueStoreGetActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getKeyValueStoreUpsertActionProcessor_1.getKeyValueStoreUpsertActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getKeyValueStoreUpdateActionProcessor_1.getKeyValueStoreUpdateActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getKeyValueStoreQueryActionProcessor_1.getKeyValueStoreQueryActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getKeyValueStoreScanActionProcessor_1.getKeyValueStoreScanActionProcessor)(qpqConfig, dynamicModuleLoader))));
21
+ return (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (yield (0, getKeyValueStoreDeleteActionProcessor_1.getKeyValueStoreDeleteActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getKeyValueStoreGetActionProcessor_1.getKeyValueStoreGetActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getKeyValueStoreGetAllActionProcessor_1.getKeyValueStoreGetAllActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getKeyValueStoreUpsertActionProcessor_1.getKeyValueStoreUpsertActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getKeyValueStoreUpdateActionProcessor_1.getKeyValueStoreUpdateActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getKeyValueStoreQueryActionProcessor_1.getKeyValueStoreQueryActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getKeyValueStoreScanActionProcessor_1.getKeyValueStoreScanActionProcessor)(qpqConfig, dynamicModuleLoader))));
21
22
  });
22
23
  exports.getKeyValueStoreActionProcessor = getKeyValueStoreActionProcessor;
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/keyValueStore/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,mGAAgG;AAChG,6FAA0F;AAC1F,iGAA8F;AAC9F,+FAA4F;AAC5F,mGAAgG;AAChG,mGAAgG;AAEzF,MAAM,+BAA+B,GAAgC,CAC1E,SAAoB,EACpB,mBAAwC,EACV,EAAE;IAAC,OAAA,yFAC9B,CAAC,MAAM,IAAA,6EAAqC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC7E,CAAC,MAAM,IAAA,uEAAkC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC1E,CAAC,MAAM,IAAA,6EAAqC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC7E,CAAC,MAAM,IAAA,6EAAqC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC7E,CAAC,MAAM,IAAA,2EAAoC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC5E,CAAC,MAAM,IAAA,yEAAmC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,EAC9E,CAAA;EAAA,CAAC;AAVU,QAAA,+BAA+B,mCAUzC","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,mGAAgG;AAChG,6FAA0F;AAC1F,mGAAgG;AAChG,iGAA8F;AAC9F,+FAA4F;AAC5F,mGAAgG;AAChG,mGAAgG;AAEzF,MAAM,+BAA+B,GAAgC,CAC1E,SAAoB,EACpB,mBAAwC,EACV,EAAE;IAAC,OAAA,uGAC9B,CAAC,MAAM,IAAA,6EAAqC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC7E,CAAC,MAAM,IAAA,uEAAkC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC1E,CAAC,MAAM,IAAA,6EAAqC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC7E,CAAC,MAAM,IAAA,6EAAqC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC7E,CAAC,MAAM,IAAA,6EAAqC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC7E,CAAC,MAAM,IAAA,2EAAoC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC5E,CAAC,MAAM,IAAA,yEAAmC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,EAC9E,CAAA;EAAA,CAAC;AAXU,QAAA,+BAA+B,mCAWzC","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"]}
@@ -17,8 +17,8 @@ const getProcessRequestEmailVerification = (qpqConfig) => {
17
17
  return (_a) => __awaiter(void 0, [_a], void 0, function* ({ userDirectoryName, accessToken }) {
18
18
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
19
19
  try {
20
- yield (0, requestEmailVerificationCode_1.requestEmailVerificationCode)(region, accessToken);
21
- return (0, quidproquo_core_1.actionResult)(void 0);
20
+ const deliveryDetails = yield (0, requestEmailVerificationCode_1.requestEmailVerificationCode)(region, accessToken);
21
+ return (0, quidproquo_core_1.actionResult)(deliveryDetails);
22
22
  }
23
23
  catch (error) {
24
24
  return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
@@ -1 +1 @@
1
- {"version":3,"file":"getUserDirectoryRequestEmailVerificationActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAC1D,qDAUyB;AAEzB,sGAAmG;AAEnG,MAAM,kCAAkC,GAAG,CAAC,SAAoB,EAAwD,EAAE;IACxH,OAAO,KAA2C,EAAE,4CAAtC,EAAE,iBAAiB,EAAE,WAAW,EAAE;QAC9C,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,IAAA,2DAA4B,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAExD,OAAO,IAAA,8BAAY,EAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,sBAAsB,EAAE,GAAG,EAAE,CAC3B,IAAA,mCAAiB,EAAC,oEAAkD,CAAC,YAAY,EAAE,wCAAwC,CAAC;gBAC9H,sBAAsB,EAAE,GAAG,EAAE,CAC3B,IAAA,mCAAiB,EAAC,oEAAkD,CAAC,aAAa,EAAE,2CAA2C,CAAC;gBAClI,4BAA4B,EAAE,GAAG,EAAE,CACjC,IAAA,mCAAiB,EAAC,oEAAkD,CAAC,kBAAkB,EAAE,yCAAyC,CAAC;aACtI,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,uDAAuD,GAAgC,CAClG,SAAoB,EACU,EAAE;IAAC,OAAA,CAAC;QAClC,CAAC,yCAAuB,CAAC,wBAAwB,CAAC,EAAE,kCAAkC,CAAC,SAAS,CAAC;KAClG,CAAC,CAAA;EAAA,CAAC;AAJU,QAAA,uDAAuD,2DAIjE","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 await requestEmailVerificationCode(region, accessToken);\n\n return actionResult(void 0);\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
+ {"version":3,"file":"getUserDirectoryRequestEmailVerificationActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0D;AAC1D,qDAUyB;AAEzB,sGAAmG;AAEnG,MAAM,kCAAkC,GAAG,CAAC,SAAoB,EAAwD,EAAE;IACxH,OAAO,KAA2C,EAAE,4CAAtC,EAAE,iBAAiB,EAAE,WAAW,EAAE;QAC9C,MAAM,MAAM,GAAG,yCAAiB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,IAAA,2DAA4B,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAEhF,OAAO,IAAA,8BAAY,EAAC,eAAe,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,kDAAgC,EAAC,KAAK,EAAE;gBAC7C,sBAAsB,EAAE,GAAG,EAAE,CAC3B,IAAA,mCAAiB,EAAC,oEAAkD,CAAC,YAAY,EAAE,wCAAwC,CAAC;gBAC9H,sBAAsB,EAAE,GAAG,EAAE,CAC3B,IAAA,mCAAiB,EAAC,oEAAkD,CAAC,aAAa,EAAE,2CAA2C,CAAC;gBAClI,4BAA4B,EAAE,GAAG,EAAE,CACjC,IAAA,mCAAiB,EAAC,oEAAkD,CAAC,kBAAkB,EAAE,yCAAyC,CAAC;aACtI,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,uDAAuD,GAAgC,CAClG,SAAoB,EACU,EAAE;IAAC,OAAA,CAAC;QAClC,CAAC,yCAAuB,CAAC,wBAAwB,CAAC,EAAE,kCAAkC,CAAC,SAAS,CAAC;KAClG,CAAC,CAAA;EAAA,CAAC;AAJU,QAAA,uDAAuD,2DAIjE","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"]}
@@ -14,7 +14,17 @@ const quidproquo_core_1 = require("quidproquo-core");
14
14
  const cognito_1 = require("../../../logic/cognito");
15
15
  const getProcessSetAccessToken = (qpqConfig) => {
16
16
  return (_a, session_1, apl_1, logger_1, updateSession_1) => __awaiter(void 0, [_a, session_1, apl_1, logger_1, updateSession_1], void 0, function* ({ accessToken, userDirectoryName }, session, apl, logger, updateSession) {
17
- const decodedAccessToken = yield (0, cognito_1.decodeAccessToken)(userDirectoryName, qpqConfig, accessToken, false);
17
+ // decodeAccessToken throws on a missing/unverifiable/expired token; surface that
18
+ // as a typed Unauthorized result (matching the dev-server processor and
19
+ // ReadAccessToken) instead of letting the raw error escape as a GenericError.
20
+ // The session is left untouched on failure.
21
+ let decodedAccessToken;
22
+ try {
23
+ decodedAccessToken = yield (0, cognito_1.decodeAccessToken)(userDirectoryName, qpqConfig, accessToken, false);
24
+ }
25
+ catch (_b) {
26
+ return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.ErrorTypeEnum.Unauthorized, 'Invalid accessToken');
27
+ }
18
28
  updateSession({
19
29
  decodedAccessToken: decodedAccessToken,
20
30
  accessToken,
@@ -1 +1 @@
1
- {"version":3,"file":"getUserDirectorySetAccessTokenActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAOyB;AAEzB,oDAA2D;AAE3D,MAAM,wBAAwB,GAAG,CAAC,SAAoB,EAA8C,EAAE;IACpG,OAAO,kDAAgF,EAAE,yFAA3E,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa;QACnF,MAAM,kBAAkB,GAAG,MAAM,IAAA,2BAAiB,EAAC,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAErG,aAAa,CAAC;YACZ,kBAAkB,EAAE,kBAAkB;YACtC,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO,IAAA,8BAAY,EAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,6CAA6C,GAAgC,CACxF,SAAoB,EACU,EAAE;IAAC,OAAA,CAAC;QAClC,CAAC,yCAAuB,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC,SAAS,CAAC;KAC9E,CAAC,CAAA;EAAA,CAAC;AAJU,QAAA,6CAA6C,iDAIvD","sourcesContent":["import {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\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 const decodedAccessToken = await decodeAccessToken(userDirectoryName, qpqConfig, accessToken, false);\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"]}
1
+ {"version":3,"file":"getUserDirectorySetAccessTokenActionProcessor.js","sourceRoot":"","sources":["../../../../../src/getActionProcessor/core/userDirectory/getUserDirectorySetAccessTokenActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAUyB;AAEzB,oDAA2D;AAE3D,MAAM,wBAAwB,GAAG,CAAC,SAAoB,EAA8C,EAAE;IACpG,OAAO,kDAAgF,EAAE,yFAA3E,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa;QACnF,iFAAiF;QACjF,wEAAwE;QACxE,8EAA8E;QAC9E,4CAA4C;QAC5C,IAAI,kBAAsC,CAAC;QAC3C,IAAI,CAAC;YACH,kBAAkB,GAAG,MAAM,IAAA,2BAAiB,EAAC,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACjG,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAA,mCAAiB,EAAC,+BAAa,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;QAC9E,CAAC;QAED,aAAa,CAAC;YACZ,kBAAkB,EAAE,kBAAkB;YACtC,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO,IAAA,8BAAY,EAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,6CAA6C,GAAgC,CACxF,SAAoB,EACU,EAAE;IAAC,OAAA,CAAC;QAClC,CAAC,yCAAuB,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC,SAAS,CAAC;KAC9E,CAAC,CAAA;EAAA,CAAC;AAJU,QAAA,6CAA6C,iDAIvD","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"]}
@@ -5,9 +5,9 @@ const quidproquo_core_1 = require("quidproquo-core");
5
5
  const getActionProcessor_1 = require("../getActionProcessor");
6
6
  const getEventMatchStoryActionProcessor_1 = require("../getActionProcessor/core/event/sqs/queue/getEventMatchStoryActionProcessor");
7
7
  const getQpqLambdaRuntimeForEvent_1 = require("./helpers/getQpqLambdaRuntimeForEvent");
8
- const getProcessEventStory = () => {
8
+ const getProcessEventStory = (qpqConfig) => {
9
9
  // FIFO queues must process records one group at a time, blocking a group once a record fails
10
- if ((0, getEventMatchStoryActionProcessor_1.getQueueConfigSetting)().isFifo) {
10
+ if ((0, getEventMatchStoryActionProcessor_1.getQueueConfigSetting)(qpqConfig).isFifo) {
11
11
  return function* askProcessQueueEventWithGroupOrdering(...eventArguments) {
12
12
  return yield* (0, quidproquo_core_1.askProcessEventWithGroupOrdering)((record) => record.groupId, ...eventArguments);
13
13
  };
@@ -19,6 +19,6 @@ const getSqsEvent_queueEvent = (dynamicModuleLoader, qpqConfig) => (0, getQpqLam
19
19
  depth: 0,
20
20
  context: {},
21
21
  };
22
- }, getActionProcessor_1.getSqsQueueEventProcessor, dynamicModuleLoader, qpqConfig, getProcessEventStory);
22
+ }, getActionProcessor_1.getSqsQueueEventProcessor, dynamicModuleLoader, qpqConfig, () => getProcessEventStory(qpqConfig));
23
23
  exports.getSqsEvent_queueEvent = getSqsEvent_queueEvent;
24
24
  //# sourceMappingURL=getSqsEvent_queueEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getSqsEvent_queueEvent.js","sourceRoot":"","sources":["../../../src/lambdaHandlers/getSqsEvent_queueEvent.ts"],"names":[],"mappings":";;;AAAA,qDAAgJ;AAIhJ,8DAAkE;AAClE,oIAAqH;AACrH,uFAAoF;AAEpF,MAAM,oBAAoB,GAAG,GAA2B,EAAE;IACxD,6FAA6F;IAC7F,IAAI,IAAA,yDAAqB,GAAE,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC,CAAC,qCAAqC,CAAC,GAAG,cAAc;YACtE,OAAO,KAAK,CAAC,CAAC,IAAA,kDAAgC,EAAC,CAAC,MAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;QACjH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,iCAAe,CAAC;AACzB,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,CAAC,mBAAwC,EAAE,SAAoB,EAAE,EAAE,CACvG,IAAA,yDAA2B,EACzB,gCAAc,CAAC,WAAW,EAC1B,CAAC,KAAK,EAAE,EAAE;IACR,OAAO;QACL,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC,EACD,8CAAyB,EACzB,mBAAmB,EACnB,SAAS,EACT,oBAAoB,CACrB,CAAC;AAbS,QAAA,sBAAsB,0BAa/B","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 = (): typeof askProcessEvent => {\n // FIFO queues must process records one group at a time, blocking a group once a record fails\n if (getQueueConfigSetting().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,\n );\n"]}
1
+ {"version":3,"file":"getSqsEvent_queueEvent.js","sourceRoot":"","sources":["../../../src/lambdaHandlers/getSqsEvent_queueEvent.ts"],"names":[],"mappings":";;;AAAA,qDAAgJ;AAIhJ,8DAAkE;AAClE,oIAAqH;AACrH,uFAAoF;AAEpF,MAAM,oBAAoB,GAAG,CAAC,SAAoB,EAA0B,EAAE;IAC5E,6FAA6F;IAC7F,IAAI,IAAA,yDAAqB,EAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC,CAAC,qCAAqC,CAAC,GAAG,cAAc;YACtE,OAAO,KAAK,CAAC,CAAC,IAAA,kDAAgC,EAAC,CAAC,MAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;QACjH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,iCAAe,CAAC;AACzB,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,CAAC,mBAAwC,EAAE,SAAoB,EAAE,EAAE,CACvG,IAAA,yDAA2B,EACzB,gCAAc,CAAC,WAAW,EAC1B,CAAC,KAAK,EAAE,EAAE;IACR,OAAO;QACL,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC,EACD,8CAAyB,EACzB,mBAAmB,EACnB,SAAS,EACT,GAAG,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,CACtC,CAAC;AAbS,QAAA,sBAAsB,0BAa/B","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
- export declare const requestEmailVerificationCode: (region: string, accessToken: string) => Promise<void>;
1
+ import { AuthenticationDeliveryDetails } from 'quidproquo-core';
2
+ export declare const requestEmailVerificationCode: (region: string, accessToken: string) => Promise<AuthenticationDeliveryDetails>;
@@ -13,6 +13,7 @@ exports.requestEmailVerificationCode = void 0;
13
13
  const client_cognito_identity_provider_1 = require("@aws-sdk/client-cognito-identity-provider");
14
14
  const createAwsClient_1 = require("../createAwsClient");
15
15
  const requestEmailVerificationCode = (region, accessToken) => __awaiter(void 0, void 0, void 0, function* () {
16
+ var _a, _b, _c;
16
17
  const cognitoClient = (0, createAwsClient_1.createAwsClient)(client_cognito_identity_provider_1.CognitoIdentityProviderClient, {
17
18
  region,
18
19
  });
@@ -20,7 +21,13 @@ const requestEmailVerificationCode = (region, accessToken) => __awaiter(void 0,
20
21
  AccessToken: accessToken,
21
22
  AttributeName: 'email', // Request verification for the email attribute
22
23
  };
23
- const requestEmailVerificationCodeResponse = yield cognitoClient.send(new client_cognito_identity_provider_1.GetUserAttributeVerificationCodeCommand(params));
24
+ const response = yield cognitoClient.send(new client_cognito_identity_provider_1.GetUserAttributeVerificationCodeCommand(params));
25
+ const deliveryInfo = {
26
+ attributeName: ((_a = response.CodeDeliveryDetails) === null || _a === void 0 ? void 0 : _a.AttributeName) || 'email',
27
+ destination: ((_b = response.CodeDeliveryDetails) === null || _b === void 0 ? void 0 : _b.Destination) || 'unknown@email.com',
28
+ deliveryMedium: ((_c = response.CodeDeliveryDetails) === null || _c === void 0 ? void 0 : _c.DeliveryMedium) || 'EMAIL',
29
+ };
30
+ return deliveryInfo;
24
31
  });
25
32
  exports.requestEmailVerificationCode = requestEmailVerificationCode;
26
33
  //# sourceMappingURL=requestEmailVerificationCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requestEmailVerificationCode.js","sourceRoot":"","sources":["../../../../src/logic/cognito/requestEmailVerificationCode.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gGAImD;AAEnD,wDAAqD;AAE9C,MAAM,4BAA4B,GAAG,CAAO,MAAc,EAAE,WAAmB,EAAE,EAAE;IACxF,MAAM,aAAa,GAAG,IAAA,iCAAe,EAAC,gEAA6B,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,oCAAoC,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,0EAAuC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7H,CAAC,CAAA,CAAC;AAXW,QAAA,4BAA4B,gCAWvC","sourcesContent":["import {\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) => {\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 requestEmailVerificationCodeResponse = await cognitoClient.send(new GetUserAttributeVerificationCodeCommand(params));\n};\n"]}
1
+ {"version":3,"file":"requestEmailVerificationCode.js","sourceRoot":"","sources":["../../../../src/logic/cognito/requestEmailVerificationCode.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,gGAImD;AAEnD,wDAAqD;AAE9C,MAAM,4BAA4B,GAAG,CAAO,MAAc,EAAE,WAAmB,EAA0C,EAAE;;IAChI,MAAM,aAAa,GAAG,IAAA,iCAAe,EAAC,gEAA6B,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,0EAAuC,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/F,MAAM,YAAY,GAAG;QACnB,aAAa,EAAE,CAAA,MAAA,QAAQ,CAAC,mBAAmB,0CAAE,aAAa,KAAI,OAAO;QACrE,WAAW,EAAE,CAAA,MAAA,QAAQ,CAAC,mBAAmB,0CAAE,WAAW,KAAI,mBAAmB;QAC7E,cAAc,EAAE,CAAA,MAAA,QAAQ,CAAC,mBAAmB,0CAAE,cAAc,KAAI,OAAO;KACvC,CAAC;IAEnC,OAAO,YAAY,CAAC;AACtB,CAAC,CAAA,CAAC;AAnBW,QAAA,4BAA4B,gCAmBvC","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
- export declare function getAllItems(tableName: string, region: string): Promise<any[]>;
1
+ import { KvsQueryOperation } from 'quidproquo-core';
2
+ export declare function getAllItems(tableName: string, region: string, filterExpression?: KvsQueryOperation): Promise<any[]>;
@@ -12,7 +12,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.getAllItems = getAllItems;
13
13
  const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
14
14
  const createAwsClient_1 = require("../createAwsClient");
15
- function getAllItems(tableName, region) {
15
+ const convertObjectToDynamoMap_1 = require("./convertObjectToDynamoMap");
16
+ const qpqDynamoOrm_1 = require("./qpqDynamoOrm");
17
+ function getAllItems(tableName, region, filterExpression) {
16
18
  return __awaiter(this, void 0, void 0, function* () {
17
19
  const dynamoDBClient = (0, createAwsClient_1.createAwsClient)(client_dynamodb_1.DynamoDBClient, { region });
18
20
  let records = [];
@@ -20,11 +22,14 @@ function getAllItems(tableName, region) {
20
22
  do {
21
23
  const scanParams = {
22
24
  TableName: tableName,
25
+ FilterExpression: (0, qpqDynamoOrm_1.buildDynamoQueryExpression)(filterExpression),
26
+ ExpressionAttributeValues: filterExpression && (0, qpqDynamoOrm_1.buildExpressionAttributeValues)([filterExpression]),
27
+ ExpressionAttributeNames: filterExpression && (0, qpqDynamoOrm_1.buildExpressionAttributeNames)([filterExpression]),
23
28
  ExclusiveStartKey: lastEvaluatedKey,
24
29
  };
25
30
  try {
26
31
  const result = yield dynamoDBClient.send(new client_dynamodb_1.ScanCommand(scanParams));
27
- records = records.concat(result.Items);
32
+ records = records.concat((result.Items || []).map((item) => (0, convertObjectToDynamoMap_1.convertDynamoMapToObject)(item)));
28
33
  lastEvaluatedKey = result.LastEvaluatedKey;
29
34
  }
30
35
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"getAllItems.js","sourceRoot":"","sources":["../../../../src/logic/dynamo/getAllItems.ts"],"names":[],"mappings":";;;;;;;;;;;AAIA,kCAuBC;AA3BD,8DAAyF;AAEzF,wDAAqD;AAErD,SAAsB,WAAW,CAAC,SAAiB,EAAE,MAAc;;QACjE,MAAM,cAAc,GAAG,IAAA,iCAAe,EAAC,gCAAc,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAEnE,IAAI,OAAO,GAAU,EAAE,CAAC;QACxB,IAAI,gBAAoD,CAAC;QAEzD,GAAG,CAAC;YACF,MAAM,UAAU,GAAqB;gBACnC,SAAS,EAAE,SAAS;gBACpB,iBAAiB,EAAE,gBAAgB;aACpC,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,6BAAW,CAAC,UAAU,CAAC,CAAC,CAAC;gBACtE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAc,CAAC,CAAC;gBAChD,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;gBACvD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,QAAQ,gBAAgB,EAAE;QAE3B,OAAO,OAAO,CAAC;IACjB,CAAC;CAAA","sourcesContent":["import { DynamoDBClient, ScanCommand, ScanCommandInput } from '@aws-sdk/client-dynamodb';\n\nimport { createAwsClient } from '../createAwsClient';\n\nexport async function getAllItems(tableName: string, region: string): 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 ExclusiveStartKey: lastEvaluatedKey,\n };\n\n try {\n const result = await dynamoDBClient.send(new ScanCommand(scanParams));\n records = records.concat(result.Items as any[]);\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"]}
1
+ {"version":3,"file":"getAllItems.js","sourceRoot":"","sources":["../../../../src/logic/dynamo/getAllItems.ts"],"names":[],"mappings":";;;;;;;;;;;AAQA,kCA0BC;AAhCD,8DAAyF;AAEzF,wDAAqD;AACrD,yEAAsE;AACtE,iDAA2H;AAE3H,SAAsB,WAAW,CAAC,SAAiB,EAAE,MAAc,EAAE,gBAAoC;;QACvG,MAAM,cAAc,GAAG,IAAA,iCAAe,EAAC,gCAAc,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAEnE,IAAI,OAAO,GAAU,EAAE,CAAC;QACxB,IAAI,gBAAoD,CAAC;QAEzD,GAAG,CAAC;YACF,MAAM,UAAU,GAAqB;gBACnC,SAAS,EAAE,SAAS;gBACpB,gBAAgB,EAAE,IAAA,yCAA0B,EAAC,gBAAgB,CAAC;gBAC9D,yBAAyB,EAAE,gBAAgB,IAAI,IAAA,6CAA8B,EAAC,CAAC,gBAAgB,CAAC,CAAC;gBACjG,wBAAwB,EAAE,gBAAgB,IAAI,IAAA,4CAA6B,EAAC,CAAC,gBAAgB,CAAC,CAAC;gBAC/F,iBAAiB,EAAE,gBAAgB;aACpC,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,6BAAW,CAAC,UAAU,CAAC,CAAC,CAAC;gBACtE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mDAAwB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7F,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;gBACvD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,QAAQ,gBAAgB,EAAE;QAE3B,OAAO,OAAO,CAAC;IACjB,CAAC;CAAA","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"]}
@@ -1 +1,2 @@
1
- export declare function getItem(tableName: string, key: string, region: string): Promise<any | null>;
1
+ import { KvsCoreDataType } from 'quidproquo-core';
2
+ export declare function getItem(tableName: string, region: string, keyName: string, key: KvsCoreDataType, sortKeyName?: string, sortKey?: KvsCoreDataType): Promise<any | null>;
@@ -12,20 +12,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.getItem = getItem;
13
13
  const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
14
14
  const createAwsClient_1 = require("../createAwsClient");
15
- function getItem(tableName, key, region) {
15
+ const convertObjectToDynamoMap_1 = require("./convertObjectToDynamoMap");
16
+ const qpqDynamoOrm_1 = require("./qpqDynamoOrm");
17
+ function getItem(tableName, region, keyName, key, sortKeyName, sortKey) {
16
18
  return __awaiter(this, void 0, void 0, function* () {
17
19
  const dynamoDBClient = (0, createAwsClient_1.createAwsClient)(client_dynamodb_1.DynamoDBClient, { region });
18
20
  const getItemParams = {
19
21
  TableName: tableName,
20
22
  Key: {
21
- key: {
22
- S: key,
23
- },
23
+ [keyName]: (0, qpqDynamoOrm_1.buildAttributeValue)(key),
24
24
  },
25
25
  };
26
+ if (sortKeyName && sortKey !== undefined) {
27
+ getItemParams.Key[sortKeyName] = (0, qpqDynamoOrm_1.buildAttributeValue)(sortKey);
28
+ }
26
29
  try {
27
30
  const result = yield dynamoDBClient.send(new client_dynamodb_1.GetItemCommand(getItemParams));
28
- return result.Item ? JSON.parse(result.Item.value.S) : null;
31
+ return result.Item ? (0, convertObjectToDynamoMap_1.convertDynamoMapToObject)(result.Item) : null;
29
32
  }
30
33
  catch (error) {
31
34
  console.error('Error getting item from DynamoDB:', error);