@bitblit/ratchet-epsilon-common 4.0.116-alpha → 4.0.119-alpha

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 (323) hide show
  1. package/lib/background/background-handler.d.ts +1 -1
  2. package/lib/background/background-http-adapter-handler.d.ts +1 -1
  3. package/lib/background/background-validator.d.ts +1 -1
  4. package/lib/build/ratchet-epsilon-common-info.d.ts +1 -1
  5. package/lib/built-in/http/built-in-auth-filters.d.ts +1 -1
  6. package/lib/cli/ratchet-cli-handler.d.ts +2 -2
  7. package/lib/config/epsilon-logger-config.d.ts +2 -2
  8. package/lib/config/http/filter-chain-context.d.ts +1 -1
  9. package/lib/config/http/http-config.d.ts +1 -1
  10. package/lib/epsilon-global-handler.d.ts +1 -1
  11. package/lib/epsilon-instance.d.ts +1 -1
  12. package/lib/epsilon-logging-extension-processor.d.ts +2 -2
  13. package/lib/http/auth/auth0-web-token-manipulator.d.ts +1 -1
  14. package/lib/http/auth/google-web-token-manipulator.d.ts +1 -1
  15. package/lib/http/auth/jwt-ratchet-local-web-token-manipulator.d.ts +2 -2
  16. package/lib/http/auth/local-web-token-manipulator.d.ts +3 -3
  17. package/lib/http/auth/web-token-manipulator.d.ts +1 -1
  18. package/lib/http/event-util.d.ts +1 -1
  19. package/lib/http/response-util.d.ts +1 -1
  20. package/lib/http/route/epsilon-router.d.ts +1 -1
  21. package/lib/http/route/router-util.d.ts +2 -2
  22. package/lib/index.d.ts +132 -1
  23. package/lib/index.mjs +344 -0
  24. package/lib/index.mjs.map +1 -0
  25. package/lib/local-container-server.d.ts +1 -1
  26. package/lib/local-server.d.ts +1 -1
  27. package/lib/sample/test-error-server.d.ts +1 -1
  28. package/lib/util/epsilon-config-parser.d.ts +1 -1
  29. package/package.json +18 -19
  30. package/lib/background/background-dynamo-log-table-handler.js +0 -38
  31. package/lib/background/background-dynamo-log-table-handler.js.map +0 -1
  32. package/lib/background/background-entry.js +0 -2
  33. package/lib/background/background-entry.js.map +0 -1
  34. package/lib/background/background-execution-event-type.js +0 -9
  35. package/lib/background/background-execution-event-type.js.map +0 -1
  36. package/lib/background/background-execution-event.js +0 -2
  37. package/lib/background/background-execution-event.js.map +0 -1
  38. package/lib/background/background-execution-listener.js +0 -2
  39. package/lib/background/background-execution-listener.js.map +0 -1
  40. package/lib/background/background-handler.js +0 -274
  41. package/lib/background/background-handler.js.map +0 -1
  42. package/lib/background/background-http-adapter-handler.js +0 -129
  43. package/lib/background/background-http-adapter-handler.js.map +0 -1
  44. package/lib/background/background-meta-response-internal.js +0 -2
  45. package/lib/background/background-meta-response-internal.js.map +0 -1
  46. package/lib/background/background-process-handling.js +0 -6
  47. package/lib/background/background-process-handling.js.map +0 -1
  48. package/lib/background/background-process-log-table-entry.js +0 -2
  49. package/lib/background/background-process-log-table-entry.js.map +0 -1
  50. package/lib/background/background-queue-response-internal.js +0 -2
  51. package/lib/background/background-queue-response-internal.js.map +0 -1
  52. package/lib/background/background-validator.js +0 -87
  53. package/lib/background/background-validator.js.map +0 -1
  54. package/lib/background/epsilon-background-process-error.js +0 -95
  55. package/lib/background/epsilon-background-process-error.js.map +0 -1
  56. package/lib/background/internal-background-entry.js +0 -2
  57. package/lib/background/internal-background-entry.js.map +0 -1
  58. package/lib/background/manager/abstract-background-manager.js +0 -90
  59. package/lib/background/manager/abstract-background-manager.js.map +0 -1
  60. package/lib/background/manager/aws-sqs-sns-background-manager.js +0 -154
  61. package/lib/background/manager/aws-sqs-sns-background-manager.js.map +0 -1
  62. package/lib/background/manager/background-manager-like.js +0 -2
  63. package/lib/background/manager/background-manager-like.js.map +0 -1
  64. package/lib/background/manager/background-manager.spec.js +0 -74
  65. package/lib/background/manager/background-manager.spec.js.map +0 -1
  66. package/lib/background/manager/single-thread-local-background-manager.js +0 -46
  67. package/lib/background/manager/single-thread-local-background-manager.js.map +0 -1
  68. package/lib/background/s3-background-transaction-logger.js +0 -53
  69. package/lib/background/s3-background-transaction-logger.js.map +0 -1
  70. package/lib/build/ratchet-epsilon-common-info.js +0 -15
  71. package/lib/build/ratchet-epsilon-common-info.js.map +0 -1
  72. package/lib/built-in/background/echo-processor.js +0 -17
  73. package/lib/built-in/background/echo-processor.js.map +0 -1
  74. package/lib/built-in/background/log-and-enqueue-echo-processor.js +0 -13
  75. package/lib/built-in/background/log-and-enqueue-echo-processor.js.map +0 -1
  76. package/lib/built-in/background/log-message-background-error-processor.js +0 -7
  77. package/lib/built-in/background/log-message-background-error-processor.js.map +0 -1
  78. package/lib/built-in/background/no-op-processor.js +0 -10
  79. package/lib/built-in/background/no-op-processor.js.map +0 -1
  80. package/lib/built-in/background/retry-processor.js +0 -42
  81. package/lib/built-in/background/retry-processor.js.map +0 -1
  82. package/lib/built-in/background/sample-delay-processor.js +0 -14
  83. package/lib/built-in/background/sample-delay-processor.js.map +0 -1
  84. package/lib/built-in/background/sample-input-validated-processor-data.js +0 -2
  85. package/lib/built-in/background/sample-input-validated-processor-data.js.map +0 -1
  86. package/lib/built-in/background/sample-input-validated-processor.js +0 -13
  87. package/lib/built-in/background/sample-input-validated-processor.js.map +0 -1
  88. package/lib/built-in/built-in-trace-id-generators.js +0 -22
  89. package/lib/built-in/built-in-trace-id-generators.js.map +0 -1
  90. package/lib/built-in/daemon/daemon-authorizer-function.js +0 -2
  91. package/lib/built-in/daemon/daemon-authorizer-function.js.map +0 -1
  92. package/lib/built-in/daemon/daemon-config.js +0 -2
  93. package/lib/built-in/daemon/daemon-config.js.map +0 -1
  94. package/lib/built-in/daemon/daemon-group-selection-function.js +0 -2
  95. package/lib/built-in/daemon/daemon-group-selection-function.js.map +0 -1
  96. package/lib/built-in/daemon/daemon-handler.js +0 -61
  97. package/lib/built-in/daemon/daemon-handler.js.map +0 -1
  98. package/lib/built-in/daemon/daemon-process-state-list.js +0 -2
  99. package/lib/built-in/daemon/daemon-process-state-list.js.map +0 -1
  100. package/lib/built-in/http/apollo-filter.js +0 -60
  101. package/lib/built-in/http/apollo-filter.js.map +0 -1
  102. package/lib/built-in/http/built-in-auth-filters.js +0 -108
  103. package/lib/built-in/http/built-in-auth-filters.js.map +0 -1
  104. package/lib/built-in/http/built-in-authorizers.js +0 -40
  105. package/lib/built-in/http/built-in-authorizers.js.map +0 -1
  106. package/lib/built-in/http/built-in-filters.js +0 -210
  107. package/lib/built-in/http/built-in-filters.js.map +0 -1
  108. package/lib/built-in/http/built-in-handlers.js +0 -70
  109. package/lib/built-in/http/built-in-handlers.js.map +0 -1
  110. package/lib/built-in/http/log-level-manipulation-filter.js +0 -18
  111. package/lib/built-in/http/log-level-manipulation-filter.js.map +0 -1
  112. package/lib/built-in/http/run-handler-as-filter.js +0 -61
  113. package/lib/built-in/http/run-handler-as-filter.js.map +0 -1
  114. package/lib/built-in/http/run-handler-as-filter.spec.js +0 -41
  115. package/lib/built-in/http/run-handler-as-filter.spec.js.map +0 -1
  116. package/lib/cli/ratchet-cli-handler.js +0 -21
  117. package/lib/cli/ratchet-cli-handler.js.map +0 -1
  118. package/lib/cli/run-background-process-from-command-line.js +0 -23
  119. package/lib/cli/run-background-process-from-command-line.js.map +0 -1
  120. package/lib/config/background/background-aws-config.js +0 -2
  121. package/lib/config/background/background-aws-config.js.map +0 -1
  122. package/lib/config/background/background-config.js +0 -2
  123. package/lib/config/background/background-config.js.map +0 -1
  124. package/lib/config/background/background-error-processor.js +0 -2
  125. package/lib/config/background/background-error-processor.js.map +0 -1
  126. package/lib/config/background/background-processor.js +0 -2
  127. package/lib/config/background/background-processor.js.map +0 -1
  128. package/lib/config/background/background-transaction-log.js +0 -2
  129. package/lib/config/background/background-transaction-log.js.map +0 -1
  130. package/lib/config/background/background-transaction-logger.js +0 -2
  131. package/lib/config/background/background-transaction-logger.js.map +0 -1
  132. package/lib/config/cron/abstract-cron-entry.js +0 -2
  133. package/lib/config/cron/abstract-cron-entry.js.map +0 -1
  134. package/lib/config/cron/cron-background-entry.js +0 -2
  135. package/lib/config/cron/cron-background-entry.js.map +0 -1
  136. package/lib/config/cron/cron-config.js +0 -2
  137. package/lib/config/cron/cron-config.js.map +0 -1
  138. package/lib/config/dynamo-db-config.js +0 -2
  139. package/lib/config/dynamo-db-config.js.map +0 -1
  140. package/lib/config/epsilon-config.js +0 -2
  141. package/lib/config/epsilon-config.js.map +0 -1
  142. package/lib/config/epsilon-lambda-event-handler.js +0 -2
  143. package/lib/config/epsilon-lambda-event-handler.js.map +0 -1
  144. package/lib/config/epsilon-logger-config.js +0 -2
  145. package/lib/config/epsilon-logger-config.js.map +0 -1
  146. package/lib/config/generic-aws-event-handler-function.js +0 -2
  147. package/lib/config/generic-aws-event-handler-function.js.map +0 -1
  148. package/lib/config/http/authorizer-function.js +0 -2
  149. package/lib/config/http/authorizer-function.js.map +0 -1
  150. package/lib/config/http/epsilon-authorization-context.js +0 -2
  151. package/lib/config/http/epsilon-authorization-context.js.map +0 -1
  152. package/lib/config/http/extended-api-gateway-event.js +0 -2
  153. package/lib/config/http/extended-api-gateway-event.js.map +0 -1
  154. package/lib/config/http/filter-chain-context.js +0 -2
  155. package/lib/config/http/filter-chain-context.js.map +0 -1
  156. package/lib/config/http/filter-function.js +0 -2
  157. package/lib/config/http/filter-function.js.map +0 -1
  158. package/lib/config/http/handler-function.js +0 -2
  159. package/lib/config/http/handler-function.js.map +0 -1
  160. package/lib/config/http/http-config.js +0 -2
  161. package/lib/config/http/http-config.js.map +0 -1
  162. package/lib/config/http/http-processing-config.js +0 -2
  163. package/lib/config/http/http-processing-config.js.map +0 -1
  164. package/lib/config/http/mapped-http-processing-config.js +0 -2
  165. package/lib/config/http/mapped-http-processing-config.js.map +0 -1
  166. package/lib/config/http/null-returned-object-handling.js +0 -7
  167. package/lib/config/http/null-returned-object-handling.js.map +0 -1
  168. package/lib/config/inter-api/inter-api-aws-config.js +0 -2
  169. package/lib/config/inter-api/inter-api-aws-config.js.map +0 -1
  170. package/lib/config/inter-api/inter-api-config.js +0 -2
  171. package/lib/config/inter-api/inter-api-config.js.map +0 -1
  172. package/lib/config/inter-api/inter-api-process-mapping.js +0 -2
  173. package/lib/config/inter-api/inter-api-process-mapping.js.map +0 -1
  174. package/lib/config/logging-trace-id-generator.js +0 -2
  175. package/lib/config/logging-trace-id-generator.js.map +0 -1
  176. package/lib/config/open-api/open-api-document-components.js +0 -2
  177. package/lib/config/open-api/open-api-document-components.js.map +0 -1
  178. package/lib/config/open-api/open-api-document-path.js +0 -2
  179. package/lib/config/open-api/open-api-document-path.js.map +0 -1
  180. package/lib/config/open-api/open-api-document.js +0 -2
  181. package/lib/config/open-api/open-api-document.js.map +0 -1
  182. package/lib/config/s3-config.js +0 -2
  183. package/lib/config/s3-config.js.map +0 -1
  184. package/lib/config/sns-config.js +0 -2
  185. package/lib/config/sns-config.js.map +0 -1
  186. package/lib/epsilon-build-properties.js +0 -25
  187. package/lib/epsilon-build-properties.js.map +0 -1
  188. package/lib/epsilon-constants.js +0 -48
  189. package/lib/epsilon-constants.js.map +0 -1
  190. package/lib/epsilon-global-handler.js +0 -156
  191. package/lib/epsilon-global-handler.js.map +0 -1
  192. package/lib/epsilon-instance.js +0 -2
  193. package/lib/epsilon-instance.js.map +0 -1
  194. package/lib/epsilon-logging-extension-processor.js +0 -16
  195. package/lib/epsilon-logging-extension-processor.js.map +0 -1
  196. package/lib/http/auth/api-gateway-adapter-authentication-handler.js +0 -73
  197. package/lib/http/auth/api-gateway-adapter-authentication-handler.js.map +0 -1
  198. package/lib/http/auth/auth0-web-token-manipulator.js +0 -62
  199. package/lib/http/auth/auth0-web-token-manipulator.js.map +0 -1
  200. package/lib/http/auth/basic-auth-token.js +0 -2
  201. package/lib/http/auth/basic-auth-token.js.map +0 -1
  202. package/lib/http/auth/google-web-token-manipulator.js +0 -72
  203. package/lib/http/auth/google-web-token-manipulator.js.map +0 -1
  204. package/lib/http/auth/google-web-token-manipulator.spec.js +0 -11
  205. package/lib/http/auth/google-web-token-manipulator.spec.js.map +0 -1
  206. package/lib/http/auth/jwt-ratchet-local-web-token-manipulator.js +0 -28
  207. package/lib/http/auth/jwt-ratchet-local-web-token-manipulator.js.map +0 -1
  208. package/lib/http/auth/local-web-token-manipulator.js +0 -75
  209. package/lib/http/auth/local-web-token-manipulator.js.map +0 -1
  210. package/lib/http/auth/local-web-token-manipulator.spec.js +0 -25
  211. package/lib/http/auth/local-web-token-manipulator.spec.js.map +0 -1
  212. package/lib/http/auth/web-token-manipulator.js +0 -2
  213. package/lib/http/auth/web-token-manipulator.js.map +0 -1
  214. package/lib/http/error/bad-gateway.js +0 -10
  215. package/lib/http/error/bad-gateway.js.map +0 -1
  216. package/lib/http/error/bad-request-error.js +0 -10
  217. package/lib/http/error/bad-request-error.js.map +0 -1
  218. package/lib/http/error/conflict-error.js +0 -10
  219. package/lib/http/error/conflict-error.js.map +0 -1
  220. package/lib/http/error/epsilon-http-error.js +0 -135
  221. package/lib/http/error/epsilon-http-error.js.map +0 -1
  222. package/lib/http/error/epsilon-http-error.spec.js +0 -12
  223. package/lib/http/error/epsilon-http-error.spec.js.map +0 -1
  224. package/lib/http/error/forbidden-error.js +0 -10
  225. package/lib/http/error/forbidden-error.js.map +0 -1
  226. package/lib/http/error/gateway-timeout.js +0 -10
  227. package/lib/http/error/gateway-timeout.js.map +0 -1
  228. package/lib/http/error/method-not-allowed-error.js +0 -10
  229. package/lib/http/error/method-not-allowed-error.js.map +0 -1
  230. package/lib/http/error/misconfigured-error.js +0 -10
  231. package/lib/http/error/misconfigured-error.js.map +0 -1
  232. package/lib/http/error/not-found-error.js +0 -10
  233. package/lib/http/error/not-found-error.js.map +0 -1
  234. package/lib/http/error/not-implemented.js +0 -10
  235. package/lib/http/error/not-implemented.js.map +0 -1
  236. package/lib/http/error/request-timeout-error.js +0 -10
  237. package/lib/http/error/request-timeout-error.js.map +0 -1
  238. package/lib/http/error/service-unavailable.js +0 -10
  239. package/lib/http/error/service-unavailable.js.map +0 -1
  240. package/lib/http/error/too-many-requests-error.js +0 -10
  241. package/lib/http/error/too-many-requests-error.js.map +0 -1
  242. package/lib/http/error/unauthorized-error.js +0 -10
  243. package/lib/http/error/unauthorized-error.js.map +0 -1
  244. package/lib/http/event-util.js +0 -177
  245. package/lib/http/event-util.js.map +0 -1
  246. package/lib/http/event-util.spec.js +0 -162
  247. package/lib/http/event-util.spec.js.map +0 -1
  248. package/lib/http/response-util.js +0 -142
  249. package/lib/http/response-util.js.map +0 -1
  250. package/lib/http/response-util.spec.js +0 -93
  251. package/lib/http/response-util.spec.js.map +0 -1
  252. package/lib/http/route/epsilon-router.js +0 -2
  253. package/lib/http/route/epsilon-router.js.map +0 -1
  254. package/lib/http/route/extended-auth-response-context.js +0 -2
  255. package/lib/http/route/extended-auth-response-context.js.map +0 -1
  256. package/lib/http/route/route-mapping.js +0 -2
  257. package/lib/http/route/route-mapping.js.map +0 -1
  258. package/lib/http/route/route-validator-config.js +0 -2
  259. package/lib/http/route/route-validator-config.js.map +0 -1
  260. package/lib/http/route/router-util.js +0 -234
  261. package/lib/http/route/router-util.js.map +0 -1
  262. package/lib/http/route/router-util.spec.js +0 -24
  263. package/lib/http/route/router-util.spec.js.map +0 -1
  264. package/lib/http/web-handler.js +0 -119
  265. package/lib/http/web-handler.js.map +0 -1
  266. package/lib/http/web-handler.spec.js +0 -33
  267. package/lib/http/web-handler.spec.js.map +0 -1
  268. package/lib/http/web-v2-handler.js +0 -23
  269. package/lib/http/web-v2-handler.js.map +0 -1
  270. package/lib/index.js +0 -2
  271. package/lib/index.js.map +0 -1
  272. package/lib/inter-api/inter-api-entry.js +0 -2
  273. package/lib/inter-api/inter-api-entry.js.map +0 -1
  274. package/lib/inter-api/inter-api-util.js +0 -60
  275. package/lib/inter-api/inter-api-util.js.map +0 -1
  276. package/lib/inter-api/inter-api-util.spec.js +0 -62
  277. package/lib/inter-api/inter-api-util.spec.js.map +0 -1
  278. package/lib/inter-api-manager.js +0 -66
  279. package/lib/inter-api-manager.js.map +0 -1
  280. package/lib/lambda-event-handler/cron-epsilon-lambda-event-handler.js +0 -74
  281. package/lib/lambda-event-handler/cron-epsilon-lambda-event-handler.js.map +0 -1
  282. package/lib/lambda-event-handler/cron-epsilon-lambda-event-handler.spec.js +0 -51
  283. package/lib/lambda-event-handler/cron-epsilon-lambda-event-handler.spec.js.map +0 -1
  284. package/lib/lambda-event-handler/dynamo-epsilon-lambda-event-handler.js +0 -34
  285. package/lib/lambda-event-handler/dynamo-epsilon-lambda-event-handler.js.map +0 -1
  286. package/lib/lambda-event-handler/generic-sns-epsilon-lambda-event-handler.js +0 -30
  287. package/lib/lambda-event-handler/generic-sns-epsilon-lambda-event-handler.js.map +0 -1
  288. package/lib/lambda-event-handler/inter-api-epsilon-lambda-event-handler.js +0 -24
  289. package/lib/lambda-event-handler/inter-api-epsilon-lambda-event-handler.js.map +0 -1
  290. package/lib/lambda-event-handler/s3-epsilon-lambda-event-handler.js +0 -42
  291. package/lib/lambda-event-handler/s3-epsilon-lambda-event-handler.js.map +0 -1
  292. package/lib/local-container-server.js +0 -77
  293. package/lib/local-container-server.js.map +0 -1
  294. package/lib/local-server-cert.js +0 -69
  295. package/lib/local-server-cert.js.map +0 -1
  296. package/lib/local-server.js +0 -163
  297. package/lib/local-server.js.map +0 -1
  298. package/lib/open-api-util/open-api-doc-modifications.js +0 -2
  299. package/lib/open-api-util/open-api-doc-modifications.js.map +0 -1
  300. package/lib/open-api-util/open-api-doc-modifier.js +0 -80
  301. package/lib/open-api-util/open-api-doc-modifier.js.map +0 -1
  302. package/lib/open-api-util/open-api-doc-modifier.spec.js +0 -17
  303. package/lib/open-api-util/open-api-doc-modifier.spec.js.map +0 -1
  304. package/lib/open-api-util/yaml-combiner.js +0 -28
  305. package/lib/open-api-util/yaml-combiner.js.map +0 -1
  306. package/lib/open-api-util/yaml-combiner.spec.js +0 -23
  307. package/lib/open-api-util/yaml-combiner.spec.js.map +0 -1
  308. package/lib/sample/sample-server-components.js +0 -186
  309. package/lib/sample/sample-server-components.js.map +0 -1
  310. package/lib/sample/sample-server-static-files.js +0 -595
  311. package/lib/sample/sample-server-static-files.js.map +0 -1
  312. package/lib/sample/test-error-server.js +0 -45
  313. package/lib/sample/test-error-server.js.map +0 -1
  314. package/lib/util/aws-util.js +0 -66
  315. package/lib/util/aws-util.js.map +0 -1
  316. package/lib/util/context-util.js +0 -103
  317. package/lib/util/context-util.js.map +0 -1
  318. package/lib/util/cron-util.js +0 -69
  319. package/lib/util/cron-util.js.map +0 -1
  320. package/lib/util/cron-util.spec.js +0 -125
  321. package/lib/util/cron-util.spec.js.map +0 -1
  322. package/lib/util/epsilon-config-parser.js +0 -66
  323. package/lib/util/epsilon-config-parser.js.map +0 -1
