@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.
Files changed (225) hide show
  1. package/README.md +75 -0
  2. package/SearchTypes-DjN6YQzE.d.ts +577 -0
  3. package/Types-C7XjUjoF.d.ts +240 -0
  4. package/Validation-CFP59oIP.d.ts +226 -0
  5. package/api/index.d.ts +6 -0
  6. package/api/index.js +7968 -0
  7. package/app/index.d.ts +5 -0
  8. package/app/index.js +810 -0
  9. package/common/Testing/CLI.js +432 -0
  10. package/common/index.d.ts +4 -0
  11. package/common/index.js +1760 -0
  12. package/iac/index.d.ts +2 -0
  13. package/iac/index.js +1661 -0
  14. package/iac/packs/index.d.ts +1 -0
  15. package/iac/packs/index.js +1620 -0
  16. package/index-BkFZlfit.d.ts +112 -0
  17. package/index-C3-iD9Mh.d.ts +690 -0
  18. package/index-DZ2BB4iX.d.ts +5357 -0
  19. package/{src/iac/types/IaCTypes.d.ts → index-DcvJOZ_c.d.ts} +1018 -23
  20. package/index-IokxSNxm.d.ts +745 -0
  21. package/index.d.ts +13 -0
  22. package/index.js +10973 -0
  23. package/package.json +40 -41
  24. package/src/api/DataAccessControl.d.ts +0 -85
  25. package/src/api/DataAccessControl.js +0 -159
  26. package/src/api/ORM/DACUtils.d.ts +0 -60
  27. package/src/api/ORM/DACUtils.js +0 -197
  28. package/src/api/ORM/ListItemUtils.d.ts +0 -7
  29. package/src/api/ORM/ListItemUtils.js +0 -22
  30. package/src/api/ORM/ORMRouteMap.d.ts +0 -19
  31. package/src/api/ORM/ORMRouteMap.js +0 -82
  32. package/src/api/ORM/TypeInfoORMService.d.ts +0 -103
  33. package/src/api/ORM/TypeInfoORMService.js +0 -581
  34. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.d.ts +0 -63
  35. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.js +0 -2
  36. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.d.ts +0 -36
  37. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.js +0 -282
  38. package/src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.d.ts +0 -90
  39. package/src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.js +0 -2
  40. package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.d.ts +0 -45
  41. package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.js +0 -127
  42. package/src/api/ORM/drivers/S3FileItemDBDriver.d.ts +0 -44
  43. package/src/api/ORM/drivers/S3FileItemDBDriver.js +0 -182
  44. package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.d.ts +0 -12
  45. package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.js +0 -20
  46. package/src/api/ORM/drivers/common/Types.d.ts +0 -77
  47. package/src/api/ORM/drivers/common/Types.js +0 -14
  48. package/src/api/ORM/drivers/common/index.d.ts +0 -2
  49. package/src/api/ORM/drivers/common/index.js +0 -18
  50. package/src/api/ORM/drivers/index.d.ts +0 -3
  51. package/src/api/ORM/drivers/index.js +0 -19
  52. package/src/api/ORM/index.d.ts +0 -4
  53. package/src/api/ORM/index.js +0 -43
  54. package/src/api/Router/AWS.d.ts +0 -26
  55. package/src/api/Router/AWS.js +0 -76
  56. package/src/api/Router/Auth.d.ts +0 -2
  57. package/src/api/Router/Auth.js +0 -9
  58. package/src/api/Router/CORS.d.ts +0 -6
  59. package/src/api/Router/CORS.js +0 -27
  60. package/src/api/Router/Types.d.ts +0 -71
  61. package/src/api/Router/Types.js +0 -2
  62. package/src/api/Router/index.d.ts +0 -18
  63. package/src/api/Router/index.js +0 -145
  64. package/src/api/index.d.ts +0 -3
  65. package/src/api/index.js +0 -39
  66. package/src/app/index.d.ts +0 -1
  67. package/src/app/index.js +0 -37
  68. package/src/app/utils/ApplicationState.d.ts +0 -52
  69. package/src/app/utils/ApplicationState.js +0 -86
  70. package/src/app/utils/ApplicationStateLoader.d.ts +0 -46
  71. package/src/app/utils/ApplicationStateLoader.js +0 -57
  72. package/src/app/utils/Controller.d.ts +0 -4
  73. package/src/app/utils/Controller.js +0 -47
  74. package/src/app/utils/Debug.d.ts +0 -4
  75. package/src/app/utils/Debug.js +0 -30
  76. package/src/app/utils/EasyLayout.d.ts +0 -49
  77. package/src/app/utils/EasyLayout.js +0 -122
  78. package/src/app/utils/Route.d.ts +0 -28
  79. package/src/app/utils/Route.js +0 -102
  80. package/src/app/utils/Service.d.ts +0 -12
  81. package/src/app/utils/Service.js +0 -34
  82. package/src/app/utils/TypeInfoORMAPIUtils.d.ts +0 -20
  83. package/src/app/utils/TypeInfoORMAPIUtils.js +0 -62
  84. package/src/app/utils/TypeInfoORMClient.d.ts +0 -24
  85. package/src/app/utils/TypeInfoORMClient.js +0 -69
  86. package/src/app/utils/index.d.ts +0 -8
  87. package/src/app/utils/index.js +0 -24
  88. package/src/common/CommandLine/collectRequiredEnvironmentVariables.d.ts +0 -1
  89. package/src/common/CommandLine/collectRequiredEnvironmentVariables.js +0 -16
  90. package/src/common/HelperTypes.d.ts +0 -3
  91. package/src/common/HelperTypes.js +0 -2
  92. package/src/common/IdGeneration/getSimpleId.d.ts +0 -4
  93. package/src/common/IdGeneration/getSimpleId.js +0 -16
  94. package/src/common/IdGeneration/index.d.ts +0 -1
  95. package/src/common/IdGeneration/index.js +0 -17
  96. package/src/common/ItemRelationshipInfoTypes.d.ts +0 -46
  97. package/src/common/ItemRelationshipInfoTypes.js +0 -20
  98. package/src/common/ItemRelationships/ItemRelationshipValidation.d.ts +0 -10
  99. package/src/common/ItemRelationships/ItemRelationshipValidation.js +0 -43
  100. package/src/common/ItemRelationships/index.d.ts +0 -1
  101. package/src/common/ItemRelationships/index.js +0 -17
  102. package/src/common/Logging/Utils.d.ts +0 -10
  103. package/src/common/Logging/Utils.js +0 -33
  104. package/src/common/Logging/index.d.ts +0 -1
  105. package/src/common/Logging/index.js +0 -17
  106. package/src/common/Routing.d.ts +0 -25
  107. package/src/common/Routing.js +0 -102
  108. package/src/common/SearchTypes.d.ts +0 -98
  109. package/src/common/SearchTypes.js +0 -39
  110. package/src/common/SearchUtils.d.ts +0 -22
  111. package/src/common/SearchUtils.js +0 -134
  112. package/src/common/SearchValidation.d.ts +0 -17
  113. package/src/common/SearchValidation.js +0 -90
  114. package/src/common/Storyboarding/Types.d.ts +0 -25
  115. package/src/common/Storyboarding/Types.js +0 -2
  116. package/src/common/StringTransformers.d.ts +0 -17
  117. package/src/common/StringTransformers.js +0 -36
  118. package/src/common/Testing/CLI.d.ts +0 -2
  119. package/src/common/Testing/CLI.js +0 -56
  120. package/src/common/Testing/Types.d.ts +0 -117
  121. package/src/common/Testing/Types.js +0 -19
  122. package/src/common/Testing/Utils.d.ts +0 -48
  123. package/src/common/Testing/Utils.js +0 -334
  124. package/src/common/Testing/index.d.ts +0 -2
  125. package/src/common/Testing/index.js +0 -18
  126. package/src/common/TypeInfoDataItemUtils.d.ts +0 -10
  127. package/src/common/TypeInfoDataItemUtils.js +0 -55
  128. package/src/common/TypeInfoORM/Types.d.ts +0 -76
  129. package/src/common/TypeInfoORM/Types.js +0 -55
  130. package/src/common/TypeInfoORM/index.d.ts +0 -1
  131. package/src/common/TypeInfoORM/index.js +0 -17
  132. package/src/common/TypeParsing/Constants.d.ts +0 -1
  133. package/src/common/TypeParsing/Constants.js +0 -4
  134. package/src/common/TypeParsing/ParsingUtils/Constants.d.ts +0 -5
  135. package/src/common/TypeParsing/ParsingUtils/Constants.js +0 -8
  136. package/src/common/TypeParsing/ParsingUtils/checkType.d.ts +0 -8
  137. package/src/common/TypeParsing/ParsingUtils/checkType.js +0 -46
  138. package/src/common/TypeParsing/ParsingUtils/checkUnionType.d.ts +0 -6
  139. package/src/common/TypeParsing/ParsingUtils/checkUnionType.js +0 -15
  140. package/src/common/TypeParsing/ParsingUtils/extractCommentTags.d.ts +0 -2
  141. package/src/common/TypeParsing/ParsingUtils/extractCommentTags.js +0 -105
  142. package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.d.ts +0 -6
  143. package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.js +0 -42
  144. package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.d.ts +0 -8
  145. package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.js +0 -14
  146. package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.d.ts +0 -5
  147. package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.js +0 -27
  148. package/src/common/TypeParsing/ParsingUtils/getTypeInfo.d.ts +0 -3
  149. package/src/common/TypeParsing/ParsingUtils/getTypeInfo.js +0 -27
  150. package/src/common/TypeParsing/ParsingUtils/getTypeInfoField.d.ts +0 -3
  151. package/src/common/TypeParsing/ParsingUtils/getTypeInfoField.js +0 -44
  152. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.d.ts +0 -4
  153. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.js +0 -28
  154. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.d.ts +0 -4
  155. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.js +0 -105
  156. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.d.ts +0 -4
  157. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.js +0 -20
  158. package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.d.ts +0 -3
  159. package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.js +0 -17
  160. package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.d.ts +0 -4
  161. package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.js +0 -49
  162. package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.d.ts +0 -2
  163. package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.js +0 -24
  164. package/src/common/TypeParsing/TypeInfo.d.ts +0 -142
  165. package/src/common/TypeParsing/TypeInfo.js +0 -13
  166. package/src/common/TypeParsing/TypeMapping.d.ts +0 -9
  167. package/src/common/TypeParsing/TypeMapping.js +0 -32
  168. package/src/common/TypeParsing/TypeParsing.d.ts +0 -5
  169. package/src/common/TypeParsing/TypeParsing.js +0 -39
  170. package/src/common/TypeParsing/Utils.d.ts +0 -21
  171. package/src/common/TypeParsing/Utils.js +0 -94
  172. package/src/common/TypeParsing/Validation.d.ts +0 -92
  173. package/src/common/TypeParsing/Validation.js +0 -340
  174. package/src/common/TypeParsing/index.d.ts +0 -5
  175. package/src/common/TypeParsing/index.js +0 -44
  176. package/src/common/index.d.ts +0 -11
  177. package/src/common/index.js +0 -47
  178. package/src/iac/SimpleCFT.d.ts +0 -48
  179. package/src/iac/SimpleCFT.js +0 -82
  180. package/src/iac/index.d.ts +0 -9
  181. package/src/iac/index.js +0 -48
  182. package/src/iac/packs/auth/user-management.d.ts +0 -14
  183. package/src/iac/packs/auth/user-management.js +0 -302
  184. package/src/iac/packs/auth.d.ts +0 -19
  185. package/src/iac/packs/auth.js +0 -47
  186. package/src/iac/packs/build/utils.d.ts +0 -100
  187. package/src/iac/packs/build/utils.js +0 -23
  188. package/src/iac/packs/build.d.ts +0 -29
  189. package/src/iac/packs/build.js +0 -217
  190. package/src/iac/packs/cdn.d.ts +0 -12
  191. package/src/iac/packs/cdn.js +0 -126
  192. package/src/iac/packs/cloud-function.d.ts +0 -17
  193. package/src/iac/packs/cloud-function.js +0 -69
  194. package/src/iac/packs/database.d.ts +0 -29
  195. package/src/iac/packs/database.js +0 -27
  196. package/src/iac/packs/dns.d.ts +0 -13
  197. package/src/iac/packs/dns.js +0 -26
  198. package/src/iac/packs/file-storage.d.ts +0 -14
  199. package/src/iac/packs/file-storage.js +0 -71
  200. package/src/iac/packs/gateway.d.ts +0 -27
  201. package/src/iac/packs/gateway.js +0 -342
  202. package/src/iac/packs/index.d.ts +0 -11
  203. package/src/iac/packs/index.js +0 -27
  204. package/src/iac/packs/repo.d.ts +0 -10
  205. package/src/iac/packs/repo.js +0 -34
  206. package/src/iac/packs/ssl-certificate.d.ts +0 -10
  207. package/src/iac/packs/ssl-certificate.js +0 -36
  208. package/src/iac/types/CloudFormationResourceSpecification.d.ts +0 -2
  209. package/src/iac/types/Constants.d.ts +0 -9
  210. package/src/iac/types/Constants.js +0 -20
  211. package/src/iac/types/IaCTypes.js +0 -14
  212. package/src/iac/types/Renderers.d.ts +0 -12
  213. package/src/iac/types/Renderers.js +0 -112
  214. package/src/iac/types/Types.d.ts +0 -37
  215. package/src/iac/types/Types.js +0 -2
  216. package/src/iac/types/Utils.d.ts +0 -2
  217. package/src/iac/types/Utils.js +0 -60
  218. package/src/iac/types/generate.d.ts +0 -1
  219. package/src/iac/types/generate.js +0 -31
  220. package/src/iac/utils/index.d.ts +0 -36
  221. package/src/iac/utils/index.js +0 -105
  222. package/src/iac/utils/patch-utils.d.ts +0 -15
  223. package/src/iac/utils/patch-utils.js +0 -62
  224. package/src/index.d.ts +0 -178
  225. package/src/index.js +0 -214
@@ -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
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- import { CloudFormationResourceSpecification, NamespaceStructure } from './Types';
2
- export declare const getNamespaceStructure: (specification: CloudFormationResourceSpecification, baseStructure: NamespaceStructure) => NamespaceStructure;
@@ -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();
@@ -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
- };
@@ -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";