@digitraffic/common 2022.10.31-1 → 2022.10.31-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) 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.map +1 -0
  43. package/dist/aws/infra/stack/stack-checking-aspect.d.ts +21 -0
  44. package/dist/aws/infra/stack/stack-checking-aspect.js.map +1 -0
  45. package/dist/aws/infra/stack/stack.d.ts +45 -0
  46. package/dist/aws/infra/stack/stack.js.map +1 -0
  47. package/dist/aws/infra/stack/subscription.d.ts +17 -0
  48. package/dist/aws/infra/stack/subscription.js.map +1 -0
  49. package/dist/aws/infra/usage-plans.d.ts +15 -0
  50. package/dist/aws/infra/usage-plans.js.map +1 -0
  51. package/dist/aws/runtime/apikey.d.ts +2 -0
  52. package/dist/aws/runtime/apikey.js.map +1 -0
  53. package/dist/aws/runtime/digitraffic-integration-response.d.ts +8 -0
  54. package/dist/aws/runtime/digitraffic-integration-response.js.map +1 -0
  55. package/dist/aws/runtime/environment.d.ts +1 -0
  56. package/dist/aws/runtime/environment.js.map +1 -0
  57. package/dist/aws/runtime/messaging.d.ts +10 -0
  58. package/dist/aws/runtime/messaging.js.map +1 -0
  59. package/dist/aws/runtime/s3.d.ts +2 -0
  60. package/dist/aws/runtime/s3.js.map +1 -0
  61. package/dist/aws/runtime/secrets/dbsecret.d.ts +54 -0
  62. package/dist/aws/runtime/secrets/dbsecret.js.map +1 -0
  63. package/dist/aws/runtime/secrets/proxy-holder.d.ts +9 -0
  64. package/dist/aws/runtime/secrets/proxy-holder.js.map +1 -0
  65. package/dist/aws/runtime/secrets/rds-holder.d.ts +9 -0
  66. package/dist/aws/runtime/secrets/rds-holder.js.map +1 -0
  67. package/dist/aws/runtime/secrets/secret-holder.d.ts +26 -0
  68. package/dist/aws/runtime/secrets/secret-holder.js.map +1 -0
  69. package/dist/aws/runtime/secrets/secret.d.ts +8 -0
  70. package/dist/aws/runtime/secrets/secret.js.map +1 -0
  71. package/dist/aws/types/errors.d.ts +8 -0
  72. package/dist/aws/types/errors.js.map +1 -0
  73. package/dist/aws/types/lambda-response.d.ts +13 -0
  74. package/dist/aws/types/lambda-response.js.map +1 -0
  75. package/dist/aws/types/mediatypes.d.ts +10 -0
  76. package/dist/aws/types/mediatypes.js.map +1 -0
  77. package/dist/aws/types/model-with-reference.d.ts +7 -0
  78. package/dist/aws/types/model-with-reference.js.map +1 -0
  79. package/dist/aws/types/proxytypes.d.ts +26 -0
  80. package/dist/aws/types/proxytypes.js.map +1 -0
  81. package/dist/aws/types/tags.d.ts +2 -0
  82. package/dist/aws/types/tags.js.map +1 -0
  83. package/dist/database/cached.d.ts +7 -0
  84. package/dist/database/cached.js.map +1 -0
  85. package/dist/database/database.d.ts +19 -0
  86. package/dist/database/database.js.map +1 -0
  87. package/dist/database/last-updated.d.ts +16 -0
  88. package/dist/database/last-updated.js.map +1 -0
  89. package/dist/database/models.d.ts +6 -0
  90. package/dist/database/models.js.map +1 -0
  91. package/dist/marine/id_utils.d.ts +3 -0
  92. package/dist/marine/id_utils.js.map +1 -0
  93. package/dist/marine/rtz.d.ts +48 -0
  94. package/dist/marine/rtz.js.map +1 -0
  95. package/dist/test/asserter.d.ts +11 -0
  96. package/dist/test/asserter.js.map +1 -0
  97. package/dist/test/db-testutils.d.ts +2 -0
  98. package/dist/test/db-testutils.js.map +1 -0
  99. package/dist/test/httpserver.d.ts +19 -0
  100. package/dist/test/httpserver.js.map +1 -0
  101. package/dist/test/secret.d.ts +3 -0
  102. package/dist/test/secret.js.map +1 -0
  103. package/dist/test/secrets-manager.d.ts +9 -0
  104. package/dist/test/secrets-manager.js.map +1 -0
  105. package/dist/test/testutils.d.ts +12 -0
  106. package/dist/test/testutils.js.map +1 -0
  107. package/dist/types/either.d.ts +9 -0
  108. package/dist/types/either.js.map +1 -0
  109. package/dist/types/input-error.d.ts +2 -0
  110. package/dist/types/input-error.js.map +1 -0
  111. package/dist/types/language.d.ts +5 -0
  112. package/dist/types/language.js.map +1 -0
  113. package/dist/types/traffictype.d.ts +8 -0
  114. package/dist/types/traffictype.js.map +1 -0
  115. package/dist/types/validator.d.ts +4 -0
  116. package/dist/types/validator.js.map +1 -0
  117. package/dist/utils/api-model.d.ts +87 -0
  118. package/dist/utils/api-model.js.map +1 -0
  119. package/dist/utils/base64.d.ts +12 -0
  120. package/dist/utils/base64.js.map +1 -0
  121. package/dist/utils/date-utils.d.ts +17 -0
  122. package/dist/utils/date-utils.js.map +1 -0
  123. package/dist/utils/geojson-types.d.ts +14 -0
  124. package/dist/utils/geojson-types.js.map +1 -0
  125. package/dist/utils/geometry.d.ts +36 -0
  126. package/dist/utils/geometry.js.map +1 -0
  127. package/dist/utils/retry.d.ts +13 -0
  128. package/dist/utils/retry.js.map +1 -0
  129. package/dist/utils/slack.d.ts +5 -0
  130. package/dist/utils/slack.js.map +1 -0
  131. package/dist/utils/utils.d.ts +46 -0
  132. package/dist/utils/utils.js.map +1 -0
  133. package/package.json +1 -1
  134. package/.editorconfig +0 -9
  135. package/.eslintignore +0 -4
  136. package/.eslintrc.json +0 -27
  137. package/.github/CODEOWNERS +0 -2
  138. package/.github/workflows/build.yml +0 -36
  139. package/.github/workflows/eslint.yml +0 -38
  140. package/.github/workflows/mirror.yml +0 -15
  141. package/.gitignore +0 -29
  142. package/.husky/pre-commit +0 -4
  143. package/.prettierrc.json +0 -10
  144. package/jest.config.js +0 -15
  145. package/test/marine/id_utils.test.ts +0 -57
  146. package/test/promise/promise.test.ts +0 -143
  147. package/test/secrets/dbsecret.test.ts +0 -59
  148. package/test/secrets/secret-holder.test.ts +0 -143
  149. package/test/secrets/secret.test.ts +0 -49
  150. package/test/test/httpserver.test.ts +0 -128
  151. package/test/utils/date-utils.test.ts +0 -28
  152. package/test/utils/geometry.test.ts +0 -29
  153. package/test/utils/utils.test.ts +0 -64
  154. package/tsconfig.eslint.json +0 -4
  155. package/tsconfig.json +0 -22
  156. package/yarn.lock +0 -4060
