@digitraffic/common 2024.1.10-1 → 2024.1.23-1

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 (292) hide show
  1. package/dist/aws/infra/api/{handler-factory.d.ts → handler-factory.d.mts} +2 -2
  2. package/dist/aws/infra/api/{handler-factory.js → handler-factory.mjs} +5 -10
  3. package/dist/aws/infra/api/{integration.d.ts → integration.d.mts} +1 -1
  4. package/dist/aws/infra/api/{integration.js → integration.mjs} +10 -14
  5. package/dist/aws/infra/api/{response.d.ts → response.d.mts} +2 -3
  6. package/dist/aws/infra/api/{response.js → response.mjs} +26 -31
  7. package/dist/aws/infra/api/{responses.d.ts → responses.d.mts} +2 -3
  8. package/dist/aws/infra/api/responses.mjs +78 -0
  9. package/dist/aws/infra/api/{static-integration.d.ts → static-integration.d.mts} +1 -1
  10. package/dist/aws/infra/api/{static-integration.js → static-integration.mjs} +8 -12
  11. package/dist/aws/infra/canaries/{canary-alarm.d.ts → canary-alarm.d.mts} +1 -1
  12. package/dist/aws/infra/canaries/canary-alarm.mjs +20 -0
  13. package/dist/aws/infra/canaries/canary-keys.mjs +4 -0
  14. package/dist/aws/infra/canaries/canary-parameters.mjs +2 -0
  15. package/dist/aws/infra/canaries/{canary-role.js → canary-role.mjs} +9 -13
  16. package/dist/aws/infra/canaries/{canary.d.ts → canary.d.mts} +2 -2
  17. package/dist/aws/infra/canaries/canary.mjs +26 -0
  18. package/dist/aws/infra/canaries/{database-canary.d.ts → database-canary.d.mts} +3 -3
  19. package/dist/aws/infra/canaries/{database-canary.js → database-canary.mjs} +9 -13
  20. package/dist/aws/infra/canaries/{database-checker.d.ts → database-checker.d.mts} +1 -1
  21. package/dist/aws/infra/canaries/{database-checker.js → database-checker.mjs} +12 -18
  22. package/dist/aws/infra/canaries/{url-canary.d.ts → url-canary.d.mts} +4 -4
  23. package/dist/aws/infra/canaries/{url-canary.js → url-canary.mjs} +9 -13
  24. package/dist/aws/infra/canaries/{url-checker.d.ts → url-checker.d.mts} +2 -2
  25. package/dist/aws/infra/canaries/{url-checker.js → url-checker.mjs} +35 -42
  26. package/dist/aws/infra/{documentation.js → documentation.mjs} +9 -17
  27. package/dist/aws/infra/{import-util.js → import-util.mjs} +11 -19
  28. package/dist/aws/infra/scheduler.mjs +27 -0
  29. package/dist/aws/infra/{security-rule.js → security-rule.mjs} +5 -9
  30. package/dist/aws/infra/{sqs-integration.d.ts → sqs-integration.d.mts} +1 -2
  31. package/dist/aws/infra/{sqs-integration.js → sqs-integration.mjs} +12 -16
  32. package/dist/aws/infra/{sqs-queue.d.ts → sqs-queue.d.mts} +1 -1
  33. package/dist/aws/infra/{sqs-queue.js → sqs-queue.mjs} +33 -41
  34. package/dist/aws/infra/stack/{lambda-configs.d.ts → lambda-configs.d.mts} +2 -2
  35. package/dist/aws/infra/stack/{lambda-configs.js → lambda-configs.mjs} +15 -21
  36. package/dist/aws/infra/stack/{monitoredfunction.d.ts → monitoredfunction.d.mts} +3 -3
  37. package/dist/aws/infra/stack/{monitoredfunction.js → monitoredfunction.mjs} +20 -28
  38. package/dist/aws/infra/stack/{parameters.d.ts → parameters.d.mts} +1 -1
  39. package/dist/aws/infra/stack/{parameters.js → parameters.mjs} +6 -11
  40. package/dist/aws/infra/stack/{rest_apis.d.ts → rest_apis.d.mts} +3 -3
  41. package/dist/aws/infra/stack/{rest_apis.js → rest_apis.mjs} +42 -55
  42. package/dist/aws/infra/stack/{stack-checking-aspect.d.ts → stack-checking-aspect.d.mts} +1 -1
  43. package/dist/aws/infra/stack/{stack-checking-aspect.js → stack-checking-aspect.mjs} +25 -32
  44. package/dist/aws/infra/stack/{stack.d.ts → stack.d.mts} +3 -4
  45. package/dist/aws/infra/stack/stack.mjs +63 -0
  46. package/dist/aws/infra/stack/{subscription.d.ts → subscription.d.mts} +2 -2
  47. package/dist/aws/infra/stack/{subscription.js → subscription.mjs} +6 -11
  48. package/dist/aws/infra/stacks/{db-dns-stack.d.ts → db-dns-stack.d.mts} +2 -2
  49. package/dist/aws/infra/stacks/db-dns-stack.mjs +60 -0
  50. package/dist/aws/infra/stacks/{db-proxy-stack.d.ts → db-proxy-stack.d.mts} +2 -2
  51. package/dist/aws/infra/stacks/db-proxy-stack.mjs +73 -0
  52. package/dist/aws/infra/stacks/{db-stack.d.ts → db-stack.d.mts} +3 -4
  53. package/dist/aws/infra/stacks/{db-stack.js → db-stack.mjs} +31 -35
  54. package/dist/aws/infra/stacks/intra-stack-configuration.mjs +2 -0
  55. package/dist/aws/infra/stacks/{network-stack.d.ts → network-stack.d.mts} +2 -2
  56. package/dist/aws/infra/stacks/network-stack.mjs +40 -0
  57. package/dist/aws/infra/{usage-plans.js → usage-plans.mjs} +3 -8
  58. package/dist/aws/runtime/apikey.mjs +9 -0
  59. package/dist/aws/runtime/{digitraffic-integration-response.d.ts → digitraffic-integration-response.d.mts} +1 -1
  60. package/dist/aws/runtime/digitraffic-integration-response.mjs +24 -0
  61. package/dist/aws/runtime/{dt-logger-default.d.ts → dt-logger-default.d.mts} +2 -2
  62. package/dist/aws/runtime/dt-logger-default.mjs +6 -0
  63. package/dist/aws/runtime/{dt-logger.d.ts → dt-logger.d.mts} +1 -1
  64. package/dist/aws/runtime/{dt-logger.js → dt-logger.mjs} +4 -11
  65. package/dist/aws/runtime/{environment.js → environment.mjs} +4 -8
  66. package/dist/aws/runtime/{messaging.js → messaging.mjs} +2 -6
  67. package/dist/aws/runtime/{s3.js → s3.mjs} +4 -8
  68. package/dist/aws/runtime/secrets/{dbsecret.d.ts → dbsecret.d.mts} +1 -1
  69. package/dist/aws/runtime/secrets/{dbsecret.js → dbsecret.mjs} +6 -10
  70. package/dist/aws/runtime/secrets/proxy-holder.mjs +24 -0
  71. package/dist/aws/runtime/secrets/rds-holder.mjs +24 -0
  72. package/dist/aws/runtime/secrets/{secret-holder.d.ts → secret-holder.d.mts} +1 -1
  73. package/dist/aws/runtime/secrets/{secret-holder.js → secret-holder.mjs} +14 -19
  74. package/dist/aws/runtime/secrets/{secret.js → secret.mjs} +8 -12
  75. package/dist/aws/types/errors.mjs +12 -0
  76. package/dist/aws/types/{lambda-response.js → lambda-response.mjs} +4 -11
  77. package/dist/aws/types/{mediatypes.js → mediatypes.mjs} +3 -6
  78. package/dist/aws/types/model-with-reference.mjs +2 -0
  79. package/dist/aws/types/proxytypes.mjs +2 -0
  80. package/dist/aws/types/tags.mjs +4 -0
  81. package/dist/database/{cached.d.ts → cached.d.mts} +1 -1
  82. package/dist/database/{cached.js → cached.mjs} +10 -15
  83. package/dist/database/{database.d.ts → database.d.mts} +1 -1
  84. package/dist/database/{database.js → database.mjs} +17 -24
  85. package/dist/database/{last-updated.d.ts → last-updated.d.mts} +1 -1
  86. package/dist/database/{last-updated.js → last-updated.mjs} +9 -18
  87. package/dist/database/models.mjs +2 -0
  88. package/dist/index.d.mts +1 -0
  89. package/dist/index.mjs +2 -0
  90. package/dist/marine/{id_utils.js → id_utils.mjs} +4 -10
  91. package/dist/marine/rtz.mjs +2 -0
  92. package/dist/test/{asserter.js → asserter.mjs} +2 -6
  93. package/dist/test/{db-testutils.d.ts → db-testutils.d.mts} +1 -1
  94. package/dist/test/db-testutils.mjs +29 -0
  95. package/dist/test/{httpserver.js → httpserver.mjs} +11 -15
  96. package/dist/test/secrets-manager.mjs +34 -0
  97. package/dist/test/testutils.mjs +33 -0
  98. package/dist/types/async-timeout-error.mjs +6 -0
  99. package/dist/types/aws-env.mjs +2 -0
  100. package/dist/types/either.mjs +2 -0
  101. package/dist/types/http-error.mjs +7 -0
  102. package/dist/types/input-error.mjs +3 -0
  103. package/dist/types/language.mjs +7 -0
  104. package/dist/types/{nullable.d.ts → nullable.d.mts} +1 -1
  105. package/dist/types/nullable.mjs +2 -0
  106. package/dist/types/{traffictype.js → traffictype.mjs} +3 -6
  107. package/dist/types/urn.mjs +2 -0
  108. package/dist/types/util-types.mjs +2 -0
  109. package/dist/types/validator.mjs +9 -0
  110. package/dist/utils/{api-model.d.ts → api-model.d.mts} +1 -1
  111. package/dist/utils/{api-model.js → api-model.mjs} +18 -28
  112. package/dist/utils/{base64.d.ts → base64.d.mts} +1 -1
  113. package/dist/utils/base64.mjs +16 -0
  114. package/dist/utils/date-utils.mjs +44 -0
  115. package/dist/utils/geojson-types.mjs +13 -0
  116. package/dist/utils/{geometry.js → geometry.mjs} +16 -49
  117. package/dist/utils/{logging.d.ts → logging.d.mts} +1 -1
  118. package/dist/utils/{logging.js → logging.mjs} +9 -14
  119. package/dist/utils/{retry.js → retry.mjs} +22 -27
  120. package/dist/utils/slack.mjs +23 -0
  121. package/dist/utils/{utils.d.ts → utils.d.mts} +2 -2
  122. package/dist/utils/{utils.js → utils.mjs} +15 -30
  123. package/package.json +99 -10
  124. package/src/aws/infra/api/{handler-factory.ts → handler-factory.mts} +3 -3
  125. package/src/aws/infra/api/{integration.ts → integration.mts} +2 -2
  126. package/src/aws/infra/api/{response.ts → response.mts} +3 -3
  127. package/src/aws/infra/api/{responses.ts → responses.mts} +4 -4
  128. package/src/aws/infra/api/{static-integration.ts → static-integration.mts} +2 -2
  129. package/src/aws/infra/canaries/Synthetics.d.mts +21 -0
  130. package/src/aws/infra/canaries/{canary-alarm.ts → canary-alarm.mts} +1 -1
  131. package/src/aws/infra/canaries/{canary.ts → canary.mts} +3 -3
  132. package/src/aws/infra/canaries/{database-canary.ts → database-canary.mts} +3 -3
  133. package/src/aws/infra/canaries/{database-checker.ts → database-checker.mts} +7 -10
  134. package/src/aws/infra/canaries/{url-canary.ts → url-canary.mts} +6 -6
  135. package/src/aws/infra/canaries/{url-checker.ts → url-checker.mts} +9 -29
  136. package/src/aws/infra/{sqs-integration.ts → sqs-integration.mts} +1 -1
  137. package/src/aws/infra/{sqs-queue.ts → sqs-queue.mts} +3 -6
  138. package/src/aws/infra/stack/{lambda-configs.ts → lambda-configs.mts} +2 -2
  139. package/src/aws/infra/stack/{monitoredfunction.ts → monitoredfunction.mts} +4 -4
  140. package/src/aws/infra/stack/{parameters.ts → parameters.mts} +1 -1
  141. package/src/aws/infra/stack/{rest_apis.ts → rest_apis.mts} +6 -6
  142. package/src/aws/infra/stack/{stack-checking-aspect.ts → stack-checking-aspect.mts} +1 -1
  143. package/src/aws/infra/stack/{stack.ts → stack.mts} +4 -5
  144. package/src/aws/infra/stack/{subscription.ts → subscription.mts} +2 -2
  145. package/src/aws/infra/stacks/{db-dns-stack.ts → db-dns-stack.mts} +4 -4
  146. package/src/aws/infra/stacks/{db-proxy-stack.ts → db-proxy-stack.mts} +5 -5
  147. package/src/aws/infra/stacks/{db-stack.ts → db-stack.mts} +5 -5
  148. package/src/aws/infra/stacks/{network-stack.ts → network-stack.mts} +3 -3
  149. package/src/aws/runtime/{digitraffic-integration-response.ts → digitraffic-integration-response.mts} +2 -2
  150. package/src/aws/runtime/{dt-logger-default.ts → dt-logger-default.mts} +2 -2
  151. package/src/aws/runtime/secrets/{dbsecret.ts → dbsecret.mts} +1 -1
  152. package/src/aws/runtime/secrets/node-ttl.d.mts +12 -0
  153. package/src/aws/runtime/secrets/{proxy-holder.ts → proxy-holder.mts} +4 -4
  154. package/src/aws/runtime/secrets/{rds-holder.ts → rds-holder.mts} +4 -4
  155. package/src/aws/runtime/secrets/{secret-holder.ts → secret-holder.mts} +8 -9
  156. package/src/aws/runtime/secrets/{secret.ts → secret.mts} +2 -2
  157. package/src/database/{cached.ts → cached.mts} +4 -2
  158. package/src/database/{database.ts → database.mts} +6 -6
  159. package/src/database/{last-updated.ts → last-updated.mts} +1 -1
  160. package/src/index.mts +2 -0
  161. package/src/test/{db-testutils.ts → db-testutils.mts} +2 -2
  162. package/src/test/{secrets-manager.ts → secrets-manager.mts} +3 -3
  163. package/src/types/{nullable.ts → nullable.mts} +1 -1
  164. package/src/utils/{api-model.ts → api-model.mts} +1 -1
  165. package/src/utils/{geometry.ts → geometry.mts} +5 -3
  166. package/src/utils/{logging.ts → logging.mts} +2 -2
  167. package/src/utils/{retry.ts → retry.mts} +3 -3
  168. package/src/utils/{slack.ts → slack.mts} +2 -2
  169. package/src/utils/{utils.ts → utils.mts} +3 -3
  170. package/dist/aws/infra/api/responses.js +0 -84
  171. package/dist/aws/infra/canaries/canary-alarm.js +0 -24
  172. package/dist/aws/infra/canaries/canary-keys.js +0 -7
  173. package/dist/aws/infra/canaries/canary-parameters.js +0 -3
  174. package/dist/aws/infra/canaries/canary.js +0 -30
  175. package/dist/aws/infra/scheduler.js +0 -31
  176. package/dist/aws/infra/stack/stack.js +0 -67
  177. package/dist/aws/infra/stacks/db-dns-stack.js +0 -64
  178. package/dist/aws/infra/stacks/db-proxy-stack.js +0 -77
  179. package/dist/aws/infra/stacks/intra-stack-configuration.js +0 -3
  180. package/dist/aws/infra/stacks/network-stack.js +0 -44
  181. package/dist/aws/runtime/apikey.js +0 -13
  182. package/dist/aws/runtime/digitraffic-integration-response.js +0 -28
  183. package/dist/aws/runtime/dt-logger-default.js +0 -9
  184. package/dist/aws/runtime/secrets/proxy-holder.js +0 -28
  185. package/dist/aws/runtime/secrets/rds-holder.js +0 -28
  186. package/dist/aws/types/errors.js +0 -16
  187. package/dist/aws/types/model-with-reference.js +0 -3
  188. package/dist/aws/types/proxytypes.js +0 -3
  189. package/dist/aws/types/tags.js +0 -7
  190. package/dist/database/models.js +0 -3
  191. package/dist/marine/rtz.js +0 -3
  192. package/dist/test/db-testutils.js +0 -34
  193. package/dist/test/secrets-manager.js +0 -62
  194. package/dist/test/testutils.js +0 -44
  195. package/dist/types/async-timeout-error.js +0 -10
  196. package/dist/types/aws-env.js +0 -3
  197. package/dist/types/either.js +0 -3
  198. package/dist/types/http-error.js +0 -11
  199. package/dist/types/input-error.js +0 -7
  200. package/dist/types/language.js +0 -10
  201. package/dist/types/nullable.js +0 -3
  202. package/dist/types/urn.js +0 -3
  203. package/dist/types/util-types.js +0 -3
  204. package/dist/types/validator.js +0 -14
  205. package/dist/utils/base64.js +0 -21
  206. package/dist/utils/date-utils.js +0 -51
  207. package/dist/utils/geojson-types.js +0 -18
  208. package/dist/utils/slack.js +0 -30
  209. /package/dist/aws/infra/canaries/{canary-keys.d.ts → canary-keys.d.mts} +0 -0
  210. /package/dist/aws/infra/canaries/{canary-parameters.d.ts → canary-parameters.d.mts} +0 -0
  211. /package/dist/aws/infra/canaries/{canary-role.d.ts → canary-role.d.mts} +0 -0
  212. /package/dist/aws/infra/{documentation.d.ts → documentation.d.mts} +0 -0
  213. /package/dist/aws/infra/{import-util.d.ts → import-util.d.mts} +0 -0
  214. /package/dist/aws/infra/{scheduler.d.ts → scheduler.d.mts} +0 -0
  215. /package/dist/aws/infra/{security-rule.d.ts → security-rule.d.mts} +0 -0
  216. /package/dist/aws/infra/stacks/{intra-stack-configuration.d.ts → intra-stack-configuration.d.mts} +0 -0
  217. /package/dist/aws/infra/{usage-plans.d.ts → usage-plans.d.mts} +0 -0
  218. /package/dist/aws/runtime/{apikey.d.ts → apikey.d.mts} +0 -0
  219. /package/dist/aws/runtime/{environment.d.ts → environment.d.mts} +0 -0
  220. /package/dist/aws/runtime/{messaging.d.ts → messaging.d.mts} +0 -0
  221. /package/dist/aws/runtime/{s3.d.ts → s3.d.mts} +0 -0
  222. /package/dist/aws/runtime/secrets/{proxy-holder.d.ts → proxy-holder.d.mts} +0 -0
  223. /package/dist/aws/runtime/secrets/{rds-holder.d.ts → rds-holder.d.mts} +0 -0
  224. /package/dist/aws/runtime/secrets/{secret.d.ts → secret.d.mts} +0 -0
  225. /package/dist/aws/types/{errors.d.ts → errors.d.mts} +0 -0
  226. /package/dist/aws/types/{lambda-response.d.ts → lambda-response.d.mts} +0 -0
  227. /package/dist/aws/types/{mediatypes.d.ts → mediatypes.d.mts} +0 -0
  228. /package/dist/aws/types/{model-with-reference.d.ts → model-with-reference.d.mts} +0 -0
  229. /package/dist/aws/types/{proxytypes.d.ts → proxytypes.d.mts} +0 -0
  230. /package/dist/aws/types/{tags.d.ts → tags.d.mts} +0 -0
  231. /package/dist/database/{models.d.ts → models.d.mts} +0 -0
  232. /package/dist/marine/{id_utils.d.ts → id_utils.d.mts} +0 -0
  233. /package/dist/marine/{rtz.d.ts → rtz.d.mts} +0 -0
  234. /package/dist/test/{asserter.d.ts → asserter.d.mts} +0 -0
  235. /package/dist/test/{httpserver.d.ts → httpserver.d.mts} +0 -0
  236. /package/dist/test/{secrets-manager.d.ts → secrets-manager.d.mts} +0 -0
  237. /package/dist/test/{testutils.d.ts → testutils.d.mts} +0 -0
  238. /package/dist/types/{async-timeout-error.d.ts → async-timeout-error.d.mts} +0 -0
  239. /package/dist/types/{aws-env.d.ts → aws-env.d.mts} +0 -0
  240. /package/dist/types/{either.d.ts → either.d.mts} +0 -0
  241. /package/dist/types/{http-error.d.ts → http-error.d.mts} +0 -0
  242. /package/dist/types/{input-error.d.ts → input-error.d.mts} +0 -0
  243. /package/dist/types/{language.d.ts → language.d.mts} +0 -0
  244. /package/dist/types/{traffictype.d.ts → traffictype.d.mts} +0 -0
  245. /package/dist/types/{urn.d.ts → urn.d.mts} +0 -0
  246. /package/dist/types/{util-types.d.ts → util-types.d.mts} +0 -0
  247. /package/dist/types/{validator.d.ts → validator.d.mts} +0 -0
  248. /package/dist/utils/{date-utils.d.ts → date-utils.d.mts} +0 -0
  249. /package/dist/utils/{geojson-types.d.ts → geojson-types.d.mts} +0 -0
  250. /package/dist/utils/{geometry.d.ts → geometry.d.mts} +0 -0
  251. /package/dist/utils/{retry.d.ts → retry.d.mts} +0 -0
  252. /package/dist/utils/{slack.d.ts → slack.d.mts} +0 -0
  253. /package/src/@types/geojson-validation/{index.d.ts → index.d.mts} +0 -0
  254. /package/src/aws/infra/canaries/{canary-keys.ts → canary-keys.mts} +0 -0
  255. /package/src/aws/infra/canaries/{canary-parameters.ts → canary-parameters.mts} +0 -0
  256. /package/src/aws/infra/canaries/{canary-role.ts → canary-role.mts} +0 -0
  257. /package/src/aws/infra/{documentation.ts → documentation.mts} +0 -0
  258. /package/src/aws/infra/{import-util.ts → import-util.mts} +0 -0
  259. /package/src/aws/infra/{scheduler.ts → scheduler.mts} +0 -0
  260. /package/src/aws/infra/{security-rule.ts → security-rule.mts} +0 -0
  261. /package/src/aws/infra/stacks/{intra-stack-configuration.ts → intra-stack-configuration.mts} +0 -0
  262. /package/src/aws/infra/{usage-plans.ts → usage-plans.mts} +0 -0
  263. /package/src/aws/runtime/{apikey.ts → apikey.mts} +0 -0
  264. /package/src/aws/runtime/{dt-logger.ts → dt-logger.mts} +0 -0
  265. /package/src/aws/runtime/{environment.ts → environment.mts} +0 -0
  266. /package/src/aws/runtime/{messaging.ts → messaging.mts} +0 -0
  267. /package/src/aws/runtime/{s3.ts → s3.mts} +0 -0
  268. /package/src/aws/types/{errors.ts → errors.mts} +0 -0
  269. /package/src/aws/types/{lambda-response.ts → lambda-response.mts} +0 -0
  270. /package/src/aws/types/{mediatypes.ts → mediatypes.mts} +0 -0
  271. /package/src/aws/types/{model-with-reference.ts → model-with-reference.mts} +0 -0
  272. /package/src/aws/types/{proxytypes.ts → proxytypes.mts} +0 -0
  273. /package/src/aws/types/{tags.ts → tags.mts} +0 -0
  274. /package/src/database/{models.ts → models.mts} +0 -0
  275. /package/src/marine/{id_utils.ts → id_utils.mts} +0 -0
  276. /package/src/marine/{rtz.ts → rtz.mts} +0 -0
  277. /package/src/test/{asserter.ts → asserter.mts} +0 -0
  278. /package/src/test/{httpserver.ts → httpserver.mts} +0 -0
  279. /package/src/test/{testutils.ts → testutils.mts} +0 -0
  280. /package/src/types/{async-timeout-error.ts → async-timeout-error.mts} +0 -0
  281. /package/src/types/{aws-env.ts → aws-env.mts} +0 -0
  282. /package/src/types/{either.ts → either.mts} +0 -0
  283. /package/src/types/{http-error.ts → http-error.mts} +0 -0
  284. /package/src/types/{input-error.ts → input-error.mts} +0 -0
  285. /package/src/types/{language.ts → language.mts} +0 -0
  286. /package/src/types/{traffictype.ts → traffictype.mts} +0 -0
  287. /package/src/types/{urn.ts → urn.mts} +0 -0
  288. /package/src/types/{util-types.ts → util-types.mts} +0 -0
  289. /package/src/types/{validator.ts → validator.mts} +0 -0
  290. /package/src/utils/{base64.ts → base64.mts} +0 -0
  291. /package/src/utils/{date-utils.ts → date-utils.mts} +0 -0
  292. /package/src/utils/{geojson-types.ts → geojson-types.mts} +0 -0
