quidproquo-actionprocessor-awslambda 0.0.262 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/lib/commonjs/awsNamingUtils.d.ts +1 -0
  2. package/lib/commonjs/awsNamingUtils.js +12 -1
  3. package/lib/commonjs/getActionProcessor/core/ai/aiModelMap.d.ts +2 -0
  4. package/lib/commonjs/getActionProcessor/core/ai/aiModelMap.js +15 -0
  5. package/lib/commonjs/getActionProcessor/core/ai/getAiPromptActionProcessor.d.ts +2 -0
  6. package/lib/commonjs/getActionProcessor/core/ai/getAiPromptActionProcessor.js +42 -0
  7. package/lib/commonjs/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.d.ts +2 -0
  8. package/lib/commonjs/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.js +90 -0
  9. package/lib/commonjs/getActionProcessor/core/ai/index.d.ts +2 -0
  10. package/lib/commonjs/getActionProcessor/core/{config/getConfigGetGlobalActionProcessor.js → ai/index.js} +6 -13
  11. package/lib/commonjs/getActionProcessor/core/ai/logic/aiStreamPartMappers.d.ts +6 -0
  12. package/lib/commonjs/getActionProcessor/core/ai/logic/aiStreamPartMappers.js +57 -0
  13. package/lib/commonjs/getActionProcessor/core/ai/logic/index.d.ts +32 -0
  14. package/lib/commonjs/getActionProcessor/core/ai/logic/index.js +48 -0
  15. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamAbort.d.ts +3 -0
  16. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamAbort.js +9 -0
  17. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamCustom.d.ts +3 -0
  18. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamCustom.js +9 -0
  19. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamError.d.ts +3 -0
  20. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamError.js +10 -0
  21. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFilePart.d.ts +3 -0
  22. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFilePart.js +12 -0
  23. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinish.d.ts +3 -0
  24. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinish.js +11 -0
  25. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.d.ts +3 -0
  26. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.js +11 -0
  27. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamPart.d.ts +3 -0
  28. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamPart.js +9 -0
  29. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamRaw.d.ts +2 -0
  30. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamRaw.js +8 -0
  31. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamReasoningDelta.d.ts +3 -0
  32. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamReasoningDelta.js +10 -0
  33. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamReasoningEnd.d.ts +3 -0
  34. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamReasoningEnd.js +9 -0
  35. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamReasoningFilePart.d.ts +3 -0
  36. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamReasoningFilePart.js +12 -0
  37. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamReasoningStart.d.ts +3 -0
  38. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamReasoningStart.js +9 -0
  39. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamSourcePart.d.ts +3 -0
  40. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamSourcePart.js +16 -0
  41. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamStart.d.ts +2 -0
  42. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamStart.js +8 -0
  43. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamStartStep.d.ts +2 -0
  44. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamStartStep.js +8 -0
  45. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamTextDelta.d.ts +3 -0
  46. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamTextDelta.js +10 -0
  47. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamTextEnd.d.ts +3 -0
  48. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamTextEnd.js +9 -0
  49. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamTextStart.d.ts +3 -0
  50. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamTextStart.js +9 -0
  51. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolApprovalRequest.d.ts +3 -0
  52. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolApprovalRequest.js +12 -0
  53. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolApprovalResponse.d.ts +3 -0
  54. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolApprovalResponse.js +13 -0
  55. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolCall.d.ts +3 -0
  56. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolCall.js +11 -0
  57. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolError.d.ts +3 -0
  58. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolError.js +13 -0
  59. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolInputDelta.d.ts +3 -0
  60. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolInputDelta.js +10 -0
  61. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolInputEnd.d.ts +3 -0
  62. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolInputEnd.js +9 -0
  63. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolInputStart.d.ts +3 -0
  64. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolInputStart.js +10 -0
  65. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolOutputDenied.d.ts +3 -0
  66. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolOutputDenied.js +10 -0
  67. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolResult.d.ts +3 -0
  68. package/lib/commonjs/getActionProcessor/core/ai/logic/mapAiStreamToolResult.js +12 -0
  69. package/lib/commonjs/getActionProcessor/core/ai/logic/prepareAiPromptCall.d.ts +19 -0
  70. package/lib/commonjs/getActionProcessor/core/ai/logic/prepareAiPromptCall.js +53 -0
  71. package/lib/commonjs/getActionProcessor/core/ai/logic/toAiStreamUsage.d.ts +6 -0
  72. package/lib/commonjs/getActionProcessor/core/ai/logic/toAiStreamUsage.js +9 -0
  73. package/lib/commonjs/getActionProcessor/core/ai/logic/toErrorMessage.d.ts +1 -0
  74. package/lib/commonjs/getActionProcessor/core/ai/logic/toErrorMessage.js +11 -0
  75. package/lib/commonjs/getActionProcessor/core/ai/logic/toSdkMessages.d.ts +3 -0
  76. package/lib/commonjs/getActionProcessor/core/ai/logic/toSdkMessages.js +82 -0
  77. package/lib/commonjs/getActionProcessor/core/ai/types/aiSdkStreamPart.d.ts +5 -0
  78. package/lib/commonjs/getActionProcessor/core/ai/types/aiSdkStreamPart.js +2 -0
  79. package/lib/commonjs/getActionProcessor/core/ai/types/index.d.ts +1 -0
  80. package/lib/commonjs/getActionProcessor/core/ai/types/index.js +17 -0
  81. package/lib/commonjs/getActionProcessor/core/apiKeyValidation/getApiKeyValidationValidateActionProcessor.d.ts +2 -0
  82. package/lib/commonjs/getActionProcessor/core/apiKeyValidation/getApiKeyValidationValidateActionProcessor.js +50 -0
  83. package/lib/commonjs/getActionProcessor/core/apiKeyValidation/index.d.ts +2 -0
  84. package/lib/commonjs/getActionProcessor/core/apiKeyValidation/index.js +17 -0
  85. package/lib/commonjs/getActionProcessor/core/config/getConfigGetSecretActionProcessor.js +10 -2
  86. package/lib/commonjs/getActionProcessor/core/config/getConfigSetParameterActionProcessor.js +10 -2
  87. package/lib/commonjs/getActionProcessor/core/config/index.js +1 -2
  88. package/lib/commonjs/getActionProcessor/core/event/apiGatwayEvent/api/getEventAutoRespondActionProcessor.js +2 -34
  89. package/lib/commonjs/getActionProcessor/core/event/apiGatwayEvent/api/getEventGetStorySessionActionProcessor.js +2 -31
  90. package/lib/commonjs/getActionProcessor/core/event/apiGatwayEvent/websocket/getEventTransformResponseResultActionProcessor.js +2 -2
  91. package/lib/commonjs/getActionProcessor/core/eventBus/getEventBusSendMessagesActionProcessor.js +16 -6
  92. package/lib/commonjs/getActionProcessor/core/file/getFileDeleteActionProcessor.js +17 -9
  93. package/lib/commonjs/getActionProcessor/core/file/getFileExistsActionProcessor.js +9 -1
  94. package/lib/commonjs/getActionProcessor/core/file/getFileGenerateTemporarySecureUrlActionProcessor.js +5 -0
  95. package/lib/commonjs/getActionProcessor/core/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js +5 -0
  96. package/lib/commonjs/getActionProcessor/core/file/getFileIsColdStorageActionProcessor.js +13 -2
  97. package/lib/commonjs/getActionProcessor/core/file/getFileListDirectoryActionProcessor.js +16 -7
  98. package/lib/commonjs/getActionProcessor/core/file/getFileReadBinaryContentsActionProcessor.js +11 -2
  99. package/lib/commonjs/getActionProcessor/core/file/getFileStreamOpenActionProcessor.d.ts +2 -0
  100. package/lib/commonjs/getActionProcessor/core/file/getFileStreamOpenActionProcessor.js +105 -0
  101. package/lib/commonjs/getActionProcessor/core/file/getFileWriteBinaryContentsActionProcessor.js +11 -2
  102. package/lib/commonjs/getActionProcessor/core/file/getFileWriteObjectJsonActionProcessor.js +11 -2
  103. package/lib/commonjs/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.js +11 -2
  104. package/lib/commonjs/getActionProcessor/core/file/index.js +2 -1
  105. package/lib/commonjs/getActionProcessor/core/index.d.ts +2 -0
  106. package/lib/commonjs/getActionProcessor/core/index.js +6 -1
  107. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.js +10 -2
  108. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.js +10 -2
  109. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js +10 -2
  110. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js +10 -2
  111. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js +12 -3
  112. package/lib/commonjs/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js +10 -2
  113. package/lib/commonjs/getActionProcessor/core/queue/getQueueSendMessageActionProcessor.js +17 -7
  114. package/lib/commonjs/getActionProcessor/core/system/getSystemExecuteStoryActionProcessor.js +5 -4
  115. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryAssociateSoftwareTokenActionProcessor.d.ts +2 -0
  116. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryAssociateSoftwareTokenActionProcessor.js +28 -0
  117. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryChangePasswordActionProcessor.js +11 -2
  118. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryConfirmEmailVerificationActionProcessor.js +11 -2
  119. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryConfirmForgotPasswordActionProcessor.js +12 -2
  120. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryCreateUserActionProcessor.js +12 -3
  121. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryDecodeAccessTokenActionProcessor.js +1 -1
  122. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryForgotPasswordActionProcessor.js +10 -2
  123. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryGetUserAttributesByUserIdActionProcessor.js +9 -2
  124. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryGetUsersActionProcessor.js +10 -2
  125. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryGetUsersByAttributeActionProcessor.js +10 -2
  126. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryRefreshTokenActionProcessor.js +17 -3
  127. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.js +11 -2
  128. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectoryRespondToAuthChallengeActionProcessor.js +34 -2
  129. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectorySetPasswordActionProcessor.js +12 -2
  130. package/lib/commonjs/getActionProcessor/core/userDirectory/getUserDirectorySetUserAttributesActionProcessor.js +13 -2
  131. package/lib/commonjs/getActionProcessor/core/userDirectory/index.js +2 -1
  132. package/lib/commonjs/getActionProcessor/webserver/serviceFunction/getServiceFunctionExecuteActionProcessor.js +2 -2
  133. package/lib/commonjs/index.d.ts +1 -0
  134. package/lib/commonjs/index.js +3 -0
  135. package/lib/commonjs/lambdaExtensions/getLogExtensionLayerPath.d.ts +10 -0
  136. package/lib/commonjs/lambdaExtensions/getLogExtensionLayerPath.js +20 -0
  137. package/lib/commonjs/lambdaExtensions/logExtensionPort.d.ts +1 -0
  138. package/lib/commonjs/lambdaExtensions/logExtensionPort.js +7 -0
  139. package/lib/commonjs/lambdaHandlers/getApiGatewayEventHandler.js +4 -8
  140. package/lib/commonjs/lambdaHandlers/getApiGatewayEventHandler_redirect.js +0 -2
  141. package/lib/commonjs/lambdaHandlers/helpers/getQpqLambdaRuntimeForEvent.js +2 -2
  142. package/lib/commonjs/lambdaHandlers/helpers/logger.d.ts +4 -1
  143. package/lib/commonjs/lambdaHandlers/helpers/logger.js +94 -36
  144. package/lib/commonjs/logic/cognito/associateSoftwareToken.d.ts +2 -0
  145. package/lib/commonjs/logic/cognito/associateSoftwareToken.js +28 -0
  146. package/lib/commonjs/logic/cognito/decodeValidJwt.js +2 -1
  147. package/lib/commonjs/logic/cognito/getUserAttributesBySub.d.ts +4 -0
  148. package/lib/commonjs/logic/cognito/getUserAttributesBySub.js +12 -2
  149. package/lib/commonjs/logic/cognito/utils/transformCognitoResponse.js +2 -0
  150. package/lib/commonjs/logic/cognito/verifySoftwareToken.d.ts +1 -0
  151. package/lib/commonjs/logic/cognito/verifySoftwareToken.js +28 -0
  152. package/lib/commonjs/logic/dynamo/qpqDynamoOrm/getDynamoTableIndexByConfigAndQuery.js +8 -2
  153. package/lib/commonjs/logic/s3/generatePresignedUploadUrl.js +8 -1
  154. package/lib/commonjs/logic/s3/objectExists.js +9 -3
  155. package/lib/esm/awsNamingUtils.d.ts +1 -0
  156. package/lib/esm/awsNamingUtils.js +10 -0
  157. package/lib/esm/getActionProcessor/core/ai/aiModelMap.d.ts +2 -0
  158. package/lib/esm/getActionProcessor/core/ai/aiModelMap.js +12 -0
  159. package/lib/esm/getActionProcessor/core/ai/getAiPromptActionProcessor.d.ts +2 -0
  160. package/lib/esm/getActionProcessor/core/ai/getAiPromptActionProcessor.js +33 -0
  161. package/lib/esm/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.d.ts +2 -0
  162. package/lib/esm/getActionProcessor/core/ai/getAiPromptStreamActionProcessor.js +46 -0
  163. package/lib/esm/getActionProcessor/core/ai/index.d.ts +2 -0
  164. package/lib/esm/getActionProcessor/core/ai/index.js +6 -0
  165. package/lib/esm/getActionProcessor/core/ai/logic/aiStreamPartMappers.d.ts +6 -0
  166. package/lib/esm/getActionProcessor/core/ai/logic/aiStreamPartMappers.js +54 -0
  167. package/lib/esm/getActionProcessor/core/ai/logic/index.d.ts +32 -0
  168. package/lib/esm/getActionProcessor/core/ai/logic/index.js +32 -0
  169. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamAbort.d.ts +3 -0
  170. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamAbort.js +5 -0
  171. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamCustom.d.ts +3 -0
  172. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamCustom.js +5 -0
  173. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamError.d.ts +3 -0
  174. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamError.js +6 -0
  175. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFilePart.d.ts +3 -0
  176. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFilePart.js +8 -0
  177. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinish.d.ts +3 -0
  178. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinish.js +7 -0
  179. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.d.ts +3 -0
  180. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamFinishStep.js +7 -0
  181. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamPart.d.ts +3 -0
  182. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamPart.js +5 -0
  183. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamRaw.d.ts +2 -0
  184. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamRaw.js +4 -0
  185. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamReasoningDelta.d.ts +3 -0
  186. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamReasoningDelta.js +6 -0
  187. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamReasoningEnd.d.ts +3 -0
  188. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamReasoningEnd.js +5 -0
  189. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamReasoningFilePart.d.ts +3 -0
  190. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamReasoningFilePart.js +8 -0
  191. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamReasoningStart.d.ts +3 -0
  192. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamReasoningStart.js +5 -0
  193. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamSourcePart.d.ts +3 -0
  194. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamSourcePart.js +12 -0
  195. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamStart.d.ts +2 -0
  196. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamStart.js +4 -0
  197. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamStartStep.d.ts +2 -0
  198. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamStartStep.js +4 -0
  199. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamTextDelta.d.ts +3 -0
  200. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamTextDelta.js +6 -0
  201. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamTextEnd.d.ts +3 -0
  202. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamTextEnd.js +5 -0
  203. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamTextStart.d.ts +3 -0
  204. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamTextStart.js +5 -0
  205. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolApprovalRequest.d.ts +3 -0
  206. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolApprovalRequest.js +8 -0
  207. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolApprovalResponse.d.ts +3 -0
  208. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolApprovalResponse.js +9 -0
  209. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolCall.d.ts +3 -0
  210. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolCall.js +7 -0
  211. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolError.d.ts +3 -0
  212. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolError.js +9 -0
  213. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolInputDelta.d.ts +3 -0
  214. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolInputDelta.js +6 -0
  215. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolInputEnd.d.ts +3 -0
  216. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolInputEnd.js +5 -0
  217. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolInputStart.d.ts +3 -0
  218. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolInputStart.js +6 -0
  219. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolOutputDenied.d.ts +3 -0
  220. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolOutputDenied.js +6 -0
  221. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolResult.d.ts +3 -0
  222. package/lib/esm/getActionProcessor/core/ai/logic/mapAiStreamToolResult.js +8 -0
  223. package/lib/esm/getActionProcessor/core/ai/logic/prepareAiPromptCall.d.ts +19 -0
  224. package/lib/esm/getActionProcessor/core/ai/logic/prepareAiPromptCall.js +40 -0
  225. package/lib/esm/getActionProcessor/core/ai/logic/toAiStreamUsage.d.ts +6 -0
  226. package/lib/esm/getActionProcessor/core/ai/logic/toAiStreamUsage.js +5 -0
  227. package/lib/esm/getActionProcessor/core/ai/logic/toErrorMessage.d.ts +1 -0
  228. package/lib/esm/getActionProcessor/core/ai/logic/toErrorMessage.js +7 -0
  229. package/lib/esm/getActionProcessor/core/ai/logic/toSdkMessages.d.ts +3 -0
  230. package/lib/esm/getActionProcessor/core/ai/logic/toSdkMessages.js +78 -0
  231. package/lib/esm/getActionProcessor/core/ai/types/aiSdkStreamPart.d.ts +5 -0
  232. package/lib/esm/getActionProcessor/core/ai/types/aiSdkStreamPart.js +1 -0
  233. package/lib/esm/getActionProcessor/core/ai/types/index.d.ts +1 -0
  234. package/lib/esm/getActionProcessor/core/ai/types/index.js +1 -0
  235. package/lib/esm/getActionProcessor/core/apiKeyValidation/getApiKeyValidationValidateActionProcessor.d.ts +2 -0
  236. package/lib/esm/getActionProcessor/core/apiKeyValidation/getApiKeyValidationValidateActionProcessor.js +35 -0
  237. package/lib/esm/getActionProcessor/core/apiKeyValidation/index.d.ts +2 -0
  238. package/lib/esm/getActionProcessor/core/apiKeyValidation/index.js +4 -0
  239. package/lib/esm/getActionProcessor/core/config/getConfigGetSecretActionProcessor.js +11 -3
  240. package/lib/esm/getActionProcessor/core/config/getConfigSetParameterActionProcessor.js +11 -3
  241. package/lib/esm/getActionProcessor/core/config/index.js +0 -2
  242. package/lib/esm/getActionProcessor/core/event/apiGatwayEvent/api/getEventAutoRespondActionProcessor.js +3 -32
  243. package/lib/esm/getActionProcessor/core/event/apiGatwayEvent/api/getEventGetStorySessionActionProcessor.js +3 -35
  244. package/lib/esm/getActionProcessor/core/event/apiGatwayEvent/websocket/getEventTransformResponseResultActionProcessor.js +2 -2
  245. package/lib/esm/getActionProcessor/core/eventBus/getEventBusSendMessagesActionProcessor.js +20 -13
  246. package/lib/esm/getActionProcessor/core/file/getFileDeleteActionProcessor.js +18 -10
  247. package/lib/esm/getActionProcessor/core/file/getFileExistsActionProcessor.js +10 -2
  248. package/lib/esm/getActionProcessor/core/file/getFileGenerateTemporarySecureUrlActionProcessor.js +6 -1
  249. package/lib/esm/getActionProcessor/core/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js +6 -1
  250. package/lib/esm/getActionProcessor/core/file/getFileIsColdStorageActionProcessor.js +14 -3
  251. package/lib/esm/getActionProcessor/core/file/getFileListDirectoryActionProcessor.js +20 -11
  252. package/lib/esm/getActionProcessor/core/file/getFileReadBinaryContentsActionProcessor.js +12 -3
  253. package/lib/esm/getActionProcessor/core/file/getFileStreamOpenActionProcessor.d.ts +2 -0
  254. package/lib/esm/getActionProcessor/core/file/getFileStreamOpenActionProcessor.js +55 -0
  255. package/lib/esm/getActionProcessor/core/file/getFileWriteBinaryContentsActionProcessor.js +12 -3
  256. package/lib/esm/getActionProcessor/core/file/getFileWriteObjectJsonActionProcessor.js +12 -3
  257. package/lib/esm/getActionProcessor/core/file/getFileWriteTextContentsActionProcessor.js +12 -3
  258. package/lib/esm/getActionProcessor/core/file/index.js +2 -0
  259. package/lib/esm/getActionProcessor/core/index.d.ts +2 -0
  260. package/lib/esm/getActionProcessor/core/index.js +8 -0
  261. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreDeleteActionProcessor.js +11 -3
  262. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetActionProcessor.js +11 -3
  263. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreGetAllActionProcessor.js +11 -3
  264. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreQueryActionProcessor.js +12 -4
  265. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreScanActionProcessor.js +12 -3
  266. package/lib/esm/getActionProcessor/core/keyValueStore/getKeyValueStoreUpdateActionProcessor.js +11 -3
  267. package/lib/esm/getActionProcessor/core/queue/getQueueSendMessageActionProcessor.js +21 -14
  268. package/lib/esm/getActionProcessor/core/system/getSystemExecuteStoryActionProcessor.js +1 -0
  269. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryAssociateSoftwareTokenActionProcessor.d.ts +2 -0
  270. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryAssociateSoftwareTokenActionProcessor.js +13 -0
  271. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryChangePasswordActionProcessor.js +12 -3
  272. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryConfirmEmailVerificationActionProcessor.js +12 -3
  273. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryConfirmForgotPasswordActionProcessor.js +13 -3
  274. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryCreateUserActionProcessor.js +13 -4
  275. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryDecodeAccessTokenActionProcessor.js +2 -2
  276. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryForgotPasswordActionProcessor.js +11 -3
  277. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryGetUserAttributesByUserIdActionProcessor.js +10 -3
  278. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryGetUsersActionProcessor.js +11 -3
  279. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryGetUsersByAttributeActionProcessor.js +11 -3
  280. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryRefreshTokenActionProcessor.js +18 -4
  281. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryRequestEmailVerificationActionProcessor.js +12 -3
  282. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectoryRespondToAuthChallengeActionProcessor.js +35 -3
  283. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectorySetPasswordActionProcessor.js +13 -3
  284. package/lib/esm/getActionProcessor/core/userDirectory/getUserDirectorySetUserAttributesActionProcessor.js +14 -3
  285. package/lib/esm/getActionProcessor/core/userDirectory/index.js +2 -0
  286. package/lib/esm/getActionProcessor/webserver/serviceFunction/getServiceFunctionExecuteActionProcessor.js +3 -6
  287. package/lib/esm/index.d.ts +1 -0
  288. package/lib/esm/index.js +3 -0
  289. package/lib/esm/lambdaExtensions/getLogExtensionLayerPath.d.ts +10 -0
  290. package/lib/esm/lambdaExtensions/getLogExtensionLayerPath.js +13 -0
  291. package/lib/esm/lambdaExtensions/logExtensionPort.d.ts +1 -0
  292. package/lib/esm/lambdaExtensions/logExtensionPort.js +4 -0
  293. package/lib/esm/lambdaHandlers/getApiGatewayEventHandler.js +4 -8
  294. package/lib/esm/lambdaHandlers/getApiGatewayEventHandler_redirect.js +0 -2
  295. package/lib/esm/lambdaHandlers/helpers/getQpqLambdaRuntimeForEvent.js +1 -1
  296. package/lib/esm/lambdaHandlers/helpers/logger.d.ts +4 -1
  297. package/lib/esm/lambdaHandlers/helpers/logger.js +94 -38
  298. package/lib/esm/logic/cognito/associateSoftwareToken.d.ts +2 -0
  299. package/lib/esm/logic/cognito/associateSoftwareToken.js +15 -0
  300. package/lib/esm/logic/cognito/decodeValidJwt.js +2 -1
  301. package/lib/esm/logic/cognito/getUserAttributesBySub.d.ts +4 -0
  302. package/lib/esm/logic/cognito/getUserAttributesBySub.js +10 -1
  303. package/lib/esm/logic/cognito/utils/transformCognitoResponse.js +2 -0
  304. package/lib/esm/logic/cognito/verifySoftwareToken.d.ts +1 -0
  305. package/lib/esm/logic/cognito/verifySoftwareToken.js +15 -0
  306. package/lib/esm/logic/dynamo/qpqDynamoOrm/getDynamoTableIndexByConfigAndQuery.js +7 -2
  307. package/lib/esm/logic/s3/generatePresignedUploadUrl.js +8 -1
  308. package/lib/esm/logic/s3/objectExists.js +8 -3
  309. package/lib/extension-layer/extensions/qpq-log-extension +2 -0
  310. package/lib/extension-layer/qpq-log-extension/index.js +58 -0
  311. package/package.json +11 -6
  312. package/lib/commonjs/getActionProcessor/core/config/getConfigGetGlobalActionProcessor.d.ts +0 -2
  313. package/lib/commonjs/getActionProcessor/core/event/utils/isAuthValid.d.ts +0 -3
  314. package/lib/commonjs/getActionProcessor/core/event/utils/isAuthValid.js +0 -68
  315. package/lib/esm/getActionProcessor/core/config/getConfigGetGlobalActionProcessor.d.ts +0 -2
  316. package/lib/esm/getActionProcessor/core/config/getConfigGetGlobalActionProcessor.js +0 -10
  317. package/lib/esm/getActionProcessor/core/event/utils/isAuthValid.d.ts +0 -3
  318. package/lib/esm/getActionProcessor/core/event/utils/isAuthValid.js +0 -55
