@resistdesign/voltra 3.0.0-alpha.3 → 3.0.0-alpha.4
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 +75 -0
- package/SearchTypes-DjN6YQzE.d.ts +577 -0
- package/Types-C7XjUjoF.d.ts +240 -0
- package/Validation-CFP59oIP.d.ts +226 -0
- package/api/index.d.ts +6 -0
- package/api/index.js +7968 -0
- package/app/index.d.ts +5 -0
- package/app/index.js +810 -0
- package/common/Testing/CLI.js +432 -0
- package/common/index.d.ts +4 -0
- package/common/index.js +1760 -0
- package/iac/index.d.ts +2 -0
- package/iac/index.js +1661 -0
- package/iac/packs/index.d.ts +1 -0
- package/iac/packs/index.js +1620 -0
- package/index-BkFZlfit.d.ts +112 -0
- package/index-C3-iD9Mh.d.ts +690 -0
- package/index-DZ2BB4iX.d.ts +5357 -0
- package/{src/iac/types/IaCTypes.d.ts → index-DcvJOZ_c.d.ts} +1018 -23
- package/index-IokxSNxm.d.ts +745 -0
- package/index.d.ts +13 -0
- package/index.js +10973 -0
- package/package.json +40 -41
- package/src/api/DataAccessControl.d.ts +0 -85
- package/src/api/DataAccessControl.js +0 -159
- package/src/api/ORM/DACUtils.d.ts +0 -60
- package/src/api/ORM/DACUtils.js +0 -197
- package/src/api/ORM/ListItemUtils.d.ts +0 -7
- package/src/api/ORM/ListItemUtils.js +0 -22
- package/src/api/ORM/ORMRouteMap.d.ts +0 -19
- package/src/api/ORM/ORMRouteMap.js +0 -82
- package/src/api/ORM/TypeInfoORMService.d.ts +0 -103
- package/src/api/ORM/TypeInfoORMService.js +0 -581
- package/src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.d.ts +0 -63
- package/src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.js +0 -2
- package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.d.ts +0 -36
- package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.js +0 -282
- package/src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.d.ts +0 -90
- package/src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.js +0 -2
- package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.d.ts +0 -45
- package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.js +0 -127
- package/src/api/ORM/drivers/S3FileItemDBDriver.d.ts +0 -44
- package/src/api/ORM/drivers/S3FileItemDBDriver.js +0 -182
- package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.d.ts +0 -12
- package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.js +0 -20
- package/src/api/ORM/drivers/common/Types.d.ts +0 -77
- package/src/api/ORM/drivers/common/Types.js +0 -14
- package/src/api/ORM/drivers/common/index.d.ts +0 -2
- package/src/api/ORM/drivers/common/index.js +0 -18
- package/src/api/ORM/drivers/index.d.ts +0 -3
- package/src/api/ORM/drivers/index.js +0 -19
- package/src/api/ORM/index.d.ts +0 -4
- package/src/api/ORM/index.js +0 -43
- package/src/api/Router/AWS.d.ts +0 -26
- package/src/api/Router/AWS.js +0 -76
- package/src/api/Router/Auth.d.ts +0 -2
- package/src/api/Router/Auth.js +0 -9
- package/src/api/Router/CORS.d.ts +0 -6
- package/src/api/Router/CORS.js +0 -27
- package/src/api/Router/Types.d.ts +0 -71
- package/src/api/Router/Types.js +0 -2
- package/src/api/Router/index.d.ts +0 -18
- package/src/api/Router/index.js +0 -145
- package/src/api/index.d.ts +0 -3
- package/src/api/index.js +0 -39
- package/src/app/index.d.ts +0 -1
- package/src/app/index.js +0 -37
- package/src/app/utils/ApplicationState.d.ts +0 -52
- package/src/app/utils/ApplicationState.js +0 -86
- package/src/app/utils/ApplicationStateLoader.d.ts +0 -46
- package/src/app/utils/ApplicationStateLoader.js +0 -57
- package/src/app/utils/Controller.d.ts +0 -4
- package/src/app/utils/Controller.js +0 -47
- package/src/app/utils/Debug.d.ts +0 -4
- package/src/app/utils/Debug.js +0 -30
- package/src/app/utils/EasyLayout.d.ts +0 -49
- package/src/app/utils/EasyLayout.js +0 -122
- package/src/app/utils/Route.d.ts +0 -28
- package/src/app/utils/Route.js +0 -102
- package/src/app/utils/Service.d.ts +0 -12
- package/src/app/utils/Service.js +0 -34
- package/src/app/utils/TypeInfoORMAPIUtils.d.ts +0 -20
- package/src/app/utils/TypeInfoORMAPIUtils.js +0 -62
- package/src/app/utils/TypeInfoORMClient.d.ts +0 -24
- package/src/app/utils/TypeInfoORMClient.js +0 -69
- package/src/app/utils/index.d.ts +0 -8
- package/src/app/utils/index.js +0 -24
- package/src/common/CommandLine/collectRequiredEnvironmentVariables.d.ts +0 -1
- package/src/common/CommandLine/collectRequiredEnvironmentVariables.js +0 -16
- package/src/common/HelperTypes.d.ts +0 -3
- package/src/common/HelperTypes.js +0 -2
- package/src/common/IdGeneration/getSimpleId.d.ts +0 -4
- package/src/common/IdGeneration/getSimpleId.js +0 -16
- package/src/common/IdGeneration/index.d.ts +0 -1
- package/src/common/IdGeneration/index.js +0 -17
- package/src/common/ItemRelationshipInfoTypes.d.ts +0 -46
- package/src/common/ItemRelationshipInfoTypes.js +0 -20
- package/src/common/ItemRelationships/ItemRelationshipValidation.d.ts +0 -10
- package/src/common/ItemRelationships/ItemRelationshipValidation.js +0 -43
- package/src/common/ItemRelationships/index.d.ts +0 -1
- package/src/common/ItemRelationships/index.js +0 -17
- package/src/common/Logging/Utils.d.ts +0 -10
- package/src/common/Logging/Utils.js +0 -33
- package/src/common/Logging/index.d.ts +0 -1
- package/src/common/Logging/index.js +0 -17
- package/src/common/Routing.d.ts +0 -25
- package/src/common/Routing.js +0 -102
- package/src/common/SearchTypes.d.ts +0 -98
- package/src/common/SearchTypes.js +0 -39
- package/src/common/SearchUtils.d.ts +0 -22
- package/src/common/SearchUtils.js +0 -134
- package/src/common/SearchValidation.d.ts +0 -17
- package/src/common/SearchValidation.js +0 -90
- package/src/common/Storyboarding/Types.d.ts +0 -25
- package/src/common/Storyboarding/Types.js +0 -2
- package/src/common/StringTransformers.d.ts +0 -17
- package/src/common/StringTransformers.js +0 -36
- package/src/common/Testing/CLI.d.ts +0 -2
- package/src/common/Testing/CLI.js +0 -56
- package/src/common/Testing/Types.d.ts +0 -117
- package/src/common/Testing/Types.js +0 -19
- package/src/common/Testing/Utils.d.ts +0 -48
- package/src/common/Testing/Utils.js +0 -334
- package/src/common/Testing/index.d.ts +0 -2
- package/src/common/Testing/index.js +0 -18
- package/src/common/TypeInfoDataItemUtils.d.ts +0 -10
- package/src/common/TypeInfoDataItemUtils.js +0 -55
- package/src/common/TypeInfoORM/Types.d.ts +0 -76
- package/src/common/TypeInfoORM/Types.js +0 -55
- package/src/common/TypeInfoORM/index.d.ts +0 -1
- package/src/common/TypeInfoORM/index.js +0 -17
- package/src/common/TypeParsing/Constants.d.ts +0 -1
- package/src/common/TypeParsing/Constants.js +0 -4
- package/src/common/TypeParsing/ParsingUtils/Constants.d.ts +0 -5
- package/src/common/TypeParsing/ParsingUtils/Constants.js +0 -8
- package/src/common/TypeParsing/ParsingUtils/checkType.d.ts +0 -8
- package/src/common/TypeParsing/ParsingUtils/checkType.js +0 -46
- package/src/common/TypeParsing/ParsingUtils/checkUnionType.d.ts +0 -6
- package/src/common/TypeParsing/ParsingUtils/checkUnionType.js +0 -15
- package/src/common/TypeParsing/ParsingUtils/extractCommentTags.d.ts +0 -2
- package/src/common/TypeParsing/ParsingUtils/extractCommentTags.js +0 -105
- package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.d.ts +0 -6
- package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.js +0 -42
- package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.d.ts +0 -8
- package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.js +0 -14
- package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.d.ts +0 -5
- package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.js +0 -27
- package/src/common/TypeParsing/ParsingUtils/getTypeInfo.d.ts +0 -3
- package/src/common/TypeParsing/ParsingUtils/getTypeInfo.js +0 -27
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoField.d.ts +0 -3
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoField.js +0 -44
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.d.ts +0 -4
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.js +0 -28
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.d.ts +0 -4
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.js +0 -105
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.d.ts +0 -4
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.js +0 -20
- package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.d.ts +0 -3
- package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.js +0 -17
- package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.d.ts +0 -4
- package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.js +0 -49
- package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.d.ts +0 -2
- package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.js +0 -24
- package/src/common/TypeParsing/TypeInfo.d.ts +0 -142
- package/src/common/TypeParsing/TypeInfo.js +0 -13
- package/src/common/TypeParsing/TypeMapping.d.ts +0 -9
- package/src/common/TypeParsing/TypeMapping.js +0 -32
- package/src/common/TypeParsing/TypeParsing.d.ts +0 -5
- package/src/common/TypeParsing/TypeParsing.js +0 -39
- package/src/common/TypeParsing/Utils.d.ts +0 -21
- package/src/common/TypeParsing/Utils.js +0 -94
- package/src/common/TypeParsing/Validation.d.ts +0 -92
- package/src/common/TypeParsing/Validation.js +0 -340
- package/src/common/TypeParsing/index.d.ts +0 -5
- package/src/common/TypeParsing/index.js +0 -44
- package/src/common/index.d.ts +0 -11
- package/src/common/index.js +0 -47
- package/src/iac/SimpleCFT.d.ts +0 -48
- package/src/iac/SimpleCFT.js +0 -82
- package/src/iac/index.d.ts +0 -9
- package/src/iac/index.js +0 -48
- package/src/iac/packs/auth/user-management.d.ts +0 -14
- package/src/iac/packs/auth/user-management.js +0 -302
- package/src/iac/packs/auth.d.ts +0 -19
- package/src/iac/packs/auth.js +0 -47
- package/src/iac/packs/build/utils.d.ts +0 -100
- package/src/iac/packs/build/utils.js +0 -23
- package/src/iac/packs/build.d.ts +0 -29
- package/src/iac/packs/build.js +0 -217
- package/src/iac/packs/cdn.d.ts +0 -12
- package/src/iac/packs/cdn.js +0 -126
- package/src/iac/packs/cloud-function.d.ts +0 -17
- package/src/iac/packs/cloud-function.js +0 -69
- package/src/iac/packs/database.d.ts +0 -29
- package/src/iac/packs/database.js +0 -27
- package/src/iac/packs/dns.d.ts +0 -13
- package/src/iac/packs/dns.js +0 -26
- package/src/iac/packs/file-storage.d.ts +0 -14
- package/src/iac/packs/file-storage.js +0 -71
- package/src/iac/packs/gateway.d.ts +0 -27
- package/src/iac/packs/gateway.js +0 -342
- package/src/iac/packs/index.d.ts +0 -11
- package/src/iac/packs/index.js +0 -27
- package/src/iac/packs/repo.d.ts +0 -10
- package/src/iac/packs/repo.js +0 -34
- package/src/iac/packs/ssl-certificate.d.ts +0 -10
- package/src/iac/packs/ssl-certificate.js +0 -36
- package/src/iac/types/CloudFormationResourceSpecification.d.ts +0 -2
- package/src/iac/types/Constants.d.ts +0 -9
- package/src/iac/types/Constants.js +0 -20
- package/src/iac/types/IaCTypes.js +0 -14
- package/src/iac/types/Renderers.d.ts +0 -12
- package/src/iac/types/Renderers.js +0 -112
- package/src/iac/types/Types.d.ts +0 -37
- package/src/iac/types/Types.js +0 -2
- package/src/iac/types/Utils.d.ts +0 -2
- package/src/iac/types/Utils.js +0 -60
- package/src/iac/types/generate.d.ts +0 -1
- package/src/iac/types/generate.js +0 -31
- package/src/iac/utils/index.d.ts +0 -36
- package/src/iac/utils/index.js +0 -105
- package/src/iac/utils/patch-utils.d.ts +0 -15
- package/src/iac/utils/patch-utils.js +0 -62
- package/src/index.d.ts +0 -178
- package/src/index.js +0 -214
package/src/iac/packs/gateway.js
DELETED
|
@@ -1,342 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addGateway = exports.DEFAULT_AUTH_TYPE = void 0;
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
const SimpleCFT_1 = require("../SimpleCFT");
|
|
6
|
-
exports.DEFAULT_AUTH_TYPE = "COGNITO_USER_POOLS";
|
|
7
|
-
/**
|
|
8
|
-
* Add a load-balanced API gateway for your serverless cloud function.
|
|
9
|
-
* Includes authorization config that connects your user management system to your cloud function.
|
|
10
|
-
* Also includes a DNS record for your API/back-end.
|
|
11
|
-
* */
|
|
12
|
-
exports.addGateway = (0, utils_1.createResourcePack)(({ id, hostedZoneId, domainName, certificateArn, cloudFunction: { id: cloudFunctionId, region: cloudFunctionRegion = "${AWS::Region}", }, stageName = "production", authorizer, deploymentSuffix = "", }) => {
|
|
13
|
-
const cloudFunctionUri = {
|
|
14
|
-
"Fn::Sub": `arn:aws:apigateway:${cloudFunctionRegion}:lambda:path/2015-03-31/functions/\${${cloudFunctionId}.Arn}/invocations`,
|
|
15
|
-
};
|
|
16
|
-
const { scopes: authScopes = ["phone", "email", "openid", "profile"], type: authType = "COGNITO_USER_POOLS", providerARNs, identitySource = "method.request.header.authorization", } = !!authorizer &&
|
|
17
|
-
typeof authorizer === "object"
|
|
18
|
-
? authorizer
|
|
19
|
-
: {};
|
|
20
|
-
const authorizerId = `${id}CustomAuthorizer`;
|
|
21
|
-
const authProps = !!authorizer
|
|
22
|
-
? {
|
|
23
|
-
AuthorizationScopes: authScopes,
|
|
24
|
-
AuthorizationType: authType === exports.DEFAULT_AUTH_TYPE ? exports.DEFAULT_AUTH_TYPE : "CUSTOM",
|
|
25
|
-
AuthorizerId: {
|
|
26
|
-
Ref: authorizerId,
|
|
27
|
-
},
|
|
28
|
-
}
|
|
29
|
-
: {
|
|
30
|
-
AuthorizationType: "NONE",
|
|
31
|
-
};
|
|
32
|
-
const fullDeploymentId = `${id}GatewayRESTAPIDeployment${deploymentSuffix}`;
|
|
33
|
-
return new SimpleCFT_1.SimpleCFT()
|
|
34
|
-
.patch({
|
|
35
|
-
Resources: {
|
|
36
|
-
// REST API
|
|
37
|
-
[id]: {
|
|
38
|
-
Type: "AWS::ApiGateway::RestApi",
|
|
39
|
-
Properties: {
|
|
40
|
-
Name: {
|
|
41
|
-
"Fn::Sub": `\${AWS::StackName}-${id}GatewayRESTAPI`,
|
|
42
|
-
},
|
|
43
|
-
EndpointConfiguration: {
|
|
44
|
-
Types: ["EDGE"],
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
[`${id}GatewayRESTAPIResource`]: {
|
|
49
|
-
Type: "AWS::ApiGateway::Resource",
|
|
50
|
-
DependsOn: id,
|
|
51
|
-
Properties: {
|
|
52
|
-
ParentId: {
|
|
53
|
-
"Fn::GetAtt": [id, "RootResourceId"],
|
|
54
|
-
},
|
|
55
|
-
PathPart: "{proxy+}",
|
|
56
|
-
RestApiId: {
|
|
57
|
-
Ref: id,
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
[`${id}GatewayRESTAPIMethod`]: {
|
|
62
|
-
Type: "AWS::ApiGateway::Method",
|
|
63
|
-
DependsOn: `${id}GatewayRESTAPIResource`,
|
|
64
|
-
Properties: {
|
|
65
|
-
...authProps,
|
|
66
|
-
HttpMethod: "ANY",
|
|
67
|
-
ResourceId: {
|
|
68
|
-
Ref: `${id}GatewayRESTAPIResource`,
|
|
69
|
-
},
|
|
70
|
-
RestApiId: {
|
|
71
|
-
Ref: id,
|
|
72
|
-
},
|
|
73
|
-
Integration: {
|
|
74
|
-
Type: "AWS_PROXY",
|
|
75
|
-
IntegrationHttpMethod: "POST",
|
|
76
|
-
Uri: cloudFunctionUri,
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
[`${id}GatewayRESTAPIRootMethod`]: {
|
|
81
|
-
Type: "AWS::ApiGateway::Method",
|
|
82
|
-
DependsOn: `${id}GatewayRESTAPIResource`,
|
|
83
|
-
Properties: {
|
|
84
|
-
...authProps,
|
|
85
|
-
HttpMethod: "ANY",
|
|
86
|
-
ResourceId: {
|
|
87
|
-
"Fn::GetAtt": [id, "RootResourceId"],
|
|
88
|
-
},
|
|
89
|
-
RestApiId: {
|
|
90
|
-
Ref: id,
|
|
91
|
-
},
|
|
92
|
-
Integration: {
|
|
93
|
-
Type: "AWS_PROXY",
|
|
94
|
-
IntegrationHttpMethod: "POST",
|
|
95
|
-
Uri: cloudFunctionUri,
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
})
|
|
101
|
-
.patch({
|
|
102
|
-
Resources: {
|
|
103
|
-
// CORS
|
|
104
|
-
[`${id}GatewayRESTAPIOPTIONSMethod`]: {
|
|
105
|
-
Type: "AWS::ApiGateway::Method",
|
|
106
|
-
DependsOn: `${id}GatewayRESTAPIResource`,
|
|
107
|
-
Properties: {
|
|
108
|
-
AuthorizationType: "NONE",
|
|
109
|
-
HttpMethod: "OPTIONS",
|
|
110
|
-
ResourceId: {
|
|
111
|
-
Ref: `${id}GatewayRESTAPIResource`,
|
|
112
|
-
},
|
|
113
|
-
RestApiId: {
|
|
114
|
-
Ref: id,
|
|
115
|
-
},
|
|
116
|
-
Integration: {
|
|
117
|
-
Type: "AWS_PROXY",
|
|
118
|
-
IntegrationHttpMethod: "POST",
|
|
119
|
-
Uri: cloudFunctionUri,
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
[`${id}GatewayRESTAPIRootOPTIONSMethod`]: {
|
|
124
|
-
Type: "AWS::ApiGateway::Method",
|
|
125
|
-
DependsOn: `${id}GatewayRESTAPIResource`,
|
|
126
|
-
Properties: {
|
|
127
|
-
AuthorizationType: "NONE",
|
|
128
|
-
HttpMethod: "OPTIONS",
|
|
129
|
-
ResourceId: {
|
|
130
|
-
"Fn::GetAtt": [id, "RootResourceId"],
|
|
131
|
-
},
|
|
132
|
-
RestApiId: {
|
|
133
|
-
Ref: id,
|
|
134
|
-
},
|
|
135
|
-
Integration: {
|
|
136
|
-
Type: "AWS_PROXY",
|
|
137
|
-
IntegrationHttpMethod: "POST",
|
|
138
|
-
Uri: cloudFunctionUri,
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
[`${id}GatewayResponseDefault4XX`]: {
|
|
143
|
-
Type: "AWS::ApiGateway::GatewayResponse",
|
|
144
|
-
Properties: {
|
|
145
|
-
ResponseParameters: {
|
|
146
|
-
// Not authorized, so just allow the current origin by mapping it into the header.
|
|
147
|
-
"gatewayresponse.header.Access-Control-Allow-Origin": "method.request.header.origin",
|
|
148
|
-
"gatewayresponse.header.Access-Control-Allow-Credentials": "'true'",
|
|
149
|
-
"gatewayresponse.header.Access-Control-Allow-Headers": "'*'",
|
|
150
|
-
},
|
|
151
|
-
ResponseType: "DEFAULT_4XX",
|
|
152
|
-
RestApiId: {
|
|
153
|
-
Ref: id,
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
},
|
|
157
|
-
},
|
|
158
|
-
})
|
|
159
|
-
.patch({
|
|
160
|
-
Resources: {
|
|
161
|
-
// SUPPORTING RESOURCES
|
|
162
|
-
[fullDeploymentId]: {
|
|
163
|
-
Type: "AWS::ApiGateway::Deployment",
|
|
164
|
-
DependsOn: [
|
|
165
|
-
`${id}GatewayRESTAPIResource`,
|
|
166
|
-
`${id}GatewayRESTAPIMethod`,
|
|
167
|
-
`${id}GatewayRESTAPIRootMethod`,
|
|
168
|
-
id,
|
|
169
|
-
cloudFunctionId,
|
|
170
|
-
],
|
|
171
|
-
Properties: {
|
|
172
|
-
RestApiId: {
|
|
173
|
-
Ref: id,
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
[`${id}CloudWatch`]: {
|
|
178
|
-
Type: "AWS::Logs::LogGroup",
|
|
179
|
-
Properties: {
|
|
180
|
-
LogGroupName: {
|
|
181
|
-
"Fn::Sub": `\${AWS::StackName}-${id}GatewayLogs`,
|
|
182
|
-
},
|
|
183
|
-
},
|
|
184
|
-
},
|
|
185
|
-
[`${id}CloudWatchRole`]: {
|
|
186
|
-
Type: "AWS::IAM::Role",
|
|
187
|
-
Properties: {
|
|
188
|
-
AssumeRolePolicyDocument: {
|
|
189
|
-
Version: "2012-10-17",
|
|
190
|
-
Statement: [
|
|
191
|
-
{
|
|
192
|
-
Effect: "Allow",
|
|
193
|
-
Principal: {
|
|
194
|
-
Service: ["apigateway.amazonaws.com"],
|
|
195
|
-
},
|
|
196
|
-
Action: "sts:AssumeRole",
|
|
197
|
-
},
|
|
198
|
-
],
|
|
199
|
-
},
|
|
200
|
-
Path: "/",
|
|
201
|
-
ManagedPolicyArns: [
|
|
202
|
-
"arn:aws:iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs",
|
|
203
|
-
],
|
|
204
|
-
},
|
|
205
|
-
},
|
|
206
|
-
[`${id}CloudWatchAccount`]: {
|
|
207
|
-
Type: "AWS::ApiGateway::Account",
|
|
208
|
-
Properties: {
|
|
209
|
-
CloudWatchRoleArn: {
|
|
210
|
-
"Fn::GetAtt": [`${id}CloudWatchRole`, "Arn"],
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
},
|
|
214
|
-
[`${id}GatewayRESTAPIEnvironment`]: {
|
|
215
|
-
Type: "AWS::ApiGateway::Stage",
|
|
216
|
-
DependsOn: [`${id}CloudWatchAccount`, fullDeploymentId],
|
|
217
|
-
Properties: {
|
|
218
|
-
AccessLogSetting: {
|
|
219
|
-
DestinationArn: {
|
|
220
|
-
"Fn::GetAtt": [`${id}CloudWatch`, "Arn"],
|
|
221
|
-
},
|
|
222
|
-
Format: '{"requestId":"$context.requestId","ip":"$context.identity.sourceIp","caller":"$context.identity.caller","user":"$context.identity.user","requestTime":"$context.requestTime","httpMethod":"$context.httpMethod","resourcePath":"$context.resourcePath","status":"$context.status","protocol":"$context.protocol","responseLength":"$context.responseLength","apiGatewayErrorMessage":"$context.error.message"}',
|
|
223
|
-
},
|
|
224
|
-
DeploymentId: {
|
|
225
|
-
Ref: fullDeploymentId,
|
|
226
|
-
},
|
|
227
|
-
RestApiId: {
|
|
228
|
-
Ref: id,
|
|
229
|
-
},
|
|
230
|
-
StageName: stageName,
|
|
231
|
-
},
|
|
232
|
-
},
|
|
233
|
-
},
|
|
234
|
-
})
|
|
235
|
-
.patch({
|
|
236
|
-
Resources: {
|
|
237
|
-
// DNS
|
|
238
|
-
[`${id}DomainName`]: {
|
|
239
|
-
Type: "AWS::ApiGateway::DomainName",
|
|
240
|
-
Properties: {
|
|
241
|
-
CertificateArn: certificateArn,
|
|
242
|
-
DomainName: domainName,
|
|
243
|
-
EndpointConfiguration: {
|
|
244
|
-
Types: ["EDGE"],
|
|
245
|
-
},
|
|
246
|
-
},
|
|
247
|
-
},
|
|
248
|
-
[`${id}DomainNameBasePathMapping`]: {
|
|
249
|
-
Type: "AWS::ApiGateway::BasePathMapping",
|
|
250
|
-
DependsOn: [
|
|
251
|
-
id,
|
|
252
|
-
`${id}GatewayRESTAPIEnvironment`,
|
|
253
|
-
`${id}DomainName`,
|
|
254
|
-
],
|
|
255
|
-
Properties: {
|
|
256
|
-
DomainName: domainName,
|
|
257
|
-
RestApiId: {
|
|
258
|
-
Ref: id,
|
|
259
|
-
},
|
|
260
|
-
Stage: stageName,
|
|
261
|
-
},
|
|
262
|
-
},
|
|
263
|
-
[`${id}Route53Record`]: {
|
|
264
|
-
Type: "AWS::Route53::RecordSet",
|
|
265
|
-
DependsOn: `${id}DomainName`,
|
|
266
|
-
Properties: {
|
|
267
|
-
HostedZoneId: hostedZoneId,
|
|
268
|
-
Type: "A",
|
|
269
|
-
Name: {
|
|
270
|
-
"Fn::Sub": [
|
|
271
|
-
"${DomainName}.",
|
|
272
|
-
{
|
|
273
|
-
DomainName: domainName,
|
|
274
|
-
},
|
|
275
|
-
],
|
|
276
|
-
},
|
|
277
|
-
AliasTarget: {
|
|
278
|
-
HostedZoneId: "Z2FDTNDATAQYW2",
|
|
279
|
-
DNSName: {
|
|
280
|
-
"Fn::Sub": [
|
|
281
|
-
"${DomainName}.",
|
|
282
|
-
{
|
|
283
|
-
DomainName: {
|
|
284
|
-
"Fn::GetAtt": [
|
|
285
|
-
`${id}DomainName`,
|
|
286
|
-
"DistributionDomainName",
|
|
287
|
-
],
|
|
288
|
-
},
|
|
289
|
-
},
|
|
290
|
-
],
|
|
291
|
-
},
|
|
292
|
-
},
|
|
293
|
-
},
|
|
294
|
-
},
|
|
295
|
-
},
|
|
296
|
-
})
|
|
297
|
-
.patch({
|
|
298
|
-
Resources: {
|
|
299
|
-
// PERMISSIONS
|
|
300
|
-
[`${id}CloudFunctionANYResourcePermission`]: {
|
|
301
|
-
Type: "AWS::Lambda::Permission",
|
|
302
|
-
Properties: {
|
|
303
|
-
Action: "lambda:InvokeFunction",
|
|
304
|
-
Principal: "apigateway.amazonaws.com",
|
|
305
|
-
FunctionName: {
|
|
306
|
-
"Fn::GetAtt": [cloudFunctionId, "Arn"],
|
|
307
|
-
},
|
|
308
|
-
SourceArn: {
|
|
309
|
-
"Fn::Sub": [
|
|
310
|
-
"arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/*/*",
|
|
311
|
-
{
|
|
312
|
-
__Stage__: stageName,
|
|
313
|
-
__ApiId__: {
|
|
314
|
-
Ref: id,
|
|
315
|
-
},
|
|
316
|
-
},
|
|
317
|
-
],
|
|
318
|
-
},
|
|
319
|
-
},
|
|
320
|
-
},
|
|
321
|
-
},
|
|
322
|
-
})
|
|
323
|
-
.patch(!!authorizer
|
|
324
|
-
? {
|
|
325
|
-
Resources: {
|
|
326
|
-
// AUTHORIZER
|
|
327
|
-
[`${id}CustomAuthorizer`]: {
|
|
328
|
-
Type: "AWS::ApiGateway::Authorizer",
|
|
329
|
-
Properties: {
|
|
330
|
-
IdentitySource: identitySource,
|
|
331
|
-
Name: `${id}CustomAuthorizer`,
|
|
332
|
-
ProviderARNs: providerARNs,
|
|
333
|
-
RestApiId: {
|
|
334
|
-
Ref: id,
|
|
335
|
-
},
|
|
336
|
-
Type: "COGNITO_USER_POOLS",
|
|
337
|
-
},
|
|
338
|
-
},
|
|
339
|
-
},
|
|
340
|
-
}
|
|
341
|
-
: {}).template;
|
|
342
|
-
});
|
package/src/iac/packs/index.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export * from "./auth";
|
|
2
|
-
export * from "./build";
|
|
3
|
-
export * from "./build/utils";
|
|
4
|
-
export * from "./cdn";
|
|
5
|
-
export * from "./cloud-function";
|
|
6
|
-
export * from "./database";
|
|
7
|
-
export * from "./dns";
|
|
8
|
-
export * from "./file-storage";
|
|
9
|
-
export * from "./gateway";
|
|
10
|
-
export * from "./repo";
|
|
11
|
-
export * from "./ssl-certificate";
|
package/src/iac/packs/index.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./auth"), exports);
|
|
18
|
-
__exportStar(require("./build"), exports);
|
|
19
|
-
__exportStar(require("./build/utils"), exports);
|
|
20
|
-
__exportStar(require("./cdn"), exports);
|
|
21
|
-
__exportStar(require("./cloud-function"), exports);
|
|
22
|
-
__exportStar(require("./database"), exports);
|
|
23
|
-
__exportStar(require("./dns"), exports);
|
|
24
|
-
__exportStar(require("./file-storage"), exports);
|
|
25
|
-
__exportStar(require("./gateway"), exports);
|
|
26
|
-
__exportStar(require("./repo"), exports);
|
|
27
|
-
__exportStar(require("./ssl-certificate"), exports);
|
package/src/iac/packs/repo.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export type AddRepoConfig = {
|
|
2
|
-
repoOwnerParameterName: string;
|
|
3
|
-
repoNameParameterName: string;
|
|
4
|
-
repoBranchParameterName: string;
|
|
5
|
-
repoTokenParameterName: string;
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Add repository related parameters for reference in other resources like a build pipeline (CI/CD).
|
|
9
|
-
* */
|
|
10
|
-
export declare const addRepo: import("../utils").ResourcePackApplier<AddRepoConfig>;
|
package/src/iac/packs/repo.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addRepo = void 0;
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
const SimpleCFT_1 = require("../SimpleCFT");
|
|
6
|
-
/**
|
|
7
|
-
* Add repository related parameters for reference in other resources like a build pipeline (CI/CD).
|
|
8
|
-
* */
|
|
9
|
-
exports.addRepo = (0, utils_1.createResourcePack)(({ repoOwnerParameterName, repoNameParameterName, repoBranchParameterName, repoTokenParameterName, }) => new SimpleCFT_1.SimpleCFT().addParameterGroup({
|
|
10
|
-
Label: "Repository",
|
|
11
|
-
Parameters: {
|
|
12
|
-
[repoOwnerParameterName]: {
|
|
13
|
-
Label: "RepoOwner",
|
|
14
|
-
Type: "String",
|
|
15
|
-
Description: "The owner of the repository",
|
|
16
|
-
},
|
|
17
|
-
[repoNameParameterName]: {
|
|
18
|
-
Label: "RepoName",
|
|
19
|
-
Type: "String",
|
|
20
|
-
Description: "The name of the repository",
|
|
21
|
-
},
|
|
22
|
-
[repoBranchParameterName]: {
|
|
23
|
-
Label: "RepoBranch",
|
|
24
|
-
Type: "String",
|
|
25
|
-
Description: "The branch of the repository",
|
|
26
|
-
},
|
|
27
|
-
[repoTokenParameterName]: {
|
|
28
|
-
Label: "RepoToken",
|
|
29
|
-
Type: "String",
|
|
30
|
-
Description: "The token of the repository",
|
|
31
|
-
NoEcho: true,
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
}).template);
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export type AddSSLCertificateConfig = {
|
|
2
|
-
id: string;
|
|
3
|
-
domainName: any;
|
|
4
|
-
hostedZoneId: any;
|
|
5
|
-
includeWildCard?: boolean;
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Add an automatic SSL Certificate for a domain and all of it's subdomains.
|
|
9
|
-
* */
|
|
10
|
-
export declare const addSSLCertificate: import("../utils").ResourcePackApplier<AddSSLCertificateConfig>;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addSSLCertificate = void 0;
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
/**
|
|
6
|
-
* Add an automatic SSL Certificate for a domain and all of it's subdomains.
|
|
7
|
-
* */
|
|
8
|
-
exports.addSSLCertificate = (0, utils_1.createResourcePack)(({ id, domainName, hostedZoneId, includeWildCard = true, }) => ({
|
|
9
|
-
Resources: {
|
|
10
|
-
[id]: {
|
|
11
|
-
Type: "AWS::CertificateManager::Certificate",
|
|
12
|
-
Properties: {
|
|
13
|
-
DomainName: domainName,
|
|
14
|
-
ValidationMethod: "DNS",
|
|
15
|
-
DomainValidationOptions: [
|
|
16
|
-
{
|
|
17
|
-
DomainName: domainName,
|
|
18
|
-
HostedZoneId: hostedZoneId,
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
SubjectAlternativeNames: includeWildCard
|
|
22
|
-
? [
|
|
23
|
-
{
|
|
24
|
-
"Fn::Sub": [
|
|
25
|
-
"*.${BaseDomainName}",
|
|
26
|
-
{
|
|
27
|
-
BaseDomainName: domainName,
|
|
28
|
-
},
|
|
29
|
-
],
|
|
30
|
-
},
|
|
31
|
-
]
|
|
32
|
-
: undefined,
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
}));
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare const NEVER_TYPE = "never";
|
|
2
|
-
export declare const NAMESPACE_DELIMITERS: {
|
|
3
|
-
INPUT_REGEX: RegExp;
|
|
4
|
-
INPUT: string;
|
|
5
|
-
OUTPUT: string;
|
|
6
|
-
};
|
|
7
|
-
export declare const TAG_TYPE = "Tag";
|
|
8
|
-
export declare const CONTAINER_TYPES: string[];
|
|
9
|
-
export declare const PRIMITIVE_TYPE_MAP: Record<string, string>;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PRIMITIVE_TYPE_MAP = exports.CONTAINER_TYPES = exports.TAG_TYPE = exports.NAMESPACE_DELIMITERS = exports.NEVER_TYPE = void 0;
|
|
4
|
-
exports.NEVER_TYPE = 'never';
|
|
5
|
-
exports.NAMESPACE_DELIMITERS = {
|
|
6
|
-
INPUT_REGEX: /::/gim,
|
|
7
|
-
INPUT: '::',
|
|
8
|
-
OUTPUT: '.',
|
|
9
|
-
};
|
|
10
|
-
exports.TAG_TYPE = 'Tag';
|
|
11
|
-
exports.CONTAINER_TYPES = ['List', 'Map'];
|
|
12
|
-
exports.PRIMITIVE_TYPE_MAP = {
|
|
13
|
-
String: 'string',
|
|
14
|
-
Integer: 'number',
|
|
15
|
-
Boolean: 'boolean',
|
|
16
|
-
Double: 'number',
|
|
17
|
-
Json: 'Json',
|
|
18
|
-
Timestamp: 'Timestamp',
|
|
19
|
-
Long: 'number',
|
|
20
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CloudFormationPseudoParameters = void 0;
|
|
4
|
-
var CloudFormationPseudoParameters;
|
|
5
|
-
(function (CloudFormationPseudoParameters) {
|
|
6
|
-
CloudFormationPseudoParameters["AWS::AccountId"] = "AWS::AccountId";
|
|
7
|
-
CloudFormationPseudoParameters["AWS::NotificationARNs"] = "AWS::NotificationARNs";
|
|
8
|
-
CloudFormationPseudoParameters["AWS::NoValue"] = "AWS::NoValue";
|
|
9
|
-
CloudFormationPseudoParameters["AWS::Partition"] = "AWS::Partition";
|
|
10
|
-
CloudFormationPseudoParameters["AWS::Region"] = "AWS::Region";
|
|
11
|
-
CloudFormationPseudoParameters["AWS::StackId"] = "AWS::StackId";
|
|
12
|
-
CloudFormationPseudoParameters["AWS::StackName"] = "AWS::StackName";
|
|
13
|
-
CloudFormationPseudoParameters["AWS::URLSuffix"] = "AWS::URLSuffix";
|
|
14
|
-
})(CloudFormationPseudoParameters || (exports.CloudFormationPseudoParameters = CloudFormationPseudoParameters = {}));
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { AttributeType, IDocumentable, NamespaceStructure, PropertyDescriptor, PropertyType, ResourceType } from './Types';
|
|
2
|
-
export declare const renderPrimitiveType: (primitiveType: string) => string;
|
|
3
|
-
export declare const renderPropertyType: (path: string[], { PrimitiveType, Type, PrimitiveItemType, ItemType }: AttributeType) => string;
|
|
4
|
-
export declare const renderPropertyName: (propertyName: string, descriptor: PropertyDescriptor | AttributeType) => string;
|
|
5
|
-
export declare const renderCommentBlock: ({ UpdateType, DuplicatesAllowed, Documentation }: IDocumentable) => string;
|
|
6
|
-
export declare const renderProperty: (path: string[], propertyName: string, propertyDescriptor: PropertyDescriptor | AttributeType) => string;
|
|
7
|
-
export declare const renderTypeWithFullBody: (commentBlock: string, typeName: string, fullBody: string) => string;
|
|
8
|
-
export declare const renderTypePropertiesBody: (path: string[], properties: Record<string, PropertyDescriptor | AttributeType>) => string;
|
|
9
|
-
export declare const renderTypeWithProperties: (path: string[], typeName: string, properties: Record<string, AttributeType>, commentBlock?: string) => string;
|
|
10
|
-
export declare const renderTypeFromPropertyType: (path: string[], typeName: string, propertyType: PropertyType) => string;
|
|
11
|
-
export declare const renderTypeFromResourceType: (path: string[], typeName: string, resourceType: ResourceType) => string;
|
|
12
|
-
export declare const renderNamespaceStructure: ({ path, includes, propertyTypes, resourceTypes, namespaces }: NamespaceStructure, namespaceName?: string) => string;
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.renderNamespaceStructure = exports.renderTypeFromResourceType = exports.renderTypeFromPropertyType = exports.renderTypeWithProperties = exports.renderTypePropertiesBody = exports.renderTypeWithFullBody = exports.renderProperty = exports.renderCommentBlock = exports.renderPropertyName = exports.renderPropertyType = exports.renderPrimitiveType = void 0;
|
|
4
|
-
const Constants_1 = require("./Constants");
|
|
5
|
-
const renderPrimitiveType = (primitiveType) => primitiveType in Constants_1.PRIMITIVE_TYPE_MAP ? `CloudFormationPrimitiveValue<${Constants_1.PRIMITIVE_TYPE_MAP[primitiveType]}>` : primitiveType;
|
|
6
|
-
exports.renderPrimitiveType = renderPrimitiveType;
|
|
7
|
-
const renderPropertyType = (path, { PrimitiveType, Type, PrimitiveItemType, ItemType }) => {
|
|
8
|
-
if (PrimitiveType) {
|
|
9
|
-
return (0, exports.renderPrimitiveType)(PrimitiveType);
|
|
10
|
-
}
|
|
11
|
-
else if (Type && Constants_1.CONTAINER_TYPES.indexOf(Type) !== -1) {
|
|
12
|
-
const resolvedItemType = PrimitiveItemType
|
|
13
|
-
? (0, exports.renderPrimitiveType)(PrimitiveItemType)
|
|
14
|
-
: ItemType === Constants_1.TAG_TYPE
|
|
15
|
-
? Constants_1.TAG_TYPE
|
|
16
|
-
: [...path, ItemType].join(Constants_1.NAMESPACE_DELIMITERS.OUTPUT);
|
|
17
|
-
return Type === 'List' ? `${resolvedItemType}[]` : `Record<string, ${resolvedItemType}>`;
|
|
18
|
-
}
|
|
19
|
-
else if (Type === Constants_1.TAG_TYPE) {
|
|
20
|
-
return Constants_1.TAG_TYPE;
|
|
21
|
-
}
|
|
22
|
-
else if (Type) {
|
|
23
|
-
return [...path, Type].join(Constants_1.NAMESPACE_DELIMITERS.OUTPUT);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
return Constants_1.NEVER_TYPE;
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
exports.renderPropertyType = renderPropertyType;
|
|
30
|
-
const renderPropertyName = (propertyName, descriptor) => {
|
|
31
|
-
const cleanPropertyName = propertyName && propertyName.indexOf('.') !== -1 ? `'${propertyName}'` : propertyName;
|
|
32
|
-
if ('Required' in descriptor) {
|
|
33
|
-
const { Required } = descriptor;
|
|
34
|
-
return `${cleanPropertyName}${Required ? '' : '?'}`;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
return cleanPropertyName;
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
exports.renderPropertyName = renderPropertyName;
|
|
41
|
-
const renderCommentBlock = ({ UpdateType, DuplicatesAllowed = false, Documentation }) => UpdateType || DuplicatesAllowed || Documentation
|
|
42
|
-
? `/**${UpdateType
|
|
43
|
-
? `
|
|
44
|
-
* Update Type: ${UpdateType}`
|
|
45
|
-
: ''}${DuplicatesAllowed
|
|
46
|
-
? `
|
|
47
|
-
* Duplicates Allowed: Yes`
|
|
48
|
-
: ''}${Documentation
|
|
49
|
-
? `
|
|
50
|
-
* @see ${Documentation}`
|
|
51
|
-
: ''}
|
|
52
|
-
* */
|
|
53
|
-
`
|
|
54
|
-
: '';
|
|
55
|
-
exports.renderCommentBlock = renderCommentBlock;
|
|
56
|
-
const renderProperty = (path, propertyName, propertyDescriptor) => `${(0, exports.renderCommentBlock)(propertyDescriptor)}${(0, exports.renderPropertyName)(propertyName, propertyDescriptor)}: ${(0, exports.renderPropertyType)(path, propertyDescriptor)};`;
|
|
57
|
-
exports.renderProperty = renderProperty;
|
|
58
|
-
const renderTypeWithFullBody = (commentBlock, typeName, fullBody) => `${commentBlock}export type ${typeName} = ${fullBody};`;
|
|
59
|
-
exports.renderTypeWithFullBody = renderTypeWithFullBody;
|
|
60
|
-
const renderTypePropertiesBody = (path, properties) => {
|
|
61
|
-
const propertyKeys = Object.keys(properties);
|
|
62
|
-
return `{
|
|
63
|
-
${propertyKeys.map((pK) => (0, exports.renderProperty)(path, pK, properties[pK])).join('\n')}
|
|
64
|
-
}`;
|
|
65
|
-
};
|
|
66
|
-
exports.renderTypePropertiesBody = renderTypePropertiesBody;
|
|
67
|
-
const renderTypeWithProperties = (path, typeName, properties, commentBlock = '') => {
|
|
68
|
-
return (0, exports.renderTypeWithFullBody)(commentBlock, typeName, (0, exports.renderTypePropertiesBody)(path, properties));
|
|
69
|
-
};
|
|
70
|
-
exports.renderTypeWithProperties = renderTypeWithProperties;
|
|
71
|
-
const renderTypeFromPropertyType = (path, typeName, propertyType) => {
|
|
72
|
-
const { Properties } = propertyType;
|
|
73
|
-
const commentBlock = (0, exports.renderCommentBlock)(propertyType);
|
|
74
|
-
if (Properties) {
|
|
75
|
-
return (0, exports.renderTypeWithProperties)(path, typeName, Properties, commentBlock);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
return `${commentBlock}export type ${typeName} = ${(0, exports.renderPropertyType)(path, propertyType)}`;
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
exports.renderTypeFromPropertyType = renderTypeFromPropertyType;
|
|
82
|
-
const renderTypeFromResourceType = (path, typeName, resourceType) => {
|
|
83
|
-
const { Type, Properties, Attributes } = resourceType;
|
|
84
|
-
const commentBlock = (0, exports.renderCommentBlock)(resourceType);
|
|
85
|
-
const subPath = [...path, typeName];
|
|
86
|
-
return (0, exports.renderTypeWithFullBody)(commentBlock, typeName, `CloudFormationResource<'${Type}', ${Attributes ? (0, exports.renderTypePropertiesBody)(subPath, Attributes) : Constants_1.NEVER_TYPE}, ${Properties ? (0, exports.renderTypePropertiesBody)(subPath, Properties) : Constants_1.NEVER_TYPE}>`);
|
|
87
|
-
};
|
|
88
|
-
exports.renderTypeFromResourceType = renderTypeFromResourceType;
|
|
89
|
-
const renderNamespaceStructure = ({ path = [], includes = [], propertyTypes = {}, resourceTypes = {}, namespaces = {} }, namespaceName) => {
|
|
90
|
-
const namespaceBody = `${includes?.join('\n')}
|
|
91
|
-
|
|
92
|
-
${Object.keys(propertyTypes)
|
|
93
|
-
.map((pT) => (0, exports.renderTypeFromPropertyType)(path, pT, propertyTypes[pT]))
|
|
94
|
-
.join('\n')}
|
|
95
|
-
|
|
96
|
-
${Object.keys(resourceTypes)
|
|
97
|
-
.map((rT) => (0, exports.renderTypeFromResourceType)(path, rT, resourceTypes[rT]))
|
|
98
|
-
.join('\n')}
|
|
99
|
-
|
|
100
|
-
${Object.keys(namespaces)
|
|
101
|
-
.map((ns) => (0, exports.renderNamespaceStructure)(namespaces[ns], ns))
|
|
102
|
-
.join('\n')}`;
|
|
103
|
-
if (namespaceName) {
|
|
104
|
-
return `export namespace ${namespaceName} {
|
|
105
|
-
${namespaceBody}
|
|
106
|
-
}`;
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
return namespaceBody;
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
exports.renderNamespaceStructure = renderNamespaceStructure;
|