@@ -1,30 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficDLQueue = exports.DigitrafficSqsQueue = void 0;
4
- const aws_sqs_1 = require("aws-cdk-lib/aws-sqs");
5
- const aws_cdk_lib_1 = require("aws-cdk-lib");
6
- const aws_s3_1 = require("aws-cdk-lib/aws-s3");
7
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
8
- const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
9
- const aws_logs_1 = require("aws-cdk-lib/aws-logs");
10
- const aws_lambda_event_sources_1 = require("aws-cdk-lib/aws-lambda-event-sources");
11
- const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
12
- const aws_cloudwatch_actions_1 = require("aws-cdk-lib/aws-cloudwatch-actions");
13
- const lib_storage_1 = require("@aws-sdk/lib-storage");
14
- const monitoredfunction_1 = require("./stack/monitoredfunction");
1
+ import { Queue, QueueEncryption } from "aws-cdk-lib/aws-sqs";
2
+ import { Duration } from "aws-cdk-lib";
3
+ import { BlockPublicAccess, Bucket } from "aws-cdk-lib/aws-s3";
4
+ import { PolicyStatement } from "aws-cdk-lib/aws-iam";
5
+ import { InlineCode, Runtime } from "aws-cdk-lib/aws-lambda";
6
+ import { RetentionDays } from "aws-cdk-lib/aws-logs";
7
+ import { SqsEventSource } from "aws-cdk-lib/aws-lambda-event-sources";
8
+ import { ComparisonOperator, TreatMissingData } from "aws-cdk-lib/aws-cloudwatch";
9
+ import { SnsAction } from "aws-cdk-lib/aws-cloudwatch-actions";
10
+ import { S3 } from "@aws-sdk/client-s3";
11
+ import { Upload } from "@aws-sdk/lib-storage";
12
+ import { MonitoredFunction } from "./stack/monitoredfunction.mjs";
15
13
  /**
16
14
  * Construct for creating SQS-queues.
17
15
  *
18
16
  * If you don't config your own deadLetterQueue, this will create a dlq for you, also a lambda function, a s3 bucket
19
17
  * and an alarm for the queue. Anything that goes to the dlq will be written into the bucket and the alarm is activated.
20
18
  */
