@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/types/Types.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
export interface IDocumentable {
|
|
2
|
-
UpdateType?: string;
|
|
3
|
-
DuplicatesAllowed?: boolean;
|
|
4
|
-
Documentation?: string;
|
|
5
|
-
}
|
|
6
|
-
export type AttributeType = {
|
|
7
|
-
PrimitiveType?: string;
|
|
8
|
-
Type?: string;
|
|
9
|
-
ItemType?: string;
|
|
10
|
-
PrimitiveItemType?: string;
|
|
11
|
-
DuplicatesAllowed?: boolean;
|
|
12
|
-
};
|
|
13
|
-
export type PropertyDescriptor = IDocumentable & AttributeType & {
|
|
14
|
-
Required?: boolean;
|
|
15
|
-
};
|
|
16
|
-
export type PropertyType = PropertyDescriptor & {
|
|
17
|
-
Properties?: Record<string, PropertyDescriptor>;
|
|
18
|
-
};
|
|
19
|
-
export type ResourceType = {
|
|
20
|
-
Type?: string;
|
|
21
|
-
Documentation?: string;
|
|
22
|
-
AdditionalProperties?: boolean;
|
|
23
|
-
Properties?: Record<string, PropertyDescriptor>;
|
|
24
|
-
Attributes?: Record<string, AttributeType>;
|
|
25
|
-
};
|
|
26
|
-
export type CloudFormationResourceSpecification = {
|
|
27
|
-
PropertyTypes: Record<string, PropertyType>;
|
|
28
|
-
ResourceTypes: Record<string, ResourceType>;
|
|
29
|
-
ResourceSpecificationVersion: `${number}.${number}.${number}`;
|
|
30
|
-
};
|
|
31
|
-
export type NamespaceStructure = {
|
|
32
|
-
path: string[];
|
|
33
|
-
includes?: string[];
|
|
34
|
-
propertyTypes?: Record<string, PropertyType>;
|
|
35
|
-
resourceTypes?: Record<string, ResourceType>;
|
|
36
|
-
namespaces?: Record<string, NamespaceStructure>;
|
|
37
|
-
};
|
package/src/iac/types/Types.js
DELETED
package/src/iac/types/Utils.d.ts
DELETED
package/src/iac/types/Utils.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getNamespaceStructure = void 0;
|
|
4
|
-
const Constants_1 = require("./Constants");
|
|
5
|
-
const getNamespaceStructure = (specification, baseStructure) => {
|
|
6
|
-
const newStructure = {
|
|
7
|
-
...baseStructure,
|
|
8
|
-
};
|
|
9
|
-
const { PropertyTypes, ResourceTypes } = specification;
|
|
10
|
-
const propertyTypesKeys = Object.keys(PropertyTypes);
|
|
11
|
-
const resourceTypesKeys = Object.keys(ResourceTypes);
|
|
12
|
-
const resourceTypeOptions = [];
|
|
13
|
-
for (const pTK of propertyTypesKeys) {
|
|
14
|
-
const fullPropertyTypeNameParts = pTK
|
|
15
|
-
.replace(Constants_1.NAMESPACE_DELIMITERS.INPUT_REGEX, () => Constants_1.NAMESPACE_DELIMITERS.OUTPUT)
|
|
16
|
-
.split(Constants_1.NAMESPACE_DELIMITERS.OUTPUT);
|
|
17
|
-
const propType = PropertyTypes[pTK];
|
|
18
|
-
const currentPath = [];
|
|
19
|
-
let targetNamespace = newStructure;
|
|
20
|
-
for (let i = 0; i < fullPropertyTypeNameParts.length; i++) {
|
|
21
|
-
const part = fullPropertyTypeNameParts[i];
|
|
22
|
-
currentPath.push(part);
|
|
23
|
-
if (i === fullPropertyTypeNameParts.length - 1) {
|
|
24
|
-
targetNamespace.propertyTypes = targetNamespace.propertyTypes || {};
|
|
25
|
-
targetNamespace.propertyTypes[part] = propType;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
targetNamespace.namespaces = targetNamespace.namespaces || {};
|
|
29
|
-
targetNamespace.namespaces[part] = targetNamespace.namespaces[part] || { path: [...currentPath] };
|
|
30
|
-
targetNamespace = targetNamespace.namespaces[part];
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
for (const rTK of resourceTypesKeys) {
|
|
35
|
-
const fullResourceTypeNameParts = rTK.split(Constants_1.NAMESPACE_DELIMITERS.INPUT);
|
|
36
|
-
const resType = ResourceTypes[rTK];
|
|
37
|
-
const currentPath = [];
|
|
38
|
-
let targetNamespace = newStructure;
|
|
39
|
-
for (let i = 0; i < fullResourceTypeNameParts.length; i++) {
|
|
40
|
-
const part = fullResourceTypeNameParts[i];
|
|
41
|
-
currentPath.push(part);
|
|
42
|
-
if (i === fullResourceTypeNameParts.length - 1) {
|
|
43
|
-
targetNamespace.resourceTypes = targetNamespace.resourceTypes || {};
|
|
44
|
-
targetNamespace.resourceTypes[part] = {
|
|
45
|
-
...resType,
|
|
46
|
-
Type: rTK,
|
|
47
|
-
};
|
|
48
|
-
resourceTypeOptions.push(currentPath.join(Constants_1.NAMESPACE_DELIMITERS.OUTPUT));
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
targetNamespace.namespaces = targetNamespace.namespaces || {};
|
|
52
|
-
targetNamespace.namespaces[part] = targetNamespace.namespaces[part] || { path: [...currentPath] };
|
|
53
|
-
targetNamespace = targetNamespace.namespaces[part];
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
newStructure.includes = [`export type AllResourceTypes = ${resourceTypeOptions.join(' | ')};`, ...(newStructure.includes || [])];
|
|
58
|
-
return newStructure;
|
|
59
|
-
};
|
|
60
|
-
exports.getNamespaceStructure = getNamespaceStructure;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const path_1 = __importDefault(require("path"));
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const prettier_1 = require("prettier");
|
|
9
|
-
const CloudFormationResourceSpecification_1 = require("./CloudFormationResourceSpecification");
|
|
10
|
-
const Utils_1 = require("./Utils");
|
|
11
|
-
const Renderers_1 = require("./Renderers");
|
|
12
|
-
const STANDARD_INCLUDES = fs_1.default.readFileSync(path_1.default.join(__dirname, "StandardIncludes.d.ts.tmpl"), { encoding: "utf8" })
|
|
13
|
-
// IMPORTANT: Remove the first line which is a placeholder for the `AllResourceTypes` type.
|
|
14
|
-
.replace(/.*/, "")
|
|
15
|
-
.trimStart();
|
|
16
|
-
const BASE_NAMESPACE_STRUCTURE = {
|
|
17
|
-
path: [],
|
|
18
|
-
includes: [STANDARD_INCLUDES],
|
|
19
|
-
propertyTypes: {},
|
|
20
|
-
resourceTypes: {},
|
|
21
|
-
namespaces: {},
|
|
22
|
-
};
|
|
23
|
-
const NamespaceStructure = (0, Utils_1.getNamespaceStructure)(CloudFormationResourceSpecification_1.CloudFormationResourceSpecificationData, BASE_NAMESPACE_STRUCTURE);
|
|
24
|
-
const generate = async () => {
|
|
25
|
-
const TypesContentString = await (0, prettier_1.format)((0, Renderers_1.renderNamespaceStructure)(NamespaceStructure), {
|
|
26
|
-
parser: "typescript",
|
|
27
|
-
});
|
|
28
|
-
fs_1.default.mkdirSync(path_1.default.join(__dirname, "..", "dist"), { recursive: true });
|
|
29
|
-
fs_1.default.writeFileSync(path_1.default.join(__dirname, "..", "dist", "IaCTypes.ts"), TypesContentString, { encoding: "utf8" });
|
|
30
|
-
};
|
|
31
|
-
generate();
|
package/src/iac/utils/index.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { CloudFormationParameter, CloudFormationTemplate } from "../types/IaCTypes";
|
|
2
|
-
export * from "./patch-utils";
|
|
3
|
-
export type ParameterInfo = {
|
|
4
|
-
ParameterId: string;
|
|
5
|
-
Parameter: CloudFormationParameter;
|
|
6
|
-
Label: string;
|
|
7
|
-
Group?: string;
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* Add a stack parameter including its descriptive info and an optional parameter group.
|
|
11
|
-
* */
|
|
12
|
-
export declare const addParameter: (parameterInfo: ParameterInfo, template: CloudFormationTemplate) => CloudFormationTemplate;
|
|
13
|
-
/**
|
|
14
|
-
* Add multiple stack parameters with info and groups.
|
|
15
|
-
* */
|
|
16
|
-
export declare const addParameters: (parameters: ParameterInfo[], template: CloudFormationTemplate) => CloudFormationTemplate;
|
|
17
|
-
/**
|
|
18
|
-
* A function used to apply a pack to a stack template.
|
|
19
|
-
* */
|
|
20
|
-
export type ResourcePackApplier<ParamsType> = (params: ParamsType, template: CloudFormationTemplate) => CloudFormationTemplate;
|
|
21
|
-
/**
|
|
22
|
-
* Apply a patch to a stack template.
|
|
23
|
-
* */
|
|
24
|
-
export declare const patchTemplate: (patch: Partial<CloudFormationTemplate>, template: CloudFormationTemplate) => CloudFormationTemplate;
|
|
25
|
-
/**
|
|
26
|
-
* Create a custom resource pack that can use configuration input to patch a stack with convenient resources, parameters, etc.
|
|
27
|
-
* */
|
|
28
|
-
export declare const createResourcePack: <ParamsType>(creator: (params: ParamsType) => Partial<CloudFormationTemplate>) => ResourcePackApplier<ParamsType>;
|
|
29
|
-
export type ParameterGroup = {
|
|
30
|
-
Label: string;
|
|
31
|
-
Parameters: {
|
|
32
|
-
[parameterId: string]: {
|
|
33
|
-
Label: string;
|
|
34
|
-
} & CloudFormationParameter;
|
|
35
|
-
};
|
|
36
|
-
};
|
package/src/iac/utils/index.js
DELETED
|
@@ -1,105 +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
|
-
exports.createResourcePack = exports.patchTemplate = exports.addParameters = exports.addParameter = void 0;
|
|
18
|
-
const patch_utils_1 = require("./patch-utils");
|
|
19
|
-
__exportStar(require("./patch-utils"), exports);
|
|
20
|
-
/**
|
|
21
|
-
* Add a stack parameter including its descriptive info and an optional parameter group.
|
|
22
|
-
* */
|
|
23
|
-
const addParameter = (parameterInfo, template) => {
|
|
24
|
-
const { ParameterId, Parameter, Label, Group } = parameterInfo;
|
|
25
|
-
const { Parameters, Metadata: { "AWS::CloudFormation::Interface": { ParameterGroups = [], ParameterLabels = {}, } = {}, } = {}, } = template;
|
|
26
|
-
let NewParameterGroups = ParameterGroups;
|
|
27
|
-
if (Group) {
|
|
28
|
-
const GroupObject = ParameterGroups.filter((g) => g.Label?.default === Group)[0];
|
|
29
|
-
NewParameterGroups = GroupObject
|
|
30
|
-
? ParameterGroups.map((g) => g.Label?.default === Group
|
|
31
|
-
? {
|
|
32
|
-
...g,
|
|
33
|
-
Parameters: [...(g.Parameters || []), ParameterId],
|
|
34
|
-
}
|
|
35
|
-
: g)
|
|
36
|
-
: [
|
|
37
|
-
...ParameterGroups,
|
|
38
|
-
{
|
|
39
|
-
Label: {
|
|
40
|
-
default: Group,
|
|
41
|
-
},
|
|
42
|
-
Parameters: [ParameterId],
|
|
43
|
-
},
|
|
44
|
-
];
|
|
45
|
-
}
|
|
46
|
-
return {
|
|
47
|
-
...template,
|
|
48
|
-
Parameters: {
|
|
49
|
-
...Parameters,
|
|
50
|
-
[ParameterId]: Parameter,
|
|
51
|
-
},
|
|
52
|
-
Metadata: {
|
|
53
|
-
...template.Metadata,
|
|
54
|
-
"AWS::CloudFormation::Interface": {
|
|
55
|
-
...template?.Metadata?.["AWS::CloudFormation::Interface"],
|
|
56
|
-
ParameterGroups: NewParameterGroups,
|
|
57
|
-
ParameterLabels: {
|
|
58
|
-
...ParameterLabels,
|
|
59
|
-
[ParameterId]: {
|
|
60
|
-
default: Label,
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
exports.addParameter = addParameter;
|
|
68
|
-
/**
|
|
69
|
-
* Add multiple stack parameters with info and groups.
|
|
70
|
-
* */
|
|
71
|
-
const addParameters = (parameters, template) => parameters.reduce((acc, p) => (0, exports.addParameter)(p, acc), template);
|
|
72
|
-
exports.addParameters = addParameters;
|
|
73
|
-
/**
|
|
74
|
-
* Apply a patch to a stack template.
|
|
75
|
-
* */
|
|
76
|
-
const patchTemplate = (patch, template) => (0, patch_utils_1.mergeValues)([], template, patch, {
|
|
77
|
-
[(0, patch_utils_1.getValuePathString)([
|
|
78
|
-
// Parameter Groups
|
|
79
|
-
"Metadata",
|
|
80
|
-
"AWS::CloudFormation::Interface",
|
|
81
|
-
"ParameterGroups",
|
|
82
|
-
])]: {
|
|
83
|
-
strategy: "accumulate-unique-by",
|
|
84
|
-
data: (pG) => pG?.Label?.default,
|
|
85
|
-
},
|
|
86
|
-
[(0, patch_utils_1.getValuePathString)([
|
|
87
|
-
// Parameter Group Parameter Ids
|
|
88
|
-
"Metadata",
|
|
89
|
-
"AWS::CloudFormation::Interface",
|
|
90
|
-
"ParameterGroups",
|
|
91
|
-
"#",
|
|
92
|
-
"Parameters",
|
|
93
|
-
])]: {
|
|
94
|
-
strategy: "accumulate-unique",
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
exports.patchTemplate = patchTemplate;
|
|
98
|
-
/**
|
|
99
|
-
* Create a custom resource pack that can use configuration input to patch a stack with convenient resources, parameters, etc.
|
|
100
|
-
* */
|
|
101
|
-
const createResourcePack = (creator) => (params, template) => {
|
|
102
|
-
const patch = creator(params);
|
|
103
|
-
return (0, exports.patchTemplate)(patch, template);
|
|
104
|
-
};
|
|
105
|
-
exports.createResourcePack = createResourcePack;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export type MergeStrategy = 'transpose' | 'accumulate' | 'accumulate-unique' | 'accumulate-unique-by' | 'replace';
|
|
2
|
-
export type MergeStrategyDescriptor = {
|
|
3
|
-
strategy: MergeStrategy;
|
|
4
|
-
} | {
|
|
5
|
-
strategy: 'accumulate-unique-by';
|
|
6
|
-
data: string | ((value: any) => string);
|
|
7
|
-
};
|
|
8
|
-
export type ValuePathString = string;
|
|
9
|
-
export type ValuePathArray = (string | number)[];
|
|
10
|
-
export type MergeStrategyMap = Record<ValuePathString, MergeStrategyDescriptor>;
|
|
11
|
-
export declare const DEFAULT_MERGE_STRATEGY: MergeStrategy;
|
|
12
|
-
export declare const getValuePathString: (valuePathArray?: ValuePathArray) => string;
|
|
13
|
-
export declare const getValuePathArray: (valuePathString?: ValuePathString) => string[];
|
|
14
|
-
export declare const isConstructedFrom: (value: any, constructorReference: Function) => boolean;
|
|
15
|
-
export declare const mergeValues: (valuePathArray: ValuePathArray | undefined, existingValue: any, newValue: any, mergeStrategyMap?: MergeStrategyMap) => any;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergeValues = exports.isConstructedFrom = exports.getValuePathArray = exports.getValuePathString = exports.DEFAULT_MERGE_STRATEGY = void 0;
|
|
4
|
-
exports.DEFAULT_MERGE_STRATEGY = 'transpose';
|
|
5
|
-
const getValuePathString = (valuePathArray = []) => valuePathArray.map((p) => encodeURIComponent(p)).join('/');
|
|
6
|
-
exports.getValuePathString = getValuePathString;
|
|
7
|
-
const getValuePathArray = (valuePathString = '') => valuePathString.split('/').map((p) => decodeURIComponent(p));
|
|
8
|
-
exports.getValuePathArray = getValuePathArray;
|
|
9
|
-
const isConstructedFrom = (value, constructorReference) => value !== null && typeof value === 'object' && 'constructor' in value && value.constructor === constructorReference;
|
|
10
|
-
exports.isConstructedFrom = isConstructedFrom;
|
|
11
|
-
const mergeValues = (valuePathArray = [], existingValue, newValue, mergeStrategyMap = {}) => {
|
|
12
|
-
const valuePathString = (0, exports.getValuePathString)(valuePathArray);
|
|
13
|
-
const arrayIndexWildcardValuePathString = (0, exports.getValuePathString)(valuePathArray.map((p) => (typeof p === 'number' ? '#' : p)));
|
|
14
|
-
const { [valuePathString]: { strategy: specificKeyMergeStrategy = exports.DEFAULT_MERGE_STRATEGY, data: specificKeyMergeStrategyData = undefined } = {}, [arrayIndexWildcardValuePathString]: { strategy: arrayIndexWildcardMergeStrategy = exports.DEFAULT_MERGE_STRATEGY, data: arrayIndexWildcardMergeStrategyData = undefined, } = {}, } = mergeStrategyMap;
|
|
15
|
-
const mergeStrategy = valuePathString in mergeStrategyMap ? specificKeyMergeStrategy : arrayIndexWildcardMergeStrategy;
|
|
16
|
-
const mergeStrategyData = valuePathString in mergeStrategyMap ? specificKeyMergeStrategyData : arrayIndexWildcardMergeStrategyData;
|
|
17
|
-
let mergedValue = typeof newValue !== 'undefined' ? newValue : existingValue;
|
|
18
|
-
if (mergeStrategy !== 'replace') {
|
|
19
|
-
if ((0, exports.isConstructedFrom)(existingValue, Array) && (0, exports.isConstructedFrom)(newValue, Array)) {
|
|
20
|
-
if (mergeStrategy === 'accumulate') {
|
|
21
|
-
mergedValue = [...existingValue, ...newValue];
|
|
22
|
-
}
|
|
23
|
-
else if (mergeStrategy === 'accumulate-unique') {
|
|
24
|
-
mergedValue = [...existingValue, ...newValue.filter((item) => existingValue.indexOf(item) === -1)];
|
|
25
|
-
}
|
|
26
|
-
else if (mergeStrategy === 'accumulate-unique-by') {
|
|
27
|
-
const existingItemMap = {};
|
|
28
|
-
const newItemMap = {};
|
|
29
|
-
for (let i = 0; i < existingValue.length; i++) {
|
|
30
|
-
const existingItem = existingValue[i];
|
|
31
|
-
if (existingItem && typeof existingItem === 'object') {
|
|
32
|
-
const identifier = mergeStrategyData instanceof Function ? mergeStrategyData(existingItem) : existingItem[mergeStrategyData];
|
|
33
|
-
existingItemMap[identifier] = existingItem;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
for (let j = 0; j < newValue.length; j++) {
|
|
37
|
-
const newItem = newValue[j];
|
|
38
|
-
if (newItem && typeof newItem === 'object') {
|
|
39
|
-
const identifier = mergeStrategyData instanceof Function ? mergeStrategyData(newItem) : newItem[mergeStrategyData];
|
|
40
|
-
newItemMap[identifier] = newItem;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
mergedValue = Object.keys({
|
|
44
|
-
...existingItemMap,
|
|
45
|
-
...newItemMap,
|
|
46
|
-
}).map((id, index) => (0, exports.mergeValues)([...valuePathArray, index], existingItemMap[id], newItemMap[id], mergeStrategyMap));
|
|
47
|
-
}
|
|
48
|
-
else if (mergeStrategy === 'transpose') {
|
|
49
|
-
const fullLength = Math.max(existingValue.length, newValue.length);
|
|
50
|
-
mergedValue = [...new Array(fullLength)].map((_empty, index) => (0, exports.mergeValues)([...valuePathArray, index], existingValue[index], newValue[index], mergeStrategyMap));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
else if ((0, exports.isConstructedFrom)(existingValue, Object) && (0, exports.isConstructedFrom)(newValue, Object)) {
|
|
54
|
-
mergedValue = Object.keys({ ...existingValue, ...newValue }).reduce((acc, k) => ({
|
|
55
|
-
...acc,
|
|
56
|
-
[k]: (0, exports.mergeValues)([...valuePathArray, k], existingValue[k], newValue[k], mergeStrategyMap),
|
|
57
|
-
}), {});
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return mergedValue;
|
|
61
|
-
};
|
|
62
|
-
exports.mergeValues = mergeValues;
|
package/src/index.d.ts
DELETED
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Route RPC back-end API requests to the appropriate functions with context about authentication, the request itself and more.
|
|
3
|
-
*
|
|
4
|
-
* @usage `import * from "@resistdesign/voltra/api";`
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* export const handler = async (event: any): Promise<CloudFunctionResponse> =>
|
|
9
|
-
* handleCloudFunctionEvent(
|
|
10
|
-
* event,
|
|
11
|
-
* AWS.normalizeCloudFunctionEvent,
|
|
12
|
-
* addRoutesToRouteMap({}, [
|
|
13
|
-
* {
|
|
14
|
-
* path: "",
|
|
15
|
-
* authConfig: {
|
|
16
|
-
* anyAuthorized: true,
|
|
17
|
-
* },
|
|
18
|
-
* handler: async () => 'WELCOME!!!!',
|
|
19
|
-
* }
|
|
20
|
-
* ]),
|
|
21
|
-
* [
|
|
22
|
-
* process.env.CLIENT_ORIGIN as string,
|
|
23
|
-
* /https:\\/\\/example\\.com(:.*?$|\\/.*$|$)/gim,
|
|
24
|
-
* ]
|
|
25
|
-
* );
|
|
26
|
-
* ```
|
|
27
|
-
* */
|
|
28
|
-
export * as API from "./api";
|
|
29
|
-
/**
|
|
30
|
-
* Build front-end applications with React/TypeScript, layout systems, form generation, RPC requests, easy state management and more.
|
|
31
|
-
*
|
|
32
|
-
* @usage `import * from "@resistdesign/voltra/app";`
|
|
33
|
-
*
|
|
34
|
-
* @see {@link getEasyLayout}, {@link TypeInfoApplication} and {@link useApplicationStateLoader} for some great starting points.
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* ```tsx
|
|
38
|
-
* const APP_STATE_IDENTIFIERS = {
|
|
39
|
-
* LOGIN: {
|
|
40
|
-
* USERNAME: {},
|
|
41
|
-
* PASSWORD: {},
|
|
42
|
-
* LOGGED_IN: {},
|
|
43
|
-
* },
|
|
44
|
-
* };
|
|
45
|
-
*
|
|
46
|
-
* const LOGIN_SERVICE_CONFIG = {
|
|
47
|
-
* protocol: "https",
|
|
48
|
-
* domain: "example.com",
|
|
49
|
-
* basePath: "/api",
|
|
50
|
-
* };
|
|
51
|
-
* const LOGIN_RPC: RemoteProcedureCall = {
|
|
52
|
-
* serviceConfig: LOGIN_SERVICE_CONFIG,
|
|
53
|
-
* path: "/login",
|
|
54
|
-
* args: [],
|
|
55
|
-
* };
|
|
56
|
-
*
|
|
57
|
-
* const {
|
|
58
|
-
* layout: LoginLayout,
|
|
59
|
-
* areas: { Header, Side, Main },
|
|
60
|
-
* } = getEasyLayout()`
|
|
61
|
-
* header header, 1fr
|
|
62
|
-
* side main, 3fr
|
|
63
|
-
* // 1fr 3fr
|
|
64
|
-
* `;
|
|
65
|
-
*
|
|
66
|
-
* export const Login: FC = () => {
|
|
67
|
-
* const {
|
|
68
|
-
* valueStructure: {
|
|
69
|
-
* username: username = "",
|
|
70
|
-
* password: password = "",
|
|
71
|
-
* loggedIn: loggedIn = false,
|
|
72
|
-
* },
|
|
73
|
-
* onChangeStructure: {
|
|
74
|
-
* username: setUsername,
|
|
75
|
-
* password: setPassword,
|
|
76
|
-
* loggedIn: setLoggedIn,
|
|
77
|
-
* },
|
|
78
|
-
* } = useApplicationStateValueStructure<{
|
|
79
|
-
* username: string;
|
|
80
|
-
* password: string;
|
|
81
|
-
* loggedIn: boolean;
|
|
82
|
-
* }>({
|
|
83
|
-
* username: APP_STATE_IDENTIFIERS.LOGIN.USERNAME,
|
|
84
|
-
* password: APP_STATE_IDENTIFIERS.LOGIN.PASSWORD,
|
|
85
|
-
* loggedIn: APP_STATE_IDENTIFIERS.LOGIN.LOGGED_IN,
|
|
86
|
-
* });
|
|
87
|
-
* const onUsernameChange = useCallback(
|
|
88
|
-
* (event: ReactChangeEvent<HTMLInputElement>) => {
|
|
89
|
-
* setUsername(event.target.value);
|
|
90
|
-
* },
|
|
91
|
-
* [setUsername],
|
|
92
|
-
* );
|
|
93
|
-
* const onPasswordChange = useCallback(
|
|
94
|
-
* (event: ReactChangeEvent<HTMLInputElement>) => {
|
|
95
|
-
* setPassword(event.target.value);
|
|
96
|
-
* },
|
|
97
|
-
* [setPassword],
|
|
98
|
-
* );
|
|
99
|
-
* const { loading: loadingLogin, makeRemoteProcedureCall } =
|
|
100
|
-
* useApplicationStateLoader({
|
|
101
|
-
* identifier: APP_STATE_IDENTIFIERS.LOGIN.LOGGED_IN,
|
|
102
|
-
* remoteProcedureCall: LOGIN_RPC,
|
|
103
|
-
* manual: true,
|
|
104
|
-
* });
|
|
105
|
-
* const onSubmit = useCallback(() => {
|
|
106
|
-
* makeRemoteProcedureCall(username, password);
|
|
107
|
-
* }, [username, password, makeRemoteProcedureCall]);
|
|
108
|
-
*
|
|
109
|
-
* return (
|
|
110
|
-
* <LoginLayout>
|
|
111
|
-
* <Header>
|
|
112
|
-
* <h1>Login</h1>
|
|
113
|
-
* </Header>
|
|
114
|
-
* <Side>
|
|
115
|
-
* <h5>Login here:</h5>
|
|
116
|
-
* </Side>
|
|
117
|
-
* <Main>
|
|
118
|
-
* {loadingLogin ? (
|
|
119
|
-
* <>Loading...</>
|
|
120
|
-
* ) : loggedIn ? (
|
|
121
|
-
* <>Logged In!</>
|
|
122
|
-
* ) : (
|
|
123
|
-
* <BaseForm onSubmit={onSubmit}>
|
|
124
|
-
* <input
|
|
125
|
-
* type="text"
|
|
126
|
-
* placeholder="Username"
|
|
127
|
-
* value={username}
|
|
128
|
-
* onChange={onUsernameChange}
|
|
129
|
-
* />
|
|
130
|
-
* <br />
|
|
131
|
-
* <input
|
|
132
|
-
* type="password"
|
|
133
|
-
* placeholder="Password"
|
|
134
|
-
* value={password}
|
|
135
|
-
* onChange={onPasswordChange}
|
|
136
|
-
* />
|
|
137
|
-
* <br />
|
|
138
|
-
* <br />
|
|
139
|
-
* <button type="submit">Log In</button>
|
|
140
|
-
* </BaseForm>
|
|
141
|
-
* )}
|
|
142
|
-
* </Main>
|
|
143
|
-
* </LoginLayout>
|
|
144
|
-
* );
|
|
145
|
-
* };
|
|
146
|
-
* ```
|
|
147
|
-
* */
|
|
148
|
-
export * as App from "./app";
|
|
149
|
-
/**
|
|
150
|
-
* Build infrastructure as code with reusable components and utilities.
|
|
151
|
-
*
|
|
152
|
-
* @usage Start with `SimpleCFT`, add packs and use utilities as needed.
|
|
153
|
-
*
|
|
154
|
-
* `import * from "@resistdesign/voltra/iac";`
|
|
155
|
-
*
|
|
156
|
-
* @example
|
|
157
|
-
* ```typescript
|
|
158
|
-
* const ctf = new SimpleCFT()
|
|
159
|
-
* .applyPack(
|
|
160
|
-
* addDNS,
|
|
161
|
-
* {
|
|
162
|
-
* hostedZoneIdParameterName: "<YOUR_INFO_HERE>",
|
|
163
|
-
* domainNameParameterName: "<YOUR_INFO_HERE>",
|
|
164
|
-
* localUIDevelopmentDomainName: "<YOUR_INFO_HERE>",
|
|
165
|
-
* localUIDevelopmentIPAddress: "<YOUR_INFO_HERE>",
|
|
166
|
-
* }
|
|
167
|
-
* );
|
|
168
|
-
*
|
|
169
|
-
* console.log(cft.template);
|
|
170
|
-
* ```
|
|
171
|
-
* */
|
|
172
|
-
export * as IaC from "./iac";
|
|
173
|
-
/**
|
|
174
|
-
* A set of common utilities for use in all layers of the application stack.
|
|
175
|
-
*
|
|
176
|
-
* @usage `import * from "@resistdesign/voltra/common";`
|
|
177
|
-
* */
|
|
178
|
-
export * as Common from "./common";
|