@@ -24,8 +24,16 @@ const getProcessKeyValueStoreQuery = (qpqConfig) => {
24
24
  if (!storeConfig) {
25
25
  return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.ErrorTypeEnum.NotFound, `Could not find key value store with name "${keyValueStoreName}"`);
26
26
  }
27
- 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);
28
- return (0, quidproquo_core_2.actionResult)(items);
27
+ 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);
29
+ return (0, quidproquo_core_2.actionResult)(items);
30
+ }
31
+ catch (error) {
32
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
33
+ InternalServerError: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreQueryErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
34
+ ResourceNotFoundException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreQueryErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
35
+ });
36
+ }
29
37
  });
30
38
  };
31
39
  const getKeyValueStoreQueryActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -12,19 +12,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.getKeyValueStoreScanActionProcessor = 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");
15
16
  const awsNamingUtils_1 = require("../../../awsNamingUtils");
16
17
  const scan_1 = require("../../../logic/dynamo/scan");
17
18
  const getProcessKeyValueStoreScan = (qpqConfig) => {
18
19
  return (_a) => __awaiter(void 0, [_a], void 0, function* ({ keyValueStoreName, filterCondition, nextPageKey }) {
19
20
  const dynamoTableName = (0, awsNamingUtils_1.getKvsDynamoTableNameFromConfig)(keyValueStoreName, qpqConfig, 'kvs');
20
21
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
21
- const items = yield (0, scan_1.scan)(dynamoTableName, region, filterCondition, nextPageKey);
22
- return (0, quidproquo_core_1.actionResult)(items);
22
+ try {
23
+ const items = yield (0, scan_1.scan)(dynamoTableName, region, filterCondition, nextPageKey);
24
+ return (0, quidproquo_core_2.actionResult)(items);
25
+ }
26
+ catch (error) {
27
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
28
+ InternalServerError: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreScanErrorTypeEnum.ServiceUnavailable, 'KVS Service Unavailable'),
29
+ ResourceNotFoundException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_2.KeyValueStoreScanErrorTypeEnum.ResourceNotFound, 'KVS Resource Not Found'),
30
+ });
31
+ }
23
32
  });
