@resistdesign/voltra 0.0.0-alpha.0 → 1.2.0

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 (287) hide show
  1. package/.releaserc +3 -0
  2. package/README.md +4 -51
  3. package/api/ORM/CriteriaUtils/CriteriaUtils.d.ts +7 -0
  4. package/api/ORM/CriteriaUtils/CriteriaUtils.js +140 -0
  5. package/api/ORM/CriteriaUtils/CriterionDriverResolutionTools.d.ts +4 -0
  6. package/api/ORM/CriteriaUtils/CriterionDriverResolutionTools.js +23 -0
  7. package/api/ORM/CriteriaUtils/index.d.ts +2 -0
  8. package/api/ORM/CriteriaUtils/index.js +18 -0
  9. package/api/ORM/DataContextService.d.ts +68 -0
  10. package/api/ORM/DataContextService.js +352 -0
  11. package/api/ORM/SearchCriteriaTypes.d.ts +83 -0
  12. package/api/ORM/SearchCriteriaTypes.js +47 -0
  13. package/api/ORM/ServiceTypes/DBServiceTypes.d.ts +30 -0
  14. package/api/ORM/ServiceTypes/FileServiceTypes.d.ts +25 -0
  15. package/api/ORM/ServiceTypes/index.d.ts +2 -0
  16. package/api/ORM/ServiceTypes/index.js +18 -0
  17. package/api/ORM/TypeStructureUtils.d.ts +17 -0
  18. package/api/ORM/TypeStructureUtils.js +120 -0
  19. package/api/ORM/drivers/db/DynamoDBServiceItem.d.ts +19 -0
  20. package/api/ORM/drivers/db/DynamoDBServiceItem.js +206 -0
  21. package/api/ORM/drivers/db/S3DBServiceItem.d.ts +17 -0
  22. package/api/ORM/drivers/db/S3DBServiceItem.js +118 -0
  23. package/api/ORM/drivers/db/index.d.ts +2 -0
  24. package/{src/api/ORM/drivers/common → api/ORM/drivers/db}/index.js +2 -2
  25. package/api/ORM/drivers/file/S3.d.ts +15 -0
  26. package/api/ORM/drivers/file/S3.js +97 -0
  27. package/api/ORM/drivers/file/index.d.ts +1 -0
  28. package/{src/common/TypeInfoORM → api/ORM/drivers/file}/index.js +1 -1
  29. package/api/ORM/drivers/index.d.ts +2 -0
  30. package/{src/common/ItemRelationships → api/ORM/drivers}/index.js +2 -1
  31. package/api/ORM/index.d.ts +6 -0
  32. package/api/ORM/index.js +32 -0
  33. package/{src/api → api}/Router/AWS.js +2 -8
  34. package/{src/api → api}/Router/CORS.d.ts +1 -1
  35. package/{src/api → api}/Router/CORS.js +10 -10
  36. package/{src/api → api}/Router/Types.d.ts +1 -1
  37. package/{src/api → api}/Router/index.js +18 -22
  38. package/api/index.d.ts +2 -0
  39. package/{src/api → api}/index.js +8 -19
  40. package/app/components/BaseForm.d.ts +9 -0
  41. package/app/components/BaseForm.js +37 -0
  42. package/app/components/FormGen/Application.d.ts +10 -0
  43. package/app/components/FormGen/Application.js +58 -0
  44. package/app/components/FormGen/Display.d.ts +13 -0
  45. package/app/components/FormGen/Display.js +69 -0
  46. package/app/components/FormGen/Editor.d.ts +12 -0
  47. package/app/components/FormGen/Editor.js +46 -0
  48. package/app/components/FormGen/Form.d.ts +5 -0
  49. package/app/components/FormGen/Form.js +25 -0
  50. package/app/components/FormGen/HelperTypes.d.ts +41 -0
  51. package/app/components/FormGen/HelperTypes.js +27 -0
  52. package/app/components/FormGen/IdUtils.d.ts +3 -0
  53. package/app/components/FormGen/IdUtils.js +22 -0
  54. package/app/components/FormGen/Input.d.ts +13 -0
  55. package/app/components/FormGen/Input.js +82 -0
  56. package/app/components/FormGen/Layout.d.ts +20 -0
  57. package/app/components/FormGen/Layout.js +107 -0
  58. package/app/components/FormGen/List.d.ts +12 -0
  59. package/app/components/FormGen/List.js +134 -0
  60. package/app/components/FormGen/Navigation.d.ts +27 -0
  61. package/app/components/FormGen/Navigation.js +82 -0
  62. package/app/components/FormGen/Storage/LocalJSON.d.ts +8 -0
  63. package/app/components/FormGen/Storage/LocalJSON.js +35 -0
  64. package/app/components/FormGen/Storage/index.d.ts +1 -0
  65. package/{src/common/Logging → app/components/FormGen/Storage}/index.js +1 -1
  66. package/app/components/FormGen/TypeStructureComponent.d.ts +20 -0
  67. package/app/components/FormGen/TypeStructureComponent.js +223 -0
  68. package/app/components/FormGen/ValueProcessing/HashMatrix.d.ts +50 -0
  69. package/app/components/FormGen/ValueProcessing/HashMatrix.js +268 -0
  70. package/app/components/FormGen/ValueProcessing/index.d.ts +1 -0
  71. package/{src/common/IdGeneration → app/components/FormGen/ValueProcessing}/index.js +1 -1
  72. package/app/components/FormGen/index.d.ts +13 -0
  73. package/app/components/FormGen/index.js +42 -0
  74. package/app/components/MaterialSymbol.d.ts +8 -0
  75. package/app/components/MaterialSymbol.js +22 -0
  76. package/app/components/Tabs.d.ts +9 -0
  77. package/app/components/Tabs.js +26 -0
  78. package/app/components/index.d.ts +4 -0
  79. package/{src/api/ORM → app/components}/index.js +12 -22
  80. package/app/index.d.ts +2 -0
  81. package/{src/app → app}/index.js +9 -18
  82. package/{src/app → app}/utils/ApplicationState.d.ts +1 -1
  83. package/{src/app → app}/utils/ApplicationState.js +3 -9
  84. package/{src/app → app}/utils/ApplicationStateLoader.js +13 -4
  85. package/{src/app → app}/utils/Controller.js +1 -4
  86. package/{src/app → app}/utils/Debug.d.ts +0 -3
  87. package/{src/app → app}/utils/Debug.js +1 -4
  88. package/{src/app → app}/utils/EasyLayout.d.ts +1 -1
  89. package/{src/app → app}/utils/EasyLayout.js +2 -5
  90. package/{src/app → app}/utils/Route.d.ts +1 -1
  91. package/{src/app → app}/utils/Route.js +4 -8
  92. package/{src/app → app}/utils/Service.js +14 -5
  93. package/{src/app → app}/utils/index.d.ts +0 -1
  94. package/{src/app → app}/utils/index.js +0 -1
  95. package/common/Routing.d.ts +20 -0
  96. package/{src/common → common}/Routing.js +10 -32
  97. package/common/TypeParsing/TypeParsing.d.ts +5 -0
  98. package/common/TypeParsing/TypeParsing.js +283 -0
  99. package/common/TypeParsing/TypeUtils.d.ts +86 -0
  100. package/common/TypeParsing/TypeUtils.js +281 -0
  101. package/common/TypeParsing/index.d.ts +2 -0
  102. package/{src/common/Testing → common/TypeParsing}/index.js +2 -2
  103. package/common/index.d.ts +2 -0
  104. package/common/index.js +28 -0
  105. package/{src/iac → iac}/SimpleCFT.d.ts +1 -21
  106. package/iac/SimpleCFT.js +67 -0
  107. package/{src/iac → iac}/index.js +7 -17
  108. package/iac/packs/abstract/user-management/UserPoolAliasTargetCustomResourceCode.d.ts +2 -0
  109. package/iac/packs/abstract/user-management/UserPoolAliasTargetCustomResourceCode.js +86 -0
  110. package/{src/iac/packs/auth → iac/packs/abstract}/user-management.js +88 -16
  111. package/{src/iac → iac}/packs/auth.js +1 -1
  112. package/{src/iac → iac}/packs/build/utils.d.ts +1 -1
  113. package/{src/iac → iac}/packs/build.d.ts +2 -7
  114. package/{src/iac → iac}/packs/cloud-function.d.ts +1 -2
  115. package/{src/iac → iac}/packs/cloud-function.js +1 -1
  116. package/iac/packs/database.d.ts +10 -0
  117. package/{src/iac → iac}/packs/database.js +1 -2
  118. package/iac/packs/dns.d.ts +11 -0
  119. package/iac/packs/dns.js +60 -0
  120. package/{src/iac → iac}/packs/gateway.d.ts +1 -2
  121. package/{src/iac → iac}/packs/gateway.js +8 -20
  122. package/{src/iac → iac}/types/CloudFormationResourceSpecification.d.ts +1 -1
  123. package/iac/types/CloudFormationResourceSpecification.js +196438 -0
  124. package/{src/iac → iac}/types/Renderers.js +1 -1
  125. package/{src/iac → iac}/types/Utils.js +2 -7
  126. package/{src/iac → iac}/types/generate.js +15 -5
  127. package/{src/iac → iac}/utils/index.d.ts +1 -4
  128. package/{src/iac → iac}/utils/index.js +10 -27
  129. package/{src/iac → iac}/utils/patch-utils.js +2 -8
  130. package/{src/index.d.ts → index.d.ts} +5 -5
  131. package/{src/index.js → index.js} +12 -22
  132. package/package.json +11 -69
  133. package/src/api/DataAccessControl.d.ts +0 -85
  134. package/src/api/DataAccessControl.js +0 -159
  135. package/src/api/ORM/DACUtils.d.ts +0 -60
  136. package/src/api/ORM/DACUtils.js +0 -197
  137. package/src/api/ORM/ListItemUtils.d.ts +0 -7
  138. package/src/api/ORM/ListItemUtils.js +0 -22
  139. package/src/api/ORM/ORMRouteMap.d.ts +0 -19
  140. package/src/api/ORM/ORMRouteMap.js +0 -82
  141. package/src/api/ORM/TypeInfoORMService.d.ts +0 -103
  142. package/src/api/ORM/TypeInfoORMService.js +0 -581
  143. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.d.ts +0 -63
  144. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.d.ts +0 -36
  145. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.js +0 -282
  146. package/src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.d.ts +0 -90
  147. package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.d.ts +0 -45
  148. package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.js +0 -127
  149. package/src/api/ORM/drivers/S3FileItemDBDriver.d.ts +0 -44
  150. package/src/api/ORM/drivers/S3FileItemDBDriver.js +0 -182
  151. package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.d.ts +0 -12
  152. package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.js +0 -20
  153. package/src/api/ORM/drivers/common/Types.d.ts +0 -77
  154. package/src/api/ORM/drivers/common/Types.js +0 -14
  155. package/src/api/ORM/drivers/common/index.d.ts +0 -2
  156. package/src/api/ORM/drivers/index.d.ts +0 -3
  157. package/src/api/ORM/drivers/index.js +0 -19
  158. package/src/api/ORM/index.d.ts +0 -4
  159. package/src/api/index.d.ts +0 -3
  160. package/src/app/index.d.ts +0 -1
  161. package/src/app/utils/TypeInfoORMAPIUtils.d.ts +0 -20
  162. package/src/app/utils/TypeInfoORMAPIUtils.js +0 -62
  163. package/src/app/utils/TypeInfoORMClient.d.ts +0 -24
  164. package/src/app/utils/TypeInfoORMClient.js +0 -69
  165. package/src/common/CommandLine/collectRequiredEnvironmentVariables.d.ts +0 -1
  166. package/src/common/CommandLine/collectRequiredEnvironmentVariables.js +0 -16
  167. package/src/common/HelperTypes.d.ts +0 -3
  168. package/src/common/HelperTypes.js +0 -2
  169. package/src/common/IdGeneration/getSimpleId.d.ts +0 -4
  170. package/src/common/IdGeneration/getSimpleId.js +0 -16
  171. package/src/common/IdGeneration/index.d.ts +0 -1
  172. package/src/common/ItemRelationshipInfoTypes.d.ts +0 -46
  173. package/src/common/ItemRelationshipInfoTypes.js +0 -20
  174. package/src/common/ItemRelationships/ItemRelationshipValidation.d.ts +0 -10
  175. package/src/common/ItemRelationships/ItemRelationshipValidation.js +0 -43
  176. package/src/common/ItemRelationships/index.d.ts +0 -1
  177. package/src/common/Logging/Utils.d.ts +0 -10
  178. package/src/common/Logging/Utils.js +0 -33
  179. package/src/common/Logging/index.d.ts +0 -1
  180. package/src/common/Routing.d.ts +0 -25
  181. package/src/common/SearchTypes.d.ts +0 -98
  182. package/src/common/SearchTypes.js +0 -39
  183. package/src/common/SearchUtils.d.ts +0 -22
  184. package/src/common/SearchUtils.js +0 -134
  185. package/src/common/SearchValidation.d.ts +0 -17
  186. package/src/common/SearchValidation.js +0 -90
  187. package/src/common/Storyboarding/Types.d.ts +0 -25
  188. package/src/common/StringTransformers.d.ts +0 -17
  189. package/src/common/StringTransformers.js +0 -36
  190. package/src/common/Testing/CLI.d.ts +0 -2
  191. package/src/common/Testing/CLI.js +0 -56
  192. package/src/common/Testing/Types.d.ts +0 -117
  193. package/src/common/Testing/Types.js +0 -19
  194. package/src/common/Testing/Utils.d.ts +0 -48
  195. package/src/common/Testing/Utils.js +0 -334
  196. package/src/common/Testing/index.d.ts +0 -2
  197. package/src/common/TypeInfoDataItemUtils.d.ts +0 -10
  198. package/src/common/TypeInfoDataItemUtils.js +0 -55
  199. package/src/common/TypeInfoORM/Types.d.ts +0 -76
  200. package/src/common/TypeInfoORM/Types.js +0 -55
  201. package/src/common/TypeInfoORM/index.d.ts +0 -1
  202. package/src/common/TypeParsing/Constants.d.ts +0 -1
  203. package/src/common/TypeParsing/Constants.js +0 -4
  204. package/src/common/TypeParsing/ParsingUtils/Constants.d.ts +0 -5
  205. package/src/common/TypeParsing/ParsingUtils/Constants.js +0 -8
  206. package/src/common/TypeParsing/ParsingUtils/checkType.d.ts +0 -8
  207. package/src/common/TypeParsing/ParsingUtils/checkType.js +0 -46
  208. package/src/common/TypeParsing/ParsingUtils/checkUnionType.d.ts +0 -6
  209. package/src/common/TypeParsing/ParsingUtils/checkUnionType.js +0 -15
  210. package/src/common/TypeParsing/ParsingUtils/extractCommentTags.d.ts +0 -2
  211. package/src/common/TypeParsing/ParsingUtils/extractCommentTags.js +0 -105
  212. package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.d.ts +0 -6
  213. package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.js +0 -42
  214. package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.d.ts +0 -8
  215. package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.js +0 -14
  216. package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.d.ts +0 -5
  217. package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.js +0 -27
  218. package/src/common/TypeParsing/ParsingUtils/getTypeInfo.d.ts +0 -3
  219. package/src/common/TypeParsing/ParsingUtils/getTypeInfo.js +0 -27
  220. package/src/common/TypeParsing/ParsingUtils/getTypeInfoField.d.ts +0 -3
  221. package/src/common/TypeParsing/ParsingUtils/getTypeInfoField.js +0 -44
  222. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.d.ts +0 -4
  223. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.js +0 -28
  224. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.d.ts +0 -4
  225. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.js +0 -105
  226. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.d.ts +0 -4
  227. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.js +0 -20
  228. package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.d.ts +0 -3
  229. package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.js +0 -17
  230. package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.d.ts +0 -4
  231. package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.js +0 -49
  232. package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.d.ts +0 -2
  233. package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.js +0 -24
  234. package/src/common/TypeParsing/TypeInfo.d.ts +0 -142
  235. package/src/common/TypeParsing/TypeInfo.js +0 -13
  236. package/src/common/TypeParsing/TypeMapping.d.ts +0 -9
  237. package/src/common/TypeParsing/TypeMapping.js +0 -32
  238. package/src/common/TypeParsing/TypeParsing.d.ts +0 -5
  239. package/src/common/TypeParsing/TypeParsing.js +0 -39
  240. package/src/common/TypeParsing/Utils.d.ts +0 -21
  241. package/src/common/TypeParsing/Utils.js +0 -94
  242. package/src/common/TypeParsing/Validation.d.ts +0 -92
  243. package/src/common/TypeParsing/Validation.js +0 -340
  244. package/src/common/TypeParsing/index.d.ts +0 -5
  245. package/src/common/TypeParsing/index.js +0 -44
  246. package/src/common/index.d.ts +0 -11
  247. package/src/common/index.js +0 -47
  248. package/src/iac/SimpleCFT.js +0 -82
  249. package/src/iac/packs/database.d.ts +0 -29
  250. package/src/iac/packs/dns.d.ts +0 -13
  251. package/src/iac/packs/dns.js +0 -26
  252. package/src/iac/types/IaCTypes.d.ts +0 -234994
  253. package/src/iac/types/IaCTypes.js +0 -14
  254. package/src/iac/types/Types.js +0 -2
  255. /package/{src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.js → api/ORM/ServiceTypes/DBServiceTypes.js} +0 -0
  256. /package/{src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.js → api/ORM/ServiceTypes/FileServiceTypes.js} +0 -0
  257. /package/{src/api → api}/Router/AWS.d.ts +0 -0
  258. /package/{src/api → api}/Router/Auth.d.ts +0 -0
  259. /package/{src/api → api}/Router/Auth.js +0 -0
  260. /package/{src/api → api}/Router/Types.js +0 -0
  261. /package/{src/api → api}/Router/index.d.ts +0 -0
  262. /package/{src/app → app}/utils/ApplicationStateLoader.d.ts +0 -0
  263. /package/{src/app → app}/utils/Controller.d.ts +0 -0
  264. /package/{src/app → app}/utils/Service.d.ts +0 -0
  265. /package/{src/iac → iac}/index.d.ts +0 -0
  266. /package/{src/iac/packs/auth → iac/packs/abstract}/user-management.d.ts +0 -0
  267. /package/{src/iac → iac}/packs/auth.d.ts +0 -0
  268. /package/{src/iac → iac}/packs/build/utils.js +0 -0
  269. /package/{src/iac → iac}/packs/build.js +0 -0
  270. /package/{src/iac → iac}/packs/cdn.d.ts +0 -0
  271. /package/{src/iac → iac}/packs/cdn.js +0 -0
  272. /package/{src/iac → iac}/packs/file-storage.d.ts +0 -0
  273. /package/{src/iac → iac}/packs/file-storage.js +0 -0
  274. /package/{src/iac → iac}/packs/index.d.ts +0 -0
  275. /package/{src/iac → iac}/packs/index.js +0 -0
  276. /package/{src/iac → iac}/packs/repo.d.ts +0 -0
  277. /package/{src/iac → iac}/packs/repo.js +0 -0
  278. /package/{src/iac → iac}/packs/ssl-certificate.d.ts +0 -0
  279. /package/{src/iac → iac}/packs/ssl-certificate.js +0 -0
  280. /package/{src/iac → iac}/types/Constants.d.ts +0 -0
  281. /package/{src/iac → iac}/types/Constants.js +0 -0
  282. /package/{src/iac → iac}/types/Renderers.d.ts +0 -0
  283. /package/{src/iac → iac}/types/Types.d.ts +0 -0
  284. /package/{src/common/Storyboarding → iac/types}/Types.js +0 -0
  285. /package/{src/iac → iac}/types/Utils.d.ts +0 -0
  286. /package/{src/iac → iac}/types/generate.d.ts +0 -0
  287. /package/{src/iac → iac}/utils/patch-utils.d.ts +0 -0
