@resistdesign/voltra 3.0.0-alpha.2 → 3.0.0-alpha.21

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 (375) hide show
  1. package/README.md +327 -7
  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 +169 -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 +210 -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 +143 -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 +166 -0
  40. package/api/Indexing/structured/StructuredDdbBackend.d.ts +109 -0
  41. package/api/Indexing/structured/StructuredInMemoryBackend.d.ts +34 -0
  42. package/api/Indexing/structured/StructuredInMemoryIndex.d.ts +58 -0
  43. package/api/Indexing/structured/StructuredStringLike.d.ts +25 -0
  44. package/api/Indexing/structured/StructuredWriter.d.ts +61 -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 +555 -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/{src/api → api}/ORM/drivers/S3FileItemDBDriver.d.ts +27 -0
  63. package/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.d.ts +36 -0
  64. package/{src/api → api}/ORM/drivers/common/Types.d.ts +120 -0
  65. package/api/ORM/drivers/index.d.ts +7 -0
  66. package/api/ORM/index.d.ts +7 -0
  67. package/api/ORM/indexing/criteriaToStructuredWhere.d.ts +17 -0
  68. package/api/Router/AWS.d.ts +80 -0
  69. package/api/Router/Auth.d.ts +14 -0
  70. package/api/Router/CORS.d.ts +66 -0
  71. package/{src/api → api}/Router/Types.d.ts +70 -4
  72. package/api/Router/index.d.ts +89 -0
  73. package/api/index.d.ts +68 -0
  74. package/api/index.js +9204 -0
  75. package/app/forms/Engine.d.ts +20 -0
  76. package/app/forms/core/createAutoField.d.ts +35 -0
  77. package/app/forms/core/createFormRenderer.d.ts +24 -0
  78. package/app/forms/core/getFieldKind.d.ts +14 -0
  79. package/app/forms/core/index.d.ts +11 -0
  80. package/app/forms/core/mergeSuites.d.ts +22 -0
  81. package/app/forms/core/resolveSuite.d.ts +14 -0
  82. package/app/forms/core/types.d.ts +153 -0
  83. package/app/forms/index.d.ts +9 -0
  84. package/app/forms/types.d.ts +156 -0
  85. package/app/helpers/styled.d.ts +3 -0
  86. package/app/index.d.ts +98 -0
  87. package/app/index.js +1386 -0
  88. package/{src/app → app}/utils/ApplicationState.d.ts +115 -0
  89. package/{src/app → app}/utils/ApplicationStateLoader.d.ts +40 -0
  90. package/app/utils/Controller.d.ts +10 -0
  91. package/app/utils/Debug.d.ts +14 -0
  92. package/app/utils/EasyLayout.d.ts +89 -0
  93. package/app/utils/History.d.ts +148 -0
  94. package/app/utils/Route.d.ts +129 -0
  95. package/app/utils/RouteHistory.d.ts +26 -0
  96. package/app/utils/Service.d.ts +45 -0
  97. package/app/utils/TypeInfoORMAPIUtils.d.ts +94 -0
  98. package/app/utils/TypeInfoORMClient.d.ts +103 -0
  99. package/app/utils/easy-layout/computeAreaBounds.d.ts +5 -0
  100. package/app/utils/easy-layout/computeTracks.d.ts +16 -0
  101. package/app/utils/easy-layout/index.d.ts +5 -0
  102. package/app/utils/easy-layout/parseTemplate.d.ts +12 -0
  103. package/app/utils/easy-layout/types.d.ts +52 -0
  104. package/app/utils/easy-layout/validateAreas.d.ts +5 -0
  105. package/app/utils/index.d.ts +23 -0
  106. package/{src/common/TypeParsing → build}/TypeMapping.d.ts +8 -0
  107. package/build/TypeParsing.d.ts +10 -0
  108. package/build/index.d.ts +15 -0
  109. package/build/index.js +579 -0
  110. package/common/CommandLine/collectRequiredEnvironmentVariables.d.ts +9 -0
  111. package/common/CommandLine/index.d.ts +6 -0
  112. package/common/HelperTypes.d.ts +9 -0
  113. package/common/IdGeneration/getSimpleId.d.ts +8 -0
  114. package/{src/common → common}/ItemRelationshipInfoTypes.d.ts +19 -1
  115. package/common/ItemRelationships/ItemRelationshipValidation.d.ts +21 -0
  116. package/common/Logging/Utils.d.ts +19 -0
  117. package/common/Routing.d.ts +67 -0
  118. package/common/SearchTypes.d.ts +248 -0
  119. package/common/SearchUtils.d.ts +55 -0
  120. package/{src/common → common}/SearchValidation.d.ts +10 -0
  121. package/{src/common → common}/StringTransformers.d.ts +11 -0
  122. package/common/Testing/CLI.d.ts +6 -0
  123. package/common/Testing/CLI.js +432 -0
  124. package/{src/common → common}/Testing/Types.d.ts +103 -4
  125. package/{src/common → common}/Testing/Utils.d.ts +65 -1
  126. package/common/Testing/index.d.ts +8 -0
  127. package/common/TypeInfoDataItemUtils.d.ts +39 -0
  128. package/common/TypeInfoORM/Types.d.ts +342 -0
  129. package/common/TypeParsing/Constants.d.ts +4 -0
  130. package/{src/common → common}/TypeParsing/ParsingUtils/Constants.d.ts +3 -0
  131. package/{src/common → common}/TypeParsing/ParsingUtils/checkType.d.ts +6 -0
  132. package/{src/common → common}/TypeParsing/ParsingUtils/checkUnionType.d.ts +6 -0
  133. package/common/TypeParsing/ParsingUtils/extractCommentTags.d.ts +8 -0
  134. package/common/TypeParsing/ParsingUtils/extractLiteralValues.d.ts +12 -0
  135. package/common/TypeParsing/ParsingUtils/extractTypeDetails.d.ts +14 -0
  136. package/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.d.ts +18 -0
  137. package/common/TypeParsing/ParsingUtils/getTypeInfo.d.ts +9 -0
  138. package/{src/common → common}/TypeParsing/ParsingUtils/getTypeInfoField.d.ts +6 -0
  139. package/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.d.ts +11 -0
  140. package/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.d.ts +12 -0
  141. package/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.d.ts +11 -0
  142. package/common/TypeParsing/ParsingUtils/getTypeKeyword.d.ts +9 -0
  143. package/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.d.ts +11 -0
  144. package/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.d.ts +8 -0
  145. package/{src/common → common}/TypeParsing/TypeInfo.d.ts +61 -1
  146. package/{src/common → common}/TypeParsing/Utils.d.ts +26 -0
  147. package/{src/common → common}/TypeParsing/Validation.d.ts +105 -0
  148. package/common/TypeParsing/index.d.ts +8 -0
  149. package/common/index.d.ts +50 -0
  150. package/common/index.js +413 -0
  151. package/{src/iac → iac}/SimpleCFT.d.ts +46 -2
  152. package/iac/index.d.ts +40 -0
  153. package/iac/index.js +258 -0
  154. package/iac/packs/auth/user-management.d.ts +80 -0
  155. package/iac/packs/auth.d.ts +86 -0
  156. package/iac/packs/build/utils.d.ts +289 -0
  157. package/iac/packs/build.d.ts +92 -0
  158. package/iac/packs/cdn.d.ts +33 -0
  159. package/iac/packs/cloud-function.d.ts +67 -0
  160. package/{src/iac → iac}/packs/database.d.ts +4 -1
  161. package/{src/iac → iac}/packs/dns.d.ts +22 -1
  162. package/iac/packs/file-storage.d.ts +46 -0
  163. package/iac/packs/gateway.d.ts +79 -0
  164. package/iac/packs/index.d.ts +60 -0
  165. package/iac/packs/index.js +1622 -0
  166. package/iac/packs/repo.d.ts +28 -0
  167. package/iac/packs/ssl-certificate.d.ts +28 -0
  168. package/{src/iac → iac}/types/Constants.d.ts +15 -0
  169. package/iac/types/Renderers.d.ts +96 -0
  170. package/iac/types/Types.d.ts +131 -0
  171. package/iac/types/Utils.d.ts +9 -0
  172. package/{src/iac → iac}/utils/index.d.ts +56 -5
  173. package/iac/utils/patch-utils.d.ts +66 -0
  174. package/native/forms/createNativeFormRenderer.d.ts +21 -0
  175. package/native/forms/index.d.ts +8 -0
  176. package/native/forms/primitives/index.d.ts +48 -0
  177. package/native/forms/suite.d.ts +15 -0
  178. package/native/index.d.ts +15 -0
  179. package/native/index.js +1323 -0
  180. package/native/utils/EasyLayout.d.ts +88 -0
  181. package/native/utils/History.d.ts +113 -0
  182. package/native/utils/NativeRoute.d.ts +44 -0
  183. package/native/utils/Route.d.ts +50 -0
  184. package/native/utils/index.d.ts +11 -0
  185. package/package.json +87 -42
  186. package/web/forms/UI.d.ts +67 -0
  187. package/web/forms/createWebFormRenderer.d.ts +21 -0
  188. package/web/forms/index.d.ts +9 -0
  189. package/web/forms/primitives/index.d.ts +21 -0
  190. package/web/forms/suite.d.ts +15 -0
  191. package/web/index.d.ts +15 -0
  192. package/web/index.js +1297 -0
  193. package/web/utils/EasyLayout.d.ts +47 -0
  194. package/web/utils/Route.d.ts +20 -0
  195. package/web/utils/index.d.ts +7 -0
  196. package/src/api/DataAccessControl.d.ts +0 -85
  197. package/src/api/DataAccessControl.js +0 -159
  198. package/src/api/ORM/DACUtils.d.ts +0 -60
  199. package/src/api/ORM/DACUtils.js +0 -197
  200. package/src/api/ORM/ListItemUtils.d.ts +0 -7
  201. package/src/api/ORM/ListItemUtils.js +0 -22
  202. package/src/api/ORM/ORMRouteMap.d.ts +0 -19
  203. package/src/api/ORM/ORMRouteMap.js +0 -82
  204. package/src/api/ORM/TypeInfoORMService.d.ts +0 -103
  205. package/src/api/ORM/TypeInfoORMService.js +0 -581
  206. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.d.ts +0 -63
  207. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.js +0 -2
  208. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.d.ts +0 -36
  209. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.js +0 -282
  210. package/src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.d.ts +0 -90
  211. package/src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.js +0 -2
  212. package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.d.ts +0 -45
  213. package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.js +0 -127
  214. package/src/api/ORM/drivers/S3FileItemDBDriver.js +0 -182
  215. package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.d.ts +0 -12
  216. package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.js +0 -20
  217. package/src/api/ORM/drivers/common/Types.js +0 -14
  218. package/src/api/ORM/drivers/common/index.js +0 -18
  219. package/src/api/ORM/drivers/index.d.ts +0 -3
  220. package/src/api/ORM/drivers/index.js +0 -19
  221. package/src/api/ORM/index.d.ts +0 -4
  222. package/src/api/ORM/index.js +0 -43
  223. package/src/api/Router/AWS.d.ts +0 -26
  224. package/src/api/Router/AWS.js +0 -76
  225. package/src/api/Router/Auth.d.ts +0 -2
  226. package/src/api/Router/Auth.js +0 -9
  227. package/src/api/Router/CORS.d.ts +0 -6
  228. package/src/api/Router/CORS.js +0 -27
  229. package/src/api/Router/Types.js +0 -2
  230. package/src/api/Router/index.d.ts +0 -18
  231. package/src/api/Router/index.js +0 -145
  232. package/src/api/index.d.ts +0 -3
  233. package/src/api/index.js +0 -39
  234. package/src/app/index.d.ts +0 -1
  235. package/src/app/index.js +0 -37
  236. package/src/app/utils/ApplicationState.js +0 -86
  237. package/src/app/utils/ApplicationStateLoader.js +0 -57
  238. package/src/app/utils/Controller.d.ts +0 -4
  239. package/src/app/utils/Controller.js +0 -47
  240. package/src/app/utils/Debug.d.ts +0 -4
  241. package/src/app/utils/Debug.js +0 -30
  242. package/src/app/utils/EasyLayout.d.ts +0 -49
  243. package/src/app/utils/EasyLayout.js +0 -122
  244. package/src/app/utils/Route.d.ts +0 -28
  245. package/src/app/utils/Route.js +0 -102
  246. package/src/app/utils/Service.d.ts +0 -12
  247. package/src/app/utils/Service.js +0 -34
  248. package/src/app/utils/TypeInfoORMAPIUtils.d.ts +0 -20
  249. package/src/app/utils/TypeInfoORMAPIUtils.js +0 -62
  250. package/src/app/utils/TypeInfoORMClient.d.ts +0 -24
  251. package/src/app/utils/TypeInfoORMClient.js +0 -69
  252. package/src/app/utils/index.d.ts +0 -8
  253. package/src/app/utils/index.js +0 -24
  254. package/src/common/CommandLine/collectRequiredEnvironmentVariables.d.ts +0 -1
  255. package/src/common/CommandLine/collectRequiredEnvironmentVariables.js +0 -16
  256. package/src/common/HelperTypes.d.ts +0 -3
  257. package/src/common/HelperTypes.js +0 -2
  258. package/src/common/IdGeneration/getSimpleId.d.ts +0 -4
  259. package/src/common/IdGeneration/getSimpleId.js +0 -16
  260. package/src/common/IdGeneration/index.js +0 -17
  261. package/src/common/ItemRelationshipInfoTypes.js +0 -20
  262. package/src/common/ItemRelationships/ItemRelationshipValidation.d.ts +0 -10
  263. package/src/common/ItemRelationships/ItemRelationshipValidation.js +0 -43
  264. package/src/common/ItemRelationships/index.js +0 -17
  265. package/src/common/Logging/Utils.d.ts +0 -10
  266. package/src/common/Logging/Utils.js +0 -33
  267. package/src/common/Logging/index.js +0 -17
  268. package/src/common/Routing.d.ts +0 -25
  269. package/src/common/Routing.js +0 -102
  270. package/src/common/SearchTypes.d.ts +0 -98
  271. package/src/common/SearchTypes.js +0 -39
  272. package/src/common/SearchUtils.d.ts +0 -22
  273. package/src/common/SearchUtils.js +0 -134
  274. package/src/common/SearchValidation.js +0 -90
  275. package/src/common/Storyboarding/Types.d.ts +0 -25
  276. package/src/common/Storyboarding/Types.js +0 -2
  277. package/src/common/StringTransformers.js +0 -36
  278. package/src/common/Testing/CLI.d.ts +0 -2
  279. package/src/common/Testing/CLI.js +0 -56
  280. package/src/common/Testing/Types.js +0 -19
  281. package/src/common/Testing/Utils.js +0 -334
  282. package/src/common/Testing/index.d.ts +0 -2
  283. package/src/common/Testing/index.js +0 -18
  284. package/src/common/TypeInfoDataItemUtils.d.ts +0 -10
  285. package/src/common/TypeInfoDataItemUtils.js +0 -55
  286. package/src/common/TypeInfoORM/Types.d.ts +0 -76
  287. package/src/common/TypeInfoORM/Types.js +0 -55
  288. package/src/common/TypeInfoORM/index.js +0 -17
  289. package/src/common/TypeParsing/Constants.d.ts +0 -1
  290. package/src/common/TypeParsing/Constants.js +0 -4
  291. package/src/common/TypeParsing/ParsingUtils/Constants.js +0 -8
  292. package/src/common/TypeParsing/ParsingUtils/checkType.js +0 -46
  293. package/src/common/TypeParsing/ParsingUtils/checkUnionType.js +0 -15
  294. package/src/common/TypeParsing/ParsingUtils/extractCommentTags.d.ts +0 -2
  295. package/src/common/TypeParsing/ParsingUtils/extractCommentTags.js +0 -105
  296. package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.d.ts +0 -6
  297. package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.js +0 -42
  298. package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.d.ts +0 -8
  299. package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.js +0 -14
  300. package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.d.ts +0 -5
  301. package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.js +0 -27
  302. package/src/common/TypeParsing/ParsingUtils/getTypeInfo.d.ts +0 -3
  303. package/src/common/TypeParsing/ParsingUtils/getTypeInfo.js +0 -27
  304. package/src/common/TypeParsing/ParsingUtils/getTypeInfoField.js +0 -44
  305. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.d.ts +0 -4
  306. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.js +0 -28
  307. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.d.ts +0 -4
  308. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.js +0 -105
  309. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.d.ts +0 -4
  310. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.js +0 -20
  311. package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.d.ts +0 -3
  312. package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.js +0 -17
  313. package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.d.ts +0 -4
  314. package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.js +0 -49
  315. package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.d.ts +0 -2
  316. package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.js +0 -24
  317. package/src/common/TypeParsing/TypeInfo.js +0 -13
  318. package/src/common/TypeParsing/TypeMapping.js +0 -32
  319. package/src/common/TypeParsing/TypeParsing.d.ts +0 -5
  320. package/src/common/TypeParsing/TypeParsing.js +0 -39
  321. package/src/common/TypeParsing/Utils.js +0 -94
  322. package/src/common/TypeParsing/Validation.js +0 -340
  323. package/src/common/TypeParsing/index.d.ts +0 -5
  324. package/src/common/TypeParsing/index.js +0 -44
  325. package/src/common/index.d.ts +0 -11
  326. package/src/common/index.js +0 -47
  327. package/src/iac/SimpleCFT.js +0 -82
  328. package/src/iac/index.d.ts +0 -9
  329. package/src/iac/index.js +0 -48
  330. package/src/iac/packs/auth/user-management.d.ts +0 -14
  331. package/src/iac/packs/auth/user-management.js +0 -302
  332. package/src/iac/packs/auth.d.ts +0 -19
  333. package/src/iac/packs/auth.js +0 -47
  334. package/src/iac/packs/build/utils.d.ts +0 -100
  335. package/src/iac/packs/build/utils.js +0 -23
  336. package/src/iac/packs/build.d.ts +0 -29
  337. package/src/iac/packs/build.js +0 -217
  338. package/src/iac/packs/cdn.d.ts +0 -12
  339. package/src/iac/packs/cdn.js +0 -113
  340. package/src/iac/packs/cloud-function.d.ts +0 -17
  341. package/src/iac/packs/cloud-function.js +0 -69
  342. package/src/iac/packs/database.js +0 -27
  343. package/src/iac/packs/dns.js +0 -26
  344. package/src/iac/packs/file-storage.d.ts +0 -14
  345. package/src/iac/packs/file-storage.js +0 -71
  346. package/src/iac/packs/gateway.d.ts +0 -27
  347. package/src/iac/packs/gateway.js +0 -342
  348. package/src/iac/packs/index.d.ts +0 -11
  349. package/src/iac/packs/index.js +0 -27
  350. package/src/iac/packs/repo.d.ts +0 -10
  351. package/src/iac/packs/repo.js +0 -34
  352. package/src/iac/packs/ssl-certificate.d.ts +0 -10
  353. package/src/iac/packs/ssl-certificate.js +0 -36
  354. package/src/iac/types/Constants.js +0 -20
  355. package/src/iac/types/IaCTypes.js +0 -14
  356. package/src/iac/types/Renderers.d.ts +0 -12
  357. package/src/iac/types/Renderers.js +0 -112
  358. package/src/iac/types/Types.d.ts +0 -37
  359. package/src/iac/types/Types.js +0 -2
  360. package/src/iac/types/Utils.d.ts +0 -2
  361. package/src/iac/types/Utils.js +0 -60
  362. package/src/iac/types/generate.js +0 -31
  363. package/src/iac/utils/index.js +0 -105
  364. package/src/iac/utils/patch-utils.d.ts +0 -15
  365. package/src/iac/utils/patch-utils.js +0 -62
  366. package/src/index.d.ts +0 -178
  367. package/src/index.js +0 -214
  368. /package/{src/api → api}/ORM/drivers/common/index.d.ts +0 -0
  369. /package/{src/common → common}/IdGeneration/index.d.ts +0 -0
  370. /package/{src/common → common}/ItemRelationships/index.d.ts +0 -0
  371. /package/{src/common → common}/Logging/index.d.ts +0 -0
  372. /package/{src/common → common}/TypeInfoORM/index.d.ts +0 -0
  373. /package/{src/iac → iac}/types/CloudFormationResourceSpecification.d.ts +0 -0
  374. /package/{src/iac → iac}/types/IaCTypes.d.ts +0 -0
  375. /package/{src/iac → iac}/types/generate.d.ts +0 -0
