@digitraffic/common 2022.10.25-1 → 2022.10.31-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 (283) hide show
  1. package/.editorconfig +9 -0
  2. package/.eslintignore +4 -0
  3. package/.eslintrc.json +27 -0
  4. package/.github/CODEOWNERS +2 -0
  5. package/.github/workflows/build.yml +36 -0
  6. package/.github/workflows/eslint.yml +38 -0
  7. package/.github/workflows/mirror.yml +15 -0
  8. package/.gitignore +29 -0
  9. package/.husky/pre-commit +4 -0
  10. package/.prettierrc.json +10 -0
  11. package/dist/aws/infra/api/integration.js +52 -0
  12. package/dist/aws/infra/api/response.js +61 -0
  13. package/dist/aws/infra/api/responses.js +82 -0
  14. package/dist/aws/infra/api/static-integration.js +54 -0
  15. package/dist/aws/infra/canaries/canary-alarm.js +26 -0
  16. package/dist/aws/infra/canaries/canary-keys.js +7 -0
  17. package/dist/aws/infra/canaries/canary-parameters.js +3 -0
  18. package/dist/aws/infra/canaries/canary-role.js +46 -0
  19. package/dist/aws/infra/canaries/canary.js +32 -0
  20. package/dist/aws/infra/canaries/database-canary.js +70 -0
  21. package/dist/aws/infra/canaries/database-checker.js +103 -0
  22. package/dist/aws/infra/canaries/url-canary.js +47 -0
  23. package/dist/aws/infra/canaries/url-checker.js +252 -0
  24. package/dist/aws/infra/documentation.js +95 -0
  25. package/dist/aws/infra/scheduler.js +31 -0
  26. package/dist/aws/infra/security-rule.js +39 -0
  27. package/dist/aws/infra/sqs-integration.js +93 -0
  28. package/dist/aws/infra/sqs-queue.js +130 -0
  29. package/dist/aws/infra/stack/lambda-configs.js +105 -0
  30. package/dist/aws/infra/stack/monitoredfunction.js +143 -0
  31. package/dist/aws/infra/stack/rest_apis.js +185 -0
  32. package/dist/aws/infra/stack/stack-checking-aspect.js +174 -0
  33. package/dist/aws/infra/stack/stack.js +67 -0
  34. package/dist/aws/infra/stack/subscription.js +42 -0
  35. package/dist/aws/infra/usage-plans.js +42 -0
  36. package/dist/aws/runtime/apikey.js +13 -0
  37. package/dist/aws/runtime/digitraffic-integration-response.js +26 -0
  38. package/dist/aws/runtime/environment.js +12 -0
  39. package/dist/aws/runtime/messaging.js +31 -0
  40. package/dist/aws/runtime/s3.js +30 -0
  41. package/dist/aws/runtime/secrets/dbsecret.js +96 -0
  42. package/dist/aws/runtime/secrets/proxy-holder.js +27 -0
  43. package/dist/aws/runtime/secrets/rds-holder.js +27 -0
  44. package/dist/aws/runtime/secrets/secret-holder.js +76 -0
  45. package/dist/aws/runtime/secrets/secret.js +43 -0
  46. package/dist/aws/types/errors.js +16 -0
  47. package/dist/aws/types/lambda-response.js +33 -0
  48. package/dist/aws/types/mediatypes.js +16 -0
  49. package/dist/aws/types/model-with-reference.js +3 -0
  50. package/dist/aws/types/proxytypes.js +3 -0
  51. package/dist/aws/types/tags.js +7 -0
  52. package/dist/database/cached.js +32 -0
  53. package/dist/database/database.js +70 -0
  54. package/dist/database/last-updated.js +54 -0
  55. package/dist/database/models.js +3 -0
  56. package/dist/marine/id_utils.js +33 -0
  57. package/dist/marine/rtz.js +3 -0
  58. package/dist/test/asserter.js +45 -0
  59. package/dist/test/db-testutils.js +31 -0
  60. package/dist/test/httpserver.js +74 -0
  61. package/dist/test/secret.js +25 -0
  62. package/dist/test/secrets-manager.js +59 -0
  63. package/dist/test/testutils.js +44 -0
  64. package/dist/types/either.js +3 -0
  65. package/dist/types/input-error.js +7 -0
  66. package/dist/types/language.js +10 -0
  67. package/dist/types/traffictype.js +13 -0
  68. package/dist/types/validator.js +14 -0
  69. package/dist/utils/api-model.js +129 -0
  70. package/dist/utils/base64.js +21 -0
  71. package/dist/utils/date-utils.js +34 -0
  72. package/dist/utils/geojson-types.js +18 -0
  73. package/dist/utils/geometry.js +164 -0
  74. package/dist/utils/retry.js +50 -0
  75. package/dist/utils/slack.js +25 -0
  76. package/dist/utils/utils.js +75 -0
  77. package/jest.config.js +15 -0
  78. package/package.json +15 -13
  79. package/src/@types/geojson-validation/index.d.ts +4 -0
  80. package/src/aws/infra/api/integration.ts +73 -0
  81. package/src/aws/infra/api/response.ts +67 -0
  82. package/src/aws/infra/api/responses.ts +124 -0
  83. package/src/aws/infra/api/static-integration.ts +62 -0
  84. package/src/aws/infra/canaries/canary-alarm.ts +31 -0
  85. package/src/aws/infra/canaries/canary-keys.ts +3 -0
  86. package/{aws/infra/canaries/canary-parameters.d.ts → src/aws/infra/canaries/canary-parameters.ts} +7 -6
  87. package/src/aws/infra/canaries/canary-role.ts +47 -0
  88. package/src/aws/infra/canaries/canary.ts +46 -0
  89. package/src/aws/infra/canaries/database-canary.ts +98 -0
  90. package/src/aws/infra/canaries/database-checker.ts +155 -0
  91. package/src/aws/infra/canaries/url-canary.ts +74 -0
  92. package/src/aws/infra/canaries/url-checker.ts +366 -0
  93. package/src/aws/infra/documentation.ts +124 -0
  94. package/src/aws/infra/scheduler.ts +59 -0
  95. package/src/aws/infra/security-rule.ts +38 -0
  96. package/src/aws/infra/sqs-integration.ts +102 -0
  97. package/src/aws/infra/sqs-queue.ts +148 -0
  98. package/src/aws/infra/stack/lambda-configs.ts +207 -0
  99. package/src/aws/infra/stack/monitoredfunction.ts +342 -0
  100. package/src/aws/infra/stack/rest_apis.ts +223 -0
  101. package/src/aws/infra/stack/stack-checking-aspect.ts +279 -0
  102. package/src/aws/infra/stack/stack.ts +145 -0
  103. package/src/aws/infra/stack/subscription.ts +58 -0
  104. package/src/aws/infra/usage-plans.ts +41 -0
  105. package/src/aws/runtime/apikey.ts +9 -0
  106. package/src/aws/runtime/digitraffic-integration-response.ts +28 -0
  107. package/src/aws/runtime/environment.ts +9 -0
  108. package/src/aws/runtime/messaging.ts +26 -0
  109. package/src/aws/runtime/s3.ts +44 -0
  110. package/src/aws/runtime/secrets/dbsecret.ts +116 -0
  111. package/src/aws/runtime/secrets/proxy-holder.ts +37 -0
  112. package/src/aws/runtime/secrets/rds-holder.ts +33 -0
  113. package/src/aws/runtime/secrets/secret-holder.ts +116 -0
  114. package/src/aws/runtime/secrets/secret.ts +50 -0
  115. package/src/aws/types/errors.ts +14 -0
  116. package/src/aws/types/lambda-response.ts +43 -0
  117. package/{aws/types/mediatypes.d.ts → src/aws/types/mediatypes.ts} +4 -3
  118. package/{aws/types/model-with-reference.d.ts → src/aws/types/model-with-reference.ts} +2 -1
  119. package/src/aws/types/proxytypes.ts +27 -0
  120. package/src/aws/types/tags.ts +3 -0
  121. package/src/database/cached.ts +35 -0
  122. package/src/database/database.ts +96 -0
  123. package/src/database/last-updated.ts +59 -0
  124. package/{database/models.d.ts → src/database/models.ts} +1 -0
  125. package/src/marine/id_utils.ts +30 -0
  126. package/src/marine/rtz.ts +57 -0
  127. package/src/test/asserter.ts +48 -0
  128. package/src/test/db-testutils.ts +44 -0
  129. package/src/test/httpserver.ts +96 -0
  130. package/src/test/secret.ts +23 -0
  131. package/src/test/secrets-manager.ts +34 -0
  132. package/src/test/testutils.ts +39 -0
  133. package/src/types/either.ts +3 -0
  134. package/src/types/input-error.ts +2 -0
  135. package/src/types/language.ts +3 -0
  136. package/src/types/traffictype.ts +8 -0
  137. package/src/types/validator.ts +10 -0
  138. package/src/utils/api-model.ts +133 -0
  139. package/src/utils/base64.ts +16 -0
  140. package/src/utils/date-utils.ts +30 -0
  141. package/src/utils/geojson-types.ts +22 -0
  142. package/src/utils/geometry.ts +164 -0
  143. package/src/utils/retry.ts +49 -0
  144. package/src/utils/slack.ts +22 -0
  145. package/src/utils/utils.ts +105 -0
  146. package/test/marine/id_utils.test.ts +57 -0
  147. package/test/promise/promise.test.ts +143 -0
  148. package/test/secrets/dbsecret.test.ts +59 -0
  149. package/test/secrets/secret-holder.test.ts +143 -0
  150. package/test/secrets/secret.test.ts +49 -0
  151. package/test/test/httpserver.test.ts +128 -0
  152. package/test/utils/date-utils.test.ts +28 -0
  153. package/test/utils/geometry.test.ts +29 -0
  154. package/test/utils/utils.test.ts +64 -0
  155. package/tsconfig.eslint.json +4 -0
  156. package/tsconfig.json +22 -0
  157. package/yarn.lock +4060 -0
  158. package/aws/infra/api/integration.d.ts +0 -21
  159. package/aws/infra/api/integration.js +0 -52
  160. package/aws/infra/api/response.d.ts +0 -22
  161. package/aws/infra/api/response.js +0 -61
  162. package/aws/infra/api/responses.d.ts +0 -39
  163. package/aws/infra/api/responses.js +0 -79
  164. package/aws/infra/api/static-integration.d.ts +0 -15
  165. package/aws/infra/api/static-integration.js +0 -54
  166. package/aws/infra/canaries/canary-alarm.d.ts +0 -6
  167. package/aws/infra/canaries/canary-alarm.js +0 -26
  168. package/aws/infra/canaries/canary-parameters.js +0 -3
  169. package/aws/infra/canaries/canary-role.d.ts +0 -6
  170. package/aws/infra/canaries/canary-role.js +0 -46
  171. package/aws/infra/canaries/canary.d.ts +0 -8
  172. package/aws/infra/canaries/canary.js +0 -32
  173. package/aws/infra/canaries/database-canary.d.ts +0 -18
  174. package/aws/infra/canaries/database-canary.js +0 -55
  175. package/aws/infra/canaries/database-checker.d.ts +0 -21
  176. package/aws/infra/canaries/database-checker.js +0 -109
  177. package/aws/infra/canaries/url-canary.d.ts +0 -19
  178. package/aws/infra/canaries/url-canary.js +0 -46
  179. package/aws/infra/canaries/url-checker.d.ts +0 -46
  180. package/aws/infra/canaries/url-checker.js +0 -238
  181. package/aws/infra/documentation.d.ts +0 -56
  182. package/aws/infra/documentation.js +0 -95
  183. package/aws/infra/scheduler.d.ts +0 -12
  184. package/aws/infra/scheduler.js +0 -31
  185. package/aws/infra/security-rule.d.ts +0 -12
  186. package/aws/infra/security-rule.js +0 -39
  187. package/aws/infra/sqs-integration.d.ts +0 -7
  188. package/aws/infra/sqs-integration.js +0 -93
  189. package/aws/infra/sqs-queue.d.ts +0 -16
  190. package/aws/infra/sqs-queue.js +0 -130
  191. package/aws/infra/stack/lambda-configs.d.ts +0 -72
  192. package/aws/infra/stack/lambda-configs.js +0 -93
  193. package/aws/infra/stack/monitoredfunction.d.ts +0 -84
  194. package/aws/infra/stack/monitoredfunction.js +0 -135
  195. package/aws/infra/stack/rest_apis.d.ts +0 -41
  196. package/aws/infra/stack/rest_apis.js +0 -185
  197. package/aws/infra/stack/stack-checking-aspect.d.ts +0 -21
  198. package/aws/infra/stack/stack-checking-aspect.js +0 -174
  199. package/aws/infra/stack/stack.d.ts +0 -44
  200. package/aws/infra/stack/stack.js +0 -60
  201. package/aws/infra/stack/subscription.d.ts +0 -17
  202. package/aws/infra/stack/subscription.js +0 -41
  203. package/aws/infra/usage-plans.d.ts +0 -15
  204. package/aws/infra/usage-plans.js +0 -42
  205. package/aws/runtime/apikey.d.ts +0 -2
  206. package/aws/runtime/apikey.js +0 -13
  207. package/aws/runtime/digitraffic-integration-response.d.ts +0 -8
  208. package/aws/runtime/digitraffic-integration-response.js +0 -26
  209. package/aws/runtime/environment.d.ts +0 -1
  210. package/aws/runtime/environment.js +0 -12
  211. package/aws/runtime/messaging.d.ts +0 -10
  212. package/aws/runtime/messaging.js +0 -31
  213. package/aws/runtime/s3.d.ts +0 -2
  214. package/aws/runtime/s3.js +0 -30
  215. package/aws/runtime/secrets/dbsecret.d.ts +0 -54
  216. package/aws/runtime/secrets/dbsecret.js +0 -96
  217. package/aws/runtime/secrets/proxy-holder.d.ts +0 -9
  218. package/aws/runtime/secrets/proxy-holder.js +0 -26
  219. package/aws/runtime/secrets/rds-holder.d.ts +0 -9
  220. package/aws/runtime/secrets/rds-holder.js +0 -26
  221. package/aws/runtime/secrets/secret-holder.d.ts +0 -26
  222. package/aws/runtime/secrets/secret-holder.js +0 -73
  223. package/aws/runtime/secrets/secret.d.ts +0 -8
  224. package/aws/runtime/secrets/secret.js +0 -43
  225. package/aws/types/errors.d.ts +0 -4
  226. package/aws/types/errors.js +0 -9
  227. package/aws/types/lambda-response.d.ts +0 -12
  228. package/aws/types/lambda-response.js +0 -28
  229. package/aws/types/mediatypes.js +0 -15
  230. package/aws/types/model-with-reference.js +0 -3
  231. package/aws/types/proxytypes.d.ts +0 -26
  232. package/aws/types/proxytypes.js +0 -3
  233. package/aws/types/tags.d.ts +0 -2
  234. package/aws/types/tags.js +0 -7
  235. package/database/cached.d.ts +0 -7
  236. package/database/cached.js +0 -32
  237. package/database/database.d.ts +0 -19
  238. package/database/database.js +0 -62
  239. package/database/last-updated.d.ts +0 -16
  240. package/database/last-updated.js +0 -54
  241. package/database/models.js +0 -3
  242. package/index.d.ts +0 -1
  243. package/index.js +0 -18
  244. package/marine/id_utils.d.ts +0 -3
  245. package/marine/id_utils.js +0 -33
  246. package/marine/rtz.d.ts +0 -48
  247. package/marine/rtz.js +0 -3
  248. package/test/asserter.d.ts +0 -11
  249. package/test/asserter.js +0 -45
  250. package/test/db-testutils.d.ts +0 -2
  251. package/test/db-testutils.js +0 -31
  252. package/test/httpserver.d.ts +0 -18
  253. package/test/httpserver.js +0 -67
  254. package/test/secret.d.ts +0 -3
  255. package/test/secret.js +0 -25
  256. package/test/secrets-manager.d.ts +0 -9
  257. package/test/secrets-manager.js +0 -59
  258. package/test/testutils.d.ts +0 -12
  259. package/test/testutils.js +0 -44
  260. package/types/input-error.d.ts +0 -2
  261. package/types/input-error.js +0 -7
  262. package/types/language.d.ts +0 -5
  263. package/types/language.js +0 -10
  264. package/types/traffictype.d.ts +0 -8
  265. package/types/traffictype.js +0 -13
  266. package/types/validator.d.ts +0 -4
  267. package/types/validator.js +0 -14
  268. package/utils/api-model.d.ts +0 -87
  269. package/utils/api-model.js +0 -129
  270. package/utils/base64.d.ts +0 -12
  271. package/utils/base64.js +0 -21
  272. package/utils/date-utils.d.ts +0 -17
  273. package/utils/date-utils.js +0 -34
  274. package/utils/geojson-types.d.ts +0 -14
  275. package/utils/geojson-types.js +0 -18
  276. package/utils/geometry.d.ts +0 -36
  277. package/utils/geometry.js +0 -140
  278. package/utils/retry.d.ts +0 -13
  279. package/utils/retry.js +0 -50
  280. package/utils/slack.d.ts +0 -5
  281. package/utils/slack.js +0 -25
  282. package/utils/utils.d.ts +0 -30
  283. package/utils/utils.js +0 -64