24
33
  };
25
34
  const getKeyValueStoreScanActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
26
35
  return ({
27
- [quidproquo_core_1.KeyValueStoreActionType.Scan]: getProcessKeyValueStoreScan(qpqConfig),
36
+ [quidproquo_core_2.KeyValueStoreActionType.Scan]: getProcessKeyValueStoreScan(qpqConfig),
28
37
  });
29
38
  });
30
39
  exports.getKeyValueStoreScanActionProcessor = getKeyValueStoreScanActionProcessor;
@@ -21,8 +21,16 @@ const getProcessKeyValueStoreUpdate = (qpqConfig) => {
21
21
  const dynamoTableName = (0, awsNamingUtils_1.getKvsDynamoTableNameFromConfig)(keyValueStoreName, qpqConfig, 'kvs');
22
22
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
23
23
  const storeConfig = quidproquo_core_1.qpqCoreUtils.getKeyValueStoreByName(qpqConfig, keyValueStoreName);
24
- 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);
25
- return (0, quidproquo_core_2.actionResult)(item);
24
+ 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);
27
+ }
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'),
32
+ });
33
+ }
26
34
  });
27
35
  };
28
36
  const getKeyValueStoreUpdateActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -15,15 +15,25 @@ const quidproquo_core_1 = require("quidproquo-core");
