@digitraffic/common 2022.10.14-1 → 2022.10.28-2

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 (334) hide show
  1. package/{aws → dist/aws}/infra/api/integration.d.ts +0 -0
  2. package/dist/aws/infra/api/integration.js +52 -0
  3. package/dist/aws/infra/api/integration.js.map +1 -0
  4. package/{aws → dist/aws}/infra/api/response.d.ts +0 -0
  5. package/dist/aws/infra/api/response.js +61 -0
  6. package/dist/aws/infra/api/response.js.map +1 -0
  7. package/{aws → dist/aws}/infra/api/responses.d.ts +3 -3
  8. package/dist/aws/infra/api/responses.js +82 -0
  9. package/dist/aws/infra/api/responses.js.map +1 -0
  10. package/{aws → dist/aws}/infra/api/static-integration.d.ts +0 -0
  11. package/dist/aws/infra/api/static-integration.js +54 -0
  12. package/dist/aws/infra/api/static-integration.js.map +1 -0
  13. package/{aws → dist/aws}/infra/canaries/canary-alarm.d.ts +0 -0
  14. package/dist/aws/infra/canaries/canary-alarm.js +26 -0
  15. package/dist/aws/infra/canaries/canary-alarm.js.map +1 -0
  16. package/dist/aws/infra/canaries/canary-keys.d.ts +3 -0
  17. package/dist/aws/infra/canaries/canary-keys.js +7 -0
  18. package/dist/aws/infra/canaries/canary-keys.js.map +1 -0
  19. package/{aws → dist/aws}/infra/canaries/canary-parameters.d.ts +0 -0
  20. package/dist/aws/infra/canaries/canary-parameters.js +3 -0
  21. package/dist/aws/infra/canaries/canary-parameters.js.map +1 -0
  22. package/{aws → dist/aws}/infra/canaries/canary-role.d.ts +0 -0
  23. package/dist/aws/infra/canaries/canary-role.js +46 -0
  24. package/dist/aws/infra/canaries/canary-role.js.map +1 -0
  25. package/{aws → dist/aws}/infra/canaries/canary.d.ts +0 -0
  26. package/dist/aws/infra/canaries/canary.js +32 -0
  27. package/dist/aws/infra/canaries/canary.js.map +1 -0
  28. package/{aws → dist/aws}/infra/canaries/database-canary.d.ts +0 -0
  29. package/dist/aws/infra/canaries/database-canary.js +70 -0
  30. package/dist/aws/infra/canaries/database-canary.js.map +1 -0
  31. package/{aws → dist/aws}/infra/canaries/database-checker.d.ts +2 -2
  32. package/dist/aws/infra/canaries/database-checker.js +103 -0
  33. package/dist/aws/infra/canaries/database-checker.js.map +1 -0
  34. package/{aws → dist/aws}/infra/canaries/url-canary.d.ts +0 -3
  35. package/dist/aws/infra/canaries/url-canary.js +47 -0
  36. package/dist/aws/infra/canaries/url-canary.js.map +1 -0
  37. package/{aws → dist/aws}/infra/canaries/url-checker.d.ts +0 -0
  38. package/dist/aws/infra/canaries/url-checker.js +252 -0
  39. package/dist/aws/infra/canaries/url-checker.js.map +1 -0
  40. package/{aws → dist/aws}/infra/documentation.d.ts +0 -0
  41. package/dist/aws/infra/documentation.js +95 -0
  42. package/dist/aws/infra/documentation.js.map +1 -0
  43. package/{aws → dist/aws}/infra/scheduler.d.ts +7 -7
  44. package/dist/aws/infra/scheduler.js +31 -0
  45. package/dist/aws/infra/scheduler.js.map +1 -0
  46. package/{aws → dist/aws}/infra/security-rule.d.ts +0 -0
  47. package/dist/aws/infra/security-rule.js +39 -0
  48. package/dist/aws/infra/security-rule.js.map +1 -0
  49. package/{aws → dist/aws}/infra/sqs-integration.d.ts +0 -0
  50. package/dist/aws/infra/sqs-integration.js +93 -0
  51. package/dist/aws/infra/sqs-integration.js.map +1 -0
  52. package/{aws → dist/aws}/infra/sqs-queue.d.ts +0 -0
  53. package/dist/aws/infra/sqs-queue.js +130 -0
  54. package/dist/aws/infra/sqs-queue.js.map +1 -0
  55. package/{aws → dist/aws}/infra/stack/lambda-configs.d.ts +5 -5
  56. package/dist/aws/infra/stack/lambda-configs.js +105 -0
  57. package/dist/aws/infra/stack/lambda-configs.js.map +1 -0
  58. package/{aws → dist/aws}/infra/stack/monitoredfunction.d.ts +1 -1
  59. package/dist/aws/infra/stack/monitoredfunction.js +143 -0
  60. package/dist/aws/infra/stack/monitoredfunction.js.map +1 -0
  61. package/{aws → dist/aws}/infra/stack/rest_apis.d.ts +0 -0
  62. package/dist/aws/infra/stack/rest_apis.js +185 -0
  63. package/dist/aws/infra/stack/rest_apis.js.map +1 -0
  64. package/{aws → dist/aws}/infra/stack/stack-checking-aspect.d.ts +0 -0
  65. package/dist/aws/infra/stack/stack-checking-aspect.js +174 -0
  66. package/dist/aws/infra/stack/stack-checking-aspect.js.map +1 -0
  67. package/{aws → dist/aws}/infra/stack/stack.d.ts +5 -4
  68. package/dist/aws/infra/stack/stack.js +67 -0
  69. package/dist/aws/infra/stack/stack.js.map +1 -0
  70. package/{aws → dist/aws}/infra/stack/subscription.d.ts +3 -3
  71. package/dist/aws/infra/stack/subscription.js +42 -0
  72. package/dist/aws/infra/stack/subscription.js.map +1 -0
  73. package/{aws → dist/aws}/infra/usage-plans.d.ts +0 -0
  74. package/dist/aws/infra/usage-plans.js +42 -0
  75. package/dist/aws/infra/usage-plans.js.map +1 -0
  76. package/{aws → dist/aws}/runtime/apikey.d.ts +0 -0
  77. package/dist/aws/runtime/apikey.js +13 -0
  78. package/dist/aws/runtime/apikey.js.map +1 -0
  79. package/{aws → dist/aws}/runtime/digitraffic-integration-response.d.ts +0 -0
  80. package/dist/aws/runtime/digitraffic-integration-response.js +26 -0
  81. package/dist/aws/runtime/digitraffic-integration-response.js.map +1 -0
  82. package/dist/aws/runtime/environment.d.ts +1 -0
  83. package/dist/aws/runtime/environment.js +12 -0
  84. package/dist/aws/runtime/environment.js.map +1 -0
  85. package/{aws → dist/aws}/runtime/messaging.d.ts +0 -0
  86. package/dist/aws/runtime/messaging.js +31 -0
  87. package/dist/aws/runtime/messaging.js.map +1 -0
  88. package/{aws → dist/aws}/runtime/s3.d.ts +0 -0
  89. package/dist/aws/runtime/s3.js +30 -0
  90. package/dist/aws/runtime/s3.js.map +1 -0
  91. package/{aws → dist/aws}/runtime/secrets/dbsecret.d.ts +0 -0
  92. package/dist/aws/runtime/secrets/dbsecret.js +96 -0
  93. package/dist/aws/runtime/secrets/dbsecret.js.map +1 -0
  94. package/{aws → dist/aws}/runtime/secrets/proxy-holder.d.ts +0 -0
  95. package/dist/aws/runtime/secrets/proxy-holder.js +27 -0
  96. package/dist/aws/runtime/secrets/proxy-holder.js.map +1 -0
  97. package/{aws → dist/aws}/runtime/secrets/rds-holder.d.ts +0 -0
  98. package/dist/aws/runtime/secrets/rds-holder.js +27 -0
  99. package/dist/aws/runtime/secrets/rds-holder.js.map +1 -0
  100. package/{aws → dist/aws}/runtime/secrets/secret-holder.d.ts +0 -0
  101. package/dist/aws/runtime/secrets/secret-holder.js +76 -0
  102. package/dist/aws/runtime/secrets/secret-holder.js.map +1 -0
  103. package/{aws → dist/aws}/runtime/secrets/secret.d.ts +0 -0
  104. package/dist/aws/runtime/secrets/secret.js +43 -0
  105. package/dist/aws/runtime/secrets/secret.js.map +1 -0
  106. package/{aws → dist/aws}/types/errors.d.ts +4 -0
  107. package/dist/aws/types/errors.js +16 -0
  108. package/dist/aws/types/errors.js.map +1 -0
  109. package/{aws → dist/aws}/types/lambda-response.d.ts +4 -3
  110. package/dist/aws/types/lambda-response.js +33 -0
  111. package/dist/aws/types/lambda-response.js.map +1 -0
  112. package/{aws → dist/aws}/types/mediatypes.d.ts +1 -1
  113. package/dist/aws/types/mediatypes.js +16 -0
  114. package/dist/aws/types/mediatypes.js.map +1 -0
  115. package/{aws → dist/aws}/types/model-with-reference.d.ts +0 -0
  116. package/dist/aws/types/model-with-reference.js +3 -0
  117. package/dist/aws/types/model-with-reference.js.map +1 -0
  118. package/{aws → dist/aws}/types/proxytypes.d.ts +0 -0
  119. package/dist/aws/types/proxytypes.js +3 -0
  120. package/dist/aws/types/proxytypes.js.map +1 -0
  121. package/{aws → dist/aws}/types/tags.d.ts +0 -0
  122. package/dist/aws/types/tags.js +7 -0
  123. package/dist/aws/types/tags.js.map +1 -0
  124. package/{database → dist/database}/cached.d.ts +0 -0
  125. package/dist/database/cached.js +32 -0
  126. package/dist/database/cached.js.map +1 -0
  127. package/{database → dist/database}/database.d.ts +0 -0
  128. package/dist/database/database.js +70 -0
  129. package/dist/database/database.js.map +1 -0
  130. package/{database → dist/database}/last-updated.d.ts +0 -0
  131. package/dist/database/last-updated.js +54 -0
  132. package/dist/database/last-updated.js.map +1 -0
  133. package/dist/database/models.d.ts +6 -0
  134. package/dist/database/models.js +3 -0
  135. package/dist/database/models.js.map +1 -0
  136. package/{marine → dist/marine}/id_utils.d.ts +0 -0
  137. package/dist/marine/id_utils.js +33 -0
  138. package/dist/marine/id_utils.js.map +1 -0
  139. package/{marine → dist/marine}/rtz.d.ts +0 -0
  140. package/dist/marine/rtz.js +3 -0
  141. package/dist/marine/rtz.js.map +1 -0
  142. package/{test → dist/test}/asserter.d.ts +0 -0
  143. package/dist/test/asserter.js +45 -0
  144. package/dist/test/asserter.js.map +1 -0
  145. package/{test → dist/test}/db-testutils.d.ts +1 -1
  146. package/dist/test/db-testutils.js +31 -0
  147. package/dist/test/db-testutils.js.map +1 -0
  148. package/{test → dist/test}/httpserver.d.ts +2 -1
  149. package/dist/test/httpserver.js +74 -0
  150. package/dist/test/httpserver.js.map +1 -0
  151. package/{test → dist/test}/secret.d.ts +0 -0
  152. package/dist/test/secret.js +25 -0
  153. package/dist/test/secret.js.map +1 -0
  154. package/{test → dist/test}/secrets-manager.d.ts +0 -0
  155. package/dist/test/secrets-manager.js +59 -0
  156. package/dist/test/secrets-manager.js.map +1 -0
  157. package/{test → dist/test}/testutils.d.ts +0 -0
  158. package/dist/test/testutils.js +44 -0
  159. package/dist/test/testutils.js.map +1 -0
  160. package/dist/types/either.d.ts +9 -0
  161. package/dist/types/either.js +3 -0
  162. package/dist/types/either.js.map +1 -0
  163. package/{types → dist/types}/input-error.d.ts +0 -0
  164. package/dist/types/input-error.js +7 -0
  165. package/dist/types/input-error.js.map +1 -0
  166. package/{types → dist/types}/language.d.ts +0 -0
  167. package/dist/types/language.js +10 -0
  168. package/dist/types/language.js.map +1 -0
  169. package/{types → dist/types}/traffictype.d.ts +0 -0
  170. package/dist/types/traffictype.js +13 -0
  171. package/dist/types/traffictype.js.map +1 -0
  172. package/{types → dist/types}/validator.d.ts +0 -0
  173. package/dist/types/validator.js +14 -0
  174. package/dist/types/validator.js.map +1 -0
  175. package/{utils → dist/utils}/api-model.d.ts +0 -0
  176. package/dist/utils/api-model.js +129 -0
  177. package/dist/utils/api-model.js.map +1 -0
  178. package/{utils → dist/utils}/base64.d.ts +0 -0
  179. package/dist/utils/base64.js +21 -0
  180. package/dist/utils/base64.js.map +1 -0
  181. package/{utils → dist/utils}/date-utils.d.ts +0 -0
  182. package/dist/utils/date-utils.js +34 -0
  183. package/dist/utils/date-utils.js.map +1 -0
  184. package/{utils → dist/utils}/geojson-types.d.ts +0 -0
  185. package/dist/utils/geojson-types.js +18 -0
  186. package/dist/utils/geojson-types.js.map +1 -0
  187. package/{utils → dist/utils}/geometry.d.ts +0 -0
  188. package/dist/utils/geometry.js +164 -0
  189. package/dist/utils/geometry.js.map +1 -0
  190. package/{utils → dist/utils}/retry.d.ts +0 -0
  191. package/dist/utils/retry.js +50 -0
  192. package/dist/utils/retry.js.map +1 -0
  193. package/{utils → dist/utils}/slack.d.ts +0 -0
  194. package/dist/utils/slack.js +25 -0
  195. package/dist/utils/slack.js.map +1 -0
  196. package/{utils → dist/utils}/utils.d.ts +24 -0
  197. package/dist/utils/utils.js +75 -0
  198. package/dist/utils/utils.js.map +1 -0
  199. package/package.json +12 -10
  200. package/src/@types/geojson-validation/index.d.ts +4 -0
  201. package/src/aws/infra/api/integration.ts +73 -0
  202. package/src/aws/infra/api/response.ts +67 -0
  203. package/src/aws/infra/api/responses.ts +124 -0
  204. package/src/aws/infra/api/static-integration.ts +62 -0
  205. package/src/aws/infra/canaries/canary-alarm.ts +31 -0
  206. package/src/aws/infra/canaries/canary-keys.ts +3 -0
  207. package/src/aws/infra/canaries/canary-parameters.ts +19 -0
  208. package/src/aws/infra/canaries/canary-role.ts +47 -0
  209. package/src/aws/infra/canaries/canary.ts +46 -0
  210. package/src/aws/infra/canaries/database-canary.ts +98 -0
  211. package/src/aws/infra/canaries/database-checker.ts +155 -0
  212. package/src/aws/infra/canaries/url-canary.ts +74 -0
  213. package/src/aws/infra/canaries/url-checker.ts +366 -0
  214. package/src/aws/infra/documentation.ts +124 -0
  215. package/src/aws/infra/scheduler.ts +59 -0
  216. package/src/aws/infra/security-rule.ts +38 -0
  217. package/src/aws/infra/sqs-integration.ts +102 -0
  218. package/src/aws/infra/sqs-queue.ts +148 -0
  219. package/src/aws/infra/stack/lambda-configs.ts +207 -0
  220. package/src/aws/infra/stack/monitoredfunction.ts +342 -0
  221. package/src/aws/infra/stack/rest_apis.ts +223 -0
  222. package/src/aws/infra/stack/stack-checking-aspect.ts +279 -0
  223. package/src/aws/infra/stack/stack.ts +145 -0
  224. package/src/aws/infra/stack/subscription.ts +58 -0
  225. package/src/aws/infra/usage-plans.ts +41 -0
  226. package/src/aws/runtime/apikey.ts +9 -0
  227. package/src/aws/runtime/digitraffic-integration-response.ts +28 -0
  228. package/src/aws/runtime/environment.ts +9 -0
  229. package/src/aws/runtime/messaging.ts +26 -0
  230. package/src/aws/runtime/s3.ts +44 -0
  231. package/src/aws/runtime/secrets/dbsecret.ts +116 -0
  232. package/src/aws/runtime/secrets/proxy-holder.ts +37 -0
  233. package/src/aws/runtime/secrets/rds-holder.ts +33 -0
  234. package/src/aws/runtime/secrets/secret-holder.ts +116 -0
  235. package/src/aws/runtime/secrets/secret.ts +50 -0
  236. package/src/aws/types/errors.ts +14 -0
  237. package/src/aws/types/lambda-response.ts +43 -0
  238. package/src/aws/types/mediatypes.ts +11 -0
  239. package/src/aws/types/model-with-reference.ts +8 -0
  240. package/src/aws/types/proxytypes.ts +27 -0
  241. package/src/aws/types/tags.ts +3 -0
  242. package/src/database/cached.ts +35 -0
  243. package/src/database/database.ts +96 -0
  244. package/src/database/last-updated.ts +59 -0
  245. package/src/database/models.ts +7 -0
  246. package/src/marine/id_utils.ts +30 -0
  247. package/src/marine/rtz.ts +57 -0
  248. package/src/test/asserter.ts +48 -0
  249. package/src/test/db-testutils.ts +44 -0
  250. package/src/test/httpserver.ts +96 -0
  251. package/src/test/secret.ts +23 -0
  252. package/src/test/secrets-manager.ts +34 -0
  253. package/src/test/testutils.ts +39 -0
  254. package/src/types/either.ts +3 -0
  255. package/src/types/input-error.ts +2 -0
  256. package/src/types/language.ts +3 -0
  257. package/src/types/traffictype.ts +8 -0
  258. package/src/types/validator.ts +10 -0
  259. package/src/utils/api-model.ts +133 -0
  260. package/src/utils/base64.ts +16 -0
  261. package/src/utils/date-utils.ts +30 -0
  262. package/src/utils/geojson-types.ts +22 -0
  263. package/src/utils/geometry.ts +164 -0
  264. package/src/utils/retry.ts +49 -0
  265. package/src/utils/slack.ts +22 -0
  266. package/src/utils/utils.ts +105 -0
  267. package/aws/index.d.ts +0 -1
  268. package/aws/infra/api/index.d.ts +0 -1
  269. package/aws/infra/api/integration.js +0 -52
  270. package/aws/infra/api/response.js +0 -61
  271. package/aws/infra/api/responses.js +0 -79
  272. package/aws/infra/api/static-integration.js +0 -54
  273. package/aws/infra/canaries/canary-alarm.js +0 -26
  274. package/aws/infra/canaries/canary-parameters.js +0 -3
  275. package/aws/infra/canaries/canary-role.js +0 -46
  276. package/aws/infra/canaries/canary.js +0 -29
  277. package/aws/infra/canaries/database-canary.js +0 -55
  278. package/aws/infra/canaries/database-checker.js +0 -109
  279. package/aws/infra/canaries/url-canary.js +0 -46
  280. package/aws/infra/canaries/url-checker.js +0 -238
  281. package/aws/infra/documentation.js +0 -95
  282. package/aws/infra/scheduler.js +0 -31
  283. package/aws/infra/security-rule.js +0 -39
  284. package/aws/infra/sqs-integration.js +0 -93
  285. package/aws/infra/sqs-queue.js +0 -130
  286. package/aws/infra/stack/lambda-configs.js +0 -93
  287. package/aws/infra/stack/monitoredfunction.js +0 -135
  288. package/aws/infra/stack/rest_apis.js +0 -185
  289. package/aws/infra/stack/stack-checking-aspect.js +0 -174
  290. package/aws/infra/stack/stack.js +0 -60
  291. package/aws/infra/stack/subscription.js +0 -41
  292. package/aws/infra/usage-plans.js +0 -42
  293. package/aws/runtime/apikey.js +0 -13
  294. package/aws/runtime/digitraffic-integration-response.js +0 -26
  295. package/aws/runtime/messaging.js +0 -31
  296. package/aws/runtime/s3.js +0 -30
  297. package/aws/runtime/secrets/dbsecret.js +0 -96
  298. package/aws/runtime/secrets/proxy-holder.js +0 -26
  299. package/aws/runtime/secrets/rds-holder.js +0 -26
  300. package/aws/runtime/secrets/secret-holder.js +0 -73
  301. package/aws/runtime/secrets/secret.js +0 -43
  302. package/aws/types/errors.js +0 -9
  303. package/aws/types/lambda-response.js +0 -28
  304. package/aws/types/mediatypes.js +0 -15
  305. package/aws/types/model-with-reference.js +0 -3
  306. package/aws/types/proxytypes.js +0 -3
  307. package/aws/types/tags.js +0 -7
  308. package/database/cached.js +0 -32
  309. package/database/database.js +0 -62
  310. package/database/last-updated.js +0 -54
  311. package/index.d.ts +0 -1
  312. package/index.js +0 -18
  313. package/marine/id_utils.js +0 -33
  314. package/marine/rtz.js +0 -3
  315. package/test/asserter.js +0 -45
  316. package/test/db-testutils.js +0 -31
  317. package/test/httpserver.js +0 -67
  318. package/test/secret.js +0 -25
  319. package/test/secrets-manager.js +0 -59
  320. package/test/testutils.js +0 -44
  321. package/types/index.d.ts +0 -1
  322. package/types/input-error.js +0 -7
  323. package/types/language.js +0 -10
  324. package/types/traffictype.js +0 -13
  325. package/types/validator.js +0 -14
  326. package/utils/api-model.js +0 -129
  327. package/utils/base64.js +0 -21
  328. package/utils/date-utils.js +0 -34
  329. package/utils/geojson-types.js +0 -18
  330. package/utils/geometry.js +0 -140
  331. package/utils/retry.js +0 -50
  332. package/utils/slack.js +0 -25
  333. package/utils/utils.js +0 -40
  334. package/yarn-error.log +0 -103
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inDatabaseReadonly = exports.inDatabase = exports.inTransaction = exports.initDbConnection = void 0;
4
+ const dbsecret_1 = require("../aws/runtime/secrets/dbsecret");
5
+ const utils_1 = require("../utils/utils");
6
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
7
+ const pgp = require("pg-promise")();
8
+ // convert numeric types to number instead of string
9
+ pgp.pg.types.setTypeParser(pgp.pg.types.builtins.INT8, (value) => {
10
+ return parseInt(value);
11
+ });
12
+ pgp.pg.types.setTypeParser(pgp.pg.types.builtins.FLOAT8, (value) => {
13
+ return parseFloat(value);
14
+ });
15
+ pgp.pg.types.setTypeParser(pgp.pg.types.builtins.NUMERIC, (value) => {
16
+ return parseFloat(value);
17
+ });
18
+ /**
19
+ * Creates a non-pooling database connection primarily used by Lambdas.
20
+ *
21
+ * Note! Using this method opens a new RDS connection on every invocation. It is advised to
22
+ * use RDS proxy to pool connections transparently.
23
+ * https://docs.amazonaws.cn/en_us/AmazonRDS/latest/AuroraUserGuide/rds-proxy.html
24
+ * @param username Username
25
+ * @param password Password
26
+ * @param applicationName name of application
27
+ * @param url Connection URL
28
+ * @param options pg-promise options
29
+ */
30
+ function initDbConnection(username, password, applicationName, url, options) {
31
+ const finalUrl = `postgresql://${username}:${password}@${url}?application_name=${applicationName}`;
32
+ return pgp(finalUrl, options);
33
+ }
34
+ exports.initDbConnection = initDbConnection;
35
+ function inTransaction(fn) {
36
+ return inDatabase((db) => db.tx((t) => fn(t)));
37
+ }
38
+ exports.inTransaction = inTransaction;
39
+ function inDatabase(fn) {
40
+ return doInDatabase(false, fn);
41
+ }
42
+ exports.inDatabase = inDatabase;
43
+ function inDatabaseReadonly(fn) {
44
+ return doInDatabase(true, fn);
45
+ }
46
+ exports.inDatabaseReadonly = inDatabaseReadonly;
47
+ async function doInDatabase(readonly, fn) {
48
+ const db_application = (0, utils_1.getEnvVariableSafe)(dbsecret_1.DatabaseEnvironmentKeys.DB_APPLICATION);
49
+ const db_ro_uri = (0, utils_1.getEnvVariableSafe)(dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI);
50
+ const db_uri = db_ro_uri.result === "ok"
51
+ ? db_ro_uri.value
52
+ : (0, utils_1.getEnvVariable)(dbsecret_1.DatabaseEnvironmentKeys.DB_URI);
53
+ const db = initDbConnection((0, utils_1.getEnvVariable)(dbsecret_1.DatabaseEnvironmentKeys.DB_USER), (0, utils_1.getEnvVariable)(dbsecret_1.DatabaseEnvironmentKeys.DB_PASS), db_application.result === "ok"
54
+ ? db_application.value
55
+ : "unknown-cdk-application", db_uri);
56
+ try {
57
+ // deallocate all prepared statements to allow for connection pooling
58
+ // DISCARD instead of DEALLOCATE as it didn't always clean all prepared statements
59
+ await db.none("DISCARD ALL");
60
+ return await fn(db);
61
+ }
62
+ catch (e) {
63
+ console.error("Error in db:", e);
64
+ throw e;
65
+ }
66
+ finally {
67
+ db.$pool.end();
68
+ }
69
+ }
70
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateUpdatedTimestamp = exports.getUpdatedTimestamp = exports.updateLastUpdatedWithSubtype = exports.updateLastUpdated = exports.getLastUpdatedWithSubtype = exports.getLastUpdated = exports.DataType = void 0;
4
+ var DataType;
5
+ (function (DataType) {
6
+ DataType["VS_DATEX2"] = "VS_DATEX2";
7
+ DataType["COUNTING_SITES_DATA"] = "COUNTING_SITES_DATA";
8
+ DataType["COUNTING_SITES_METADATA"] = "COUNTING_SITES_METADATA";
9
+ DataType["COUNTING_SITES_METADATA_CHECK"] = "COUNTING_SITES_METADATA_CHECK";
10
+ DataType["MAINTENANCE_TRACKING_DATA_CHECKED"] = "MAINTENANCE_TRACKING_DATA_CHECKED";
11
+ DataType["PERMIT_DATA"] = "PERMIT_DATA";
12
+ DataType["PERMIT_DATA_CHECK"] = "PERMIT_DATA_CHECK";
13
+ })(DataType = exports.DataType || (exports.DataType = {}));
14
+ const UNSET_SUBTYPE = '-';
15
+ function getLastUpdated(db, datatype) {
16
+ return db.oneOrNone("select updated from data_updated where data_type=$(datatype) and subtype=$(subtype)", {
17
+ datatype: datatype, subtype: UNSET_SUBTYPE,
18
+ }, (x) => x?.updated || null);
19
+ }
20
+ exports.getLastUpdated = getLastUpdated;
21
+ function getLastUpdatedWithSubtype(db, datatype, subtype) {
22
+ return db.oneOrNone("SELECT updated FROM data_updated WHERE data_type=$(datatype) AND subtype=$(subtype)", {
23
+ datatype: datatype, subtype: subtype,
24
+ }, (x) => x?.updated || null);
25
+ }
26
+ exports.getLastUpdatedWithSubtype = getLastUpdatedWithSubtype;
27
+ function updateLastUpdated(db, datatype, updated) {
28
+ return db.none(`insert into data_updated(id, data_type, updated)
29
+ values(nextval('seq_data_updated'), $(datatype), $(updated))
30
+ on conflict (data_type, subtype)
31
+ do update set updated = $(updated)`, { updated, datatype });
32
+ }
33
+ exports.updateLastUpdated = updateLastUpdated;
34
+ function updateLastUpdatedWithSubtype(db, datatype, subtype, updated) {
35
+ return db.none(`insert into data_updated(id, data_type, subtype, updated)
36
+ values(nextval('seq_data_updated'), $(datatype), $(subtype), $(updated))
37
+ on conflict (data_type, subtype)
38
+ do update set updated = $(updated)`, { updated, subtype, datatype });
39
+ }
40
+ exports.updateLastUpdatedWithSubtype = updateLastUpdatedWithSubtype;
41
+ function getUpdatedTimestamp(db, datatype) {
42
+ return db.oneOrNone("select updated_time as updated from updated_timestamp where updated_name=$(datatype)", {
43
+ datatype: datatype,
44
+ }, (x) => x?.updated || null);
45
+ }
46
+ exports.getUpdatedTimestamp = getUpdatedTimestamp;
47
+ function updateUpdatedTimestamp(db, datatype, date, by = '') {
48
+ return db.none(`insert into updated_timestamp(updated_name, updated_time, updated_by)
49
+ values($(datatype), $(date), $(by))
50
+ on conflict (updated_name)
51
+ do update set updated_time = $(date), updated_by = $(by)`, { date, datatype, by });
52
+ }
53
+ exports.updateUpdatedTimestamp = updateUpdatedTimestamp;
54
+ //# sourceMappingURL=last-updated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"last-updated.js","sourceRoot":"","sources":["../../src/database/last-updated.ts"],"names":[],"mappings":";;;AAEA,IAAY,QAQX;AARD,WAAY,QAAQ;IAChB,mCAAqB,CAAA;IACrB,uDAAyC,CAAA;IACzC,+DAAiD,CAAA;IACjD,2EAA6D,CAAA;IAC7D,mFAAqE,CAAA;IACrE,uCAAyB,CAAA;IACzB,mDAAqC,CAAA;AACzC,CAAC,EARW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAQnB;AAED,MAAM,aAAa,GAAG,GAAG,CAAC;AAM1B,SAAgB,cAAc,CAAC,EAAc,EAAE,QAAkB;IAC7D,OAAO,EAAE,CAAC,SAAS,CAAC,qFAAqF,EAAE;QACvG,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa;KAC7C,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;AACpD,CAAC;AAJD,wCAIC;AAED,SAAgB,yBAAyB,CAAC,EAAc,EAAE,QAAkB,EAAE,OAAe;IACzF,OAAO,EAAE,CAAC,SAAS,CAAC,qFAAqF,EAAE;QACvG,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;KACvC,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;AACpD,CAAC;AAJD,8DAIC;AAED,SAAgB,iBAAiB,CAAC,EAA8B,EAAE,QAAkB,EAAE,OAAa;IAC/F,OAAO,EAAE,CAAC,IAAI,CAAC;;;oCAGiB,EAChC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3B,CAAC;AAND,8CAMC;AAED,SAAgB,4BAA4B,CAAC,EAA8B,EAAE,QAAkB,EAAE,OAAe,EAAE,OAAa;IAC3H,OAAO,EAAE,CAAC,IAAI,CAAC;;;oCAGiB,EAChC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AACpC,CAAC;AAND,oEAMC;AAED,SAAgB,mBAAmB,CAAC,EAAc,EAAE,QAAgB;IAChE,OAAO,EAAE,CAAC,SAAS,CAAC,sFAAsF,EAAE;QACxG,QAAQ,EAAE,QAAQ;KACrB,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;AACpD,CAAC;AAJD,kDAIC;AAED,SAAgB,sBAAsB,CAAC,EAA8B,EAAE,QAAgB,EAAE,IAAU,EAAE,EAAE,GAAG,EAAE;IACxG,OAAO,EAAE,CAAC,IAAI,CAAC;;;yDAGsC,EACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5B,CAAC;AAND,wDAMC"}
@@ -0,0 +1,6 @@
1
+ export interface Countable {
2
+ count: number;
3
+ }
4
+ export interface Identifiable<T> {
5
+ id: T;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/database/models.ts"],"names":[],"mappings":""}
File without changes
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidLOCODE = exports.isValidMMSI = exports.isValidIMO = void 0;
4
+ function isValidIMO(imo) {
5
+ return imo >= 1000000 && imo <= 9999999 && imoChecksumIsValid(imo);
6
+ }
7
+ exports.isValidIMO = isValidIMO;
8
+ function imoChecksumIsValid(imo) {
9
+ const imoStr = imo.toString();
10
+ const imoDigit1 = Number(imoStr[0]);
11
+ const imoDigit2 = Number(imoStr[1]);
12
+ const imoDigit3 = Number(imoStr[2]);
13
+ const imoDigit4 = Number(imoStr[3]);
14
+ const imoDigit5 = Number(imoStr[4]);
15
+ const imoDigit6 = Number(imoStr[5]);
16
+ const checkDigit = Number(imoStr[6]);
17
+ const checkCalculation = Number(((imoDigit1 * 7) + (imoDigit2 * 6) + (imoDigit3 * 5) + (imoDigit4 * 4) + (imoDigit5 * 3) + (imoDigit6 * 2)));
18
+ const checkResult = checkCalculation % 10 === checkDigit;
19
+ if (!checkResult) {
20
+ console.warn('method=imoChecksumIsValid IMO checksum failed %d', imo);
21
+ }
22
+ return checkResult;
23
+ }
24
+ function isValidMMSI(mmsi) {
25
+ return mmsi >= 100000000 && mmsi <= 999999999;
26
+ }
27
+ exports.isValidMMSI = isValidMMSI;
28
+ const LocodePattern = /^FI[A-Z]{3}$/i;
29
+ function isValidLOCODE(locode) {
30
+ return LocodePattern.test(locode);
31
+ }
32
+ exports.isValidLOCODE = isValidLOCODE;
33
+ //# sourceMappingURL=id_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id_utils.js","sourceRoot":"","sources":["../../src/marine/id_utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,GAAW;IAClC,OAAO,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC;AAFD,gCAEC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACnC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7I,MAAM,WAAW,GAAG,gBAAgB,GAAG,EAAE,KAAK,UAAU,CAAC;IACzD,IAAI,CAAC,WAAW,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;KACzE;IACD,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,SAAgB,WAAW,CAAC,IAAY;IACpC,OAAO,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC;AAClD,CAAC;AAFD,kCAEC;AAED,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,SAAgB,aAAa,CAAC,MAAc;IACxC,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAFD,sCAEC"}
File without changes
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=rtz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtz.js","sourceRoot":"","sources":["../../src/marine/rtz.ts"],"names":[],"mappings":""}
File without changes
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /**
3
+ * A simple asserter-class for writing canaries without dependency to testing-libraries.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Asserter = void 0;
7
+ class Asserter {
8
+ static assertEquals(value, expected) {
9
+ if (value != expected) {
10
+ throw new Error(`Given value ${value} was not expected ${expected}`);
11
+ }
12
+ }
13
+ static assertTrue(value) {
14
+ if (!value) {
15
+ throw new Error(`Given value ${value} was not true`);
16
+ }
17
+ }
18
+ static assertLength(data, expected) {
19
+ if (!data) {
20
+ throw new Error("Given array was not defined");
21
+ }
22
+ if (data.length != expected) {
23
+ throw new Error(`Given array length ${data.length} was not expected ${expected}`);
24
+ }
25
+ }
26
+ static assertLengthGreaterThan(data, expected) {
27
+ if (!data) {
28
+ throw new Error("Given array was not defined");
29
+ }
30
+ if (data.length <= expected) {
31
+ throw new Error(`Given array length ${data.length} was not greater than ${expected}`);
32
+ }
33
+ }
34
+ static assertGreaterThan(value, expected) {
35
+ if (value <= expected) {
36
+ throw new Error(`Value ${value} was expected to be greater than ${expected}`);
37
+ }
38
+ }
39
+ static assertToBeCloseTo(value, expected, delta) {
40
+ expect(expected - value).toBeGreaterThanOrEqual(-1 * delta);
41
+ expect(expected - value).toBeLessThanOrEqual(delta);
42
+ }
43
+ }
44
+ exports.Asserter = Asserter;
45
+ //# sourceMappingURL=asserter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asserter.js","sourceRoot":"","sources":["../../src/test/asserter.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,MAAsB,QAAQ;IAC1B,MAAM,CAAC,YAAY,CAAI,KAAQ,EAAE,QAAW;QACxC,IAAI,KAAK,IAAI,QAAQ,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,qBAAqB,QAAQ,EAAE,CAAC,CAAC;SACxE;IACL,CAAC;IAED,MAAM,CAAC,UAAU,CAAI,KAAQ;QACzB,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,eAAe,CAAC,CAAC;SACxD;IACL,CAAC;IAED,MAAM,CAAC,YAAY,CAAI,IAAS,EAAE,QAAgB;QAC9C,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,MAAM,qBAAqB,QAAQ,EAAE,CAAC,CAAC;SACrF;IACL,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAI,IAAS,EAAE,QAAgB;QACzD,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,MAAM,yBAAyB,QAAQ,EAAE,CAAC,CAAC;SACzF;IACL,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,KAAa,EAAE,QAAgB;QACpD,IAAI,KAAK,IAAI,QAAQ,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,oCAAoC,QAAQ,EAAE,CAAC,CAAC;SACjF;IACL,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,KAAa,EAAE,QAAgB,EAAE,KAAa;QACnE,MAAM,CAAC,QAAQ,GAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1D,MAAM,CAAC,QAAQ,GAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;CACJ;AA3CD,4BA2CC"}
@@ -1,2 +1,2 @@
1
1
  import { DTDatabase } from "../database/database";
2
- export declare function dbTestBase(fn: (db: DTDatabase) => void, truncateFn: (db: DTDatabase) => void, dbUser: string, dbPass: string, dbUri: string): () => void;
2
+ export declare function dbTestBase(fn: (db: DTDatabase) => void, truncateFn: (db: DTDatabase) => Promise<void>, dbUser: string, dbPass: string, dbUri: string): () => void;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dbTestBase = void 0;
4
+ const database_1 = require("../database/database");
5
+ const dbsecret_1 = require("../aws/runtime/secrets/dbsecret");
6
+ function dbTestBase(fn, truncateFn, dbUser, dbPass, dbUri) {
7
+ const theDbUri = process.env.DB_URI ?? dbUri;
8
+ console.log(`Test database URI: ${theDbUri}`);
9
+ return () => {
10
+ const db = (0, database_1.initDbConnection)(dbUser, dbPass, "test", theDbUri, {
11
+ noWarnings: true, // ignore duplicate connection warning for tests
12
+ });
13
+ beforeAll(async () => {
14
+ process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER] = dbUser;
15
+ process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_PASS] = dbPass;
16
+ process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_URI] = theDbUri;
17
+ process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI] = theDbUri;
18
+ await truncateFn(db);
19
+ });
20
+ afterAll(async () => {
21
+ await truncateFn(db);
22
+ await db.$pool.end();
23
+ });
24
+ beforeEach(async () => {
25
+ await truncateFn(db);
26
+ });
27
+ fn(db);
28
+ };
29
+ }
30
+ exports.dbTestBase = dbTestBase;
31
+ //# sourceMappingURL=db-testutils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-testutils.js","sourceRoot":"","sources":["../../src/test/db-testutils.ts"],"names":[],"mappings":";;;AAAA,mDAAoE;AACpE,8DAA0E;AAE1E,SAAgB,UAAU,CACtB,EAA4B,EAC5B,UAA6C,EAC7C,MAAc,EACd,MAAc,EACd,KAAa;IAEb,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAE9C,OAAO,GAAG,EAAE;QACR,MAAM,EAAE,GAAe,IAAA,2BAAgB,EACnC,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR;YACI,UAAU,EAAE,IAAI,EAAE,gDAAgD;SACrE,CACJ,CAAC;QAEF,SAAS,CAAC,KAAK,IAAI,EAAE;YACjB,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;YAC1D,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC;AACN,CAAC;AAxCD,gCAwCC"}
@@ -4,9 +4,10 @@ export declare const ERRORCODE_NOT_FOUND = 404;
4
4
  * A mock HTTP server created for testing connections from a Lambda to an outside integration
5
5
  */
6
6
  export declare class TestHttpServer {
7
- private server;
7
+ private server?;
8
8
  private debug;
9
9
  private messageStack;
10
+ constructor();
10
11
  getCallCount(): number;
11
12
  getRequestBody(callNumber: number): string;
12
13
  listen(port: number, props: ListenProperties, debug?: boolean, statusCode?: number): void;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestHttpServer = exports.ERRORCODE_NOT_FOUND = exports.ERROR_NO_MATCH = void 0;
4
+ const http_1 = require("http");
5
+ exports.ERROR_NO_MATCH = "NO MATCH";
6
+ exports.ERRORCODE_NOT_FOUND = 404;
7
+ /**
8
+ * A mock HTTP server created for testing connections from a Lambda to an outside integration
9
+ */
10
+ class TestHttpServer {
11
+ constructor() {
12
+ this.debug = false;
13
+ this.messageStack = [];
14
+ }
15
+ getCallCount() {
16
+ return this.messageStack.length;
17
+ }
18
+ getRequestBody(callNumber) {
19
+ return this.messageStack[callNumber];
20
+ }
21
+ listen(port, props, debug = false, statusCode = 200) {
22
+ this.debug = debug;
23
+ this.messageStack = [];
24
+ this.debuglog(`Starting test server on port ${port}`);
25
+ this.server = (0, http_1.createServer)((req, res) => {
26
+ this.debuglog("Mapped urls: ");
27
+ Object.keys(props).forEach((k) => this.debuglog(k));
28
+ this.debuglog("Received request to url " + req.url + "..");
29
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
30
+ const path = require("url").parse(req.url).pathname;
31
+ let dataStr = "";
32
+ req.on("data", (chunk) => {
33
+ if (chunk) {
34
+ dataStr += chunk;
35
+ }
36
+ });
37
+ if (path in props) {
38
+ this.debuglog("..url matched");
39
+ res.setHeader("Access-Control-Allow-Origin", "*");
40
+ res.setHeader("Access-Control-Allow-Headers", "Authorization,X-User-Id,X-Auth-Token");
41
+ res.writeHead(statusCode);
42
+ req.on("end", () => {
43
+ // assume sent data is in JSON format
44
+ this.messageStack[this.messageStack.length] = dataStr;
45
+ res.end(props[path](req.url, dataStr));
46
+ });
47
+ }
48
+ else {
49
+ this.debuglog("..no match for %" + path);
50
+ req.on("end", () => {
51
+ // assume sent data is in JSON format
52
+ this.messageStack[this.messageStack.length] =
53
+ exports.ERROR_NO_MATCH;
54
+ res.writeHead(exports.ERRORCODE_NOT_FOUND);
55
+ res.end(exports.ERROR_NO_MATCH);
56
+ });
57
+ }
58
+ });
59
+ this.server.listen(port);
60
+ }
61
+ close() {
62
+ this.debuglog("Closing test server");
63
+ if (this.server !== undefined) {
64
+ this.server.close();
65
+ }
66
+ }
67
+ debuglog(str) {
68
+ if (this.debug) {
69
+ console.debug(str);
70
+ }
71
+ }
72
+ }
73
+ exports.TestHttpServer = TestHttpServer;
74
+ //# sourceMappingURL=httpserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpserver.js","sourceRoot":"","sources":["../../src/test/httpserver.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createEmptySecretFunction = exports.createSecretFunction = void 0;
4
+ const EMPTY_DB_SECRET = {
5
+ username: '',
6
+ password: '',
7
+ host: '',
8
+ // eslint-disable-next-line camelcase
9
+ ro_host: '',
10
+ };
11
+ function createSecretFunction(secret) {
12
+ // eslint-disable-next-line require-await
13
+ return async (secretId, fn) => {
14
+ return fn(secret);
15
+ };
16
+ }
17
+ exports.createSecretFunction = createSecretFunction;
18
+ function createEmptySecretFunction() {
19
+ // eslint-disable-next-line require-await
20
+ return async (secretId, fn) => {
21
+ return fn(EMPTY_DB_SECRET);
22
+ };
23
+ }
24
+ exports.createEmptySecretFunction = createEmptySecretFunction;
25
+ //# sourceMappingURL=secret.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret.js","sourceRoot":"","sources":["../../src/test/secret.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe,GAAa;IAC9B,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,qCAAqC;IACrC,OAAO,EAAE,EAAE;CACd,CAAC;AAEF,SAAgB,oBAAoB,CAAmB,MAAc;IACjE,yCAAyC;IACzC,OAAO,KAAK,EAAE,QAAgB,EAAE,EAA6C,EAAE,EAAE;QAC7E,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC;AACN,CAAC;AALD,oDAKC;AAED,SAAgB,yBAAyB;IACrC,yCAAyC;IACzC,OAAO,KAAK,EAAE,QAAgB,EAAE,EAA+C,EAAE,EAAE;QAC/E,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC,CAAC;AACN,CAAC;AALD,8DAKC"}
File without changes
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.mockSecret = exports.stubSecretsManager = void 0;
27
+ const AWS = require("aws-sdk");
28
+ const sinon = __importStar(require("sinon"));
29
+ const secretValue = sinon.stub();
30
+ /**
31
+ * Stub Secrets Manager for tests. You must call this
32
+ * before you instantiate Secrets Manager(this might happen when you import the function that uses Secrets Manager).
33
+ *
34
+ * To mock the actual secret, call mockSecret()
35
+ */
36
+ function stubSecretsManager() {
37
+ const smStub = {
38
+ getSecretValue: secretValue,
39
+ };
40
+ sinon.stub(AWS, 'SecretsManager').returns(smStub);
41
+ return smStub.getSecretValue;
42
+ }
43
+ exports.stubSecretsManager = stubSecretsManager;
44
+ function mockSecret(secret) {
45
+ if (!secret) {
46
+ secretValue.returns({
47
+ promise: sinon.stub().returns({}),
48
+ });
49
+ }
50
+ else {
51
+ secretValue.returns({
52
+ promise: sinon.stub().returns({
53
+ SecretString: JSON.stringify(secret),
54
+ }),
55
+ });
56
+ }
57
+ }
58
+ exports.mockSecret = mockSecret;
59
+ //# sourceMappingURL=secrets-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets-manager.js","sourceRoot":"","sources":["../../src/test/secrets-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAgC;AAChC,6CAA+B;AAE/B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AAEjC;;;;;GAKG;AACH,SAAgB,kBAAkB;IAC9B,MAAM,MAAM,GAAG;QACX,cAAc,EAAE,WAAW;KAC9B,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,MAAM,CAAC,cAAc,CAAC;AACjC,CAAC;AARD,gDAQC;AAED,SAAgB,UAAU,CAAS,MAAc;IAC7C,IAAI,CAAC,MAAM,EAAE;QACT,WAAW,CAAC,OAAO,CAAC;YAChB,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;KACN;SAAM;QACH,WAAW,CAAC,OAAO,CAAC;YAChB,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;gBAC1B,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aACvC,CAAC;SACL,CAAC,CAAC;KACN;AACL,CAAC;AAZD,gCAYC"}
File without changes
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shuffle = exports.randomBoolean = exports.getRandomBigInt = exports.getRandomIntegerAsString = exports.getRandomInteger = exports.getRandomNumberAsString = exports.getRandomNumber = exports.randomString = void 0;
4
+ function randomString() {
5
+ return Math.random().toString(36).substring(2);
6
+ }
7
+ exports.randomString = randomString;
8
+ function getRandomNumber(min, max) {
9
+ return Math.random() * (max - min) + min;
10
+ }
11
+ exports.getRandomNumber = getRandomNumber;
12
+ function getRandomNumberAsString(min, max) {
13
+ return getRandomNumber(min, max).toString();
14
+ }
15
+ exports.getRandomNumberAsString = getRandomNumberAsString;
16
+ function getRandomInteger(min, max) {
17
+ return Math.round(getRandomNumber(min, max));
18
+ }
19
+ exports.getRandomInteger = getRandomInteger;
20
+ function getRandomIntegerAsString(min, max) {
21
+ return Math.round(getRandomInteger(min, max)).toString();
22
+ }
23
+ exports.getRandomIntegerAsString = getRandomIntegerAsString;
24
+ function getRandomBigInt(min, max) {
25
+ return BigInt(getRandomInteger(min, max));
26
+ }
27
+ exports.getRandomBigInt = getRandomBigInt;
28
+ function randomBoolean() {
29
+ return Math.random() < 0.5;
30
+ }
31
+ exports.randomBoolean = randomBoolean;
32
+ /**
33
+ * Returns a new copy of an array, shuffled using Math.random()
34
+ * @param array Array
35
+ */
36
+ function shuffle(array) {
37
+ // pretty fast way to copy an array, not necessarily the fastest
38
+ const newArray = array.slice(0);
39
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
40
+ newArray.sort((x) => 0.5 - Math.random());
41
+ return newArray;
42
+ }
43
+ exports.shuffle = shuffle;
44
+ //# sourceMappingURL=testutils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testutils.js","sourceRoot":"","sources":["../../src/test/testutils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY;IACxB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAFD,oCAEC;AAED,SAAgB,eAAe,CAAC,GAAW,EAAG,GAAW;IACrD,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7C,CAAC;AAFD,0CAEC;AAED,SAAgB,uBAAuB,CAAC,GAAW,EAAG,GAAW;IAC7D,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChD,CAAC;AAFD,0DAEC;AAED,SAAgB,gBAAgB,CAAC,GAAW,EAAG,GAAW;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC;AAFD,4CAEC;AAED,SAAgB,wBAAwB,CAAC,GAAW,EAAG,GAAW;IAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC7D,CAAC;AAFD,4DAEC;AAED,SAAgB,eAAe,CAAC,GAAW,EAAG,GAAW;IACrD,OAAO,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9C,CAAC;AAFD,0CAEC;AAED,SAAgB,aAAa;IACzB,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;AAC/B,CAAC;AAFD,sCAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAI,KAAU;IACjC,gEAAgE;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,OAAO,QAAQ,CAAC;AACpB,CAAC;AAND,0BAMC"}
@@ -0,0 +1,9 @@
1
+ export declare type EitherOk<T> = {
2
+ result: "ok";
3
+ value: T;
4
+ };
5
+ export declare type EitherError = {
6
+ result: "error";
7
+ message: string;
8
+ };
9
+ export declare type Either<T> = EitherOk<T> | EitherError;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=either.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"either.js","sourceRoot":"","sources":["../../src/types/either.ts"],"names":[],"mappings":""}
File without changes
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InputError = void 0;
4
+ class InputError extends Error {
5
+ }
6
+ exports.InputError = InputError;
7
+ //# sourceMappingURL=input-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-error.js","sourceRoot":"","sources":["../../src/types/input-error.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAW,SAAQ,KAAK;CACpC;AADD,gCACC"}
File without changes
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Language = void 0;
4
+ var Language;
5
+ (function (Language) {
6
+ Language["FI"] = "fi";
7
+ Language["EN"] = "en";
8
+ Language["SV"] = "sv";
9
+ })(Language = exports.Language || (exports.Language = {}));
10
+ //# sourceMappingURL=language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.js","sourceRoot":"","sources":["../../src/types/language.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAEX;AAFD,WAAY,QAAQ;IAChB,qBAAS,CAAA;IAAE,qBAAS,CAAA;IAAE,qBAAS,CAAA;AACnC,CAAC,EAFW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAEnB"}
File without changes
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrafficType = void 0;
4
+ var TrafficType;
5
+ (function (TrafficType) {
6
+ TrafficType["ROAD"] = "Road";
7
+ TrafficType["MARINE"] = "Marine";
8
+ TrafficType["RAIL"] = "Rail";
9
+ TrafficType["AVIATION"] = "Aviation";
10
+ TrafficType["MCP"] = "MCP";
11
+ TrafficType["OTHER"] = "Other";
12
+ })(TrafficType = exports.TrafficType || (exports.TrafficType = {}));
13
+ //# sourceMappingURL=traffictype.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traffictype.js","sourceRoot":"","sources":["../../src/types/traffictype.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,0BAAW,CAAA;IACX,8BAAe,CAAA;AACnB,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB"}
File without changes