21
- class DigitrafficSqsQueue extends aws_sqs_1.Queue {
19
+ export class DigitrafficSqsQueue extends Queue {
22
20
  static create(stack, name, props) {
23
21
  const queueName = `${stack.configuration.shortName}-${name}-Queue`;
24
22
  const queueProps = {
25
23
  ...props,
26
24
  ...{
27
- encryption: aws_sqs_1.QueueEncryption.KMS_MANAGED,
25
+ encryption: QueueEncryption.KMS_MANAGED,
28
26
  queueName,
29
27
  deadLetterQueue: props.deadLetterQueue ?? {
30
28
  maxReceiveCount: 2,
@@ -35,60 +33,58 @@ class DigitrafficSqsQueue extends aws_sqs_1.Queue {
35
33
  return new DigitrafficSqsQueue(stack, queueName, queueProps);
36
34
  }
37
35
  }
38
- exports.DigitrafficSqsQueue = DigitrafficSqsQueue;
39
- class DigitrafficDLQueue {
36
+ export class DigitrafficDLQueue {
40
37
  static create(stack, name) {
41
38
  const dlqName = `${stack.configuration.shortName}-${name}-DLQ`;
42
39
  const dlq = new DigitrafficSqsQueue(stack, dlqName, {
43
40
  queueName: dlqName,
44
- visibilityTimeout: aws_cdk_lib_1.Duration.seconds(60),
45
- encryption: aws_sqs_1.QueueEncryption.KMS_MANAGED,
41
+ visibilityTimeout: Duration.seconds(60),
42
+ encryption: QueueEncryption.KMS_MANAGED,
46
43
  });
47
- const dlqBucket = new aws_s3_1.Bucket(stack, `${dlqName}-Bucket`, {
48
- blockPublicAccess: aws_s3_1.BlockPublicAccess.BLOCK_ALL,
44
+ const dlqBucket = new Bucket(stack, `${dlqName}-Bucket`, {
45
+ blockPublicAccess: BlockPublicAccess.BLOCK_ALL,
49
46
  });
50
47
  const dlqFunctionName = `${dlqName}-Function`;
51
- const lambda = monitoredfunction_1.MonitoredFunction.create(stack, dlqFunctionName, {
52
- runtime: aws_lambda_1.Runtime.NODEJS_20_X,
53
- logRetention: aws_logs_1.RetentionDays.ONE_YEAR,
48
+ const lambda = MonitoredFunction.create(stack, dlqFunctionName, {
49
+ runtime: Runtime.NODEJS_20_X,
50
+ logRetention: RetentionDays.ONE_YEAR,
54
51
  functionName: dlqFunctionName,
55
52
  code: getDlqCode(dlqBucket.bucketName),
56
- timeout: aws_cdk_lib_1.Duration.seconds(10),
53
+ timeout: Duration.seconds(10),
57
54
  handler: "index.handler",
58
55
  memorySize: 128,
59
56
  reservedConcurrentExecutions: 1,
60
57
  });
61
- const statement = new aws_iam_1.PolicyStatement();
58
+ const statement = new PolicyStatement();
62
59
  statement.addActions("s3:PutObject");
63
60
  statement.addActions("s3:PutObjectAcl");
64
61
  statement.addResources(dlqBucket.bucketArn + "/*");
65
62
  lambda.addToRolePolicy(statement);
66
- lambda.addEventSource(new aws_lambda_event_sources_1.SqsEventSource(dlq));
63
+ lambda.addEventSource(new SqsEventSource(dlq));
67
64
  addDLQAlarm(stack, dlqName, dlq);
68
65
  return dlq;
69
66
  }
70
67
  }
71
- exports.DigitrafficDLQueue = DigitrafficDLQueue;
72
68
  function addDLQAlarm(stack, dlqName, dlq) {
73
69
  const alarmName = `${dlqName}-Alarm`;
74
70
  dlq.metricNumberOfMessagesReceived({
75
- period: aws_cdk_lib_1.Duration.minutes(5),
71
+ period: Duration.minutes(5),
76
72
  })
77
73
  .createAlarm(stack, alarmName, {
78
74
  alarmName,
79
75
  threshold: 0,
80
76
  evaluationPeriods: 1,
81
- treatMissingData: aws_cloudwatch_1.TreatMissingData.NOT_BREACHING,
82
- comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD,
77
+ treatMissingData: TreatMissingData.NOT_BREACHING,
78
+ comparisonOperator: ComparisonOperator.GREATER_THAN_THRESHOLD,
83
79
  })
84
- .addAlarmAction(new aws_cloudwatch_actions_1.SnsAction(stack.warningTopic));
80
+ .addAlarmAction(new SnsAction(stack.warningTopic));
85
81
  }
86
82
  function getDlqCode(Bucket) {
87
83
  const functionBody = DLQ_LAMBDA_CODE.replace("__bucketName__", Bucket)
88
84
  .replace("__upload__", uploadToS3.toString())
89
85
  .replace("__doUpload__", doUpload.toString())
90
86
  .replace("__handler__", createHandler().toString().substring(23)); // remove function handler() from signature
91
- return new aws_lambda_1.InlineCode(functionBody);
87
+ return new InlineCode(functionBody);
92
88
  }
93
89
  async function uploadToS3(s3, Bucket, Body, Key) {
94
90
  try {
@@ -108,7 +104,7 @@ async function uploadToS3(s3, Bucket, Body, Key) {
108
104
  }
109
105
  async function doUpload(s3, Bucket, Body, Key) {
110
106
  try {
111
- const upload = new lib_storage_1.Upload({
107
+ const upload = new Upload({
112
108
  client: s3,
113
109
  params: { Bucket, Key, Body },
114
110
  });
@@ -122,12 +118,8 @@ async function doUpload(s3, Bucket, Body, Key) {
122
118
  const bucketName = "";
123
119
  function createHandler() {
124
120
  return async function handler(event) {
125
- // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-assignment
126
- const AWS = require("aws-sdk");
127
121
  const millis = new Date().getTime();
128
- await Promise.all(event.Records.map((e, idx) => uploadToS3(
129
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
130
- new AWS.S3(), bucketName, e.body, `dlq-${millis}-${idx}.json`)));
122
+ await Promise.all(event.Records.map((e, idx) => uploadToS3(new S3(), bucketName, e.body, `dlq-${millis}-${idx}.json`)));
131
123
  };
132
124
  }
133
125
  const DLQ_LAMBDA_CODE = `
@@ -140,4 +132,4 @@ __doUpload__
140
132
 
141
133
  exports.handler = async (event) => __handler__
142
134
  `;
143
- //# sourceMappingURL=sqs-queue.js.map
135
+ //# sourceMappingURL=sqs-queue.mjs.map
@@ -1,8 +1,8 @@
1
1
  import { Architecture, Code, FunctionProps, Runtime } from "aws-cdk-lib/aws-lambda";
2
2
  import { IVpc, SubnetSelection } from "aws-cdk-lib/aws-ec2";
3
3
  import { Role } from "aws-cdk-lib/aws-iam";
4
- import { DigitrafficStack } from "./stack";
5
- import { MonitoredFunctionAlarmProps } from "./monitoredfunction";
4
+ import { DigitrafficStack } from "./stack.mjs";
5
+ import { MonitoredFunctionAlarmProps } from "./monitoredfunction.mjs";
6
6
  export type LambdaEnvironment = Record<string, string>;
7
7
  export type DBLambdaEnvironment = LambdaEnvironment & {
8
8
  SECRET_ID?: string;
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultLambdaConfiguration = exports.lambdaFunctionProps = exports.databaseFunctionProps = void 0;
4
- const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
5
- const aws_cdk_lib_1 = require("aws-cdk-lib");
6
- const aws_logs_1 = require("aws-cdk-lib/aws-logs");
7
- function databaseFunctionProps(stack, environment, lambdaName, simpleLambdaName, config) {
1
+ import { Architecture, AssetCode, Runtime, } from "aws-cdk-lib/aws-lambda";
2
+ import { Duration } from "aws-cdk-lib";
3
+ import { RetentionDays } from "aws-cdk-lib/aws-logs";
4
+ export function databaseFunctionProps(stack, environment, lambdaName, simpleLambdaName, config) {
8
5
  const vpcSubnets = stack.vpc
9
6
  ? {
10
7
  subnets: stack.vpc.privateSubnets,
@@ -19,41 +16,39 @@ function databaseFunctionProps(stack, environment, lambdaName, simpleLambdaName,
19
16
  },
20
17
  };
21
18
  }
22
- exports.databaseFunctionProps = databaseFunctionProps;
23
- function lambdaFunctionProps(stack, environment, lambdaName, simpleLambdaName, config) {
19
+ export function lambdaFunctionProps(stack, environment, lambdaName, simpleLambdaName, config) {
24
20
  return {
25
- runtime: config?.runtime ?? aws_lambda_1.Runtime.NODEJS_20_X,
26
- architecture: config?.architecture ?? aws_lambda_1.Architecture.ARM_64,
21
+ runtime: config?.runtime ?? Runtime.NODEJS_20_X,
22
+ architecture: config?.architecture ?? Architecture.ARM_64,
27
23
  memorySize: config?.memorySize ?? 128,
28
24
  functionName: lambdaName,
29
25
  role: config?.role,
30
- timeout: aws_cdk_lib_1.Duration.seconds(config?.timeout ?? 60),
31
- logRetention: aws_logs_1.RetentionDays.ONE_YEAR,
26
+ timeout: Duration.seconds(config?.timeout ?? 60),
27
+ logRetention: RetentionDays.ONE_YEAR,
32
28
  reservedConcurrentExecutions: config?.reservedConcurrentExecutions ?? 2,
33
29
  code: getAssetCode(simpleLambdaName, config?.singleLambda ?? false),
34
30
  handler: `${simpleLambdaName}.handler`,
35
31
  environment,
36
32
  };
37
33
  }
38
- exports.lambdaFunctionProps = lambdaFunctionProps;
39
34
  function getAssetCode(simpleLambdaName, isSingleLambda) {
40
35
  const lambdaPath = isSingleLambda
41
36
  ? `dist/lambda/`
42
37
  : `dist/lambda/${simpleLambdaName}`;
43
- return new aws_lambda_1.AssetCode(lambdaPath);
38
+ return new AssetCode(lambdaPath);
44
39
  }
45
- function defaultLambdaConfiguration(config) {
40
+ export function defaultLambdaConfiguration(config) {
46
41
  const props = {
47
- runtime: aws_lambda_1.Runtime.NODEJS_20_X,
42
+ runtime: Runtime.NODEJS_20_X,
48
43
  memorySize: config.memorySize ?? 128,
49
44
  functionName: config.functionName,
50
45
  handler: config.handler,
51
46
  environment: config.environment ?? {},
52
- logRetention: aws_logs_1.RetentionDays.ONE_YEAR,
47
+ logRetention: RetentionDays.ONE_YEAR,
53
48
  reservedConcurrentExecutions: config.reservedConcurrentExecutions,
54
49
  code: config.code,
55
50
  role: config.role,
56
- timeout: aws_cdk_lib_1.Duration.seconds(config.timeout ?? 10),
51
+ timeout: Duration.seconds(config.timeout ?? 10),
57
52
  };
58
53
  if (config.vpc) {
59
54
  return {
@@ -68,5 +63,4 @@ function defaultLambdaConfiguration(config) {
68
63
  }
69
64
  return props;
70
65
  }
71
- exports.defaultLambdaConfiguration = defaultLambdaConfiguration;
72
- //# sourceMappingURL=lambda-configs.js.map
66
+ //# sourceMappingURL=lambda-configs.mjs.map
@@ -1,10 +1,10 @@
1
1
  import { Function, FunctionProps } from "aws-cdk-lib/aws-lambda";
2
2
  import { Stack } from "aws-cdk-lib";
3
3
  import { ComparisonOperator } from "aws-cdk-lib/aws-cloudwatch";
4
- import { DigitrafficStack } from "../stack/stack";
4
+ import { DigitrafficStack } from "./stack.mjs";
5
5
  import { ITopic } from "aws-cdk-lib/aws-sns";
6
- import { LambdaEnvironment, MonitoredFunctionParameters } from "../stack/lambda-configs";
7
- import { TrafficType } from "../../../types/traffictype";
6
+ import { LambdaEnvironment, MonitoredFunctionParameters } from "./lambda-configs.mjs";
7
+ import { TrafficType } from "../../../types/traffictype.mjs";
8
8
  /**
9
9
  * Allows customization of CloudWatch Alarm properties
10
10
  */
@@ -1,19 +1,13 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MonitoredDBFunction = exports.MonitoredFunction = void 0;
7
- const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
8
- const aws_cloudwatch_actions_1 = require("aws-cdk-lib/aws-cloudwatch-actions");
9
- const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
10
- const lambda_configs_1 = require("../stack/lambda-configs");
11
- const subscription_1 = require("../stack/subscription");
12
- const lodash_1 = __importDefault(require("lodash"));
1
+ import { Function } from "aws-cdk-lib/aws-lambda";
2
+ import { SnsAction } from "aws-cdk-lib/aws-cloudwatch-actions";
3
+ import { ComparisonOperator } from "aws-cdk-lib/aws-cloudwatch";
4
+ import { databaseFunctionProps, } from "./lambda-configs.mjs";
5
+ import { DigitrafficLogSubscriptions } from "./subscription.mjs";
6
+ import _ from "lodash";
13
7
  /**
14
8
  * Creates a Lambda function that monitors default CloudWatch Lambda metrics with CloudWatch Alarms.
15
9
  */
16
- class MonitoredFunction extends aws_lambda_1.Function {
10
+ export class MonitoredFunction extends Function {
17
11
  /**
18
12
  * Create new MonitoredFunction. Use topics from given DigitrafficStack.
19
13
  *
@@ -43,12 +37,12 @@ class MonitoredFunction extends aws_lambda_1.Function {
43
37
  */
44
38
  static createV2(stack, name, environment, functionParameters) {
45
39
  const functionName = functionParameters?.functionName ??
46
- `${stack.configuration.shortName}-${lodash_1.default.chain(name)
40
+ `${stack.configuration.shortName}-${_.chain(name)
47
41
  .camelCase()
48
42
  .startCase()
49
43
  .replace(/\s/g, "")
50
44
  .value()}`;
51
- const functionProps = (0, lambda_configs_1.databaseFunctionProps)(stack, environment, functionName, name, functionParameters);
45
+ const functionProps = databaseFunctionProps(stack, environment, functionName, name, functionParameters);
52
46
  return MonitoredFunction.create(stack, functionName, functionProps, functionParameters);
53
47
  }
54
48
  /**
@@ -67,25 +61,25 @@ class MonitoredFunction extends aws_lambda_1.Function {
67
61
  throw new Error("Function name not provided");
68
62
  }
69
63
  this.givenName = functionProps.functionName;
70
- const alarmSnsAction = new aws_cloudwatch_actions_1.SnsAction(alarmSnsTopic);
71
- const warningSnsAction = new aws_cloudwatch_actions_1.SnsAction(warningSnsTopic);
64
+ const alarmSnsAction = new SnsAction(alarmSnsTopic);
65
+ const warningSnsAction = new SnsAction(warningSnsTopic);
72
66
  if (props?.durationAlarmProps?.create !== false) {
73
67
  if (!functionProps.timeout) {
74
68
  throw new Error("Timeout needs to be explicitly set");
75
69
  }
76
- this.createAlarm(scope, this.metricDuration().with({ statistic: "max" }), "Duration", "Duration alarm", `Duration has exceeded ${functionProps.timeout.toSeconds()} seconds`, trafficType, this.getAlarmActionForEnv(alarmSnsAction, warningSnsAction, production), functionProps.timeout.toMilliseconds(), 1, 1, aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD, props?.durationAlarmProps);
70
+ this.createAlarm(scope, this.metricDuration().with({ statistic: "max" }), "Duration", "Duration alarm", `Duration has exceeded ${functionProps.timeout.toSeconds()} seconds`, trafficType, this.getAlarmActionForEnv(alarmSnsAction, warningSnsAction, production), functionProps.timeout.toMilliseconds(), 1, 1, ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD, props?.durationAlarmProps);
77
71
  }
78
72
  if (props?.durationWarningProps?.create !== false) {
79
73
  if (!functionProps.timeout) {
80
74
  throw new Error("Timeout needs to be explicitly set");
81
75
  }
82
- this.createAlarm(scope, this.metricDuration().with({ statistic: "max" }), "Duration-Warning", "Duration warning", `Duration is 85 % of max ${functionProps.timeout.toSeconds()} seconds`, trafficType, warningSnsAction, functionProps.timeout.toMilliseconds() * 0.85, 1, 1, aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD, props?.durationWarningProps);
76
+ this.createAlarm(scope, this.metricDuration().with({ statistic: "max" }), "Duration-Warning", "Duration warning", `Duration is 85 % of max ${functionProps.timeout.toSeconds()} seconds`, trafficType, warningSnsAction, functionProps.timeout.toMilliseconds() * 0.85, 1, 1, ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD, props?.durationWarningProps);
83
77
  }
84
78
  if (props?.errorAlarmProps?.create !== false) {
85
- this.createAlarm(scope, this.metricErrors(), "Errors", "Errors alarm", "Invocations did not succeed", trafficType, this.getAlarmActionForEnv(alarmSnsAction, warningSnsAction, production), 1, 1, 1, aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD, props?.errorAlarmProps);
79
+ this.createAlarm(scope, this.metricErrors(), "Errors", "Errors alarm", "Invocations did not succeed", trafficType, this.getAlarmActionForEnv(alarmSnsAction, warningSnsAction, production), 1, 1, 1, ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD, props?.errorAlarmProps);
86
80
  }
87
81
  if (props?.throttleAlarmProps?.create !== false) {
88
- this.createAlarm(scope, this.metricThrottles(), "Throttles", "Throttles alarm", "Has throttled", trafficType, this.getAlarmActionForEnv(alarmSnsAction, warningSnsAction, production), 0, 1, 1, aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD, props?.throttleAlarmProps);
82
+ this.createAlarm(scope, this.metricThrottles(), "Throttles", "Throttles alarm", "Has throttled", trafficType, this.getAlarmActionForEnv(alarmSnsAction, warningSnsAction, production), 0, 1, 1, ComparisonOperator.GREATER_THAN_THRESHOLD, props?.throttleAlarmProps);
89
83
  }
90
84
  }
91
85
  createAlarm(stack, metric, alarmId, alarmName, alarmDescription, trafficType, alarmSnsAction, threshold, evaluationPeriods, datapointsToAlarm, comparisonOperator, alarmProps) {
@@ -104,7 +98,6 @@ class MonitoredFunction extends aws_lambda_1.Function {
104
98
  return production ? alarmAction : warningAction;
105
99
  }
106
100
  }
107
- exports.MonitoredFunction = MonitoredFunction;
108
101
  /** disable all alarms */
109
102
  MonitoredFunction.DISABLE_ALARMS = {
110
103
  durationAlarmProps: {
@@ -120,7 +113,7 @@ MonitoredFunction.DISABLE_ALARMS = {
120
113
  create: false,
121
114
  },
122
115
  };
123
- class MonitoredDBFunction {
116
+ export class MonitoredDBFunction {
124
117
  /**
125
118
  * Create new MonitoredDBFunction. Use topics from given DigitrafficStack. Generate names from given name and configuration shortName.
126
119
  * Grant secret and create log subscription.
@@ -137,20 +130,19 @@ class MonitoredDBFunction {
137
130
  */
138
131
  static create(stack, name, environment, functionParameters) {
139
132
  const functionName = functionParameters?.functionName ??
140
- `${stack.configuration.shortName}-${lodash_1.default.chain(name)
133
+ `${stack.configuration.shortName}-${_.chain(name)
141
134
  .camelCase()
142
135
  .startCase()
143
136
  .replace(/\s/g, "")
144
137
  .value()}`;
145
138
  const env = environment ? environment : stack.createLambdaEnvironment();
146
- const functionProps = (0, lambda_configs_1.databaseFunctionProps)(stack, env, functionName, name, functionParameters);
139
+ const functionProps = databaseFunctionProps(stack, env, functionName, name, functionParameters);
147
140
  const mf = MonitoredFunction.create(stack, functionName, functionProps, functionParameters);
148
141
  stack.grantSecret(mf);
149
142
  if (stack.configuration.logsDestinationArn) {
150
- new subscription_1.DigitrafficLogSubscriptions(stack, mf);
143
+ new DigitrafficLogSubscriptions(stack, mf);
151
144
  }
152
145
  return mf;
153
146
  }
154
147
  }
155
- exports.MonitoredDBFunction = MonitoredDBFunction;
156
- //# sourceMappingURL=monitoredfunction.js.map
148
+ //# sourceMappingURL=monitoredfunction.mjs.map
@@ -1,5 +1,5 @@
1
1
  import { StringParameter } from "aws-cdk-lib/aws-ssm";
2
- import { Construct } from "constructs/lib/construct";
2
+ import { type Construct } from "constructs";
3
3
  declare const PARAMETERS: {
4
4
  readonly "topic.alarm": {
5
5
  readonly parameterName: "/digitraffic/monitoring/alarm-topic";
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createParameter = exports.getParameterValue = void 0;
4
- const aws_ssm_1 = require("aws-cdk-lib/aws-ssm");
1
+ import { StringParameter } from "aws-cdk-lib/aws-ssm";
5
2
  const SSM_ROOT = "/digitraffic";
6
3
  const MONITORING_ROOT = "/monitoring";
7
4
  const DB_ROOT = "/db";
@@ -38,18 +35,16 @@ const PARAMETERS = {
38
35
  description: "Proxy writer endpoint",
39
36
  },
40
37
  };
41
- function getParameterValue(scope, parameterType) {
38
+ export function getParameterValue(scope, parameterType) {
42
39
  const parameterName = PARAMETERS[parameterType].parameterName;
43
- return aws_ssm_1.StringParameter.valueForStringParameter(scope, parameterName);
40
+ return StringParameter.valueForStringParameter(scope, parameterName);
44
41
  }
45
- exports.getParameterValue = getParameterValue;
46
- function createParameter(scope, parameterType, stringValue) {
42
+ export function createParameter(scope, parameterType, stringValue) {
47
43
  const { id, parameterName, description } = PARAMETERS[parameterType];
48
- return new aws_ssm_1.StringParameter(scope, id, {
44
+ return new StringParameter(scope, id, {
49
45
  parameterName,
50
46
  description,
51
47
  stringValue,
52
48
  });
53
49
  }
54
- exports.createParameter = createParameter;
55
- //# sourceMappingURL=parameters.js.map
50
+ //# sourceMappingURL=parameters.mjs.map
@@ -1,9 +1,9 @@
1
1
  import { IResource, JsonSchema, Resource, RestApi, RestApiProps } from "aws-cdk-lib/aws-apigateway";
2
2
  import { PolicyDocument } from "aws-cdk-lib/aws-iam";
3
3
  import { Construct } from "constructs";
4
- import { ModelWithReference } from "../../types/model-with-reference";
5
- import { DocumentationPart } from "../documentation";
6
- import { DigitrafficStack } from "./stack";
4
+ import { ModelWithReference } from "../../types/model-with-reference.mjs";
5
+ import { DocumentationPart } from "../documentation.mjs";
6
+ import { DigitrafficStack } from "./stack.mjs";
7
7
  export declare class DigitrafficRestApi extends RestApi {
8
8
  readonly apiKeyIds: string[];
9
9
  readonly enableDocumentation: boolean;
@@ -1,16 +1,10 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createIpRestrictionPolicyDocument = exports.createDefaultPolicyDocument = exports.createRestApi = exports.setReturnCodeForMissingAuthenticationToken = exports.add401Support = exports.add404Support = exports.DigitrafficRestApi = void 0;
7
- const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
8
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
9
- const api_model_1 = require("../../../utils/api-model");
10
- const mediatypes_1 = require("../../types/mediatypes");
11
- const usage_plans_1 = require("../usage-plans");
12
- const lodash_1 = __importDefault(require("lodash"));
13
- class DigitrafficRestApi extends aws_apigateway_1.RestApi {
1
+ import { CfnDocumentationPart, EndpointType, GatewayResponse, MethodLoggingLevel, MockIntegration, ResponseType, RestApi, } from "aws-cdk-lib/aws-apigateway";
2
+ import { AnyPrincipal, Effect, PolicyDocument, PolicyStatement, } from "aws-cdk-lib/aws-iam";
3
+ import { getModelReference } from "../../../utils/api-model.mjs";
4
+ import { MediaType } from "../../types/mediatypes.mjs";
5
+ import { createDefaultUsagePlan, createUsagePlan } from "../usage-plans.mjs";
6
+ import _ from "lodash";
7
+ export class DigitrafficRestApi extends RestApi {
14
8
  constructor(stack, apiId, apiName, allowFromIpAddresses, config) {
15
9
  const policyDocument = allowFromIpAddresses == null
16
10
  ? createDefaultPolicyDocument()
@@ -19,10 +13,10 @@ class DigitrafficRestApi extends aws_apigateway_1.RestApi {
19
13
  const apiConfig = {
20
14
  ...{
21
15
  deployOptions: {
22
- loggingLevel: aws_apigateway_1.MethodLoggingLevel.ERROR,
16
+ loggingLevel: MethodLoggingLevel.ERROR,
23
17
  },
24
18
  restApiName: apiName,
25
- endpointTypes: [aws_apigateway_1.EndpointType.REGIONAL],
19
+ endpointTypes: [EndpointType.REGIONAL],
26
20
  policy: policyDocument,
27
21
  },
28
22
  ...config,
@@ -37,31 +31,31 @@ class DigitrafficRestApi extends aws_apigateway_1.RestApi {
37
31
  return `${this.restApiId}.execute-api.${this.stack.region}.amazonaws.com`;
38
32
  }
39
33
  createUsagePlan(apiKeyId, apiKeyName) {
40
- const newKeyId = (0, usage_plans_1.createUsagePlan)(this, apiKeyId, apiKeyName).keyId;
34
+ const newKeyId = createUsagePlan(this, apiKeyId, apiKeyName).keyId;
41
35
  this.apiKeyIds.push(newKeyId);
42
36
  return newKeyId;
43
37
  }
44
38
  createUsagePlanV2(apiName, apiKey) {
45
- const newKeyId = (0, usage_plans_1.createDefaultUsagePlan)(this, apiName, apiKey).keyId;
39
+ const newKeyId = createDefaultUsagePlan(this, apiName, apiKey).keyId;
46
40
  this.apiKeyIds.push(newKeyId);
47
41
  return newKeyId;
48
42
  }
49
43
  addJsonModel(modelName, schema) {
50
44
  return this.getModelWithReference(this.addModel(modelName, {
51
- contentType: mediatypes_1.MediaType.APPLICATION_JSON,
45
+ contentType: MediaType.APPLICATION_JSON,
52
46
  modelName,
53
47
  schema,
54
48
  }));
55
49
  }
56
50
  addCSVModel(modelName) {
57
51
  return this.getModelWithReference(this.addModel(modelName, {
58
- contentType: mediatypes_1.MediaType.TEXT_CSV,
52
+ contentType: MediaType.TEXT_CSV,
59
53
  modelName,
60
54
  schema: {},
61
55
  }));
62
56
  }
63
57
  getModelWithReference(model) {
64
- return lodash_1.default.set(model, "modelReference", (0, api_model_1.getModelReference)(model.modelId, this.restApiId));
58
+ return _.set(model, "modelReference", getModelReference(model.modelId, this.restApiId));
65
59
  }
66
60
  addDocumentationPart(resource, parameterName, resourceName, type, properties) {
67
61
  const location = {
@@ -69,7 +63,7 @@ class DigitrafficRestApi extends aws_apigateway_1.RestApi {
69
63
  path: resource.path,
70
64
  name: type !== "METHOD" ? parameterName : undefined,
71
65
  };
72
- new aws_apigateway_1.CfnDocumentationPart(this.stack, resourceName, {
66
+ new CfnDocumentationPart(this.stack, resourceName, {
73
67
  restApiId: resource.api.restApiId,
74
68
  location,
75
69
  properties: JSON.stringify(properties),
@@ -89,7 +83,7 @@ class DigitrafficRestApi extends aws_apigateway_1.RestApi {
89
83
  * @param apiResource
90
84
  */
91
85
  addCorsOptions(apiResource) {
92
- apiResource.addMethod("OPTIONS", new aws_apigateway_1.MockIntegration({
86
+ apiResource.addMethod("OPTIONS", new MockIntegration({
93
87
  integrationResponses: [
94
88
  {
95
89
  statusCode: "200",
@@ -117,7 +111,6 @@ class DigitrafficRestApi extends aws_apigateway_1.RestApi {
117
111
  });
118
112
  }
119
113
  }
120
- exports.DigitrafficRestApi = DigitrafficRestApi;
121
114
  /**
122
115
  * Due to AWS API design API Gateway will always return 403 'Missing Authentication Token' for requests
123
116
  * with a non-existent endpoint. This function translates this response to a 404.
@@ -125,28 +118,26 @@ exports.DigitrafficRestApi = DigitrafficRestApi;
125
118
  * @param restApi RestApi
126
119
  * @param stack Construct
127
120
  */
128
- function add404Support(restApi, stack) {
129
- new aws_apigateway_1.GatewayResponse(stack, `MissingAuthenticationTokenResponse-${restApi.restApiName}`, {
121
+ export function add404Support(restApi, stack) {
122
+ new GatewayResponse(stack, `MissingAuthenticationTokenResponse-${restApi.restApiName}`, {
130
123
  restApi,
131
- type: aws_apigateway_1.ResponseType.MISSING_AUTHENTICATION_TOKEN,
124
+ type: ResponseType.MISSING_AUTHENTICATION_TOKEN,
132
125
  statusCode: "404",
133
126
  templates: {
134
- [mediatypes_1.MediaType.APPLICATION_JSON]: '{"message": "Not found"}',
127
+ [MediaType.APPLICATION_JSON]: '{"message": "Not found"}',
135
128
  },
136
129
  });
137
130
  }
138
- exports.add404Support = add404Support;
139
- function add401Support(restApi, stack) {
140
- new aws_apigateway_1.GatewayResponse(stack, `AuthenticationFailedResponse-${restApi.restApiName}`, {
131
+ export function add401Support(restApi, stack) {
132
+ new GatewayResponse(stack, `AuthenticationFailedResponse-${restApi.restApiName}`, {
141
133
  restApi,
142
- type: aws_apigateway_1.ResponseType.UNAUTHORIZED,
134
+ type: ResponseType.UNAUTHORIZED,
143
135
  statusCode: "401",
144
136
  responseHeaders: {
145
137
  "WWW-Authenticate": "'Basic'",
146
138
  },
147
139
  });
148
140
  }
149
- exports.add401Support = add401Support;
150
141
  /**
151
142
  * Due to AWS API design API Gateway will always return 403 'Missing Authentication Token' for requests
152
143
  * with a non-existent endpoint. This function converts this response to a custom one.
@@ -156,51 +147,48 @@ exports.add401Support = add401Support;
156
147
  * @param restApi RestApi
157
148
  * @param stack Construct
158
149
  */
159
- function setReturnCodeForMissingAuthenticationToken(returnCode, message, restApi, stack) {
160
- new aws_apigateway_1.GatewayResponse(stack, `MissingAuthenticationTokenResponse-${restApi.restApiName}`, {
150
+ export function setReturnCodeForMissingAuthenticationToken(returnCode, message, restApi, stack) {
151
+ new GatewayResponse(stack, `MissingAuthenticationTokenResponse-${restApi.restApiName}`, {
161
152
  restApi,
162
- type: aws_apigateway_1.ResponseType.MISSING_AUTHENTICATION_TOKEN,
153
+ type: ResponseType.MISSING_AUTHENTICATION_TOKEN,
163
154
  statusCode: `${returnCode}`,
164
155
  templates: {
165
- [mediatypes_1.MediaType.APPLICATION_JSON]: `{"message": ${message}}`,
156
+ [MediaType.APPLICATION_JSON]: `{"message": ${message}}`,
166
157
  },
167
158
  });
168
159
  }
169
- exports.setReturnCodeForMissingAuthenticationToken = setReturnCodeForMissingAuthenticationToken;
170
- function createRestApi(stack, apiId, apiName, allowFromIpAddresses) {
160
+ export function createRestApi(stack, apiId, apiName, allowFromIpAddresses) {
171
161
  const policyDocument = allowFromIpAddresses == null
172
162
  ? createDefaultPolicyDocument()
173
163
  : createIpRestrictionPolicyDocument(allowFromIpAddresses);
174
- const restApi = new aws_apigateway_1.RestApi(stack, apiId, {
164
+ const restApi = new RestApi(stack, apiId, {
175
165
  deployOptions: {
176
- loggingLevel: aws_apigateway_1.MethodLoggingLevel.ERROR,
166
+ loggingLevel: MethodLoggingLevel.ERROR,
177
167
  },
178
168
  restApiName: apiName,
179
- endpointTypes: [aws_apigateway_1.EndpointType.REGIONAL],
169
+ endpointTypes: [EndpointType.REGIONAL],
180
170
  policy: policyDocument,
181
171
  });
182
172
  add404Support(restApi, stack);
183
173
  return restApi;
184
174
  }
185
- exports.createRestApi = createRestApi;
186
- function createDefaultPolicyDocument() {
187
- return new aws_iam_1.PolicyDocument({
175
+ export function createDefaultPolicyDocument() {
176
+ return new PolicyDocument({
188
177
  statements: [
189
- new aws_iam_1.PolicyStatement({
190
- effect: aws_iam_1.Effect.ALLOW,
178
+ new PolicyStatement({
179
+ effect: Effect.ALLOW,
191
180
  actions: ["execute-api:Invoke"],
192
181
  resources: ["*"],
193
- principals: [new aws_iam_1.AnyPrincipal()],
182
+ principals: [new AnyPrincipal()],
194
183
  }),
195
184
  ],
196
185
  });
197
186
  }
198
- exports.createDefaultPolicyDocument = createDefaultPolicyDocument;
199
- function createIpRestrictionPolicyDocument(allowFromIpAddresses) {
200
- return new aws_iam_1.PolicyDocument({
187
+ export function createIpRestrictionPolicyDocument(allowFromIpAddresses) {
188
+ return new PolicyDocument({
201
189
  statements: [
202
- new aws_iam_1.PolicyStatement({
203
- effect: aws_iam_1.Effect.ALLOW,
190
+ new PolicyStatement({
191
+ effect: Effect.ALLOW,
204
192
  conditions: {
205
193
  IpAddress: {
206
194
  "aws:SourceIp": allowFromIpAddresses,
@@ -208,10 +196,9 @@ function createIpRestrictionPolicyDocument(allowFromIpAddresses) {
208
196
  },
209
197
  actions: ["execute-api:Invoke"],
210
198
  resources: ["*"],
211
- principals: [new aws_iam_1.AnyPrincipal()],
199
+ principals: [new AnyPrincipal()],
212
200
  }),
213
201
  ],
214
202
  });
215
203
  }
216
- exports.createIpRestrictionPolicyDocument = createIpRestrictionPolicyDocument;
217
- //# sourceMappingURL=rest_apis.js.map
204
+ //# sourceMappingURL=rest_apis.mjs.map