cdk-serverless 2.11.23 → 2.11.25
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 +39 -0
- package/docs/constructs/assets/highlight.css +12 -12
- package/docs/constructs/classes/AssetCdn.html +31 -7
- package/docs/constructs/classes/BaseApi.html +4 -0
- package/docs/constructs/classes/CognitoAuthentication.html +35 -9
- package/docs/constructs/classes/GraphQlApi.html +47 -11
- package/docs/constructs/classes/LambdaFunction.html +34 -12
- package/docs/constructs/classes/RestApi.html +47 -11
- package/docs/constructs/classes/SingleTableDatastore.html +26 -5
- package/docs/constructs/classes/Workflow.html +34 -7
- package/docs/constructs/index.html +13 -0
- package/docs/constructs/interfaces/AssetCdnProps.html +4 -0
- package/docs/constructs/interfaces/BaseApiProps.html +7 -7
- package/docs/constructs/interfaces/CognitoAuthenticationProps.html +3 -3
- package/docs/constructs/interfaces/GraphQlApiProps.html +7 -7
- package/docs/constructs/interfaces/JsResolverOptions.html +2 -2
- package/docs/constructs/interfaces/LambdaFunctionProps.html +2 -2
- package/docs/constructs/interfaces/LambdaTracingOptions.html +1 -1
- package/docs/constructs/interfaces/RestApiProps.html +8 -8
- package/docs/constructs/interfaces/SingleTableDatastoreProps.html +1 -1
- package/docs/constructs/interfaces/SingleTableDesign.html +1 -1
- package/docs/constructs/interfaces/VtlResolverOptions.html +1 -1
- package/docs/lambda/assets/highlight.css +35 -0
- package/docs/lambda/classes/errors.BadRequestError.html +15 -3
- package/docs/lambda/classes/errors.ForbiddenError.html +15 -3
- package/docs/lambda/classes/errors.HttpError.html +18 -4
- package/docs/lambda/classes/errors.NotFoundError.html +15 -3
- package/docs/lambda/classes/errors.UnauthenticatedError.html +15 -3
- package/docs/lambda/index.html +13 -0
- package/docs/projen/assets/highlight.css +19 -12
- package/docs/projen/classes/Datastore.html +9 -0
- package/docs/projen/classes/GraphQlApi.html +9 -0
- package/docs/projen/classes/RestApi.html +79 -19
- package/docs/projen/classes/ServerlessProject.html +16 -2
- package/docs/projen/classes/Workflow.html +46 -10
- package/docs/projen/index.html +13 -0
- package/docs/projen/interfaces/ServerlessProjectOptions.html +74 -74
- package/lib/constructs/asset-cdn.d.ts +24 -0
- package/lib/constructs/asset-cdn.js +13 -1
- package/lib/constructs/authentication.d.ts +26 -0
- package/lib/constructs/authentication.js +12 -1
- package/lib/constructs/base-api.d.ts +3 -0
- package/lib/constructs/base-api.js +4 -1
- package/lib/constructs/func.d.ts +31 -0
- package/lib/constructs/func.js +32 -1
- package/lib/constructs/graphql.d.ts +41 -0
- package/lib/constructs/graphql.js +33 -1
- package/lib/constructs/rest-api.d.ts +41 -0
- package/lib/constructs/rest-api.js +36 -1
- package/lib/constructs/table.d.ts +40 -0
- package/lib/constructs/table.js +38 -1
- package/lib/constructs/workflow.d.ts +46 -0
- package/lib/constructs/workflow.js +38 -1
- package/lib/lambda/errors.d.ts +41 -0
- package/lib/lambda/errors.js +42 -1
- package/lib/projen/core.d.ts +19 -0
- package/lib/projen/core.js +21 -1
- package/lib/projen/datastore.d.ts +11 -0
- package/lib/projen/datastore.js +12 -1
- package/lib/projen/graphql.d.ts +11 -0
- package/lib/projen/graphql.js +12 -1
- package/lib/projen/rest-api.d.ts +52 -0
- package/lib/projen/rest-api.js +53 -1
- package/lib/projen/workflow.d.ts +34 -0
- package/lib/projen/workflow.js +35 -1
- package/package.json +1 -1
|
@@ -10,9 +10,55 @@ export interface WorkflowProps {
|
|
|
10
10
|
[key: string]: (string);
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* The Workflow construct sets up an AWS Step Functions state machine with a specified definition file and IAM role.
|
|
15
|
+
* This construct facilitates the creation of a Step Functions workflow, including the definition from an S3 location and
|
|
16
|
+
* various configurations for logging and tracing. It implements the IGrantable interface for granting permissions.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* const workflow = new Workflow(this, 'MyWorkflow', {
|
|
20
|
+
* definitionFileName: 'path/to/definition.asl.json',
|
|
21
|
+
* stateMachineType: sfn.StateMachineType.STANDARD,
|
|
22
|
+
* loggingConfiguration: {
|
|
23
|
+
* level: sfn.LogLevel.ALL,
|
|
24
|
+
* includeExecutionData: true,
|
|
25
|
+
* destinations: [new logs.LogGroup(this, 'LogGroup')],
|
|
26
|
+
* },
|
|
27
|
+
* tracingConfiguration: {
|
|
28
|
+
* enabled: true,
|
|
29
|
+
* },
|
|
30
|
+
* definitionSubstitutions: {
|
|
31
|
+
* '${MyVariable}': 'MyValue',
|
|
32
|
+
* },
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* const lambdaFunction = new lambda.Function(this, 'MyFunction', {
|
|
36
|
+
* runtime: lambda.Runtime.NODEJS_20_X,
|
|
37
|
+
* handler: 'index.handler',
|
|
38
|
+
* code: lambda.Code.fromAsset('lambda'),
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* workflow.grantPrincipal.grantInvoke(lambdaFunction);
|
|
42
|
+
*/
|
|
13
43
|
export declare class Workflow extends constructs.Construct implements iam.IGrantable {
|
|
44
|
+
/**
|
|
45
|
+
* The IAM role assumed by the state machine.
|
|
46
|
+
*/
|
|
14
47
|
readonly role: iam.IRole;
|
|
48
|
+
/**
|
|
49
|
+
* The ARN of the created state machine.
|
|
50
|
+
*/
|
|
15
51
|
readonly workflowArn: string;
|
|
52
|
+
/**
|
|
53
|
+
* The principal to which permissions can be granted.
|
|
54
|
+
*/
|
|
16
55
|
readonly grantPrincipal: iam.IPrincipal;
|
|
56
|
+
/**
|
|
57
|
+
* Creates an instance of Workflow.
|
|
58
|
+
*
|
|
59
|
+
* @param scope - The scope in which this construct is defined.
|
|
60
|
+
* @param id - The scoped construct ID.
|
|
61
|
+
* @param props - The properties of the Workflow construct.
|
|
62
|
+
*/
|
|
17
63
|
constructor(scope: constructs.Construct, id: string, props: WorkflowProps);
|
|
18
64
|
}
|
|
@@ -28,7 +28,44 @@ const iam = __importStar(require("aws-cdk-lib/aws-iam"));
|
|
|
28
28
|
const aws_s3_assets_1 = require("aws-cdk-lib/aws-s3-assets");
|
|
29
29
|
const sfn = __importStar(require("aws-cdk-lib/aws-stepfunctions"));
|
|
30
30
|
const constructs = __importStar(require("constructs"));
|
|
31
|
+
/**
|
|
32
|
+
* The Workflow construct sets up an AWS Step Functions state machine with a specified definition file and IAM role.
|
|
33
|
+
* This construct facilitates the creation of a Step Functions workflow, including the definition from an S3 location and
|
|
34
|
+
* various configurations for logging and tracing. It implements the IGrantable interface for granting permissions.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* const workflow = new Workflow(this, 'MyWorkflow', {
|
|
38
|
+
* definitionFileName: 'path/to/definition.asl.json',
|
|
39
|
+
* stateMachineType: sfn.StateMachineType.STANDARD,
|
|
40
|
+
* loggingConfiguration: {
|
|
41
|
+
* level: sfn.LogLevel.ALL,
|
|
42
|
+
* includeExecutionData: true,
|
|
43
|
+
* destinations: [new logs.LogGroup(this, 'LogGroup')],
|
|
44
|
+
* },
|
|
45
|
+
* tracingConfiguration: {
|
|
46
|
+
* enabled: true,
|
|
47
|
+
* },
|
|
48
|
+
* definitionSubstitutions: {
|
|
49
|
+
* '${MyVariable}': 'MyValue',
|
|
50
|
+
* },
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* const lambdaFunction = new lambda.Function(this, 'MyFunction', {
|
|
54
|
+
* runtime: lambda.Runtime.NODEJS_20_X,
|
|
55
|
+
* handler: 'index.handler',
|
|
56
|
+
* code: lambda.Code.fromAsset('lambda'),
|
|
57
|
+
* });
|
|
58
|
+
*
|
|
59
|
+
* workflow.grantPrincipal.grantInvoke(lambdaFunction);
|
|
60
|
+
*/
|
|
31
61
|
class Workflow extends constructs.Construct {
|
|
62
|
+
/**
|
|
63
|
+
* Creates an instance of Workflow.
|
|
64
|
+
*
|
|
65
|
+
* @param scope - The scope in which this construct is defined.
|
|
66
|
+
* @param id - The scoped construct ID.
|
|
67
|
+
* @param props - The properties of the Workflow construct.
|
|
68
|
+
*/
|
|
32
69
|
constructor(scope, id, props) {
|
|
33
70
|
var _a;
|
|
34
71
|
super(scope, id);
|
|
@@ -55,4 +92,4 @@ class Workflow extends constructs.Construct {
|
|
|
55
92
|
}
|
|
56
93
|
}
|
|
57
94
|
exports.Workflow = Workflow;
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy93b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUEyQztBQUMzQyw2REFBa0Q7QUFDbEQsbUVBQXFEO0FBQ3JELHVEQUF5QztBQWN6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSCxNQUFhLFFBQVMsU0FBUSxVQUFVLENBQUMsU0FBUztJQWlCaEQ7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUFvQjs7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3JDLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQztTQUM1RCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFaEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxxQkFBSyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUN6RCxJQUFJLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtTQUMvQixDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN6RCxnQkFBZ0IsRUFBRSxNQUFBLEtBQUssQ0FBQyxnQkFBZ0IsbUNBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLFFBQVE7WUFDekUsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUMxQixvQkFBb0IsRUFBRTtnQkFDcEIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxZQUFZO2dCQUNwQyxHQUFHLEVBQUUsZUFBZSxDQUFDLFdBQVc7YUFDakM7WUFDRCx1QkFBdUIsRUFBRSxLQUFLLENBQUMsdUJBQXVCO1lBQ3RELG9CQUFvQixFQUFFLEtBQUssQ0FBQyxvQkFBb0I7WUFDaEQsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjtTQUNqRCxDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQWxERCw0QkFrREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBBc3NldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0ICogYXMgc2ZuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd1Byb3BzIHtcbiAgcmVhZG9ubHkgc3RhdGVNYWNoaW5lVHlwZT86IHNmbi5TdGF0ZU1hY2hpbmVUeXBlO1xuICByZWFkb25seSBsb2dnaW5nQ29uZmlndXJhdGlvbj86IHNmbi5DZm5TdGF0ZU1hY2hpbmUuTG9nZ2luZ0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eTtcbiAgcmVhZG9ubHkgdHJhY2luZ0NvbmZpZ3VyYXRpb24/OiBzZm4uQ2ZuU3RhdGVNYWNoaW5lLlRyYWNpbmdDb25maWd1cmF0aW9uUHJvcGVydHk7XG5cbiAgcmVhZG9ubHkgZGVmaW5pdGlvbkZpbGVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlZmluaXRpb25TdWJzdGl0dXRpb25zPzoge1xuICAgIFtrZXk6IHN0cmluZ106IChzdHJpbmcpO1xuICB9O1xufVxuXG4vKipcbiAqIFRoZSBXb3JrZmxvdyBjb25zdHJ1Y3Qgc2V0cyB1cCBhbiBBV1MgU3RlcCBGdW5jdGlvbnMgc3RhdGUgbWFjaGluZSB3aXRoIGEgc3BlY2lmaWVkIGRlZmluaXRpb24gZmlsZSBhbmQgSUFNIHJvbGUuXG4gKiBUaGlzIGNvbnN0cnVjdCBmYWNpbGl0YXRlcyB0aGUgY3JlYXRpb24gb2YgYSBTdGVwIEZ1bmN0aW9ucyB3b3JrZmxvdywgaW5jbHVkaW5nIHRoZSBkZWZpbml0aW9uIGZyb20gYW4gUzMgbG9jYXRpb24gYW5kXG4gKiB2YXJpb3VzIGNvbmZpZ3VyYXRpb25zIGZvciBsb2dnaW5nIGFuZCB0cmFjaW5nLiBJdCBpbXBsZW1lbnRzIHRoZSBJR3JhbnRhYmxlIGludGVyZmFjZSBmb3IgZ3JhbnRpbmcgcGVybWlzc2lvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHdvcmtmbG93ID0gbmV3IFdvcmtmbG93KHRoaXMsICdNeVdvcmtmbG93Jywge1xuICogICBkZWZpbml0aW9uRmlsZU5hbWU6ICdwYXRoL3RvL2RlZmluaXRpb24uYXNsLmpzb24nLFxuICogICBzdGF0ZU1hY2hpbmVUeXBlOiBzZm4uU3RhdGVNYWNoaW5lVHlwZS5TVEFOREFSRCxcbiAqICAgbG9nZ2luZ0NvbmZpZ3VyYXRpb246IHtcbiAqICAgICBsZXZlbDogc2ZuLkxvZ0xldmVsLkFMTCxcbiAqICAgICBpbmNsdWRlRXhlY3V0aW9uRGF0YTogdHJ1ZSxcbiAqICAgICBkZXN0aW5hdGlvbnM6IFtuZXcgbG9ncy5Mb2dHcm91cCh0aGlzLCAnTG9nR3JvdXAnKV0sXG4gKiAgIH0sXG4gKiAgIHRyYWNpbmdDb25maWd1cmF0aW9uOiB7XG4gKiAgICAgZW5hYmxlZDogdHJ1ZSxcbiAqICAgfSxcbiAqICAgZGVmaW5pdGlvblN1YnN0aXR1dGlvbnM6IHtcbiAqICAgICAnJHtNeVZhcmlhYmxlfSc6ICdNeVZhbHVlJyxcbiAqICAgfSxcbiAqIH0pO1xuICpcbiAqIGNvbnN0IGxhbWJkYUZ1bmN0aW9uID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCAnTXlGdW5jdGlvbicsIHtcbiAqICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gKiAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAqICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KCdsYW1iZGEnKSxcbiAqIH0pO1xuICpcbiAqIHdvcmtmbG93LmdyYW50UHJpbmNpcGFsLmdyYW50SW52b2tlKGxhbWJkYUZ1bmN0aW9uKTtcbiAqL1xuZXhwb3J0IGNsYXNzIFdvcmtmbG93IGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3QgaW1wbGVtZW50cyBpYW0uSUdyYW50YWJsZSB7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgY3JlYXRlZCBzdGF0ZSBtYWNoaW5lLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmluY2lwYWwgdG8gd2hpY2ggcGVybWlzc2lvbnMgY2FuIGJlIGdyYW50ZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIFdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdGhpcyBjb25zdHJ1Y3QgaXMgZGVmaW5lZC5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHNjb3BlZCBjb25zdHJ1Y3QgSUQuXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBXb3JrZmxvdyBjb25zdHJ1Y3QuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXb3JrZmxvd1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdzdGF0ZXMuYW1hem9uYXdzLmNvbScpLFxuICAgIH0pO1xuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwgPSB0aGlzLnJvbGU7XG5cbiAgICBjb25zdCBkZWZpbml0aW9uQXNzZXQgPSBuZXcgQXNzZXQodGhpcywgJ0RlZmluaXRpb25Bc3NldCcsIHtcbiAgICAgIHBhdGg6IHByb3BzLmRlZmluaXRpb25GaWxlTmFtZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IHNmbi5DZm5TdGF0ZU1hY2hpbmUodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgc3RhdGVNYWNoaW5lVHlwZTogcHJvcHMuc3RhdGVNYWNoaW5lVHlwZSA/PyBzZm4uU3RhdGVNYWNoaW5lVHlwZS5TVEFOREFSRCxcbiAgICAgIHJvbGVBcm46IHRoaXMucm9sZS5yb2xlQXJuLFxuICAgICAgZGVmaW5pdGlvblMzTG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0OiBkZWZpbml0aW9uQXNzZXQuczNCdWNrZXROYW1lLFxuICAgICAgICBrZXk6IGRlZmluaXRpb25Bc3NldC5zM09iamVjdEtleSxcbiAgICAgIH0sXG4gICAgICBkZWZpbml0aW9uU3Vic3RpdHV0aW9uczogcHJvcHMuZGVmaW5pdGlvblN1YnN0aXR1dGlvbnMsXG4gICAgICBsb2dnaW5nQ29uZmlndXJhdGlvbjogcHJvcHMubG9nZ2luZ0NvbmZpZ3VyYXRpb24sXG4gICAgICB0cmFjaW5nQ29uZmlndXJhdGlvbjogcHJvcHMudHJhY2luZ0NvbmZpZ3VyYXRpb24sXG4gICAgfSk7XG4gICAgcmVzb3VyY2Uubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMucm9sZSk7XG4gICAgdGhpcy53b3JrZmxvd0FybiA9IHJlc291cmNlLmF0dHJBcm47XG4gIH1cbn1cbiJdfQ==
|
package/lib/lambda/errors.d.ts
CHANGED
|
@@ -1,16 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A base class for HTTP errors.
|
|
3
|
+
*/
|
|
1
4
|
export declare class HttpError extends Error {
|
|
2
5
|
readonly statusCode: number;
|
|
6
|
+
/**
|
|
7
|
+
* Creates an instance of HttpError.
|
|
8
|
+
*
|
|
9
|
+
* @param statusCode - The HTTP status code for the error.
|
|
10
|
+
* @param [message] - The error message.
|
|
11
|
+
*/
|
|
3
12
|
constructor(statusCode: number, message?: string);
|
|
4
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Represents a 400 Bad Request error.
|
|
16
|
+
*/
|
|
5
17
|
export declare class BadRequestError extends HttpError {
|
|
18
|
+
/**
|
|
19
|
+
* Creates an instance of BadRequestError.
|
|
20
|
+
*
|
|
21
|
+
* @param [message] - The error message.
|
|
22
|
+
*/
|
|
6
23
|
constructor(message?: string);
|
|
7
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Represents a 401 Unauthenticated error.
|
|
27
|
+
*/
|
|
8
28
|
export declare class UnauthenticatedError extends HttpError {
|
|
29
|
+
/**
|
|
30
|
+
* Creates an instance of UnauthenticatedError.
|
|
31
|
+
*
|
|
32
|
+
* @param [message] - The error message.
|
|
33
|
+
*/
|
|
9
34
|
constructor(message?: string);
|
|
10
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Represents a 403 Forbidden error.
|
|
38
|
+
*/
|
|
11
39
|
export declare class ForbiddenError extends HttpError {
|
|
40
|
+
/**
|
|
41
|
+
* Creates an instance of ForbiddenError.
|
|
42
|
+
*
|
|
43
|
+
* @param [message] - The error message.
|
|
44
|
+
*/
|
|
12
45
|
constructor(message?: string);
|
|
13
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Represents a 404 Not Found error.
|
|
49
|
+
*/
|
|
14
50
|
export declare class NotFoundError extends HttpError {
|
|
51
|
+
/**
|
|
52
|
+
* Creates an instance of NotFoundError.
|
|
53
|
+
*
|
|
54
|
+
* @param [message] - The error message.
|
|
55
|
+
*/
|
|
15
56
|
constructor(message?: string);
|
|
16
57
|
}
|
package/lib/lambda/errors.js
CHANGED
|
@@ -1,35 +1,76 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NotFoundError = exports.ForbiddenError = exports.UnauthenticatedError = exports.BadRequestError = exports.HttpError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* A base class for HTTP errors.
|
|
6
|
+
*/
|
|
4
7
|
class HttpError extends Error {
|
|
8
|
+
/**
|
|
9
|
+
* Creates an instance of HttpError.
|
|
10
|
+
*
|
|
11
|
+
* @param statusCode - The HTTP status code for the error.
|
|
12
|
+
* @param [message] - The error message.
|
|
13
|
+
*/
|
|
5
14
|
constructor(statusCode, message) {
|
|
6
15
|
super(message);
|
|
7
16
|
this.statusCode = statusCode;
|
|
8
17
|
}
|
|
9
18
|
}
|
|
10
19
|
exports.HttpError = HttpError;
|
|
20
|
+
/**
|
|
21
|
+
* Represents a 400 Bad Request error.
|
|
22
|
+
*/
|
|
11
23
|
class BadRequestError extends HttpError {
|
|
24
|
+
/**
|
|
25
|
+
* Creates an instance of BadRequestError.
|
|
26
|
+
*
|
|
27
|
+
* @param [message] - The error message.
|
|
28
|
+
*/
|
|
12
29
|
constructor(message) {
|
|
13
30
|
super(400, message);
|
|
14
31
|
}
|
|
15
32
|
}
|
|
16
33
|
exports.BadRequestError = BadRequestError;
|
|
34
|
+
/**
|
|
35
|
+
* Represents a 401 Unauthenticated error.
|
|
36
|
+
*/
|
|
17
37
|
class UnauthenticatedError extends HttpError {
|
|
38
|
+
/**
|
|
39
|
+
* Creates an instance of UnauthenticatedError.
|
|
40
|
+
*
|
|
41
|
+
* @param [message] - The error message.
|
|
42
|
+
*/
|
|
18
43
|
constructor(message) {
|
|
19
44
|
super(401, message);
|
|
20
45
|
}
|
|
21
46
|
}
|
|
22
47
|
exports.UnauthenticatedError = UnauthenticatedError;
|
|
48
|
+
/**
|
|
49
|
+
* Represents a 403 Forbidden error.
|
|
50
|
+
*/
|
|
23
51
|
class ForbiddenError extends HttpError {
|
|
52
|
+
/**
|
|
53
|
+
* Creates an instance of ForbiddenError.
|
|
54
|
+
*
|
|
55
|
+
* @param [message] - The error message.
|
|
56
|
+
*/
|
|
24
57
|
constructor(message) {
|
|
25
58
|
super(403, message);
|
|
26
59
|
}
|
|
27
60
|
}
|
|
28
61
|
exports.ForbiddenError = ForbiddenError;
|
|
62
|
+
/**
|
|
63
|
+
* Represents a 404 Not Found error.
|
|
64
|
+
*/
|
|
29
65
|
class NotFoundError extends HttpError {
|
|
66
|
+
/**
|
|
67
|
+
* Creates an instance of NotFoundError.
|
|
68
|
+
*
|
|
69
|
+
* @param [message] - The error message.
|
|
70
|
+
*/
|
|
30
71
|
constructor(message) {
|
|
31
72
|
super(404, message);
|
|
32
73
|
}
|
|
33
74
|
}
|
|
34
75
|
exports.NotFoundError = NotFoundError;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xhbWJkYS9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxLQUFLO0lBQ2xDOzs7OztPQUtHO0lBQ0gsWUFBNEIsVUFBa0IsRUFBRSxPQUFnQjtRQUM5RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFEVyxlQUFVLEdBQVYsVUFBVSxDQUFRO0lBRTlDLENBQUM7Q0FDRjtBQVZELDhCQVVDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsU0FBUztJQUM1Qzs7OztPQUlHO0lBQ0gsWUFBWSxPQUFnQjtRQUMxQixLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQVRELDBDQVNDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLFNBQVM7SUFDakQ7Ozs7T0FJRztJQUNILFlBQVksT0FBZ0I7UUFDMUIsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFURCxvREFTQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsU0FBUztJQUMzQzs7OztPQUlHO0lBQ0gsWUFBWSxPQUFnQjtRQUMxQixLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQVRELHdDQVNDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxTQUFTO0lBQzFDOzs7O09BSUc7SUFDSCxZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBVEQsc0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgYmFzZSBjbGFzcyBmb3IgSFRUUCBlcnJvcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBIdHRwRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEh0dHBFcnJvci5cbiAgICpcbiAgICogQHBhcmFtIHN0YXR1c0NvZGUgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIGVycm9yLlxuICAgKiBAcGFyYW0gW21lc3NhZ2VdIC0gVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc3RhdHVzQ29kZTogbnVtYmVyLCBtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgNDAwIEJhZCBSZXF1ZXN0IGVycm9yLlxuICovXG5leHBvcnQgY2xhc3MgQmFkUmVxdWVzdEVycm9yIGV4dGVuZHMgSHR0cEVycm9yIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQmFkUmVxdWVzdEVycm9yLlxuICAgKlxuICAgKiBAcGFyYW0gW21lc3NhZ2VdIC0gVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoNDAwLCBtZXNzYWdlKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSA0MDEgVW5hdXRoZW50aWNhdGVkIGVycm9yLlxuICovXG5leHBvcnQgY2xhc3MgVW5hdXRoZW50aWNhdGVkRXJyb3IgZXh0ZW5kcyBIdHRwRXJyb3Ige1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBVbmF1dGhlbnRpY2F0ZWRFcnJvci5cbiAgICpcbiAgICogQHBhcmFtIFttZXNzYWdlXSAtIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKDQwMSwgbWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgNDAzIEZvcmJpZGRlbiBlcnJvci5cbiAqL1xuZXhwb3J0IGNsYXNzIEZvcmJpZGRlbkVycm9yIGV4dGVuZHMgSHR0cEVycm9yIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRm9yYmlkZGVuRXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSBbbWVzc2FnZV0gLSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcig0MDMsIG1lc3NhZ2UpO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIDQwNCBOb3QgRm91bmQgZXJyb3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RGb3VuZEVycm9yIGV4dGVuZHMgSHR0cEVycm9yIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgTm90Rm91bmRFcnJvci5cbiAgICpcbiAgICogQHBhcmFtIFttZXNzYWdlXSAtIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKDQwNCwgbWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/projen/core.d.ts
CHANGED
|
@@ -2,6 +2,25 @@ import * as pj from 'projen';
|
|
|
2
2
|
export declare const PACKAGE_NAME = "cdk-serverless";
|
|
3
3
|
export interface ServerlessProjectOptions extends pj.awscdk.AwsCdkTypeScriptAppOptions {
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* The ServerlessProject construct sets up an AWS CDK TypeScript project with serverless application dependencies and configurations.
|
|
7
|
+
* This construct extends the projen AwsCdkTypeScriptApp to include additional dependencies and development dependencies required
|
|
8
|
+
* for serverless applications. It also enables TypeScript projen configuration (projenrcTs).
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* const project = new ServerlessProject({
|
|
12
|
+
* name: 'MyServerlessApp',
|
|
13
|
+
* defaultReleaseBranch: 'main',
|
|
14
|
+
* cdkVersion: '2.140.0',
|
|
15
|
+
* deps: ['additional-dependency'],
|
|
16
|
+
* devDeps: ['additional-dev-dependency'],
|
|
17
|
+
* });
|
|
18
|
+
*/
|
|
5
19
|
export declare class ServerlessProject extends pj.awscdk.AwsCdkTypeScriptApp {
|
|
20
|
+
/**
|
|
21
|
+
* Creates an instance of ServerlessProject.
|
|
22
|
+
*
|
|
23
|
+
* @param {ServerlessProjectOptions} options - The options for configuring the ServerlessProject.
|
|
24
|
+
*/
|
|
6
25
|
constructor(options: ServerlessProjectOptions);
|
|
7
26
|
}
|
package/lib/projen/core.js
CHANGED
|
@@ -26,7 +26,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.ServerlessProject = exports.PACKAGE_NAME = void 0;
|
|
27
27
|
const pj = __importStar(require("projen"));
|
|
28
28
|
exports.PACKAGE_NAME = 'cdk-serverless';
|
|
29
|
+
/**
|
|
30
|
+
* The ServerlessProject construct sets up an AWS CDK TypeScript project with serverless application dependencies and configurations.
|
|
31
|
+
* This construct extends the projen AwsCdkTypeScriptApp to include additional dependencies and development dependencies required
|
|
32
|
+
* for serverless applications. It also enables TypeScript projen configuration (projenrcTs).
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* const project = new ServerlessProject({
|
|
36
|
+
* name: 'MyServerlessApp',
|
|
37
|
+
* defaultReleaseBranch: 'main',
|
|
38
|
+
* cdkVersion: '2.140.0',
|
|
39
|
+
* deps: ['additional-dependency'],
|
|
40
|
+
* devDeps: ['additional-dev-dependency'],
|
|
41
|
+
* });
|
|
42
|
+
*/
|
|
29
43
|
class ServerlessProject extends pj.awscdk.AwsCdkTypeScriptApp {
|
|
44
|
+
/**
|
|
45
|
+
* Creates an instance of ServerlessProject.
|
|
46
|
+
*
|
|
47
|
+
* @param {ServerlessProjectOptions} options - The options for configuring the ServerlessProject.
|
|
48
|
+
*/
|
|
30
49
|
constructor(options) {
|
|
31
50
|
var _a, _b;
|
|
32
51
|
super({
|
|
@@ -37,6 +56,7 @@ class ServerlessProject extends pj.awscdk.AwsCdkTypeScriptApp {
|
|
|
37
56
|
'uuid',
|
|
38
57
|
'esbuild',
|
|
39
58
|
'js-yaml',
|
|
59
|
+
`@aws-cdk/aws-cognito-identitypool-alpha@${options.cdkVersion}`,
|
|
40
60
|
],
|
|
41
61
|
devDeps: [
|
|
42
62
|
...(_b = options.devDeps) !== null && _b !== void 0 ? _b : [],
|
|
@@ -49,4 +69,4 @@ class ServerlessProject extends pj.awscdk.AwsCdkTypeScriptApp {
|
|
|
49
69
|
}
|
|
50
70
|
}
|
|
51
71
|
exports.ServerlessProject = ServerlessProject;
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE2QjtBQUVoQixRQUFBLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQztBQU03Qzs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQjtJQUVsRTs7OztPQUlHO0lBQ0gsWUFBWSxPQUFpQzs7UUFDM0MsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFO2dCQUNKLEdBQUcsTUFBQSxPQUFPLENBQUMsSUFBSSxtQ0FBSSxFQUFFO2dCQUNyQixNQUFNO2dCQUNOLFNBQVM7Z0JBQ1QsU0FBUztnQkFDVCwyQ0FBMkMsT0FBTyxDQUFDLFVBQVUsRUFBRTthQUNoRTtZQUNELE9BQU8sRUFBRTtnQkFDUCxHQUFHLE1BQUEsT0FBTyxDQUFDLE9BQU8sbUNBQUksRUFBRTtnQkFDeEIsbUJBQW1CO2dCQUNuQixhQUFhO2dCQUNiLG1CQUFtQjtnQkFDbkIsZ0JBQWdCO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUVGO0FBNUJELDhDQTRCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBqIGZyb20gJ3Byb2plbic7XG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX05BTUUgPSAnY2RrLXNlcnZlcmxlc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlcmxlc3NQcm9qZWN0T3B0aW9ucyBleHRlbmRzIHBqLmF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB7XG4gIC8vIEFkZGl0aW9uYWwgb3B0aW9ucyBjYW4gYmUgc3BlY2lmaWVkIGhlcmVcbn1cblxuLyoqXG4gKiBUaGUgU2VydmVybGVzc1Byb2plY3QgY29uc3RydWN0IHNldHMgdXAgYW4gQVdTIENESyBUeXBlU2NyaXB0IHByb2plY3Qgd2l0aCBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9uIGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbnMuXG4gKiBUaGlzIGNvbnN0cnVjdCBleHRlbmRzIHRoZSBwcm9qZW4gQXdzQ2RrVHlwZVNjcmlwdEFwcCB0byBpbmNsdWRlIGFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzIGFuZCBkZXZlbG9wbWVudCBkZXBlbmRlbmNpZXMgcmVxdWlyZWRcbiAqIGZvciBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9ucy4gSXQgYWxzbyBlbmFibGVzIFR5cGVTY3JpcHQgcHJvamVuIGNvbmZpZ3VyYXRpb24gKHByb2plbnJjVHMpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBwcm9qZWN0ID0gbmV3IFNlcnZlcmxlc3NQcm9qZWN0KHtcbiAqICAgbmFtZTogJ015U2VydmVybGVzc0FwcCcsXG4gKiAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gKiAgIGNka1ZlcnNpb246ICcyLjE0MC4wJyxcbiAqICAgZGVwczogWydhZGRpdGlvbmFsLWRlcGVuZGVuY3knXSxcbiAqICAgZGV2RGVwczogWydhZGRpdGlvbmFsLWRldi1kZXBlbmRlbmN5J10sXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZlcmxlc3NQcm9qZWN0IGV4dGVuZHMgcGouYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAge1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIFNlcnZlcmxlc3NQcm9qZWN0LlxuICAgKlxuICAgKiBAcGFyYW0ge1NlcnZlcmxlc3NQcm9qZWN0T3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgU2VydmVybGVzc1Byb2plY3QuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBTZXJ2ZXJsZXNzUHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAgIGRlcHM6IFtcbiAgICAgICAgLi4ub3B0aW9ucy5kZXBzID8/IFtdLFxuICAgICAgICAndXVpZCcsXG4gICAgICAgICdlc2J1aWxkJyxcbiAgICAgICAgJ2pzLXlhbWwnLFxuICAgICAgICBgQGF3cy1jZGsvYXdzLWNvZ25pdG8taWRlbnRpdHlwb29sLWFscGhhQCR7b3B0aW9ucy5jZGtWZXJzaW9ufWAsXG4gICAgICBdLFxuICAgICAgZGV2RGVwczogW1xuICAgICAgICAuLi5vcHRpb25zLmRldkRlcHMgPz8gW10sXG4gICAgICAgICdAdHlwZXMvYXdzLWxhbWJkYScsXG4gICAgICAgICdAdHlwZXMvdXVpZCcsXG4gICAgICAgICdAdHlwZXMvbGFtYmRhLWxvZycsXG4gICAgICAgICdAdHlwZXMvanMteWFtbCcsXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -3,6 +3,17 @@ export interface DatastoreOptions {
|
|
|
3
3
|
readonly modelName: string;
|
|
4
4
|
readonly definitionFile: string;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* The Datastore construct sets up a DynamoDB single-table design for a serverless project using projen.
|
|
8
|
+
* This construct extends the projen Component to include dependencies and development dependencies required for DynamoDB and provides
|
|
9
|
+
* methods to generate model and construct files based on a schema definition file.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const datastore = new Datastore(app, {
|
|
13
|
+
* modelName: 'User',
|
|
14
|
+
* definitionFile: 'src/models/user.schema.json',
|
|
15
|
+
* });
|
|
16
|
+
*/
|
|
6
17
|
export declare class Datastore extends pj.Component {
|
|
7
18
|
protected options: DatastoreOptions;
|
|
8
19
|
constructor(app: pj.awscdk.AwsCdkTypeScriptApp, options: DatastoreOptions);
|
package/lib/projen/datastore.js
CHANGED
|
@@ -29,6 +29,17 @@ const path_1 = require("path");
|
|
|
29
29
|
const pj = __importStar(require("projen"));
|
|
30
30
|
const core_1 = require("./core");
|
|
31
31
|
const lazy_textfile_1 = require("./lazy-textfile");
|
|
32
|
+
/**
|
|
33
|
+
* The Datastore construct sets up a DynamoDB single-table design for a serverless project using projen.
|
|
34
|
+
* This construct extends the projen Component to include dependencies and development dependencies required for DynamoDB and provides
|
|
35
|
+
* methods to generate model and construct files based on a schema definition file.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* const datastore = new Datastore(app, {
|
|
39
|
+
* modelName: 'User',
|
|
40
|
+
* definitionFile: 'src/models/user.schema.json',
|
|
41
|
+
* });
|
|
42
|
+
*/
|
|
32
43
|
class Datastore extends pj.Component {
|
|
33
44
|
constructor(app, options) {
|
|
34
45
|
super(app);
|
|
@@ -172,4 +183,4 @@ export class ${this.options.modelName}Datastore extends SingleTableDatastore {
|
|
|
172
183
|
}
|
|
173
184
|
}
|
|
174
185
|
exports.Datastore = Datastore;
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plbi9kYXRhc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsK0JBQTRCO0FBRTVCLDJDQUE2QjtBQUM3QixpQ0FBc0M7QUFDdEMsbURBQStDO0FBTy9DLE1BQWEsU0FBVSxTQUFRLEVBQUUsQ0FBQyxTQUFTO0lBRXpDLFlBQVksR0FBa0MsRUFBWSxPQUF5QjtRQUNqRixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFENkMsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFHakYsR0FBRyxDQUFDLE9BQU8sQ0FDVCxtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzFCLHVCQUF1QixFQUN2QixNQUFNLENBQ1AsQ0FBQztRQUNGLEdBQUcsQ0FBQyxVQUFVLENBQ1osYUFBYSxDQUNkLENBQUM7UUFFRixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUMzRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDdkIsTUFBTSxFQUFFLGdCQUFnQjtnQkFDeEIsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE9BQU8sRUFBRTtvQkFDUCxPQUFPLEVBQUU7d0JBQ1AsSUFBSSxFQUFFLElBQUk7d0JBQ1YsSUFBSSxFQUFFLElBQUk7cUJBQ1g7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRTt3QkFDSixFQUFFLEVBQUU7NEJBQ0YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsUUFBUSxFQUFFLElBQUk7NEJBQ2QsS0FBSyxFQUFFLGNBQWM7eUJBQ3RCO3dCQUNELEVBQUUsRUFBRTs0QkFDRixJQUFJLEVBQUUsUUFBUTs0QkFDZCxRQUFRLEVBQUUsSUFBSTs0QkFDZCxLQUFLLEVBQUUsY0FBYzt5QkFD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QUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDOzs7WUFHYixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7MEJBQ2xGLEdBQUc7O3VCQUVOLElBQUksQ0FBQyxJQUFJOzs7NkNBR2EsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUztjQUMxRixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDOzs7Ozs7RUFNdkIsQ0FBQztJQUNELENBQUM7Q0FFRjtBQTlKRCw4QkE4SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBPbmVTY2hlbWEgfSBmcm9tICdkeW5hbW9kYi1vbmV0YWJsZSc7XG5pbXBvcnQgKiBhcyBwaiBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgUEFDS0FHRV9OQU1FIH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7IExhenlUZXh0RmlsZSB9IGZyb20gJy4vbGF6eS10ZXh0ZmlsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXN0b3JlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IG1vZGVsTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBkZWZpbml0aW9uRmlsZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRGF0YXN0b3JlIGV4dGVuZHMgcGouQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihhcHA6IHBqLmF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwLCBwcm90ZWN0ZWQgb3B0aW9uczogRGF0YXN0b3JlT3B0aW9ucykge1xuICAgIHN1cGVyKGFwcCk7XG5cbiAgICBhcHAuYWRkRGVwcyhcbiAgICAgICdkeW5hbW9kYi1vbmV0YWJsZScsXG4gICAgICAnQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiJyxcbiAgICAgICdAYXdzLXNkay9saWItZHluYW1vZGInLFxuICAgICAgJ3V1aWQnLFxuICAgICk7XG4gICAgYXBwLmFkZERldkRlcHMoXG4gICAgICAnQHR5cGVzL3V1aWQnLFxuICAgICk7XG5cbiAgICBuZXcgcGouU2FtcGxlRmlsZSh0aGlzLnByb2plY3QsIHRoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZSwge1xuICAgICAgY29udGVudHM6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgZm9ybWF0OiAnb25ldGFibGU6MS4wLjAnLFxuICAgICAgICB2ZXJzaW9uOiAnMC4xLjAnLFxuICAgICAgICBpbmRleGVzOiB7XG4gICAgICAgICAgcHJpbWFyeToge1xuICAgICAgICAgICAgaGFzaDogJ1BLJyxcbiAgICAgICAgICAgIHNvcnQ6ICdTSycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9kZWxzOiB7XG4gICAgICAgICAgVXNlcjoge1xuICAgICAgICAgICAgUEs6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICB2YWx1ZTogJ1VzZXIjJHtuYW1lfScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgU0s6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICB2YWx1ZTogJ1VzZXIjJHtuYW1lfScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZToge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIG5ldyBMYXp5VGV4dEZpbGUodGhpcy5wcm9qZWN0LCBgc3JjL2dlbmVyYXRlZC9kYXRhc3RvcmUuJHt0aGlzLm9wdGlvbnMubW9kZWxOYW1lLnRvTG93ZXJDYXNlKCl9LW1vZGVsLmdlbmVyYXRlZC50c2AsIHsgY29udGVudDogdGhpcy5jcmVhdGVNb2RlbEZpbGUuYmluZCh0aGlzKSB9KTtcbiAgICBuZXcgTGF6eVRleHRGaWxlKHRoaXMucHJvamVjdCwgYHNyYy9nZW5lcmF0ZWQvZGF0YXN0b3JlLiR7dGhpcy5vcHRpb25zLm1vZGVsTmFtZS50b0xvd2VyQ2FzZSgpfS1jb25zdHJ1Y3QuZ2VuZXJhdGVkLnRzYCwgeyBjb250ZW50OiB0aGlzLmNyZWF0ZUNvbnN0cnVjdEZpbGUuYmluZCh0aGlzKSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVNb2RlbEZpbGUoZmlsZTogcGouRmlsZUJhc2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1vZGVsID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCB0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGUpKS50b1N0cmluZygpKSBhcyBPbmVTY2hlbWE7XG5cbiAgICByZXR1cm4gYC8vICR7ZmlsZS5tYXJrZXJ9XG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IHsgTW9kZWwsIFRhYmxlLCBFbnRpdHkgfSBmcm9tICdkeW5hbW9kYi1vbmV0YWJsZSc7XG5pbXBvcnQgeyBlbnYgfSBmcm9tICdwcm9jZXNzJztcbmltcG9ydCB7IER5bmFtbyB9IGZyb20gJ2R5bmFtb2RiLW9uZXRhYmxlL0R5bmFtbyc7XG5pbXBvcnQgeyBEeW5hbW9EQkNsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYic7XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9DbGllbnQgPSBuZXcgRHluYW1vKHsgY2xpZW50OiBuZXcgRHluYW1vREJDbGllbnQoe30pIH0pXG5leHBvcnQgY29uc3QgVEFCTEVfTkFNRTogc3RyaW5nID0gZW52LlRBQkxFITtcblxuJHtPYmplY3QuZW50cmllcyhtb2RlbC5pbmRleGVzKS5tYXAoKFtpZHgsIGRhdGFdKSA9PiBgZXhwb3J0IGNvbnN0IEluZGV4XyR7aWR4fV9OYW1lID0gJyR7aWR4fSc7XG5leHBvcnQgY29uc3QgSW5kZXhfJHtpZHh9X0hhc2hLZXkgPSAnJHtkYXRhLmhhc2h9JztcbmV4cG9ydCBjb25zdCBJbmRleF8ke2lkeH1fU29ydEtleSA9ICcke2RhdGEuc29ydH0nO1xuYCkuam9pbignXFxuJyl9XG5cbmV4cG9ydCBjb25zdCBTY2hlbWEgPSAke3RoaXMuc3RyaW5naWZ5TW9kZWwobW9kZWwpfTtcblxuZXhwb3J0IGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlKHtcbiAgY2xpZW50OiBkeW5hbW9DbGllbnQsXG4gIG5hbWU6IFRBQkxFX05BTUUsXG4gIHNjaGVtYTogU2NoZW1hLFxuICBpc29EYXRlczogdHJ1ZSxcbiAgLy8gbG9nZ2VyOiB0cnVlLFxuICBoaWRkZW46IGZhbHNlLFxufSk7XG5cbiR7T2JqZWN0LmVudHJpZXMobW9kZWwubW9kZWxzKS5tYXAoKFt0eXBlTmFtZSwgX10pID0+IGBleHBvcnQgdHlwZSAke3R5cGVOYW1lfVR5cGUgPSBFbnRpdHk8dHlwZW9mIFNjaGVtYS5tb2RlbHMuJHt0eXBlTmFtZX0+O1xuZXhwb3J0IGNvbnN0ICR7dHlwZU5hbWV9OiBNb2RlbDwke3R5cGVOYW1lfVR5cGU+ID0gdGFibGUuZ2V0TW9kZWw8JHt0eXBlTmFtZX1UeXBlPignJHt0eXBlTmFtZX0nKTtcbmApLmpvaW4oJ1xcbicpfVxuXG5gO1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpbmdpZnlNb2RlbChtb2RlbDogT25lU2NoZW1hKSB7XG4gICAgLy8gYXJyYXksIGJpbmFyeSwgYm9vbGVhbiwgICAgICAgICBkYXRlLCBudW1iZXIsIG9iamVjdCwgc2V0LCBzdHJpbmdcbiAgICAvLyBBcnJheSwgQmluYXJ5LCBCb29sZWFuLCBCdWZmZXIsIERhdGUsIE51bWJlciwgT2JqZWN0LCBTZXQsIFN0cmluZ1xuXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG1vZGVsLCBudWxsLCAyKVxuICAgICAgLnJlcGxhY2UoL1widHlwZVwiOiBcImFycmF5XCIvZywgJ1widHlwZVwiOiBBcnJheScpXG4gICAgICAucmVwbGFjZSgvXCJ0eXBlXCI6IFwiYmluYXJ5XCIvZywgJ1widHlwZVwiOiBCaW5hcnknKVxuICAgICAgLnJlcGxhY2UoL1widHlwZVwiOiBcImJvb2xlYW5cIi9nLCAnXCJ0eXBlXCI6IEJvb2xlYW4nKVxuICAgICAgLnJlcGxhY2UoL1widHlwZVwiOiBcImRhdGVcIi9nLCAnXCJ0eXBlXCI6IERhdGUnKVxuICAgICAgLnJlcGxhY2UoL1widHlwZVwiOiBcIm51bWJlclwiL2csICdcInR5cGVcIjogTnVtYmVyJylcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJvYmplY3RcIi9nLCAnXCJ0eXBlXCI6IE9iamVjdCcpXG4gICAgICAucmVwbGFjZSgvXCJ0eXBlXCI6IFwic2V0XCIvZywgJ1widHlwZVwiOiBTZXQnKVxuICAgICAgLnJlcGxhY2UoL1widHlwZVwiOiBcInN0cmluZ1wiL2csICdcInR5cGVcIjogU3RyaW5nJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQ29uc3RydWN0RmlsZShmaWxlOiBwai5GaWxlQmFzZSk6IHN0cmluZyB7XG4gICAgY29uc3QgbW9kZWwgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhqb2luKHRoaXMucHJvamVjdC5vdXRkaXIsIHRoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZSkpLnRvU3RyaW5nKCkpIGFzIE9uZVNjaGVtYTtcblxuICAgIHJldHVybiBgLy8gJHtmaWxlLm1hcmtlcn1cbi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgeyBBdHRyaWJ1dGVUeXBlLCBQcm9qZWN0aW9uVHlwZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFNpbmdsZVRhYmxlRGF0YXN0b3JlLCBTaW5nbGVUYWJsZURhdGFzdG9yZVByb3BzIH0gZnJvbSAnJHtQQUNLQUdFX05BTUV9L2xpYi9jb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSAke3RoaXMub3B0aW9ucy5tb2RlbE5hbWV9RGF0YXN0b3JlUHJvcHMgZXh0ZW5kcyBPbWl0PFNpbmdsZVRhYmxlRGF0YXN0b3JlUHJvcHMsICdkZXNpZ24nPiB7XG4gIC8vXG59XG5cbmV4cG9ydCBjbGFzcyAke3RoaXMub3B0aW9ucy5tb2RlbE5hbWV9RGF0YXN0b3JlIGV4dGVuZHMgU2luZ2xlVGFibGVEYXRhc3RvcmUge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiAke3RoaXMub3B0aW9ucy5tb2RlbE5hbWV9RGF0YXN0b3JlUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBkZXNpZ246IHtcbiAgICAgICAgcHJpbWFyeUtleToge1xuICAgICAgICAgIHBhcnRpdGlvbktleTogJyR7bW9kZWwuaW5kZXhlcy5wcmltYXJ5Lmhhc2h9JyxcbiAgICAgICAgICAke21vZGVsLmluZGV4ZXMucHJpbWFyeS5zb3J0ID8gYHNvcnRLZXk6ICcke21vZGVsLmluZGV4ZXMucHJpbWFyeS5zb3J0fScsYCA6ICcnfVxuICAgICAgICB9LFxuICAgICAgICAvLyB0aW1lVG9MaXZlQXR0cmlidXRlOiAnVE9ETycsXG4gICAgICAgIGdsb2JhbEluZGV4ZXM6IFtcbiAgICAgICAgICAke09iamVjdC5lbnRyaWVzKG1vZGVsLmluZGV4ZXMpLmZpbHRlcigoW2lkeCwgZGF0YV0pID0+IGlkeCAhPT0gJ3ByaW1hcnknICYmIGRhdGEudHlwZSAhPT0gJ2xvY2FsJykubWFwKChbaWR4LCBkYXRhXSkgPT4gYHtcbiAgICAgICAgICAgIGluZGV4TmFtZTogJyR7aWR4fScsXG4gICAgICAgICAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgICAgICAgICAgbmFtZTogJyR7ZGF0YS5oYXNofScsXG4gICAgICAgICAgICAgIHR5cGU6IEF0dHJpYnV0ZVR5cGUuU1RSSU5HLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICR7ZGF0YS5zb3J0ID8gYHNvcnRLZXk6IHtcbiAgICAgICAgICAgICAgbmFtZTogJyR7ZGF0YS5zb3J0fScsXG4gICAgICAgICAgICAgIHR5cGU6IEF0dHJpYnV0ZVR5cGUuU1RSSU5HLFxuICAgICAgICAgICAgfSxgIDogJyd9XG4gICAgICAgICAgICBwcm9qZWN0aW9uVHlwZTogUHJvamVjdGlvblR5cGUuJHt0eXBlb2YgZGF0YS5wcm9qZWN0ID09PSAnc3RyaW5nJyA/IGRhdGEucHJvamVjdC50b1VwcGVyQ2FzZSgpIDogJ0lOQ0xVREUnfSxcbiAgICAgICAgICAgICR7QXJyYXkuaXNBcnJheShkYXRhLnByb2plY3QpID8gYG5vbktleUF0dHJpYnV0ZXM6IFske2RhdGEucHJvamVjdC5tYXAoZSA9PiBgJyR7ZX0nYCkuam9pbignLCcpfV0sYCA6ICcnfVxuICAgICAgICAgIH1gKS5qb2luKCcsXFxuJyl9XG4gICAgICAgIF0sXG4gICAgICAgIGxvY2FsSW5kZXhlczogW1xuICAgICAgICAgICR7T2JqZWN0LmVudHJpZXMobW9kZWwuaW5kZXhlcykuZmlsdGVyKChbXywgZGF0YV0pID0+IGRhdGEudHlwZSA9PT0gJ2xvY2FsJykubWFwKChbaWR4LCBkYXRhXSkgPT4gYHtcbiAgICAgICAgICAgIGluZGV4TmFtZTogJyR7aWR4fScsXG4gICAgICAgICAgICBzb3J0S2V5OiB7XG4gICAgICAgICAgICAgIG5hbWU6ICcke2RhdGEuc29ydH0nLFxuICAgICAgICAgICAgICB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9qZWN0aW9uVHlwZTogUHJvamVjdGlvblR5cGUuJHt0eXBlb2YgZGF0YS5wcm9qZWN0ID09PSAnc3RyaW5nJyA/IGRhdGEucHJvamVjdCA6ICdJTkNMVURFJ30sXG4gICAgICAgICAgICAke0FycmF5LmlzQXJyYXkoZGF0YS5wcm9qZWN0KSA/IGBub25LZXlBdHRyaWJ1dGVzOiBbJHtkYXRhLnByb2plY3QubWFwKGUgPT4gYCcke2V9J2ApLmpvaW4oJywnKX1dLGAgOiAnJ31cbiAgICAgICAgICB9YCkuam9pbignLFxcbicpfVxuICAgICAgICBdLFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbn1gO1xuICB9XG5cbn0iXX0=
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plbi9kYXRhc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsK0JBQTRCO0FBRTVCLDJDQUE2QjtBQUM3QixpQ0FBc0M7QUFDdEMsbURBQStDO0FBTy9DOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxFQUFFLENBQUMsU0FBUztJQUV6QyxZQUFZLEdBQWtDLEVBQVksT0FBeUI7UUFDakYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRDZDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBR2pGLEdBQUcsQ0FBQyxPQUFPLENBQ1QsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQix1QkFBdUIsRUFDdkIsTUFBTSxDQUNQLENBQUM7UUFDRixHQUFHLENBQUMsVUFBVSxDQUNaLGFBQWEsQ0FDZCxDQUFDO1FBRUYsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDM0QsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZCLE1BQU0sRUFBRSxnQkFBZ0I7Z0JBQ3hCLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixPQUFPLEVBQUU7b0JBQ1AsT0FBTyxFQUFFO3dCQUNQLElBQUksRUFBRSxJQUFJO3dCQUNWLElBQUksRUFBRSxJQUFJO3FCQUNYO2lCQUNGO2dCQUNELE1BQU0sRUFBRTtvQkFDTixJQUFJLEVBQUU7d0JBQ0osRUFBRSxFQUFFOzRCQUNGLElBQUksRUFBRSxRQUFROzRCQUNkLFFBQVEsRUFBRSxJQUFJOzRCQUNkLEtBQUssRUFBRSxjQUFjO3lCQUN0Qjt3QkFDRCxFQUFFLEVBQUU7NEJBQ0YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsUUFBUSxFQUFFLElBQUk7NEJBQ2Qs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RSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzs7O1lBR2IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDOzBCQUNsRixHQUFHOzt1QkFFTixJQUFJLENBQUMsSUFBSTs7OzZDQUdhLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7Y0FDMUYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzs7Ozs7O0VBTXZCLENBQUM7SUFDRCxDQUFDO0NBRUY7QUE5SkQsOEJBOEpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgT25lU2NoZW1hIH0gZnJvbSAnZHluYW1vZGItb25ldGFibGUnO1xuaW1wb3J0ICogYXMgcGogZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFBBQ0tBR0VfTkFNRSB9IGZyb20gJy4vY29yZSc7XG5pbXBvcnQgeyBMYXp5VGV4dEZpbGUgfSBmcm9tICcuL2xhenktdGV4dGZpbGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzdG9yZU9wdGlvbnMge1xuICByZWFkb25seSBtb2RlbE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVmaW5pdGlvbkZpbGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgRGF0YXN0b3JlIGNvbnN0cnVjdCBzZXRzIHVwIGEgRHluYW1vREIgc2luZ2xlLXRhYmxlIGRlc2lnbiBmb3IgYSBzZXJ2ZXJsZXNzIHByb2plY3QgdXNpbmcgcHJvamVuLlxuICogVGhpcyBjb25zdHJ1Y3QgZXh0ZW5kcyB0aGUgcHJvamVuIENvbXBvbmVudCB0byBpbmNsdWRlIGRlcGVuZGVuY2llcyBhbmQgZGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVzIHJlcXVpcmVkIGZvciBEeW5hbW9EQiBhbmQgcHJvdmlkZXNcbiAqIG1ldGhvZHMgdG8gZ2VuZXJhdGUgbW9kZWwgYW5kIGNvbnN0cnVjdCBmaWxlcyBiYXNlZCBvbiBhIHNjaGVtYSBkZWZpbml0aW9uIGZpbGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGRhdGFzdG9yZSA9IG5ldyBEYXRhc3RvcmUoYXBwLCB7XG4gKiAgIG1vZGVsTmFtZTogJ1VzZXInLFxuICogICBkZWZpbml0aW9uRmlsZTogJ3NyYy9tb2RlbHMvdXNlci5zY2hlbWEuanNvbicsXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFzdG9yZSBleHRlbmRzIHBqLkNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoYXBwOiBwai5hd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJvdGVjdGVkIG9wdGlvbnM6IERhdGFzdG9yZU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHApO1xuXG4gICAgYXBwLmFkZERlcHMoXG4gICAgICAnZHluYW1vZGItb25ldGFibGUnLFxuICAgICAgJ0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYicsXG4gICAgICAnQGF3cy1zZGsvbGliLWR5bmFtb2RiJyxcbiAgICAgICd1dWlkJyxcbiAgICApO1xuICAgIGFwcC5hZGREZXZEZXBzKFxuICAgICAgJ0B0eXBlcy91dWlkJyxcbiAgICApO1xuXG4gICAgbmV3IHBqLlNhbXBsZUZpbGUodGhpcy5wcm9qZWN0LCB0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGUsIHtcbiAgICAgIGNvbnRlbnRzOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGZvcm1hdDogJ29uZXRhYmxlOjEuMC4wJyxcbiAgICAgICAgdmVyc2lvbjogJzAuMS4wJyxcbiAgICAgICAgaW5kZXhlczoge1xuICAgICAgICAgIHByaW1hcnk6IHtcbiAgICAgICAgICAgIGhhc2g6ICdQSycsXG4gICAgICAgICAgICBzb3J0OiAnU0snLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG1vZGVsczoge1xuICAgICAgICAgIFVzZXI6IHtcbiAgICAgICAgICAgIFBLOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgdmFsdWU6ICdVc2VyIyR7bmFtZX0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFNLOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgdmFsdWU6ICdVc2VyIyR7bmFtZX0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICBuZXcgTGF6eVRleHRGaWxlKHRoaXMucHJvamVjdCwgYHNyYy9nZW5lcmF0ZWQvZGF0YXN0b3JlLiR7dGhpcy5vcHRpb25zLm1vZGVsTmFtZS50b0xvd2VyQ2FzZSgpfS1tb2RlbC5nZW5lcmF0ZWQudHNgLCB7IGNvbnRlbnQ6IHRoaXMuY3JlYXRlTW9kZWxGaWxlLmJpbmQodGhpcykgfSk7XG4gICAgbmV3IExhenlUZXh0RmlsZSh0aGlzLnByb2plY3QsIGBzcmMvZ2VuZXJhdGVkL2RhdGFzdG9yZS4ke3RoaXMub3B0aW9ucy5tb2RlbE5hbWUudG9Mb3dlckNhc2UoKX0tY29uc3RydWN0LmdlbmVyYXRlZC50c2AsIHsgY29udGVudDogdGhpcy5jcmVhdGVDb25zdHJ1Y3RGaWxlLmJpbmQodGhpcykgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlTW9kZWxGaWxlKGZpbGU6IHBqLkZpbGVCYXNlKTogc3RyaW5nIHtcbiAgICBjb25zdCBtb2RlbCA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgdGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlKSkudG9TdHJpbmcoKSkgYXMgT25lU2NoZW1hO1xuXG4gICAgcmV0dXJuIGAvLyAke2ZpbGUubWFya2VyfVxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IE1vZGVsLCBUYWJsZSwgRW50aXR5IH0gZnJvbSAnZHluYW1vZGItb25ldGFibGUnO1xuaW1wb3J0IHsgZW52IH0gZnJvbSAncHJvY2Vzcyc7XG5pbXBvcnQgeyBEeW5hbW8gfSBmcm9tICdkeW5hbW9kYi1vbmV0YWJsZS9EeW5hbW8nO1xuaW1wb3J0IHsgRHluYW1vREJDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtZHluYW1vZGInO1xuXG5leHBvcnQgY29uc3QgZHluYW1vQ2xpZW50ID0gbmV3IER5bmFtbyh7IGNsaWVudDogbmV3IER5bmFtb0RCQ2xpZW50KHt9KSB9KVxuZXhwb3J0IGNvbnN0IFRBQkxFX05BTUU6IHN0cmluZyA9IGVudi5UQUJMRSE7XG5cbiR7T2JqZWN0LmVudHJpZXMobW9kZWwuaW5kZXhlcykubWFwKChbaWR4LCBkYXRhXSkgPT4gYGV4cG9ydCBjb25zdCBJbmRleF8ke2lkeH1fTmFtZSA9ICcke2lkeH0nO1xuZXhwb3J0IGNvbnN0IEluZGV4XyR7aWR4fV9IYXNoS2V5ID0gJyR7ZGF0YS5oYXNofSc7XG5leHBvcnQgY29uc3QgSW5kZXhfJHtpZHh9X1NvcnRLZXkgPSAnJHtkYXRhLnNvcnR9JztcbmApLmpvaW4oJ1xcbicpfVxuXG5leHBvcnQgY29uc3QgU2NoZW1hID0gJHt0aGlzLnN0cmluZ2lmeU1vZGVsKG1vZGVsKX07XG5cbmV4cG9ydCBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSh7XG4gIGNsaWVudDogZHluYW1vQ2xpZW50LFxuICBuYW1lOiBUQUJMRV9OQU1FLFxuICBzY2hlbWE6IFNjaGVtYSxcbiAgaXNvRGF0ZXM6IHRydWUsXG4gIC8vIGxvZ2dlcjogdHJ1ZSxcbiAgaGlkZGVuOiBmYWxzZSxcbn0pO1xuXG4ke09iamVjdC5lbnRyaWVzKG1vZGVsLm1vZGVscykubWFwKChbdHlwZU5hbWUsIF9dKSA9PiBgZXhwb3J0IHR5cGUgJHt0eXBlTmFtZX1UeXBlID0gRW50aXR5PHR5cGVvZiBTY2hlbWEubW9kZWxzLiR7dHlwZU5hbWV9PjtcbmV4cG9ydCBjb25zdCAke3R5cGVOYW1lfTogTW9kZWw8JHt0eXBlTmFtZX1UeXBlPiA9IHRhYmxlLmdldE1vZGVsPCR7dHlwZU5hbWV9VHlwZT4oJyR7dHlwZU5hbWV9Jyk7XG5gKS5qb2luKCdcXG4nKX1cblxuYDtcbiAgfVxuXG4gIHByaXZhdGUgc3RyaW5naWZ5TW9kZWwobW9kZWw6IE9uZVNjaGVtYSkge1xuICAgIC8vIGFycmF5LCBiaW5hcnksIGJvb2xlYW4sICAgICAgICAgZGF0ZSwgbnVtYmVyLCBvYmplY3QsIHNldCwgc3RyaW5nXG4gICAgLy8gQXJyYXksIEJpbmFyeSwgQm9vbGVhbiwgQnVmZmVyLCBEYXRlLCBOdW1iZXIsIE9iamVjdCwgU2V0LCBTdHJpbmdcblxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShtb2RlbCwgbnVsbCwgMilcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJhcnJheVwiL2csICdcInR5cGVcIjogQXJyYXknKVxuICAgICAgLnJlcGxhY2UoL1widHlwZVwiOiBcImJpbmFyeVwiL2csICdcInR5cGVcIjogQmluYXJ5JylcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJib29sZWFuXCIvZywgJ1widHlwZVwiOiBCb29sZWFuJylcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJkYXRlXCIvZywgJ1widHlwZVwiOiBEYXRlJylcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJudW1iZXJcIi9nLCAnXCJ0eXBlXCI6IE51bWJlcicpXG4gICAgICAucmVwbGFjZSgvXCJ0eXBlXCI6IFwib2JqZWN0XCIvZywgJ1widHlwZVwiOiBPYmplY3QnKVxuICAgICAgLnJlcGxhY2UoL1widHlwZVwiOiBcInNldFwiL2csICdcInR5cGVcIjogU2V0JylcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJzdHJpbmdcIi9nLCAnXCJ0eXBlXCI6IFN0cmluZycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUNvbnN0cnVjdEZpbGUoZmlsZTogcGouRmlsZUJhc2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1vZGVsID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCB0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGUpKS50b1N0cmluZygpKSBhcyBPbmVTY2hlbWE7XG5cbiAgICByZXR1cm4gYC8vICR7ZmlsZS5tYXJrZXJ9XG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IHsgQXR0cmlidXRlVHlwZSwgUHJvamVjdGlvblR5cGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBTaW5nbGVUYWJsZURhdGFzdG9yZSwgU2luZ2xlVGFibGVEYXRhc3RvcmVQcm9wcyB9IGZyb20gJyR7UEFDS0FHRV9OQU1FfS9saWIvY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgJHt0aGlzLm9wdGlvbnMubW9kZWxOYW1lfURhdGFzdG9yZVByb3BzIGV4dGVuZHMgT21pdDxTaW5nbGVUYWJsZURhdGFzdG9yZVByb3BzLCAnZGVzaWduJz4ge1xuICAvL1xufVxuXG5leHBvcnQgY2xhc3MgJHt0aGlzLm9wdGlvbnMubW9kZWxOYW1lfURhdGFzdG9yZSBleHRlbmRzIFNpbmdsZVRhYmxlRGF0YXN0b3JlIHtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogJHt0aGlzLm9wdGlvbnMubW9kZWxOYW1lfURhdGFzdG9yZVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGVzaWduOiB7XG4gICAgICAgIHByaW1hcnlLZXk6IHtcbiAgICAgICAgICBwYXJ0aXRpb25LZXk6ICcke21vZGVsLmluZGV4ZXMucHJpbWFyeS5oYXNofScsXG4gICAgICAgICAgJHttb2RlbC5pbmRleGVzLnByaW1hcnkuc29ydCA/IGBzb3J0S2V5OiAnJHttb2RlbC5pbmRleGVzLnByaW1hcnkuc29ydH0nLGAgOiAnJ31cbiAgICAgICAgfSxcbiAgICAgICAgLy8gdGltZVRvTGl2ZUF0dHJpYnV0ZTogJ1RPRE8nLFxuICAgICAgICBnbG9iYWxJbmRleGVzOiBbXG4gICAgICAgICAgJHtPYmplY3QuZW50cmllcyhtb2RlbC5pbmRleGVzKS5maWx0ZXIoKFtpZHgsIGRhdGFdKSA9PiBpZHggIT09ICdwcmltYXJ5JyAmJiBkYXRhLnR5cGUgIT09ICdsb2NhbCcpLm1hcCgoW2lkeCwgZGF0YV0pID0+IGB7XG4gICAgICAgICAgICBpbmRleE5hbWU6ICcke2lkeH0nLFxuICAgICAgICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgICAgICAgIG5hbWU6ICcke2RhdGEuaGFzaH0nLFxuICAgICAgICAgICAgICB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAke2RhdGEuc29ydCA/IGBzb3J0S2V5OiB7XG4gICAgICAgICAgICAgIG5hbWU6ICcke2RhdGEuc29ydH0nLFxuICAgICAgICAgICAgICB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgICAgIH0sYCA6ICcnfVxuICAgICAgICAgICAgcHJvamVjdGlvblR5cGU6IFByb2plY3Rpb25UeXBlLiR7dHlwZW9mIGRhdGEucHJvamVjdCA9PT0gJ3N0cmluZycgPyBkYXRhLnByb2plY3QudG9VcHBlckNhc2UoKSA6ICdJTkNMVURFJ30sXG4gICAgICAgICAgICAke0FycmF5LmlzQXJyYXkoZGF0YS5wcm9qZWN0KSA/IGBub25LZXlBdHRyaWJ1dGVzOiBbJHtkYXRhLnByb2plY3QubWFwKGUgPT4gYCcke2V9J2ApLmpvaW4oJywnKX1dLGAgOiAnJ31cbiAgICAgICAgICB9YCkuam9pbignLFxcbicpfVxuICAgICAgICBdLFxuICAgICAgICBsb2NhbEluZGV4ZXM6IFtcbiAgICAgICAgICAke09iamVjdC5lbnRyaWVzKG1vZGVsLmluZGV4ZXMpLmZpbHRlcigoW18sIGRhdGFdKSA9PiBkYXRhLnR5cGUgPT09ICdsb2NhbCcpLm1hcCgoW2lkeCwgZGF0YV0pID0+IGB7XG4gICAgICAgICAgICBpbmRleE5hbWU6ICcke2lkeH0nLFxuICAgICAgICAgICAgc29ydEtleToge1xuICAgICAgICAgICAgICBuYW1lOiAnJHtkYXRhLnNvcnR9JyxcbiAgICAgICAgICAgICAgdHlwZTogQXR0cmlidXRlVHlwZS5TVFJJTkcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvamVjdGlvblR5cGU6IFByb2plY3Rpb25UeXBlLiR7dHlwZW9mIGRhdGEucHJvamVjdCA9PT0gJ3N0cmluZycgPyBkYXRhLnByb2plY3QgOiAnSU5DTFVERSd9LFxuICAgICAgICAgICAgJHtBcnJheS5pc0FycmF5KGRhdGEucHJvamVjdCkgPyBgbm9uS2V5QXR0cmlidXRlczogWyR7ZGF0YS5wcm9qZWN0Lm1hcChlID0+IGAnJHtlfSdgKS5qb2luKCcsJyl9XSxgIDogJyd9XG4gICAgICAgICAgfWApLmpvaW4oJyxcXG4nKX1cbiAgICAgICAgXSxcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59YDtcbiAgfVxuXG59Il19
|
package/lib/projen/graphql.d.ts
CHANGED
|
@@ -3,6 +3,17 @@ export interface GraphQlApiOptions {
|
|
|
3
3
|
readonly apiName: string;
|
|
4
4
|
readonly definitionFile: string;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* The GraphQlApi construct sets up a GraphQL API for a serverless project using projen.
|
|
8
|
+
* This construct extends the projen Component to include dependencies and development dependencies required for GraphQL
|
|
9
|
+
* and provides methods to generate TypeScript types and resolvers from a GraphQL schema definition file.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const graphQlApi = new GraphQlApi(app, {
|
|
13
|
+
* apiName: 'MyGraphQlApi',
|
|
14
|
+
* definitionFile: 'src/graphql/schema.graphql',
|
|
15
|
+
* });
|
|
16
|
+
*/
|
|
6
17
|
export declare class GraphQlApi extends pj.Component {
|
|
7
18
|
protected options: GraphQlApiOptions;
|
|
8
19
|
protected readonly codegenConfigFileName: string;
|
package/lib/projen/graphql.js
CHANGED
|
@@ -26,6 +26,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.GraphQlApi = void 0;
|
|
27
27
|
const pj = __importStar(require("projen"));
|
|
28
28
|
const core_1 = require("./core");
|
|
29
|
+
/**
|
|
30
|
+
* The GraphQlApi construct sets up a GraphQL API for a serverless project using projen.
|
|
31
|
+
* This construct extends the projen Component to include dependencies and development dependencies required for GraphQL
|
|
32
|
+
* and provides methods to generate TypeScript types and resolvers from a GraphQL schema definition file.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* const graphQlApi = new GraphQlApi(app, {
|
|
36
|
+
* apiName: 'MyGraphQlApi',
|
|
37
|
+
* definitionFile: 'src/graphql/schema.graphql',
|
|
38
|
+
* });
|
|
39
|
+
*/
|
|
29
40
|
class GraphQlApi extends pj.Component {
|
|
30
41
|
constructor(app, options) {
|
|
31
42
|
super(app);
|
|
@@ -90,4 +101,4 @@ type User {
|
|
|
90
101
|
}
|
|
91
102
|
}
|
|
92
103
|
exports.GraphQlApi = GraphQlApi;
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vZ3JhcGhxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE2QjtBQUM3QixpQ0FBc0M7QUFPdEM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEsVUFBVyxTQUFRLEVBQUUsQ0FBQyxTQUFTO0lBSTFDLFlBQVksR0FBa0MsRUFBWSxPQUEwQjtRQUNsRixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFENkMsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFHbEYsR0FBRyxDQUFDLFVBQVUsQ0FDWixzQkFBc0IsRUFDdEIsNkJBQTZCLEVBQzdCLHVDQUF1QyxFQUN2QyxtQkFBbUIsRUFDbkIsbUJBQW1CLENBQ3BCLENBQUM7UUFDRixHQUFHLENBQUMsT0FBTyxDQUNULFNBQVMsRUFDVCxvQkFBb0IsRUFDcEIsU0FBUyxFQUNULHlDQUF5QyxDQUMxQyxDQUFDO1FBRUYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLG1CQUFtQixPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUM7UUFDcEYsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO1lBQ2hGLElBQUksRUFBRSxzQkFBc0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3hELFdBQVcsRUFBRSwrQ0FBK0M7U0FDN0QsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFOUMsTUFBTSxhQUFhLEdBQUc7WUFDcEIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYztZQUNuQyxNQUFNLEVBQUU7Z0JBQ04sT0FBTyxFQUFFO29CQUNQLE9BQU8sRUFBRSxRQUFRO29CQUNqQixNQUFNLEVBQUUsUUFBUTtpQkFDakI7YUFDRjtZQUNELFNBQVMsRUFBRTtnQkFDVCxDQUFDLDJCQUEyQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsRUFBRTtvQkFDcEYsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDO2lCQUNoRDthQUNGO1NBQ0YsQ0FBQztRQUVGLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUN4RCxHQUFHLEVBQUUsYUFBYTtTQUNuQixDQUFDLENBQUM7UUFFSCxNQUFNLGFBQWEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSx5QkFBeUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDcEksYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLGFBQWEsQ0FBQyxNQUFNOzs7K0NBR0wsbUJBQVk7dUNBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTs7bUJBRXRELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzs7OztlQUl4QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87O3FEQUVrQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87OztrQkFHdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzZCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYzs7OztFQUl0RCxDQUFDLENBQUM7UUFFQSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUMzRCxRQUFRLEVBQUU7Ozs7Ozs7RUFPZDtTQUNHLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FFRjtBQWxGRCxnQ0FrRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwaiBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgUEFDS0FHRV9OQU1FIH0gZnJvbSAnLi9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBHcmFwaFFsQXBpT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGFwaU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVmaW5pdGlvbkZpbGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgR3JhcGhRbEFwaSBjb25zdHJ1Y3Qgc2V0cyB1cCBhIEdyYXBoUUwgQVBJIGZvciBhIHNlcnZlcmxlc3MgcHJvamVjdCB1c2luZyBwcm9qZW4uXG4gKiBUaGlzIGNvbnN0cnVjdCBleHRlbmRzIHRoZSBwcm9qZW4gQ29tcG9uZW50IHRvIGluY2x1ZGUgZGVwZW5kZW5jaWVzIGFuZCBkZXZlbG9wbWVudCBkZXBlbmRlbmNpZXMgcmVxdWlyZWQgZm9yIEdyYXBoUUxcbiAqIGFuZCBwcm92aWRlcyBtZXRob2RzIHRvIGdlbmVyYXRlIFR5cGVTY3JpcHQgdHlwZXMgYW5kIHJlc29sdmVycyBmcm9tIGEgR3JhcGhRTCBzY2hlbWEgZGVmaW5pdGlvbiBmaWxlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBncmFwaFFsQXBpID0gbmV3IEdyYXBoUWxBcGkoYXBwLCB7XG4gKiAgIGFwaU5hbWU6ICdNeUdyYXBoUWxBcGknLFxuICogICBkZWZpbml0aW9uRmlsZTogJ3NyYy9ncmFwaHFsL3NjaGVtYS5ncmFwaHFsJyxcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgR3JhcGhRbEFwaSBleHRlbmRzIHBqLkNvbXBvbmVudCB7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvZGVnZW5Db25maWdGaWxlTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFwcDogcGouYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAsIHByb3RlY3RlZCBvcHRpb25zOiBHcmFwaFFsQXBpT3B0aW9ucykge1xuICAgIHN1cGVyKGFwcCk7XG5cbiAgICBhcHAuYWRkRGV2RGVwcyhcbiAgICAgICdAZ3JhcGhxbC1jb2RlZ2VuL2NsaScsXG4gICAgICAnQGdyYXBocWwtY29kZWdlbi90eXBlc2NyaXB0JyxcbiAgICAgICdAZ3JhcGhxbC1jb2RlZ2VuL3R5cGVzY3JpcHQtcmVzb2x2ZXJzJyxcbiAgICAgICdAdHlwZXMvYXdzLWxhbWJkYScsXG4gICAgICAnQHR5cGVzL2xhbWJkYS1sb2cnLFxuICAgICk7XG4gICAgYXBwLmFkZERlcHMoXG4gICAgICAnZ3JhcGhxbCcsXG4gICAgICAnQGF3cy1hcHBzeW5jL3V0aWxzJyxcbiAgICAgICdlc2J1aWxkJyxcbiAgICAgICdAYXdzLWNkay9hd3MtY29nbml0by1pZGVudGl0eXBvb2wtYWxwaGEnLFxuICAgICk7XG5cbiAgICB0aGlzLmNvZGVnZW5Db25maWdGaWxlTmFtZSA9IGBncmFwaHFsLWNvZGVnZW4uJHtvcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX0ueW1sYDtcbiAgICBjb25zdCBnZW5lcmF0ZVRhc2sgPSBhcHAuYWRkVGFzayhgZ2VuZXJhdGU6YXBpOiR7b3B0aW9ucy5hcGlOYW1lLnRvTG93ZXJDYXNlKCl9YCwge1xuICAgICAgZXhlYzogYGdyYXBocWwtY29kZWdlbiAtYyAke3RoaXMuY29kZWdlbkNvbmZpZ0ZpbGVOYW1lfWAsXG4gICAgICBkZXNjcmlwdGlvbjogJ0dlbmVyYXRlIFR5cGVzIGZyb20gdGhlIEdyYXBoUUwgc3BlY2lmaWNhdGlvbicsXG4gICAgfSk7XG4gICAgYXBwLnByZUNvbXBpbGVUYXNrLnByZXBlbmRTcGF3bihnZW5lcmF0ZVRhc2spO1xuXG4gICAgY29uc3QgY29kZWdlbkNvbmZpZyA9IHtcbiAgICAgIHNjaGVtYTogdGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIHNjYWxhcnM6IHtcbiAgICAgICAgICBBV1NEYXRlOiAnc3RyaW5nJyxcbiAgICAgICAgICBBV1NVUkw6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGdlbmVyYXRlczoge1xuICAgICAgICBbYC4vc3JjL2dlbmVyYXRlZC9ncmFwaHFsLiR7dGhpcy5vcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX0tbW9kZWwuZ2VuZXJhdGVkLnRzYF06IHtcbiAgICAgICAgICBwbHVnaW5zOiBbJ3R5cGVzY3JpcHQnLCAndHlwZXNjcmlwdC1yZXNvbHZlcnMnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIG5ldyBwai5ZYW1sRmlsZSh0aGlzLnByb2plY3QsIHRoaXMuY29kZWdlbkNvbmZpZ0ZpbGVOYW1lLCB7XG4gICAgICBvYmo6IGNvZGVnZW5Db25maWcsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RGaWxlID0gbmV3IHBqLlRleHRGaWxlKHRoaXMucHJvamVjdCwgYHNyYy9nZW5lcmF0ZWQvZ3JhcGhxbC4ke3RoaXMub3B0aW9ucy5hcGlOYW1lLnRvTG93ZXJDYXNlKCl9LWFwaS5nZW5lcmF0ZWQudHNgKTtcbiAgICBjb25zdHJ1Y3RGaWxlLmFkZExpbmUoYC8vICR7Y29uc3RydWN0RmlsZS5tYXJrZXJ9XG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBHcmFwaFFsQXBpLCBHcmFwaFFsQXBpUHJvcHMgfSBmcm9tICcke1BBQ0tBR0VfTkFNRX0vbGliL2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUmVzb2x2ZXJzIH0gZnJvbSAnLi9ncmFwaHFsLiR7dGhpcy5vcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX0tbW9kZWwuZ2VuZXJhdGVkJztcblxuZXhwb3J0IGludGVyZmFjZSAke3RoaXMub3B0aW9ucy5hcGlOYW1lfUdyYXBoUWxBcGlQcm9wcyBleHRlbmRzIE9taXQ8R3JhcGhRbEFwaVByb3BzLCAnZGVmaW5pdGlvbkZpbGVOYW1lJyB8ICdhcGlOYW1lJz4ge1xuICAvL1xufVxuXG5leHBvcnQgY2xhc3MgJHt0aGlzLm9wdGlvbnMuYXBpTmFtZX1HcmFwaFFsQXBpIGV4dGVuZHMgR3JhcGhRbEFwaTxSZXNvbHZlcnM+IHtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogJHt0aGlzLm9wdGlvbnMuYXBpTmFtZX1HcmFwaFFsQXBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgYXBpTmFtZTogJyR7dGhpcy5vcHRpb25zLmFwaU5hbWV9JyxcbiAgICAgIGRlZmluaXRpb25GaWxlTmFtZTogJyR7dGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlfScsXG4gICAgfSk7XG4gIH1cblxufWApO1xuXG4gICAgbmV3IHBqLlNhbXBsZUZpbGUodGhpcy5wcm9qZWN0LCB0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGUsIHtcbiAgICAgIGNvbnRlbnRzOiBgdHlwZSBRdWVyeSB7XG4gICB1c2VyczogW1VzZXJdXG59XG5cbnR5cGUgVXNlciB7XG4gICBpZDogSUQhXG4gICBuYW1lOiBTdHJpbmdcbn1gLFxuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==
|
package/lib/projen/rest-api.d.ts
CHANGED
|
@@ -4,14 +4,66 @@ export interface RestApiOptions {
|
|
|
4
4
|
readonly apiName: string;
|
|
5
5
|
readonly definitionFile: string;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* The RestApi construct sets up an OpenAPI-based REST API for a serverless project using projen.
|
|
9
|
+
* This construct extends the projen Component to include dependencies and development dependencies required for OpenAPI and AWS Lambda,
|
|
10
|
+
* and provides methods to generate TypeScript types from the OpenAPI definition file. It also generates sample handler files for the API endpoints.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const restApi = new RestApi(app, {
|
|
14
|
+
* apiName: 'MyRestApi',
|
|
15
|
+
* definitionFile: 'src/openapi/schema.yaml',
|
|
16
|
+
* });
|
|
17
|
+
*/
|
|
7
18
|
export declare class RestApi extends pj.Component {
|
|
8
19
|
protected options: RestApiOptions;
|
|
20
|
+
/**
|
|
21
|
+
* Creates an instance of RestApi.
|
|
22
|
+
*
|
|
23
|
+
* @param app - The AWS CDK TypeScript app.
|
|
24
|
+
* @param options - The options for configuring the RestApi.
|
|
25
|
+
*/
|
|
9
26
|
constructor(app: pj.awscdk.AwsCdkTypeScriptApp, options: RestApiOptions);
|
|
27
|
+
/**
|
|
28
|
+
* Creates the construct file content for the generated REST API.
|
|
29
|
+
*
|
|
30
|
+
* @param file - The file object to create content for.
|
|
31
|
+
* @returns The content of the construct file.
|
|
32
|
+
*/
|
|
10
33
|
protected createConstructFile(file: pj.FileBase): string;
|
|
34
|
+
/**
|
|
35
|
+
* Validates a path reference in the OpenAPI specification.
|
|
36
|
+
*
|
|
37
|
+
* @param apiSpec - The OpenAPI specification object.
|
|
38
|
+
* @param path - The path reference to validate.
|
|
39
|
+
* @param visited - The list of visited paths to detect cycles.
|
|
40
|
+
* @returns True if the path reference is valid, otherwise false.
|
|
41
|
+
* @throws If the path reference is invalid or cyclical.
|
|
42
|
+
*/
|
|
11
43
|
protected validatePathRef(apiSpec: OpenAPI3, path: string, visited?: string[]): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Adds a sample handler file for a REST API resource.
|
|
46
|
+
*
|
|
47
|
+
* @param files - The collection of file generators.
|
|
48
|
+
* @param apiSpec - The OpenAPI specification object.
|
|
49
|
+
* @param path - The path of the API resource.
|
|
50
|
+
* @param method - The HTTP method of the API resource.
|
|
51
|
+
*/
|
|
12
52
|
protected addRestResourceHandlerSample(files: {
|
|
13
53
|
[fileName: string]: () => string;
|
|
14
54
|
}, apiSpec: OpenAPI3, path: string, method: string): void;
|
|
55
|
+
/**
|
|
56
|
+
* Creates the entry file content for a REST API handler.
|
|
57
|
+
*
|
|
58
|
+
* @param method - The HTTP method of the API resource.
|
|
59
|
+
* @param operationId - The operation ID of the API resource.
|
|
60
|
+
* @returns The content of the entry file.
|
|
61
|
+
*/
|
|
15
62
|
protected createEntryFile(method: string, operationId: string): string;
|
|
63
|
+
/**
|
|
64
|
+
* Generates sample handler files for the REST API based on the OpenAPI specification.
|
|
65
|
+
*
|
|
66
|
+
* @returns The collection of file generators for the sample handler files.
|
|
67
|
+
*/
|
|
16
68
|
private generateSampleHandlerFiles;
|
|
17
69
|
}
|