@resistdesign/voltra 3.0.0-alpha.4 → 3.0.0-alpha.41

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 (219) hide show
  1. package/README.md +379 -14
  2. package/api/DBX/DBXAsserts.d.ts +95 -0
  3. package/api/DBX/DBXRequest.d.ts +5 -0
  4. package/api/DBX/DBXRuntime.d.ts +5 -0
  5. package/api/DBX/DBXScenarioConfig.d.ts +9 -0
  6. package/api/DBX/DBXSeed.d.ts +124 -0
  7. package/api/DBX/DBXTypes.d.ts +176 -0
  8. package/api/DBX/index.d.ts +8 -0
  9. package/api/DataAccessControl.d.ts +220 -0
  10. package/api/Indexing/API.d.ts +224 -0
  11. package/api/Indexing/Cursor.d.ts +101 -0
  12. package/api/Indexing/Handler/Config.d.ts +39 -0
  13. package/api/Indexing/Handler.d.ts +166 -0
  14. package/api/Indexing/Trace.d.ts +54 -0
  15. package/api/Indexing/Types.d.ts +204 -0
  16. package/api/Indexing/ddb/AwsSdkV3Adapter.d.ts +8 -0
  17. package/api/Indexing/ddb/Types.d.ts +209 -0
  18. package/api/Indexing/docId.d.ts +27 -0
  19. package/api/Indexing/exact/ExactDdb.d.ts +58 -0
  20. package/api/Indexing/exact/ExactIndex.d.ts +90 -0
  21. package/api/Indexing/exact/ExactS3.d.ts +41 -0
  22. package/api/Indexing/fieldQualification.d.ts +12 -0
  23. package/api/Indexing/fulltext/FullTextDdbBackend.d.ts +212 -0
  24. package/api/Indexing/fulltext/FullTextMemoryBackend.d.ts +93 -0
  25. package/api/Indexing/fulltext/Schema.d.ts +164 -0
  26. package/api/Indexing/hashUniversal.d.ts +13 -0
  27. package/api/Indexing/index.d.ts +45 -0
  28. package/api/Indexing/lossy/LossyDdb.d.ts +43 -0
  29. package/api/Indexing/lossy/LossyIndex.d.ts +72 -0
  30. package/api/Indexing/lossy/LossyS3.d.ts +40 -0
  31. package/api/Indexing/rel/Cursor.d.ts +25 -0
  32. package/api/Indexing/rel/Handlers.d.ts +144 -0
  33. package/api/Indexing/rel/RelationalDdb.d.ts +169 -0
  34. package/api/Indexing/rel/RelationalInMemoryBackend.d.ts +38 -0
  35. package/api/Indexing/rel/Types.d.ts +69 -0
  36. package/api/Indexing/structured/Cursor.d.ts +26 -0
  37. package/api/Indexing/structured/Handlers.d.ts +128 -0
  38. package/api/Indexing/structured/SearchStructured.d.ts +44 -0
  39. package/api/Indexing/structured/StructuredDdb.d.ts +184 -0
  40. package/api/Indexing/structured/StructuredDdbBackend.d.ts +112 -0
  41. package/api/Indexing/structured/StructuredInMemoryBackend.d.ts +40 -0
  42. package/api/Indexing/structured/StructuredInMemoryIndex.d.ts +61 -0
  43. package/api/Indexing/structured/StructuredStringLike.d.ts +54 -0
  44. package/api/Indexing/structured/StructuredWriter.d.ts +74 -0
  45. package/api/Indexing/structured/Types.d.ts +126 -0
  46. package/api/Indexing/structured/index.d.ts +9 -0
  47. package/api/Indexing/tokenize.d.ts +31 -0
  48. package/api/ORM/DACUtils.d.ts +270 -0
  49. package/api/ORM/ListItemUtils.d.ts +40 -0
  50. package/api/ORM/ORMRouteMap.d.ts +55 -0
  51. package/api/ORM/TypeInfoORMService.d.ts +740 -0
  52. package/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.d.ts +229 -0
  53. package/api/ORM/drivers/DynamoDBDataItemDBDriver.d.ts +89 -0
  54. package/api/ORM/drivers/InMemoryDataItemDBDriver/ConfigTypes.d.ts +4 -0
  55. package/api/ORM/drivers/InMemoryDataItemDBDriver.d.ts +55 -0
  56. package/api/ORM/drivers/InMemoryFileItemDBDriver/ConfigTypes.d.ts +13 -0
  57. package/api/ORM/drivers/InMemoryFileItemDBDriver.d.ts +98 -0
  58. package/api/ORM/drivers/InMemoryItemRelationshipDBDriver.d.ts +16 -0
  59. package/api/ORM/drivers/IndexingRelationshipDriver.d.ts +123 -0
  60. package/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.d.ts +322 -0
  61. package/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.d.ts +118 -0
  62. package/api/ORM/drivers/S3FileItemDBDriver.d.ts +71 -0
  63. package/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.d.ts +36 -0
  64. package/api/ORM/drivers/common/Types.d.ts +197 -0
  65. package/api/ORM/drivers/common/index.d.ts +2 -0
  66. package/api/ORM/drivers/index.d.ts +8 -0
  67. package/api/ORM/index.d.ts +9 -0
  68. package/api/ORM/indexing/criteriaToStructuredWhere.d.ts +22 -0
  69. package/api/Router/AWS.d.ts +80 -0
  70. package/api/Router/Auth.d.ts +14 -0
  71. package/api/Router/CORS.d.ts +66 -0
  72. package/api/Router/Types.d.ts +138 -0
  73. package/api/Router/index.d.ts +89 -0
  74. package/api/index.d.ts +72 -6
  75. package/api/index.js +3291 -1954
  76. package/app/forms/Engine.d.ts +23 -0
  77. package/app/forms/UI.d.ts +83 -0
  78. package/app/forms/core/createAutoField.d.ts +43 -0
  79. package/app/forms/core/createFormRenderer.d.ts +25 -0
  80. package/app/forms/core/getFieldKind.d.ts +14 -0
  81. package/app/forms/core/index.d.ts +11 -0
  82. package/app/forms/core/mergeSuites.d.ts +23 -0
  83. package/app/forms/core/resolveSuite.d.ts +15 -0
  84. package/app/forms/core/types.d.ts +180 -0
  85. package/app/forms/index.d.ts +9 -0
  86. package/app/forms/types.d.ts +137 -0
  87. package/app/helpers/styled.d.ts +3 -0
  88. package/app/index.d.ts +102 -5
  89. package/app/index.js +98 -327
  90. package/app/utils/ApplicationState.d.ts +167 -0
  91. package/app/utils/ApplicationStateLoader.d.ts +86 -0
  92. package/app/utils/Controller.d.ts +10 -0
  93. package/app/utils/Debug.d.ts +14 -0
  94. package/app/utils/EasyLayout.d.ts +89 -0
  95. package/app/utils/History.d.ts +165 -0
  96. package/app/utils/Route.d.ts +173 -0
  97. package/app/utils/RouteHistory.d.ts +27 -0
  98. package/app/utils/Service.d.ts +45 -0
  99. package/app/utils/TypeInfoORMAPIUtils.d.ts +94 -0
  100. package/app/utils/TypeInfoORMClient.d.ts +103 -0
  101. package/app/utils/UniversalRouteAdapter.d.ts +73 -0
  102. package/app/utils/easy-layout/computeAreaBounds.d.ts +5 -0
  103. package/app/utils/easy-layout/computeTracks.d.ts +16 -0
  104. package/app/utils/easy-layout/index.d.ts +5 -0
  105. package/app/utils/easy-layout/parseTemplate.d.ts +12 -0
  106. package/app/utils/easy-layout/types.d.ts +52 -0
  107. package/app/utils/easy-layout/validateAreas.d.ts +5 -0
  108. package/app/utils/index.d.ts +24 -0
  109. package/build/TypeMapping.d.ts +17 -0
  110. package/build/TypeParsing.d.ts +10 -0
  111. package/build/index.d.ts +15 -0
  112. package/build/index.js +569 -0
  113. package/chunk-2MOLWZMQ.js +71 -0
  114. package/chunk-7AMEFPPP.js +78 -0
  115. package/chunk-ATO2455Q.js +258 -0
  116. package/chunk-DT6WWJUI.js +1185 -0
  117. package/chunk-I2KLQ2HA.js +19 -0
  118. package/chunk-TJFTWPXQ.js +39 -0
  119. package/chunk-WNFRDIBW.js +121 -0
  120. package/chunk-YCTVEW2I.js +546 -0
  121. package/common/CommandLine/collectRequiredEnvironmentVariables.d.ts +9 -0
  122. package/common/CommandLine/index.d.ts +6 -0
  123. package/common/HelperTypes.d.ts +9 -0
  124. package/common/IdGeneration/getSimpleId.d.ts +8 -0
  125. package/common/IdGeneration/index.d.ts +1 -0
  126. package/common/ItemRelationshipInfoTypes.d.ts +64 -0
  127. package/common/ItemRelationships/ItemRelationshipValidation.d.ts +21 -0
  128. package/common/ItemRelationships/index.d.ts +2 -0
  129. package/common/Logging/Utils.d.ts +10 -0
  130. package/common/Logging/index.d.ts +1 -0
  131. package/common/Routing.d.ts +81 -0
  132. package/common/SearchTypes.d.ts +227 -0
  133. package/common/SearchUtils.d.ts +55 -0
  134. package/common/SearchValidation.d.ts +27 -0
  135. package/common/StringTransformers.d.ts +28 -0
  136. package/common/Testing/CLI.d.ts +6 -0
  137. package/common/Testing/Types.d.ts +216 -0
  138. package/common/Testing/Utils.d.ts +112 -0
  139. package/common/Testing/index.d.ts +8 -0
  140. package/common/TypeInfoDataItemUtils.d.ts +39 -0
  141. package/{Types-C7XjUjoF.d.ts → common/TypeInfoORM/Types.d.ts} +117 -15
  142. package/common/TypeInfoORM/index.d.ts +3 -0
  143. package/common/TypeParsing/Constants.d.ts +4 -0
  144. package/common/TypeParsing/ParsingUtils/Constants.d.ts +8 -0
  145. package/common/TypeParsing/ParsingUtils/checkType.d.ts +14 -0
  146. package/common/TypeParsing/ParsingUtils/checkUnionType.d.ts +12 -0
  147. package/common/TypeParsing/ParsingUtils/extractCommentTags.d.ts +8 -0
  148. package/common/TypeParsing/ParsingUtils/extractLiteralValues.d.ts +12 -0
  149. package/common/TypeParsing/ParsingUtils/extractTypeDetails.d.ts +14 -0
  150. package/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.d.ts +18 -0
  151. package/common/TypeParsing/ParsingUtils/getTypeInfo.d.ts +9 -0
  152. package/common/TypeParsing/ParsingUtils/getTypeInfoField.d.ts +9 -0
  153. package/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.d.ts +11 -0
  154. package/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.d.ts +12 -0
  155. package/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.d.ts +11 -0
  156. package/common/TypeParsing/ParsingUtils/getTypeKeyword.d.ts +9 -0
  157. package/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.d.ts +11 -0
  158. package/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.d.ts +8 -0
  159. package/common/TypeParsing/TypeInfo.d.ts +222 -0
  160. package/common/TypeParsing/Utils.d.ts +47 -0
  161. package/common/TypeParsing/Validation.d.ts +327 -0
  162. package/common/TypeParsing/index.d.ts +8 -0
  163. package/common/index.d.ts +40 -4
  164. package/common/index.js +25 -1737
  165. package/{index-BkFZlfit.d.ts → iac/SimpleCFT.d.ts} +5 -25
  166. package/iac/index.d.ts +40 -2
  167. package/iac/index.js +2 -1661
  168. package/iac/packs/auth.d.ts +131 -0
  169. package/iac/packs/build/utils.d.ts +289 -0
  170. package/iac/packs/build.d.ts +92 -0
  171. package/iac/packs/cdn.d.ts +33 -0
  172. package/iac/packs/cloud-function.d.ts +67 -0
  173. package/iac/packs/database.d.ts +32 -0
  174. package/iac/packs/dns.d.ts +34 -0
  175. package/iac/packs/file-storage.d.ts +46 -0
  176. package/iac/packs/gateway.d.ts +82 -0
  177. package/iac/packs/index.d.ts +60 -1
  178. package/iac/packs/index.js +391 -594
  179. package/iac/packs/repo.d.ts +28 -0
  180. package/iac/packs/ssl-certificate.d.ts +28 -0
  181. package/iac/types/Constants.d.ts +24 -0
  182. package/{index-DcvJOZ_c.d.ts → iac/types/IaCTypes.d.ts} +23 -1018
  183. package/iac/types/Renderers.d.ts +96 -0
  184. package/iac/types/Types.d.ts +131 -0
  185. package/iac/types/Utils.d.ts +9 -0
  186. package/iac/types/generate.d.ts +1 -0
  187. package/iac/utils/index.d.ts +87 -0
  188. package/iac/utils/patch-utils.d.ts +66 -0
  189. package/iac-packs/index.d.ts +6 -0
  190. package/native/forms/UI.d.ts +73 -0
  191. package/native/forms/createNativeFormRenderer.d.ts +21 -0
  192. package/native/forms/index.d.ts +25 -0
  193. package/native/forms/primitives/index.d.ts +38 -0
  194. package/native/forms/suite.d.ts +15 -0
  195. package/native/index.d.ts +19 -0
  196. package/native/index.js +748 -0
  197. package/native/testing/react-native.d.ts +46 -0
  198. package/native/utils/EasyLayout.d.ts +88 -0
  199. package/native/utils/History.d.ts +102 -0
  200. package/native/utils/Route.d.ts +80 -0
  201. package/native/utils/index.d.ts +20 -0
  202. package/package.json +54 -21
  203. package/web/forms/UI.d.ts +74 -0
  204. package/web/forms/createWebFormRenderer.d.ts +21 -0
  205. package/web/forms/index.d.ts +9 -0
  206. package/web/forms/primitives/index.d.ts +21 -0
  207. package/web/forms/suite.d.ts +15 -0
  208. package/web/index.d.ts +15 -0
  209. package/web/index.js +668 -0
  210. package/web/utils/EasyLayout.d.ts +47 -0
  211. package/web/utils/Route.d.ts +16 -0
  212. package/web/utils/index.d.ts +7 -0
  213. package/SearchTypes-DjN6YQzE.d.ts +0 -577
  214. package/Validation-CFP59oIP.d.ts +0 -226
  215. package/index-C3-iD9Mh.d.ts +0 -690
  216. package/index-DZ2BB4iX.d.ts +0 -5357
  217. package/index-IokxSNxm.d.ts +0 -745
  218. package/index.d.ts +0 -13
  219. package/index.js +0 -10973
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * Various build tools like a dynamic TypeScript-to-TypeInfo parser.
5
+ */
6
+ /**
7
+ * @category build
8
+ * @group Type Mapping
9
+ */
10
+ export * from "./TypeMapping";
11
+ /**
12
+ * @category build
13
+ * @group Type Parsing
14
+ */
15
+ export * from "./TypeParsing";
package/build/index.js ADDED
@@ -0,0 +1,569 @@
1
+ import { getPotentialJSONValue, getPathArray } from '../chunk-WNFRDIBW.js';
2
+ import '../chunk-I2KLQ2HA.js';
3
+ import { SyntaxKind, isLiteralTypeNode, isStringLiteral, isNumericLiteral, createSourceFile, ScriptTarget } from 'typescript';
4
+
5
+ var convertASTToMap = (node, map = {}, parentName) => {
6
+ node.forEachChild((child) => {
7
+ const { kind: childKind } = child;
8
+ if (childKind === SyntaxKind.ModuleDeclaration) {
9
+ const moduleNode = child;
10
+ const { name: moduleName } = moduleNode;
11
+ const textModuleName = moduleName.getText();
12
+ const fullModuleName = parentName ? `${parentName}.${textModuleName}` : textModuleName;
13
+ convertASTToMap(moduleNode, map, fullModuleName);
14
+ }
15
+ if (childKind === SyntaxKind.ModuleBlock) {
16
+ convertASTToMap(child, map, parentName);
17
+ }
18
+ if (childKind === SyntaxKind.TypeAliasDeclaration) {
19
+ const typeAliasDec = child;
20
+ const {
21
+ name: { text: typeName }
22
+ } = typeAliasDec;
23
+ const fullTypeName = parentName ? `${parentName}.${typeName}` : typeName;
24
+ map[fullTypeName] = typeAliasDec;
25
+ }
26
+ });
27
+ return map;
28
+ };
29
+
30
+ // src/common/TypeParsing/ParsingUtils/extractCommentTags.ts
31
+ var TAG_NAME_PATH_DELIMITER = ".";
32
+ var getFlatTagValue = (tagValue) => {
33
+ if (typeof tagValue === "undefined") {
34
+ return "";
35
+ } else if (Array.isArray(tagValue)) {
36
+ const valueNodeArray = tagValue;
37
+ const valueList = [];
38
+ for (let i = 0; i < valueNodeArray.length; i++) {
39
+ const { text } = valueNodeArray[i];
40
+ valueList.push(getFlatTagValue(text));
41
+ }
42
+ return valueList.join(" ");
43
+ } else {
44
+ return `${tagValue}`;
45
+ }
46
+ };
47
+ var getTagNameAndValue = (tag) => {
48
+ let name = tag.tagName.text, value = getFlatTagValue(tag.comment);
49
+ if (value.startsWith(TAG_NAME_PATH_DELIMITER)) {
50
+ const extendedTagNameEndIndex = value.indexOf(" ");
51
+ const hasActualValue = extendedTagNameEndIndex !== -1;
52
+ name += hasActualValue ? value.slice(0, extendedTagNameEndIndex) : value;
53
+ value = hasActualValue ? value.slice(extendedTagNameEndIndex + 1) : "";
54
+ }
55
+ if (value === "") {
56
+ value = "true";
57
+ }
58
+ return {
59
+ name,
60
+ value
61
+ };
62
+ };
63
+ var getObjectWithValueAppliedToPath = (path = [], value, baseObject) => {
64
+ let baseParentObject = void 0, currentParent = void 0;
65
+ if (path.length === 0) {
66
+ baseParentObject = value;
67
+ } else {
68
+ for (let i = 0; i < path.length; i++) {
69
+ const pathPart = path[i];
70
+ const cleanPathPart = typeof pathPart === "number" ? pathPart : `${typeof pathPart !== "undefined" ? pathPart : ""}`;
71
+ const isNum = typeof cleanPathPart === "number";
72
+ let newCurrentParent = void 0;
73
+ if (i === 0) {
74
+ if (!baseObject) {
75
+ baseParentObject = isNum ? [] : {};
76
+ } else {
77
+ baseParentObject = isNum ? [...Array.isArray(baseObject) ? baseObject : []] : {
78
+ ...typeof baseObject === "object" ? baseObject : {}
79
+ };
80
+ }
81
+ currentParent = baseParentObject;
82
+ }
83
+ if (i < path.length - 1) {
84
+ const existingNewCurrentParent = currentParent[cleanPathPart];
85
+ newCurrentParent = isNum ? [
86
+ ...Array.isArray(existingNewCurrentParent) ? existingNewCurrentParent : []
87
+ ] : {
88
+ ...typeof existingNewCurrentParent === "object" ? existingNewCurrentParent : {}
89
+ };
90
+ currentParent[cleanPathPart] = newCurrentParent;
91
+ currentParent = newCurrentParent;
92
+ } else {
93
+ currentParent[cleanPathPart] = value;
94
+ }
95
+ }
96
+ }
97
+ return baseParentObject;
98
+ };
99
+ var extractCommentTags = (node) => {
100
+ const jsDocComments = node["jsDoc"];
101
+ let commentTags = {};
102
+ if (jsDocComments) {
103
+ jsDocComments.forEach((jsDoc) => {
104
+ const tags = jsDoc.tags;
105
+ if (tags) {
106
+ tags.forEach((tag) => {
107
+ const { name: tagName, value: tagValue } = getTagNameAndValue(tag);
108
+ const potentialJSONValue = getPotentialJSONValue(tagValue);
109
+ commentTags = getObjectWithValueAppliedToPath(
110
+ getPathArray(tagName, TAG_NAME_PATH_DELIMITER),
111
+ potentialJSONValue,
112
+ commentTags
113
+ );
114
+ });
115
+ }
116
+ });
117
+ }
118
+ return commentTags;
119
+ };
120
+ var extractLiteralValues = (node) => {
121
+ const literalValues = [];
122
+ let detectedTypeKeyword;
123
+ for (const type of node.types) {
124
+ if (isLiteralTypeNode(type)) {
125
+ const literal = type.literal;
126
+ if (isStringLiteral(literal)) {
127
+ if (!detectedTypeKeyword) detectedTypeKeyword = "string";
128
+ if (detectedTypeKeyword === "string") {
129
+ literalValues.push(literal.text);
130
+ }
131
+ } else if (isNumericLiteral(literal)) {
132
+ if (!detectedTypeKeyword) detectedTypeKeyword = "number";
133
+ if (detectedTypeKeyword === "number") {
134
+ literalValues.push(Number(literal.text));
135
+ }
136
+ } else if (literal.kind === SyntaxKind.TrueKeyword || literal.kind === SyntaxKind.FalseKeyword) {
137
+ if (!detectedTypeKeyword) detectedTypeKeyword = "boolean";
138
+ if (detectedTypeKeyword === "boolean") {
139
+ literalValues.push(literal.kind === SyntaxKind.TrueKeyword);
140
+ }
141
+ } else if (literal.kind === SyntaxKind.NullKeyword) {
142
+ literalValues.push(null);
143
+ }
144
+ } else {
145
+ return void 0;
146
+ }
147
+ }
148
+ return literalValues.length ? { values: literalValues, type: detectedTypeKeyword } : void 0;
149
+ };
150
+
151
+ // src/common/TypeParsing/ParsingUtils/checkUnionType.ts
152
+ var checkUnionType = (unionType) => {
153
+ const extracted = extractLiteralValues(unionType);
154
+ let typeKeyword = "string";
155
+ let options;
156
+ if (extracted) {
157
+ options = extracted.values;
158
+ typeKeyword = extracted.type;
159
+ }
160
+ return { options: options || [], typeKeyword };
161
+ };
162
+ var getTypeKeyword = (node) => {
163
+ switch (node.kind) {
164
+ case SyntaxKind.StringKeyword:
165
+ return "string";
166
+ case SyntaxKind.NumberKeyword:
167
+ return "number";
168
+ case SyntaxKind.BooleanKeyword:
169
+ return "boolean";
170
+ default:
171
+ return "string";
172
+ }
173
+ };
174
+
175
+ // src/common/TypeParsing/ParsingUtils/checkType.ts
176
+ var checkType = (node) => {
177
+ let typeReference;
178
+ let isArray = false;
179
+ let typeKeyword;
180
+ let options;
181
+ if (node.kind === SyntaxKind.TypeReference) {
182
+ typeReference = node.typeName.getText();
183
+ typeKeyword = "string";
184
+ } else if (node.kind === SyntaxKind.ArrayType) {
185
+ isArray = true;
186
+ const elementType = node.elementType;
187
+ const {
188
+ typeReference: elementReference,
189
+ typeKeyword: elementKeyword,
190
+ options: elementOptions
191
+ } = checkType(elementType);
192
+ typeReference = elementReference;
193
+ typeKeyword = elementKeyword || "string";
194
+ options = elementOptions;
195
+ } else if (node.kind === SyntaxKind.UnionType) {
196
+ const { types: unionTypes } = node;
197
+ const { options: unionOptions, typeKeyword: unionTypeKeyword } = checkUnionType(node);
198
+ options = unionOptions;
199
+ typeKeyword = unionTypeKeyword;
200
+ if (!options) {
201
+ typeKeyword = getTypeKeyword(unionTypes[0]);
202
+ }
203
+ } else if (node.kind === SyntaxKind.ParenthesizedType) {
204
+ const {
205
+ typeReference: parenthesizedReference,
206
+ isArray: parenthesizedIsArray,
207
+ typeKeyword: parenthesizedKeyword,
208
+ options: parenthesizedOptions
209
+ } = checkType(node.type);
210
+ typeReference = parenthesizedReference;
211
+ isArray = !!parenthesizedIsArray;
212
+ typeKeyword = parenthesizedKeyword || "string";
213
+ options = parenthesizedOptions;
214
+ } else {
215
+ typeKeyword = getTypeKeyword(node);
216
+ }
217
+ return { typeReference, isArray, typeKeyword, options };
218
+ };
219
+
220
+ // src/common/TypeParsing/ParsingUtils/extractTypeDetails.ts
221
+ var extractTypeDetails = (type) => {
222
+ const { isArray, typeReference, options, typeKeyword } = checkType(type);
223
+ return {
224
+ type: typeKeyword || "string",
225
+ typeReference,
226
+ array: !!isArray,
227
+ options
228
+ };
229
+ };
230
+
231
+ // src/common/TypeParsing/ParsingUtils/getTypeInfoField.ts
232
+ var getTypeInfoField = (propertySignature) => {
233
+ const { type, modifiers } = propertySignature;
234
+ const {
235
+ array,
236
+ typeReference,
237
+ type: typeKeyword,
238
+ options
239
+ } = type ? extractTypeDetails(type) : {
240
+ array: false,
241
+ typeReference: void 0,
242
+ type: "string",
243
+ options: void 0
244
+ };
245
+ const readonly = modifiers ? modifiers.some((modifier) => modifier.kind === SyntaxKind.ReadonlyKeyword) : false;
246
+ const optional = !!propertySignature.questionToken;
247
+ let tags = extractCommentTags(propertySignature);
248
+ if (readonly) {
249
+ const {
250
+ deniedOperations,
251
+ deniedOperations: { CREATE, UPDATE, DELETE } = {}
252
+ } = tags || {};
253
+ tags = {
254
+ ...tags,
255
+ deniedOperations: {
256
+ ...deniedOperations,
257
+ create: CREATE ?? true,
258
+ update: UPDATE ?? true,
259
+ delete: DELETE ?? true
260
+ }
261
+ };
262
+ }
263
+ return {
264
+ type: typeKeyword,
265
+ array,
266
+ readonly,
267
+ optional,
268
+ typeReference,
269
+ possibleValues: options,
270
+ tags
271
+ };
272
+ };
273
+
274
+ // src/common/TypeParsing/ParsingUtils/getTypeInfo.ts
275
+ var getTypeInfo = (typeLiteral) => {
276
+ const { members } = typeLiteral;
277
+ const tags = extractCommentTags(typeLiteral);
278
+ let fields = {};
279
+ for (const m of members) {
280
+ const { name, kind } = m;
281
+ if (name && kind === SyntaxKind.PropertySignature) {
282
+ const fieldName = name.getText();
283
+ const field = getTypeInfoField(m);
284
+ fields = {
285
+ ...fields,
286
+ [fieldName]: field
287
+ };
288
+ }
289
+ }
290
+ return {
291
+ fields,
292
+ tags
293
+ };
294
+ };
295
+ var getUnionOrIntersectionTypeInfo = (unionType, typeMap) => {
296
+ const { kind, types } = unionType;
297
+ const isUnion = kind === SyntaxKind.UnionType;
298
+ let typeInfo;
299
+ for (const t of types) {
300
+ const { kind: kind2 } = t;
301
+ let nextTypeInfo;
302
+ if (kind2 === SyntaxKind.TypeReference) {
303
+ const { typeName } = t;
304
+ const refNode = typeMap[typeName.getText()];
305
+ if (refNode) {
306
+ nextTypeInfo = getTypeInfoFromTypeAlias(refNode, typeMap);
307
+ }
308
+ } else if (kind2 === SyntaxKind.TypeLiteral) {
309
+ nextTypeInfo = getTypeInfo(t);
310
+ }
311
+ if (nextTypeInfo) {
312
+ const {
313
+ fields: existingFields = {},
314
+ unionFieldSets: existingFieldSets = []
315
+ } = typeInfo || {};
316
+ const { fields: nextFields, unionFieldSets: nextUnionFieldSets = [] } = nextTypeInfo;
317
+ if (isUnion && nextFields) {
318
+ const newUnionFieldSet = Object.keys(nextFields);
319
+ typeInfo = {
320
+ ...typeInfo,
321
+ unionFieldSets: [
322
+ ...existingFieldSets,
323
+ ...nextUnionFieldSets,
324
+ newUnionFieldSet
325
+ ]
326
+ };
327
+ }
328
+ typeInfo = {
329
+ ...typeInfo,
330
+ fields: {
331
+ ...existingFields,
332
+ ...nextFields
333
+ }
334
+ };
335
+ }
336
+ }
337
+ return typeInfo;
338
+ };
339
+
340
+ // src/common/TypeParsing/ParsingUtils/Constants.ts
341
+ var FIELD_FILTERS = {
342
+ OMIT: "Omit",
343
+ PICK: "Pick",
344
+ EXCLUDE: "Exclude"
345
+ };
346
+ var getUnionOrLiteralStringValues = (node) => {
347
+ let values = [];
348
+ if (node) {
349
+ if (node.kind === SyntaxKind.LiteralType) {
350
+ const { literal } = node;
351
+ if (literal.kind === SyntaxKind.StringLiteral || literal.kind === SyntaxKind.NumericLiteral) {
352
+ const { text } = literal;
353
+ values = [text];
354
+ }
355
+ } else if (node.kind === SyntaxKind.UnionType) {
356
+ const { types } = node;
357
+ for (const type of types) {
358
+ values = [...values, ...getUnionOrLiteralStringValues(type)];
359
+ }
360
+ }
361
+ }
362
+ return values;
363
+ };
364
+
365
+ // src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.ts
366
+ var getTypeInfoFromPickOmitFieldFilters = (typeNameStr, typeRef, typeMap) => {
367
+ const picking = typeNameStr === FIELD_FILTERS.PICK;
368
+ const omitTypeKind = typeRef.typeArguments?.[0].kind;
369
+ let typeInfo;
370
+ if (omitTypeKind === SyntaxKind.TypeReference && typeRef.typeArguments && typeRef.typeArguments[0].kind === SyntaxKind.TypeReference) {
371
+ const omitType = typeRef.typeArguments[0];
372
+ const omitTypeFields = typeRef.typeArguments[1];
373
+ const omitTypeName = omitType.typeName.getText();
374
+ const refNode = typeMap[omitTypeName];
375
+ if (refNode) {
376
+ const {
377
+ fields: existingFields = {},
378
+ unionFieldSets: existingUnionFieldSets,
379
+ ...typeInfoOther
380
+ } = getTypeInfoFromTypeAlias(refNode, typeMap) || {};
381
+ const omitFieldNames = getUnionOrLiteralStringValues(omitTypeFields);
382
+ const cleanTypeInfoFields = Object.keys(
383
+ existingFields
384
+ ).reduce(
385
+ (acc, key) => {
386
+ if (acc && (picking && omitFieldNames.includes(key) || !picking && !omitFieldNames.includes(key)) && existingFields[key]) {
387
+ acc[key] = existingFields[key];
388
+ }
389
+ return acc;
390
+ },
391
+ {}
392
+ );
393
+ const cleanUnionFieldSets = existingUnionFieldSets ? existingUnionFieldSets.map(
394
+ (fieldSet) => fieldSet.filter(
395
+ (field) => picking ? omitFieldNames.includes(field) : !omitFieldNames.includes(field)
396
+ )
397
+ ).filter((fieldSet) => fieldSet.length > 0) : void 0;
398
+ typeInfo = {
399
+ ...typeInfoOther,
400
+ fields: cleanTypeInfoFields,
401
+ unionFieldSets: cleanUnionFieldSets
402
+ };
403
+ }
404
+ }
405
+ return typeInfo;
406
+ };
407
+ var getTypeInfoFromExcludeFieldFilter = (_typeNameStr, typeRef, typeMap) => {
408
+ const baseTypeKind = typeRef.typeArguments?.[0].kind;
409
+ const excludeTypeKind = typeRef.typeArguments?.[1].kind;
410
+ let typeInfo;
411
+ if (baseTypeKind === SyntaxKind.TypeReference && excludeTypeKind === SyntaxKind.TypeReference && typeRef.typeArguments) {
412
+ const baseType = typeRef.typeArguments[0];
413
+ const excludeType = typeRef.typeArguments[1];
414
+ const baseTypeName = baseType.typeName.getText();
415
+ const excludeTypeName = excludeType.typeName.getText();
416
+ const refNode = typeMap[baseTypeName];
417
+ const excludeNode = typeMap[excludeTypeName];
418
+ if (refNode && excludeNode) {
419
+ const baseTypeInfo = getTypeInfoFromTypeAlias(refNode, typeMap);
420
+ const excludeTypeInfo = getTypeInfoFromTypeAlias(excludeNode, typeMap);
421
+ if (baseTypeInfo && excludeTypeInfo) {
422
+ const {
423
+ fields: baseFields = {},
424
+ unionFieldSets: existingUnionFieldSets
425
+ } = baseTypeInfo;
426
+ const { fields: excludeFields = {} } = excludeTypeInfo;
427
+ const excludeFieldNames = Object.keys(excludeFields);
428
+ const cleanTypeInfoFields = Object.keys(
429
+ baseFields
430
+ ).reduce(
431
+ (acc, key) => {
432
+ if (acc && !excludeFieldNames.includes(key) && baseFields[key]) {
433
+ acc[key] = baseFields[key];
434
+ }
435
+ return acc;
436
+ },
437
+ {}
438
+ );
439
+ const cleanUnionFieldSets = existingUnionFieldSets ? existingUnionFieldSets.map(
440
+ (fieldSet) => fieldSet.filter((field) => !excludeFieldNames.includes(field))
441
+ ).filter((fieldSet) => fieldSet.length > 0) : void 0;
442
+ typeInfo = {
443
+ ...baseTypeInfo,
444
+ fields: cleanTypeInfoFields,
445
+ unionFieldSets: cleanUnionFieldSets
446
+ };
447
+ }
448
+ }
449
+ }
450
+ return typeInfo;
451
+ };
452
+ var defaultFieldFilterProcessor = (typeNameStr, _typeRef, typeMap) => {
453
+ const refNode = typeNameStr ? typeMap[typeNameStr] : void 0;
454
+ let typeInfo;
455
+ if (refNode) {
456
+ typeInfo = getTypeInfoFromTypeAlias(refNode, typeMap);
457
+ }
458
+ return typeInfo;
459
+ };
460
+ var FIELD_FILTER_PROCESSORS = {
461
+ [FIELD_FILTERS.PICK]: getTypeInfoFromPickOmitFieldFilters,
462
+ [FIELD_FILTERS.OMIT]: getTypeInfoFromPickOmitFieldFilters,
463
+ [FIELD_FILTERS.EXCLUDE]: getTypeInfoFromExcludeFieldFilter
464
+ };
465
+ var getTypeInfoFromFieldFilter = (typeNameStr, typeRef, typeMap) => {
466
+ const processor = typeNameStr ? FIELD_FILTER_PROCESSORS[typeNameStr] : void 0;
467
+ return processor ? processor(typeNameStr, typeRef, typeMap) : defaultFieldFilterProcessor(typeNameStr, typeRef, typeMap);
468
+ };
469
+
470
+ // src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.ts
471
+ var getTypeInfoFromTypeLiteral = (type) => getTypeInfo(type);
472
+ var getTypeInfoFromUnionOrIntersectionType = (type, typeMap) => getUnionOrIntersectionTypeInfo(type, typeMap);
473
+ var getTypeInfoFromTypeReference = (type, typeMap) => {
474
+ const typeRef = type;
475
+ const { typeName } = typeRef;
476
+ const typeNameStr = typeName.getText();
477
+ return getTypeInfoFromFieldFilter(typeNameStr, typeRef, typeMap);
478
+ };
479
+ var ALIAS_TYPE_PROCESSORS = {
480
+ [SyntaxKind.TypeLiteral]: getTypeInfoFromTypeLiteral,
481
+ [SyntaxKind.UnionType]: getTypeInfoFromUnionOrIntersectionType,
482
+ [SyntaxKind.IntersectionType]: getTypeInfoFromUnionOrIntersectionType,
483
+ [SyntaxKind.TypeReference]: getTypeInfoFromTypeReference
484
+ };
485
+ var getTypeInfoFromAliasType = (type, typeMap) => {
486
+ const { kind } = type;
487
+ const processor = ALIAS_TYPE_PROCESSORS[kind];
488
+ const typeInfo = processor ? processor(type, typeMap) : void 0;
489
+ return typeInfo;
490
+ };
491
+
492
+ // src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.ts
493
+ var getTypeInfoFromTypeAlias = (typeAliasDec, typeMap) => {
494
+ const { type } = typeAliasDec;
495
+ const tags = extractCommentTags(typeAliasDec);
496
+ const typeInfo = getTypeInfoFromAliasType(type, typeMap);
497
+ return typeInfo ? {
498
+ ...typeInfo,
499
+ tags: {
500
+ ...tags,
501
+ ...typeInfo.tags
502
+ }
503
+ } : void 0;
504
+ };
505
+
506
+ // src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.ts
507
+ var getPrimaryFieldForTypeInfo = (typeInfo) => {
508
+ const { fields } = typeInfo;
509
+ let primaryField = void 0, primaryFieldReadDenied = false;
510
+ for (const fieldName in fields) {
511
+ const field = fields[fieldName];
512
+ const {
513
+ tags: {
514
+ primaryField: isPrimaryField = false,
515
+ deniedOperations: { READ: readDenied = false } = {}
516
+ } = {}
517
+ } = field;
518
+ if (isPrimaryField || !primaryField) {
519
+ primaryField = fieldName;
520
+ primaryFieldReadDenied = readDenied;
521
+ }
522
+ if (isPrimaryField) {
523
+ break;
524
+ }
525
+ }
526
+ if (primaryFieldReadDenied) {
527
+ throw new Error(
528
+ "READ_DENIED_PRIMARY_FIELD_NOT_SUPPORTED" /* READ_DENIED_PRIMARY_FIELD_NOT_SUPPORTED */
529
+ );
530
+ }
531
+ return primaryField;
532
+ };
533
+
534
+ // src/build/TypeParsing.ts
535
+ var getTypeInfoMapFromTypeScript = (source) => {
536
+ const typeScriptNode = createSourceFile(
537
+ "x.ts",
538
+ source,
539
+ ScriptTarget.Latest,
540
+ true
541
+ );
542
+ const typeMap = convertASTToMap(typeScriptNode, {});
543
+ const typeInfoMap = {};
544
+ for (const key in typeMap) {
545
+ const typeAliasDec = typeMap[key];
546
+ const { modifiers } = typeAliasDec;
547
+ let outputTypeInfo = false;
548
+ if (modifiers) {
549
+ modifiers.forEach((modifier) => {
550
+ const { kind } = modifier;
551
+ if (kind === SyntaxKind.ExportKeyword) {
552
+ outputTypeInfo = true;
553
+ }
554
+ });
555
+ }
556
+ if (outputTypeInfo) {
557
+ const typeInfo = getTypeInfoFromTypeAlias(typeAliasDec, typeMap);
558
+ if (typeInfo) {
559
+ typeInfoMap[key] = {
560
+ ...typeInfo,
561
+ primaryField: getPrimaryFieldForTypeInfo(typeInfo)
562
+ };
563
+ }
564
+ }
565
+ }
566
+ return typeInfoMap;
567
+ };
568
+
569
+ export { convertASTToMap, getTypeInfoMapFromTypeScript };
@@ -0,0 +1,71 @@
1
+ import { parseTemplate, validateAreas } from './chunk-DT6WWJUI.js';
2
+
3
+ // src/app/utils/EasyLayout.tsx
4
+ var getPascalCaseAreaName = (area) => {
5
+ return area.split("-").map((a) => a[0].toUpperCase() + a.slice(1)).join("");
6
+ };
7
+ var convertLayoutToCSS = (layout = "", spacing = {}) => {
8
+ const parsed = parseTemplate(layout);
9
+ validateAreas(parsed);
10
+ const renderTrack = (track) => {
11
+ if (track.kind === "px") {
12
+ return `${track.value}px`;
13
+ }
14
+ if (track.kind === "pct") {
15
+ return `${track.value}%`;
16
+ }
17
+ return `${track.value}fr`;
18
+ };
19
+ const areaRows = parsed.areaGrid.map((row) => row.join(" "));
20
+ const rows = parsed.rowTracks.map(renderTrack);
21
+ let css = "";
22
+ if (parsed.colTracks.length) {
23
+ css += `
24
+ grid-template-columns: ${parsed.colTracks.map(renderTrack).join(" ")};`;
25
+ }
26
+ css += `
27
+ grid-template-areas:
28
+ ${areaRows.map((a) => ` "${a}"`).join("\n")};`;
29
+ if (rows.length) {
30
+ css += `
31
+ grid-template-rows: ${rows.join(" ")};`;
32
+ }
33
+ if (typeof spacing.gap !== "undefined") {
34
+ css += `
35
+ gap: ${typeof spacing.gap === "number" ? `${spacing.gap}px` : spacing.gap};`;
36
+ }
37
+ if (typeof spacing.padding !== "undefined") {
38
+ css += `
39
+ padding: ${typeof spacing.padding === "number" ? `${spacing.padding}px` : spacing.padding};`;
40
+ }
41
+ return {
42
+ areasList: parsed.areaNames,
43
+ css
44
+ };
45
+ };
46
+ var getEasyLayoutTemplateDetails = (layout = "", spacing = {}) => convertLayoutToCSS(layout, spacing);
47
+ var createEasyLayout = (config, extendFrom, areasExtendFrom, spacing = {}) => {
48
+ return (layoutTemplate, ...expressions) => {
49
+ const mergedTemplate = layoutTemplate.reduce((acc, l, ind) => {
50
+ const expr = expressions[ind - 1];
51
+ const exprStr = typeof expr === "undefined" ? "" : expr;
52
+ return `${acc}${l}${exprStr}`;
53
+ }, "");
54
+ const { areasList, css } = convertLayoutToCSS(mergedTemplate, spacing);
55
+ const layout = config.createLayout({ base: extendFrom, css });
56
+ const areas = areasList.reduce((acc, area) => {
57
+ const pascalCaseAreaName = getPascalCaseAreaName(area);
58
+ const component = config.createArea({ base: areasExtendFrom, area });
59
+ return {
60
+ ...acc,
61
+ [pascalCaseAreaName]: component
62
+ };
63
+ }, {});
64
+ return {
65
+ layout,
66
+ areas
67
+ };
68
+ };
69
+ };
70
+
71
+ export { createEasyLayout, getEasyLayoutTemplateDetails, getPascalCaseAreaName };