@@ -1,21 +0,0 @@
1
- import { IntegrationResponse, LambdaIntegration } from "aws-cdk-lib/aws-apigateway";
2
- import { IFunction } from "aws-cdk-lib/aws-lambda";
3
- import { MediaType } from "../../types/mediatypes";
4
- declare type ParameterType = 'path' | 'querystring';
5
- interface ApiParameter {
6
- type: ParameterType;
7
- name: string;
8
- }
9
- export declare class DigitrafficIntegration {
10
- readonly lambda: IFunction;
11
- readonly mediaType: MediaType;
12
- readonly parameters: ApiParameter[];
13
- constructor(lambda: IFunction, mediaType?: MediaType);
14
- addPathParameter(...names: string[]): DigitrafficIntegration;
15
- addQueryParameter(...names: string[]): DigitrafficIntegration;
16
- build(): LambdaIntegration;
17
- createRequestParameters(): Record<string, string>;
18
- createRequestTemplates(): Record<string, string>;
19
- createResponses(): IntegrationResponse[];
20
- }
21
- export {};
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficIntegration = void 0;
4
- const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
5
- const mediatypes_1 = require("../../types/mediatypes");
6
- const digitraffic_integration_response_1 = require("../../runtime/digitraffic-integration-response");
7
- class DigitrafficIntegration {
8
- constructor(lambda, mediaType = mediatypes_1.MediaType.TEXT_PLAIN) {
9
- this.parameters = [];
10
- this.lambda = lambda;
11
- this.mediaType = mediaType;
12
- }
13
- addPathParameter(...names) {
14
- names.forEach(name => this.parameters.push({ type: 'path', name }));
15
- return this;
16
- }
17
- addQueryParameter(...names) {
18
- names.forEach(name => this.parameters.push({ type: 'querystring', name }));
19
- return this;
20
- }
21
- build() {
22
- const integrationResponses = this.createResponses();
23
- return new aws_apigateway_1.LambdaIntegration(this.lambda, {
24
- proxy: false,
25
- integrationResponses,
26
- requestParameters: this.parameters.length == 0 ? undefined : this.createRequestParameters(),
27
- requestTemplates: this.parameters.length == 0 ? undefined : this.createRequestTemplates(),
28
- passthroughBehavior: aws_apigateway_1.PassthroughBehavior.WHEN_NO_MATCH,
29
- });
30
- }
31
- createRequestParameters() {
32
- const requestParameters = {};
33
- this.parameters.forEach((parameter) => {
34
- requestParameters[`integration.request.${parameter.type}.${parameter.name}`] = `method.request.${parameter.type}.${parameter.name}`;
35
- });
36
- return requestParameters;
37
- }
38
- createRequestTemplates() {
39
- const requestJson = {};
40
- this.parameters.forEach((parameter) => {
41
- requestJson[parameter.name] = `$util.escapeJavaScript($input.params('${parameter.name}'))`;
42
- });
43
- return {
44
- [mediatypes_1.MediaType.APPLICATION_JSON]: JSON.stringify(requestJson),
45
- };
46
- }
47
- createResponses() {
48
- return [digitraffic_integration_response_1.DigitrafficIntegrationResponse.ok(this.mediaType)];
49
- }
50
- }
51
- exports.DigitrafficIntegration = DigitrafficIntegration;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2luZnJhL2FwaS9pbnRlZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBdUc7QUFFdkcsdURBQWlEO0FBQ2pELHFHQUE4RjtBQVM5RixNQUFhLHNCQUFzQjtJQU0vQixZQUFZLE1BQWlCLEVBQUUsU0FBUyxHQUFHLHNCQUFTLENBQUMsVUFBVTtRQUZ0RCxlQUFVLEdBQW1CLEVBQUUsQ0FBQztRQUdyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBRyxLQUFlO1FBQy9CLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxFLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFHLEtBQWU7UUFDaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekUsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUs7UUFDRCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUVwRCxPQUFPLElBQUksa0NBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN0QyxLQUFLLEVBQUUsS0FBSztZQUNaLG9CQUFvQjtZQUNwQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQzNGLGdCQUFnQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDekYsbUJBQW1CLEVBQUUsb0NBQW1CLENBQUMsYUFBYTtTQUN6RCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLE1BQU0saUJBQWlCLEdBQTJCLEVBQUUsQ0FBQztRQUVyRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQXVCLEVBQUUsRUFBRTtZQUNoRCxpQkFBaUIsQ0FBQyx1QkFBdUIsU0FBUyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxrQkFBa0IsU0FBUyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEksQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGlCQUFpQixDQUFDO0lBQzdCLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsTUFBTSxXQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQXVCLEVBQUUsRUFBRTtZQUNoRCxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLHlDQUF5QyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUM7UUFDL0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0gsQ0FBQyxzQkFBUyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7U0FDNUQsQ0FBQztJQUNOLENBQUM7SUFFRCxlQUFlO1FBQ1gsT0FBTyxDQUFDLGlFQUE4QixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0o7QUE1REQsd0RBNERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbnRlZ3JhdGlvblJlc3BvbnNlLCBMYW1iZGFJbnRlZ3JhdGlvbiwgUGFzc3Rocm91Z2hCZWhhdmlvcn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5XCI7XG5pbXBvcnQge0lGdW5jdGlvbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7TWVkaWFUeXBlfSBmcm9tIFwiLi4vLi4vdHlwZXMvbWVkaWF0eXBlc1wiO1xuaW1wb3J0IHtEaWdpdHJhZmZpY0ludGVncmF0aW9uUmVzcG9uc2V9IGZyb20gXCIuLi8uLi9ydW50aW1lL2RpZ2l0cmFmZmljLWludGVncmF0aW9uLXJlc3BvbnNlXCI7XG5cbnR5cGUgUGFyYW1ldGVyVHlwZSA9ICdwYXRoJyB8ICdxdWVyeXN0cmluZyc7XG5cbmludGVyZmFjZSBBcGlQYXJhbWV0ZXIge1xuICAgIHR5cGU6IFBhcmFtZXRlclR5cGVcbiAgICBuYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIERpZ2l0cmFmZmljSW50ZWdyYXRpb24ge1xuICAgIHJlYWRvbmx5IGxhbWJkYTogSUZ1bmN0aW9uO1xuICAgIHJlYWRvbmx5IG1lZGlhVHlwZTogTWVkaWFUeXBlO1xuXG4gICAgcmVhZG9ubHkgcGFyYW1ldGVyczogQXBpUGFyYW1ldGVyW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKGxhbWJkYTogSUZ1bmN0aW9uLCBtZWRpYVR5cGUgPSBNZWRpYVR5cGUuVEVYVF9QTEFJTikge1xuICAgICAgICB0aGlzLmxhbWJkYSA9IGxhbWJkYTtcbiAgICAgICAgdGhpcy5tZWRpYVR5cGUgPSBtZWRpYVR5cGU7XG4gICAgfVxuXG4gICAgYWRkUGF0aFBhcmFtZXRlciguLi5uYW1lczogc3RyaW5nW10pOiBEaWdpdHJhZmZpY0ludGVncmF0aW9uIHtcbiAgICAgICAgbmFtZXMuZm9yRWFjaChuYW1lID0+IHRoaXMucGFyYW1ldGVycy5wdXNoKHt0eXBlOiAncGF0aCcsIG5hbWV9KSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYWRkUXVlcnlQYXJhbWV0ZXIoLi4ubmFtZXM6IHN0cmluZ1tdKTogRGlnaXRyYWZmaWNJbnRlZ3JhdGlvbiB7XG4gICAgICAgIG5hbWVzLmZvckVhY2gobmFtZSA9PiB0aGlzLnBhcmFtZXRlcnMucHVzaCh7dHlwZTogJ3F1ZXJ5c3RyaW5nJywgbmFtZX0pKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBidWlsZCgpOiBMYW1iZGFJbnRlZ3JhdGlvbiB7XG4gICAgICAgIGNvbnN0IGludGVncmF0aW9uUmVzcG9uc2VzID0gdGhpcy5jcmVhdGVSZXNwb25zZXMoKTtcblxuICAgICAgICByZXR1cm4gbmV3IExhbWJkYUludGVncmF0aW9uKHRoaXMubGFtYmRhLCB7XG4gICAgICAgICAgICBwcm94eTogZmFsc2UsXG4gICAgICAgICAgICBpbnRlZ3JhdGlvblJlc3BvbnNlcyxcbiAgICAgICAgICAgIHJlcXVlc3RQYXJhbWV0ZXJzOiB0aGlzLnBhcmFtZXRlcnMubGVuZ3RoID09IDAgPyB1bmRlZmluZWQgOiB0aGlzLmNyZWF0ZVJlcXVlc3RQYXJhbWV0ZXJzKCksXG4gICAgICAgICAgICByZXF1ZXN0VGVtcGxhdGVzOiB0aGlzLnBhcmFtZXRlcnMubGVuZ3RoID09IDAgPyB1bmRlZmluZWQgOiB0aGlzLmNyZWF0ZVJlcXVlc3RUZW1wbGF0ZXMoKSxcbiAgICAgICAgICAgIHBhc3N0aHJvdWdoQmVoYXZpb3I6IFBhc3N0aHJvdWdoQmVoYXZpb3IuV0hFTl9OT19NQVRDSCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUmVxdWVzdFBhcmFtZXRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RQYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzLmZvckVhY2goKHBhcmFtZXRlcjogQXBpUGFyYW1ldGVyKSA9PiB7XG4gICAgICAgICAgICByZXF1ZXN0UGFyYW1ldGVyc1tgaW50ZWdyYXRpb24ucmVxdWVzdC4ke3BhcmFtZXRlci50eXBlfS4ke3BhcmFtZXRlci5uYW1lfWBdID0gYG1ldGhvZC5yZXF1ZXN0LiR7cGFyYW1ldGVyLnR5cGV9LiR7cGFyYW1ldGVyLm5hbWV9YDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlcXVlc3RQYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIGNyZWF0ZVJlcXVlc3RUZW1wbGF0ZXMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RKc29uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzLmZvckVhY2goKHBhcmFtZXRlcjogQXBpUGFyYW1ldGVyKSA9PiB7XG4gICAgICAgICAgICByZXF1ZXN0SnNvbltwYXJhbWV0ZXIubmFtZV0gPSBgJHV0aWwuZXNjYXBlSmF2YVNjcmlwdCgkaW5wdXQucGFyYW1zKCcke3BhcmFtZXRlci5uYW1lfScpKWA7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbTWVkaWFUeXBlLkFQUExJQ0FUSU9OX0pTT05dOiBKU09OLnN0cmluZ2lmeShyZXF1ZXN0SnNvbiksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY3JlYXRlUmVzcG9uc2VzKCk6IEludGVncmF0aW9uUmVzcG9uc2VbXSB7XG4gICAgICAgIHJldHVybiBbRGlnaXRyYWZmaWNJbnRlZ3JhdGlvblJlc3BvbnNlLm9rKHRoaXMubWVkaWFUeXBlKV07XG4gICAgfVxufSJdfQ==
@@ -1,22 +0,0 @@
1
- import apigateway = require('aws-cdk-lib/aws-apigateway');
2
- import { MediaType } from "../../types/mediatypes";
3
- /**
4
- * This is velocity-script, that assumes the response to be LambdaResponse(status and body).
5
- * It will always return the body and status, but if status in something else than 200 OK the content-type
6
- * will be overridden to text/plain. (it's assumed, that lambda will return error text).
7
- *
8
- * If fileName is set, then Content-Disposition-header will be set to use it
9
- */
10
- export declare const RESPONSE_DEFAULT_LAMBDA = "#set($inputRoot = $input.path('$'))\n$inputRoot.body\n#if ($inputRoot.status != 200)\n#set ($context.responseOverride.status = $inputRoot.status)\n#set ($context.responseOverride.header.Content-Type = 'text/plain')\n#end\n#set ($context.responseOverride.header.Access-Control-Allow-Origin = '*')\n#if (\"$!inputRoot.fileName\" != \"\")\n#set ($disposition = 'attachment; filename=\"FN\"')\n#set ($context.responseOverride.header.Content-Disposition = $disposition.replaceAll('FN', $inputRoot.fileName))\n#end\n";
11
- export declare const MessageModel: {
12
- contentType: MediaType;
13
- modelName: string;
14
- schema: apigateway.JsonSchema;
15
- };
16
- export declare const NotFoundResponse: string;
17
- export declare const BadRequestResponseTemplate: Record<string, string>;
18
- export declare const NotFoundResponseTemplate: Record<string, string>;
19
- export declare const XmlResponseTemplate: Record<string, string>;
20
- export declare const SvgResponseTemplate: Record<string, string>;
21
- export declare const InternalServerErrorResponseTemplate: Record<string, string>;
22
- export declare function createResponses<T>(key: MediaType, value: T): Record<string, T>;
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createResponses = exports.InternalServerErrorResponseTemplate = exports.SvgResponseTemplate = exports.XmlResponseTemplate = exports.NotFoundResponseTemplate = exports.BadRequestResponseTemplate = exports.NotFoundResponse = exports.MessageModel = exports.RESPONSE_DEFAULT_LAMBDA = void 0;
4
- const apigateway = require("aws-cdk-lib/aws-apigateway");
5
- const mediatypes_1 = require("../../types/mediatypes");
6
- /**
7
- * This is velocity-script, that assumes the response to be LambdaResponse(status and body).
8
- * It will always return the body and status, but if status in something else than 200 OK the content-type
9
- * will be overridden to text/plain. (it's assumed, that lambda will return error text).
10
- *
11
- * If fileName is set, then Content-Disposition-header will be set to use it
12
- */
13
- exports.RESPONSE_DEFAULT_LAMBDA = `#set($inputRoot = $input.path('$'))
14
- $inputRoot.body
15
- #if ($inputRoot.status != 200)
16
- #set ($context.responseOverride.status = $inputRoot.status)
17
- #set ($context.responseOverride.header.Content-Type = 'text/plain')
18
- #end
19
- #set ($context.responseOverride.header.Access-Control-Allow-Origin = '*')
20
- #if ("$!inputRoot.fileName" != "")
21
- #set ($disposition = 'attachment; filename="FN"')
22
- #set ($context.responseOverride.header.Content-Disposition = $disposition.replaceAll('FN', $inputRoot.fileName))
23
- #end
24
- `;
25
- const BODY_FROM_INPUT_PATH = "$input.path('$').body";
26
- // DEPRECATED
27
- const messageSchema = {
28
- schema: apigateway.JsonSchemaVersion.DRAFT4,
29
- type: apigateway.JsonSchemaType.OBJECT,
30
- description: 'Response with message',
31
- properties: {
32
- message: {
33
- type: apigateway.JsonSchemaType.STRING,
34
- description: 'Response message',
35
- },
36
- },
37
- };
38
- // DEPRECATED
39
- exports.MessageModel = {
40
- contentType: mediatypes_1.MediaType.APPLICATION_JSON,
41
- modelName: 'MessageResponseModel',
42
- schema: messageSchema,
43
- };
44
- const NotFoundMessage = 'Not found';
45
- exports.NotFoundResponse = JSON.stringify({ message: NotFoundMessage });
46
- const InternalServerErrorMessage = 'Error';
47
- const InternalServerErrorResponse = JSON.stringify({ message: InternalServerErrorMessage });
48
- const BadRequestMessage = 'Bad request';
49
- const BadRequestResponse = JSON.stringify({ message: BadRequestMessage });
50
- exports.BadRequestResponseTemplate = createResponses(mediatypes_1.MediaType.APPLICATION_JSON, BadRequestResponse);
51
- exports.NotFoundResponseTemplate = createResponses(mediatypes_1.MediaType.APPLICATION_JSON, exports.NotFoundResponse);
52
- exports.XmlResponseTemplate = createResponses(mediatypes_1.MediaType.APPLICATION_XML, BODY_FROM_INPUT_PATH);
53
- exports.SvgResponseTemplate = createResponses(mediatypes_1.MediaType.IMAGE_SVG, BODY_FROM_INPUT_PATH);
54
- exports.InternalServerErrorResponseTemplate = createResponses(mediatypes_1.MediaType.APPLICATION_JSON, InternalServerErrorResponse);
55
- function createResponses(key, value) {
56
- const map = {};
57
- map[key] = value;
58
- return map;
59
- }
60
- exports.createResponses = createResponses;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2luZnJhL2FwaS9yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFBMEQ7QUFDMUQsdURBQWlEO0FBRWpEOzs7Ozs7R0FNRztBQUNVLFFBQUEsdUJBQXVCLEdBQUc7Ozs7Ozs7Ozs7O0NBV3RDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLHVCQUF1QixDQUFDO0FBRXJELGFBQWE7QUFDYixNQUFNLGFBQWEsR0FBMEI7SUFDekMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNO0lBQzNDLElBQUksRUFBRSxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU07SUFDdEMsV0FBVyxFQUFFLHVCQUF1QjtJQUNwQyxVQUFVLEVBQUU7UUFDUixPQUFPLEVBQUU7WUFDTCxJQUFJLEVBQUUsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNO1lBQ3RDLFdBQVcsRUFBRSxrQkFBa0I7U0FDbEM7S0FDSjtDQUNKLENBQUM7QUFFRixhQUFhO0FBQ0EsUUFBQSxZQUFZLEdBQUc7SUFDeEIsV0FBVyxFQUFFLHNCQUFTLENBQUMsZ0JBQWdCO0lBQ3ZDLFNBQVMsRUFBRSxzQkFBc0I7SUFDakMsTUFBTSxFQUFFLGFBQWE7Q0FDeEIsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUN2QixRQUFBLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxPQUFPLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQztBQUUzRSxNQUFNLDBCQUEwQixHQUFHLE9BQU8sQ0FBQztBQUMzQyxNQUFNLDJCQUEyQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUMsQ0FBQyxDQUFDO0FBRTFGLE1BQU0saUJBQWlCLEdBQUcsYUFBYSxDQUFDO0FBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBQyxDQUFDLENBQUM7QUFFM0QsUUFBQSwwQkFBMEIsR0FBRyxlQUFlLENBQUMsc0JBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBQzdGLFFBQUEsd0JBQXdCLEdBQUcsZUFBZSxDQUFDLHNCQUFTLENBQUMsZ0JBQWdCLEVBQUUsd0JBQWdCLENBQUMsQ0FBQztBQUN6RixRQUFBLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxzQkFBUyxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3ZGLFFBQUEsbUJBQW1CLEdBQUcsZUFBZSxDQUFDLHNCQUFTLENBQUMsU0FBUyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDakYsUUFBQSxtQ0FBbUMsR0FBRyxlQUFlLENBQUMsc0JBQVMsQ0FBQyxnQkFBZ0IsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO0FBRTVILFNBQWdCLGVBQWUsQ0FBSSxHQUFjLEVBQUUsS0FBUTtJQUN2RCxNQUFNLEdBQUcsR0FBc0IsRUFBRSxDQUFDO0lBRWxDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFFakIsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBTkQsMENBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXBpZ2F0ZXdheSA9IHJlcXVpcmUoJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5Jyk7XG5pbXBvcnQge01lZGlhVHlwZX0gZnJvbSBcIi4uLy4uL3R5cGVzL21lZGlhdHlwZXNcIjtcblxuLyoqXG4gKiBUaGlzIGlzIHZlbG9jaXR5LXNjcmlwdCwgdGhhdCBhc3N1bWVzIHRoZSByZXNwb25zZSB0byBiZSBMYW1iZGFSZXNwb25zZShzdGF0dXMgYW5kIGJvZHkpLlxuICogSXQgd2lsbCBhbHdheXMgcmV0dXJuIHRoZSBib2R5IGFuZCBzdGF0dXMsIGJ1dCBpZiBzdGF0dXMgaW4gc29tZXRoaW5nIGVsc2UgdGhhbiAyMDAgT0sgdGhlIGNvbnRlbnQtdHlwZVxuICogd2lsbCBiZSBvdmVycmlkZGVuIHRvIHRleHQvcGxhaW4uIChpdCdzIGFzc3VtZWQsIHRoYXQgbGFtYmRhIHdpbGwgcmV0dXJuIGVycm9yIHRleHQpLlxuICpcbiAqIElmIGZpbGVOYW1lIGlzIHNldCwgdGhlbiBDb250ZW50LURpc3Bvc2l0aW9uLWhlYWRlciB3aWxsIGJlIHNldCB0byB1c2UgaXRcbiAqL1xuZXhwb3J0IGNvbnN0IFJFU1BPTlNFX0RFRkFVTFRfTEFNQkRBID0gYCNzZXQoJGlucHV0Um9vdCA9ICRpbnB1dC5wYXRoKCckJykpXG4kaW5wdXRSb290LmJvZHlcbiNpZiAoJGlucHV0Um9vdC5zdGF0dXMgIT0gMjAwKVxuI3NldCAoJGNvbnRleHQucmVzcG9uc2VPdmVycmlkZS5zdGF0dXMgPSAkaW5wdXRSb290LnN0YXR1cylcbiNzZXQgKCRjb250ZXh0LnJlc3BvbnNlT3ZlcnJpZGUuaGVhZGVyLkNvbnRlbnQtVHlwZSA9ICd0ZXh0L3BsYWluJylcbiNlbmRcbiNzZXQgKCRjb250ZXh0LnJlc3BvbnNlT3ZlcnJpZGUuaGVhZGVyLkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiA9ICcqJylcbiNpZiAoXCIkIWlucHV0Um9vdC5maWxlTmFtZVwiICE9IFwiXCIpXG4jc2V0ICgkZGlzcG9zaXRpb24gPSAnYXR0YWNobWVudDsgZmlsZW5hbWU9XCJGTlwiJylcbiNzZXQgKCRjb250ZXh0LnJlc3BvbnNlT3ZlcnJpZGUuaGVhZGVyLkNvbnRlbnQtRGlzcG9zaXRpb24gPSAkZGlzcG9zaXRpb24ucmVwbGFjZUFsbCgnRk4nLCAkaW5wdXRSb290LmZpbGVOYW1lKSlcbiNlbmRcbmA7XG5cbmNvbnN0IEJPRFlfRlJPTV9JTlBVVF9QQVRIID0gXCIkaW5wdXQucGF0aCgnJCcpLmJvZHlcIjtcblxuLy8gREVQUkVDQVRFRFxuY29uc3QgbWVzc2FnZVNjaGVtYTogYXBpZ2F0ZXdheS5Kc29uU2NoZW1hID0ge1xuICAgIHNjaGVtYTogYXBpZ2F0ZXdheS5Kc29uU2NoZW1hVmVyc2lvbi5EUkFGVDQsXG4gICAgdHlwZTogYXBpZ2F0ZXdheS5Kc29uU2NoZW1hVHlwZS5PQkpFQ1QsXG4gICAgZGVzY3JpcHRpb246ICdSZXNwb25zZSB3aXRoIG1lc3NhZ2UnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgICAgdHlwZTogYXBpZ2F0ZXdheS5Kc29uU2NoZW1hVHlwZS5TVFJJTkcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Jlc3BvbnNlIG1lc3NhZ2UnLFxuICAgICAgICB9LFxuICAgIH0sXG59O1xuXG4vLyBERVBSRUNBVEVEXG5leHBvcnQgY29uc3QgTWVzc2FnZU1vZGVsID0ge1xuICAgIGNvbnRlbnRUeXBlOiBNZWRpYVR5cGUuQVBQTElDQVRJT05fSlNPTixcbiAgICBtb2RlbE5hbWU6ICdNZXNzYWdlUmVzcG9uc2VNb2RlbCcsXG4gICAgc2NoZW1hOiBtZXNzYWdlU2NoZW1hLFxufTtcblxuY29uc3QgTm90Rm91bmRNZXNzYWdlID0gJ05vdCBmb3VuZCc7XG5leHBvcnQgY29uc3QgTm90Rm91bmRSZXNwb25zZSA9IEpTT04uc3RyaW5naWZ5KHttZXNzYWdlOiBOb3RGb3VuZE1lc3NhZ2V9KTtcblxuY29uc3QgSW50ZXJuYWxTZXJ2ZXJFcnJvck1lc3NhZ2UgPSAnRXJyb3InO1xuY29uc3QgSW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlID0gSlNPTi5zdHJpbmdpZnkoe21lc3NhZ2U6IEludGVybmFsU2VydmVyRXJyb3JNZXNzYWdlfSk7XG5cbmNvbnN0IEJhZFJlcXVlc3RNZXNzYWdlID0gJ0JhZCByZXF1ZXN0JztcbmNvbnN0IEJhZFJlcXVlc3RSZXNwb25zZSA9IEpTT04uc3RyaW5naWZ5KHttZXNzYWdlOiBCYWRSZXF1ZXN0TWVzc2FnZX0pO1xuXG5leHBvcnQgY29uc3QgQmFkUmVxdWVzdFJlc3BvbnNlVGVtcGxhdGUgPSBjcmVhdGVSZXNwb25zZXMoTWVkaWFUeXBlLkFQUExJQ0FUSU9OX0pTT04sIEJhZFJlcXVlc3RSZXNwb25zZSk7XG5leHBvcnQgY29uc3QgTm90Rm91bmRSZXNwb25zZVRlbXBsYXRlID0gY3JlYXRlUmVzcG9uc2VzKE1lZGlhVHlwZS5BUFBMSUNBVElPTl9KU09OLCBOb3RGb3VuZFJlc3BvbnNlKTtcbmV4cG9ydCBjb25zdCBYbWxSZXNwb25zZVRlbXBsYXRlID0gY3JlYXRlUmVzcG9uc2VzKE1lZGlhVHlwZS5BUFBMSUNBVElPTl9YTUwsIEJPRFlfRlJPTV9JTlBVVF9QQVRIKTtcbmV4cG9ydCBjb25zdCBTdmdSZXNwb25zZVRlbXBsYXRlID0gY3JlYXRlUmVzcG9uc2VzKE1lZGlhVHlwZS5JTUFHRV9TVkcsIEJPRFlfRlJPTV9JTlBVVF9QQVRIKTtcbmV4cG9ydCBjb25zdCBJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2VUZW1wbGF0ZSA9IGNyZWF0ZVJlc3BvbnNlcyhNZWRpYVR5cGUuQVBQTElDQVRJT05fSlNPTiwgSW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlc3BvbnNlczxUPihrZXk6IE1lZGlhVHlwZSwgdmFsdWU6IFQpOiBSZWNvcmQ8c3RyaW5nLCBUPiB7XG4gICAgY29uc3QgbWFwOiBSZWNvcmQ8c3RyaW5nLCBUPiA9IHt9O1xuXG4gICAgbWFwW2tleV0gPSB2YWx1ZTtcblxuICAgIHJldHVybiBtYXA7XG59XG4iXX0=
@@ -1,39 +0,0 @@
1
- import { LambdaIntegration, MethodResponse, IntegrationResponse, PassthroughBehavior } from "aws-cdk-lib/aws-apigateway";
2
- import { Function } from 'aws-cdk-lib/aws-lambda';
3
- import { IModel } from "aws-cdk-lib/aws-apigateway/lib/model";
4
- import { MediaType } from "../../types/mediatypes";
5
- export declare const RESPONSE_200_OK: IntegrationResponse;
6
- export declare const RESPONSE_400_BAD_REQUEST: IntegrationResponse;
7
- export declare const RESPONSE_500_SERVER_ERROR: IntegrationResponse;
8
- export declare const RESPONSE_CORS_INTEGRATION: {
9
- responseParameters: {
10
- 'method.response.header.Access-Control-Allow-Origin': string;
11
- };
12
- };
13
- export declare const RESPONSE_404_NOT_FOUND: {
14
- statusCode: string;
15
- selectionPattern: string;
16
- responseTemplates: Record<string, string>;
17
- };
18
- export declare function methodResponse(status: string, contentType: MediaType, model: IModel, parameters?: Record<string, boolean>): MethodResponse;
19
- export declare function corsMethod(response: MethodResponse): MethodResponse;
20
- interface IntegrationOptions {
21
- requestParameters?: {
22
- [dest: string]: string;
23
- };
24
- requestTemplates?: {
25
- [contentType: string]: string;
26
- };
27
- responses?: IntegrationResponse[];
28
- disableCors?: boolean;
29
- xml?: boolean;
30
- passthroughBehavior?: PassthroughBehavior;
31
- }
32
- /**
33
- * Creates a default Lambda integration for a REST API resource _root_
34
- * @param lambdaFunction The Lambda function
35
- * @param options Options
36
- */
37
- export declare function defaultIntegration(lambdaFunction: Function, options?: IntegrationOptions): LambdaIntegration;
38
- export declare function getResponse(response: IntegrationResponse, options?: IntegrationOptions): IntegrationResponse;
39
- export {};
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getResponse = exports.defaultIntegration = exports.corsMethod = exports.methodResponse = exports.RESPONSE_404_NOT_FOUND = exports.RESPONSE_CORS_INTEGRATION = exports.RESPONSE_500_SERVER_ERROR = exports.RESPONSE_400_BAD_REQUEST = exports.RESPONSE_200_OK = void 0;
4
- const response_1 = require("./response");
5
- const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
6
- const errors_1 = require("../../types/errors");
7
- exports.RESPONSE_200_OK = {
8
- statusCode: '200',
9
- };
10
- exports.RESPONSE_400_BAD_REQUEST = {
11
- statusCode: '400',
12
- selectionPattern: errors_1.BAD_REQUEST_MESSAGE,
13
- responseTemplates: response_1.BadRequestResponseTemplate,
14
- };
15
- exports.RESPONSE_500_SERVER_ERROR = {
16
- statusCode: '500',
17
- selectionPattern: errors_1.ERROR_MESSAGE,
18
- responseTemplates: response_1.InternalServerErrorResponseTemplate,
19
- };
20
- const RESPONSE_XML = {
21
- responseTemplates: response_1.XmlResponseTemplate,
22
- };
23
- exports.RESPONSE_CORS_INTEGRATION = {
24
- responseParameters: {
25
- 'method.response.header.Access-Control-Allow-Origin': "'*'",
26
- },
27
- };
28
- exports.RESPONSE_404_NOT_FOUND = {
29
- statusCode: '404',
30
- selectionPattern: errors_1.NOT_FOUND_MESSAGE,
31
- responseTemplates: response_1.NotFoundResponseTemplate,
32
- };
33
- function methodResponse(status, contentType, model, parameters) {
34
- return {
35
- statusCode: status,
36
- responseModels: (0, response_1.createResponses)(contentType, model),
37
- responseParameters: parameters || {},
38
- };
39
- }
40
- exports.methodResponse = methodResponse;
41
- function corsMethod(response) {
42
- return { ...response, ...{
43
- responseParameters: {
44
- 'method.response.header.Access-Control-Allow-Origin': true,
45
- },
46
- } };
47
- }
48
- exports.corsMethod = corsMethod;
49
- /**
50
- * Creates a default Lambda integration for a REST API resource _root_
51
- * @param lambdaFunction The Lambda function
52
- * @param options Options
53
- */
54
- function defaultIntegration(lambdaFunction, options) {
55
- return new aws_apigateway_1.LambdaIntegration(lambdaFunction, {
56
- proxy: false,
57
- integrationResponses: options?.responses || [
58
- getResponse(exports.RESPONSE_200_OK, options),
59
- getResponse(exports.RESPONSE_400_BAD_REQUEST, options),
60
- getResponse(exports.RESPONSE_404_NOT_FOUND, options),
61
- getResponse(exports.RESPONSE_500_SERVER_ERROR, options),
62
- ],
63
- requestParameters: options?.requestParameters || {},
64
- requestTemplates: options?.requestTemplates || {},
65
- passthroughBehavior: options?.passthroughBehavior ?? aws_apigateway_1.PassthroughBehavior.WHEN_NO_MATCH,
66
- });
67
- }
68
- exports.defaultIntegration = defaultIntegration;
69
- function getResponse(response, options) {
70
- if (options?.xml) {
71
- response = { ...response, ...RESPONSE_XML };
72
- }
73
- if (!options?.disableCors) {
74
- response = { ...response, ...exports.RESPONSE_CORS_INTEGRATION };
75
- }
76
- return response;
77
- }
78
- exports.getResponse = getResponse;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9pbmZyYS9hcGkvcmVzcG9uc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUlvQjtBQUNwQiwrREFBdUg7QUFHdkgsK0NBQXlGO0FBRzVFLFFBQUEsZUFBZSxHQUF3QjtJQUNoRCxVQUFVLEVBQUUsS0FBSztDQUNwQixDQUFDO0FBRVcsUUFBQSx3QkFBd0IsR0FBd0I7SUFDekQsVUFBVSxFQUFFLEtBQUs7SUFDakIsZ0JBQWdCLEVBQUUsNEJBQW1CO0lBQ3JDLGlCQUFpQixFQUFFLHFDQUEwQjtDQUNoRCxDQUFDO0FBRVcsUUFBQSx5QkFBeUIsR0FBd0I7SUFDMUQsVUFBVSxFQUFFLEtBQUs7SUFDakIsZ0JBQWdCLEVBQUUsc0JBQWE7SUFDL0IsaUJBQWlCLEVBQUUsOENBQW1DO0NBQ3pELENBQUM7QUFFRixNQUFNLFlBQVksR0FBRztJQUNqQixpQkFBaUIsRUFBRSw4QkFBbUI7Q0FDekMsQ0FBQztBQUVXLFFBQUEseUJBQXlCLEdBQUc7SUFDckMsa0JBQWtCLEVBQUU7UUFDaEIsb0RBQW9ELEVBQUUsS0FBSztLQUM5RDtDQUNKLENBQUM7QUFFVyxRQUFBLHNCQUFzQixHQUFHO0lBQ2xDLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLGdCQUFnQixFQUFFLDBCQUFpQjtJQUNuQyxpQkFBaUIsRUFBRSxtQ0FBd0I7Q0FDOUMsQ0FBQztBQUVGLFNBQWdCLGNBQWMsQ0FBQyxNQUFjLEVBQUUsV0FBc0IsRUFBRSxLQUFhLEVBQUUsVUFBb0M7SUFDdEgsT0FBUTtRQUNKLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLGNBQWMsRUFBRSxJQUFBLDBCQUFlLEVBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztRQUNuRCxrQkFBa0IsRUFBRSxVQUFVLElBQUksRUFBRTtLQUN2QyxDQUFDO0FBRU4sQ0FBQztBQVBELHdDQU9DO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLFFBQXdCO0lBQy9DLE9BQU8sRUFBQyxHQUFHLFFBQVEsRUFBRSxHQUFHO1lBQ3BCLGtCQUFrQixFQUFFO2dCQUNoQixvREFBb0QsRUFBRSxJQUFJO2FBQzdEO1NBQ0osRUFBQyxDQUFDO0FBQ1AsQ0FBQztBQU5ELGdDQU1DO0FBV0Q7Ozs7R0FJRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLGNBQXdCLEVBQ3ZELE9BQTRCO0lBQzVCLE9BQU8sSUFBSSxrQ0FBaUIsQ0FBQyxjQUFjLEVBQUU7UUFDekMsS0FBSyxFQUFFLEtBQUs7UUFDWixvQkFBb0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJO1lBQ3hDLFdBQVcsQ0FBQyx1QkFBZSxFQUFFLE9BQU8sQ0FBQztZQUNyQyxXQUFXLENBQUMsZ0NBQXdCLEVBQUUsT0FBTyxDQUFDO1lBQzlDLFdBQVcsQ0FBQyw4QkFBc0IsRUFBRSxPQUFPLENBQUM7WUFDNUMsV0FBVyxDQUFDLGlDQUF5QixFQUFFLE9BQU8sQ0FBQztTQUNsRDtRQUNELGlCQUFpQixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsSUFBSSxFQUFFO1FBQ25ELGdCQUFnQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxFQUFFO1FBQ2pELG1CQUFtQixFQUFFLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxvQ0FBbUIsQ0FBQyxhQUFhO0tBQ3pGLENBQUMsQ0FBQztBQUNQLENBQUM7QUFkRCxnREFjQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxRQUE2QixFQUFFLE9BQTRCO0lBQ25GLElBQUksT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNkLFFBQVEsR0FBRyxFQUFDLEdBQUcsUUFBUSxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7S0FDN0M7SUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRTtRQUN2QixRQUFRLEdBQUcsRUFBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLGlDQUF5QixFQUFDLENBQUM7S0FDMUQ7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDO0FBVEQsa0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZVRlbXBsYXRlLFxuICAgIGNyZWF0ZVJlc3BvbnNlcyxcbiAgICBYbWxSZXNwb25zZVRlbXBsYXRlLCBOb3RGb3VuZFJlc3BvbnNlVGVtcGxhdGUsIEJhZFJlcXVlc3RSZXNwb25zZVRlbXBsYXRlLFxufSBmcm9tIFwiLi9yZXNwb25zZVwiO1xuaW1wb3J0IHtMYW1iZGFJbnRlZ3JhdGlvbiwgTWV0aG9kUmVzcG9uc2UsIEludGVncmF0aW9uUmVzcG9uc2UsIFBhc3N0aHJvdWdoQmVoYXZpb3J9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheVwiO1xuaW1wb3J0IHtGdW5jdGlvbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQge0lNb2RlbH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5L2xpYi9tb2RlbFwiO1xuaW1wb3J0IHtCQURfUkVRVUVTVF9NRVNTQUdFLCBFUlJPUl9NRVNTQUdFLCBOT1RfRk9VTkRfTUVTU0FHRX0gZnJvbSBcIi4uLy4uL3R5cGVzL2Vycm9yc1wiO1xuaW1wb3J0IHtNZWRpYVR5cGV9IGZyb20gXCIuLi8uLi90eXBlcy9tZWRpYXR5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBSRVNQT05TRV8yMDBfT0s6IEludGVncmF0aW9uUmVzcG9uc2UgPSB7XG4gICAgc3RhdHVzQ29kZTogJzIwMCcsXG59O1xuXG5leHBvcnQgY29uc3QgUkVTUE9OU0VfNDAwX0JBRF9SRVFVRVNUOiBJbnRlZ3JhdGlvblJlc3BvbnNlID0ge1xuICAgIHN0YXR1c0NvZGU6ICc0MDAnLFxuICAgIHNlbGVjdGlvblBhdHRlcm46IEJBRF9SRVFVRVNUX01FU1NBR0UsXG4gICAgcmVzcG9uc2VUZW1wbGF0ZXM6IEJhZFJlcXVlc3RSZXNwb25zZVRlbXBsYXRlLFxufTtcblxuZXhwb3J0IGNvbnN0IFJFU1BPTlNFXzUwMF9TRVJWRVJfRVJST1I6IEludGVncmF0aW9uUmVzcG9uc2UgPSB7XG4gICAgc3RhdHVzQ29kZTogJzUwMCcsXG4gICAgc2VsZWN0aW9uUGF0dGVybjogRVJST1JfTUVTU0FHRSxcbiAgICByZXNwb25zZVRlbXBsYXRlczogSW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlVGVtcGxhdGUsXG59O1xuXG5jb25zdCBSRVNQT05TRV9YTUwgPSB7XG4gICAgcmVzcG9uc2VUZW1wbGF0ZXM6IFhtbFJlc3BvbnNlVGVtcGxhdGUsXG59O1xuXG5leHBvcnQgY29uc3QgUkVTUE9OU0VfQ09SU19JTlRFR1JBVElPTiA9IHtcbiAgICByZXNwb25zZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgJ21ldGhvZC5yZXNwb25zZS5oZWFkZXIuQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJzogXCInKidcIixcbiAgICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IFJFU1BPTlNFXzQwNF9OT1RfRk9VTkQgPSB7XG4gICAgc3RhdHVzQ29kZTogJzQwNCcsXG4gICAgc2VsZWN0aW9uUGF0dGVybjogTk9UX0ZPVU5EX01FU1NBR0UsXG4gICAgcmVzcG9uc2VUZW1wbGF0ZXM6IE5vdEZvdW5kUmVzcG9uc2VUZW1wbGF0ZSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRob2RSZXNwb25zZShzdGF0dXM6IHN0cmluZywgY29udGVudFR5cGU6IE1lZGlhVHlwZSwgbW9kZWw6IElNb2RlbCwgcGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+KTogTWV0aG9kUmVzcG9uc2Uge1xuICAgIHJldHVybiAge1xuICAgICAgICBzdGF0dXNDb2RlOiBzdGF0dXMsXG4gICAgICAgIHJlc3BvbnNlTW9kZWxzOiBjcmVhdGVSZXNwb25zZXMoY29udGVudFR5cGUsIG1vZGVsKSxcbiAgICAgICAgcmVzcG9uc2VQYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzIHx8IHt9LFxuICAgIH07XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvcnNNZXRob2QocmVzcG9uc2U6IE1ldGhvZFJlc3BvbnNlKTogTWV0aG9kUmVzcG9uc2Uge1xuICAgIHJldHVybiB7Li4ucmVzcG9uc2UsIC4uLntcbiAgICAgICAgcmVzcG9uc2VQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAnbWV0aG9kLnJlc3BvbnNlLmhlYWRlci5BY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH19O1xufVxuXG5pbnRlcmZhY2UgSW50ZWdyYXRpb25PcHRpb25zIHtcbiAgICByZXF1ZXN0UGFyYW1ldGVycz86IHtbZGVzdDogc3RyaW5nXTogc3RyaW5nfVxuICAgIHJlcXVlc3RUZW1wbGF0ZXM/OiB7W2NvbnRlbnRUeXBlOiBzdHJpbmddOiBzdHJpbmd9LFxuICAgIHJlc3BvbnNlcz86IEludGVncmF0aW9uUmVzcG9uc2VbXSxcbiAgICBkaXNhYmxlQ29ycz86IGJvb2xlYW4sXG4gICAgeG1sPzogYm9vbGVhbixcbiAgICBwYXNzdGhyb3VnaEJlaGF2aW9yPzogUGFzc3Rocm91Z2hCZWhhdmlvclxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWZhdWx0IExhbWJkYSBpbnRlZ3JhdGlvbiBmb3IgYSBSRVNUIEFQSSByZXNvdXJjZSBfcm9vdF9cbiAqIEBwYXJhbSBsYW1iZGFGdW5jdGlvbiBUaGUgTGFtYmRhIGZ1bmN0aW9uXG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0SW50ZWdyYXRpb24obGFtYmRhRnVuY3Rpb246IEZ1bmN0aW9uLFxuICAgIG9wdGlvbnM/OiBJbnRlZ3JhdGlvbk9wdGlvbnMpOiBMYW1iZGFJbnRlZ3JhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMYW1iZGFJbnRlZ3JhdGlvbihsYW1iZGFGdW5jdGlvbiwge1xuICAgICAgICBwcm94eTogZmFsc2UsXG4gICAgICAgIGludGVncmF0aW9uUmVzcG9uc2VzOiBvcHRpb25zPy5yZXNwb25zZXMgfHwgW1xuICAgICAgICAgICAgZ2V0UmVzcG9uc2UoUkVTUE9OU0VfMjAwX09LLCBvcHRpb25zKSxcbiAgICAgICAgICAgIGdldFJlc3BvbnNlKFJFU1BPTlNFXzQwMF9CQURfUkVRVUVTVCwgb3B0aW9ucyksXG4gICAgICAgICAgICBnZXRSZXNwb25zZShSRVNQT05TRV80MDRfTk9UX0ZPVU5ELCBvcHRpb25zKSxcbiAgICAgICAgICAgIGdldFJlc3BvbnNlKFJFU1BPTlNFXzUwMF9TRVJWRVJfRVJST1IsIG9wdGlvbnMpLFxuICAgICAgICBdLFxuICAgICAgICByZXF1ZXN0UGFyYW1ldGVyczogb3B0aW9ucz8ucmVxdWVzdFBhcmFtZXRlcnMgfHwge30sXG4gICAgICAgIHJlcXVlc3RUZW1wbGF0ZXM6IG9wdGlvbnM/LnJlcXVlc3RUZW1wbGF0ZXMgfHwge30sXG4gICAgICAgIHBhc3N0aHJvdWdoQmVoYXZpb3I6IG9wdGlvbnM/LnBhc3N0aHJvdWdoQmVoYXZpb3IgPz8gUGFzc3Rocm91Z2hCZWhhdmlvci5XSEVOX05PX01BVENILFxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzcG9uc2UocmVzcG9uc2U6IEludGVncmF0aW9uUmVzcG9uc2UsIG9wdGlvbnM/OiBJbnRlZ3JhdGlvbk9wdGlvbnMpOiBJbnRlZ3JhdGlvblJlc3BvbnNlIHtcbiAgICBpZiAob3B0aW9ucz8ueG1sKSB7XG4gICAgICAgIHJlc3BvbnNlID0gey4uLnJlc3BvbnNlLCAuLi5SRVNQT05TRV9YTUx9O1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnM/LmRpc2FibGVDb3JzKSB7XG4gICAgICAgIHJlc3BvbnNlID0gey4uLnJlc3BvbnNlLCAuLi5SRVNQT05TRV9DT1JTX0lOVEVHUkFUSU9OfTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG59XG4iXX0=
@@ -1,15 +0,0 @@
1
- import { MockIntegration, Resource } from "aws-cdk-lib/aws-apigateway";
2
- import { MediaType } from "../../types/mediatypes";
3
- /**
4
- * Static integration, that returns the given response with given mediaType from given resource.
5
- *
6
- * @param resource
7
- * @param mediaType
8
- * @param response
9
- */
10
- export declare class DigitrafficStaticIntegration extends MockIntegration {
11
- constructor(resource: Resource, mediaType: MediaType, response: string, enableCors?: boolean, apiKeyRequired?: boolean);
12
- static json<K>(resource: Resource, response: K, enableCors?: boolean, apiKeyRequired?: boolean): DigitrafficStaticIntegration;
13
- private static createIntegrationResponse;
14
- private static createMethodResponse;
15
- }
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficStaticIntegration = void 0;
4
- const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
5
- const mediatypes_1 = require("../../types/mediatypes");
6
- const responses_1 = require("./responses");
7
- const INTEGRATION_RESPONSE_200 = `{
8
- "statusCode": 200
9
- }`;
10
- const METHOD_RESPONSE_200 = {
11
- statusCode: '200',
12
- };
13
- /**
14
- * Static integration, that returns the given response with given mediaType from given resource.
15
- *
16
- * @param resource
17
- * @param mediaType
18
- * @param response
19
- */
20
- class DigitrafficStaticIntegration extends aws_apigateway_1.MockIntegration {
21
- constructor(resource, mediaType, response, enableCors = true, apiKeyRequired = true) {
22
- const integrationResponse = DigitrafficStaticIntegration.createIntegrationResponse(response, mediaType, enableCors);
23
- super({
24
- passthroughBehavior: aws_apigateway_1.PassthroughBehavior.WHEN_NO_TEMPLATES,
25
- requestTemplates: {
26
- [mediaType]: INTEGRATION_RESPONSE_200,
27
- },
28
- integrationResponses: [integrationResponse],
29
- });
30
- ['GET', 'HEAD'].forEach((httpMethod) => {
31
- resource.addMethod(httpMethod, this, {
32
- apiKeyRequired,
33
- methodResponses: [DigitrafficStaticIntegration.createMethodResponse(enableCors)],
34
- });
35
- });
36
- }
37
- static json(resource, response, enableCors = true, apiKeyRequired = true) {
38
- return new DigitrafficStaticIntegration(resource, mediatypes_1.MediaType.APPLICATION_JSON, JSON.stringify(response), enableCors, apiKeyRequired);
39
- }
40
- static createIntegrationResponse(response, mediaType, enableCors) {
41
- const integrationResponse = {
42
- statusCode: '200',
43
- responseTemplates: {
44
- [mediaType]: response,
45
- },
46
- };
47
- return enableCors ? { ...integrationResponse, ...responses_1.RESPONSE_CORS_INTEGRATION } : integrationResponse;
48
- }
49
- static createMethodResponse(enableCors) {
50
- return enableCors ? (0, responses_1.corsMethod)(METHOD_RESPONSE_200) : METHOD_RESPONSE_200;
51
- }
52
- }
53
- exports.DigitrafficStaticIntegration = DigitrafficStaticIntegration;
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWludGVncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9pbmZyYS9hcGkvc3RhdGljLWludGVncmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUEwRjtBQUMxRix1REFBaUQ7QUFDakQsMkNBQWtFO0FBRWxFLE1BQU0sd0JBQXdCLEdBQUc7O0VBRS9CLENBQUM7QUFFSCxNQUFNLG1CQUFtQixHQUFHO0lBQ3hCLFVBQVUsRUFBRSxLQUFLO0NBQ3BCLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFhLDRCQUE2QixTQUFRLGdDQUFlO0lBQzdELFlBQ0ksUUFBa0IsRUFBRSxTQUFvQixFQUFFLFFBQWdCLEVBQUUsVUFBVSxHQUFHLElBQUksRUFBRSxjQUFjLEdBQUcsSUFBSTtRQUVwRyxNQUFNLG1CQUFtQixHQUFHLDRCQUE0QixDQUFDLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFcEgsS0FBSyxDQUFDO1lBQ0YsbUJBQW1CLEVBQUUsb0NBQW1CLENBQUMsaUJBQWlCO1lBQzFELGdCQUFnQixFQUFFO2dCQUNkLENBQUMsU0FBUyxDQUFDLEVBQUUsd0JBQXdCO2FBQ3hDO1lBQ0Qsb0JBQW9CLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztTQUM5QyxDQUFDLENBQUM7UUFFSCxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNuQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUU7Z0JBQ2pDLGNBQWM7Z0JBQ2QsZUFBZSxFQUFFLENBQUMsNEJBQTRCLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDbkYsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBSSxRQUFrQixFQUFFLFFBQVcsRUFBRSxVQUFVLEdBQUcsSUFBSSxFQUFFLGNBQWMsR0FBRyxJQUFJO1FBQ3BGLE9BQU8sSUFBSSw0QkFBNEIsQ0FDbkMsUUFBUSxFQUFFLHNCQUFTLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUM3RixDQUFDO0lBQ04sQ0FBQztJQUVPLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxRQUFnQixFQUFFLFNBQW9CLEVBQUUsVUFBbUI7UUFDaEcsTUFBTSxtQkFBbUIsR0FBRztZQUN4QixVQUFVLEVBQUUsS0FBSztZQUNqQixpQkFBaUIsRUFBRTtnQkFDZixDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVE7YUFDeEI7U0FDSixDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUMsR0FBRyxtQkFBbUIsRUFBRSxHQUFHLHFDQUF5QixFQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO0lBQ3JHLENBQUM7SUFFTyxNQUFNLENBQUMsb0JBQW9CLENBQUMsVUFBbUI7UUFDbkQsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUEsc0JBQVUsRUFBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztJQUM5RSxDQUFDO0NBQ0o7QUExQ0Qsb0VBMENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2NrSW50ZWdyYXRpb24sIFBhc3N0aHJvdWdoQmVoYXZpb3IsIFJlc291cmNlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7TWVkaWFUeXBlfSBmcm9tIFwiLi4vLi4vdHlwZXMvbWVkaWF0eXBlc1wiO1xuaW1wb3J0IHtjb3JzTWV0aG9kLCBSRVNQT05TRV9DT1JTX0lOVEVHUkFUSU9OfSBmcm9tIFwiLi9yZXNwb25zZXNcIjtcblxuY29uc3QgSU5URUdSQVRJT05fUkVTUE9OU0VfMjAwID0gYHtcbiAgICBcInN0YXR1c0NvZGVcIjogMjAwXG59YDtcblxuY29uc3QgTUVUSE9EX1JFU1BPTlNFXzIwMCA9IHtcbiAgICBzdGF0dXNDb2RlOiAnMjAwJyxcbn07XG5cbi8qKlxuICogU3RhdGljIGludGVncmF0aW9uLCB0aGF0IHJldHVybnMgdGhlIGdpdmVuIHJlc3BvbnNlIHdpdGggZ2l2ZW4gbWVkaWFUeXBlIGZyb20gZ2l2ZW4gcmVzb3VyY2UuXG4gKlxuICogQHBhcmFtIHJlc291cmNlXG4gKiBAcGFyYW0gbWVkaWFUeXBlXG4gKiBAcGFyYW0gcmVzcG9uc2VcbiAqL1xuZXhwb3J0IGNsYXNzIERpZ2l0cmFmZmljU3RhdGljSW50ZWdyYXRpb24gZXh0ZW5kcyBNb2NrSW50ZWdyYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZXNvdXJjZTogUmVzb3VyY2UsIG1lZGlhVHlwZTogTWVkaWFUeXBlLCByZXNwb25zZTogc3RyaW5nLCBlbmFibGVDb3JzID0gdHJ1ZSwgYXBpS2V5UmVxdWlyZWQgPSB0cnVlLFxuICAgICkge1xuICAgICAgICBjb25zdCBpbnRlZ3JhdGlvblJlc3BvbnNlID0gRGlnaXRyYWZmaWNTdGF0aWNJbnRlZ3JhdGlvbi5jcmVhdGVJbnRlZ3JhdGlvblJlc3BvbnNlKHJlc3BvbnNlLCBtZWRpYVR5cGUsIGVuYWJsZUNvcnMpO1xuXG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIHBhc3N0aHJvdWdoQmVoYXZpb3I6IFBhc3N0aHJvdWdoQmVoYXZpb3IuV0hFTl9OT19URU1QTEFURVMsXG4gICAgICAgICAgICByZXF1ZXN0VGVtcGxhdGVzOiB7XG4gICAgICAgICAgICAgICAgW21lZGlhVHlwZV06IElOVEVHUkFUSU9OX1JFU1BPTlNFXzIwMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbnRlZ3JhdGlvblJlc3BvbnNlczogW2ludGVncmF0aW9uUmVzcG9uc2VdLFxuICAgICAgICB9KTtcblxuICAgICAgICBbJ0dFVCcsICdIRUFEJ10uZm9yRWFjaCgoaHR0cE1ldGhvZCkgPT4ge1xuICAgICAgICAgICAgcmVzb3VyY2UuYWRkTWV0aG9kKGh0dHBNZXRob2QsIHRoaXMsIHtcbiAgICAgICAgICAgICAgICBhcGlLZXlSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICBtZXRob2RSZXNwb25zZXM6IFtEaWdpdHJhZmZpY1N0YXRpY0ludGVncmF0aW9uLmNyZWF0ZU1ldGhvZFJlc3BvbnNlKGVuYWJsZUNvcnMpXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMganNvbjxLPihyZXNvdXJjZTogUmVzb3VyY2UsIHJlc3BvbnNlOiBLLCBlbmFibGVDb3JzID0gdHJ1ZSwgYXBpS2V5UmVxdWlyZWQgPSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBuZXcgRGlnaXRyYWZmaWNTdGF0aWNJbnRlZ3JhdGlvbihcbiAgICAgICAgICAgIHJlc291cmNlLCBNZWRpYVR5cGUuQVBQTElDQVRJT05fSlNPTiwgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpLCBlbmFibGVDb3JzLCBhcGlLZXlSZXF1aXJlZCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjcmVhdGVJbnRlZ3JhdGlvblJlc3BvbnNlKHJlc3BvbnNlOiBzdHJpbmcsIG1lZGlhVHlwZTogTWVkaWFUeXBlLCBlbmFibGVDb3JzOiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IGludGVncmF0aW9uUmVzcG9uc2UgPSB7XG4gICAgICAgICAgICBzdGF0dXNDb2RlOiAnMjAwJyxcbiAgICAgICAgICAgIHJlc3BvbnNlVGVtcGxhdGVzOiB7XG4gICAgICAgICAgICAgICAgW21lZGlhVHlwZV06IHJlc3BvbnNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZW5hYmxlQ29ycyA/IHsuLi5pbnRlZ3JhdGlvblJlc3BvbnNlLCAuLi5SRVNQT05TRV9DT1JTX0lOVEVHUkFUSU9OfSA6IGludGVncmF0aW9uUmVzcG9uc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlTWV0aG9kUmVzcG9uc2UoZW5hYmxlQ29yczogYm9vbGVhbikge1xuICAgICAgICByZXR1cm4gZW5hYmxlQ29ycyA/IGNvcnNNZXRob2QoTUVUSE9EX1JFU1BPTlNFXzIwMCkgOiBNRVRIT0RfUkVTUE9OU0VfMjAwO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { CanaryParameters } from "./canary-parameters";
3
- import { Canary } from "@aws-cdk/aws-synthetics-alpha";
4
- export declare class CanaryAlarm {
5
- constructor(stack: Construct, canary: Canary, params: CanaryParameters);
6
- }
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CanaryAlarm = void 0;
4
- const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
5
- const aws_cloudwatch_actions_1 = require("aws-cdk-lib/aws-cloudwatch-actions");
6
- const aws_sns_1 = require("aws-cdk-lib/aws-sns");
7
- class CanaryAlarm {
8
- constructor(stack, canary, params) {
9
- if (params.alarm ?? true) {
10
- const alarmName = params.alarm?.alarmName ?? `${params.name}-alarm`;
11
- const alarm = new aws_cloudwatch_1.Alarm(stack, alarmName, {
12
- alarmName,
13
- alarmDescription: params.alarm?.description ?? '',
14
- metric: canary.metricSuccessPercent(),
15
- evaluationPeriods: params.alarm?.evalutionPeriods ?? 1,
16
- threshold: params.alarm?.threshold ?? 100,
17
- comparisonOperator: aws_cloudwatch_1.ComparisonOperator.LESS_THAN_THRESHOLD,
18
- });
19
- if (params.alarm?.topicArn) {
20
- alarm.addAlarmAction(new aws_cloudwatch_actions_1.SnsAction(aws_sns_1.Topic.fromTopicArn(stack, `${alarmName}-action`, params.alarm.topicArn)));
21
- }
22
- }
23
- }
24
- }
25
- exports.CanaryAlarm = CanaryAlarm;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuYXJ5LWFsYXJtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9pbmZyYS9jYW5hcmllcy9jYW5hcnktYWxhcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0RBQXFFO0FBRXJFLCtFQUE2RDtBQUM3RCxpREFBMEM7QUFFMUMsTUFBYSxXQUFXO0lBQ3BCLFlBQVksS0FBZ0IsRUFDeEIsTUFBYyxFQUNkLE1BQXdCO1FBQ3hCLElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDdEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUM7WUFFcEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxzQkFBSyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQ3RDLFNBQVM7Z0JBQ1QsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLElBQUksRUFBRTtnQkFDakQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRTtnQkFDckMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsSUFBSSxDQUFDO2dCQUN0RCxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksR0FBRztnQkFDekMsa0JBQWtCLEVBQUUsbUNBQWtCLENBQUMsbUJBQW1CO2FBQzdELENBQUMsQ0FBQztZQUVILElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBQ3hCLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxrQ0FBUyxDQUFDLGVBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUN2RCxHQUFHLFNBQVMsU0FBUyxFQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQztTQUNKO0lBQ0wsQ0FBQztDQUNKO0FBdkJELGtDQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtDYW5hcnlQYXJhbWV0ZXJzfSBmcm9tIFwiLi9jYW5hcnktcGFyYW1ldGVyc1wiO1xuaW1wb3J0IHtBbGFybSwgQ29tcGFyaXNvbk9wZXJhdG9yfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7Q2FuYXJ5fSBmcm9tIFwiQGF3cy1jZGsvYXdzLXN5bnRoZXRpY3MtYWxwaGFcIjtcbmltcG9ydCB7U25zQWN0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gtYWN0aW9uc1wiO1xuaW1wb3J0IHtUb3BpY30gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zbnNcIjtcblxuZXhwb3J0IGNsYXNzIENhbmFyeUFsYXJtIHtcbiAgICBjb25zdHJ1Y3RvcihzdGFjazogQ29uc3RydWN0LFxuICAgICAgICBjYW5hcnk6IENhbmFyeSxcbiAgICAgICAgcGFyYW1zOiBDYW5hcnlQYXJhbWV0ZXJzKSB7XG4gICAgICAgIGlmIChwYXJhbXMuYWxhcm0gPz8gdHJ1ZSkge1xuICAgICAgICAgICAgY29uc3QgYWxhcm1OYW1lID0gcGFyYW1zLmFsYXJtPy5hbGFybU5hbWUgPz8gYCR7cGFyYW1zLm5hbWV9LWFsYXJtYDtcblxuICAgICAgICAgICAgY29uc3QgYWxhcm0gPSBuZXcgQWxhcm0oc3RhY2ssIGFsYXJtTmFtZSwge1xuICAgICAgICAgICAgICAgIGFsYXJtTmFtZSxcbiAgICAgICAgICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBwYXJhbXMuYWxhcm0/LmRlc2NyaXB0aW9uID8/ICcnLFxuICAgICAgICAgICAgICAgIG1ldHJpYzogY2FuYXJ5Lm1ldHJpY1N1Y2Nlc3NQZXJjZW50KCksXG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHBhcmFtcy5hbGFybT8uZXZhbHV0aW9uUGVyaW9kcyA/PyAxLFxuICAgICAgICAgICAgICAgIHRocmVzaG9sZDogcGFyYW1zLmFsYXJtPy50aHJlc2hvbGQgPz8gMTAwLFxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHBhcmFtcy5hbGFybT8udG9waWNBcm4pIHtcbiAgICAgICAgICAgICAgICBhbGFybS5hZGRBbGFybUFjdGlvbihuZXcgU25zQWN0aW9uKFRvcGljLmZyb21Ub3BpY0FybihzdGFjayxcbiAgICAgICAgICAgICAgICAgICAgYCR7YWxhcm1OYW1lfS1hY3Rpb25gLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMuYWxhcm0udG9waWNBcm4pKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuYXJ5LXBhcmFtZXRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2luZnJhL2NhbmFyaWVzL2NhbmFyeS1wYXJhbWV0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NjaGVkdWxlfSBmcm9tIFwiQGF3cy1jZGsvYXdzLXN5bnRoZXRpY3MtYWxwaGFcIjtcblxuLyoqIE9wdGlvbmFsIGVudiBwYXJhbWV0ZXJzIGZvciBjYW5hcnkgKi9cbnR5cGUgQ2FuYXJ5RW52ID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZXhwb3J0IHR5cGUgQ2FuYXJ5UGFyYW1ldGVycyA9IHtcbiAgICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2NoZWR1bGU/OiBTY2hlZHVsZTtcbiAgICByZWFkb25seSBzZWNyZXQ/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgaGFuZGxlcjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFsYXJtPzoge1xuICAgICAgICByZWFkb25seSBhbGFybU5hbWU/OiBzdHJpbmc7XG4gICAgICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgICAgICByZWFkb25seSBldmFsdXRpb25QZXJpb2RzPzogbnVtYmVyO1xuICAgICAgICByZWFkb25seSB0aHJlc2hvbGQ/OiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IHRvcGljQXJuPzogc3RyaW5nO1xuICAgIH1cbiAgICByZWFkb25seSBjYW5hcnlFbnY/OiBDYW5hcnlFbnY7XG59XG4iXX0=
@@ -1,6 +0,0 @@
1
- import { Role } from "aws-cdk-lib/aws-iam";
2
- import { Construct } from "constructs";
3
- export declare class DigitrafficCanaryRole extends Role {
4
- constructor(stack: Construct, canaryName: string);
5
- withDatabaseAccess(): DigitrafficCanaryRole;
6
- }
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficCanaryRole = void 0;
4
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
5
- const BASE_POLICY_STATEMENT_PROPS = {
6
- actions: [
7
- "logs:CreateLogStream",
8
- "logs:PutLogEvents",
9
- "logs:CreateLogGroup",
10
- "logs:DescribeLogGroups",
11
- "logs:DescribeLogStreams",
12
- ],
13
- resources: ["*"],
14
- };
15
- const CLOUDWATCH_STATEMENT_PROPS = {
16
- actions: [
17
- "cloudwatch:PutMetricData",
18
- ],
19
- resources: ["*"],
20
- conditions: {
21
- "StringEquals": {
22
- "cloudwatch:namespace": "CloudWatchSynthetics",
23
- },
24
- },
25
- };
26
- class DigitrafficCanaryRole extends aws_iam_1.Role {
27
- constructor(stack, canaryName) {
28
- super(stack, 'canary-role-' + canaryName, {
29
- assumedBy: new aws_iam_1.ServicePrincipal("lambda.amazonaws.com"),
30
- managedPolicies: [
31
- aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName("CloudWatchSyntheticsFullAccess"),
32
- ],
33
- });
34
- this.addToPolicy(new aws_iam_1.PolicyStatement(BASE_POLICY_STATEMENT_PROPS));
35
- this.addToPolicy(new aws_iam_1.PolicyStatement(CLOUDWATCH_STATEMENT_PROPS));
36
- }
37
- withDatabaseAccess() {
38
- // Won't work :(
39
- // this.addToPolicy(new PolicyStatement(DB_STATEMENT_PROPS));
40
- // Works
41
- this.addManagedPolicy(aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSLambdaVPCAccessExecutionRole"));
42
- return this;
43
- }
44
- }
45
- exports.DigitrafficCanaryRole = DigitrafficCanaryRole;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuYXJ5LXJvbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2luZnJhL2NhbmFyaWVzL2NhbmFyeS1yb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFpSDtBQUdqSCxNQUFNLDJCQUEyQixHQUF5QjtJQUN0RCxPQUFPLEVBQUU7UUFDTCxzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQix3QkFBd0I7UUFDeEIseUJBQXlCO0tBQzVCO0lBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO0NBQ25CLENBQUM7QUFFRixNQUFNLDBCQUEwQixHQUF5QjtJQUNyRCxPQUFPLEVBQUU7UUFDTCwwQkFBMEI7S0FDN0I7SUFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDaEIsVUFBVSxFQUFFO1FBQ1IsY0FBYyxFQUFFO1lBQ1osc0JBQXNCLEVBQUUsc0JBQXNCO1NBQ2pEO0tBQ0o7Q0FDSixDQUFDO0FBRUYsTUFBYSxxQkFBc0IsU0FBUSxjQUFJO0lBQzNDLFlBQVksS0FBZ0IsRUFBRSxVQUFrQjtRQUM1QyxLQUFLLENBQUMsS0FBSyxFQUFFLGNBQWMsR0FBRyxVQUFVLEVBQUU7WUFDdEMsU0FBUyxFQUFFLElBQUksMEJBQWdCLENBQUMsc0JBQXNCLENBQUM7WUFDdkQsZUFBZSxFQUFFO2dCQUNiLHVCQUFhLENBQUMsd0JBQXdCLENBQUMsZ0NBQWdDLENBQUM7YUFDM0U7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUkseUJBQWUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLHlCQUFlLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxnQkFBZ0I7UUFDaEIsNkRBQTZEO1FBQzdELFFBQVE7UUFDUixJQUFJLENBQUMsZ0JBQWdCLENBQUMsdUJBQWEsQ0FBQyx3QkFBd0IsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDLENBQUM7UUFDOUcsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBcEJELHNEQW9CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWFuYWdlZFBvbGljeSwgUG9saWN5U3RhdGVtZW50LCBQb2xpY3lTdGF0ZW1lbnRQcm9wcywgUm9sZSwgU2VydmljZVByaW5jaXBhbH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5jb25zdCBCQVNFX1BPTElDWV9TVEFURU1FTlRfUFJPUFM6IFBvbGljeVN0YXRlbWVudFByb3BzID0ge1xuICAgIGFjdGlvbnM6IFtcbiAgICAgICAgXCJsb2dzOkNyZWF0ZUxvZ1N0cmVhbVwiLFxuICAgICAgICBcImxvZ3M6UHV0TG9nRXZlbnRzXCIsXG4gICAgICAgIFwibG9nczpDcmVhdGVMb2dHcm91cFwiLFxuICAgICAgICBcImxvZ3M6RGVzY3JpYmVMb2dHcm91cHNcIixcbiAgICAgICAgXCJsb2dzOkRlc2NyaWJlTG9nU3RyZWFtc1wiLFxuICAgIF0sXG4gICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxufTtcblxuY29uc3QgQ0xPVURXQVRDSF9TVEFURU1FTlRfUFJPUFM6IFBvbGljeVN0YXRlbWVudFByb3BzID0ge1xuICAgIGFjdGlvbnM6IFtcbiAgICAgICAgXCJjbG91ZHdhdGNoOlB1dE1ldHJpY0RhdGFcIixcbiAgICBdLFxuICAgIHJlc291cmNlczogW1wiKlwiXSxcbiAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFwiU3RyaW5nRXF1YWxzXCI6IHtcbiAgICAgICAgICAgIFwiY2xvdWR3YXRjaDpuYW1lc3BhY2VcIjogXCJDbG91ZFdhdGNoU3ludGhldGljc1wiLFxuICAgICAgICB9LFxuICAgIH0sXG59O1xuXG5leHBvcnQgY2xhc3MgRGlnaXRyYWZmaWNDYW5hcnlSb2xlIGV4dGVuZHMgUm9sZSB7XG4gICAgY29uc3RydWN0b3Ioc3RhY2s6IENvbnN0cnVjdCwgY2FuYXJ5TmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHN0YWNrLCAnY2FuYXJ5LXJvbGUtJyArIGNhbmFyeU5hbWUsIHtcbiAgICAgICAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoXCJsYW1iZGEuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgICAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICAgICAgICAgIE1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFwiQ2xvdWRXYXRjaFN5bnRoZXRpY3NGdWxsQWNjZXNzXCIpLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hZGRUb1BvbGljeShuZXcgUG9saWN5U3RhdGVtZW50KEJBU0VfUE9MSUNZX1NUQVRFTUVOVF9QUk9QUykpO1xuICAgICAgICB0aGlzLmFkZFRvUG9saWN5KG5ldyBQb2xpY3lTdGF0ZW1lbnQoQ0xPVURXQVRDSF9TVEFURU1FTlRfUFJPUFMpKTtcbiAgICB9XG5cbiAgICB3aXRoRGF0YWJhc2VBY2Nlc3MoKTogRGlnaXRyYWZmaWNDYW5hcnlSb2xlIHtcbiAgICAgICAgLy8gV29uJ3Qgd29yayA6KFxuICAgICAgICAvLyB0aGlzLmFkZFRvUG9saWN5KG5ldyBQb2xpY3lTdGF0ZW1lbnQoREJfU1RBVEVNRU5UX1BST1BTKSk7XG4gICAgICAgIC8vIFdvcmtzXG4gICAgICAgIHRoaXMuYWRkTWFuYWdlZFBvbGljeShNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcInNlcnZpY2Utcm9sZS9BV1NMYW1iZGFWUENBY2Nlc3NFeGVjdXRpb25Sb2xlXCIpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuIl19
@@ -1,8 +0,0 @@
1
- import { Canary } from "@aws-cdk/aws-synthetics-alpha";
2
- import { Role } from "aws-cdk-lib/aws-iam";
3
- import { CanaryParameters } from "./canary-parameters";
4
- import { Construct } from "constructs";
5
- import { LambdaEnvironment } from "../stack/lambda-configs";
6
- export declare class DigitrafficCanary extends Canary {
7
- constructor(scope: Construct, canaryName: string, role: Role, params: CanaryParameters, environmentVariables: LambdaEnvironment);
8
- }
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DigitrafficCanary = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const aws_synthetics_alpha_1 = require("@aws-cdk/aws-synthetics-alpha");
6
- const canary_alarm_1 = require("./canary-alarm");
7
- class DigitrafficCanary extends aws_synthetics_alpha_1.Canary {
8
- constructor(scope, canaryName, role, params, environmentVariables) {
9
- super(scope, canaryName, {
10
- runtime: aws_synthetics_alpha_1.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_6,
11
- role,
12
- test: aws_synthetics_alpha_1.Test.custom({
13
- code: new aws_synthetics_alpha_1.AssetCode("dist", {
14
- exclude: ["lambda"],
15
- }),
16
- handler: params.handler,
17
- }),
18
- environmentVariables: {
19
- ...environmentVariables,
20
- ...params?.canaryEnv,
21
- },
22
- canaryName,
23
- schedule: params.schedule ?? aws_synthetics_alpha_1.Schedule.rate(aws_cdk_lib_1.Duration.minutes(15)),
24
- });
25
- this.artifactsBucket.grantWrite(role);
26
- if (params.alarm ?? true) {
27
- new canary_alarm_1.CanaryAlarm(scope, this, params);
28
- }
29
- }
30
- }
31
- exports.DigitrafficCanary = DigitrafficCanary;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9pbmZyYS9jYW5hcmllcy9jYW5hcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBQ3ZDLHdFQU11QztBQUV2QyxpREFBNkM7QUFLN0MsTUFBYSxpQkFBa0IsU0FBUSw2QkFBTTtJQUN6QyxZQUNJLEtBQWdCLEVBQ2hCLFVBQWtCLEVBQ2xCLElBQVUsRUFDVixNQUF3QixFQUN4QixvQkFBdUM7UUFFdkMsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDckIsT0FBTyxFQUFFLDhCQUFPLENBQUMsK0JBQStCO1lBQ2hELElBQUk7WUFDSixJQUFJLEVBQUUsMkJBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ2QsSUFBSSxFQUFFLElBQUksZ0NBQVMsQ0FBQyxNQUFNLEVBQUU7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztpQkFDdEIsQ0FBQztnQkFDRixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87YUFDMUIsQ0FBQztZQUNGLG9CQUFvQixFQUFFO2dCQUNsQixHQUFHLG9CQUFvQjtnQkFDdkIsR0FBRyxNQUFNLEVBQUUsU0FBUzthQUN2QjtZQUNELFVBQVU7WUFDVixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSwrQkFBUSxDQUFDLElBQUksQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNuRSxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ3RCLElBQUksMEJBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztDQUNKO0FBL0JELDhDQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICAgIEFzc2V0Q29kZSxcbiAgICBDYW5hcnksXG4gICAgUnVudGltZSxcbiAgICBTY2hlZHVsZSxcbiAgICBUZXN0LFxufSBmcm9tIFwiQGF3cy1jZGsvYXdzLXN5bnRoZXRpY3MtYWxwaGFcIjtcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ2FuYXJ5QWxhcm0gfSBmcm9tIFwiLi9jYW5hcnktYWxhcm1cIjtcbmltcG9ydCB7IENhbmFyeVBhcmFtZXRlcnMgfSBmcm9tIFwiLi9jYW5hcnktcGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IExhbWJkYUVudmlyb25tZW50IH0gZnJvbSBcIi4uL3N0YWNrL2xhbWJkYS1jb25maWdzXCI7XG5cbmV4cG9ydCBjbGFzcyBEaWdpdHJhZmZpY0NhbmFyeSBleHRlbmRzIENhbmFyeSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgICAgIGNhbmFyeU5hbWU6IHN0cmluZyxcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgcGFyYW1zOiBDYW5hcnlQYXJhbWV0ZXJzLFxuICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczogTGFtYmRhRW52aXJvbm1lbnRcbiAgICApIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGNhbmFyeU5hbWUsIHtcbiAgICAgICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuU1lOVEhFVElDU19OT0RFSlNfUFVQUEVURUVSXzNfNixcbiAgICAgICAgICAgIHJvbGUsXG4gICAgICAgICAgICB0ZXN0OiBUZXN0LmN1c3RvbSh7XG4gICAgICAgICAgICAgICAgY29kZTogbmV3IEFzc2V0Q29kZShcImRpc3RcIiwge1xuICAgICAgICAgICAgICAgICAgICBleGNsdWRlOiBbXCJsYW1iZGFcIl0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogcGFyYW1zLmhhbmRsZXIsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGVudmlyb25tZW50VmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgICAgLi4uZW52aXJvbm1lbnRWYXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgLi4ucGFyYW1zPy5jYW5hcnlFbnYsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2FuYXJ5TmFtZSxcbiAgICAgICAgICAgIHNjaGVkdWxlOiBwYXJhbXMuc2NoZWR1bGUgPz8gU2NoZWR1bGUucmF0ZShEdXJhdGlvbi5taW51dGVzKDE1KSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYXJ0aWZhY3RzQnVja2V0LmdyYW50V3JpdGUocm9sZSk7XG5cbiAgICAgICAgaWYgKHBhcmFtcy5hbGFybSA/PyB0cnVlKSB7XG4gICAgICAgICAgICBuZXcgQ2FuYXJ5QWxhcm0oc2NvcGUsIHRoaXMsIHBhcmFtcyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,18 +0,0 @@
1
- import { Role } from "aws-cdk-lib/aws-iam";
2
- import { ISecret } from "aws-cdk-lib/aws-secretsmanager";
3
- import { CanaryParameters } from "./canary-parameters";
4
- import { DigitrafficCanary } from "./canary";
5
- import { DigitrafficStack } from "../stack/stack";
6
- export declare class DatabaseCanary extends DigitrafficCanary {
7
- constructor(stack: DigitrafficStack, role: Role, secret: ISecret, params: CanaryParameters);
8
- static create(stack: DigitrafficStack, role: Role, params: CanaryParameters): DatabaseCanary;
9
- /**
10
- *
11
- * @param stack
12
- * @param role
13
- * @param name name of the typescipt file without -db -suffix. Max len is 10 char if @param canaryName is not given.
14
- * @param params
15
- * @param canaryName Optional name for canary if multiple canaries is made from same ${name}-db.ts canary file.
16
- */
17
- static createV2(stack: DigitrafficStack, role: Role, name: string, params?: Partial<CanaryParameters>, canaryName?: string): DatabaseCanary;
18
- }