@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,5 +1,5 @@
1
- import { DtLogger } from "../../runtime/dt-logger";
2
- import { LambdaResponse } from "../../types/lambda-response";
1
+ import { DtLogger } from "../../runtime/dt-logger.mjs";
2
+ import { LambdaResponse } from "../../types/lambda-response.mjs";
3
3
  export type LoggingHandler = (method: () => Promise<LambdaResponse>, logger: DtLogger) => Promise<LambdaResponse>;
4
4
  export type ErrorHandler = (error: unknown, logger: DtLogger) => LambdaResponse;
5
5
  /**
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createJsonLoggingHandler = exports.HandlerFactory = void 0;
4
- const utils_1 = require("../../../utils/utils");
5
- const functionName = (0, utils_1.getEnvVariableOrElse)("AWS_LAMBDA_FUNCTION_NAME", "test");
1
+ import { getEnvVariableOrElse } from "../../../utils/utils.mjs";
2
+ const functionName = getEnvVariableOrElse("AWS_LAMBDA_FUNCTION_NAME", "test");
6
3
  /**
7
4
  * Factory class for creating lambda-handler functions. You can set functionality to handle logging and error-handling,
8
5
  * with the defaults:
@@ -12,7 +9,7 @@ const functionName = (0, utils_1.getEnvVariableOrElse)("AWS_LAMBDA_FUNCTION_NAME
12
9
  * You should instantiate HandlerFactory in your project with desired error handling and use the factory instance for
13
10
  * creating handler-functions for your lambdas.
14
11
  */