@@ -0,0 +1,84 @@
1
+ import { Function, FunctionProps } from "aws-cdk-lib/aws-lambda";
2
+ import { Stack } from "aws-cdk-lib";
3
+ import { ComparisonOperator } from "aws-cdk-lib/aws-cloudwatch";
4
+ import { DigitrafficStack } from "../stack/stack";
5
+ import { ITopic } from "aws-cdk-lib/aws-sns";
6
+ import { LambdaEnvironment, MonitoredFunctionParameters } from "../stack/lambda-configs";
7
+ import { TrafficType } from "../../../types/traffictype";
8
+ /**
9
+ * Allows customization of CloudWatch Alarm properties
10
+ */
11
+ export declare type MonitoredFunctionAlarmProps = {
12
+ /**
13
+ * Setting this to false will not create a CloudWatch alarm
14
+ */
15
+ readonly create: boolean;
16
+ readonly threshold?: number;
17
+ readonly evaluationPeriods?: number;
18
+ readonly datapointsToAlarm?: number;
19
+ readonly comparisonOperator?: ComparisonOperator;
20
+ };
21
+ export declare type MonitoredFunctionProps = {
22
+ readonly durationAlarmProps?: MonitoredFunctionAlarmProps;
23
+ readonly durationWarningProps?: MonitoredFunctionAlarmProps;
24
+ readonly errorAlarmProps?: MonitoredFunctionAlarmProps;
25
+ readonly throttleAlarmProps?: MonitoredFunctionAlarmProps;
26
+ };
27
+ /**
28
+ * Creates a Lambda function that monitors default CloudWatch Lambda metrics with CloudWatch Alarms.
29
+ */
30
+ export declare class MonitoredFunction extends Function {
31
+ readonly givenName: string;
32
+ /** disable all alarms */
33
+ static readonly DISABLE_ALARMS: MonitoredFunctionProps;
34
+ /**
35
+ * Create new MonitoredFunction. Use topics from given DigitrafficStack.
36
+ *
37
+ * @param stack DigitrafficStack
38
+ * @param id Lambda construct Id
39
+ * @param functionProps Lambda function properties
40
+ * @param props Monitored function properties
41
+ */
42
+ static create(stack: DigitrafficStack, id: string, functionProps: FunctionProps, props?: Partial<MonitoredFunctionProps>): MonitoredFunction;
43
+ /**
44
+ * Create new MonitoredFunction. Use topics from given DigitrafficStack. Generate names from given name and configuration shortName.
45
+ *
46
+ * For example, shortName FOO and given name update-things will create function FOO-UpdateThings and use code from lambda/update-things/update-things.ts method handler.
47
+ *
48
+ * @param stack DigitrafficStack
49
+ * @param name param-case name
50
+ * @param environment Lambda environment
51
+ * @param functionParameters Lambda function parameters
52
+ */
53
+ static createV2(stack: DigitrafficStack, name: string, environment: LambdaEnvironment, functionParameters?: Partial<MonitoredFunctionParameters>): MonitoredFunction;
54
+ /**
55
+ * @param scope Stack
56
+ * @param id Lambda construct Id
57
+ * @param functionProps Lambda function properties
58
+ * @param alarmSnsTopic SNS topic for alarms
59
+ * @param warningSnsTopic SNS topic for warnings
60
+ * @param production Is the stack a production stack, used for determining the alarm topic
61
+ * @param trafficType Traffic type, used for alarm names. Set to null if Lambda is not related to any traffic type.
62
+ * @param props Monitored function properties
63
+ */
64
+ constructor(scope: Stack, id: string, functionProps: FunctionProps, alarmSnsTopic: ITopic, warningSnsTopic: ITopic, production: boolean, trafficType: TrafficType | null, props?: MonitoredFunctionProps);
65
+ private createAlarm;
66
+ private getAlarmActionForEnv;
67
+ }
68
+ export declare class MonitoredDBFunction {
69
+ /**
70
+ * Create new MonitoredDBFunction. Use topics from given DigitrafficStack. Generate names from given name and configuration shortName.
71
+ * Grant secret and create log subscription.
72
+ *
73
+ * For example, shortName FOO and given name update-things will create function FOO-UpdateThings and use code from lambda/update-things/update-things.ts method handler.
74
+ *
75
+ * If you don't need to pass any extra arguments to lambda-environment, you can leave environment out and this function will create the
76
+ * default Lambda Environment with SECRET_ID and DB_APPLICATION.
77
+ *
78
+ * @param stack DigitrafficStack
79
+ * @param name param-case name
80
+ * @param environment Lambda environment
81
+ * @param functionParameters Lambda function parameters
82
+ */
83
+ static create(stack: DigitrafficStack, name: string, environment?: LambdaEnvironment, functionParameters?: Partial<MonitoredFunctionParameters>): MonitoredFunction;
84
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitoredfunction.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/monitoredfunction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { RestApi, RestApiProps, JsonSchema, Resource } from 'aws-cdk-lib/aws-apigateway';
2
+ import { PolicyDocument } from 'aws-cdk-lib/aws-iam';
3
+ import { Construct } from "constructs";
4
+ import { DigitrafficStack } from "./stack";
5
+ import { ModelWithReference } from "../../types/model-with-reference";
6
+ import { DocumentationPart } from "../documentation";
7
+ export declare class DigitrafficRestApi extends RestApi {
8
+ readonly apiKeyIds: string[];
9
+ readonly enableDocumentation: boolean;
10
+ constructor(stack: DigitrafficStack, apiId: string, apiName: string, allowFromIpAddresses?: string[] | undefined, config?: Partial<RestApiProps>);
11
+ hostname(): string;
12
+ createUsagePlan(apiKeyId: string, apiKeyName: string): string;
13
+ createUsagePlanV2(apiName: string): string;
14
+ addJsonModel(modelName: string, schema: JsonSchema): ModelWithReference;
15
+ addCSVModel(modelName: string): ModelWithReference;
16
+ private getModelWithReference;
17
+ private addDocumentationPart;
18
+ documentResource(resource: Resource, ...documentationPart: DocumentationPart[]): void;
19
+ }
20
+ /**
21
+ * Due to AWS API design API Gateway will always return 403 'Missing Authentication Token' for requests
22
+ * with a non-existent endpoint. This function translates this response to a 404.
23
+ * Requests with an invalid or missing API key are not affected (still return 403 'Forbidden').
24
+ * @param restApi RestApi
25
+ * @param stack Construct
26
+ */
27
+ export declare function add404Support(restApi: RestApi, stack: Construct): void;
28
+ export declare function add401Support(restApi: RestApi, stack: Construct): void;
29
+ /**
30
+ * Due to AWS API design API Gateway will always return 403 'Missing Authentication Token' for requests
31
+ * with a non-existent endpoint. This function converts this response to a custom one.
32
+ * Requests with an invalid or missing API key are not affected (still return 403 'Forbidden').
33
+ * @param returnCode
34
+ * @param message
35
+ * @param restApi RestApi
36
+ * @param stack Construct
37
+ */
38
+ export declare function setReturnCodeForMissingAuthenticationToken(returnCode: number, message: string, restApi: RestApi, stack: Construct): void;
39
+ export declare function createRestApi(stack: Construct, apiId: string, apiName: string, allowFromIpAddresses?: string[] | undefined): RestApi;
40
+ export declare function createDefaultPolicyDocument(): PolicyDocument;
41
+ export declare function createIpRestrictionPolicyDocument(allowFromIpAddresses: string[]): PolicyDocument;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest_apis.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/rest_apis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { IAspect } from "aws-cdk-lib";
2
+ import { DigitrafficStack } from "./stack";
3
+ import { IConstruct } from "constructs";
4
+ export declare class StackCheckingAspect implements IAspect {
5
+ private readonly stackShortName?;
6
+ private readonly whitelistedResources?;
7
+ constructor(stackShortName?: string, whitelistedResources?: string[]);
8
+ static create(stack: DigitrafficStack): StackCheckingAspect;
9
+ visit(node: IConstruct): void;
10
+ private isWhitelisted;
11
+ private addAnnotation;
12
+ private checkStack;
13
+ private checkFunction;
14
+ private checkTags;
15
+ private checkBucket;
16
+ private static isValidPath;
17
+ private static isValidQueryString;
18
+ private checkResourceCasing;
19
+ private checkQueueEncryption;
20
+ private checkLogGroupRetention;
21
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-checking-aspect.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/stack-checking-aspect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { Stack, StackProps } from "aws-cdk-lib";
2
+ import { IVpc } from "aws-cdk-lib/aws-ec2";
3
+ import { ISecurityGroup } from "aws-cdk-lib/aws-ec2/lib/security-group";
4
+ import { ITopic } from "aws-cdk-lib/aws-sns";
5
+ import { ISecret } from "aws-cdk-lib/aws-secretsmanager";
6
+ import { Function as AWSFunction } from "aws-cdk-lib/aws-lambda";
7
+ import { Construct } from "constructs";
8
+ import { TrafficType } from "../../../types/traffictype";
9
+ import { DBLambdaEnvironment } from "./lambda-configs";
10
+ export declare const SOLUTION_KEY = "Solution";
11
+ export declare const SSM_KEY_WARNING_TOPIC: string;
12
+ export declare const SSM_KEY_ALARM_TOPIC: string;
13
+ export interface StackConfiguration {
14
+ readonly shortName: string;
15
+ readonly secretId?: string;
16
+ readonly alarmTopicArn: string;
17
+ readonly warningTopicArn: string;
18
+ readonly logsDestinationArn?: string;
19
+ readonly vpcId?: string;
20
+ readonly lambdaDbSgId?: string;
21
+ readonly privateSubnetIds?: string[];
22
+ readonly availabilityZones?: string[];
23
+ readonly trafficType: TrafficType;
24
+ readonly production: boolean;
25
+ readonly stackProps: StackProps;
26
+ readonly stackFeatures?: {
27
+ readonly enableCanaries?: boolean;
28
+ readonly enableDocumentation?: boolean;
29
+ };
30
+ readonly whitelistedResources?: string[];
31
+ }
32
+ export declare class DigitrafficStack extends Stack {
33
+ readonly vpc?: IVpc;
34
+ readonly lambdaDbSg?: ISecurityGroup;
35
+ readonly alarmTopic: ITopic;
36
+ readonly warningTopic: ITopic;
37
+ readonly secret?: ISecret;
38
+ readonly configuration: StackConfiguration;
39
+ constructor(scope: Construct, id: string, configuration: StackConfiguration);
40
+ addAspects(): void;
41
+ createLambdaEnvironment(): DBLambdaEnvironment;
42
+ createDefaultLambdaEnvironment(dbApplication: string): DBLambdaEnvironment;
43
+ getSecret(): ISecret;
44
+ grantSecret(...lambdas: AWSFunction[]): void;
45
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/stack.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AACzD,iDAA+D;AAE/D,iDAAoD;AACpD,iDAAsD;AACtD,uEAAiE;AAGjE,mEAA8D;AAK9D,MAAM,QAAQ,GAAG,cAAc,CAAC;AACnB,QAAA,YAAY,GAAG,UAAU,CAAC;AACvC,MAAM,eAAe,GAAG,aAAa,CAAC;AAEzB,QAAA,qBAAqB,GAAG,GAAG,QAAQ,GAAG,eAAe,gBAAgB,CAAC;AACtE,QAAA,mBAAmB,GAAG,GAAG,QAAQ,GAAG,eAAe,cAAc,CAAC;AA2B/E,MAAa,gBAAiB,SAAQ,mBAAK;IASvC,YACI,KAAgB,EAChB,EAAU,EACV,aAAiC;QAEjC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QAE3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,aAAa,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,MAAM,GAAG,2BAAM,CAAC,gBAAgB,CACjC,IAAI,EACJ,QAAQ,EACR,aAAa,CAAC,QAAQ,CACzB,CAAC;SACL;QAED,mEAAmE;QACnE,mDAAmD;QACnD,IAAI,aAAa,CAAC,KAAK,EAAE;YACrB,IAAI,CAAC,GAAG,GAAG,aAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC1C,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;gBAChD,iBAAiB,EAAE,aAAa,CAAC,iBAAiB,IAAI,EAAE;aAC3D,CAAC,CAAC;SACN;QAED,oDAAoD;QACpD,IAAI,aAAa,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,uBAAa,CAAC,mBAAmB,CAC/C,IAAI,EACJ,YAAY,EACZ,aAAa,CAAC,YAAY,CAC7B,CAAC;SACL;QAED,IAAI,CAAC,UAAU,GAAG,eAAK,CAAC,YAAY,CAChC,IAAI,EACJ,YAAY,EACZ,yBAAe,CAAC,uBAAuB,CACnC,IAAI,EACJ,iBAAiB,EACjB,2BAAmB,CACtB,CAAC,WAAW,CAChB,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,eAAK,CAAC,YAAY,CAClC,IAAI,EACJ,cAAc,EACd,yBAAe,CAAC,uBAAuB,CACnC,IAAI,EACJ,mBAAmB,EACnB,6BAAqB,CACxB,CAAC,WAAW,CAChB,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,UAAU;QACN,qBAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,2CAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,8BAA8B,CACtC,IAAI,CAAC,aAAa,CAAC,SAAS,CAC/B,CAAC;IACN,CAAC;IAED,8BAA8B,CAAC,aAAqB;QAChD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ;YAC9B,CAAC,CAAC;gBACI,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;gBACtC,cAAc,EAAE,aAAa;aAChC;YACH,CAAC,CAAC;gBACI,cAAc,EAAE,aAAa;aAChC,CAAC;IACZ,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,GAAG,OAAsB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;CACJ;AAnGD,4CAmGC"}
@@ -0,0 +1,17 @@
1
+ import { CfnSubscriptionFilter } from "aws-cdk-lib/aws-logs";
2
+ import { Function as AWSFunction } from "aws-cdk-lib/aws-lambda";
3
+ import { DigitrafficStack } from "./stack";
4
+ import { Construct } from "constructs";
5
+ import { MonitoredFunction } from "./monitoredfunction";
6
+ /**
7
+ * Creates a subscription filter that subscribes to a Lambda Log Group and delivers the logs to another destination.
8
+ * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html
9
+ * @param lambda The Lambda function, needed to create a dependency
10
+ * @param lambdaName The Lambda name from which the Log Group name is derived
11
+ * @param logDestinationArn Destination for streamed logs
12
+ * @param stack CloudFormation stack
13
+ */
14
+ export declare function createSubscription(lambda: AWSFunction, lambdaName: string, logDestinationArn: string | undefined, stack: Construct): CfnSubscriptionFilter | undefined;
15
+ export declare class DigitrafficLogSubscriptions {
16
+ constructor(stack: DigitrafficStack, ...lambdas: MonitoredFunction[]);
17
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/subscription.ts"],"names":[],"mappings":";;;AAAA,mDAA6D;AAM7D;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAC9B,MAAmB,EACnB,UAAkB,EAClB,iBAAqC,EACrC,KAAgB;IAEhB,IAAI,iBAAiB,IAAI,SAAS,EAAE;QAChC,OAAO,SAAS,CAAC;KACpB;IACD,MAAM,MAAM,GAAG,IAAI,gCAAqB,CACpC,KAAK,EACL,GAAG,UAAU,kBAAkB,EAC/B;QACI,YAAY,EAAE,eAAe,UAAU,EAAE;QACzC,aAAa,EAAE,EAAE;QACjB,cAAc,EAAE,iBAAiB;KACpC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAElC,OAAO,MAAM,CAAC;AAClB,CAAC;AAtBD,gDAsBC;AAED,MAAa,2BAA2B;IACpC,YAAY,KAAuB,EAAE,GAAG,OAA4B;QAChE,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC;QAC9D,IAAI,cAAc,KAAK,SAAS,EAAE;YAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvB,MAAM,MAAM,GAAG,IAAI,gCAAqB,CACpC,KAAK,EACL,GAAG,MAAM,CAAC,SAAS,kBAAkB,EACrC;oBACI,YAAY,EAAE,eAAe,MAAM,CAAC,SAAS,EAAE;oBAC/C,aAAa,EAAE,EAAE;oBACjB,cAAc;iBACjB,CACJ,CAAC;gBAEF,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;CACJ;AAnBD,kEAmBC"}
@@ -0,0 +1,15 @@
1
+ import { IApiKey, RestApi } from 'aws-cdk-lib/aws-apigateway';
2
+ /**
3
+ * Creates an usage plan for a REST API with a single API key
4
+ * @param api The REST API
5
+ * @param apiKeyId Id for the API key, this is a surrogate id for CDK, not displayed anywhere
6
+ * @param apiKeyName Name for the API key, this is displayed in the AWS Console
7
+ * @deprecated Creates randomized API key names, use createDefaultUsagePlan instead
8
+ */
9
+ export declare function createUsagePlan(api: RestApi, apiKeyId: string, apiKeyName: string): IApiKey;
10
+ /**
11
+ * Creates a default usage plan for a REST API with a single API key
12
+ * @param api The REST API
13
+ * @param apiName Name of the api. Will generate key: apiName + ' API Key' and plan: apiName + ' API Usage Plan'
14
+ */
15
+ export declare function createDefaultUsagePlan(api: RestApi, apiName: string): IApiKey;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-plans.js","sourceRoot":"","sources":["../../../src/aws/infra/usage-plans.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,GAAY,EAAE,QAAgB,EAAE,UAAkB;IAC9E,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE;QACtC,IAAI,EAAE,UAAU;KACnB,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC;QACb,KAAK,EAAE,GAAG,CAAC,eAAe;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC;AAClB,CAAC;AAXD,0CAWC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,GAAY,EAAE,OAAe;IAChE,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;IACxC,MAAM,aAAa,GAAG,OAAO,GAAG,iBAAiB,CAAC;IAClD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE;QACzC,IAAI,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC;QACb,KAAK,EAAE,GAAG,CAAC,eAAe;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC;AAClB,CAAC;AAbD,wDAaC"}
@@ -0,0 +1,2 @@
1
+ import { APIGateway } from "aws-sdk";
2
+ export declare function getApiKeyFromAPIGateway(keyId: string): Promise<APIGateway.Types.ApiKey>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apikey.js","sourceRoot":"","sources":["../../../src/aws/runtime/apikey.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AAEnC,SAAgB,uBAAuB,CAAC,KAAa;IACjD,MAAM,GAAG,GAAG,IAAI,oBAAU,EAAE,CAAC;IAC7B,OAAO,GAAG,CAAC,SAAS,CAAC;QACjB,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC,OAAO,EAAE,CAAC;AACjB,CAAC;AAND,0DAMC"}
@@ -0,0 +1,8 @@
1
+ import { IntegrationResponse } from "aws-cdk-lib/aws-apigateway";
2
+ import { MediaType } from "../types/mediatypes";
3
+ export declare abstract class DigitrafficIntegrationResponse {
4
+ static ok(mediaType: MediaType): IntegrationResponse;
5
+ static badRequest(mediaType?: MediaType): IntegrationResponse;
6
+ static notImplemented(mediaType?: MediaType): IntegrationResponse;
7
+ static create(statusCode: string, mediaType: MediaType): IntegrationResponse;
8
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitraffic-integration-response.js","sourceRoot":"","sources":["../../../src/aws/runtime/digitraffic-integration-response.ts"],"names":[],"mappings":";;;AACA,oDAA8C;AAC9C,oDAA8D;AAE9D,MAAsB,8BAA8B;IAEhD,MAAM,CAAC,EAAE,CAAC,SAAoB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,SAAqB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,sBAAS,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,SAAqB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,sBAAS,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,UAAkB,EAAE,SAAoB;QAClD,OAAO;YACH,UAAU;YACV,iBAAiB,EAAE;gBACf,CAAC,SAAS,CAAC,EAAE,kCAAuB;aACvC;SACJ,CAAC;IACN,CAAC;CACJ;AAtBD,wEAsBC"}
@@ -0,0 +1 @@
1
+ export declare function envValue(key: string): string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/aws/runtime/environment.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CAAC,GAAW;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,KAAK,IAAI,IAAI,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;KACvD;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AARD,4BAQC"}
@@ -0,0 +1,10 @@
1
+ import { SNS } from "aws-sdk";
2
+ /**
3
+ * Utility function for publishing SNS messages.
4
+ * Made because using *await* with AWS APIs doesn't require calling promise() but nothing works if it isn't called.
5
+ * Retries a single time in case of failure.
6
+ * @param message
7
+ * @param topicArn
8
+ * @param sns
9
+ */
10
+ export declare function snsPublish(message: string, topicArn: string, sns: SNS): Promise<void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../../src/aws/runtime/messaging.ts"],"names":[],"mappings":";;;AAEA;;;;;;;GAOG;AACI,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,QAAgB,EAAE,GAAQ;IACxE,MAAM,aAAa,GAAG;QAClB,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,QAAQ;KACrB,CAAC;IACF,IAAI;QACA,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;KAC9C;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI;YACA,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;SAC9C;QAAC,OAAO,EAAE,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;SAC5D;KACJ;AACL,CAAC;AAfD,gCAeC"}
@@ -0,0 +1,2 @@
1
+ import { S3 } from "aws-sdk";
2
+ export declare function uploadToS3<Body extends S3.Body | undefined>(bucketName: string, body: Body, objectName: string, cannedAcl?: string, contentType?: string): Promise<void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../src/aws/runtime/s3.ts"],"names":[],"mappings":";;;AAAA,qCAA2B;AAEpB,KAAK,UAAU,UAAU,CAC5B,UAAkB,EAClB,IAAU,EACV,UAAkB,EAClB,SAAkB,EAClB,WAAoB;IAGpB,MAAM,EAAE,GAAG,IAAI,YAAE,EAAE,CAAC;IACpB,IAAI;QACA,MAAM,QAAQ,CACV,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAC3D,CAAC;KACL;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,UAAU,CAAC,CAAC;QAC3E,IAAI;YACA,MAAM,QAAQ,CACV,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAC3D,CAAC;SACL;QAAC,OAAO,EAAE,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,UAAU,CAAC,CAAC;SACtF;KACJ;AACL,CAAC;AAvBD,gCAuBC;AAED,SAAS,QAAQ,CACb,EAAM,EACN,UAAkB,EAClB,IAAU,EACV,QAAgB,EAChB,SAAkB,EAClB,WAAoB;IAGpB,OAAO,EAAE,CAAC,MAAM,CAAC;QACb,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,SAAS;QACd,WAAW,EAAE,WAAW;KAC3B,CAAC,CAAC,OAAO,EAAE,CAAC;AACjB,CAAC"}
@@ -0,0 +1,54 @@
1
+ export declare type DbSecret = {
2
+ readonly username: string;
3
+ readonly password: string;
4
+ readonly host: string;
5
+ readonly ro_host: string;
6
+ };
7
+ export declare enum RdsProxySecretKey {
8
+ username = "username",
9
+ password = "password",
10
+ proxy_host = "proxy_host",
11
+ proxy_ro_host = "proxy_ro_host"
12
+ }
13
+ export declare enum RdsSecretKey {
14
+ username = "username",
15
+ password = "password",
16
+ host = "host",
17
+ ro_host = "ro_host"
18
+ }
19
+ export declare type RdsProxySecret = Record<RdsProxySecretKey, string>;
20
+ export declare type RdsSecret = Record<RdsSecretKey, string>;
21
+ export declare enum DatabaseEnvironmentKeys {
22
+ DB_USER = "DB_USER",
23
+ DB_PASS = "DB_PASS",
24
+ DB_URI = "DB_URI",
25
+ DB_RO_URI = "DB_RO_URI",
26
+ DB_APPLICATION = "DB_APPLICATION"
27
+ }
28
+ /**
29
+ * You can give the following options for retrieving a secret:
30
+ *
31
+ * expectedKeys: the list of keys the secret must include. If not, an error will be thrown.
32
+ * prefix: a prefix that's included in retrieved secret's keys. Only keys begining with the prefix will be included.
33
+ * The secret that is passed to the given function will not include the prefix in it's keys.
34
+
35
+ */
36
+ export declare type SecretOptions = {
37
+ readonly expectedKeys?: string[];
38
+ readonly prefix?: string;
39
+ };
40
+ export declare type SecretToPromiseFunction<Secret, Response = void> = (secret: Secret) => Promise<Response> | void;
41
+ export declare type SecretFunction<Secret, Response = void> = (secretId: string, fn: SecretToPromiseFunction<Secret, Response>, options?: SecretOptions) => Promise<Response | void>;
42
+ export declare type EmptySecretFunction<Response = void> = SecretFunction<DbSecret, Response>;
43
+ /**
44
+ * Run the given function with secret retrieved from Secrets Manager. Also injects database-credentials into environment.
45
+ *
46
+ * @deprecated use SecretHolder & ProxyHolder
47
+ * @see SecretOptions
48
+ *
49
+ * @param {string} secretId
50
+ * @param {function} fn
51
+ * @param {SecretOptions} options
52
+ */
53
+ export declare function withDbSecret<Secret, Response>(secretId: string, fn: SecretToPromiseFunction<Secret, Response>, options?: SecretOptions): Promise<Response | void>;
54
+ export declare function checkExpectedSecretKeys<Secret>(keys: string[], secret: Secret): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbsecret.js","sourceRoot":"","sources":["../../../../src/aws/runtime/secrets/dbsecret.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Holds credentials for RDS Proxy access.
3
+ */
4
+ export declare class ProxyHolder {
5
+ private readonly secretHolder;
6
+ constructor(secretId: string);
7
+ static create(): ProxyHolder;
8
+ setCredentials(): Promise<void>;
9
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-holder.js","sourceRoot":"","sources":["../../../../src/aws/runtime/secrets/proxy-holder.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAC/C,yCAIoB;AACpB,gDAAsD;AAEtD,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,4BAAiB,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAa,WAAW;IAGpB,YAAY,QAAgB;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAChC,QAAQ,EACR,EAAE,EACF,qBAAqB,CACxB,CAAC;IACN,CAAC;IAED,MAAM,CAAC,MAAM;QACT,OAAO,IAAI,WAAW,CAAC,IAAA,sBAAc,EAAC,WAAW,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;IAC1E,CAAC;CACJ;AAvBD,kCAuBC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Holds credentials for RDS access.
3
+ */
4
+ export declare class RdsHolder {
5
+ private readonly secretHolder;
6
+ constructor(secretId: string);
7
+ static create(): RdsHolder;
8
+ setCredentials(): Promise<void>;
9
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rds-holder.js","sourceRoot":"","sources":["../../../../src/aws/runtime/secrets/rds-holder.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAC/C,yCAA8E;AAC9E,gDAAsD;AAEtD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAY,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAa,SAAS;IAGlB,YAAY,QAAgB;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAChC,QAAQ,EACR,EAAE,EACF,eAAe,CAClB,CAAC;IACN,CAAC;IAED,MAAM,CAAC,MAAM;QACT,OAAO,IAAI,SAAS,CAAC,IAAA,sBAAc,EAAC,WAAW,CAAC,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACpE,CAAC;CACJ;AAvBD,8BAuBC"}
@@ -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":";;;AAAA,qCAAoD;AACpD,yCAIoB;AACpB,gDAAsD;AAEtD,8DAA8D;AAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEpC,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,qBAAqB,GAAG;IAC1B,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,+BAA+B;CAC/C,CAAC;AAEF;;;;;;;GAOG;AACH,MAAa,YAAY;IAOrB,YACI,QAAgB,EAChB,MAAM,GAAG,EAAE,EACX,eAAyB,EAAE,EAC3B,aAAa,GAAG,qBAAqB;QAErC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,UAAU;QACpB,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAS,EAAS,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE3D,OAAO,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;IAEM,MAAM,CAAC,MAAM,CAChB,MAAM,GAAG,cAAc,EACvB,eAAyB,EAAE;QAE3B,OAAO,IAAI,YAAY,CACnB,IAAA,sBAAc,EAAC,WAAW,CAAC,EAC3B,MAAM,EACN,YAAY,CACf,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,GAAG;QACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAU,CAAC;QAC9C,MAAM,YAAY,GACd,IAAI,CAAC,MAAM,KAAK,cAAc;YAC1B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,IAAI,CAAC,WAAW,CACZ,MAAkC,EAClC,GAAG,IAAI,CAAC,MAAM,GAAG,CACpB,CAAC;QAEZ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,IAAA,kCAAuB,EAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;SAC5D;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,WAAW,CAAC,MAAqB,EAAE,MAAc;QACrD,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QAE3B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACtB,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACxB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;aAC7C;SACJ;QAED,OAAO,MAA2B,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,SAAS;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;SAC3B;QAED,OAAO,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,sBAAsB;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAY,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACpE,CAAC;CACJ;AA1FD,oCA0FC"}
@@ -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,10 @@
1
+ export declare enum MediaType {
2
+ APPLICATION_JSON = "application/json;charset=UTF-8",
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
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediatypes.js","sourceRoot":"","sources":["../../../src/aws/types/mediatypes.ts"],"names":[],"mappings":";;;AAAA,yEAAyE;AACzE,IAAY,SASX;AATD,WAAY,SAAS;IACjB,gEAAmD,CAAA;IACnD,gDAAmC,CAAA;IACnC,uEAA0D,CAAA;IAC1D,wCAA2B,CAAA;IAC3B,sCAAyB,CAAA;IACzB,sCAAyB,CAAA;IACzB,oCAAuB,CAAA;IACvB,kCAAqB,CAAA;AACzB,CAAC,EATW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QASpB"}
@@ -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"}