@@ -1,234 +0,0 @@
1
- import { MisconfiguredError } from '../error/misconfigured-error.js';
2
- import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
3
- import { BooleanRatchet } from '@bitblit/ratchet-common/lib/lang/boolean-ratchet.js';
4
- import { NullReturnedObjectHandling } from '../../config/http/null-returned-object-handling.js';
5
- import { BuiltInFilters } from '../../built-in/http/built-in-filters.js';
6
- import { BuiltInHandlers } from '../../built-in/http/built-in-handlers.js';
7
- import { BuiltInAuthFilters } from '../../built-in/http/built-in-auth-filters.js';
8
- import { LogLevelManipulationFilter } from '../../built-in/http/log-level-manipulation-filter.js';
9
- export class RouterUtil {
10
- constructor() { }
11
- static defaultAuthenticationHeaderParsingEpsilonPreFilters(webTokenManipulator) {
12
- return [
13
- (fCtx) => BuiltInAuthFilters.parseAuthorizationHeader(fCtx, webTokenManipulator),
14
- (fCtx) => BuiltInAuthFilters.applyOpenApiAuthorization(fCtx),
15
- ].concat(RouterUtil.defaultEpsilonPreFilters());
16
- }
17
- static defaultEpsilonPreFilters() {
18
- return [
19
- (fCtx) => BuiltInFilters.autoRespondToOptionsRequestWithCors(fCtx),
20
- (fCtx) => BuiltInFilters.ensureEventMaps(fCtx),
21
- (fCtx) => LogLevelManipulationFilter.setLogLevelForTransaction(fCtx),
22
- (fCtx) => BuiltInFilters.parseJsonBodyToObject(fCtx),
23
- (fCtx) => BuiltInFilters.fixStillEncodedQueryParams(fCtx),
24
- (fCtx) => BuiltInFilters.uriDecodeQueryParams(fCtx),
25
- (fCtx) => BuiltInFilters.disallowStringNullAsPathParameter(fCtx),
26
- (fCtx) => BuiltInFilters.disallowStringNullAsQueryStringParameter(fCtx),
27
- (fCtx) => BuiltInFilters.validateInboundBody(fCtx),
28
- (fCtx) => BuiltInFilters.validateInboundQueryParams(fCtx),
29
- (fCtx) => BuiltInFilters.validateInboundQueryParams(fCtx),
30
- ];
31
- }
32
- static defaultEpsilonPostFilters() {
33
- return [
34
- (fCtx) => BuiltInFilters.validateOutboundResponse(fCtx),
35
- (fCtx) => BuiltInFilters.addAWSRequestIdHeader(fCtx),
36
- (fCtx) => BuiltInFilters.addAllowReflectionCORSHeaders(fCtx),
37
- (fCtx) => BuiltInFilters.applyGzipIfPossible(fCtx),
38
- (fCtx) => BuiltInFilters.checkMaximumLambdaBodySize(fCtx),
39
- (fCtx) => LogLevelManipulationFilter.clearLogLevelForTransaction(fCtx),
40
- ];
41
- }
42
- static defaultEpsilonErrorFilters() {
43
- return [
44
- (fCtx) => BuiltInFilters.addAWSRequestIdHeader(fCtx),
45
- (fCtx) => BuiltInFilters.addAllowReflectionCORSHeaders(fCtx),
46
- (fCtx) => LogLevelManipulationFilter.clearLogLevelForTransaction(fCtx),
47
- ];
48
- }
49
- static defaultHttpMetaProcessingConfigWithAuthenticationHeaderParsing(webTokenManipulator) {
50
- const defaults = {
51
- configName: 'EpsilonDefaultHttpMetaProcessingConfig',
52
- timeoutMS: 30_000,
53
- overrideAuthorizerName: null,
54
- preFilters: RouterUtil.defaultAuthenticationHeaderParsingEpsilonPreFilters(webTokenManipulator),
55
- postFilters: RouterUtil.defaultEpsilonPostFilters(),
56
- errorFilters: RouterUtil.defaultEpsilonErrorFilters(),
57
- nullReturnedObjectHandling: NullReturnedObjectHandling.Return404NotFoundResponse,
58
- };
59
- return defaults;
60
- }
61
- static defaultHttpMetaProcessingConfig() {
62
- const defaults = {
63
- configName: 'EpsilonDefaultHttpMetaProcessingConfig',
64
- timeoutMS: 30_000,
65
- overrideAuthorizerName: null,
66
- preFilters: RouterUtil.defaultEpsilonPreFilters(),
67
- postFilters: RouterUtil.defaultEpsilonPostFilters(),
68
- errorFilters: RouterUtil.defaultEpsilonErrorFilters(),
69
- nullReturnedObjectHandling: NullReturnedObjectHandling.Return404NotFoundResponse,
70
- };
71
- return defaults;
72
- }
73
- static assignDefaultsOnHttpConfig(cfg) {
74
- const defaults = {
75
- handlers: new Map(),
76
- authorizers: new Map(),
77
- defaultMetaHandling: this.defaultHttpMetaProcessingConfig(),
78
- staticContentRoutes: {},
79
- prefixesToStripBeforeRouteMatch: [],
80
- filterHandledRouteMatches: ['options .*'],
81
- };
82
- const rval = Object.assign({}, defaults, cfg || {});
83
- return rval;
84
- }
85
- static findApplicableMeta(httpConfig, method, path) {
86
- let rval = null;
87
- if (httpConfig?.overrideMetaHandling) {
88
- for (let i = 0; i < httpConfig.overrideMetaHandling.length && !rval; i++) {
89
- const test = httpConfig.overrideMetaHandling[i];
90
- if (!test.methods ||
91
- test.methods.length === 0 ||
92
- test.methods.map((s) => s.toLocaleLowerCase()).includes(method.toLocaleLowerCase())) {
93
- const matches = !!path.match(test.pathRegex);
94
- if ((matches && !test.invertPathMatching) || (!matches && test.invertPathMatching)) {
95
- rval = test.config;
96
- }
97
- }
98
- }
99
- }
100
- if (!rval) {
101
- rval = httpConfig.defaultMetaHandling || RouterUtil.defaultHttpMetaProcessingConfig();
102
- }
103
- return rval;
104
- }
105
- static openApiYamlToRouterConfig(httpConfig, openApiDoc, modelValidator, backgroundHttpAdapterHandler) {
106
- if (!openApiDoc || !httpConfig) {
107
- throw new MisconfiguredError('Cannot configure, missing either yaml or cfg');
108
- }
109
- const rval = {
110
- routes: [],
111
- openApiModelValidator: modelValidator,
112
- config: RouterUtil.assignDefaultsOnHttpConfig(httpConfig),
113
- };
114
- if (openApiDoc?.components?.securitySchemes) {
115
- Object.keys(openApiDoc.components.securitySchemes).forEach((sk) => {
116
- if (!rval.config.authorizers || !rval.config.authorizers.get(sk)) {
117
- throw new MisconfiguredError().withFormattedErrorMessage('Doc requires authorizer %s but not found in map', sk);
118
- }
119
- });
120
- }
121
- const missingPaths = [];
122
- const filterHandledPathMatches = httpConfig.filterHandledRouteMatches || [];
123
- if (openApiDoc?.paths) {
124
- Object.keys(openApiDoc.paths).forEach((path) => {
125
- Object.keys(openApiDoc.paths[path]).forEach((method) => {
126
- const convertedPath = RouterUtil.openApiPathToRouteParserPath(path);
127
- const finder = method + ' ' + path;
128
- const applicableMeta = RouterUtil.findApplicableMeta(httpConfig, method, path);
129
- const entry = openApiDoc.paths[path][method];
130
- const isBackgroundEndpoint = path.startsWith(backgroundHttpAdapterHandler.httpSubmissionPath);
131
- const isBackgroundMetaEndpoint = path === backgroundHttpAdapterHandler.httpMetaEndpoint;
132
- const isBackgroundStatusEndpoint = path === backgroundHttpAdapterHandler.httpStatusPath;
133
- if (isBackgroundEndpoint) {
134
- rval.config.handlers.set(finder, (evt, ctx) => backgroundHttpAdapterHandler.handleBackgroundSubmission(evt, ctx));
135
- }
136
- if (isBackgroundMetaEndpoint) {
137
- rval.config.handlers.set(finder, (evt, ctx) => backgroundHttpAdapterHandler.handleBackgroundMetaRequest(evt, ctx));
138
- }
139
- if (isBackgroundStatusEndpoint) {
140
- rval.config.handlers.set(finder, (evt, ctx) => backgroundHttpAdapterHandler.handleBackgroundStatusRequest(evt, ctx));
141
- }
142
- if (!rval.config.handlers || !rval.config.handlers.get(finder)) {
143
- const match = filterHandledPathMatches.find((reg) => finder.match(reg));
144
- if (match) {
145
- Logger.debug('Adding filter-handled handler for %s', finder);
146
- rval.config.handlers.set(finder, (evt) => BuiltInHandlers.expectedHandledByFilter(evt));
147
- }
148
- else {
149
- missingPaths.push(finder);
150
- }
151
- }
152
- if (entry && entry['security'] && entry['security'].length > 1) {
153
- throw new MisconfiguredError('Epsilon does not currently support multiple security (path was ' + finder + ')');
154
- }
155
- const authorizerName = entry['security'] && entry['security'].length == 1 ? Object.keys(entry['security'][0])[0] : null;
156
- const newRoute = {
157
- path: convertedPath,
158
- method: method,
159
- function: rval.config.handlers.get(finder),
160
- authorizerName: applicableMeta.overrideAuthorizerName || authorizerName,
161
- metaProcessingConfig: applicableMeta,
162
- validation: null,
163
- outboundValidation: null,
164
- };
165
- if (entry['requestBody'] &&
166
- entry['requestBody']['content'] &&
167
- entry['requestBody']['content']['application/json'] &&
168
- entry['requestBody']['content']['application/json']['schema']) {
169
- const schema = entry['requestBody']['content'];
170
- Logger.silly('Applying schema %j to %s', schema, finder);
171
- const modelName = this.findAndValidateModelName(method, path, schema, rval.config.overrideModelValidator || rval.openApiModelValidator);
172
- const required = BooleanRatchet.parseBool(entry['requestBody']['required']);
173
- const validation = {
174
- extraPropertiesAllowed: true,
175
- emptyAllowed: !required,
176
- modelName: modelName,
177
- };
178
- newRoute.validation = validation;
179
- }
180
- if (entry['responses'] &&
181
- entry['responses']['200'] &&
182
- entry['responses']['200']['content'] &&
183
- entry['responses']['200']['content']['application/json'] &&
184
- entry['responses']['200']['content']['application/json']['schema']) {
185
- const schema = entry['responses']['200']['content'];
186
- Logger.silly('Applying schema %j to %s', schema, finder);
187
- const modelName = this.findAndValidateModelName(method, path, schema, rval.config.overrideModelValidator || rval.openApiModelValidator);
188
- const validation = {
189
- extraPropertiesAllowed: false,
190
- emptyAllowed: false,
191
- modelName: modelName,
192
- };
193
- newRoute.outboundValidation = validation;
194
- }
195
- rval.routes.push(newRoute);
196
- });
197
- });
198
- }
199
- if (missingPaths.length > 0) {
200
- throw new MisconfiguredError().withFormattedErrorMessage('Missing expected handlers : %j', missingPaths);
201
- }
202
- return rval;
203
- }
204
- static findAndValidateModelName(method, path, schema, modelValidator) {
205
- let rval = undefined;
206
- const schemaPath = schema['application/json']['schema']['$ref'];
207
- const inlinePath = schema['application/json']['schema']['type'];
208
- if (schemaPath) {
209
- rval = schemaPath.substring(schemaPath.lastIndexOf('/') + 1);
210
- if (!modelValidator.fetchModel(rval)) {
211
- throw new MisconfiguredError(`Path ${method} ${path} refers to schema ${rval} but its not in the schema section`);
212
- }
213
- }
214
- else if (inlinePath) {
215
- rval = `${method}-${path}-requestBodyModel`;
216
- const model = schema['application/json']['schema'];
217
- modelValidator.addModel(rval, model);
218
- }
219
- return rval;
220
- }
221
- static openApiPathToRouteParserPath(input) {
222
- let rval = input;
223
- if (rval) {
224
- let sIdx = rval.indexOf('{');
225
- while (sIdx > -1) {
226
- const eIdx = rval.indexOf('}');
227
- rval = rval.substring(0, sIdx) + ':' + rval.substring(sIdx + 1, eIdx) + rval.substring(eIdx + 1);
228
- sIdx = rval.indexOf('{');
229
- }
230
- }
231
- return rval;
232
- }
233
- }
234
- //# sourceMappingURL=router-util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router-util.js","sourceRoot":"","sources":["../../../src/http/route/router-util.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { RouterUtil } from './router-util.js';
2
- import { SampleServerComponents } from '../../sample/sample-server-components.js';
3
- describe('#routerUtilApplyOpenApiDoc', function () {
4
- it('should create a router config from a yaml file', async () => {
5
- const inst = await SampleServerComponents.createSampleEpsilonGlobalHandler('routerUtilApplyOpenApiDoc-jest');
6
- expect(inst.epsilon.modelValidator).toBeTruthy();
7
- expect(inst.epsilon.modelValidator.fetchModel('AccessTokenRequest')).toBeTruthy();
8
- const evt = {
9
- httpMethod: 'get',
10
- path: '/v0/meta/server',
11
- requestContext: {
12
- stage: 'v0',
13
- },
14
- };
15
- const find = await inst.epsilon.webHandler.findBestMatchingRoute(evt);
16
- expect(find).toBeTruthy();
17
- });
18
- it('should reformat a path to match the other library', function () {
19
- const inString = '/meta/item/{itemId}';
20
- const outString = RouterUtil.openApiPathToRouteParserPath(inString);
21
- expect(outString).toEqual('/meta/item/:itemId');
22
- });
23
- });
24
- //# sourceMappingURL=router-util.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router-util.spec.js","sourceRoot":"","sources":["../../../src/http/route/router-util.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAElF,QAAQ,CAAC,4BAA4B,EAAE;IACrC,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,IAAI,GAAyB,MAAM,sBAAsB,CAAC,gCAAgC,CAAC,gCAAgC,CAAC,CAAC;QAEnI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAGlF,MAAM,GAAG,GAAoB;YAC3B,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,iBAAiB;YACvB,cAAc,EAAE;gBACd,KAAK,EAAE,IAAI;aACZ;SACiB,CAAC;QAErB,MAAM,IAAI,GAAkB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE;QACtD,MAAM,QAAQ,GAAW,qBAAqB,CAAC;QAC/C,MAAM,SAAS,GAAW,UAAU,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QAC5E,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,119 +0,0 @@
1
- import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
2
- import Route from 'route-parser';
3
- import { ResponseUtil } from './response-util.js';
4
- import { RequireRatchet } from '@bitblit/ratchet-common/lib/lang/require-ratchet.js';
5
- import { EpsilonHttpError } from './error/epsilon-http-error.js';
6
- import { BuiltInFilters } from '../built-in/http/built-in-filters.js';
7
- import { RunHandlerAsFilter } from '../built-in/http/run-handler-as-filter.js';
8
- import { ContextUtil } from '../util/context-util.js';
9
- import { StringRatchet } from '@bitblit/ratchet-common/lib/lang/string-ratchet.js';
10
- import { LambdaEventDetector } from '@bitblit/ratchet-aws';
11
- class WebHandler {
12
- routerConfig;
13
- static MAXIMUM_LAMBDA_BODY_SIZE_BYTES = 1024 * 1024 * 5 - 1024 * 100;
14
- constructor(routerConfig) {
15
- this.routerConfig = routerConfig;
16
- RequireRatchet.notNullOrUndefined(routerConfig);
17
- }
18
- get router() {
19
- return this.routerConfig;
20
- }
21
- extractLabel(evt, context) {
22
- return 'WEB:' + StringRatchet.trimToEmpty(evt.httpMethod).toUpperCase() + ':' + evt.path;
23
- }
24
- handlesEvent(evt) {
25
- return LambdaEventDetector.isValidApiGatewayEvent(evt);
26
- }
27
- async processEvent(event, context) {
28
- if (!this.routerConfig) {
29
- throw new Error('Router config not found');
30
- }
31
- const asExtended = Object.assign({}, { parsedBody: null, authorization: null, convertedFromV2Event: false }, event);
32
- const rval = await this.openApiLambdaHandler(asExtended, context);
33
- ContextUtil.addTraceToProxyResult(rval);
34
- Logger.updateTracePrefix(null);
35
- return rval;
36
- }
37
- async openApiLambdaHandler(evt, context) {
38
- const rm = this.findBestMatchingRoute(evt);
39
- const procConfig = rm?.mapping?.metaProcessingConfig
40
- ? rm.mapping.metaProcessingConfig
41
- : this.routerConfig.config.defaultMetaHandling;
42
- const fCtx = {
43
- event: evt,
44
- context: context,
45
- result: null,
46
- rawResult: null,
47
- routeAndParse: rm,
48
- modelValidator: this.routerConfig.config.overrideModelValidator || this.routerConfig.openApiModelValidator,
49
- authenticators: this.routerConfig.config.authorizers,
50
- };
51
- try {
52
- let filterChain = Object.assign([], procConfig.preFilters || []);
53
- RunHandlerAsFilter.addRunHandlerAsFilterToList(filterChain, rm);
54
- filterChain = filterChain.concat(procConfig.postFilters || []);
55
- await BuiltInFilters.combineFilters(fCtx, filterChain);
56
- }
57
- catch (err) {
58
- const wrapper = EpsilonHttpError.wrapError(err);
59
- fCtx.result = ResponseUtil.errorResponse(wrapper);
60
- try {
61
- await BuiltInFilters.combineFilters(fCtx, procConfig.errorFilters);
62
- }
63
- catch (convErr) {
64
- Logger.error('REALLY BAD - FAILED WHILE PROCESSING ERROR FILTERS : %s', convErr);
65
- }
66
- }
67
- return fCtx.result;
68
- }
69
- findBestMatchingRoute(event) {
70
- let rval = null;
71
- const cleanPath = this.cleanPath(event);
72
- const methodLower = event.httpMethod.toLowerCase();
73
- const matchRoutes = this.routerConfig.routes
74
- .map((r) => {
75
- let rval = null;
76
- if (r.method && r.method.toLowerCase() === methodLower) {
77
- const routeParser = new Route(r.path);
78
- const parsed = routeParser.match(cleanPath);
79
- if (parsed !== false) {
80
- rval = {
81
- mapping: r,
82
- route: routeParser,
83
- parsed: parsed,
84
- };
85
- }
86
- }
87
- return rval;
88
- })
89
- .filter((r) => r != null);
90
- matchRoutes.sort((a, b) => {
91
- return Object.keys(a.parsed).length - Object.keys(b.parsed).length;
92
- });
93
- rval = matchRoutes && matchRoutes.length > 0 ? matchRoutes[0] : null;
94
- if (!rval) {
95
- Logger.debug('Failed to find handler for %s (cleaned path was %s, strip prefixes were %j)', event.path, cleanPath, this.routerConfig.config.prefixesToStripBeforeRouteMatch);
96
- }
97
- return rval;
98
- }
99
- cleanPath(event) {
100
- let rval = event.path;
101
- while (rval.startsWith('/')) {
102
- rval = rval.substring(1);
103
- }
104
- if (this.routerConfig.config.prefixesToStripBeforeRouteMatch) {
105
- this.routerConfig.config.prefixesToStripBeforeRouteMatch.forEach((prefix) => {
106
- if (rval.toLowerCase().startsWith(prefix.toLowerCase() + '/')) {
107
- rval = rval.substring(prefix.length);
108
- }
109
- });
110
- }
111
- while (rval.startsWith('/')) {
112
- rval = rval.substring(1);
113
- }
114
- rval = '/' + rval;
115
- return rval;
116
- }
117
- }
118
- export { WebHandler };
119
- //# sourceMappingURL=web-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-handler.js","sourceRoot":"","sources":["../../src/http/web-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AACtE,OAAO,KAAK,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAa,UAAU;IAGD;IAFb,MAAM,CAAU,8BAA8B,GAAW,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;IAE7F,YAAoB,YAA2B;QAA3B,iBAAY,GAAZ,YAAY,CAAe;QAC7C,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,YAAY,CAAC,GAAoB,EAAE,OAAgB;QACxD,OAAO,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;IAC3F,CAAC;IAEM,YAAY,CAAC,GAAQ;QAC1B,OAAO,mBAAmB,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAsB,EAAE,OAAgB;QAChE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;QACD,MAAM,UAAU,GAA4B,MAAM,CAAC,MAAM,CACvD,EAAE,EACF,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,EACtE,KAAK,CACN,CAAC;QACF,MAAM,IAAI,GAAgB,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/E,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,GAA4B,EAAE,OAAgB;QAC9E,MAAM,EAAE,GAAkB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAyB,EAAE,EAAE,OAAO,EAAE,oBAAoB;YACxE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,oBAAoB;YACjC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,mBAAmB,CAAC;QACjD,MAAM,IAAI,GAAuB;YAC/B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,EAAE;YACjB,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,YAAY,CAAC,qBAAqB;YAC1G,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW;SACrD,CAAC;QAEF,IAAI;YACF,IAAI,WAAW,GAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YACnF,kBAAkB,CAAC,2BAA2B,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAChE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SACxD;QAAC,OAAO,GAAG,EAAE;YAEZ,MAAM,OAAO,GAAqB,gBAAgB,CAAC,SAAS,CAAC,GAAY,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI;gBACF,MAAM,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;aACpE;YAAC,OAAO,OAAO,EAAE;gBAChB,MAAM,CAAC,KAAK,CAAC,yDAAyD,EAAE,OAAO,CAAC,CAAC;aAClF;SACF;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,qBAAqB,CAAC,KAAsB;QACjD,IAAI,IAAI,GAAkB,IAAI,CAAC;QAE/B,MAAM,SAAS,GAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAGhD,MAAM,WAAW,GAAW,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAoB,IAAI,CAAC,YAAY,CAAC,MAAM;aAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IAAI,IAAI,GAAkB,IAAI,CAAC;YAC/B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE;gBACtD,MAAM,WAAW,GAAU,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAQ,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACjD,IAAI,MAAM,KAAK,KAAK,EAAE;oBACpB,IAAI,GAAG;wBACL,OAAO,EAAE,CAAC;wBACV,KAAK,EAAE,WAAW;wBAClB,MAAM,EAAE,MAAM;qBACf,CAAC;iBACH;aACF;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAE5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAErE,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,CAAC,KAAK,CACV,6EAA6E,EAC7E,KAAK,CAAC,IAAI,EACV,SAAS,EACT,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,+BAA+B,CACzD,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,SAAS,CAAC,KAAsB;QACtC,IAAI,IAAI,GAAW,KAAK,CAAC,IAAI,CAAC;QAE9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC3B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC1B;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,+BAA+B,EAAE;YAC5D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1E,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,EAAE;oBAC7D,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;iBACtC;YACH,CAAC,CAAC,CAAC;SACJ;QAGD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC3B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC1B;QAED,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;QAElB,OAAO,IAAI,CAAC;IACd,CAAC;;SApIU,UAAU"}
@@ -1,33 +0,0 @@
1
- import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
2
- import { SampleServerComponents } from '../sample/sample-server-components.js';
3
- import { LoggerLevelName } from '@bitblit/ratchet-common/lib/logger/logger-level-name.js';
4
- describe('#errorToProxyResult', function () {
5
- it('should gzip responses correctly', async () => {
6
- const inst = await SampleServerComponents.createSampleEpsilonGlobalHandler('jest-gzip');
7
- expect(inst.epsilon.modelValidator).toBeTruthy();
8
- const evt = {
9
- httpMethod: 'get',
10
- multiValueHeaders: {},
11
- multiValueQueryStringParameters: {},
12
- path: '/meta/server',
13
- pathParameters: null,
14
- queryStringParameters: null,
15
- stageVariables: null,
16
- requestContext: {},
17
- resource: '/meta/server',
18
- headers: {
19
- 'content-type': 'application/json; charset=UTF-8',
20
- 'accept-encoding': 'gzip, deflate, br',
21
- },
22
- isBase64Encoded: true,
23
- body: null,
24
- };
25
- Logger.setLevel(LoggerLevelName.silly);
26
- const result = await inst.epsilon.webHandler.processEvent(evt, {});
27
- expect(result).toBeTruthy();
28
- expect(result.isBase64Encoded).toEqual(true);
29
- expect(result.headers).toBeTruthy();
30
- expect(result.headers['Content-Encoding']).toEqual('gzip');
31
- });
32
- });
33
- //# sourceMappingURL=web-handler.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-handler.spec.js","sourceRoot":"","sources":["../../src/http/web-handler.spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,yDAAyD,CAAC;AAE1F,QAAQ,CAAC,qBAAqB,EAAE;IA4D9B,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,IAAI,GAAyB,MAAM,sBAAsB,CAAC,gCAAgC,CAAC,WAAW,CAAC,CAAC;QAE9G,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE,CAAC;QAEjD,MAAM,GAAG,GAAoB;YAC3B,UAAU,EAAE,KAAK;YACjB,iBAAiB,EAAE,EAAE;YACrB,+BAA+B,EAAE,EAAE;YACnC,IAAI,EAAE,cAAc;YACpB,cAAc,EAAE,IAAI;YACpB,qBAAqB,EAAE,IAAI;YAC3B,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,EAAmC;YACnD,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE;gBACP,cAAc,EAAE,iCAAiC;gBACjD,iBAAiB,EAAE,mBAAmB;aACvC;YACD,eAAe,EAAE,IAAI;YACrB,IAAI,EAAE,IAAI;SACQ,CAAC;QAErB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,MAAM,GAAgB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE,EAAa,CAAC,CAAC;QAE3F,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,23 +0,0 @@
1
- import { AwsUtil } from '../util/aws-util.js';
2
- import { LambdaEventDetector } from '@bitblit/ratchet-aws';
3
- export class WebV2Handler {
4
- webHandler;
5
- constructor(webHandler) {
6
- this.webHandler = webHandler;
7
- }
8
- extractLabel(evt, context) {
9
- let rval = this.webHandler.extractLabel(AwsUtil.apiGatewayV2ToApiGatewayV1(evt), context);
10
- rval = rval.replace('WEB:', 'WEB2:');
11
- return rval;
12
- }
13
- handlesEvent(evt) {
14
- return LambdaEventDetector.isValidApiGatewayV2WithRequestContextEvent(evt);
15
- }
16
- async processEvent(evt, context) {
17
- const conv = AwsUtil.apiGatewayV2ToApiGatewayV1(evt);
18
- const asExtended = Object.assign({}, { parsedBody: null, authorization: null, convertedFromV2Event: true }, conv);
19
- const rval = await this.webHandler.openApiLambdaHandler(asExtended, context);
20
- return rval;
21
- }
22
- }
23
- //# sourceMappingURL=web-v2-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-v2-handler.js","sourceRoot":"","sources":["../../src/http/web-v2-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAM3D,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEvC,YAAY,CAAC,GAA2B,EAAE,OAAgB;QAC/D,IAAI,IAAI,GAAW,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAClG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,YAAY,CAAC,GAAQ;QAC1B,OAAO,mBAAmB,CAAC,0CAA0C,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,GAA2B,EAAE,OAAgB;QACrE,MAAM,IAAI,GAAoB,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;QACtE,MAAM,UAAU,GAA4B,MAAM,CAAC,MAAM,CACvD,EAAE,EACF,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EACrE,IAAI,CACL,CAAC;QACF,MAAM,IAAI,GAAgB,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
package/lib/index.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=inter-api-entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inter-api-entry.js","sourceRoot":"","sources":["../../src/inter-api/inter-api-entry.ts"],"names":[],"mappings":""}
@@ -1,60 +0,0 @@
1
- import { LambdaEventDetector } from '@bitblit/ratchet-aws';
2
- import { EpsilonConstants } from '../epsilon-constants.js';
3
- import { RequireRatchet } from '@bitblit/ratchet-common/lib/lang/require-ratchet.js';
4
- import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
5
- import { StringRatchet } from '@bitblit/ratchet-common/lib/lang/string-ratchet.js';
6
- import { ContextUtil } from '../util/context-util.js';
7
- export class InterApiUtil {
8
- static isInterApiSnsEvent(event) {
9
- return !!InterApiUtil.extractEntryFromEvent(event);
10
- }
11
- static extractEntryFromEvent(evt) {
12
- let rval = null;
13
- if (!!evt) {
14
- if (LambdaEventDetector.isSingleSnsEvent(evt)) {
15
- const cast = evt;
16
- const msg = cast.Records[0].Sns.Message;
17
- if (!!StringRatchet.trimToNull(msg)) {
18
- const parsed = JSON.parse(msg);
19
- if (!!parsed && parsed['type'] === EpsilonConstants.INTER_API_SNS_EVENT) {
20
- rval = parsed['interApiEvent'];
21
- }
22
- }
23
- }
24
- }
25
- return rval;
26
- }
27
- static async processInterApiEvent(evt, cfg, mgr) {
28
- let rval = [];
29
- RequireRatchet.notNullOrUndefined(evt, 'InterApiEntry');
30
- RequireRatchet.notNullOrUndefined(mgr, 'BackgroundManager');
31
- const interApiEntry = InterApiUtil.extractEntryFromEvent(evt);
32
- ContextUtil.setOverrideTraceFromInterApiEntry(interApiEntry);
33
- Logger.info('Processing inter-api event : %j', evt);
34
- const backgroundEntries = [];
35
- cfg.processMappings.forEach((map) => {
36
- if (!map.disabled && interApiEntry.source.match(map.sourceRegex) && interApiEntry.type.match(map.typeRegex)) {
37
- map.backgroundProcessTypes.forEach((taskName) => {
38
- const entry = mgr.createEntry(taskName, interApiEntry.data);
39
- backgroundEntries.push(entry);
40
- });
41
- }
42
- });
43
- if (backgroundEntries.length > 0) {
44
- Logger.info('Adding %d entries to queue', backgroundEntries.length);
45
- rval = await mgr.addEntriesToQueue(backgroundEntries, true);
46
- }
47
- else {
48
- Logger.info('No entries mapped for this event');
49
- }
50
- return rval;
51
- }
52
- static addTraceToInterApiEntry(ent) {
53
- if (ent) {
54
- ent.traceId = ent.traceId || ContextUtil.currentTraceId();
55
- ent.traceDepth = ent.traceDepth || ContextUtil.currentTraceDepth() + 1;
56
- }
57
- return ent;
58
- }
59
- }
60
- //# sourceMappingURL=inter-api-util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inter-api-util.js","sourceRoot":"","sources":["../../src/inter-api/inter-api-util.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- import { InterApiUtil } from './inter-api-util.js';
2
- import { JestRatchet } from '@bitblit/ratchet-jest/lib/jest/jest-ratchet.js';
3
- import { jest } from '@jest/globals';
4
- describe('#interApiUtil', function () {
5
- let mockSns;
6
- let mockSqs;
7
- let mockBgMgr;
8
- const evt = {
9
- Records: [
10
- {
11
- EventSource: 'aws:sns',
12
- EventVersion: '1.0',
13
- EventSubscriptionArn: 'arn:aws:sns:us-east-1:012345678901:GenericApiEventTopicDev:6efec6a5-1f02-4fc5-b0f7-fa7c013cf8bb',
14
- Sns: {
15
- Type: 'Notification',
16
- MessageId: '205de1e8-7ba6-52f5-b706-b815f442c512',
17
- TopicArn: 'arn:aws:sns:us-east-1:012345678901:GenericApiEventTopicDev',
18
- Subject: null,
19
- Message: '{"type":"EPSILON_INTER_API_EVENT","interApiEvent":{"source":"OriginalApi","type":"Sample","data":{"notes":"SOURCE API: OriginalApi","timestampEpochMS":1636011428200}}}',
20
- Timestamp: '2021-11-04T07:37:08.241Z',
21
- SignatureVersion: '1',
22
- Signature: 'LyS2ybM/Epsq5sFqPJd==',
23
- SigningCertUrl: 'https://sns.us-east-1.amazonaws.com/SimpleNotificationService-7ff5318490ec183fbaddaa2a969abfda.pem',
24
- UnsubscribeUrl: 'https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:012345678901:GenericApiEventTopicDev:6efec6a5-1f02-4fc5-b0f7-fa7c013cf8bb',
25
- MessageAttributes: {},
26
- },
27
- },
28
- ],
29
- };
30
- beforeEach(() => {
31
- mockSns = JestRatchet.mock(jest.fn);
32
- mockSqs = JestRatchet.mock(jest.fn);
33
- mockBgMgr = JestRatchet.mock(jest.fn);
34
- });
35
- it('should translate processes', async () => {
36
- mockBgMgr.createEntry.mockResolvedValue({ t: 1 });
37
- mockBgMgr.addEntriesToQueue.mockResolvedValue(['a]']);
38
- const cfg = {
39
- aws: {
40
- source: 'test',
41
- snsArn: 'test',
42
- localMode: true,
43
- },
44
- processMappings: [
45
- {
46
- typeRegex: '.*',
47
- sourceRegex: '.*',
48
- disabled: false,
49
- backgroundProcessTypes: ['TESTBG'],
50
- },
51
- ],
52
- };
53
- const output = await InterApiUtil.processInterApiEvent(evt, cfg, mockBgMgr);
54
- expect(output).not.toBeNull();
55
- expect(output.length).toEqual(1);
56
- });
57
- it('should verify that an event is an inter-api even', async () => {
58
- const res = InterApiUtil.isInterApiSnsEvent(evt);
59
- expect(res).toBeTruthy();
60
- }, 500);
61
- });
62
- //# sourceMappingURL=inter-api-util.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inter-api-util.spec.js","sourceRoot":"","sources":["../../src/inter-api/inter-api-util.spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,gDAAgD,CAAC;AAI7E,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,QAAQ,CAAC,eAAe,EAAE;IACxB,IAAI,OAAO,CAAC;IACZ,IAAI,OAAO,CAAC;IACZ,IAAI,SAAS,CAAC;IAEd,MAAM,GAAG,GAAa;QACpB,OAAO,EAAE;YACP;gBACE,WAAW,EAAE,SAAS;gBACtB,YAAY,EAAE,KAAK;gBACnB,oBAAoB,EAAE,iGAAiG;gBACvH,GAAG,EAAE;oBACH,IAAI,EAAE,cAAc;oBACpB,SAAS,EAAE,sCAAsC;oBACjD,QAAQ,EAAE,4DAA4D;oBACtE,OAAO,EAAE,IAAI;oBACb,OAAO,EACL,yKAAyK;oBAC3K,SAAS,EAAE,0BAA0B;oBACrC,gBAAgB,EAAE,GAAG;oBACrB,SAAS,EAAE,uBAAuB;oBAClC,cAAc,EAAE,oGAAoG;oBACpH,cAAc,EACZ,yKAAyK;oBAC3K,iBAAiB,EAAE,EAAE;iBACtB;aACF;SACF;KACF,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,WAAW,CAAC,IAAI,CAAY,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,GAAG,WAAW,CAAC,IAAI,CAAY,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,SAAS,GAAG,WAAW,CAAC,IAAI,CAAwB,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClD,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtD,MAAM,GAAG,GAAmB;YAC1B,GAAG,EAAE;gBACH,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,IAAI;aAChB;YACD,eAAe,EAAE;gBACf;oBACE,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE,IAAI;oBACjB,QAAQ,EAAE,KAAK;oBACf,sBAAsB,EAAE,CAAC,QAAQ,CAAC;iBACnC;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAa,MAAM,YAAY,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAEtF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,GAAG,GAAY,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;AACV,CAAC,CAAC,CAAC"}