15
- class HandlerFactory {
12
+ export class HandlerFactory {
16
13
  constructor() {
17
14
  this.loggingHandler = async (method) => {
18
15
  const start = Date.now();
@@ -48,8 +45,7 @@ class HandlerFactory {
48
45
  };
49
46
  }
50
47
  }
51
- exports.HandlerFactory = HandlerFactory;
52
- function createJsonLoggingHandler() {
48
+ export function createJsonLoggingHandler() {
53
49
  return async (method, logger) => {
54
50
  const start = Date.now();
55
51
  try {
@@ -63,5 +59,4 @@ function createJsonLoggingHandler() {
63
59
  }
64
60
  };
65
61
  }
66
- exports.createJsonLoggingHandler = createJsonLoggingHandler;
67
- //# sourceMappingURL=handler-factory.js.map
62
+ //# sourceMappingURL=handler-factory.mjs.map
@@ -1,6 +1,6 @@
1
1
  import { IntegrationResponse, LambdaIntegration } from "aws-cdk-lib/aws-apigateway";
2
2
  import { IFunction } from "aws-cdk-lib/aws-lambda";
3
- import { MediaType } from "../../types/mediatypes";
3
+ import { MediaType } from "../../types/mediatypes.mjs";
4
4
  type ParameterType = "path" | "querystring" | "multivaluequerystring" | "context" | "header";
5
5
  interface ApiParameter {
6
6
  type: ParameterType;
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficIntegration = void 0;
4
- const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
5
- const mediatypes_1 = require("../../types/mediatypes");
6
- const digitraffic_integration_response_1 = require("../../runtime/digitraffic-integration-response");
7
- class DigitrafficIntegration {
8
- constructor(lambda, mediaType = mediatypes_1.MediaType.TEXT_PLAIN, sunset) {
1
+ import { LambdaIntegration, PassthroughBehavior, } from "aws-cdk-lib/aws-apigateway";
2
+ import { MediaType } from "../../types/mediatypes.mjs";
3
+ import { DigitrafficIntegrationResponse } from "../../runtime/digitraffic-integration-response.mjs";
4
+ export class DigitrafficIntegration {
5
+ constructor(lambda, mediaType = MediaType.TEXT_PLAIN, sunset) {
9
6
  this.parameters = [];
10
7
  this.lambda = lambda;
11
8
  this.mediaType = mediaType;
@@ -44,7 +41,7 @@ class DigitrafficIntegration {
44
41
  }
45
42
  build() {
46
43
  const integrationResponses = this.createResponses();
47
- return new aws_apigateway_1.LambdaIntegration(this.lambda, {
44
+ return new LambdaIntegration(this.lambda, {
48
45
  proxy: false,
49
46
  integrationResponses,
50
47
  requestParameters: this.parameters.length == 0
@@ -53,7 +50,7 @@ class DigitrafficIntegration {
53
50
  requestTemplates: this.parameters.length == 0
54
51
  ? undefined
55
52
  : this.createRequestTemplates(),
56
- passthroughBehavior: aws_apigateway_1.PassthroughBehavior.WHEN_NO_MATCH,
53
+ passthroughBehavior: PassthroughBehavior.WHEN_NO_MATCH,
57
54
  });
58
55
  }
59
56
  createRequestParameters() {
@@ -81,12 +78,11 @@ class DigitrafficIntegration {
81
78
  }
82
79
  });
83
80
  return {
84
- [mediatypes_1.MediaType.APPLICATION_JSON]: JSON.stringify(requestJson),
81
+ [MediaType.APPLICATION_JSON]: JSON.stringify(requestJson),
85
82
  };
86
83
  }
87
84
  createResponses() {
88
- return [digitraffic_integration_response_1.DigitrafficIntegrationResponse.ok(this.mediaType, this.sunset)];
85
+ return [DigitrafficIntegrationResponse.ok(this.mediaType, this.sunset)];
89
86
  }
90
87
  }
91
- exports.DigitrafficIntegration = DigitrafficIntegration;
92
- //# sourceMappingURL=integration.js.map
88
+ //# sourceMappingURL=integration.mjs.map
@@ -1,6 +1,5 @@
1
- import { MediaType } from "../../types/mediatypes";
2
- import { JsonSchema, MethodResponse } from "aws-cdk-lib/aws-apigateway";
3
- import { IModel } from "aws-cdk-lib/aws-apigateway/lib/model";
1
+ import { MediaType } from "../../types/mediatypes.mjs";
2
+ import { JsonSchema, MethodResponse, type IModel } from "aws-cdk-lib/aws-apigateway";
4
3
  /**
5
4
  * This is velocity-script, that assumes the response to be LambdaResponse(status and body).
6
5
  * It will always return the body and status, but if status in something else than 200 OK the content-type
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficMethodResponse = exports.InternalServerErrorResponseTemplate = exports.XmlResponseTemplate = exports.NotFoundResponseTemplate = exports.BadRequestResponseTemplate = exports.NotFoundResponse = exports.MessageModel = exports.getDeprecatedDefaultLambdaResponse = exports.RESPONSE_DEFAULT_LAMBDA = void 0;
4
- const mediatypes_1 = require("../../types/mediatypes");
5
- const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
6
- const date_utils_1 = require("../../../utils/date-utils");
1
+ import { MediaType } from "../../types/mediatypes.mjs";
2
+ import { JsonSchemaType, JsonSchemaVersion, Model } from "aws-cdk-lib/aws-apigateway";
3
+ import { dateFromIsoString } from "../../../utils/date-utils.mjs";
7
4
  /**
8
5
  * This is velocity-script, that assumes the response to be LambdaResponse(status and body).
9
6
  * It will always return the body and status, but if status in something else than 200 OK the content-type
@@ -15,7 +12,7 @@ const date_utils_1 = require("../../../utils/date-utils");
15
12
  * If fileName is set, then Content-Disposition-header will be set to use it
16
13
  * If timestamp is set, then ETag & Last-Modified headers will be set
17
14
  */
18
- exports.RESPONSE_DEFAULT_LAMBDA = `#set($inputRoot = $input.path('$'))
15
+ export const RESPONSE_DEFAULT_LAMBDA = `#set($inputRoot = $input.path('$'))
19
16
  #if ($inputRoot.status != 200)
20
17
  #set ($context.responseOverride.status = $inputRoot.status)
21
18
  #set ($context.responseOverride.header.Content-Type = 'text/plain')
@@ -40,33 +37,32 @@ $util.base64Decode($inputRoot.body)`;
40
37
  * Sunset: Tue, 20 Dec 2022 00:00:00 GMT
41
38
  * @param sunset Sunset date as string in ISO 8601 date-time format (YYYY-MM-DD)
42
39
  */
43
- const getDeprecatedDefaultLambdaResponse = (sunset) => {
40
+ export const getDeprecatedDefaultLambdaResponse = (sunset) => {
44
41
  const setDeprecationHeaders = `#set ($context.responseOverride.header.Deprecation = 'true')
45
- #set ($context.responseOverride.header.Sunset = '${(0, date_utils_1.dateFromIsoString)(sunset).toUTCString()}')`;
46
- return exports.RESPONSE_DEFAULT_LAMBDA.concat(setDeprecationHeaders);
42
+ #set ($context.responseOverride.header.Sunset = '${dateFromIsoString(sunset).toUTCString()}')`;
43
+ return RESPONSE_DEFAULT_LAMBDA.concat(setDeprecationHeaders);
47
44
  };
48
- exports.getDeprecatedDefaultLambdaResponse = getDeprecatedDefaultLambdaResponse;
49
45
  const BODY_FROM_INPUT_PATH = "$input.path('$').body";
50
46
  /// @deprecated
51
47
  const messageSchema = {
52
- schema: aws_apigateway_1.JsonSchemaVersion.DRAFT4,
53
- type: aws_apigateway_1.JsonSchemaType.OBJECT,
48
+ schema: JsonSchemaVersion.DRAFT4,
49
+ type: JsonSchemaType.OBJECT,
54
50
  description: "Response with message",
55
51
  properties: {
56
52
  message: {
57
- type: aws_apigateway_1.JsonSchemaType.STRING,
53
+ type: JsonSchemaType.STRING,
58
54
  description: "Response message",
59
55
  },
60
56
  },
61
57
  };
62
58
  /// @deprecated
63
- exports.MessageModel = {
64
- contentType: mediatypes_1.MediaType.APPLICATION_JSON,
59
+ export const MessageModel = {
60
+ contentType: MediaType.APPLICATION_JSON,
65
61
  modelName: "MessageResponseModel",
66
62
  schema: messageSchema,
67
63
  };
68
64
  const NotFoundMessage = "Not found";
69
- exports.NotFoundResponse = JSON.stringify({ message: NotFoundMessage });
65
+ export const NotFoundResponse = JSON.stringify({ message: NotFoundMessage });
70
66
  const InternalServerErrorMessage = "Error";
71
67
  const InternalServerErrorResponse = JSON.stringify({
72
68
  message: InternalServerErrorMessage,
@@ -74,22 +70,22 @@ const InternalServerErrorResponse = JSON.stringify({
74
70
  const BadRequestMessage = "Bad request";
75
71
  const BadRequestResponse = JSON.stringify({ message: BadRequestMessage });
76
72
  /// @deprecated
77
- exports.BadRequestResponseTemplate = {
78
- [mediatypes_1.MediaType.APPLICATION_JSON]: BadRequestResponse,
73
+ export const BadRequestResponseTemplate = {
74
+ [MediaType.APPLICATION_JSON]: BadRequestResponse,
79
75
  };
80
76
  /// @deprecated
81
- exports.NotFoundResponseTemplate = {
82
- [mediatypes_1.MediaType.APPLICATION_JSON]: exports.NotFoundResponse,
77
+ export const NotFoundResponseTemplate = {
78
+ [MediaType.APPLICATION_JSON]: NotFoundResponse,
83
79
  };
84
80
  /// @deprecated
85
- exports.XmlResponseTemplate = {
86
- [mediatypes_1.MediaType.APPLICATION_XML]: BODY_FROM_INPUT_PATH,
81
+ export const XmlResponseTemplate = {
82
+ [MediaType.APPLICATION_XML]: BODY_FROM_INPUT_PATH,
87
83
  };
88
84
  /// @deprecated
89
- exports.InternalServerErrorResponseTemplate = {
90
- [mediatypes_1.MediaType.APPLICATION_JSON]: InternalServerErrorResponse,
85
+ export const InternalServerErrorResponseTemplate = {
86
+ [MediaType.APPLICATION_JSON]: InternalServerErrorResponse,
91
87
  };
92
- class DigitrafficMethodResponse {
88
+ export class DigitrafficMethodResponse {
93
89
  static response(statusCode, model, mediaType, disableCors = false, deprecation = false) {
94
90
  return {
95
91
  statusCode,
@@ -107,15 +103,14 @@ class DigitrafficMethodResponse {
107
103
  },
108
104
  };
109
105
  }
110
- static response200(model, mediaType = mediatypes_1.MediaType.APPLICATION_JSON) {
106
+ static response200(model, mediaType = MediaType.APPLICATION_JSON) {
111
107
  return DigitrafficMethodResponse.response("200", model, mediaType, false);
112
108
  }
113
- static response500(model = aws_apigateway_1.Model.EMPTY_MODEL, mediaType = mediatypes_1.MediaType.APPLICATION_JSON) {
109
+ static response500(model = Model.EMPTY_MODEL, mediaType = MediaType.APPLICATION_JSON) {
114
110
  return DigitrafficMethodResponse.response("500", model, mediaType, false);
115
111
  }
116
- static response400(model = aws_apigateway_1.Model.EMPTY_MODEL, mediaType = mediatypes_1.MediaType.APPLICATION_JSON) {
112
+ static response400(model = Model.EMPTY_MODEL, mediaType = MediaType.APPLICATION_JSON) {
117
113
  return DigitrafficMethodResponse.response("400", model, mediaType, false);
118
114
  }
119
115
  }
120
- exports.DigitrafficMethodResponse = DigitrafficMethodResponse;
121
- //# sourceMappingURL=response.js.map
116
+ //# sourceMappingURL=response.mjs.map
@@ -1,7 +1,6 @@
1
- import { LambdaIntegration, MethodResponse, IntegrationResponse, PassthroughBehavior } from "aws-cdk-lib/aws-apigateway";
1
+ import { LambdaIntegration, MethodResponse, IntegrationResponse, PassthroughBehavior, type IModel } from "aws-cdk-lib/aws-apigateway";
2
2
  import { Function as AWSFunction } from "aws-cdk-lib/aws-lambda";
3
- import { IModel } from "aws-cdk-lib/aws-apigateway/lib/model";
4
- import { MediaType } from "../../types/mediatypes";
3
+ import { MediaType } from "../../types/mediatypes.mjs";
5
4
  export declare const RESPONSE_200_OK: IntegrationResponse;
6
5
  export declare const RESPONSE_400_BAD_REQUEST: IntegrationResponse;
7
6
  export declare const RESPONSE_500_SERVER_ERROR: IntegrationResponse;
@@ -0,0 +1,78 @@
1
+ import { InternalServerErrorResponseTemplate, XmlResponseTemplate, NotFoundResponseTemplate, BadRequestResponseTemplate, } from "./response.mjs";
2
+ import { LambdaIntegration, PassthroughBehavior } from "aws-cdk-lib/aws-apigateway";
3
+ import { BAD_REQUEST_MESSAGE, ERROR_MESSAGE, NOT_FOUND_MESSAGE, } from "../../types/errors.mjs";
4
+ /// @deprecated
5
+ export const RESPONSE_200_OK = {
6
+ statusCode: "200",
7
+ };
8
+ /// @deprecated
9
+ export const RESPONSE_400_BAD_REQUEST = {
10
+ statusCode: "400",
11
+ selectionPattern: BAD_REQUEST_MESSAGE,
12
+ responseTemplates: BadRequestResponseTemplate,
13
+ };
14
+ /// @deprecated
15
+ export const RESPONSE_500_SERVER_ERROR = {
16
+ statusCode: "500",
17
+ selectionPattern: ERROR_MESSAGE,
18
+ responseTemplates: InternalServerErrorResponseTemplate,
19
+ };
20
+ /// @deprecated
21
+ const RESPONSE_XML = {
22
+ responseTemplates: XmlResponseTemplate,
23
+ };
24
+ /// @deprecated
25
+ export const RESPONSE_CORS_INTEGRATION = {
26
+ responseParameters: {
27
+ "method.response.header.Access-Control-Allow-Origin": "'*'",
28
+ },
29
+ };
30
+ /// @deprecated
31
+ export const RESPONSE_404_NOT_FOUND = {
32
+ statusCode: "404",
33
+ selectionPattern: NOT_FOUND_MESSAGE,
34
+ responseTemplates: NotFoundResponseTemplate,
35
+ };
36
+ /**
37
+ * @deprecated Use DigitrafficMethodResponse
38
+ */
39
+ export function methodResponse(status, contentType, model, parameters) {
40
+ return {
41
+ statusCode: status,
42
+ responseModels: {
43
+ [contentType]: model,
44
+ },
45
+ responseParameters: parameters ?? {},
46
+ };
47
+ }
48
+ /**
49
+ * Creates a default Lambda integration for a REST API resource _root_
50
+ * @param lambdaFunction The Lambda function
51
+ * @param options Options
52
+ *
53
+ * @deprecated Use DigitrafficIntegration
54
+ */
55
+ export function defaultIntegration(lambdaFunction, options) {
56
+ return new LambdaIntegration(lambdaFunction, {
57
+ proxy: false,
58
+ integrationResponses: options?.responses ?? [
59
+ getResponse(RESPONSE_200_OK, options),
60
+ getResponse(RESPONSE_400_BAD_REQUEST, options),
61
+ getResponse(RESPONSE_404_NOT_FOUND, options),
62
+ getResponse(RESPONSE_500_SERVER_ERROR, options),
63
+ ],
64
+ requestParameters: options?.requestParameters ?? {},
65
+ requestTemplates: options?.requestTemplates ?? {},
66
+ passthroughBehavior: options?.passthroughBehavior ?? PassthroughBehavior.WHEN_NO_MATCH,
67
+ });
68
+ }
69
+ export function getResponse(response, options) {
70
+ if (options?.xml) {
71
+ response = { ...response, ...RESPONSE_XML };
72
+ }
73
+ if (!options?.disableCors) {
74
+ response = { ...response, ...RESPONSE_CORS_INTEGRATION };
75
+ }
76
+ return response;
77
+ }
78
+ //# sourceMappingURL=responses.mjs.map
@@ -1,5 +1,5 @@
1
1
  import { MockIntegration, Resource } from "aws-cdk-lib/aws-apigateway";
2
- import { MediaType } from "../../types/mediatypes";
2
+ import { MediaType } from "../../types/mediatypes.mjs";
3
3
  /**
4
4
  * Static integration, that returns the given response with given mediaType from given resource.
5
5
  *
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficStaticIntegration = void 0;
4
- const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
5
- const mediatypes_1 = require("../../types/mediatypes");
6
- const responses_1 = require("./responses");
1
+ import { MockIntegration, PassthroughBehavior, } from "aws-cdk-lib/aws-apigateway";
2
+ import { MediaType } from "../../types/mediatypes.mjs";
3
+ import { RESPONSE_CORS_INTEGRATION } from "./responses.mjs";
7
4
  const INTEGRATION_RESPONSE_200 = `{
8
5
  "statusCode": 200
9
6
  }`;
@@ -17,11 +14,11 @@ const METHOD_RESPONSE_200 = {
17
14
  * @param mediaType
18
15
  * @param response
19
16
  */
20
- class DigitrafficStaticIntegration extends aws_apigateway_1.MockIntegration {
17
+ export class DigitrafficStaticIntegration extends MockIntegration {
21
18
  constructor(resource, mediaType, response, enableCors = true, apiKeyRequired = true) {
22
19
  const integrationResponse = DigitrafficStaticIntegration.createIntegrationResponse(response, mediaType, enableCors);
23
20
  super({
24
- passthroughBehavior: aws_apigateway_1.PassthroughBehavior.WHEN_NO_TEMPLATES,
21
+ passthroughBehavior: PassthroughBehavior.WHEN_NO_TEMPLATES,
25
22
  requestTemplates: {
26
23
  [mediaType]: INTEGRATION_RESPONSE_200,
27
24
  },
@@ -37,7 +34,7 @@ class DigitrafficStaticIntegration extends aws_apigateway_1.MockIntegration {
37
34
  });
38
35
  }
39
36
  static json(resource, response, enableCors = true, apiKeyRequired = true) {
40
- return new DigitrafficStaticIntegration(resource, mediatypes_1.MediaType.APPLICATION_JSON, JSON.stringify(response), enableCors, apiKeyRequired);
37
+ return new DigitrafficStaticIntegration(resource, MediaType.APPLICATION_JSON, JSON.stringify(response), enableCors, apiKeyRequired);
41
38
  }
42
39
  static createIntegrationResponse(response, mediaType, enableCors) {
43
40
  const integrationResponse = {
@@ -47,7 +44,7 @@ class DigitrafficStaticIntegration extends aws_apigateway_1.MockIntegration {
47
44
  },
48
45
  };
49
46
  return enableCors
50
- ? { ...integrationResponse, ...responses_1.RESPONSE_CORS_INTEGRATION }
47
+ ? { ...integrationResponse, ...RESPONSE_CORS_INTEGRATION }
51
48
  : integrationResponse;
52
49
  }
53
50
  static createMethodResponse(enableCors) {
@@ -56,7 +53,6 @@ class DigitrafficStaticIntegration extends aws_apigateway_1.MockIntegration {
56
53
  : METHOD_RESPONSE_200;
57
54
  }
58
55
  }
59
- exports.DigitrafficStaticIntegration = DigitrafficStaticIntegration;
60
56
  function corsMethod(response) {
61
57
  return {
62
58
  ...response,
@@ -67,4 +63,4 @@ function corsMethod(response) {
67
63
  },
68
64
  };
69
65
  }
70
- //# sourceMappingURL=static-integration.js.map
66
+ //# sourceMappingURL=static-integration.mjs.map
@@ -1,5 +1,5 @@
1
1
  import { Construct } from "constructs";
2
- import { CanaryParameters } from "./canary-parameters";
2
+ import { CanaryParameters } from "./canary-parameters.mjs";
3
3
  import { Canary } from "aws-cdk-lib/aws-synthetics";
4
4
  export declare class CanaryAlarm {
5
5
  constructor(stack: Construct, canary: Canary, params: CanaryParameters);
@@ -0,0 +1,20 @@
1
+ import { Alarm, ComparisonOperator } from "aws-cdk-lib/aws-cloudwatch";
2
+ import { SnsAction } from "aws-cdk-lib/aws-cloudwatch-actions";
3
+ import { Topic } from "aws-cdk-lib/aws-sns";
4
+ export class CanaryAlarm {
5
+ constructor(stack, canary, params) {
6
+ const alarmName = params.alarm?.alarmName ?? `${params.name}-alarm`;
7
+ const alarm = new Alarm(stack, alarmName, {
8
+ alarmName,
9
+ alarmDescription: params.alarm?.description ?? "",
10
+ metric: canary.metricSuccessPercent(),
11
+ evaluationPeriods: params.alarm?.evalutionPeriods ?? 1,
12
+ threshold: params.alarm?.threshold ?? 100,
13
+ comparisonOperator: ComparisonOperator.LESS_THAN_THRESHOLD,
14
+ });
15
+ if (params.alarm?.topicArn) {
16
+ alarm.addAlarmAction(new SnsAction(Topic.fromTopicArn(stack, `${alarmName}-action`, params.alarm.topicArn)));
17
+ }
18
+ }
19
+ }
20
+ //# sourceMappingURL=canary-alarm.mjs.map
@@ -0,0 +1,4 @@
1
+ export const ENV_API_KEY = "apiKeyId";
2
+ export const ENV_HOSTNAME = "hostname";
3
+ export const ENV_SECRET = "secret";
4
+ //# sourceMappingURL=canary-keys.mjs.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=canary-parameters.mjs.map
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficCanaryRole = void 0;
4
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
1
+ import { ManagedPolicy, PolicyStatement, Role, ServicePrincipal, } from "aws-cdk-lib/aws-iam";
5
2
  const BASE_POLICY_STATEMENT_PROPS = {
6
3
  actions: [
7
4
  "logs:CreateLogStream",
@@ -21,16 +18,16 @@ const CLOUDWATCH_STATEMENT_PROPS = {
21
18
  },
22
19
  },
23
20
  };
24
- class DigitrafficCanaryRole extends aws_iam_1.Role {
21
+ export class DigitrafficCanaryRole extends Role {
25
22
  constructor(stack, canaryName) {
26
23
  super(stack, "canary-role-" + canaryName, {
27
- assumedBy: new aws_iam_1.ServicePrincipal("lambda.amazonaws.com"),
24
+ assumedBy: new ServicePrincipal("lambda.amazonaws.com"),
28
25
  managedPolicies: [
29
- aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName("CloudWatchSyntheticsFullAccess"),
26
+ ManagedPolicy.fromAwsManagedPolicyName("CloudWatchSyntheticsFullAccess"),
30
27
  ],
31
28
  });
32
- this.addToPolicy(new aws_iam_1.PolicyStatement(BASE_POLICY_STATEMENT_PROPS));
33
- this.addToPolicy(new aws_iam_1.PolicyStatement(CLOUDWATCH_STATEMENT_PROPS));
29
+ this.addToPolicy(new PolicyStatement(BASE_POLICY_STATEMENT_PROPS));
30
+ this.addToPolicy(new PolicyStatement(CLOUDWATCH_STATEMENT_PROPS));
34
31
  }
35
32
  /**
36
33
  * Provides permissions to access resources within a VPC.
@@ -39,7 +36,7 @@ class DigitrafficCanaryRole extends aws_iam_1.Role {
39
36
  // Won't work :(
40
37
  // this.addToPolicy(new PolicyStatement(DB_STATEMENT_PROPS));
41
38
  // Works
42
- this.addManagedPolicy(aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSLambdaVPCAccessExecutionRole"));
39
+ this.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSLambdaVPCAccessExecutionRole"));
43
40
  return this;
44
41
  }
45
42
  /**
@@ -47,9 +44,8 @@ class DigitrafficCanaryRole extends aws_iam_1.Role {
47
44
  * A UrlCanary needs these permissions to e.g. access a private API Gateway endpoint in a VPC.
48
45
  */
49
46
  withVpcAccess() {
50
- this.addManagedPolicy(aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSLambdaVPCAccessExecutionRole"));
47
+ this.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSLambdaVPCAccessExecutionRole"));
51
48
  return this;
52
49
  }
53
50
  }
54
- exports.DigitrafficCanaryRole = DigitrafficCanaryRole;
55
- //# sourceMappingURL=canary-role.js.map
51
+ //# sourceMappingURL=canary-role.mjs.map
@@ -1,8 +1,8 @@
1
1
  import { Canary } from "aws-cdk-lib/aws-synthetics";
2
2
  import { Role } from "aws-cdk-lib/aws-iam";
3
- import { CanaryParameters } from "./canary-parameters";
3
+ import { CanaryParameters } from "./canary-parameters.mjs";
4
4
  import { Construct } from "constructs";
5
- import { LambdaEnvironment } from "../stack/lambda-configs";
5
+ import { LambdaEnvironment } from "../stack/lambda-configs.mjs";
6
6
  export declare class DigitrafficCanary extends Canary {
7
7
  constructor(scope: Construct, canaryName: string, role: Role, params: CanaryParameters, environmentVariables: LambdaEnvironment);
8
8
  }
@@ -0,0 +1,26 @@
1
+ import { Duration } from "aws-cdk-lib";
2
+ import { AssetCode, Canary, Runtime, Schedule, Test, } from "aws-cdk-lib/aws-synthetics";
3
+ import { CanaryAlarm } from "./canary-alarm.mjs";
4
+ export class DigitrafficCanary extends Canary {
5
+ constructor(scope, canaryName, role, params, environmentVariables) {
6
+ super(scope, canaryName, {
7
+ runtime: Runtime.SYNTHETICS_NODEJS_PUPPETEER_4_0,
8
+ role,
9
+ test: Test.custom({
10
+ code: new AssetCode("dist", {
11
+ exclude: ["lambda", "out", "canaries"],
12
+ }),
13
+ handler: params.handler,
14
+ }),
15
+ environmentVariables: {
16
+ ...environmentVariables,
17
+ ...params.canaryEnv,
18
+ },
19
+ canaryName,
20
+ schedule: params.schedule ?? Schedule.rate(Duration.minutes(15)),
21
+ });
22
+ this.artifactsBucket.grantWrite(role);
23
+ new CanaryAlarm(scope, this, params);
24
+ }
25
+ }
26
+ //# sourceMappingURL=canary.mjs.map
@@ -1,8 +1,8 @@
1
1
  import { Role } from "aws-cdk-lib/aws-iam";
2
2
  import { ISecret } from "aws-cdk-lib/aws-secretsmanager";
3
- import { CanaryParameters } from "./canary-parameters";
4
- import { DigitrafficCanary } from "./canary";
5
- import { DigitrafficStack } from "../stack/stack";
3
+ import { CanaryParameters } from "./canary-parameters.mjs";
4
+ import { DigitrafficCanary } from "./canary.mjs";
5
+ import { DigitrafficStack } from "../stack/stack.mjs";
6
6
  export declare class DatabaseCanary extends DigitrafficCanary {
7
7
  constructor(stack: DigitrafficStack, role: Role, secret: ISecret, params: CanaryParameters);
8
8
  static create(stack: DigitrafficStack, role: Role, params: CanaryParameters): DatabaseCanary;
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DatabaseCanary = void 0;
4
- const aws_synthetics_1 = require("aws-cdk-lib/aws-synthetics");
5
- const aws_events_1 = require("aws-cdk-lib/aws-events");
6
- const aws_cdk_lib_1 = require("aws-cdk-lib");
7
- const canary_1 = require("./canary");
8
- class DatabaseCanary extends canary_1.DigitrafficCanary {
1
+ import { CfnCanary } from "aws-cdk-lib/aws-synthetics";
2
+ import { Schedule } from "aws-cdk-lib/aws-events";
3
+ import { Duration } from "aws-cdk-lib";
4
+ import { DigitrafficCanary } from "./canary.mjs";
5
+ export class DatabaseCanary extends DigitrafficCanary {
9
6
  constructor(stack, role, secret, params) {
10
7
  const canaryName = `${params.name}-db`;
11
8
  const environmentVariables = stack.createDefaultLambdaEnvironment(`Synthetics-${canaryName}`);
@@ -14,7 +11,7 @@ class DatabaseCanary extends canary_1.DigitrafficCanary {
14
11
  this.artifactsBucket.grantWrite(this.role);
15
12
  secret.grantRead(this.role);
16
13
  // need to override vpc and security group, can't do this with cdk
17
- if (this.node.defaultChild instanceof aws_synthetics_1.CfnCanary) {
14
+ if (this.node.defaultChild instanceof CfnCanary) {
18
15
  const subnetIds = stack.vpc === undefined
19
16
  ? []
20
17
  : stack.vpc.privateSubnets.map((subnet) => subnet.subnetId);
@@ -33,7 +30,7 @@ class DatabaseCanary extends canary_1.DigitrafficCanary {
33
30
  return new DatabaseCanary(stack, role, secret, {
34
31
  ...{
35
32
  secret: stack.configuration.secretId,
36
- schedule: aws_events_1.Schedule.rate(aws_cdk_lib_1.Duration.hours(1)),
33
+ schedule: Schedule.rate(Duration.hours(1)),
37
34
  handler: `${params.name}.handler`,
38
35
  },
39
36
  ...params,
@@ -52,7 +49,7 @@ class DatabaseCanary extends canary_1.DigitrafficCanary {
52
49
  return new DatabaseCanary(stack, role, secret, {
53
50
  ...{
54
51
  secret: stack.configuration.secretId,
55
- schedule: aws_events_1.Schedule.rate(aws_cdk_lib_1.Duration.hours(1)),
52
+ schedule: Schedule.rate(Duration.hours(1)),
56
53
  handler: `${name}-db.handler`,
57
54
  name: canaryName,
58
55
  alarm: {
@@ -66,5 +63,4 @@ class DatabaseCanary extends canary_1.DigitrafficCanary {
66
63
  });
67
64
  }
68
65
  }
69
- exports.DatabaseCanary = DatabaseCanary;
70
- //# sourceMappingURL=database-canary.js.map
66
+ //# sourceMappingURL=database-canary.mjs.map
@@ -1,4 +1,4 @@
1
- import { Countable } from "../../../database/models";
1
+ import { Countable } from "../../../database/models.mjs";
2
2
  declare abstract class DatabaseCheck<T> {
3
3
  readonly name: string;
4
4
  readonly sql: string;