15
15
  const sendMessages_1 = require("../../../logic/sqs/sendMessages");
16
16
  const qpqAwsLambdaRuntimeConfigUtils_1 = require("../../../runtimeConfig/qpqAwsLambdaRuntimeConfigUtils");
17
17
  const getProcessQueueSendMessage = (qpqConfig) => {
18
- return (_a, session_1) => __awaiter(void 0, [_a, session_1], void 0, function* ({ queueName, queueMessages, context }, session) {
18
+ return (_a, session_1) => __awaiter(void 0, [_a, session_1], void 0, function* ({ queueName, queueMessages }, session) {
19
19
  // While we have some uuids
20
20
  const sqsQueueName = (0, qpqAwsLambdaRuntimeConfigUtils_1.resolveResourceName)(queueName, qpqConfig);
21
- yield (0, sendMessages_1.sendMessages)(sqsQueueName, quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig), queueMessages.map((message) => {
22
- // Add the session info to the message
23
- const queueMessageWithSession = Object.assign(Object.assign({}, message), { storySession: Object.assign(Object.assign({}, session), { context }) });
24
- return JSON.stringify(queueMessageWithSession);
25
- }));
26
- return (0, quidproquo_core_1.actionResult)(void 0);
21
+ try {
22
+ yield (0, sendMessages_1.sendMessages)(sqsQueueName, quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig), queueMessages.map((message) => {
23
+ // Add the session info to the message
24
+ const queueMessageWithSession = Object.assign(Object.assign({}, message), { storySession: (0, quidproquo_core_1.toCrossServiceSession)(session) });
25
+ return JSON.stringify(queueMessageWithSession);
26
+ }));
27
+ return (0, quidproquo_core_1.actionResult)(void 0);
28
+ }
29
+ catch (error) {
30
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
31
+ AccessDenied: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.QueueSendMessagesErrorTypeEnum.AccessDenied, 'Access denied sending to queue'),
32
+ AccessDeniedException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.QueueSendMessagesErrorTypeEnum.AccessDenied, 'Access denied sending to queue'),
33
+ QueueDoesNotExist: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.QueueSendMessagesErrorTypeEnum.QueueNotFound, `Queue not found: ${queueName}`),
34
+ RequestThrottled: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.QueueSendMessagesErrorTypeEnum.ServiceUnavailable, 'Queue throttled'),
35
+ });
36
+ }
27
37
  });
28
38
  };
29
39
  const getQueueSendMessagesActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -17,7 +17,7 @@ exports.getDateNow = getDateNow;