@@ -1,581 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TypeInfoORMService = exports.getDriverMethodWithModifiedError = exports.cleanRelationshipItem = void 0;
4
- const TypeInfo_1 = require("../../common/TypeParsing/TypeInfo");
5
- const Validation_1 = require("../../common/TypeParsing/Validation");
6
- const SearchTypes_1 = require("../../common/SearchTypes");
7
- const SearchValidation_1 = require("../../common/SearchValidation");
8
- const ItemRelationships_1 = require("../../common/ItemRelationships");
9
- const TypeInfoORM_1 = require("../../common/TypeInfoORM");
10
- const Utils_1 = require("../../common/TypeParsing/Utils");
11
- const ItemRelationshipInfoTypes_1 = require("../../common/ItemRelationshipInfoTypes");
12
- const DataAccessControl_1 = require("../DataAccessControl");
13
- const DACUtils_1 = require("./DACUtils");
14
- const ListItemUtils_1 = require("./ListItemUtils");
15
- const cleanRelationshipItem = (relationshipItem) => {
16
- const relItemKeys = Object.values(ItemRelationshipInfoTypes_1.ItemRelationshipInfoKeys);
17
- const cleanedItem = {};
18
- for (const rIK of relItemKeys) {
19
- cleanedItem[rIK] = relationshipItem[rIK];
20
- }
21
- return cleanedItem;
22
- };
23
- exports.cleanRelationshipItem = cleanRelationshipItem;
24
- const getDriverMethodWithModifiedError = (extendedData, driver, driverMethodName) => ((...args) => {
25
- try {
26
- return driver[driverMethodName](...args);
27
- }
28
- catch (error) {
29
- throw {
30
- ...error,
31
- ...extendedData,
32
- };
33
- }
34
- });
35
- exports.getDriverMethodWithModifiedError = getDriverMethodWithModifiedError;
36
- /**
37
- * A service using TypeInfo to perform ORM operations with one or many `DBServiceItemDriver` instances.
38
- * */
39
- class TypeInfoORMService {
40
- config;
41
- dacRoleCache = {};
42
- constructor(config) {
43
- this.config = config;
44
- if (!config.getDriver) {
45
- throw new Error(TypeInfoORM_1.TypeInfoORMServiceError.NO_DRIVERS_SUPPLIED);
46
- }
47
- if (!config.getRelationshipDriver) {
48
- throw new Error(TypeInfoORM_1.TypeInfoORMServiceError.NO_RELATIONSHIP_DRIVERS_SUPPLIED);
49
- }
50
- }
51
- getItemDACValidation = (item, typeName, typeOperation) => {
52
- const { useDAC } = this.config;
53
- if (useDAC) {
54
- const typeInfo = this.getTypeInfo(typeName);
55
- const { dacConfig } = this.config;
56
- const { itemResourcePathPrefix, accessingRole, getDACRoleById } = dacConfig;
57
- return (0, DACUtils_1.mergeDACDataItemResourceAccessResultMaps)((0, DACUtils_1.getDACRoleHasAccessToDataItem)(itemResourcePathPrefix, typeOperation, typeName, item, typeInfo, accessingRole, getDACRoleById, this.dacRoleCache), (0, DACUtils_1.getDACRoleHasAccessToDataItem)(itemResourcePathPrefix, TypeInfoORM_1.OperationGroup.ALL_ITEM_OPERATIONS, typeName, item, typeInfo, accessingRole, getDACRoleById, this.dacRoleCache), (0, DACUtils_1.getDACRoleHasAccessToDataItem)(itemResourcePathPrefix, TypeInfoORM_1.OperationGroup.ALL_OPERATIONS, typeName, item, typeInfo, accessingRole, getDACRoleById, this.dacRoleCache));
58
- }
59
- else {
60
- return {
61
- allowed: true,
62
- denied: false,
63
- fieldsResources: {},
64
- };
65
- }
66
- };
67
- getRelationshipDACValidation = (itemRelationship, relationshipOperation) => {
68
- const { useDAC } = this.config;
69
- if (useDAC) {
70
- const { dacConfig } = this.config;
71
- const { relationshipResourcePathPrefix, accessingRole, getDACRoleById } = dacConfig;
72
- return (0, DataAccessControl_1.mergeDACAccessResults)((0, DataAccessControl_1.getResourceAccessByDACRole)((0, DACUtils_1.getItemRelationshipDACResourcePath)(relationshipResourcePathPrefix, relationshipOperation, itemRelationship), accessingRole, getDACRoleById, this.dacRoleCache), (0, DataAccessControl_1.getResourceAccessByDACRole)((0, DACUtils_1.getItemRelationshipDACResourcePath)(relationshipResourcePathPrefix, TypeInfoORM_1.OperationGroup.ALL_RELATIONSHIP_OPERATIONS, itemRelationship), accessingRole, getDACRoleById, this.dacRoleCache), (0, DataAccessControl_1.getResourceAccessByDACRole)((0, DACUtils_1.getItemRelationshipDACResourcePath)(relationshipResourcePathPrefix, TypeInfoORM_1.OperationGroup.ALL_OPERATIONS, itemRelationship), accessingRole, getDACRoleById, this.dacRoleCache));
73
- }
74
- else {
75
- return {
76
- allowed: true,
77
- denied: false,
78
- };
79
- }
80
- };
81
- getWrappedDriverWithExtendedErrorData = (driver, extendedData) => {
82
- const driverMethodList = [
83
- "createItem",
84
- "readItem",
85
- "updateItem",
86
- "deleteItem",
87
- "listItems",
88
- ];
89
- const driverWrapper = {};
90
- for (const dM of driverMethodList) {
91
- driverWrapper[dM] = (0, exports.getDriverMethodWithModifiedError)(extendedData, driver, dM);
92
- }
93
- return driverWrapper;
94
- };
95
- getDriverInternal = (typeName) => {
96
- const driver = this.config.getDriver(typeName);
97
- if (!driver) {
98
- throw new Error(TypeInfoORM_1.TypeInfoORMServiceError.INVALID_DRIVER);
99
- }
100
- return this.getWrappedDriverWithExtendedErrorData(driver, { typeName });
101
- };
102
- getRelationshipDriverInternal = (typeName, fieldName) => {
103
- const driver = this.config.getRelationshipDriver(typeName, fieldName);
104
- if (!driver) {
105
- throw new Error(TypeInfoORM_1.TypeInfoORMServiceError.INVALID_RELATIONSHIP_DRIVER);
106
- }
107
- return this.getWrappedDriverWithExtendedErrorData(driver, {
108
- typeName,
109
- fieldName,
110
- });
111
- };
112
- getTypeInfo = (typeName) => {
113
- const typeInfo = this.config.typeInfoMap[typeName];
114
- if (!typeInfo) {
115
- throw {
116
- message: TypeInfoORM_1.TypeInfoORMServiceError.INVALID_TYPE_INFO,
117
- typeName,
118
- };
119
- }
120
- else {
121
- const { primaryField } = typeInfo;
122
- if (typeof primaryField === "undefined") {
123
- throw {
124
- message: TypeInfoORM_1.TypeInfoORMServiceError.TYPE_INFO_MISSING_PRIMARY_FIELD,
125
- typeName,
126
- };
127
- }
128
- }
129
- return typeInfo;
130
- };
131
- validateReadOperation = (typeName, selectedFields) => {
132
- const typeInfo = this.getTypeInfo(typeName);
133
- const { fields = {} } = typeInfo;
134
- const cleanSelectedFields = this.getCleanSelectedFields(typeName, selectedFields);
135
- const results = {
136
- typeName,
137
- valid: !!typeInfo,
138
- error: !!typeInfo ? "" : Validation_1.ERROR_MESSAGE_CONSTANTS.TYPE_DOES_NOT_EXIST,
139
- errorMap: {},
140
- };
141
- const { valid: operationValid, error: operationError, errorMap: operationErrorMap, } = (0, Validation_1.validateTypeOperationAllowed)(typeName, cleanSelectedFields ? cleanSelectedFields : Object.keys(fields), TypeInfo_1.TypeOperation.READ, typeInfo);
142
- results.valid = (0, Validation_1.getValidityValue)(results.valid, operationValid);
143
- results.error = operationError;
144
- for (const oE in operationErrorMap) {
145
- const existingError = results.errorMap[oE] ?? [];
146
- results.errorMap[oE] = existingError
147
- ? [...existingError, ...operationErrorMap[oE]]
148
- : operationErrorMap[oE];
149
- }
150
- if (!operationValid && operationError) {
151
- results.error = operationError;
152
- }
153
- if (!results.valid) {
154
- throw results;
155
- }
156
- };
157
- validate = (typeName, item, typeOperation, itemIsPartial) => {
158
- const validationResults = (0, Validation_1.validateTypeInfoValue)(item, typeName, this.config.typeInfoMap, true, this.config.customValidators, typeOperation, Validation_1.RelationshipValidationType.STRICT_EXCLUDE, itemIsPartial);
159
- if (!validationResults.valid) {
160
- throw validationResults;
161
- }
162
- };
163
- getCleanItem = (typeName, item, dacFieldResources, selectedFields) => {
164
- const typeInfo = this.getTypeInfo(typeName);
165
- const cleanSelectedFields = this.getCleanSelectedFields(typeName, selectedFields);
166
- const itemCleanedByTypeInfo = (0, Utils_1.removeUnselectedFieldsFromDataItem)((0, Utils_1.removeTypeReferenceFieldsFromDataItem)(typeInfo, (0, Utils_1.removeNonexistentFieldsFromDataItem)(typeInfo, item)), cleanSelectedFields);
167
- if (dacFieldResources) {
168
- const itemCleanedByDAC = {};
169
- for (const fN in itemCleanedByTypeInfo) {
170
- const fR = dacFieldResources[fN];
171
- if (fR) {
172
- const { allowed, denied } = fR;
173
- if (allowed && !denied) {
174
- itemCleanedByDAC[fN] = itemCleanedByTypeInfo[fN];
175
- }
176
- }
177
- else {
178
- itemCleanedByDAC[fN] = itemCleanedByTypeInfo[fN];
179
- }
180
- }
181
- return itemCleanedByDAC;
182
- }
183
- else {
184
- return itemCleanedByTypeInfo;
185
- }
186
- };
187
- getCleanSelectedFields = (typeName, selectedFields) => {
188
- const typeInfo = this.getTypeInfo(typeName);
189
- const { primaryField } = typeInfo;
190
- let cleanSelectedFields = (0, Utils_1.removeTypeReferenceFieldsFromSelectedFields)(typeInfo, (0, Utils_1.removeNonexistentFieldsFromSelectedFields)(typeInfo, selectedFields));
191
- if (primaryField &&
192
- Array.isArray(cleanSelectedFields) &&
193
- !cleanSelectedFields.includes(primaryField)) {
194
- // IMPORTANT: Ensure that the primary field is always included in the selected fields.
195
- cleanSelectedFields = [...cleanSelectedFields, primaryField];
196
- }
197
- return cleanSelectedFields;
198
- };
199
- validateRelationshipItem = (relationshipItem, omitFields = []) => {
200
- const validationResults = (0, ItemRelationships_1.validateRelationshipItem)(relationshipItem, omitFields);
201
- if (!validationResults.valid) {
202
- throw validationResults;
203
- }
204
- else {
205
- const { fromTypeName, fromTypeFieldName } = relationshipItem;
206
- const { fields: { [fromTypeFieldName]: { typeReference = undefined } = {}, } = {}, } = this.getTypeInfo(fromTypeName);
207
- const relatedTypeInfo = typeReference
208
- ? this.getTypeInfo(typeReference)
209
- : undefined;
210
- if (!relatedTypeInfo) {
211
- const relationshipValidationResults = {
212
- typeName: fromTypeName,
213
- valid: false,
214
- error: TypeInfoORM_1.TypeInfoORMServiceError.INVALID_RELATIONSHIP,
215
- errorMap: {},
216
- };
217
- throw relationshipValidationResults;
218
- }
219
- }
220
- };
221
- cleanupRelationships = async (relationshipOriginatingItem) => {
222
- if (this.config.createRelationshipCleanupItem) {
223
- await this.config.createRelationshipCleanupItem(relationshipOriginatingItem);
224
- }
225
- };
226
- /**
227
- * Create a new relationship between two items.
228
- * */
229
- createRelationship = async (relationshipItem) => {
230
- this.validateRelationshipItem(relationshipItem);
231
- const { allowed: createAllowed, denied: createDenied } = this.getRelationshipDACValidation(relationshipItem, TypeInfoORM_1.RelationshipOperation.SET);
232
- if (createDenied || !createAllowed) {
233
- throw {
234
- message: TypeInfoORM_1.TypeInfoORMServiceError.INVALID_OPERATION,
235
- relationshipItem,
236
- };
237
- }
238
- else {
239
- const cleanedItem = (0, exports.cleanRelationshipItem)(relationshipItem);
240
- const { fromTypeName, fromTypeFieldName } = cleanedItem;
241
- const { fields: { [fromTypeFieldName]: { array: relationshipIsMultiple = false } = {}, } = {}, } = this.getTypeInfo(fromTypeName);
242
- const driver = this.getRelationshipDriverInternal(fromTypeName, fromTypeFieldName);
243
- if (relationshipIsMultiple) {
244
- await driver.createItem(cleanedItem);
245
- }
246
- else {
247
- // VALIDATION: Need to update when the field is not an array.
248
- const { items: [{ [ItemRelationshipInfoTypes_1.ItemRelationshipInfoIdentifyingKeys.id]: existingIdentifier },] = [{}], } = (await driver.listItems({
249
- criteria: {
250
- logicalOperator: SearchTypes_1.LogicalOperators.AND,
251
- fieldCriteria: [
252
- {
253
- fieldName: ItemRelationshipInfoTypes_1.ItemRelationshipInfoKeys.fromTypeName,
254
- operator: SearchTypes_1.ComparisonOperators.EQUALS,
255
- value: fromTypeName,
256
- },
257
- {
258
- fieldName: ItemRelationshipInfoTypes_1.ItemRelationshipInfoKeys.fromTypeFieldName,
259
- operator: SearchTypes_1.ComparisonOperators.EQUALS,
260
- value: fromTypeFieldName,
261
- },
262
- ],
263
- },
264
- itemsPerPage: 1,
265
- }, [ItemRelationshipInfoTypes_1.ItemRelationshipInfoIdentifyingKeys.id]));
266
- if (existingIdentifier) {
267
- await driver.updateItem(existingIdentifier, cleanedItem);
268
- }
269
- else {
270
- await driver.createItem(cleanedItem);
271
- }
272
- }
273
- return true;
274
- }
275
- };
276
- /**
277
- * Delete a relationship between two items.
278
- * */
279
- deleteRelationship = async (relationshipItem) => {
280
- this.validateRelationshipItem(relationshipItem);
281
- const { allowed: deleteAllowed, denied: deleteDenied } = this.getRelationshipDACValidation(relationshipItem, TypeInfoORM_1.RelationshipOperation.UNSET);
282
- if (deleteDenied || !deleteAllowed) {
283
- throw {
284
- message: TypeInfoORM_1.TypeInfoORMServiceError.INVALID_OPERATION,
285
- relationshipItem,
286
- };
287
- }
288
- else {
289
- const cleanedItem = (0, exports.cleanRelationshipItem)(relationshipItem);
290
- const { fromTypeName, fromTypeFieldName, fromTypePrimaryFieldValue, toTypePrimaryFieldValue, } = cleanedItem;
291
- const driver = this.getRelationshipDriverInternal(fromTypeName, fromTypeFieldName);
292
- const { items: itemList = [], cursor } = (await driver.listItems({
293
- criteria: {
294
- logicalOperator: SearchTypes_1.LogicalOperators.AND,
295
- fieldCriteria: [
296
- {
297
- fieldName: ItemRelationshipInfoTypes_1.ItemRelationshipInfoKeys.fromTypeName,
298
- operator: SearchTypes_1.ComparisonOperators.EQUALS,
299
- value: fromTypeName,
300
- },
301
- {
302
- fieldName: ItemRelationshipInfoTypes_1.ItemRelationshipInfoKeys.fromTypePrimaryFieldValue,
303
- operator: SearchTypes_1.ComparisonOperators.EQUALS,
304
- value: fromTypePrimaryFieldValue,
305
- },
306
- {
307
- fieldName: ItemRelationshipInfoTypes_1.ItemRelationshipInfoKeys.fromTypeFieldName,
308
- operator: SearchTypes_1.ComparisonOperators.EQUALS,
309
- value: fromTypeFieldName,
310
- },
311
- {
312
- fieldName: ItemRelationshipInfoTypes_1.ItemRelationshipInfoKeys.toTypePrimaryFieldValue,
313
- operator: SearchTypes_1.ComparisonOperators.EQUALS,
314
- value: toTypePrimaryFieldValue,
315
- },
316
- ],
317
- },
318
- }));
319
- for (const item of itemList) {
320
- const { id: itemId } = item;
321
- await driver.deleteItem(itemId);
322
- }
323
- return {
324
- success: true,
325
- remainingItemsExist: !!cursor,
326
- };
327
- }
328
- };
329
- /**
330
- * List the relationships for a given item.
331
- * */
332
- listRelationships = async (config) => {
333
- const { useDAC } = this.config;
334
- const { relationshipItemOrigin, ...remainingConfig } = config;
335
- this.validateRelationshipItem(relationshipItemOrigin);
336
- const { fromTypeName, fromTypeFieldName, fromTypePrimaryFieldValue } = relationshipItemOrigin;
337
- const driver = this.getRelationshipDriverInternal(fromTypeName, fromTypeFieldName);
338
- const results = await driver.listItems({
339
- ...remainingConfig,
340
- criteria: {
341
- logicalOperator: SearchTypes_1.LogicalOperators.AND,
342
- fieldCriteria: [
343
- {
344
- fieldName: ItemRelationshipInfoTypes_1.ItemRelationshipInfoKeys.fromTypeName,
345
- operator: SearchTypes_1.ComparisonOperators.EQUALS,
346
- value: fromTypeName,
347
- },
348
- {
349
- fieldName: ItemRelationshipInfoTypes_1.ItemRelationshipInfoKeys.fromTypeFieldName,
350
- operator: SearchTypes_1.ComparisonOperators.EQUALS,
351
- value: fromTypeFieldName,
352
- },
353
- {
354
- fieldName: ItemRelationshipInfoTypes_1.ItemRelationshipInfoKeys.fromTypePrimaryFieldValue,
355
- operator: SearchTypes_1.ComparisonOperators.EQUALS,
356
- value: fromTypePrimaryFieldValue,
357
- },
358
- ],
359
- },
360
- });
361
- if (useDAC) {
362
- const { items = [], cursor: nextCursor } = results;
363
- const revisedItems = [];
364
- for (const rItm of items) {
365
- const { allowed: readAllowed, denied: readDenied } = this.getRelationshipDACValidation(rItm, TypeInfoORM_1.RelationshipOperation.GET);
366
- const listDenied = readDenied || !readAllowed;
367
- if (!listDenied) {
368
- revisedItems.push(rItm);
369
- }
370
- }
371
- return {
372
- items: revisedItems,
373
- cursor: nextCursor,
374
- };
375
- }
376
- else {
377
- return results;
378
- }
379
- };
380
- listRelatedItems = async (config, selectedFields) => {
381
- const { relationshipItemOrigin: { fromTypeName, fromTypeFieldName }, } = config;
382
- const { fields: { [fromTypeFieldName]: { typeReference = undefined, } = {}, } = {}, } = this.getTypeInfo(fromTypeName);
383
- const targetTypeInfo = typeof typeReference === "string"
384
- ? this.getTypeInfo(typeReference)
385
- : undefined;
386
- if (typeof typeReference === "string" &&
387
- typeof targetTypeInfo !== "undefined") {
388
- const { cursor, items: relationshipItems = [] } = await this.listRelationships(config);
389
- const items = [];
390
- for (const rItm of relationshipItems) {
391
- const { toTypePrimaryFieldValue } = rItm;
392
- const itm = await this.read(typeReference, toTypePrimaryFieldValue, selectedFields);
393
- items.push(itm);
394
- }
395
- return {
396
- items,
397
- cursor,
398
- };
399
- }
400
- else {
401
- throw new Error(TypeInfoORM_1.TypeInfoORMServiceError.INVALID_RELATIONSHIP);
402
- }
403
- };
404
- /**
405
- * Create a new item of the given type.
406
- * */
407
- create = async (typeName, item) => {
408
- this.validate(typeName, item, TypeInfo_1.TypeOperation.CREATE);
409
- const { allowed: createAllowed, denied: createDenied, fieldsResources = {}, } = this.getItemDACValidation(item, typeName, TypeInfo_1.TypeOperation.CREATE);
410
- if (createDenied || !createAllowed) {
411
- throw {
412
- message: TypeInfoORM_1.TypeInfoORMServiceError.INVALID_OPERATION,
413
- typeName,
414
- item,
415
- };
416
- }
417
- else {
418
- const driver = this.getDriverInternal(typeName);
419
- const cleanItem = this.getCleanItem(typeName, item, fieldsResources);
420
- const newIdentifier = await driver.createItem(cleanItem);
421
- return newIdentifier;
422
- }
423
- };
424
- /**
425
- * Read an existing item of the given type.
426
- * */
427
- read = async (typeName, primaryFieldValue, selectedFields) => {
428
- const cleanSelectedFields = this.getCleanSelectedFields(typeName, selectedFields);
429
- this.validateReadOperation(typeName, cleanSelectedFields);
430
- const { useDAC } = this.config;
431
- const driver = this.getDriverInternal(typeName);
432
- const item = await driver.readItem(primaryFieldValue,
433
- // SECURITY: Dac validation could fail when `item` is missing unselected fields.
434
- // CANNOT pass selected fields to `driver` when DAC is enabled.
435
- useDAC ? undefined : cleanSelectedFields);
436
- const { allowed: readAllowed, denied: readDenied, fieldsResources = {}, } = this.getItemDACValidation(item, typeName, TypeInfo_1.TypeOperation.READ);
437
- if (readDenied || !readAllowed) {
438
- throw {
439
- message: TypeInfoORM_1.TypeInfoORMServiceError.INVALID_OPERATION,
440
- typeName,
441
- primaryFieldValue,
442
- selectedFields,
443
- };
444
- }
445
- else {
446
- const cleanItem = this.getCleanItem(typeName, item, fieldsResources, cleanSelectedFields);
447
- return cleanItem;
448
- }
449
- };
450
- /**
451
- * Update an existing item of the given type.
452
- *
453
- * This update will always act as a **patch**.
454
- * Use `null` to signify the deletion of a field.
455
- * Assign values to **all** fields to perform a **replacement**.
456
- *
457
- * The `item` **must always** contain its **primary field value**.
458
- * */
459
- update = async (typeName, item) => {
460
- this.validate(typeName, item, TypeInfo_1.TypeOperation.UPDATE, true);
461
- const { primaryField } = this.getTypeInfo(typeName);
462
- const primaryFieldValue = typeof item === "object" && item !== null
463
- ? item[primaryField]
464
- : undefined;
465
- if (typeof primaryFieldValue === "undefined") {
466
- const validationResults = {
467
- typeName,
468
- valid: false,
469
- error: TypeInfoORM_1.TypeInfoORMServiceError.NO_PRIMARY_FIELD_VALUE_SUPPLIED,
470
- errorMap: {},
471
- };
472
- throw validationResults;
473
- }
474
- else {
475
- const driver = this.getDriverInternal(typeName);
476
- const initialCleanItem = this.getCleanItem(typeName, item, {});
477
- const { allowed: updateAllowed, denied: updateDenied, fieldsResources = {}, } = this.getItemDACValidation(initialCleanItem, typeName, TypeInfo_1.TypeOperation.UPDATE);
478
- if (updateDenied || !updateAllowed) {
479
- throw {
480
- message: TypeInfoORM_1.TypeInfoORMServiceError.INVALID_OPERATION,
481
- typeName,
482
- item,
483
- };
484
- }
485
- else {
486
- // SECURITY: Update could potentially delete fields. Use `fieldsResources` from `TypeOperation.DELETE` to prevent this issue.
487
- const { fieldsResources: fieldsResourcesForDeleteOperation = {} } = this.getItemDACValidation(initialCleanItem, typeName, TypeInfo_1.TypeOperation.DELETE);
488
- const fieldsResourcesForUpdateOperationForNullFields = Object.keys(initialCleanItem).reduce((acc, fN) => ({
489
- ...acc,
490
- // TRICKY: Remove delete fields for fields not being deleted.
491
- ...(initialCleanItem[fN] === null
492
- ? {
493
- [fN]: fieldsResourcesForDeleteOperation[fN],
494
- }
495
- : undefined),
496
- }), {});
497
- const { fieldsResources: mergedFieldsResources = {} } = (0, DACUtils_1.mergeDACDataItemResourceAccessResultMaps)({
498
- allowed: true,
499
- denied: false,
500
- fieldsResources,
501
- }, {
502
- allowed: true,
503
- denied: false,
504
- fieldsResources: fieldsResourcesForUpdateOperationForNullFields,
505
- });
506
- const cleanItem = this.getCleanItem(typeName, item, mergedFieldsResources);
507
- const result = await driver.updateItem(primaryFieldValue, cleanItem);
508
- return result;
509
- }
510
- }
511
- };
512
- /**
513
- * Delete an existing item of the given type.
514
- * */
515
- delete = async (typeName, primaryFieldValue) => {
516
- const { useDAC } = this.config;
517
- const { primaryField } = this.getTypeInfo(typeName);
518
- const itemWithPrimaryFieldOnly = {
519
- [primaryField]: primaryFieldValue,
520
- };
521
- this.validate(typeName, itemWithPrimaryFieldOnly, TypeInfo_1.TypeOperation.DELETE);
522
- const driver = this.getDriverInternal(typeName);
523
- const existingItem =
524
- // SECURITY: Dac validation could fail when `item` is missing unselected fields.
525
- useDAC
526
- ? await driver.readItem(primaryFieldValue)
527
- : itemWithPrimaryFieldOnly;
528
- const { allowed: deleteAllowed, denied: deleteDenied } = this.getItemDACValidation(existingItem, typeName, TypeInfo_1.TypeOperation.DELETE);
529
- if (deleteDenied || !deleteAllowed) {
530
- throw {
531
- message: TypeInfoORM_1.TypeInfoORMServiceError.INVALID_OPERATION,
532
- typeName,
533
- primaryFieldValue,
534
- };
535
- }
536
- else {
537
- const result = await driver.deleteItem(primaryFieldValue);
538
- await this.cleanupRelationships({
539
- fromTypeName: typeName,
540
- fromTypePrimaryFieldValue: primaryFieldValue,
541
- });
542
- return result;
543
- }
544
- };
545
- /**
546
- * List items of the given type, with the given criteria.
547
- * */
548
- list = async (typeName, config, selectedFields) => {
549
- const cleanSelectedFields = this.getCleanSelectedFields(typeName, selectedFields);
550
- this.validateReadOperation(typeName, cleanSelectedFields);
551
- const { typeInfoMap, useDAC } = this.config;
552
- const typeInfo = this.getTypeInfo(typeName);
553
- const { fields: {} = {} } = typeInfo;
554
- const { criteria } = config;
555
- const { fieldCriteria = [] } = criteria || {};
556
- const searchFieldValidationResults = (0, SearchValidation_1.validateSearchFields)(typeName, typeInfoMap, fieldCriteria, true);
557
- const { valid: searchFieldsValid } = searchFieldValidationResults;
558
- if (searchFieldsValid) {
559
- const driver = this.getDriverInternal(typeName);
560
- const fieldsResourcesCache = [];
561
- const results = await (0, ListItemUtils_1.executeDriverListItems)(driver, config, useDAC
562
- ? (item) => {
563
- const { allowed: readAllowed, denied: readDenied, fieldsResources = {}, } = this.getItemDACValidation(item, typeName, TypeInfo_1.TypeOperation.READ);
564
- const listDenied = readDenied || !readAllowed;
565
- if (!listDenied) {
566
- fieldsResourcesCache.push(fieldsResources);
567
- }
568
- return !listDenied;
569
- }
570
- : undefined, (item) => {
571
- const fieldsResources = fieldsResourcesCache[fieldsResourcesCache.length - 1];
572
- return this.getCleanItem(typeName, item, fieldsResources, cleanSelectedFields);
573
- }, cleanSelectedFields);
574
- return results;
575
- }
576
- else {
577
- throw searchFieldValidationResults;
578
- }
579
- };
580
- }
581
- exports.TypeInfoORMService = TypeInfoORMService;
@@ -1,63 +0,0 @@
1
- export type Trace = (...content: any[]) => void;
2
- export type Logger = {
3
- trace?: string | Trace;
4
- debug: Trace;
5
- info: Trace;
6
- warn: Trace;
7
- error: Trace;
8
- };
9
- export type Endpoint = {
10
- protocol: string;
11
- hostname: string;
12
- port?: string;
13
- path: string;
14
- query?: string;
15
- };
16
- export type RetryStrategy = {
17
- mode?: string;
18
- retry: any;
19
- };
20
- export type DynamoDBSpecificConfig = {
21
- requestHandler?: string;
22
- apiVersion?: string;
23
- sha256?: string;
24
- urlParser?: string;
25
- bodyLengthChecker?: string;
26
- streamCollector?: string;
27
- base64Decoder?: string;
28
- base64Encoder?: string;
29
- utf8Decoder?: string;
30
- utf8Encoder?: string;
31
- runtime?: string;
32
- disableHostPrefix?: string | false | true;
33
- serviceId?: string;
34
- useDualstackEndpoint?: string | false | true;
35
- useFipsEndpoint?: string | false | true;
36
- defaultUserAgentProvider?: string;
37
- region?: string;
38
- credentialDefaultProvider?: string;
39
- maxAttempts?: string;
40
- retryMode?: string;
41
- logger?: string | Logger;
42
- extensions?: string;
43
- /**
44
- * @allowCustomSelection
45
- * */
46
- defaultsMode?: "standard" | "in-region" | "cross-region" | "mobile" | "auto" | "legacy";
47
- endpointDiscoveryEnabledProvider?: string;
48
- endpoint?: string | Endpoint;
49
- endpointProvider?: string;
50
- tls?: string | false | true;
51
- retryStrategy?: string | RetryStrategy;
52
- customUserAgent?: string;
53
- httpAuthSchemes?: string;
54
- httpAuthSchemeProvider?: string;
55
- credentials?: string;
56
- signer?: string;
57
- signingEscapePath?: string | false | true;
58
- systemClockOffset?: string;
59
- signingRegion?: string;
60
- signerConstructor?: string;
61
- endpointCacheSize?: string;
62
- endpointDiscoveryEnabled?: string | false | true;
63
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,36 +0,0 @@
1
- import { DataItemDBDriver, DataItemDBDriverConfig, SupportedDataItemDBDriverEntry } from "./common";
2
- import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
3
- import { TypeInfoDataItem } from "../../../common/TypeParsing/TypeInfo";
4
- import { ListItemsConfig, ListItemsResults } from "../../../common/SearchTypes";
5
- /**
6
- * A {@link DataItemDBDriver} that uses DynamoDB as its database.
7
- * */
8
- export declare class DynamoDBDataItemDBDriver<ItemType extends TypeInfoDataItem, UniquelyIdentifyingFieldName extends keyof ItemType> implements DataItemDBDriver<ItemType, UniquelyIdentifyingFieldName> {
9
- protected config: DataItemDBDriverConfig<ItemType, UniquelyIdentifyingFieldName>;
10
- protected dynamoDBClient: DynamoDBClient;
11
- constructor(config: DataItemDBDriverConfig<ItemType, UniquelyIdentifyingFieldName>);
12
- /**
13
- * Create an item in the database.
14
- */
15
- createItem: (newItem: Partial<Omit<ItemType, UniquelyIdentifyingFieldName>>) => Promise<ItemType[UniquelyIdentifyingFieldName]>;
16
- /**
17
- * Read an item from the database.
18
- */
19
- readItem: (uniqueIdentifier: ItemType[UniquelyIdentifyingFieldName], selectedFields?: (keyof ItemType)[]) => Promise<Partial<ItemType>>;
20
- /**
21
- * Update an item in the database.
22
- */
23
- updateItem: (uniqueIdentifier: ItemType[UniquelyIdentifyingFieldName], updatedItem: Partial<ItemType>) => Promise<boolean>;
24
- /**
25
- * Delete an item from the database.
26
- */
27
- deleteItem: (uniqueIdentifier: ItemType[UniquelyIdentifyingFieldName]) => Promise<boolean>;
28
- /**
29
- * List items from the database.
30
- */
31
- listItems: (config: ListItemsConfig, selectedFields?: (keyof ItemType)[]) => Promise<ListItemsResults<ItemType>>;
32
- }
33
- /**
34
- * The supported DB driver entry for the DynamoDB {@link DataItemDBDriver}.
35
- * */
36
- export declare const DynamoDBSupportedDataItemDBDriverEntry: SupportedDataItemDBDriverEntry;