@digitraffic/common 2022.10.31-3 → 2022.11.1-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 (168) hide show
  1. package/dist/aws/infra/api/integration.d.ts +21 -0
  2. package/dist/aws/infra/api/integration.js.map +1 -0
  3. package/dist/aws/infra/api/response.d.ts +22 -0
  4. package/dist/aws/infra/api/response.js.map +1 -0
  5. package/dist/aws/infra/api/responses.d.ts +39 -0
  6. package/dist/aws/infra/api/responses.js.map +1 -0
  7. package/dist/aws/infra/api/static-integration.d.ts +15 -0
  8. package/dist/aws/infra/api/static-integration.js.map +1 -0
  9. package/dist/aws/infra/canaries/canary-alarm.d.ts +6 -0
  10. package/dist/aws/infra/canaries/canary-alarm.js.map +1 -0
  11. package/dist/aws/infra/canaries/canary-keys.d.ts +3 -0
  12. package/dist/aws/infra/canaries/canary-keys.js.map +1 -0
  13. package/dist/aws/infra/canaries/canary-parameters.d.ts +18 -0
  14. package/dist/aws/infra/canaries/canary-parameters.js.map +1 -0
  15. package/dist/aws/infra/canaries/canary-role.d.ts +6 -0
  16. package/dist/aws/infra/canaries/canary-role.js.map +1 -0
  17. package/dist/aws/infra/canaries/canary.d.ts +8 -0
  18. package/dist/aws/infra/canaries/canary.js.map +1 -0
  19. package/dist/aws/infra/canaries/database-canary.d.ts +18 -0
  20. package/dist/aws/infra/canaries/database-canary.js.map +1 -0
  21. package/dist/aws/infra/canaries/database-checker.d.ts +21 -0
  22. package/dist/aws/infra/canaries/database-checker.js.map +1 -0
  23. package/dist/aws/infra/canaries/url-canary.d.ts +16 -0
  24. package/dist/aws/infra/canaries/url-canary.js.map +1 -0
  25. package/dist/aws/infra/canaries/url-checker.d.ts +46 -0
  26. package/dist/aws/infra/canaries/url-checker.js.map +1 -0
  27. package/dist/aws/infra/documentation.d.ts +56 -0
  28. package/dist/aws/infra/documentation.js.map +1 -0
  29. package/dist/aws/infra/scheduler.d.ts +12 -0
  30. package/dist/aws/infra/scheduler.js.map +1 -0
  31. package/dist/aws/infra/security-rule.d.ts +12 -0
  32. package/dist/aws/infra/security-rule.js.map +1 -0
  33. package/dist/aws/infra/sqs-integration.d.ts +7 -0
  34. package/dist/aws/infra/sqs-integration.js.map +1 -0
  35. package/dist/aws/infra/sqs-queue.d.ts +16 -0
  36. package/dist/aws/infra/sqs-queue.js.map +1 -0
  37. package/dist/aws/infra/stack/lambda-configs.d.ts +72 -0
  38. package/dist/aws/infra/stack/lambda-configs.js.map +1 -0
  39. package/dist/aws/infra/stack/monitoredfunction.d.ts +84 -0
  40. package/dist/aws/infra/stack/monitoredfunction.js.map +1 -0
  41. package/dist/aws/infra/stack/rest_apis.d.ts +41 -0
  42. package/dist/aws/infra/stack/rest_apis.js +27 -31
  43. package/dist/aws/infra/stack/rest_apis.js.map +1 -0
  44. package/dist/aws/infra/stack/stack-checking-aspect.d.ts +21 -0
  45. package/dist/aws/infra/stack/stack-checking-aspect.js +3 -2
  46. package/dist/aws/infra/stack/stack-checking-aspect.js.map +1 -0
  47. package/dist/aws/infra/stack/stack.d.ts +45 -0
  48. package/dist/aws/infra/stack/stack.js.map +1 -0
  49. package/dist/aws/infra/stack/subscription.d.ts +17 -0
  50. package/dist/aws/infra/stack/subscription.js.map +1 -0
  51. package/dist/aws/infra/usage-plans.d.ts +15 -0
  52. package/dist/aws/infra/usage-plans.js.map +1 -0
  53. package/dist/aws/runtime/apikey.d.ts +2 -0
  54. package/dist/aws/runtime/apikey.js.map +1 -0
  55. package/dist/aws/runtime/digitraffic-integration-response.d.ts +8 -0
  56. package/dist/aws/runtime/digitraffic-integration-response.js.map +1 -0
  57. package/dist/aws/runtime/environment.d.ts +1 -0
  58. package/dist/aws/runtime/environment.js +4 -1
  59. package/dist/aws/runtime/environment.js.map +1 -0
  60. package/dist/aws/runtime/messaging.d.ts +10 -0
  61. package/dist/aws/runtime/messaging.js.map +1 -0
  62. package/dist/aws/runtime/s3.d.ts +2 -0
  63. package/dist/aws/runtime/s3.js.map +1 -0
  64. package/dist/aws/runtime/secrets/dbsecret.d.ts +54 -0
  65. package/dist/aws/runtime/secrets/dbsecret.js.map +1 -0
  66. package/dist/aws/runtime/secrets/proxy-holder.d.ts +9 -0
  67. package/dist/aws/runtime/secrets/proxy-holder.js.map +1 -0
  68. package/dist/aws/runtime/secrets/rds-holder.d.ts +9 -0
  69. package/dist/aws/runtime/secrets/rds-holder.js.map +1 -0
  70. package/dist/aws/runtime/secrets/secret-holder.d.ts +26 -0
  71. package/dist/aws/runtime/secrets/secret-holder.js.map +1 -0
  72. package/dist/aws/runtime/secrets/secret.d.ts +8 -0
  73. package/dist/aws/runtime/secrets/secret.js.map +1 -0
  74. package/dist/aws/types/errors.d.ts +8 -0
  75. package/dist/aws/types/errors.js.map +1 -0
  76. package/dist/aws/types/lambda-response.d.ts +13 -0
  77. package/dist/aws/types/lambda-response.js.map +1 -0
  78. package/dist/aws/types/mediatypes.d.ts +11 -0
  79. package/dist/aws/types/mediatypes.js +2 -1
  80. package/dist/aws/types/mediatypes.js.map +1 -0
  81. package/dist/aws/types/model-with-reference.d.ts +7 -0
  82. package/dist/aws/types/model-with-reference.js.map +1 -0
  83. package/dist/aws/types/proxytypes.d.ts +26 -0
  84. package/dist/aws/types/proxytypes.js.map +1 -0
  85. package/dist/aws/types/tags.d.ts +2 -0
  86. package/dist/aws/types/tags.js.map +1 -0
  87. package/dist/database/cached.d.ts +7 -0
  88. package/dist/database/cached.js.map +1 -0
  89. package/dist/database/database.d.ts +19 -0
  90. package/dist/database/database.js +6 -8
  91. package/dist/database/database.js.map +1 -0
  92. package/dist/database/last-updated.d.ts +16 -0
  93. package/dist/database/last-updated.js.map +1 -0
  94. package/dist/database/models.d.ts +6 -0
  95. package/dist/database/models.js.map +1 -0
  96. package/dist/marine/id_utils.d.ts +3 -0
  97. package/dist/marine/id_utils.js.map +1 -0
  98. package/dist/marine/rtz.d.ts +48 -0
  99. package/dist/marine/rtz.js.map +1 -0
  100. package/dist/test/asserter.d.ts +11 -0
  101. package/dist/test/asserter.js.map +1 -0
  102. package/dist/test/db-testutils.d.ts +3 -0
  103. package/dist/test/db-testutils.js +5 -1
  104. package/dist/test/db-testutils.js.map +1 -0
  105. package/dist/test/httpserver.d.ts +19 -0
  106. package/dist/test/httpserver.js.map +1 -0
  107. package/dist/test/secret.d.ts +3 -0
  108. package/dist/test/secret.js.map +1 -0
  109. package/dist/test/secrets-manager.d.ts +9 -0
  110. package/dist/test/secrets-manager.js.map +1 -0
  111. package/dist/test/testutils.d.ts +12 -0
  112. package/dist/test/testutils.js.map +1 -0
  113. package/dist/types/either.d.ts +9 -0
  114. package/dist/types/either.js.map +1 -0
  115. package/dist/types/input-error.d.ts +2 -0
  116. package/dist/types/input-error.js.map +1 -0
  117. package/dist/types/language.d.ts +5 -0
  118. package/dist/types/language.js.map +1 -0
  119. package/dist/types/traffictype.d.ts +8 -0
  120. package/dist/types/traffictype.js.map +1 -0
  121. package/dist/types/validator.d.ts +4 -0
  122. package/dist/types/validator.js.map +1 -0
  123. package/dist/utils/api-model.d.ts +87 -0
  124. package/dist/utils/api-model.js.map +1 -0
  125. package/dist/utils/base64.d.ts +12 -0
  126. package/dist/utils/base64.js.map +1 -0
  127. package/dist/utils/date-utils.d.ts +17 -0
  128. package/dist/utils/date-utils.js.map +1 -0
  129. package/dist/utils/geojson-types.d.ts +14 -0
  130. package/dist/utils/geojson-types.js.map +1 -0
  131. package/dist/utils/geometry.d.ts +36 -0
  132. package/dist/utils/geometry.js.map +1 -0
  133. package/dist/utils/retry.d.ts +13 -0
  134. package/dist/utils/retry.js.map +1 -0
  135. package/dist/utils/slack.d.ts +5 -0
  136. package/dist/utils/slack.js.map +1 -0
  137. package/dist/utils/utils.d.ts +46 -0
  138. package/dist/utils/utils.js.map +1 -0
  139. package/package.json +1 -1
  140. package/src/aws/infra/stack/rest_apis.ts +144 -91
  141. package/src/aws/infra/stack/stack-checking-aspect.ts +5 -2
  142. package/src/aws/runtime/environment.ts +5 -1
  143. package/src/aws/types/mediatypes.ts +2 -1
  144. package/src/database/database.ts +9 -10
  145. package/src/test/db-testutils.ts +5 -0
  146. package/.editorconfig +0 -9
  147. package/.eslintignore +0 -4
  148. package/.eslintrc.json +0 -27
  149. package/.github/CODEOWNERS +0 -2
  150. package/.github/workflows/build.yml +0 -36
  151. package/.github/workflows/eslint.yml +0 -38
  152. package/.github/workflows/mirror.yml +0 -15
  153. package/.gitignore +0 -29
  154. package/.husky/pre-commit +0 -4
  155. package/.prettierrc.json +0 -10
  156. package/jest.config.js +0 -15
  157. package/test/marine/id_utils.test.ts +0 -57
  158. package/test/promise/promise.test.ts +0 -143
  159. package/test/secrets/dbsecret.test.ts +0 -59
  160. package/test/secrets/secret-holder.test.ts +0 -143
  161. package/test/secrets/secret.test.ts +0 -49
  162. package/test/test/httpserver.test.ts +0 -128
  163. package/test/utils/date-utils.test.ts +0 -28
  164. package/test/utils/geometry.test.ts +0 -29
  165. package/test/utils/utils.test.ts +0 -64
  166. package/tsconfig.eslint.json +0 -4
  167. package/tsconfig.json +0 -22
  168. package/yarn.lock +0 -4060
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Utility class for getting secrets from Secret Manager.
3
+ * Supports prefix for secrets, checking of expected keys and ttl-configuration.
4
+ *
5
+ * By default, secrets are cached for 5 minutes and then reread from the Secrets Manager(This can be overridden with configuration).
6
+ *
7
+ * Supports setting the database environment paramaters from the secret too.
8
+ */
9
+ export declare class SecretHolder<Secret> {
10
+ private readonly secretId;
11
+ private readonly prefix;
12
+ private readonly expectedKeys;
13
+ private readonly secretCache;
14
+ constructor(secretId: string, prefix?: string, expectedKeys?: string[], configuration?: {
15
+ ttl: number;
16
+ });
17
+ private initSecret;
18
+ static create<S>(prefix?: string, expectedKeys?: string[]): SecretHolder<S>;
19
+ get(): Promise<Secret>;
20
+ private parseSecret;
21
+ private getSecret;
22
+ /**
23
+ * @deprecated Use ProxyHolder
24
+ */
25
+ setDatabaseCredentials(): Promise<void>;
26
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-holder.js","sourceRoot":"","sources":["../../../../src/aws/runtime/secrets/secret-holder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { SecretToPromiseFunction } from "./dbsecret";
2
+ export declare type GenericSecret = Record<string, string>;
3
+ /**
4
+ @deprecated use SecretHolder & ProxyHolder
5
+ */
6
+ export declare function withSecret<Secret, Response>(secretId: string, fn: SecretToPromiseFunction<Secret, Response>): Promise<Response | void>;
7
+ export declare function getSecret<Secret>(secretId: string, prefix?: string): Promise<Secret>;
8
+ export declare function withSecretAndPrefix<Secret, Response>(secretId: string, prefix: string, fn: SecretToPromiseFunction<Secret, Response>): Promise<Response | void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret.js","sourceRoot":"","sources":["../../../../src/aws/runtime/secrets/secret.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AAGvC,MAAM,QAAQ,GAAG,IAAI,wBAAc,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;CACjC,CAAC,CAAC;AAIH;;GAEG;AACI,KAAK,UAAU,UAAU,CAAmB,QAAgB,EAAE,EAA6C;IAC9G,OAAO,EAAE,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzC,CAAC;AAFD,gCAEC;AAEM,KAAK,UAAU,SAAS,CAAS,QAAgB,EAAE,MAAM,GAAG,EAAE;IACjE,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC;QAC5C,QAAQ,EAAE,QAAQ;KACrB,CAAC,CAAC,OAAO,EAAE,CAAC;IAEb,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACvC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAElD,IAAI,MAAM,KAAK,EAAE,EAAE;QACf,OAAO,MAAM,CAAC;KACjB;IAED,OAAO,WAAW,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC;AAC7C,CAAC;AAhBD,8BAgBC;AAED,SAAS,WAAW,CAAS,MAAqB,EAAE,MAAc;IAC9D,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACxB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC7C;KACJ;IAED,OAAO,MAA2B,CAAC;AACvC,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAmB,QAAgB,EAAE,MAAc,EAAE,EAA6C;IACvI,OAAO,EAAE,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACjD,CAAC;AAFD,kDAEC"}
@@ -0,0 +1,8 @@
1
+ export declare const NOT_FOUND_MESSAGE = "NOT_FOUND";
2
+ export declare const ERROR_MESSAGE = "ERROR";
3
+ export declare const OK_MESSAGE = "OK";
4
+ export declare const BAD_REQUEST_MESSAGE = "BAD REQUEST";
5
+ export declare class ValidationError extends Error {
6
+ statusCode: number;
7
+ constructor(statusCode: number, body: string);
8
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/aws/types/errors.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AACf,QAAA,iBAAiB,GAAG,WAAW,CAAC;AAChC,QAAA,aAAa,GAAG,OAAO,CAAC;AACxB,QAAA,UAAU,GAAG,IAAI,CAAC;AAClB,QAAA,mBAAmB,GAAG,aAAa,CAAC;AAEjD,MAAa,eAAgB,SAAQ,KAAK;IAGtC,YAAY,UAAkB,EAAE,IAAY;QACxC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;CACJ;AAPD,0CAOC"}
@@ -0,0 +1,13 @@
1
+ export declare class LambdaResponse<T> {
2
+ readonly status: number;
3
+ readonly body: T;
4
+ readonly fileName?: string;
5
+ constructor(status: number, body: T, fileName?: string);
6
+ static ok<T>(body: T, fileName?: string): Promise<LambdaResponse<T>>;
7
+ static okJson<T>(json: T, fileName?: string): Promise<LambdaResponse<string>>;
8
+ static badRequest(body: string): Promise<LambdaResponse<string>>;
9
+ static notFound(): Promise<LambdaResponse<string>>;
10
+ static internalError(): Promise<LambdaResponse<string>>;
11
+ static notImplemented(): Promise<LambdaResponse<string>>;
12
+ static create<T>(status: number, body: T, fileName?: string): Promise<LambdaResponse<T>>;
13
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lambda-response.js","sourceRoot":"","sources":["../../../src/aws/types/lambda-response.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAc;IAKvB,YAAY,MAAc,EAAE,IAAO,EAAE,QAAiB;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,EAAE,CAAI,IAAO,EAAE,QAAiB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,MAAM,CAAI,IAAO,EAAE,QAAiB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAY;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,aAAa;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,cAAc;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,MAAM,CACT,MAAc,EACd,IAAO,EACP,QAAiB;QAEjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;CACJ;AA1CD,wCA0CC"}
@@ -0,0 +1,11 @@
1
+ export declare enum MediaType {
2
+ APPLICATION_JSON = "application/json",
3
+ APPLICATION_XML = "application/xml",
4
+ APPLICATION_GEOJSON = "application/geo+json;charset=UTF-8",
5
+ IMAGE_SVG = "image/svg+xml",
6
+ IMAGE_JPEG = "image/jpeg",
7
+ TEXT_PLAIN = "text/plain",
8
+ TEXT_HTML = "text/html",
9
+ TEXT_CSV = "text/csv",
10
+ APPLICATION_JSON_UTF8 = "application/json;charset=UTF-8"
11
+ }
@@ -4,7 +4,7 @@ exports.MediaType = void 0;
4
4
  // charset=UTF-8 is deprecated but mobile applications sometimes needs it
5
5
  var MediaType;
6
6
  (function (MediaType) {
7
- MediaType["APPLICATION_JSON"] = "application/json;charset=UTF-8";
7
+ MediaType["APPLICATION_JSON"] = "application/json";
8
8
  MediaType["APPLICATION_XML"] = "application/xml";
9
9
  MediaType["APPLICATION_GEOJSON"] = "application/geo+json;charset=UTF-8";
10
10
  MediaType["IMAGE_SVG"] = "image/svg+xml";
@@ -12,5 +12,6 @@ var MediaType;
12
12
  MediaType["TEXT_PLAIN"] = "text/plain";
13
13
  MediaType["TEXT_HTML"] = "text/html";
14
14
  MediaType["TEXT_CSV"] = "text/csv";
15
+ MediaType["APPLICATION_JSON_UTF8"] = "application/json;charset=UTF-8";
15
16
  })(MediaType = exports.MediaType || (exports.MediaType = {}));
16
17
  //# sourceMappingURL=mediatypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediatypes.js","sourceRoot":"","sources":["../../../src/aws/types/mediatypes.ts"],"names":[],"mappings":";;;AAAA,yEAAyE;AACzE,IAAY,SAUX;AAVD,WAAY,SAAS;IACjB,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,uEAA0D,CAAA;IAC1D,wCAA2B,CAAA;IAC3B,sCAAyB,CAAA;IACzB,sCAAyB,CAAA;IACzB,oCAAuB,CAAA;IACvB,kCAAqB,CAAA;IACrB,qEAAwD,CAAA;AAC5D,CAAC,EAVW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAUpB"}
@@ -0,0 +1,7 @@
1
+ import { Model } from "aws-cdk-lib/aws-apigateway";
2
+ /**
3
+ * Model object with a reference to an API Gateway model object.
4
+ */
5
+ export interface ModelWithReference extends Model {
6
+ modelReference: string;
7
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-with-reference.js","sourceRoot":"","sources":["../../../src/aws/types/model-with-reference.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-output-format
3
+ *
4
+ * Not fully described, extend if necessary.
5
+ */
6
+ export declare type ProxyLambdaResponse = {
7
+ readonly statusCode: number;
8
+ readonly body: string;
9
+ readonly headers?: Record<string, string>;
10
+ readonly multiValueHeaders?: Record<string, string[]>;
11
+ };
12
+ /**
13
+ * https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format
14
+ *
15
+ * Not fully described, extend if necessary.
16
+ */
17
+ export declare type ProxyLambdaRequest = {
18
+ readonly resource: string;
19
+ readonly path: string;
20
+ readonly httpMethod: string;
21
+ readonly headers: Record<string, string>;
22
+ readonly multiValueHeaders: Record<string, string[]>;
23
+ readonly queryStringParameters: Record<string, string>;
24
+ readonly multiValueQueryStringParameters: Record<string, string[]>;
25
+ readonly body?: string;
26
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxytypes.js","sourceRoot":"","sources":["../../../src/aws/types/proxytypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare const BETA_TAGS: string[];
2
+ export declare const DATA_V1_TAGS: string[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/aws/types/tags.ts"],"names":[],"mappings":";;;AAAA,uEAAuE;AAC1D,QAAA,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC;AACrB,QAAA,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { DTDatabase, DTTransaction } from "./database";
2
+ export declare enum JSON_CACHE_KEY {
3
+ NAUTICAL_WARNINGS_ACTIVE = "nautical-warnings-active",
4
+ NAUTICAL_WARNINGS_ARCHIVED = "nautical-warnings-archived"
5
+ }
6
+ export declare function updateCachedJson<T>(db: DTDatabase | DTTransaction, cacheKey: JSON_CACHE_KEY, value: T): Promise<null>;
7
+ export declare function getJsonFromCache<T>(db: DTDatabase | DTTransaction, cacheKey: JSON_CACHE_KEY): Promise<T | null>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cached.js","sourceRoot":"","sources":["../../src/database/cached.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAG7C,MAAM,sBAAsB,GACxB;;;kDAG8C,CAAC;AAEnD,MAAM,mBAAmB,GACrB;wBACoB,CAAC;AAEzB,MAAM,qBAAqB,GAAG,IAAI,8BAAiB,CAAC;IAChD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,sBAAsB;CAC/B,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,IAAI,8BAAiB,CAAC;IAC7C,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;CAC5B,CAAC,CAAC;AAEH,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,uEAAqD,CAAA;IACrD,2EAAyD,CAAA;AAC7D,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAED,SAAgB,gBAAgB,CAAI,EAA8B,EAAE,QAAwB,EAAE,KAAQ;IAClG,OAAO,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC;AAFD,4CAEC;AAED,SAAgB,gBAAgB,CAAI,EAA8B,EAAE,QAAwB;IACxF,OAAO,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;AAC9F,CAAC;AAFD,4CAEC"}
@@ -0,0 +1,19 @@
1
+ import { IDatabase, ITask } from "pg-promise";
2
+ export declare type DTDatabase = IDatabase<unknown>;
3
+ export declare type DTTransaction = ITask<unknown>;
4
+ /**
5
+ * Creates a non-pooling database connection primarily used by Lambdas.
6
+ *
7
+ * Note! Using this method opens a new RDS connection on every invocation. It is advised to
8
+ * use RDS proxy to pool connections transparently.
9
+ * https://docs.amazonaws.cn/en_us/AmazonRDS/latest/AuroraUserGuide/rds-proxy.html
10
+ * @param username Username
11
+ * @param password Password
12
+ * @param applicationName name of application
13
+ * @param url Connection URL
14
+ * @param options pg-promise options
15
+ */
16
+ export declare function initDbConnection(username: string, password: string, applicationName: string, url: string, options?: object): DTDatabase;
17
+ export declare function inTransaction<T>(fn: (db: DTTransaction) => Promise<T>): Promise<T>;
18
+ export declare function inDatabase<T>(fn: (db: DTDatabase) => Promise<T>): Promise<T>;
19
+ export declare function inDatabaseReadonly<T>(fn: (db: DTDatabase) => Promise<T>): Promise<T>;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.inDatabaseReadonly = exports.inDatabase = exports.inTransaction = exports.initDbConnection = void 0;
4
4
  const dbsecret_1 = require("../aws/runtime/secrets/dbsecret");
5
5
  const utils_1 = require("../utils/utils");
6
+ const environment_1 = require("../aws/runtime/environment");
6
7
  // eslint-disable-next-line @typescript-eslint/no-var-requires
7
8
  const pgp = require("pg-promise")();
8
9
  // convert numeric types to number instead of string
@@ -45,14 +46,11 @@ function inDatabaseReadonly(fn) {
45
46
  }
46
47
  exports.inDatabaseReadonly = inDatabaseReadonly;
47
48
  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);
49
+ const db_application = (0, environment_1.envValue)(dbsecret_1.DatabaseEnvironmentKeys.DB_APPLICATION, "unknown-cdk-application");
50
+ const db_uri = readonly
51
+ ? (0, environment_1.envValue)(dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI)
52
+ : (0, environment_1.envValue)(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, db_uri);
56
54
  try {
57
55
  // deallocate all prepared statements to allow for connection pooling
58
56
  // DISCARD instead of DEALLOCATE as it didn't always clean all prepared statements
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":";;;AACA,8DAA0E;AAC1E,0CAAoE;AACpE,4DAAsD;AAEtD,8DAA8D;AAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;AAEpC,oDAAoD;AACpD,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE;IACrE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;IACvE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE;IACxE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAMH;;;;;;;;;;;GAWG;AACH,SAAgB,gBAAgB,CAC5B,QAAgB,EAChB,QAAgB,EAChB,eAAuB,EACvB,GAAW,EACX,OAAgB;IAEhB,MAAM,QAAQ,GAAG,gBAAgB,QAAQ,IAAI,QAAQ,IAAI,GAAG,qBAAqB,eAAe,EAAE,CAAC;IAEnG,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAVD,4CAUC;AAED,SAAgB,aAAa,CACzB,EAAqC;IAErC,OAAO,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAJD,sCAIC;AAED,SAAgB,UAAU,CAAI,EAAkC;IAC5D,OAAO,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAFD,gCAEC;AAED,SAAgB,kBAAkB,CAC9B,EAAkC;IAElC,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAJD,gDAIC;AAED,KAAK,UAAU,YAAY,CACvB,QAAiB,EACjB,EAAkC;IAElC,MAAM,cAAc,GAAG,IAAA,sBAAQ,EAC3B,kCAAuB,CAAC,cAAc,EACtC,yBAAyB,CAC5B,CAAC;IACF,MAAM,MAAM,GAAG,QAAQ;QACnB,CAAC,CAAC,IAAA,sBAAQ,EAAC,kCAAuB,CAAC,SAAS,CAAC;QAC7C,CAAC,CAAC,IAAA,sBAAQ,EAAC,kCAAuB,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,EAAE,GAAG,gBAAgB,CACvB,IAAA,sBAAc,EAAC,kCAAuB,CAAC,OAAO,CAAC,EAC/C,IAAA,sBAAc,EAAC,kCAAuB,CAAC,OAAO,CAAC,EAC/C,cAAc,EACd,MAAM,CACT,CAAC;IACF,IAAI;QACA,qEAAqE;QACrE,kFAAkF;QAClF,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7B,OAAO,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;KACvB;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,CAAC;KACX;YAAS;QACN,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;KAClB;AACL,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { DTDatabase, DTTransaction } from "./database";
2
+ export declare enum DataType {
3
+ VS_DATEX2 = "VS_DATEX2",
4
+ COUNTING_SITES_DATA = "COUNTING_SITES_DATA",
5
+ COUNTING_SITES_METADATA = "COUNTING_SITES_METADATA",
6
+ COUNTING_SITES_METADATA_CHECK = "COUNTING_SITES_METADATA_CHECK",
7
+ MAINTENANCE_TRACKING_DATA_CHECKED = "MAINTENANCE_TRACKING_DATA_CHECKED",
8
+ PERMIT_DATA = "PERMIT_DATA",
9
+ PERMIT_DATA_CHECK = "PERMIT_DATA_CHECK"
10
+ }
11
+ export declare function getLastUpdated(db: DTDatabase, datatype: DataType): Promise<Date | null>;
12
+ export declare function getLastUpdatedWithSubtype(db: DTDatabase, datatype: DataType, subtype: string): Promise<Date | null>;
13
+ export declare function updateLastUpdated(db: DTDatabase | DTTransaction, datatype: DataType, updated: Date): Promise<null>;
14
+ export declare function updateLastUpdatedWithSubtype(db: DTDatabase | DTTransaction, datatype: DataType, subtype: string, updated: Date): Promise<null>;
15
+ export declare function getUpdatedTimestamp(db: DTDatabase, datatype: string): Promise<Date | null>;
16
+ export declare function updateUpdatedTimestamp(db: DTDatabase | DTTransaction, datatype: string, date: Date, by?: string): Promise<null>;
@@ -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 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/database/models.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export declare function isValidIMO(imo: number): boolean;
2
+ export declare function isValidMMSI(mmsi: number): boolean;
3
+ export declare function isValidLOCODE(locode: string): boolean;
@@ -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"}
@@ -0,0 +1,48 @@
1
+ export declare type RtzPositionCoordinate = {
2
+ readonly $: {
3
+ readonly lat: number;
4
+ readonly lon: number;
5
+ };
6
+ };
7
+ export declare type RtzWaypointPosition = {
8
+ readonly position: RtzPositionCoordinate[];
9
+ };
10
+ export declare type RtzWaypoint = {
11
+ readonly waypoint: RtzWaypointPosition[];
12
+ };
13
+ export declare type RtzScheduleElement = {
14
+ readonly $: {
15
+ /**
16
+ * Date
17
+ */
18
+ readonly etd?: string;
19
+ /**
20
+ * Date
21
+ */
22
+ readonly eta?: string;
23
+ };
24
+ };
25
+ export declare type RtzSchedule = {
26
+ readonly scheduleElement: RtzScheduleElement[];
27
+ };
28
+ export declare type RtzScheduleWrapper = {
29
+ readonly manual?: RtzSchedule[];
30
+ readonly calculated?: RtzSchedule[];
31
+ };
32
+ export declare type RtzSchedules = {
33
+ readonly schedule: RtzScheduleWrapper[];
34
+ };
35
+ export declare type RtzRouteInfo = {
36
+ readonly $: {
37
+ readonly vesselMMSI: string;
38
+ readonly vesselIMO: string;
39
+ };
40
+ };
41
+ export declare type RtzRoute = {
42
+ readonly routeInfo: RtzRouteInfo[];
43
+ readonly waypoints: RtzWaypoint[];
44
+ readonly schedules: RtzSchedules[];
45
+ };
46
+ export declare type RtzVoyagePlan = {
47
+ readonly route: RtzRoute;
48
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtz.js","sourceRoot":"","sources":["../../src/marine/rtz.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * A simple asserter-class for writing canaries without dependency to testing-libraries.
3
+ */
4
+ export declare abstract class Asserter {
5
+ static assertEquals<T>(value: T, expected: T): void;
6
+ static assertTrue<T>(value: T): void;
7
+ static assertLength<T>(data: T[], expected: number): void;
8
+ static assertLengthGreaterThan<T>(data: T[], expected: number): void;
9
+ static assertGreaterThan(value: number, expected: number): void;
10
+ static assertToBeCloseTo(value: number, expected: number, delta: number): void;
11
+ }
@@ -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"}
@@ -0,0 +1,3 @@
1
+ import { DTDatabase } from "../database/database";
2
+ export declare function assertCount(db: DTDatabase, sql: string, count: number): Promise<void>;
3
+ export declare function dbTestBase(fn: (db: DTDatabase) => void, truncateFn: (db: DTDatabase) => Promise<void>, dbUser: string, dbPass: string, dbUri: string): () => void;
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dbTestBase = void 0;
3
+ exports.dbTestBase = exports.assertCount = void 0;
4
4
  const database_1 = require("../database/database");
5
5
  const dbsecret_1 = require("../aws/runtime/secrets/dbsecret");
6
+ async function assertCount(db, sql, count) {
7
+ await db.one(sql).then((x) => expect(x.count).toEqual(count));
8
+ }
9
+ exports.assertCount = assertCount;
6
10
  function dbTestBase(fn, truncateFn, dbUser, dbPass, dbUri) {
7
11
  const theDbUri = process.env.DB_URI ?? dbUri;
8
12
  console.log(`Test database URI: ${theDbUri}`);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-testutils.js","sourceRoot":"","sources":["../../src/test/db-testutils.ts"],"names":[],"mappings":";;;AAAA,mDAAoE;AACpE,8DAA0E;AAGnE,KAAK,UAAU,WAAW,CAAC,EAAc,EAAE,GAAW,EAAE,KAAa;IACxE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAFD,kCAEC;AAED,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"}
@@ -0,0 +1,19 @@
1
+ export declare const ERROR_NO_MATCH = "NO MATCH";
2
+ export declare const ERRORCODE_NOT_FOUND = 404;
3
+ /**
4
+ * A mock HTTP server created for testing connections from a Lambda to an outside integration
5
+ */
6
+ export declare class TestHttpServer {
7
+ private server?;
8
+ private debug;
9
+ private messageStack;
10
+ constructor();
11
+ getCallCount(): number;
12
+ getRequestBody(callNumber: number): string;
13
+ listen(port: number, props: ListenProperties, debug?: boolean, statusCode?: number): void;
14
+ close(): void;
15
+ private debuglog;
16
+ }
17
+ export interface ListenProperties {
18
+ [key: string]: (url?: string, data?: string) => string;
19
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpserver.js","sourceRoot":"","sources":["../../src/test/httpserver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { EmptySecretFunction, SecretFunction } from "../aws/runtime/secrets/dbsecret";
2
+ export declare function createSecretFunction<Secret, Response>(secret: Secret): SecretFunction<Secret, Response>;
3
+ export declare function createEmptySecretFunction<Response>(): EmptySecretFunction<Response>;
@@ -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"}
@@ -0,0 +1,9 @@
1
+ import * as sinon from "sinon";
2
+ /**
3
+ * Stub Secrets Manager for tests. You must call this
4
+ * before you instantiate Secrets Manager(this might happen when you import the function that uses Secrets Manager).
5
+ *
6
+ * To mock the actual secret, call mockSecret()
7
+ */
8
+ export declare function stubSecretsManager(): sinon.SinonStub<any[], any>;
9
+ export declare function mockSecret<Secret>(secret: Secret): void;
@@ -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"}
@@ -0,0 +1,12 @@
1
+ export declare function randomString(): string;
2
+ export declare function getRandomNumber(min: number, max: number): number;
3
+ export declare function getRandomNumberAsString(min: number, max: number): string;
4
+ export declare function getRandomInteger(min: number, max: number): number;
5
+ export declare function getRandomIntegerAsString(min: number, max: number): string;
6
+ export declare function getRandomBigInt(min: number, max: number): bigint;
7
+ export declare function randomBoolean(): boolean;
8
+ /**
9
+ * Returns a new copy of an array, shuffled using Math.random()
10
+ * @param array Array
11
+ */
12
+ export declare function shuffle<T>(array: T[]): T[];
@@ -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 @@
1
+ {"version":3,"file":"either.js","sourceRoot":"","sources":["../../src/types/either.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare class InputError extends Error {
2
+ }
@@ -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"}
@@ -0,0 +1,5 @@
1
+ export declare enum Language {
2
+ FI = "fi",
3
+ EN = "en",
4
+ SV = "sv"
5
+ }
@@ -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"}
@@ -0,0 +1,8 @@
1
+ export declare enum TrafficType {
2
+ ROAD = "Road",
3
+ MARINE = "Marine",
4
+ RAIL = "Rail",
5
+ AVIATION = "Aviation",
6
+ MCP = "MCP",
7
+ OTHER = "Other"
8
+ }
@@ -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"}
@@ -0,0 +1,4 @@
1
+ export declare const MIN_YEAR = 1900;
2
+ export declare const MAX_YEAR = 2100;
3
+ export declare function validateYear(year: number, minYear?: number, maxYear?: number): boolean;
4
+ export declare function validateMonth(month: number): boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/types/validator.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,IAAI,CAAC;AAChB,QAAA,QAAQ,GAAG,IAAI,CAAC;AAE7B,SAAgB,YAAY,CAAC,IAAY,EAAE,OAAO,GAAG,gBAAQ,EAAE,OAAO,GAAG,gBAAQ;IAC7E,OAAO,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC;AAC9C,CAAC;AAFD,oCAEC;AAED,SAAgB,aAAa,CAAC,KAAa;IACvC,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;AACnC,CAAC;AAFD,sCAEC"}
@@ -0,0 +1,87 @@
1
+ import { RestApi, Model, JsonSchema, RequestValidator, JsonSchemaType, JsonSchemaVersion } from 'aws-cdk-lib/aws-apigateway';
2
+ import { ModelWithReference } from "../aws/types/model-with-reference";
3
+ /**
4
+ * Get a reference to an OpenAPI model object in a REST API.
5
+ * Can be used to supply a reference to properties of a GeoJSON feature.
6
+ * @param modelId Id of the referenced object
7
+ * @param restApiId Id of the REST API
8
+ */
9
+ export declare function getModelReference(modelId: string, restApiId: string): string;
10
+ /**
11
+ * Adds a request validator to a REST API to enforce request parameters/body requirements.
12
+ * https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html
13
+ * @param api REST API
14
+ */
15
+ export declare function addDefaultValidator(api: RestApi): RequestValidator;
16
+ /**
17
+ * Adds a JSON Schema model to an API Gateway API. Can be used later to generate OpenAPI specifications.
18
+ * This method adds a schema for _a single object._
19
+ * @param name Name of the model
20
+ * @param api REST API
21
+ * @param schema JSON Schema
22
+ * @return ModelWithReference A model object with a reference to an API Gateway model object.
23
+ */
24
+ export declare function addServiceModel(modelName: string, api: RestApi, schema: JsonSchema): ModelWithReference;
25
+ /**
26
+ * Add an empty JSON schema model to an API Gateway API.
27
+ * Usable for example if the incoming data is in XML format but some template transformation is necessary.
28
+ * @param modelName
29
+ * @param api
30
+ * @param contentType
31
+ */
32
+ export declare function addSimpleServiceModel(modelName: string, api: RestApi, contentType?: string): Model;
33
+ /**
34
+ * Adds a JSON Schema model to an API Gateway API. Can be used later to generate OpenAPI specifications.
35
+ * This method adds a schema for _an array._
36
+ * @param model
37
+ * @param api
38
+ */
39
+ export declare function createArraySchema(model: Model, api: RestApi): JsonSchema;
40
+ /**
41
+ * Creates a JSON Schema for a GeoJSON Feature. Can be used to generate OpenAPI descriptions.
42
+ * @param modelReference Reference to a model object
43
+ */
44
+ export declare function featureSchema(modelReference: string): {
45
+ schema: JsonSchemaVersion;
46
+ type: JsonSchemaType;
47
+ description: string;
48
+ required: string[];
49
+ properties: {
50
+ type: {
51
+ type: JsonSchemaType;
52
+ description: string;
53
+ enum: string[];
54
+ };
55
+ properties: {
56
+ ref: string;
57
+ };
58
+ geometry: {
59
+ type: JsonSchemaType;
60
+ description: string;
61
+ };
62
+ };
63
+ };
64
+ /**
65
+ *
66
+ * Creates a JSON Schema for a GeoJSON Feature Collection. Can be used to generate OpenAPI descriptions.
67
+ * @param modelReference Reference to a model object, in this case Features.
68
+ */
69
+ export declare function geojsonSchema(modelReference: string): {
70
+ schema: JsonSchemaVersion;
71
+ type: JsonSchemaType;
72
+ description: string;
73
+ required: string[];
74
+ properties: {
75
+ type: {
76
+ type: JsonSchemaType;
77
+ description: string;
78
+ enum: string[];
79
+ };
80
+ features: {
81
+ type: JsonSchemaType;
82
+ items: {
83
+ ref: string;
84
+ };
85
+ };
86
+ };
87
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-model.js","sourceRoot":"","sources":["../../src/utils/api-model.ts"],"names":[],"mappings":";;;AAAA,+DAOoC;AAGpC;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,OAAe,EAAE,SAAiB;IAChE,OAAO,6CAA6C,SAAS,WAAW,OAAO,EAAE,CAAC;AACtF,CAAC;AAFD,8CAEC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,GAAY;IAC5C,OAAO,GAAG,CAAC,mBAAmB,CAAC,kBAAkB,EAAE;QAC/C,yBAAyB,EAAE,IAAI;QAC/B,mBAAmB,EAAE,IAAI;KAC5B,CAAC,CAAC;AACP,CAAC;AALD,kDAKC;AAED;;;;;;;GAOG;AACH,SAAgB,eAAe,CAAC,SAAiB,EAAE,GAAY,EAAE,MAAkB;IAC/E,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE;QAChC,WAAW,EAAE,kBAAkB;QAC/B,SAAS;QACT,MAAM;KACT,CAAuB,CAAC;IACzB,GAAG,CAAC,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IACnE,OAAO,GAAG,CAAC;AACf,CAAC;AARD,0CAQC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,SAAiB,EAAE,GAAY,EAAE,WAAW,GAAG,iBAAiB;IAClG,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE;QAC3B,WAAW;QACX,SAAS;QACT,MAAM,EAAE,EAAE;KACb,CAAC,CAAC;AACP,CAAC;AAND,sDAMC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,KAAY,EAAE,GAAY;IACxD,OAAO;QACH,IAAI,EAAE,+BAAc,CAAC,KAAK;QAC1B,KAAK,EAAE;YACH,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;SACvD;KACJ,CAAC;AACN,CAAC;AAPD,8CAOC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,cAAsB;IAChD,OAAO;QACH,MAAM,EAAE,kCAAiB,CAAC,MAAM;QAChC,IAAI,EAAE,+BAAc,CAAC,MAAM;QAC3B,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC;QAC5C,UAAU,EAAE;YACR,IAAI,EAAE;gBACF,IAAI,EAAE,+BAAc,CAAC,MAAM;gBAC3B,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,CAAC,SAAS,CAAC;aACpB;YACD,UAAU,EAAE;gBACR,GAAG,EAAE,cAAc;aACtB;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE,+BAAc,CAAC,MAAM;gBAC3B,WAAW,EAAE,kBAAkB;aAClC;SACJ;KACJ,CAAC;AACN,CAAC;AArBD,sCAqBC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,cAAsB;IAChD,OAAO;QACH,MAAM,EAAE,kCAAiB,CAAC,MAAM;QAChC,IAAI,EAAE,+BAAc,CAAC,MAAM;QAC3B,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;QAC9B,UAAU,EAAE;YACR,IAAI,EAAE;gBACF,IAAI,EAAE,+BAAc,CAAC,MAAM;gBAC3B,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,CAAC,mBAAmB,CAAC;aAC9B;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE,+BAAc,CAAC,KAAK;gBAC1B,KAAK,EAAE;oBACH,GAAG,EAAE,cAAc;iBACtB;aACJ;SACJ;KACJ,CAAC;AACN,CAAC;AApBD,sCAoBC"}