17
17
  const getProcessExecuteStory = (qpqConfig) => {
18
18
  const moduleName = quidproquo_core_1.qpqCoreUtils.getApplicationModuleName(qpqConfig);
19
19
  return (payload, session, actionProcessors, logger, updateSession, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
20
- var _a, _b, _c, _d;
20
+ var _a, _b, _c, _d, _e;
21
21
  let story = yield dynamicModuleLoader(payload.runtime);
22
22
  if (!story) {
23
23
  return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.ErrorTypeEnum.NotFound, `Unable to dynamically load: [${payload.runtime}]`);
@@ -25,9 +25,10 @@ const getProcessExecuteStory = (qpqConfig) => {
25
25
  const functionKey = (0, quidproquo_core_1.getUniqueKeyFromQpqFunctionRuntime)(payload.runtime);
26
26
  const resolveStory = (0, quidproquo_core_1.createRuntime)(qpqConfig, {
27
27
  context: ((_a = payload.storySession) === null || _a === void 0 ? void 0 : _a.context) || session.context,
28
- depth: (((_b = payload.storySession) === null || _b === void 0 ? void 0 : _b.depth) || session.depth || 0) + 1,
29
- decodedAccessToken: ((_c = payload.storySession) === null || _c === void 0 ? void 0 : _c.decodedAccessToken) || session.decodedAccessToken,
30
- correlation: ((_d = payload.storySession) === null || _d === void 0 ? void 0 : _d.correlation) || session.correlation,
28
+ localContext: ((_b = payload.storySession) === null || _b === void 0 ? void 0 : _b.localContext) || session.localContext,
29
+ depth: (((_c = payload.storySession) === null || _c === void 0 ? void 0 : _c.depth) || session.depth || 0) + 1,
30
+ decodedAccessToken: ((_d = payload.storySession) === null || _d === void 0 ? void 0 : _d.decodedAccessToken) || session.decodedAccessToken,
31
+ correlation: ((_e = payload.storySession) === null || _e === void 0 ? void 0 : _e.correlation) || session.correlation,
31
32
  }, () => __awaiter(void 0, void 0, void 0, function* () { return actionProcessors; }), exports.getDateNow, logger,
32
33
  // TODO: Share this logic.
33
34
  `${moduleName}::${(0, awsLambdaUtils_1.randomGuid)()}`, quidproquo_core_1.QpqRuntimeType.EXECUTE_STORY, dynamicModuleLoader, payload.runtime, []);
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getUserDirectoryAssociateSoftwareTokenActionProcessor: ActionProcessorListResolver;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getUserDirectoryAssociateSoftwareTokenActionProcessor = void 0;
13
+ const quidproquo_config_aws_1 = require("quidproquo-config-aws");
14
+ const quidproquo_core_1 = require("quidproquo-core");
15
+ const associateSoftwareToken_1 = require("../../../logic/cognito/associateSoftwareToken");
16
+ const getProcessAssociateSoftwareToken = (qpqConfig) => {
17
+ return (_a) => __awaiter(void 0, [_a], void 0, function* ({ session }) {
18
+ const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
19
+ const response = yield (0, associateSoftwareToken_1.associateSoftwareToken)(region, session);
20
+ return (0, quidproquo_core_1.actionResult)(response);
21
+ });
22
+ };
23
+ const getUserDirectoryAssociateSoftwareTokenActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
24
+ return ({
25
+ [quidproquo_core_1.UserDirectoryActionType.AssociateSoftwareToken]: getProcessAssociateSoftwareToken(qpqConfig),
26
+ });
27
+ });
28
+ exports.getUserDirectoryAssociateSoftwareTokenActionProcessor = getUserDirectoryAssociateSoftwareTokenActionProcessor;
@@ -16,8 +16,17 @@ const changePassword_1 = require("../../../logic/cognito/changePassword");
16
16
  const getProcessChangePassword = (qpqConfig) => {
17
17
  return (_a) => __awaiter(void 0, [_a], void 0, function* ({ oldPassword, newPassword, accessToken }) {
18
18
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
19
- yield (0, changePassword_1.changePassword)(accessToken, oldPassword, newPassword, region);
20
- return (0, quidproquo_core_1.actionResult)(void 0);
19
+ try {
20
+ yield (0, changePassword_1.changePassword)(accessToken, oldPassword, newPassword, region);
21
+ return (0, quidproquo_core_1.actionResult)(void 0);
22
+ }
23
+ catch (error) {
24
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
25
+ NotAuthorizedException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryChangePasswordErrorTypeEnum.IncorrectPassword, 'Current password is incorrect'),
26
+ InvalidPasswordException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryChangePasswordErrorTypeEnum.InvalidNewPassword, 'New password does not meet the password policy'),
27
+ LimitExceededException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryChangePasswordErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
28
+ });
29
+ }
21
30
  });
22
31
  };
23
32
  const getUserDirectoryChangePasswordActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -16,8 +16,17 @@ const verifyUserEmail_1 = require("../../../logic/cognito/verifyUserEmail");
16
16
  const getProcessConfirmEmailVerification = (qpqConfig) => {
17
17
  return (_a) => __awaiter(void 0, [_a], void 0, function* ({ code, accessToken }) {
18
18
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
19
- yield (0, verifyUserEmail_1.verifyUserEmail)(region, accessToken, code);
20
- return (0, quidproquo_core_1.actionResult)(void 0);
19
+ try {
20
+ yield (0, verifyUserEmail_1.verifyUserEmail)(region, accessToken, code);
21
+ return (0, quidproquo_core_1.actionResult)(void 0);
22
+ }
23
+ catch (error) {
24
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
25
+ CodeMismatchException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryConfirmEmailVerificationErrorTypeEnum.InvalidCode, 'Verification code is incorrect'),
26
+ ExpiredCodeException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryConfirmEmailVerificationErrorTypeEnum.ExpiredCode, 'Verification code has expired'),
27
+ LimitExceededException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryConfirmEmailVerificationErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
28
+ });
29
+ }
21
30
  });
22
31
  };
23
32
  const getUserDirectoryConfirmEmailVerificationActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -22,8 +22,18 @@ const getProcessConfirmForgotPassword = (qpqConfig) => {
22
22
  const userPoolId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolIdFromConfig)(userDirectoryName, qpqConfig), region);
23
23
  const userPoolClientId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolClientIdFromConfig)(userDirectoryName, qpqConfig), region);
24
24
  const resolvedUsername = yield (0, resolveUsernameByPreferredUsername_1.resolveUsernameByPreferredUsername)(userPoolId, region, username);
25
- const authResponse = yield (0, confirmForgotPassword_1.confirmForgotPassword)(userPoolId, userPoolClientId, region, code, resolvedUsername, password);
26
- return (0, quidproquo_core_1.actionResult)(authResponse);
25
+ try {
26
+ const authResponse = yield (0, confirmForgotPassword_1.confirmForgotPassword)(userPoolId, userPoolClientId, region, code, resolvedUsername, password);
27
+ return (0, quidproquo_core_1.actionResult)(authResponse);
28
+ }
29
+ catch (error) {
30
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
31
+ CodeMismatchException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryConfirmForgotPasswordErrorTypeEnum.InvalidCode, 'Confirmation code is incorrect'),
32
+ ExpiredCodeException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryConfirmForgotPasswordErrorTypeEnum.ExpiredCode, 'Confirmation code has expired'),
33
+ InvalidPasswordException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryConfirmForgotPasswordErrorTypeEnum.InvalidNewPassword, 'New password does not meet the password policy'),
34
+ LimitExceededException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryConfirmForgotPasswordErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
35
+ });
36
+ }
27
37
  });
28
38
  };
29
39
  const getUserDirectoryConfirmForgotPasswordActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -23,10 +23,19 @@ const getProcessCreateUser = (qpqConfig) => {
23
23
  const userPoolClientId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolClientIdFromConfig)(payload.userDirectoryName, qpqConfig), region);
24
24
  const resolvedUsername = yield (0, resolveUsernameByPreferredUsername_1.resolveUsernameByPreferredUsername)(userPoolId, region, payload.createUserRequest.email);
25
25
  if (resolvedUsername !== payload.createUserRequest.email) {
26
- return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.ErrorTypeEnum.Conflict, 'An account with this email already exists');
26
+ return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryCreateUserErrorTypeEnum.Conflict, 'An account with this email already exists');
27
+ }
28
+ try {
29
+ const authResponse = yield (0, createUser_1.createUser)(userPoolId, region, userPoolClientId, payload.createUserRequest);
30
+ return (0, quidproquo_core_1.actionResult)(authResponse);
31
+ }
32
+ catch (error) {
33
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
34
+ UsernameExistsException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryCreateUserErrorTypeEnum.Conflict, 'An account with this email already exists'),
35
+ InvalidPasswordException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryCreateUserErrorTypeEnum.InvalidPassword, 'Password does not meet the password policy'),
36
+ LimitExceededException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryCreateUserErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
37
+ });
27
38
  }
28
- const authResponse = yield (0, createUser_1.createUser)(userPoolId, region, userPoolClientId, payload.createUserRequest);
29
- return (0, quidproquo_core_1.actionResult)(authResponse);
30
39
  });
31
40
  };
32
41
  const getUserDirectoryCreateUserActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -21,7 +21,7 @@ const getProcessDecodeAccessToken = (qpqConfig) => {
21
21
  const userPoolId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolIdFromConfig)(userDirectoryName, qpqConfig), region);
22
22
  const authInfo = yield (0, decodeValidJwt_1.decodeValidJwt)(userPoolId, region, ignoreExpiration, accessToken);