package/.releaserc ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "branches": ["main"]
3
+ }
package/README.md CHANGED
@@ -1,24 +1,6 @@
1
1
  # Voltra
2
2
 
3
- ![Voltra Logo Inverse 2025.svg](https://docs.voltra.app/images/Voltra%20Logo%20Inverse%202025.svg "Voltra")
4
-
5
- <style>
6
-
7
- .nav-button {
8
- background: linear-gradient(145deg, #b285c9, #5e3a76); color: white; border: none; border-radius: 50px; padding:
9
- 15px 30px; font-size: 18px; font-weight: bold; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0
10
- 8px 15px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; cursor: pointer; text-decoration: none; display: inline-block;"
11
- onmouseover="this.style.background='linear-gradient(145deg, #a374b9, #4d2d61)'; this.style.boxShadow='0 6px 8px rgba(0,
12
- 0, 0, 0.2), 0 12px 20px rgba(0, 0, 0, 0.2)'; this.style.transform='translateY(-2px)';" onmouseout="
13
- this.style.background='linear-gradient(145deg, #b285c9, #5e3a76)'; this.style.boxShadow='0 4px 6px rgba(0, 0, 0, 0.1), 0
14
- 8px 15px rgba(0, 0, 0, 0.1)'; this.style.transform='translateY(0)';
15
- }
16
-
17
- </style>
18
-
19
- ------------
20
-
21
- <a class="nav-button" href="https://docs.voltra.app">See The Demos</a>
3
+ ![Voltra Gem Logo 2024 Square.png](https://docs.voltra.app/images/Voltra%20Gem%20Logo%202024%20Square.png "Voltra")
22
4
 
23
5
  ## Usage
24
6
 
@@ -40,7 +22,7 @@ features like chainable stacks and comprehensive parameter support. Its intuitiv
40
22
  databases, storage, authentication, and functions through easy-to-use packs. Furthermore, Voltra enhances development
41
23
  workflows with advanced state management, and a smart, lightweight routing system for React
42
24
  front-end apps.</td>
43
- <td><img src="https://docs.voltra.app/images/Voltra%20Robot%20Coming%20Together.png" style="width: 200em;" /></td>
25
+ <td><img src="https://docs.voltra.app/images/Robo%20Power.png" style="width: 200em;" /></td>
44
26
  </tr>
45
27
  </tbody>
46
28
  </table>
@@ -49,38 +31,9 @@ front-end apps.</td>
49
31
 
50
32
  | API | App | IaC |
51
33
  |-----------------------------------------------------------------------------|-----------------------------------------------|---------------------------------------------------------------|
52
- | RPC | Easy Layout | Full Parameter Support: Groups/Labels/Types/etc... |
34
+ | RPC | Form Generation: TypeScript Type Driven | Chainable Stacks |
35
+ | CORS | Easy Layout | Full Parameter Support: Groups/Labels/Types/etc... |
53
36
  | Auth: Public/Secured/Role Based | State Management | Packs: Easy to add Database/Storage/Auth/Functions/etc... |
54
37
  | Routing: Nesting/Handlers/Injected Handlers | Routing: Param Handlers/Parallel Routes/Hooks | Utilities: Patching Stacks/Constants/Standard Includes/etc... |
55
38
  | ORM: TypeScript Type Driven Auto-generated Data Contexts with Relationships | | Typed Build Spec Creation |
56
39
  | | | Typed Resource Parameters |
57
-
58
- ## Releasing
59
-
60
- Voltra publishes npm packages from GitHub Releases. The release tag is used verbatim
61
- as the npm package version, so it must be valid SemVer without a leading `v`.
62
-
63
- ### Stable releases
64
-
65
- Use tags like:
66
-
67
- ```
68
- 3.0.0
69
- ```
70
-
71
- ### Pre-releases (alpha, beta, rc)
72
-
73
- Use tags like:
74
-
75
- ```
76
- 3.0.0-alpha.0
77
- 3.0.0-beta.1
78
- 3.0.0-rc.1
79
- ```
80
-
81
- When the GitHub Release is marked as a prerelease, the npm publish step uses the
82
- `next` dist-tag instead of `latest`. Consumers can install prereleases with:
83
-
84
- ```bash
85
- npm install @resistdesign/voltra@next
86
- ```
@@ -0,0 +1,7 @@
1
+ import { Criteria } from "../SearchCriteriaTypes";
2
+ import { DataContext, DataContextMap, DataContextOperationOptions } from "../DataContextService";
3
+ export declare const reduceCriteria: (criteria: Criteria) => Criteria;
4
+ export declare const flattenCriterionGroups: (criteria: Criteria | undefined) => Criteria[];
5
+ export declare const criteriaListHasRelatedField: <ItemType extends Record<any, any>, UniquelyIdentifyingFieldName extends keyof ItemType>(criteriaList: Criteria[], dataContext: DataContext<ItemType, UniquelyIdentifyingFieldName>) => boolean;
6
+ export declare const criteriaListHasDisallowedFieldForOperation: <ItemType extends Record<any, any>, UniquelyIdentifyingFieldName extends keyof ItemType>(criteriaList: Criteria[], operation: DataContextOperationOptions, dataContext: DataContext<ItemType, UniquelyIdentifyingFieldName>) => boolean;
7
+ export declare const criteriaListHasInvalidFieldOrValueType: <DCM extends DataContextMap, ContextName extends keyof DCM>(criteriaList: Criteria[], contextName: ContextName, dataContextMap: DCM) => boolean;
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.criteriaListHasInvalidFieldOrValueType = exports.criteriaListHasDisallowedFieldForOperation = exports.criteriaListHasRelatedField = exports.flattenCriterionGroups = exports.reduceCriteria = void 0;
4
+ const SearchCriteriaTypes_1 = require("../SearchCriteriaTypes");
5
+ const DataContextService_1 = require("../DataContextService");
6
+ const CRITERIA_REDUCER_MAP = {
7
+ [SearchCriteriaTypes_1.SearchCriterionTypes.CRITERION]: (criteria) => criteria,
8
+ [SearchCriteriaTypes_1.SearchCriterionTypes.NESTED_CRITERION]: (criteria) => {
9
+ const { value } = criteria;
10
+ return Object.assign(Object.assign({}, criteria), { value: (0, exports.reduceCriteria)(value) });
11
+ },
12
+ [SearchCriteriaTypes_1.SearchCriterionTypes.CRITERION_GROUP]: (criteria) => {
13
+ const { logicalGroupingType, criteria: groupCriteria = [] } = criteria;
14
+ const newGroupCriteria = groupCriteria.map(exports.reduceCriteria);
15
+ const allAreBoolean = newGroupCriteria.every(({ type }) => type === SearchCriteriaTypes_1.SearchCriterionTypes.BOOLEAN_CRITERION);
16
+ if (allAreBoolean) {
17
+ const boolList = newGroupCriteria.map(({ value }) => value);
18
+ if (logicalGroupingType === SearchCriteriaTypes_1.SearchCriterionLogicalGroupingTypes.OR) {
19
+ return {
20
+ type: SearchCriteriaTypes_1.SearchCriterionTypes.BOOLEAN_CRITERION,
21
+ value: boolList.some((bool) => bool),
22
+ };
23
+ }
24
+ if (logicalGroupingType === SearchCriteriaTypes_1.SearchCriterionLogicalGroupingTypes.AND) {
25
+ return {
26
+ type: SearchCriteriaTypes_1.SearchCriterionTypes.BOOLEAN_CRITERION,
27
+ value: boolList.every((bool) => bool),
28
+ };
29
+ }
30
+ }
31
+ for (const nGC of newGroupCriteria) {
32
+ const { type: nGCType } = nGC;
33
+ if (nGCType === SearchCriteriaTypes_1.SearchCriterionTypes.BOOLEAN_CRITERION) {
34
+ const { value: nGCValue } = nGC;
35
+ if (logicalGroupingType === SearchCriteriaTypes_1.SearchCriterionLogicalGroupingTypes.OR &&
36
+ nGCValue) {
37
+ return nGC;
38
+ }
39
+ if (logicalGroupingType === SearchCriteriaTypes_1.SearchCriterionLogicalGroupingTypes.AND &&
40
+ !nGCValue) {
41
+ return nGC;
42
+ }
43
+ }
44
+ }
45
+ return Object.assign(Object.assign({}, criteria), { criteria: newGroupCriteria });
46
+ },
47
+ [SearchCriteriaTypes_1.SearchCriterionTypes.BOOLEAN_CRITERION]: (criteria) => criteria,
48
+ };
49
+ const reduceCriteria = (criteria) => {
50
+ const { type } = criteria;
51
+ const criteriaReducer = CRITERIA_REDUCER_MAP[type];
52
+ return criteriaReducer(criteria);
53
+ };
54
+ exports.reduceCriteria = reduceCriteria;
55
+ const flattenCriterionGroups = (criteria) => {
56
+ if (!criteria) {
57
+ return [];
58
+ }
59
+ else {
60
+ const { type } = criteria;
61
+ if (type === SearchCriteriaTypes_1.SearchCriterionTypes.CRITERION_GROUP) {
62
+ const { criteria: criteriaList = [] } = criteria;
63
+ let flattenedCriteriaList = [];
64
+ for (const criterion of criteriaList) {
65
+ if (criterion.type === SearchCriteriaTypes_1.SearchCriterionTypes.CRITERION_GROUP) {
66
+ flattenedCriteriaList = [...(0, exports.flattenCriterionGroups)(criterion)];
67
+ }
68
+ else {
69
+ flattenedCriteriaList = [...flattenedCriteriaList, criterion];
70
+ }
71
+ }
72
+ return flattenedCriteriaList;
73
+ }
74
+ else {
75
+ return [criteria];
76
+ }
77
+ }
78
+ };
79
+ exports.flattenCriterionGroups = flattenCriterionGroups;
80
+ const criteriaListHasRelatedField = (criteriaList, dataContext) => {
81
+ const { fields } = dataContext;
82
+ for (const criterion of criteriaList) {
83
+ const { type } = criterion;
84
+ if (type === SearchCriteriaTypes_1.SearchCriterionTypes.CRITERION ||
85
+ type === SearchCriteriaTypes_1.SearchCriterionTypes.NESTED_CRITERION) {
86
+ const { field } = criterion;
87
+ const { isContext = false, embedded = false } = fields[field] || {};
88
+ const isRelatedField = isContext && !embedded;
89
+ if (isRelatedField) {
90
+ return true;
91
+ }
92
+ }
93
+ }
94
+ return false;
95
+ };
96
+ exports.criteriaListHasRelatedField = criteriaListHasRelatedField;
97
+ const criteriaListHasDisallowedFieldForOperation = (criteriaList, operation, dataContext) => {
98
+ const { fields } = dataContext;
99
+ for (const criterion of criteriaList) {
100
+ const { type } = criterion;
101
+ if (type === SearchCriteriaTypes_1.SearchCriterionTypes.CRITERION ||
102
+ type === SearchCriteriaTypes_1.SearchCriterionTypes.NESTED_CRITERION) {
103
+ const { field } = criterion;
104
+ const { allowedOperations = [] } = fields[field] || {};
105
+ const isDisallowedField = !(0, DataContextService_1.dataContextOperationIsAllowed)(operation, allowedOperations);
106
+ if (isDisallowedField) {
107
+ return true;
108
+ }
109
+ }
110
+ }
111
+ return false;
112
+ };
113
+ exports.criteriaListHasDisallowedFieldForOperation = criteriaListHasDisallowedFieldForOperation;
114
+ const criteriaListHasInvalidFieldOrValueType = (criteriaList, contextName, dataContextMap) => {
115
+ const { uniquelyIdentifyingFieldName, fields = {} } = dataContextMap[contextName];
116
+ const dataContextList = Object.keys(dataContextMap);
117
+ const fieldList = Object.keys(fields);
118
+ for (const criterion of criteriaList) {
119
+ const { type } = criterion;
120
+ if (type === SearchCriteriaTypes_1.SearchCriterionTypes.CRITERION ||
121
+ type === SearchCriteriaTypes_1.SearchCriterionTypes.NESTED_CRITERION) {
122
+ const { field, value } = criterion;
123
+ if (!fieldList.includes(field)) {
124
+ return true;
125
+ }
126
+ else {
127
+ const { typeName } = fields[field];
128
+ if (dataContextList.includes(typeName)) {
129
+ continue;
130
+ }
131
+ else if (typeof value !== typeName) {
132
+ return true;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ return false;
138
+ };
139
+ exports.criteriaListHasInvalidFieldOrValueType = criteriaListHasInvalidFieldOrValueType;
140
+ // TODO: Make these functions return a list of issues.
@@ -0,0 +1,4 @@
1
+ import { Criteria, Criterion, SearchCriterionLogicalGroupingTypes } from "../SearchCriteriaTypes";
2
+ export type CriterionTranslator<ReturnType> = (criterion: Criterion, fieldOrderPath: number[], fieldNamePath: string[]) => ReturnType;
3
+ export type CriterionGroupTranslator<ReturnType> = (translatedCriterionList: any[], relationshipType: SearchCriterionLogicalGroupingTypes, fieldOrderPath: number[], fieldNamePath: string[]) => ReturnType;
4
+ export declare const processCriteria: <TranslatedCriterion, TranslatedCriterionGroup>(criteria: Criteria, criterionTranslator: CriterionTranslator<TranslatedCriterion>, criterionGroupTranslator: CriterionGroupTranslator<TranslatedCriterionGroup>, pathDelimiter?: string, parentOrderPath?: number[], parentPath?: string[], fieldIndex?: number) => TranslatedCriterion | TranslatedCriterionGroup;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processCriteria = void 0;
4
+ const SearchCriteriaTypes_1 = require("../SearchCriteriaTypes");
5
+ const processCriteria = (criteria, criterionTranslator, criterionGroupTranslator, pathDelimiter = ".", parentOrderPath = [], parentPath = [], fieldIndex = 0) => {
6
+ const { type } = criteria;
7
+ const orderPath = [...parentOrderPath, fieldIndex];
8
+ if (type === SearchCriteriaTypes_1.SearchCriterionTypes.CRITERION) {
9
+ const { field } = criteria;
10
+ const path = [...parentPath, field];
11
+ return criterionTranslator(Object.assign({}, criteria), orderPath, path);
12
+ }
13
+ else if (type === SearchCriteriaTypes_1.SearchCriterionTypes.NESTED_CRITERION) {
14
+ const { field, value } = criteria;
15
+ const path = [...parentPath, field];
16
+ return (0, exports.processCriteria)(value, criterionTranslator, criterionGroupTranslator, pathDelimiter, orderPath, path, 0);
17
+ }
18
+ else {
19
+ const { logicalGroupingType, criteria: criteriaList = [] } = criteria;
20
+ return criterionGroupTranslator(criteriaList.map((criterion, subFieldIndex) => (0, exports.processCriteria)(criterion, criterionTranslator, criterionGroupTranslator, pathDelimiter, orderPath, parentPath, subFieldIndex)), logicalGroupingType, orderPath, parentPath);
21
+ }
22
+ };
23
+ exports.processCriteria = processCriteria;
@@ -0,0 +1,2 @@
1
+ export * from "./CriteriaUtils";
2
+ export * from "./CriterionDriverResolutionTools";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./CriteriaUtils"), exports);
18
+ __exportStar(require("./CriterionDriverResolutionTools"), exports);
@@ -0,0 +1,68 @@
1
+ import { AsyncReturnValue, DBServiceItemDriver, ListItemResults, ListItemsConfig } from "./ServiceTypes/DBServiceTypes";
2
+ import { TypeStructureUnionType } from "../../common/TypeParsing";
3
+ export declare const DataContextServiceErrorTypes: {
4
+ OPERATION_NOT_ALLOWED: string;
5
+ RELATED_ITEM_SEARCH_NOT_ALLOWED: string;
6
+ OPERATION_NOT_ALLOWED_FOR_FIELD: string;
7
+ INVALID_CRITERION: string;
8
+ };
9
+ export type DataContextOperationOptions = "CREATE" | "READ" | "UPDATE" | "DELETE" | "LIST";
10
+ export declare const DataContextOperations: Record<DataContextOperationOptions, DataContextOperationOptions>;
11
+ export declare const dataContextOperationIsAllowed: (operation: DataContextOperationOptions, allowedOperations?: DataContextOperationOptions[]) => boolean;
12
+ export declare const getDataContextOperationNotAllowed: (operation: DataContextOperationOptions) => Error;
13
+ export type DataContextField = {
14
+ typeName: string;
15
+ isContext?: boolean;
16
+ isMultiple?: boolean;
17
+ allowedOperations?: DataContextOperationOptions[];
18
+ valueOptions?: TypeStructureUnionType[];
19
+ embedded?: boolean;
20
+ };
21
+ export type DataContext<ItemType extends Record<any, any>, UniquelyIdentifyingFieldName extends keyof ItemType> = {
22
+ itemTypeName: string;
23
+ resolvedType?: string;
24
+ uniquelyIdentifyingFieldName: UniquelyIdentifyingFieldName;
25
+ allowedOperations?: DataContextOperationOptions[];
26
+ valueOptions?: TypeStructureUnionType[];
27
+ fields: Partial<Record<keyof ItemType, DataContextField>>;
28
+ };
29
+ export type DataContextItemType<DC> = DC extends DataContext<infer T, any> ? T : never;
30
+ export type DataContextUniquelyIdentifyingFieldName<DC> = DC extends DataContext<any, infer T> ? T : never;
31
+ export type DataContextUniquelyIdentifyingFieldType<DC> = DataContextItemType<DC>[DataContextUniquelyIdentifyingFieldName<DC>];
32
+ export type NewItemType<ItemType extends Record<any, any>, UniquelyIdentifyingFieldName extends keyof ItemType> = ItemType | Omit<ItemType, UniquelyIdentifyingFieldName>;
33
+ export type DataContextMap = Record<string, DataContext<any, any>>;
34
+ export type DataContextOperationProvider<T extends Record<Lowercase<DataContextOperationOptions>, (...args: any[]) => AsyncReturnValue<any>>> = T;
35
+ export type DataContextCreateOrUpdateOperation<DCM extends DataContextMap> = <ContextName extends keyof DCM, UpdateFlag extends boolean>(contextName: ContextName, item: UpdateFlag extends true ? DataContextItemType<DCM[ContextName]> : NewItemType<DataContextItemType<DCM[ContextName]>, DataContextUniquelyIdentifyingFieldName<DCM[ContextName]>>, update?: UpdateFlag) => AsyncReturnValue<DataContextItemType<DCM[ContextName]>>;
36
+ /**
37
+ * An advanced OMR service that can handle relationships between data contexts.
38
+ * */
39
+ export type DataContextService<DCM extends DataContextMap> = DataContextOperationProvider<{
40
+ create: <ContextName extends keyof DCM>(contextName: ContextName, item: NewItemType<DataContextItemType<DCM[ContextName]>, DataContextUniquelyIdentifyingFieldName<DCM[ContextName]>>) => AsyncReturnValue<DataContextItemType<DCM[ContextName]>>;
41
+ read: <ContextName extends keyof DCM>(contextName: ContextName, itemId: DataContextUniquelyIdentifyingFieldType<DCM>) => AsyncReturnValue<DataContextItemType<DCM[ContextName]>>;
42
+ update: <ContextName extends keyof DCM>(contextName: ContextName, item: DataContextItemType<DCM[ContextName]>) => AsyncReturnValue<DataContextItemType<DCM[ContextName]>>;
43
+ delete: <ContextName extends keyof DCM>(contextName: ContextName, itemId: DataContextUniquelyIdentifyingFieldType<DCM>) => AsyncReturnValue<DataContextItemType<DCM[ContextName]>>;
44
+ list: <ContextName extends keyof DCM>(contextName: ContextName, config: ListItemsConfig) => AsyncReturnValue<ListItemResults<DataContextItemType<DCM[ContextName]>>>;
45
+ }>;
46
+ export type DataContextRelationship<FromDataContext extends DataContext<any, any>, ToDataContext extends DataContext<any, any>> = {
47
+ id: string;
48
+ fromContext: FromDataContext["itemTypeName"];
49
+ fromField: keyof DataContextItemType<FromDataContext>;
50
+ fromUniqueIdentifier: DataContextUniquelyIdentifyingFieldName<FromDataContext>;
51
+ toContext: ToDataContext["itemTypeName"];
52
+ toUniqueIdentifier: DataContextUniquelyIdentifyingFieldName<ToDataContext>;
53
+ };
54
+ export type GetDataContextServiceConfig<DCM extends DataContextMap> = {
55
+ dataContextMap: DCM;
56
+ itemDriverMap: Record<keyof DCM, DBServiceItemDriver<DataContextItemType<DCM[keyof DCM]>, DataContextUniquelyIdentifyingFieldType<DCM[keyof DCM]>>>;
57
+ relationshipItemDriver?: DBServiceItemDriver<DataContextRelationship<DataContextItemType<DCM[keyof DCM]>, DataContextItemType<DCM[keyof DCM]>>, "id">;
58
+ };
59
+ /**
60
+ * Configure and instantiate a {@link DataContextService}.
61
+ * */
62
+ export declare const getDataContextService: <DCM extends DataContextMap>(config: GetDataContextServiceConfig<DCM>) => {
63
+ create: <ContextName extends keyof DCM>(contextName: ContextName, item: NewItemType<DataContextItemType<DCM[ContextName]>, DataContextUniquelyIdentifyingFieldName<DCM[ContextName]>>) => AsyncReturnValue<DataContextItemType<DCM[ContextName]>>;
64
+ read: <ContextName_1 extends keyof DCM>(contextName: ContextName_1, itemId: DataContextUniquelyIdentifyingFieldType<DCM>) => AsyncReturnValue<DataContextItemType<DCM[ContextName_1]>>;
65
+ update: <ContextName_2 extends keyof DCM>(contextName: ContextName_2, item: DataContextItemType<DCM[ContextName_2]>) => AsyncReturnValue<DataContextItemType<DCM[ContextName_2]>>;
66
+ delete: <ContextName_3 extends keyof DCM>(contextName: ContextName_3, itemId: DataContextUniquelyIdentifyingFieldType<DCM>) => AsyncReturnValue<DataContextItemType<DCM[ContextName_3]>>;
67
+ list: <ContextName_4 extends keyof DCM>(contextName: ContextName_4, config: ListItemsConfig) => AsyncReturnValue<ListItemResults<DataContextItemType<DCM[ContextName_4]>>>;
68
+ };