cdk-serverless 1.1.44 → 2.0.0
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.
- package/README.md +3 -116
- package/docs/constructs/.nojekyll +1 -0
- package/docs/constructs/assets/highlight.css +92 -0
- package/docs/constructs/assets/main.js +58 -0
- package/docs/constructs/assets/search.js +1 -0
- package/docs/constructs/assets/style.css +1338 -0
- package/docs/constructs/classes/AssetCdn.html +165 -0
- package/docs/constructs/classes/BaseApi.html +152 -0
- package/docs/constructs/classes/CognitoAuthentication.html +172 -0
- package/docs/constructs/classes/LambdaFunction.html +1101 -0
- package/docs/constructs/classes/RestApi.html +306 -0
- package/docs/constructs/classes/SingleTableDatastore.html +155 -0
- package/docs/constructs/classes/Workflow.html +170 -0
- package/docs/constructs/index.html +122 -0
- package/docs/constructs/interfaces/AssetCdnProps.html +89 -0
- package/docs/constructs/interfaces/BaseApiProps.html +158 -0
- package/docs/constructs/interfaces/CognitoAuthenticationProps.html +151 -0
- package/docs/constructs/interfaces/ICognitoAuthentication.html +86 -0
- package/docs/constructs/interfaces/IJwtAuthentication.html +96 -0
- package/docs/constructs/interfaces/LambdaFunctionProps.html +189 -0
- package/docs/constructs/interfaces/LambdaTracingOptions.html +85 -0
- package/docs/constructs/interfaces/RestApiProps.html +227 -0
- package/docs/constructs/interfaces/SingleTableDatastoreProps.html +109 -0
- package/docs/constructs/interfaces/SingleTableDesign.html +113 -0
- package/docs/constructs/interfaces/WorkflowProps.html +105 -0
- package/docs/constructs/modules.html +85 -0
- package/docs/constructs/types/LambdaOptions.html +58 -0
- package/docs/lambda/.nojekyll +1 -0
- package/docs/lambda/assets/highlight.css +36 -0
- package/docs/lambda/assets/main.js +58 -0
- package/docs/lambda/assets/search.js +1 -0
- package/docs/lambda/assets/style.css +1338 -0
- package/docs/lambda/classes/auth.ApiGatewayv1CognitoAuthorizer.html +323 -0
- package/docs/lambda/classes/auth.ApiGatewayv1JwtAuthorizer.html +322 -0
- package/docs/lambda/classes/auth.ApiGatewayv2CognitoAuthorizer.html +324 -0
- package/docs/lambda/classes/auth.ApiGatewayv2JwtAuthorizer.html +320 -0
- package/docs/lambda/classes/auth.AppSyncCognitoAuthorizer.html +314 -0
- package/docs/lambda/classes/auth.CognitoAuthorizer.html +303 -0
- package/docs/lambda/classes/auth.JwtAuthorizer.html +298 -0
- package/docs/lambda/classes/errors.BadRequestError.html +193 -0
- package/docs/lambda/classes/errors.ForbiddenError.html +193 -0
- package/docs/lambda/classes/errors.HttpError.html +199 -0
- package/docs/lambda/classes/errors.NotFoundError.html +193 -0
- package/docs/lambda/classes/errors.UnauthenticatedError.html +193 -0
- package/docs/lambda/functions/api.createAppSyncHandler.html +98 -0
- package/docs/lambda/functions/api.createHttpHandler.html +95 -0
- package/docs/lambda/functions/api.createOpenApiHandler.html +95 -0
- package/docs/lambda/functions/api.createOpenApiHandlerWithRequestBody.html +95 -0
- package/docs/lambda/functions/api.createOpenApiHandlerWithRequestBodyNoResponse.html +93 -0
- package/docs/lambda/index.html +140 -0
- package/docs/lambda/interfaces/api.AppSyncHandlerContext.html +123 -0
- package/docs/lambda/interfaces/api.HttpHandlerContext.html +122 -0
- package/docs/lambda/interfaces/api.HttpResponseContext.html +117 -0
- package/docs/lambda/interfaces/api.Operation.html +109 -0
- package/docs/lambda/interfaces/api.OperationWithRequestBody.html +123 -0
- package/docs/lambda/modules/api.html +100 -0
- package/docs/lambda/modules/auth.html +88 -0
- package/docs/lambda/modules/errors.html +86 -0
- package/docs/lambda/modules.html +81 -0
- package/docs/lambda/types/api.APIGatewayv1Handler.html +79 -0
- package/docs/lambda/types/api.AppSyncHandler.html +100 -0
- package/docs/lambda/types/api.HttpHandler.html +101 -0
- package/docs/projen/.nojekyll +1 -0
- package/docs/projen/assets/highlight.css +85 -0
- package/docs/projen/assets/main.js +58 -0
- package/docs/projen/assets/search.js +1 -0
- package/docs/projen/assets/style.css +1338 -0
- package/docs/projen/classes/Datastore.html +180 -0
- package/docs/projen/classes/RestApi.html +184 -0
- package/docs/projen/classes/ServerlessProject.html +1246 -0
- package/docs/projen/classes/Workflow.html +178 -0
- package/docs/projen/index.html +112 -0
- package/docs/projen/interfaces/DatastoreOptions.html +75 -0
- package/docs/projen/interfaces/RestApiOptions.html +75 -0
- package/docs/projen/interfaces/ServerlessProjectOptions.html +1921 -0
- package/docs/projen/interfaces/WorkflowOptions.html +75 -0
- package/docs/projen/modules.html +65 -0
- package/docs/projen/variables/PACKAGE_NAME.html +48 -0
- package/lib/constructs/asset-cdn.js +2 -1
- package/lib/constructs/{auth.d.ts → authentication.d.ts} +32 -15
- package/lib/constructs/authentication.js +136 -0
- package/lib/constructs/base-api.d.ts +10 -21
- package/lib/constructs/base-api.js +2 -37
- package/lib/constructs/func.d.ts +6 -25
- package/lib/constructs/func.js +16 -37
- package/lib/constructs/index.d.ts +4 -6
- package/lib/constructs/index.js +5 -7
- package/lib/constructs/rest-api.d.ts +73 -0
- package/lib/constructs/rest-api.js +278 -0
- package/lib/constructs/table.d.ts +25 -6
- package/lib/constructs/table.js +12 -70
- package/lib/constructs/workflow.d.ts +18 -0
- package/lib/constructs/workflow.js +58 -0
- package/lib/lambda/auth.d.ts +144 -0
- package/lib/lambda/auth.js +309 -0
- package/lib/lambda/errors.d.ts +16 -0
- package/lib/lambda/errors.js +35 -0
- package/lib/lambda/handler.d.ts +90 -0
- package/lib/lambda/handler.js +217 -0
- package/lib/lambda/index.d.ts +3 -0
- package/lib/lambda/index.js +30 -0
- package/lib/projen/core.d.ts +4 -14
- package/lib/projen/core.js +25 -29
- package/lib/projen/datastore.d.ts +13 -0
- package/lib/projen/datastore.js +145 -0
- package/lib/projen/index.d.ts +3 -2
- package/lib/projen/index.js +5 -3
- package/lib/projen/rest-api.d.ts +13 -0
- package/lib/projen/rest-api.js +127 -0
- package/lib/projen/workflow.d.ts +18 -0
- package/lib/projen/workflow.js +99 -0
- package/package.json +44 -35
- package/CHANGELOG.md +0 -170
- package/img/autocomplete.gif +0 -0
- package/lib/constructs/auth.js +0 -135
- package/lib/constructs/graphql-api.d.ts +0 -44
- package/lib/constructs/graphql-api.js +0 -221
- package/lib/constructs/http-api.d.ts +0 -58
- package/lib/constructs/http-api.js +0 -242
- package/lib/constructs/monitoring.d.ts +0 -23
- package/lib/constructs/monitoring.js +0 -47
- package/lib/constructs/scheduled-func.d.ts +0 -63
- package/lib/constructs/scheduled-func.js +0 -54
- package/lib/constructs/webhook.d.ts +0 -33
- package/lib/constructs/webhook.js +0 -86
- package/lib/projen/graphql-api.d.ts +0 -7
- package/lib/projen/graphql-api.js +0 -58
- package/lib/projen/http-api.d.ts +0 -7
- package/lib/projen/http-api.js +0 -43
- package/lib/types/index.d.ts +0 -1
- package/lib/types/index.js +0 -18
- package/lib/types/table.d.ts +0 -34
- package/lib/types/table.js +0 -31
- package/version.json +0 -3
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.RestApi = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const yaml = __importStar(require("js-yaml"));
|
|
29
|
+
const pj = __importStar(require("projen"));
|
|
30
|
+
const core_1 = require("./core");
|
|
31
|
+
class RestApi extends pj.Component {
|
|
32
|
+
constructor(app, options) {
|
|
33
|
+
super(app);
|
|
34
|
+
this.options = options;
|
|
35
|
+
const generateTask = app.addTask(`generate:api:${options.apiName.toLowerCase()}`, {
|
|
36
|
+
exec: `openapi-typescript ${options.definitionFile} --output src/generated/rest.${options.apiName.toLowerCase()}-model.generated.ts`,
|
|
37
|
+
description: 'Generate Types from the OpenAPI specification',
|
|
38
|
+
});
|
|
39
|
+
app.defaultTask.spawn(generateTask);
|
|
40
|
+
const apiSpec = yaml.load(fs.readFileSync(options.definitionFile).toString());
|
|
41
|
+
for (const path in apiSpec.paths) {
|
|
42
|
+
if (Object.prototype.hasOwnProperty.call(apiSpec.paths, path)) {
|
|
43
|
+
const pathItem = apiSpec.paths[path];
|
|
44
|
+
for (const method in pathItem) {
|
|
45
|
+
if (Object.prototype.hasOwnProperty.call(pathItem, method) &&
|
|
46
|
+
['get', 'post', 'put', 'delete', 'patch', 'options', 'head'].indexOf(method) >= 0) {
|
|
47
|
+
// Add all operations
|
|
48
|
+
this.addRestResource(apiSpec, path, method);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (!fs.existsSync('./src/generated')) {
|
|
54
|
+
fs.mkdirSync('./src/generated');
|
|
55
|
+
}
|
|
56
|
+
this.createConstructFile(`./src/generated/rest.${options.apiName.toLowerCase()}-api.generated.ts`);
|
|
57
|
+
}
|
|
58
|
+
createConstructFile(fileName) {
|
|
59
|
+
fs.writeFileSync(fileName, `/* eslint-disable */
|
|
60
|
+
import { Construct } from 'constructs';
|
|
61
|
+
import { RestApi, RestApiProps } from '${core_1.PACKAGE_NAME}/lib/constructs';
|
|
62
|
+
import { operations, paths } from './rest.${this.options.apiName.toLowerCase()}-model.generated';
|
|
63
|
+
|
|
64
|
+
export interface ${this.options.apiName}RestApiProps extends Omit<RestApiProps<operations>, 'definitionFileName' | 'apiName'> {
|
|
65
|
+
//
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export class ${this.options.apiName}RestApi extends RestApi<paths, operations> {
|
|
69
|
+
|
|
70
|
+
constructor(scope: Construct, id: string, props: ${this.options.apiName}RestApiProps) {
|
|
71
|
+
super(scope, id, {
|
|
72
|
+
...props,
|
|
73
|
+
apiName: '${this.options.apiName}',
|
|
74
|
+
definitionFileName: '${this.options.definitionFile}',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
}`, {
|
|
79
|
+
encoding: 'utf-8',
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
addRestResource(apiSpec, path, method) {
|
|
83
|
+
const oaPath = apiSpec.paths[path];
|
|
84
|
+
const operation = oaPath[method];
|
|
85
|
+
const operationId = operation.operationId;
|
|
86
|
+
// const description = `${method as string} ${path as string} - ${operation.summary}`;
|
|
87
|
+
const entryFile = `./src/lambda/rest.${this.options.apiName.toLowerCase()}.${operationId}.ts`;
|
|
88
|
+
if (!fs.existsSync(entryFile)) {
|
|
89
|
+
if (!fs.existsSync('./src/lambda')) {
|
|
90
|
+
fs.mkdirSync('./src/lambda');
|
|
91
|
+
}
|
|
92
|
+
this.createEntryFile(entryFile, method, operationId);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
createEntryFile(entryFile, method, operationId) {
|
|
96
|
+
let factoryCall;
|
|
97
|
+
let logs;
|
|
98
|
+
switch (method.toLowerCase()) {
|
|
99
|
+
case 'post':
|
|
100
|
+
case 'put':
|
|
101
|
+
case 'patch':
|
|
102
|
+
factoryCall = `api.createOpenApiHandlerWithRequestBody<operations['${operationId}']>(async (ctx, data) => {`;
|
|
103
|
+
logs = 'ctx.logger.info(JSON.stringify(data));';
|
|
104
|
+
break;
|
|
105
|
+
case 'options':
|
|
106
|
+
case 'delete':
|
|
107
|
+
case 'get':
|
|
108
|
+
case 'head':
|
|
109
|
+
default:
|
|
110
|
+
factoryCall = `api.createOpenApiHandler<operations['${operationId}']>(async (ctx) => {`;
|
|
111
|
+
logs = '';
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
fs.writeFileSync(entryFile, `import { api, errors } from '${core_1.PACKAGE_NAME}/lib/lambda';
|
|
115
|
+
import { operations } from '../generated/rest.${this.options.apiName.toLowerCase()}-model.generated';
|
|
116
|
+
|
|
117
|
+
export const handler = ${factoryCall}
|
|
118
|
+
ctx.logger.info(JSON.stringify(ctx.event));
|
|
119
|
+
${logs}
|
|
120
|
+
throw new errors.HttpError(500, 'Not yet implemented');
|
|
121
|
+
});`, {
|
|
122
|
+
encoding: 'utf-8',
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.RestApi = RestApi;
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVuL3Jlc3QtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLDhDQUFnQztBQUVoQywyQ0FBNkI7QUFDN0IsaUNBQXNDO0FBT3RDLE1BQWEsT0FBUSxTQUFRLEVBQUUsQ0FBQyxTQUFTO0lBRXZDLFlBQVksR0FBa0MsRUFBWSxPQUF1QjtRQUMvRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFENkMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFHL0UsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO1lBQ2hGLElBQUksRUFBRSxzQkFBc0IsT0FBTyxDQUFDLGNBQWMsZ0NBQWdDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLHFCQUFxQjtZQUNwSSxXQUFXLEVBQUUsK0NBQStDO1NBQzdELENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxXQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXJDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQWEsQ0FBQztRQUMxRixLQUFLLE1BQU0sSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDaEMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDN0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckMsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFR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UyxFQUFFLGdDQUFnQyxtQkFBWTtnREFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFOzt5QkFFekQsV0FBVzs7SUFFaEMsSUFBSTs7SUFFSixFQUFFO1lBQ0EsUUFBUSxFQUFFLE9BQU87U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUVGO0FBdkdELDBCQXVHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHlhbWwgZnJvbSAnanMteWFtbCc7XG5pbXBvcnQgeyBPcGVuQVBJMywgT3BlcmF0aW9uT2JqZWN0LCBQYXRoSXRlbU9iamVjdCB9IGZyb20gJ29wZW5hcGktdHlwZXNjcmlwdCc7XG5pbXBvcnQgKiBhcyBwaiBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgUEFDS0FHRV9OQU1FIH0gZnJvbSAnLi9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXN0QXBpT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGFwaU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVmaW5pdGlvbkZpbGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFJlc3RBcGkgZXh0ZW5kcyBwai5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKGFwcDogcGouYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAsIHByb3RlY3RlZCBvcHRpb25zOiBSZXN0QXBpT3B0aW9ucykge1xuICAgIHN1cGVyKGFwcCk7XG5cbiAgICBjb25zdCBnZW5lcmF0ZVRhc2sgPSBhcHAuYWRkVGFzayhgZ2VuZXJhdGU6YXBpOiR7b3B0aW9ucy5hcGlOYW1lLnRvTG93ZXJDYXNlKCl9YCwge1xuICAgICAgZXhlYzogYG9wZW5hcGktdHlwZXNjcmlwdCAke29wdGlvbnMuZGVmaW5pdGlvbkZpbGV9IC0tb3V0cHV0IHNyYy9nZW5lcmF0ZWQvcmVzdC4ke29wdGlvbnMuYXBpTmFtZS50b0xvd2VyQ2FzZSgpfS1tb2RlbC5nZW5lcmF0ZWQudHNgLFxuICAgICAgZGVzY3JpcHRpb246ICdHZW5lcmF0ZSBUeXBlcyBmcm9tIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24nLFxuICAgIH0pO1xuICAgIGFwcC5kZWZhdWx0VGFzayEuc3Bhd24oZ2VuZXJhdGVUYXNrKTtcblxuICAgIGNvbnN0IGFwaVNwZWMgPSB5YW1sLmxvYWQoZnMucmVhZEZpbGVTeW5jKG9wdGlvbnMuZGVmaW5pdGlvbkZpbGUpLnRvU3RyaW5nKCkpIGFzIE9wZW5BUEkzO1xuICAgIGZvciAoY29uc3QgcGF0aCBpbiBhcGlTcGVjLnBhdGhzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGFwaVNwZWMucGF0aHMsIHBhdGgpKSB7XG4gICAgICAgIGNvbnN0IHBhdGhJdGVtID0gYXBpU3BlYy5wYXRoc1twYXRoXTtcbiAgICAgICAgZm9yIChjb25zdCBtZXRob2QgaW4gcGF0aEl0ZW0pIHtcbiAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhdGhJdGVtLCBtZXRob2QpICYmXG4gICAgICAgICAgICBbJ2dldCcsICdwb3N0JywgJ3B1dCcsICdkZWxldGUnLCAncGF0Y2gnLCAnb3B0aW9ucycsICdoZWFkJ10uaW5kZXhPZihtZXRob2QpID49IDApIHtcbiAgICAgICAgICAgIC8vIEFkZCBhbGwgb3BlcmF0aW9uc1xuICAgICAgICAgICAgdGhpcy5hZGRSZXN0UmVzb3VyY2UoYXBpU3BlYywgcGF0aCwgbWV0aG9kKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKCcuL3NyYy9nZW5lcmF0ZWQnKSkge1xuICAgICAgZnMubWtkaXJTeW5jKCcuL3NyYy9nZW5lcmF0ZWQnKTtcbiAgICB9XG4gICAgdGhpcy5jcmVhdGVDb25zdHJ1Y3RGaWxlKGAuL3NyYy9nZW5lcmF0ZWQvcmVzdC4ke29wdGlvbnMuYXBpTmFtZS50b0xvd2VyQ2FzZSgpfS1hcGkuZ2VuZXJhdGVkLnRzYCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQ29uc3RydWN0RmlsZShmaWxlTmFtZTogc3RyaW5nKSB7XG5cbiAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVOYW1lLCBgLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUmVzdEFwaSwgUmVzdEFwaVByb3BzIH0gZnJvbSAnJHtQQUNLQUdFX05BTUV9L2xpYi9jb25zdHJ1Y3RzJztcbmltcG9ydCB7IG9wZXJhdGlvbnMsIHBhdGhzIH0gZnJvbSAnLi9yZXN0LiR7dGhpcy5vcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX0tbW9kZWwuZ2VuZXJhdGVkJztcblxuZXhwb3J0IGludGVyZmFjZSAke3RoaXMub3B0aW9ucy5hcGlOYW1lfVJlc3RBcGlQcm9wcyBleHRlbmRzIE9taXQ8UmVzdEFwaVByb3BzPG9wZXJhdGlvbnM+LCAnZGVmaW5pdGlvbkZpbGVOYW1lJyB8ICdhcGlOYW1lJz4ge1xuICAvL1xufVxuXG5leHBvcnQgY2xhc3MgJHt0aGlzLm9wdGlvbnMuYXBpTmFtZX1SZXN0QXBpIGV4dGVuZHMgUmVzdEFwaTxwYXRocywgb3BlcmF0aW9ucz4ge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiAke3RoaXMub3B0aW9ucy5hcGlOYW1lfVJlc3RBcGlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBhcGlOYW1lOiAnJHt0aGlzLm9wdGlvbnMuYXBpTmFtZX0nLFxuICAgICAgZGVmaW5pdGlvbkZpbGVOYW1lOiAnJHt0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGV9JyxcbiAgICB9KTtcbiAgfVxuXG59YCwge1xuICAgICAgZW5jb2Rpbmc6ICd1dGYtOCcsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkUmVzdFJlc291cmNlKGFwaVNwZWM6IE9wZW5BUEkzLCBwYXRoOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nKSB7XG4gICAgY29uc3Qgb2FQYXRoID0gYXBpU3BlYy5wYXRocyFbcGF0aF07XG4gICAgY29uc3Qgb3BlcmF0aW9uID0gb2FQYXRoW21ldGhvZCBhcyBrZXlvZiBQYXRoSXRlbU9iamVjdF0gYXMgT3BlcmF0aW9uT2JqZWN0O1xuICAgIGNvbnN0IG9wZXJhdGlvbklkID0gb3BlcmF0aW9uLm9wZXJhdGlvbklkITtcbiAgICAvLyBjb25zdCBkZXNjcmlwdGlvbiA9IGAke21ldGhvZCBhcyBzdHJpbmd9ICR7cGF0aCBhcyBzdHJpbmd9IC0gJHtvcGVyYXRpb24uc3VtbWFyeX1gO1xuXG4gICAgY29uc3QgZW50cnlGaWxlID0gYC4vc3JjL2xhbWJkYS9yZXN0LiR7dGhpcy5vcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX0uJHtvcGVyYXRpb25JZH0udHNgO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhlbnRyeUZpbGUpKSB7XG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoJy4vc3JjL2xhbWJkYScpKSB7XG4gICAgICAgIGZzLm1rZGlyU3luYygnLi9zcmMvbGFtYmRhJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmNyZWF0ZUVudHJ5RmlsZShlbnRyeUZpbGUsIG1ldGhvZCwgb3BlcmF0aW9uSWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVFbnRyeUZpbGUoZW50cnlGaWxlOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nLCBvcGVyYXRpb25JZDogc3RyaW5nKSB7XG4gICAgbGV0IGZhY3RvcnlDYWxsO1xuICAgIGxldCBsb2dzO1xuICAgIHN3aXRjaCAobWV0aG9kLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ3Bvc3QnOlxuICAgICAgY2FzZSAncHV0JzpcbiAgICAgIGNhc2UgJ3BhdGNoJzpcbiAgICAgICAgZmFjdG9yeUNhbGwgPSBgYXBpLmNyZWF0ZU9wZW5BcGlIYW5kbGVyV2l0aFJlcXVlc3RCb2R5PG9wZXJhdGlvbnNbJyR7b3BlcmF0aW9uSWR9J10+KGFzeW5jIChjdHgsIGRhdGEpID0+IHtgO1xuICAgICAgICBsb2dzID0gJ2N0eC5sb2dnZXIuaW5mbyhKU09OLnN0cmluZ2lmeShkYXRhKSk7JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvcHRpb25zJzpcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICBjYXNlICdnZXQnOlxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBmYWN0b3J5Q2FsbCA9IGBhcGkuY3JlYXRlT3BlbkFwaUhhbmRsZXI8b3BlcmF0aW9uc1snJHtvcGVyYXRpb25JZH0nXT4oYXN5bmMgKGN0eCkgPT4ge2A7XG4gICAgICAgIGxvZ3MgPSAnJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgZnMud3JpdGVGaWxlU3luYyhlbnRyeUZpbGUsIGBpbXBvcnQgeyBhcGksIGVycm9ycyB9IGZyb20gJyR7UEFDS0FHRV9OQU1FfS9saWIvbGFtYmRhJztcbmltcG9ydCB7IG9wZXJhdGlvbnMgfSBmcm9tICcuLi9nZW5lcmF0ZWQvcmVzdC4ke3RoaXMub3B0aW9ucy5hcGlOYW1lLnRvTG93ZXJDYXNlKCl9LW1vZGVsLmdlbmVyYXRlZCc7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gJHtmYWN0b3J5Q2FsbH1cbiAgY3R4LmxvZ2dlci5pbmZvKEpTT04uc3RyaW5naWZ5KGN0eC5ldmVudCkpO1xuICAke2xvZ3N9XG4gIHRocm93IG5ldyBlcnJvcnMuSHR0cEVycm9yKDUwMCwgJ05vdCB5ZXQgaW1wbGVtZW50ZWQnKTtcbn0pO2AsIHtcbiAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgIH0pO1xuICB9XG5cbn0iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as pj from 'projen';
|
|
2
|
+
export interface WorkflowOptions {
|
|
3
|
+
readonly workflowName: string;
|
|
4
|
+
readonly definitionFile: string;
|
|
5
|
+
}
|
|
6
|
+
interface VariableDefinition {
|
|
7
|
+
readonly fullName: string;
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly type: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class Workflow extends pj.Component {
|
|
12
|
+
protected options: WorkflowOptions;
|
|
13
|
+
constructor(app: pj.awscdk.AwsCdkTypeScriptApp, options: WorkflowOptions);
|
|
14
|
+
protected createConstructFile(fileName: string, matchedVariables: VariableDefinition[]): void;
|
|
15
|
+
protected renderStateConfigDefinition(def: VariableDefinition): string;
|
|
16
|
+
protected renderDefinitionSubstitution(def: VariableDefinition): string;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Workflow = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const pj = __importStar(require("projen"));
|
|
29
|
+
const core_1 = require("./core");
|
|
30
|
+
class Workflow extends pj.Component {
|
|
31
|
+
constructor(app, options) {
|
|
32
|
+
var _a;
|
|
33
|
+
super(app);
|
|
34
|
+
this.options = options;
|
|
35
|
+
const workflowDefinition = fs.readFileSync(options.definitionFile).toString();
|
|
36
|
+
const matches = (_a = workflowDefinition.match(/\$\{[a-zA-Z0-9#]*\}/g)) === null || _a === void 0 ? void 0 : _a.map(match => match.substring(2, match.length - 1));
|
|
37
|
+
const variables = (matches !== null && matches !== void 0 ? matches : []).map(varName => {
|
|
38
|
+
if (varName.indexOf('#') < 0) {
|
|
39
|
+
return { name: varName, fullName: varName, type: 'string' };
|
|
40
|
+
}
|
|
41
|
+
const [name, type] = varName.split('#');
|
|
42
|
+
return { name, type, fullName: varName };
|
|
43
|
+
});
|
|
44
|
+
this.createConstructFile(`./src/generated/workflow.${options.workflowName.toLowerCase()}.generated.ts`, variables);
|
|
45
|
+
}
|
|
46
|
+
createConstructFile(fileName, matchedVariables) {
|
|
47
|
+
fs.writeFileSync(fileName, `/* eslint-disable */
|
|
48
|
+
import * as constructs from 'constructs';
|
|
49
|
+
import { ITable } from 'aws-cdk-lib/aws-dynamodb';
|
|
50
|
+
import { IFunction } from 'aws-cdk-lib/aws-lambda';
|
|
51
|
+
import * as sls from '${core_1.PACKAGE_NAME}/lib/constructs';
|
|
52
|
+
|
|
53
|
+
export interface ${this.options.workflowName}WorkflowProps extends Omit<sls.WorkflowProps, 'definitionFileName' | 'definitionSubstitutions'> {
|
|
54
|
+
readonly stateConfig: {
|
|
55
|
+
${matchedVariables.map(v => this.renderStateConfigDefinition(v)).join('\n')}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export class ${this.options.workflowName}Workflow extends sls.Workflow {
|
|
60
|
+
|
|
61
|
+
constructor(scope: constructs.Construct, id: string, props: ${this.options.workflowName}WorkflowProps) {
|
|
62
|
+
super(scope, id, {
|
|
63
|
+
...props,
|
|
64
|
+
definitionFileName: '${this.options.definitionFile}',
|
|
65
|
+
definitionSubstitutions: {
|
|
66
|
+
${matchedVariables.map(v => this.renderDefinitionSubstitution(v)).join('\n')}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
}`, {
|
|
72
|
+
encoding: 'utf-8',
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
renderStateConfigDefinition(def) {
|
|
76
|
+
switch (def.type) {
|
|
77
|
+
case 'DynamoDBTable':
|
|
78
|
+
return `readonly ${def.name}: ITable;`;
|
|
79
|
+
case 'LambdaFunction':
|
|
80
|
+
return `readonly ${def.name}: IFunction;`;
|
|
81
|
+
case 'string':
|
|
82
|
+
default:
|
|
83
|
+
return `readonly ${def.name}: string;`;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
renderDefinitionSubstitution(def) {
|
|
87
|
+
switch (def.type) {
|
|
88
|
+
case 'DynamoDBTable':
|
|
89
|
+
return `'${def.fullName}': props.stateConfig.${def.name}.tableName,`;
|
|
90
|
+
case 'LambdaFunction':
|
|
91
|
+
return `'${def.fullName}': props.stateConfig.${def.name}.functionArn,`;
|
|
92
|
+
case 'string':
|
|
93
|
+
default:
|
|
94
|
+
return `'${def.fullName}': props.stateConfig.${def.name},`;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.Workflow = Workflow;
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVuL3dvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixpQ0FBc0M7QUFhdEMsTUFBYSxRQUFTLFNBQVEsRUFBRSxDQUFDLFNBQVM7SUFFeEMsWUFBWSxHQUFrQyxFQUFZLE9BQXdCOztRQUNoRixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFENkMsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFHaEYsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5RSxNQUFNLE9BQU8sR0FBRyxNQUFBLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQywwQ0FBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckgsTUFBTSxTQUFTLEdBQXlCLENBQUMsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO2FBQzdEO1lBQ0QsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyw0QkFBNEIsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JILENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxRQUFnQixFQUFFLGdCQUFzQztRQUNwRixFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTs7Ozt3QkFJUCxtQkFBWTs7bUJBRWpCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWTs7TUFFdEMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzs7OztlQUloRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7O2dFQUV3QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7Ozs2QkFHNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjOztVQUU5QyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzs7OztFQUtsRixFQUFFO1lBQ0UsUUFBUSxFQUFFLE9BQU87U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLDJCQUEyQixDQUFDLEdBQXVCO1FBQzNELFFBQVEsR0FBRyxDQUFDLElBQUksRUFBRTtZQUNoQixLQUFLLGVBQWU7Z0JBQ2xCLE9BQU8sWUFBWSxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUM7WUFDekMsS0FBSyxnQkFBZ0I7Z0JBQ25CLE9BQU8sWUFBWSxHQUFHLENBQUMsSUFBSSxjQUFjLENBQUM7WUFDNUMsS0FBSyxRQUFRLENBQUM7WUFDZDtnQkFDRSxPQUFPLFlBQVksR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVTLDRCQUE0QixDQUFDLEdBQXVCO1FBQzVELFFBQVEsR0FBRyxDQUFDLElBQUksRUFBRTtZQUNoQixLQUFLLGVBQWU7Z0JBQ2xCLE9BQU8sSUFBSSxHQUFHLENBQUMsUUFBUSx3QkFBd0IsR0FBRyxDQUFDLElBQUksYUFBYSxDQUFDO1lBQ3ZFLEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPLElBQUksR0FBRyxDQUFDLFFBQVEsd0JBQXdCLEdBQUcsQ0FBQyxJQUFJLGVBQWUsQ0FBQztZQUN6RSxLQUFLLFFBQVEsQ0FBQztZQUNkO2dCQUNFLE9BQU8sSUFBSSxHQUFHLENBQUMsUUFBUSx3QkFBd0IsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO1NBQzlEO0lBQ0gsQ0FBQztDQUVGO0FBeEVELDRCQXdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBqIGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBQQUNLQUdFX05BTUUgfSBmcm9tICcuL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBkZWZpbml0aW9uRmlsZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVmFyaWFibGVEZWZpbml0aW9uIHtcbiAgcmVhZG9ubHkgZnVsbE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBXb3JrZmxvdyBleHRlbmRzIHBqLkNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoYXBwOiBwai5hd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJvdGVjdGVkIG9wdGlvbnM6IFdvcmtmbG93T3B0aW9ucykge1xuICAgIHN1cGVyKGFwcCk7XG5cbiAgICBjb25zdCB3b3JrZmxvd0RlZmluaXRpb24gPSBmcy5yZWFkRmlsZVN5bmMob3B0aW9ucy5kZWZpbml0aW9uRmlsZSkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBtYXRjaGVzID0gd29ya2Zsb3dEZWZpbml0aW9uLm1hdGNoKC9cXCRcXHtbYS16QS1aMC05I10qXFx9L2cpPy5tYXAobWF0Y2ggPT4gbWF0Y2guc3Vic3RyaW5nKDIsIG1hdGNoLmxlbmd0aCAtIDEpKTtcbiAgICBjb25zdCB2YXJpYWJsZXM6IFZhcmlhYmxlRGVmaW5pdGlvbltdID0gKG1hdGNoZXMgPz8gW10pLm1hcCh2YXJOYW1lID0+IHtcbiAgICAgIGlmICh2YXJOYW1lLmluZGV4T2YoJyMnKSA8IDApIHtcbiAgICAgICAgcmV0dXJuIHsgbmFtZTogdmFyTmFtZSwgZnVsbE5hbWU6IHZhck5hbWUsIHR5cGU6ICdzdHJpbmcnIH07XG4gICAgICB9XG4gICAgICBjb25zdCBbbmFtZSwgdHlwZV0gPSB2YXJOYW1lLnNwbGl0KCcjJyk7XG4gICAgICByZXR1cm4geyBuYW1lLCB0eXBlLCBmdWxsTmFtZTogdmFyTmFtZSB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5jcmVhdGVDb25zdHJ1Y3RGaWxlKGAuL3NyYy9nZW5lcmF0ZWQvd29ya2Zsb3cuJHtvcHRpb25zLndvcmtmbG93TmFtZS50b0xvd2VyQ2FzZSgpfS5nZW5lcmF0ZWQudHNgLCB2YXJpYWJsZXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUNvbnN0cnVjdEZpbGUoZmlsZU5hbWU6IHN0cmluZywgbWF0Y2hlZFZhcmlhYmxlczogVmFyaWFibGVEZWZpbml0aW9uW10pIHtcbiAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVOYW1lLCBgLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJVGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgSUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBzbHMgZnJvbSAnJHtQQUNLQUdFX05BTUV9L2xpYi9jb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSAke3RoaXMub3B0aW9ucy53b3JrZmxvd05hbWV9V29ya2Zsb3dQcm9wcyBleHRlbmRzIE9taXQ8c2xzLldvcmtmbG93UHJvcHMsICdkZWZpbml0aW9uRmlsZU5hbWUnIHwgJ2RlZmluaXRpb25TdWJzdGl0dXRpb25zJz4ge1xuICByZWFkb25seSBzdGF0ZUNvbmZpZzoge1xuICAgICR7bWF0Y2hlZFZhcmlhYmxlcy5tYXAodiA9PiB0aGlzLnJlbmRlclN0YXRlQ29uZmlnRGVmaW5pdGlvbih2KSkuam9pbignXFxuJyl9XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyAke3RoaXMub3B0aW9ucy53b3JrZmxvd05hbWV9V29ya2Zsb3cgZXh0ZW5kcyBzbHMuV29ya2Zsb3cge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7dGhpcy5vcHRpb25zLndvcmtmbG93TmFtZX1Xb3JrZmxvd1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRlZmluaXRpb25GaWxlTmFtZTogJyR7dGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlfScsXG4gICAgICBkZWZpbml0aW9uU3Vic3RpdHV0aW9uczoge1xuICAgICAgICAke21hdGNoZWRWYXJpYWJsZXMubWFwKHYgPT4gdGhpcy5yZW5kZXJEZWZpbml0aW9uU3Vic3RpdHV0aW9uKHYpKS5qb2luKCdcXG4nKX1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59YCwge1xuICAgICAgZW5jb2Rpbmc6ICd1dGYtOCcsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyU3RhdGVDb25maWdEZWZpbml0aW9uKGRlZjogVmFyaWFibGVEZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKGRlZi50eXBlKSB7XG4gICAgICBjYXNlICdEeW5hbW9EQlRhYmxlJzpcbiAgICAgICAgcmV0dXJuIGByZWFkb25seSAke2RlZi5uYW1lfTogSVRhYmxlO2A7XG4gICAgICBjYXNlICdMYW1iZGFGdW5jdGlvbic6XG4gICAgICAgIHJldHVybiBgcmVhZG9ubHkgJHtkZWYubmFtZX06IElGdW5jdGlvbjtgO1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBgcmVhZG9ubHkgJHtkZWYubmFtZX06IHN0cmluZztgO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJEZWZpbml0aW9uU3Vic3RpdHV0aW9uKGRlZjogVmFyaWFibGVEZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKGRlZi50eXBlKSB7XG4gICAgICBjYXNlICdEeW5hbW9EQlRhYmxlJzpcbiAgICAgICAgcmV0dXJuIGAnJHtkZWYuZnVsbE5hbWV9JzogcHJvcHMuc3RhdGVDb25maWcuJHtkZWYubmFtZX0udGFibGVOYW1lLGA7XG4gICAgICBjYXNlICdMYW1iZGFGdW5jdGlvbic6XG4gICAgICAgIHJldHVybiBgJyR7ZGVmLmZ1bGxOYW1lfSc6IHByb3BzLnN0YXRlQ29uZmlnLiR7ZGVmLm5hbWV9LmZ1bmN0aW9uQXJuLGA7XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGAnJHtkZWYuZnVsbE5hbWV9JzogcHJvcHMuc3RhdGVDb25maWcuJHtkZWYubmFtZX0sYDtcbiAgICB9XG4gIH1cblxufSJdfQ==
|
package/package.json
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"clobber": "npx projen clobber",
|
|
11
11
|
"compile": "npx projen compile",
|
|
12
12
|
"default": "npx projen default",
|
|
13
|
+
"docgen": "npx projen docgen",
|
|
13
14
|
"eject": "npx projen eject",
|
|
14
15
|
"eslint": "npx projen eslint",
|
|
15
16
|
"package": "npx projen package",
|
|
@@ -18,7 +19,6 @@
|
|
|
18
19
|
"pre-compile": "npx projen pre-compile",
|
|
19
20
|
"release": "npx projen release",
|
|
20
21
|
"test": "npx projen test",
|
|
21
|
-
"test:update": "npx projen test:update",
|
|
22
22
|
"test:watch": "npx projen test:watch",
|
|
23
23
|
"unbump": "npx projen unbump",
|
|
24
24
|
"upgrade": "npx projen upgrade",
|
|
@@ -32,60 +32,69 @@
|
|
|
32
32
|
"organization": true
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
39
|
-
"@types/aws-lambda": "^8.10.97",
|
|
40
|
-
"@types/jest": "^26.0.24",
|
|
35
|
+
"@hapi/boom": "^10.0.1",
|
|
36
|
+
"@taimos/projen": "^0.0.187",
|
|
37
|
+
"@types/aws-lambda": "^8.10.114",
|
|
38
|
+
"@types/jest": "^29.5.0",
|
|
41
39
|
"@types/js-yaml": "^4.0.5",
|
|
42
|
-
"@types/
|
|
40
|
+
"@types/jsonwebtoken": "^9.0.1",
|
|
41
|
+
"@types/jwk-to-pem": "^2.0.1",
|
|
42
|
+
"@types/lambda-log": "^2.2.1",
|
|
43
|
+
"@types/node": "^16",
|
|
44
|
+
"@types/uuid": "^9.0.1",
|
|
43
45
|
"@typescript-eslint/eslint-plugin": "^5",
|
|
44
46
|
"@typescript-eslint/parser": "^5",
|
|
45
|
-
"aws-cdk-lib": "2.
|
|
46
|
-
"constructs": "10.0.
|
|
47
|
+
"aws-cdk-lib": "2.60.0",
|
|
48
|
+
"constructs": "10.0.5",
|
|
49
|
+
"dynamodb-onetable": "~2.5.1",
|
|
47
50
|
"eslint": "^8",
|
|
48
|
-
"eslint-import-resolver-node": "^0.3.
|
|
49
|
-
"eslint-import-resolver-typescript": "^
|
|
50
|
-
"eslint-plugin-import": "^2.
|
|
51
|
-
"jest": "^
|
|
52
|
-
"jest-junit": "^
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"projen": "^0.
|
|
51
|
+
"eslint-import-resolver-node": "^0.3.7",
|
|
52
|
+
"eslint-import-resolver-typescript": "^3.5.5",
|
|
53
|
+
"eslint-plugin-import": "^2.27.5",
|
|
54
|
+
"jest": "^29.5.0",
|
|
55
|
+
"jest-junit": "^15",
|
|
56
|
+
"npm-check-updates": "^16",
|
|
57
|
+
"openapi-typescript": "6.2.1",
|
|
58
|
+
"projen": "^0.71.16",
|
|
56
59
|
"standard-version": "^9",
|
|
57
|
-
"ts-jest": "^
|
|
58
|
-
"ts-node": "^10.
|
|
60
|
+
"ts-jest": "^29.1.0",
|
|
61
|
+
"ts-node": "^10.9.1",
|
|
62
|
+
"typedoc": "^0.24.4",
|
|
59
63
|
"typescript": "^4.4.0"
|
|
60
64
|
},
|
|
61
65
|
"peerDependencies": {
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"constructs": "^10.0.0"
|
|
66
|
+
"aws-cdk-lib": "^2.60.0",
|
|
67
|
+
"constructs": "^10.0.5",
|
|
68
|
+
"dynamodb-onetable": "^2.6.2",
|
|
69
|
+
"openapi-typescript": "^6.2.1"
|
|
67
70
|
},
|
|
68
71
|
"dependencies": {
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"date-fns": "^2.28.0",
|
|
72
|
-
"esbuild": "^0.14.39",
|
|
72
|
+
"axios": "^1.3.5",
|
|
73
|
+
"date-fns": "^2.29.3",
|
|
73
74
|
"js-yaml": "^4.1.0",
|
|
74
|
-
"
|
|
75
|
-
"
|
|
75
|
+
"jsonwebtoken": "^9.0.0",
|
|
76
|
+
"jwk-to-pem": "^2.0.5",
|
|
77
|
+
"lambda-log": "^3.1.0",
|
|
78
|
+
"projen": "^0.71.16",
|
|
79
|
+
"uuid": "^9.0.0"
|
|
76
80
|
},
|
|
77
81
|
"keywords": [
|
|
78
82
|
"aws",
|
|
83
|
+
"cdk",
|
|
79
84
|
"dynamodb",
|
|
80
|
-
"lambda"
|
|
85
|
+
"lambda",
|
|
86
|
+
"serverless"
|
|
81
87
|
],
|
|
88
|
+
"engines": {
|
|
89
|
+
"node": ">= v16.14.1"
|
|
90
|
+
},
|
|
82
91
|
"main": "lib/index.js",
|
|
83
92
|
"license": "Apache-2.0",
|
|
84
|
-
"version": "
|
|
93
|
+
"version": "2.0.0",
|
|
85
94
|
"jest": {
|
|
86
95
|
"testMatch": [
|
|
87
96
|
"<rootDir>/src/**/__tests__/**/*.ts?(x)",
|
|
88
|
-
"<rootDir>/(test|src)
|
|
97
|
+
"<rootDir>/(test|src)/**/*(*.)@(spec|test).ts?(x)"
|
|
89
98
|
],
|
|
90
99
|
"clearMocks": true,
|
|
91
100
|
"collectCoverage": true,
|
|
@@ -124,4 +133,4 @@
|
|
|
124
133
|
},
|
|
125
134
|
"types": "lib/index.d.ts",
|
|
126
135
|
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
|
|
127
|
-
}
|
|
136
|
+
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
-
|
|
5
|
-
### [0.0.58](https://github.com/taimos/cdk-serverless/compare/v0.0.57...v0.0.58) (2021-04-23)
|
|
6
|
-
|
|
7
|
-
### [0.0.57](https://github.com/taimos/cdk-serverless/compare/v0.0.56...v0.0.57) (2021-04-22)
|
|
8
|
-
|
|
9
|
-
### [0.0.56](https://github.com/taimos/cdk-serverless/compare/v0.0.55...v0.0.56) (2021-04-20)
|
|
10
|
-
|
|
11
|
-
### [0.0.55](https://github.com/taimos/cdk-serverless/compare/v0.0.54...v0.0.55) (2021-04-18)
|
|
12
|
-
|
|
13
|
-
### [0.0.54](https://github.com/taimos/cdk-serverless/compare/v0.0.53...v0.0.54) (2021-04-16)
|
|
14
|
-
|
|
15
|
-
### [0.0.53](https://github.com/taimos/cdk-serverless/compare/v0.0.52...v0.0.53) (2021-04-16)
|
|
16
|
-
|
|
17
|
-
### [0.0.52](https://github.com/taimos/cdk-serverless/compare/v0.0.51...v0.0.52) (2021-04-16)
|
|
18
|
-
|
|
19
|
-
### [0.0.51](https://github.com/taimos/cdk-serverless/compare/v0.0.50...v0.0.51) (2021-04-15)
|
|
20
|
-
|
|
21
|
-
### [0.0.50](https://github.com/taimos/cdk-serverless/compare/v0.0.49...v0.0.50) (2021-04-15)
|
|
22
|
-
|
|
23
|
-
### [0.0.49](https://github.com/taimos/cdk-serverless/compare/v0.0.48...v0.0.49) (2021-04-15)
|
|
24
|
-
|
|
25
|
-
### [0.0.48](https://github.com/taimos/cdk-serverless/compare/v0.0.47...v0.0.48) (2021-04-15)
|
|
26
|
-
|
|
27
|
-
### [0.0.47](https://github.com/taimos/cdk-serverless/compare/v0.0.46...v0.0.47) (2021-04-15)
|
|
28
|
-
|
|
29
|
-
### [0.0.46](https://github.com/taimos/cdk-serverless/compare/v0.0.45...v0.0.46) (2021-04-14)
|
|
30
|
-
|
|
31
|
-
### [0.0.45](https://github.com/taimos/cdk-serverless/compare/v0.0.44...v0.0.45) (2021-04-14)
|
|
32
|
-
|
|
33
|
-
### [0.0.44](https://github.com/taimos/cdk-serverless/compare/v0.0.43...v0.0.44) (2021-04-13)
|
|
34
|
-
|
|
35
|
-
### [0.0.43](https://github.com/taimos/cdk-serverless/compare/v0.0.42...v0.0.43) (2021-04-13)
|
|
36
|
-
|
|
37
|
-
### [0.0.42](https://github.com/taimos/cdk-serverless/compare/v0.0.41...v0.0.42) (2021-04-13)
|
|
38
|
-
|
|
39
|
-
### [0.0.41](https://github.com/taimos/cdk-serverless/compare/v0.0.40...v0.0.41) (2021-04-13)
|
|
40
|
-
|
|
41
|
-
### [0.0.40](https://github.com/taimos/cdk-serverless/compare/v0.0.39...v0.0.40) (2021-04-12)
|
|
42
|
-
|
|
43
|
-
### [0.0.39](https://github.com/taimos/cdk-serverless/compare/v0.0.38...v0.0.39) (2021-04-12)
|
|
44
|
-
|
|
45
|
-
### [0.0.38](https://github.com/taimos/cdk-serverless/compare/v0.0.37...v0.0.38) (2021-04-12)
|
|
46
|
-
|
|
47
|
-
### [0.0.37](https://github.com/taimos/cdk-serverless/compare/v0.0.36...v0.0.37) (2021-04-09)
|
|
48
|
-
|
|
49
|
-
### [0.0.36](https://github.com/taimos/cdk-serverless/compare/v0.0.35...v0.0.36) (2021-04-08)
|
|
50
|
-
|
|
51
|
-
### [0.0.35](https://github.com/taimos/cdk-serverless/compare/v0.0.34...v0.0.35) (2021-04-08)
|
|
52
|
-
|
|
53
|
-
### [0.0.34](https://github.com/taimos/cdk-serverless/compare/v0.0.33...v0.0.34) (2021-04-08)
|
|
54
|
-
|
|
55
|
-
### [0.0.33](https://github.com/taimos/cdk-serverless/compare/v0.0.32...v0.0.33) (2021-04-08)
|
|
56
|
-
|
|
57
|
-
### [0.0.32](https://github.com/taimos/cdk-serverless/compare/v0.0.31...v0.0.32) (2021-04-08)
|
|
58
|
-
|
|
59
|
-
### [0.0.31](https://github.com/taimos/cdk-serverless/compare/v0.0.30...v0.0.31) (2021-04-07)
|
|
60
|
-
|
|
61
|
-
### [0.0.30](https://github.com/taimos/cdk-serverless/compare/v0.0.29...v0.0.30) (2021-04-07)
|
|
62
|
-
|
|
63
|
-
### [0.0.29](https://github.com/taimos/cdk-serverless/compare/v0.0.28...v0.0.29) (2021-04-06)
|
|
64
|
-
|
|
65
|
-
### [0.0.28](https://github.com/taimos/cdk-serverless/compare/v0.0.27...v0.0.28) (2021-04-06)
|
|
66
|
-
|
|
67
|
-
### [0.0.27](https://github.com/taimos/cdk-serverless/compare/v0.0.26...v0.0.27) (2021-04-06)
|
|
68
|
-
|
|
69
|
-
### [0.0.26](https://github.com/taimos/cdk-serverless/compare/v0.0.25...v0.0.26) (2021-04-05)
|
|
70
|
-
|
|
71
|
-
### [0.0.25](https://github.com/taimos/cdk-serverless/compare/v0.0.24...v0.0.25) (2021-04-05)
|
|
72
|
-
|
|
73
|
-
### [0.0.24](https://github.com/taimos/cdk-serverless/compare/v0.0.23...v0.0.24) (2021-04-02)
|
|
74
|
-
|
|
75
|
-
### [0.0.23](https://github.com/taimos/cdk-serverless/compare/v0.0.22...v0.0.23) (2021-04-01)
|
|
76
|
-
|
|
77
|
-
### [0.0.22](https://github.com/taimos/cdk-serverless/compare/v0.0.21...v0.0.22) (2021-03-31)
|
|
78
|
-
|
|
79
|
-
### [0.0.21](https://github.com/taimos/cdk-serverless/compare/v0.0.20...v0.0.21) (2021-03-30)
|
|
80
|
-
|
|
81
|
-
### [0.0.20](https://github.com/taimos/cdk-serverless/compare/v0.0.19...v0.0.20) (2021-03-30)
|
|
82
|
-
|
|
83
|
-
### [0.0.19](https://github.com/taimos/cdk-serverless/compare/v0.0.18...v0.0.19) (2021-03-30)
|
|
84
|
-
|
|
85
|
-
### [0.0.18](https://github.com/taimos/cdk-serverless/compare/v0.0.17...v0.0.18) (2021-03-29)
|
|
86
|
-
|
|
87
|
-
### [0.0.17](https://github.com/taimos/cdk-serverless/compare/v0.0.16...v0.0.17) (2021-03-29)
|
|
88
|
-
|
|
89
|
-
### [0.0.16](https://github.com/taimos/cdk-serverless/compare/v0.0.15...v0.0.16) (2021-03-28)
|
|
90
|
-
|
|
91
|
-
### [0.0.15](https://github.com/taimos/cdk-serverless/compare/v0.0.14...v0.0.15) (2021-03-26)
|
|
92
|
-
|
|
93
|
-
### [0.0.14](https://github.com/taimos/cdk-serverless/compare/v0.0.13...v0.0.14) (2021-03-26)
|
|
94
|
-
|
|
95
|
-
### [0.0.13](https://github.com/taimos/cdk-serverless/compare/v0.0.12...v0.0.13) (2021-03-26)
|
|
96
|
-
|
|
97
|
-
### [0.0.12](https://github.com/taimos/cdk-serverless/compare/v0.0.10...v0.0.12) (2021-03-25)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
### Features
|
|
101
|
-
|
|
102
|
-
* deployment scripts ([586fcc9](https://github.com/taimos/cdk-serverless/commit/586fcc9e4768144bdaf093fe3bc89504a11cb76f))
|
|
103
|
-
|
|
104
|
-
### [0.0.11](https://github.com/taimos/cdk-serverless/compare/v0.0.10...v0.0.11) (2021-03-25)
|
|
105
|
-
|
|
106
|
-
### [0.0.10](https://github.com/taimos/cdk-serverless/compare/v0.0.9...v0.0.10) (2021-03-24)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
### Features
|
|
110
|
-
|
|
111
|
-
* core projen ([45d9153](https://github.com/taimos/cdk-serverless/commit/45d91534080d230aa147f066b53dce72788cdb1f))
|
|
112
|
-
|
|
113
|
-
### [0.0.9](https://github.com/taimos/cdk-serverless/compare/v0.0.8...v0.0.9) (2021-03-24)
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
### Bug Fixes
|
|
117
|
-
|
|
118
|
-
* ds name ([ff67141](https://github.com/taimos/cdk-serverless/commit/ff67141681d6c64b640c7be37fdedc38502b352a))
|
|
119
|
-
|
|
120
|
-
### [0.0.8](https://github.com/taimos/cdk-serverless/compare/v0.0.7...v0.0.8) (2021-03-24)
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
### Bug Fixes
|
|
124
|
-
|
|
125
|
-
* add toolbox dep ([e513641](https://github.com/taimos/cdk-serverless/commit/e513641196f762dc204a6a8df9f868d208bebdc7))
|
|
126
|
-
|
|
127
|
-
### [0.0.7](https://github.com/taimos/cdk-serverless/compare/v0.0.6...v0.0.7) (2021-03-24)
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
### Features
|
|
131
|
-
|
|
132
|
-
* improve GraphQl ([ff4ee42](https://github.com/taimos/cdk-serverless/commit/ff4ee42a974c85258a429ba10d38721c2b2a5903))
|
|
133
|
-
|
|
134
|
-
### [0.0.6](https://github.com/taimos/cdk-serverless/compare/v0.0.4...v0.0.6) (2021-03-24)
|
|
135
|
-
|
|
136
|
-
### [0.0.5](https://github.com/taimos/cdk-serverless/compare/v0.0.4...v0.0.5) (2021-03-23)
|
|
137
|
-
|
|
138
|
-
### [0.0.4](https://github.com/taimos/cdk-serverless/compare/v0.0.3...v0.0.4) (2021-03-19)
|
|
139
|
-
|
|
140
|
-
### [0.0.3](https://github.com/taimos/cdk-serverless/compare/v0.0.2...v0.0.3) (2021-03-19)
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
### Features
|
|
144
|
-
|
|
145
|
-
* projen ([2d76421](https://github.com/taimos/cdk-serverless/commit/2d764213bbc7951aca40fb43d4a87ae997c2506d))
|
|
146
|
-
|
|
147
|
-
### 0.0.2 (2021-03-14)
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
### Features
|
|
151
|
-
|
|
152
|
-
* GraphQL API ([78aa92f](https://github.com/taimos/cdk-serverless/commit/78aa92f657a5fa89a620e452441f118211f592a6))
|
|
153
|
-
* scaffold lambda entry ([927dd8b](https://github.com/taimos/cdk-serverless/commit/927dd8b19ba3bdbe6568ef8f7392aa5fa180f76e))
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
### Bug Fixes
|
|
157
|
-
|
|
158
|
-
* integ stack removed ([5a8bac5](https://github.com/taimos/cdk-serverless/commit/5a8bac54c60c7c262a7ee1deda38de9a695cae30))
|
|
159
|
-
|
|
160
|
-
### 0.0.1 (2021-03-12)
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
### Features
|
|
164
|
-
|
|
165
|
-
* GraphQL API ([78aa92f](https://github.com/taimos/cdk-serverless/commit/78aa92f657a5fa89a620e452441f118211f592a6))
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
### Bug Fixes
|
|
169
|
-
|
|
170
|
-
* integ stack removed ([5a8bac5](https://github.com/taimos/cdk-serverless/commit/5a8bac54c60c7c262a7ee1deda38de9a695cae30))
|
package/img/autocomplete.gif
DELETED
|
Binary file
|