23
23
  if (!authInfo || !(authInfo === null || authInfo === void 0 ? void 0 : authInfo.username)) {
24
- return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.ErrorTypeEnum.Unauthorized, 'Invalid access token');
24
+ return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryDecodeAccessTokenErrorTypeEnum.Unauthorized, 'Invalid access token');
25
25
  }
26
26
  return (0, quidproquo_core_1.actionResult)(Object.assign(Object.assign({}, authInfo), { userDirectory: userDirectoryName }));
27
27
  });
@@ -22,8 +22,16 @@ const getProcessForgotPassword = (qpqConfig) => {
22
22
  const userPoolId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolIdFromConfig)(userDirectoryName, qpqConfig), region);
23
23
  const userPoolClientId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolClientIdFromConfig)(userDirectoryName, qpqConfig), region);
24
24
  const resolvedUsername = yield (0, resolveUsernameByPreferredUsername_1.resolveUsernameByPreferredUsername)(userPoolId, region, username);
25
- const authResponse = yield (0, forgotPassword_1.forgotPassword)(userPoolId, userPoolClientId, region, resolvedUsername);
26
- return (0, quidproquo_core_1.actionResult)(authResponse);
25
+ try {
26
+ const authResponse = yield (0, forgotPassword_1.forgotPassword)(userPoolId, userPoolClientId, region, resolvedUsername);
27
+ return (0, quidproquo_core_1.actionResult)(authResponse);
28
+ }
29
+ catch (error) {
30
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
31
+ UserNotFoundException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryForgotPasswordErrorTypeEnum.UserNotFound, 'No account found for this user'),
32
+ LimitExceededException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryForgotPasswordErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
33
+ });
34
+ }
27
35
  });
28
36
  };
29
37
  const getUserDirectoryForgotPasswordActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -19,8 +19,15 @@ const getProcessGetUserAttributesByUserId = (qpqConfig) => {
19
19
  return (_a, session_1) => __awaiter(void 0, [_a, session_1], void 0, function* ({ userDirectoryName, userId }, session) {
20
20
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
21
21
  const userPoolId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolIdFromConfig)(userDirectoryName, qpqConfig), region);
22
- const userAttributes = yield (0, getUserAttributesBySub_1.getUserAttributesBySub)(userPoolId, region, userId);
23
- return (0, quidproquo_core_1.actionResult)(userAttributes);
22
+ try {
23
+ const userAttributes = yield (0, getUserAttributesBySub_1.getUserAttributesBySub)(userPoolId, region, userId);
24
+ return (0, quidproquo_core_1.actionResult)(userAttributes);
25
+ }
26
+ catch (error) {
27
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
28
+ USER_NOT_FOUND: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryGetUserAttributesByUserIdErrorTypeEnum.UserNotFound, 'No user found for this userId'),
29
+ });
30
+ }
24
31
  });
25
32
  };
26
33
  const getUserDirectoryGetUserAttributesByUserIdActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -19,8 +19,16 @@ const getProcessGetUsers = (qpqConfig) => {
19
19
  return (_a, session_1) => __awaiter(void 0, [_a, session_1], void 0, function* ({ userDirectoryName, nextPageKey }, session) {
20
20
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
21
21
  const userPoolId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolIdFromConfig)(userDirectoryName, qpqConfig), region);
22
- const userAttributes = yield (0, listPagedUsers_1.listPagedUsers)(userPoolId, region, nextPageKey);
23
- return (0, quidproquo_core_1.actionResult)(userAttributes);
22
+ try {
23
+ const userAttributes = yield (0, listPagedUsers_1.listPagedUsers)(userPoolId, region, nextPageKey);
24
+ return (0, quidproquo_core_1.actionResult)(userAttributes);
25
+ }
26
+ catch (error) {
27
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
28
+ InvalidParameterException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryGetUsersErrorTypeEnum.InvalidPageKey, 'The supplied page key is invalid'),
29
+ TooManyRequestsException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryGetUsersErrorTypeEnum.LimitExceeded, 'Too many requests, please try again later'),
30
+ });
31
+ }
24
32
  });
25
33
  };
26
34
  const getUserDirectoryGetUsersActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -19,8 +19,16 @@ const getProcessGetUsersByAttribute = (qpqConfig) => {
19
19
  return (_a, _session_1) => __awaiter(void 0, [_a, _session_1], void 0, function* ({ userDirectoryName, attribueName, attribueValue, limit, nextPageKey }, _session) {
20
20
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
21
21
  const userPoolId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolIdFromConfig)(userDirectoryName, qpqConfig), region);
22
- const userAttributes = yield (0, listPagedUsersByAttribute_1.listPagedUsersByAttribute)(userPoolId, region, attribueName, attribueValue, limit, nextPageKey);
23
- return (0, quidproquo_core_1.actionResult)(userAttributes);
22
+ try {
23
+ const userAttributes = yield (0, listPagedUsersByAttribute_1.listPagedUsersByAttribute)(userPoolId, region, attribueName, attribueValue, limit, nextPageKey);
24
+ return (0, quidproquo_core_1.actionResult)(userAttributes);
25
+ }
26
+ catch (error) {
27
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
28
+ InvalidParameterException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryGetUsersByAttributeErrorTypeEnum.InvalidSearchParameters, 'The search attribute, value, limit, or page key is invalid'),
29
+ TooManyRequestsException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryGetUsersByAttributeErrorTypeEnum.LimitExceeded, 'Too many requests, please try again later'),
30
+ });
31
+ }
24
32
  });
25
33
  };
26
34
  const getUserDirectoryGetUsersByAttributeActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -21,10 +21,24 @@ const getProcessRefreshToken = (qpqConfig) => {
21
21
  const userPoolId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolIdFromConfig)(userDirectoryName, qpqConfig), region);
22
22
  const userPoolClientId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolClientIdFromConfig)(userDirectoryName, qpqConfig), region);
23
23
  if (!session.decodedAccessToken || !session.decodedAccessToken.username) {
24
- return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.ErrorTypeEnum.Unauthorized, 'Invalid accessToken');
24
+ return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRefreshTokenErrorTypeEnum.Unauthorized, 'Invalid accessToken');
25
+ }
26
+ // NOTE: we intentionally do NOT gate on decodedAccessToken.wasValid here.
27
+ // Refresh must accept a signature-valid-but-expired access token (that's the
28
+ // point of refreshing), and wasValid folds in the expiry check. The trust
29
+ // anchor for this operation is the refreshToken itself: Cognito's
30
+ // REFRESH_TOKEN_AUTH validates it and the SECRET_HASH binds it to `username`,
31
+ // so a forged/unverified username cannot mint tokens for another user.
32
+ try {
33
+ const authResponse = yield (0, refreshToken_1.refreshToken)(userPoolId, userPoolClientId, quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig), session.decodedAccessToken.username, refreshToken);
34
+ return (0, quidproquo_core_1.actionResult)(authResponse);
35
+ }
36
+ catch (error) {
37
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
38
+ NotAuthorizedException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRefreshTokenErrorTypeEnum.Unauthorized, 'Refresh token is invalid or has expired'),
39
+ TooManyRequestsException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRefreshTokenErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
40
+ });
25
41
  }
26
- const authResponse = yield (0, refreshToken_1.refreshToken)(userPoolId, userPoolClientId, quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig), session.decodedAccessToken.username, refreshToken);
27
- return (0, quidproquo_core_1.actionResult)(authResponse);
28
42
  });
29
43
  };
30
44
  const getUserDirectoryRefreshTokenActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -16,8 +16,17 @@ const requestEmailVerificationCode_1 = require("../../../logic/cognito/requestEm
16
16
  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
- yield (0, requestEmailVerificationCode_1.requestEmailVerificationCode)(region, accessToken);
20
- return (0, quidproquo_core_1.actionResult)(void 0);
19
+ try {
20
+ yield (0, requestEmailVerificationCode_1.requestEmailVerificationCode)(region, accessToken);
21
+ return (0, quidproquo_core_1.actionResult)(void 0);
22
+ }
23
+ catch (error) {
24
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
25
+ NotAuthorizedException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRequestEmailVerificationErrorTypeEnum.Unauthorized, 'Access token is invalid or has expired'),
26
+ LimitExceededException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRequestEmailVerificationErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
27
+ CodeDeliveryFailureException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRequestEmailVerificationErrorTypeEnum.CodeDeliveryFailed, 'Could not deliver the verification code'),
28
+ });
29
+ }
21
30
  });
22
31
  };
23
32
  const getUserDirectoryRequestEmailVerificationActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -16,6 +16,7 @@ const client_cognito_identity_provider_1 = require("@aws-sdk/client-cognito-iden
16
16
  const awsNamingUtils_1 = require("../../../awsNamingUtils");
17
17
  const getExportedValue_1 = require("../../../logic/cloudformation/getExportedValue");
18
18
  const respondToAuthChallengeChallenge_1 = require("../../../logic/cognito/respondToAuthChallengeChallenge");
19
+ const verifySoftwareToken_1 = require("../../../logic/cognito/verifySoftwareToken");
19
20
  const anyAuthChallengeToCognitoAttributes = (authChallenge) => {
20
21
  switch (authChallenge.challenge) {
21
22
  case quidproquo_core_1.AuthenticateUserChallenge.NEW_PASSWORD_REQUIRED:
@@ -26,6 +27,14 @@ const anyAuthChallengeToCognitoAttributes = (authChallenge) => {
26
27
  return {
27
28
  ANSWER: JSON.stringify(authChallenge.challengeAnswer),
28
29
  };
30
+ case quidproquo_core_1.AuthenticateUserChallenge.SOFTWARE_TOKEN_MFA:
31
+ return {
32
+ SOFTWARE_TOKEN_MFA_CODE: authChallenge.mfaCode,
33
+ };
34
+ // MFA_SETUP completes with just USERNAME/SESSION — the TOTP code is consumed
35
+ // by the preceding VerifySoftwareToken call, not by RespondToAuthChallenge.
36
+ case quidproquo_core_1.AuthenticateUserChallenge.MFA_SETUP:
37
+ return {};
29
38
  default:
30
39
  return {};
31
40
  }
@@ -36,6 +45,10 @@ const anyAuthChallengeToCognitoChallengeName = (authChallenge) => {
36
45
  return client_cognito_identity_provider_1.ChallengeNameType.NEW_PASSWORD_REQUIRED;
37
46
  case quidproquo_core_1.AuthenticateUserChallenge.CUSTOM_CHALLENGE:
38
47
  return client_cognito_identity_provider_1.ChallengeNameType.CUSTOM_CHALLENGE;
48
+ case quidproquo_core_1.AuthenticateUserChallenge.SOFTWARE_TOKEN_MFA:
49
+ return client_cognito_identity_provider_1.ChallengeNameType.SOFTWARE_TOKEN_MFA;
50
+ case quidproquo_core_1.AuthenticateUserChallenge.MFA_SETUP:
51
+ return client_cognito_identity_provider_1.ChallengeNameType.MFA_SETUP;
39
52
  default:
40
53
  throw new Error(`Unknown challenge`);
41
54
  }
@@ -45,8 +58,27 @@ const getProcessRespondToAuthChallenge = (qpqConfig) => {
45
58
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
46
59
  const userPoolId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolIdFromConfig)(userDirectoryName, qpqConfig), region);
47
60
  const userPoolClientId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolClientIdFromConfig)(userDirectoryName, qpqConfig), region);
48
- const response = yield (0, respondToAuthChallengeChallenge_1.respondToAuthChallengeChallenge)(userPoolId, userPoolClientId, region, authChallenge.username, authChallenge.session, anyAuthChallengeToCognitoChallengeName(authChallenge), anyAuthChallengeToCognitoAttributes(authChallenge));
49
- return (0, quidproquo_core_1.actionResult)(response);
61
+ // MFA_SETUP must verify the TOTP code first; Cognito returns a fresh session
62
+ // that is then used to complete the challenge and issue tokens.
63
+ let session = authChallenge.session;
64
+ try {
65
+ if (authChallenge.challenge === quidproquo_core_1.AuthenticateUserChallenge.MFA_SETUP) {
66
+ session = yield (0, verifySoftwareToken_1.verifySoftwareToken)(region, session, authChallenge.mfaCode);
67
+ }
68
+ const response = yield (0, respondToAuthChallengeChallenge_1.respondToAuthChallengeChallenge)(userPoolId, userPoolClientId, region, authChallenge.username, session, anyAuthChallengeToCognitoChallengeName(authChallenge), anyAuthChallengeToCognitoAttributes(authChallenge));
69
+ return (0, quidproquo_core_1.actionResult)(response);
70
+ }
71
+ catch (error) {
72
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
73
+ CodeMismatchException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRespondToAuthChallengeErrorTypeEnum.InvalidCode, 'The supplied code is incorrect'),
74
+ EnableSoftwareTokenMFAException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRespondToAuthChallengeErrorTypeEnum.InvalidCode, 'The supplied code is incorrect'),
75
+ ExpiredCodeException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRespondToAuthChallengeErrorTypeEnum.ExpiredCode, 'The supplied code has expired'),
76
+ InvalidPasswordException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRespondToAuthChallengeErrorTypeEnum.InvalidNewPassword, 'New password does not meet the password policy'),
77
+ NotAuthorizedException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRespondToAuthChallengeErrorTypeEnum.Unauthorized, 'The challenge session is invalid or has expired'),
78
+ LimitExceededException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRespondToAuthChallengeErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
79
+ TooManyRequestsException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectoryRespondToAuthChallengeErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
80
+ });
81
+ }
50
82
  });
51
83
  };
52
84
  const getUserDirectoryRespondToAuthChallengeActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -21,8 +21,18 @@ const getProcessSetPassword = (qpqConfig) => {
21
21
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
22
22
  const userPoolId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolIdFromConfig)(userDirectoryName, qpqConfig), region);
23
23
  const resolvedUsername = yield (0, resolveUsernameByPreferredUsername_1.resolveUsernameByPreferredUsername)(userPoolId, region, username);
24
- yield (0, setUserPassword_1.setUserPassword)(region, userPoolId, resolvedUsername, newPassword);
25
- return (0, quidproquo_core_1.actionResult)(void 0);
24
+ try {
25
+ yield (0, setUserPassword_1.setUserPassword)(region, userPoolId, resolvedUsername, newPassword);
26
+ return (0, quidproquo_core_1.actionResult)(void 0);
27
+ }
28
+ catch (error) {
29
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
30
+ UserNotFoundException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectorySetPasswordErrorTypeEnum.UserNotFound, 'No account found for this user'),
31
+ InvalidPasswordException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectorySetPasswordErrorTypeEnum.InvalidNewPassword, 'Password does not meet the password policy'),
32
+ LimitExceededException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectorySetPasswordErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
33
+ TooManyRequestsException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectorySetPasswordErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
34
+ });
35
+ }
26
36
  });
27
37
  };
28
38
  const getUserDirectorySetPasswordActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -21,8 +21,19 @@ const getProcessSetUserAttributes = (qpqConfig) => {
21
21
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
22
22
  const userPoolId = yield (0, getExportedValue_1.getExportedValue)((0, awsNamingUtils_1.getCFExportNameUserPoolIdFromConfig)(userDirectoryName, qpqConfig), region);
23
23
  const resolvedUsername = yield (0, resolveUsernameByPreferredUsername_1.resolveUsernameByPreferredUsername)(userPoolId, region, username);
24
- yield (0, setUserAttributes_1.setUserAttributes)(userPoolId, region, resolvedUsername, userAttributes);
25
- return (0, quidproquo_core_1.actionResult)(void 0);
24
+ try {
25
+ yield (0, setUserAttributes_1.setUserAttributes)(userPoolId, region, resolvedUsername, userAttributes);
26
+ return (0, quidproquo_core_1.actionResult)(void 0);
27
+ }
28
+ catch (error) {
29
+ return (0, quidproquo_core_1.actionResultErrorFromCaughtError)(error, {
30
+ UserNotFoundException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectorySetUserAttributesErrorTypeEnum.UserNotFound, 'No account found for this user'),
31
+ InvalidParameterException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectorySetUserAttributesErrorTypeEnum.InvalidAttributes, 'One or more attributes are invalid'),
32
+ AliasExistsException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectorySetUserAttributesErrorTypeEnum.AliasExists, 'That email or phone number is already in use'),
33
+ LimitExceededException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectorySetUserAttributesErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
34
+ TooManyRequestsException: () => (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.UserDirectorySetUserAttributesErrorTypeEnum.LimitExceeded, 'Too many attempts, please try again later'),
35
+ });
36
+ }
26
37
  });
27
38
  };
28
39
  const getUserDirectorySetUserAttributesActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.getUserDirectoryActionProcessor = void 0;
13
+ const getUserDirectoryAssociateSoftwareTokenActionProcessor_1 = require("./getUserDirectoryAssociateSoftwareTokenActionProcessor");
13
14
  const getUserDirectoryAuthenticateUserActionProcessor_1 = require("./getUserDirectoryAuthenticateUserActionProcessor");
14
15
  const getUserDirectoryChangePasswordActionProcessor_1 = require("./getUserDirectoryChangePasswordActionProcessor");
15
16
  const getUserDirectoryConfirmEmailVerificationActionProcessor_1 = require("./getUserDirectoryConfirmEmailVerificationActionProcessor");
@@ -29,6 +30,6 @@ const getUserDirectorySetAccessTokenActionProcessor_1 = require("./getUserDirect
29
30
  const getUserDirectorySetPasswordActionProcessor_1 = require("./getUserDirectorySetPasswordActionProcessor");
30
31
  const getUserDirectorySetUserAttributesActionProcessor_1 = require("./getUserDirectorySetUserAttributesActionProcessor");
31
32
  const getUserDirectoryActionProcessor = (qpqConfig, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
32
- return (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (yield (0, getUserDirectoryAuthenticateUserActionProcessor_1.getUserDirectoryAuthenticateUserActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryChangePasswordActionProcessor_1.getUserDirectoryChangePasswordActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryConfirmEmailVerificationActionProcessor_1.getUserDirectoryConfirmEmailVerificationActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryConfirmForgotPasswordActionProcessor_1.getUserDirectoryConfirmForgotPasswordActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryCreateUserActionProcessor_1.getUserDirectoryCreateUserActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryDecodeAccessTokenActionProcessor_1.getUserDirectoryDecodeAccessTokenActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryForgotPasswordActionProcessor_1.getUserDirectoryForgotPasswordActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryGetUserAttributesActionProcessor_1.getUserDirectoryGetUserAttributesActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryGetUserAttributesByUserIdActionProcessor_1.getUserDirectoryGetUserAttributesByUserIdActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryGetUsersActionProcessor_1.getUserDirectoryGetUsersActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryGetUsersByAttributeActionProcessor_1.getUserDirectoryGetUsersByAttributeActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryReadAccessTokenActionProcessor_1.getUserDirectoryReadAccessTokenActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryRefreshTokenActionProcessor_1.getUserDirectoryRefreshTokenActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryRequestEmailVerificationActionProcessor_1.getUserDirectoryRequestEmailVerificationActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryRespondToAuthChallengeActionProcessor_1.getUserDirectoryRespondToAuthChallengeActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectorySetAccessTokenActionProcessor_1.getUserDirectorySetAccessTokenActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectorySetPasswordActionProcessor_1.getUserDirectorySetPasswordActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectorySetUserAttributesActionProcessor_1.getUserDirectorySetUserAttributesActionProcessor)(qpqConfig, dynamicModuleLoader))));
33
+ return (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (yield (0, getUserDirectoryAssociateSoftwareTokenActionProcessor_1.getUserDirectoryAssociateSoftwareTokenActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryAuthenticateUserActionProcessor_1.getUserDirectoryAuthenticateUserActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryChangePasswordActionProcessor_1.getUserDirectoryChangePasswordActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryConfirmEmailVerificationActionProcessor_1.getUserDirectoryConfirmEmailVerificationActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryConfirmForgotPasswordActionProcessor_1.getUserDirectoryConfirmForgotPasswordActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryCreateUserActionProcessor_1.getUserDirectoryCreateUserActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryDecodeAccessTokenActionProcessor_1.getUserDirectoryDecodeAccessTokenActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryForgotPasswordActionProcessor_1.getUserDirectoryForgotPasswordActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryGetUserAttributesActionProcessor_1.getUserDirectoryGetUserAttributesActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryGetUserAttributesByUserIdActionProcessor_1.getUserDirectoryGetUserAttributesByUserIdActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryGetUsersActionProcessor_1.getUserDirectoryGetUsersActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryGetUsersByAttributeActionProcessor_1.getUserDirectoryGetUsersByAttributeActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryReadAccessTokenActionProcessor_1.getUserDirectoryReadAccessTokenActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryRefreshTokenActionProcessor_1.getUserDirectoryRefreshTokenActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryRequestEmailVerificationActionProcessor_1.getUserDirectoryRequestEmailVerificationActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectoryRespondToAuthChallengeActionProcessor_1.getUserDirectoryRespondToAuthChallengeActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectorySetAccessTokenActionProcessor_1.getUserDirectorySetAccessTokenActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectorySetPasswordActionProcessor_1.getUserDirectorySetPasswordActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getUserDirectorySetUserAttributesActionProcessor_1.getUserDirectorySetUserAttributesActionProcessor)(qpqConfig, dynamicModuleLoader))));
33
34
  });
34
35
  exports.getUserDirectoryActionProcessor = getUserDirectoryActionProcessor;
@@ -16,7 +16,7 @@ const quidproquo_webserver_1 = require("quidproquo-webserver");
16
16
  const awsNamingUtils_1 = require("../../../awsNamingUtils");
17
17
  const executeLambdaByName_1 = require("../../../logic/lambda/executeLambdaByName");
18
18
  const getProcessExecute = (qpqConfig) => {
19
- return (_a, session_1) => __awaiter(void 0, [_a, session_1], void 0, function* ({ functionName, service, payload, context, isAsync }, session) {
19
+ return (_a, session_1) => __awaiter(void 0, [_a, session_1], void 0, function* ({ functionName, service, payload, isAsync }, session) {
20
20
  const region = quidproquo_config_aws_1.qpqConfigAwsUtils.getApplicationModuleDeployRegion(qpqConfig);
21
21
  const appName = quidproquo_core_1.qpqCoreUtils.getApplicationName(qpqConfig);
22
22
  const environment = quidproquo_core_1.qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig);
@@ -25,7 +25,7 @@ const getProcessExecute = (qpqConfig) => {
25
25
  const serviceFunctionEvent = {
26
26
  functionName: functionName,
27
27
  payload: payload,
28
- storySession: Object.assign(Object.assign({}, session), { context }),
28
+ storySession: (0, quidproquo_core_1.toCrossServiceSession)(session),
29
29
  };
30
30
  const result = yield (0, executeLambdaByName_1.executeLambdaByName)(awsFunctionName, region, serviceFunctionEvent, isAsync);
31
31
  if (!result) {
@@ -8,3 +8,4 @@ export * from './logic';
8
8
  export * from './logic/cache/memoFunc';
9
9
  export * from './logic/parametersManager/getParameter';
10
10
  export * from './logic/parametersManager/getParameters';
11
+ export * from './lambdaExtensions/getLogExtensionLayerPath';
@@ -48,3 +48,6 @@ __exportStar(require("./logic"), exports);
48
48
  __exportStar(require("./logic/cache/memoFunc"), exports);
49
49
  __exportStar(require("./logic/parametersManager/getParameter"), exports);
50
50
  __exportStar(require("./logic/parametersManager/getParameters"), exports);
51
+ // Log extension layer path + handler port. NOTE: never export the extension
52
+ // entry (./lambdaExtensions/qpqLogExtension) -- it self-executes on import.
53
+ __exportStar(require("./lambdaExtensions/getLogExtensionLayerPath"), exports);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Absolute path to the built qpq-log-extension layer directory (contains the
3
+ * `extensions/` folder). Produced by scripts/buildLogExtensionLayer.mjs and
4
+ * shipped under lib/extension-layer. Used by the CDK layer construct as the
5
+ * LayerVersion asset source.
6
+ *
7
+ * Resolved relative to this compiled file: lib/<format>/lambdaExtensions/<this>
8
+ * -> ../../extension-layer.
9
+ */
10
+ export declare const getLogExtensionLayerPath: () => string;