@alpha.consultings/eloquent-orm.js 1.0.1

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 (487) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/README.md +215 -0
  3. package/dist/Model.d.ts +2 -0
  4. package/dist/Model.d.ts.map +1 -0
  5. package/dist/Model.js +7 -0
  6. package/dist/Model.js.map +1 -0
  7. package/dist/cli/commands/cacheClear.d.ts +2 -0
  8. package/dist/cli/commands/cacheClear.d.ts.map +1 -0
  9. package/dist/cli/commands/cacheClear.js +69 -0
  10. package/dist/cli/commands/cacheClear.js.map +1 -0
  11. package/dist/cli/commands/cacheStats.d.ts +2 -0
  12. package/dist/cli/commands/cacheStats.d.ts.map +1 -0
  13. package/dist/cli/commands/cacheStats.js +55 -0
  14. package/dist/cli/commands/cacheStats.js.map +1 -0
  15. package/dist/cli/commands/dbSeed.d.ts +16 -0
  16. package/dist/cli/commands/dbSeed.d.ts.map +1 -0
  17. package/dist/cli/commands/dbSeed.js +201 -0
  18. package/dist/cli/commands/dbSeed.js.map +1 -0
  19. package/dist/cli/commands/dbSeedBootstrapPrecheck.d.ts +3 -0
  20. package/dist/cli/commands/dbSeedBootstrapPrecheck.d.ts.map +1 -0
  21. package/dist/cli/commands/dbSeedBootstrapPrecheck.js +8 -0
  22. package/dist/cli/commands/dbSeedBootstrapPrecheck.js.map +1 -0
  23. package/dist/cli/commands/dbSeedFresh.d.ts +14 -0
  24. package/dist/cli/commands/dbSeedFresh.d.ts.map +1 -0
  25. package/dist/cli/commands/dbSeedFresh.js +81 -0
  26. package/dist/cli/commands/dbSeedFresh.js.map +1 -0
  27. package/dist/cli/commands/demoScenario.d.ts +9 -0
  28. package/dist/cli/commands/demoScenario.d.ts.map +1 -0
  29. package/dist/cli/commands/demoScenario.js +185 -0
  30. package/dist/cli/commands/demoScenario.js.map +1 -0
  31. package/dist/cli/commands/factoryStatus.d.ts +9 -0
  32. package/dist/cli/commands/factoryStatus.d.ts.map +1 -0
  33. package/dist/cli/commands/factoryStatus.js +103 -0
  34. package/dist/cli/commands/factoryStatus.js.map +1 -0
  35. package/dist/cli/commands/makeController.d.ts +11 -0
  36. package/dist/cli/commands/makeController.d.ts.map +1 -0
  37. package/dist/cli/commands/makeController.js +61 -0
  38. package/dist/cli/commands/makeController.js.map +1 -0
  39. package/dist/cli/commands/makeFactory.d.ts +14 -0
  40. package/dist/cli/commands/makeFactory.d.ts.map +1 -0
  41. package/dist/cli/commands/makeFactory.js +183 -0
  42. package/dist/cli/commands/makeFactory.js.map +1 -0
  43. package/dist/cli/commands/makeMigration.d.ts +18 -0
  44. package/dist/cli/commands/makeMigration.d.ts.map +1 -0
  45. package/dist/cli/commands/makeMigration.js +496 -0
  46. package/dist/cli/commands/makeMigration.js.map +1 -0
  47. package/dist/cli/commands/makeModel.d.ts +20 -0
  48. package/dist/cli/commands/makeModel.d.ts.map +1 -0
  49. package/dist/cli/commands/makeModel.js +360 -0
  50. package/dist/cli/commands/makeModel.js.map +1 -0
  51. package/dist/cli/commands/makeRegistry.d.ts +7 -0
  52. package/dist/cli/commands/makeRegistry.d.ts.map +1 -0
  53. package/dist/cli/commands/makeRegistry.js +88 -0
  54. package/dist/cli/commands/makeRegistry.js.map +1 -0
  55. package/dist/cli/commands/makeScenario.d.ts +12 -0
  56. package/dist/cli/commands/makeScenario.d.ts.map +1 -0
  57. package/dist/cli/commands/makeScenario.js +639 -0
  58. package/dist/cli/commands/makeScenario.js.map +1 -0
  59. package/dist/cli/commands/makeSeed.d.ts +11 -0
  60. package/dist/cli/commands/makeSeed.d.ts.map +1 -0
  61. package/dist/cli/commands/makeSeed.js +47 -0
  62. package/dist/cli/commands/makeSeed.js.map +1 -0
  63. package/dist/cli/commands/makeService.d.ts +5 -0
  64. package/dist/cli/commands/makeService.d.ts.map +1 -0
  65. package/dist/cli/commands/makeService.js +31 -0
  66. package/dist/cli/commands/makeService.js.map +1 -0
  67. package/dist/cli/commands/migrateFresh.d.ts +14 -0
  68. package/dist/cli/commands/migrateFresh.d.ts.map +1 -0
  69. package/dist/cli/commands/migrateFresh.js +150 -0
  70. package/dist/cli/commands/migrateFresh.js.map +1 -0
  71. package/dist/cli/commands/migrateReset.d.ts +12 -0
  72. package/dist/cli/commands/migrateReset.d.ts.map +1 -0
  73. package/dist/cli/commands/migrateReset.js +28 -0
  74. package/dist/cli/commands/migrateReset.js.map +1 -0
  75. package/dist/cli/commands/migrateRollback.d.ts +10 -0
  76. package/dist/cli/commands/migrateRollback.d.ts.map +1 -0
  77. package/dist/cli/commands/migrateRollback.js +303 -0
  78. package/dist/cli/commands/migrateRollback.js.map +1 -0
  79. package/dist/cli/commands/migrateRun.d.ts +10 -0
  80. package/dist/cli/commands/migrateRun.d.ts.map +1 -0
  81. package/dist/cli/commands/migrateRun.js +301 -0
  82. package/dist/cli/commands/migrateRun.js.map +1 -0
  83. package/dist/cli/commands/migrateStatus.d.ts +8 -0
  84. package/dist/cli/commands/migrateStatus.d.ts.map +1 -0
  85. package/dist/cli/commands/migrateStatus.js +118 -0
  86. package/dist/cli/commands/migrateStatus.js.map +1 -0
  87. package/dist/cli/eloquent.d.ts +18 -0
  88. package/dist/cli/eloquent.d.ts.map +1 -0
  89. package/dist/cli/eloquent.js +187 -0
  90. package/dist/cli/eloquent.js.map +1 -0
  91. package/dist/cli/utils/ArtifactCompatibility.d.ts +10 -0
  92. package/dist/cli/utils/ArtifactCompatibility.d.ts.map +1 -0
  93. package/dist/cli/utils/ArtifactCompatibility.js +60 -0
  94. package/dist/cli/utils/ArtifactCompatibility.js.map +1 -0
  95. package/dist/cli/utils/ArtifactRoutingReport.d.ts +10 -0
  96. package/dist/cli/utils/ArtifactRoutingReport.d.ts.map +1 -0
  97. package/dist/cli/utils/ArtifactRoutingReport.js +25 -0
  98. package/dist/cli/utils/ArtifactRoutingReport.js.map +1 -0
  99. package/dist/cli/utils/ArtifactStorage.d.ts +10 -0
  100. package/dist/cli/utils/ArtifactStorage.d.ts.map +1 -0
  101. package/dist/cli/utils/ArtifactStorage.js +193 -0
  102. package/dist/cli/utils/ArtifactStorage.js.map +1 -0
  103. package/dist/cli/utils/AuditTrail.d.ts +25 -0
  104. package/dist/cli/utils/AuditTrail.d.ts.map +1 -0
  105. package/dist/cli/utils/AuditTrail.js +74 -0
  106. package/dist/cli/utils/AuditTrail.js.map +1 -0
  107. package/dist/cli/utils/CliActionRuntime.d.ts +5 -0
  108. package/dist/cli/utils/CliActionRuntime.d.ts.map +1 -0
  109. package/dist/cli/utils/CliActionRuntime.js +22 -0
  110. package/dist/cli/utils/CliActionRuntime.js.map +1 -0
  111. package/dist/cli/utils/CliBootstrapSupport.d.ts +13 -0
  112. package/dist/cli/utils/CliBootstrapSupport.d.ts.map +1 -0
  113. package/dist/cli/utils/CliBootstrapSupport.js +55 -0
  114. package/dist/cli/utils/CliBootstrapSupport.js.map +1 -0
  115. package/dist/cli/utils/CliCommandCatalog.d.ts +6 -0
  116. package/dist/cli/utils/CliCommandCatalog.d.ts.map +1 -0
  117. package/dist/cli/utils/CliCommandCatalog.js +78 -0
  118. package/dist/cli/utils/CliCommandCatalog.js.map +1 -0
  119. package/dist/cli/utils/CliCommandTargets.d.ts +8 -0
  120. package/dist/cli/utils/CliCommandTargets.d.ts.map +1 -0
  121. package/dist/cli/utils/CliCommandTargets.js +19 -0
  122. package/dist/cli/utils/CliCommandTargets.js.map +1 -0
  123. package/dist/cli/utils/CliMakeArtifactCommandRegistration.d.ts +3 -0
  124. package/dist/cli/utils/CliMakeArtifactCommandRegistration.d.ts.map +1 -0
  125. package/dist/cli/utils/CliMakeArtifactCommandRegistration.js +94 -0
  126. package/dist/cli/utils/CliMakeArtifactCommandRegistration.js.map +1 -0
  127. package/dist/cli/utils/CliMigrationCommandRegistration.d.ts +3 -0
  128. package/dist/cli/utils/CliMigrationCommandRegistration.d.ts.map +1 -0
  129. package/dist/cli/utils/CliMigrationCommandRegistration.js +195 -0
  130. package/dist/cli/utils/CliMigrationCommandRegistration.js.map +1 -0
  131. package/dist/cli/utils/CliPresentation.d.ts +2 -0
  132. package/dist/cli/utils/CliPresentation.d.ts.map +1 -0
  133. package/dist/cli/utils/CliPresentation.js +13 -0
  134. package/dist/cli/utils/CliPresentation.js.map +1 -0
  135. package/dist/cli/utils/CliProductionGuards.d.ts +11 -0
  136. package/dist/cli/utils/CliProductionGuards.d.ts.map +1 -0
  137. package/dist/cli/utils/CliProductionGuards.js +34 -0
  138. package/dist/cli/utils/CliProductionGuards.js.map +1 -0
  139. package/dist/cli/utils/CliScaffoldCommandRegistration.d.ts +3 -0
  140. package/dist/cli/utils/CliScaffoldCommandRegistration.d.ts.map +1 -0
  141. package/dist/cli/utils/CliScaffoldCommandRegistration.js +89 -0
  142. package/dist/cli/utils/CliScaffoldCommandRegistration.js.map +1 -0
  143. package/dist/cli/utils/CliSeedScenarioCommandRegistration.d.ts +3 -0
  144. package/dist/cli/utils/CliSeedScenarioCommandRegistration.d.ts.map +1 -0
  145. package/dist/cli/utils/CliSeedScenarioCommandRegistration.js +123 -0
  146. package/dist/cli/utils/CliSeedScenarioCommandRegistration.js.map +1 -0
  147. package/dist/cli/utils/CliSupportCommandRegistration.d.ts +3 -0
  148. package/dist/cli/utils/CliSupportCommandRegistration.d.ts.map +1 -0
  149. package/dist/cli/utils/CliSupportCommandRegistration.js +44 -0
  150. package/dist/cli/utils/CliSupportCommandRegistration.js.map +1 -0
  151. package/dist/cli/utils/ConsoleSilencer.d.ts +6 -0
  152. package/dist/cli/utils/ConsoleSilencer.d.ts.map +1 -0
  153. package/dist/cli/utils/ConsoleSilencer.js +25 -0
  154. package/dist/cli/utils/ConsoleSilencer.js.map +1 -0
  155. package/dist/cli/utils/ImportResolver.d.ts +16 -0
  156. package/dist/cli/utils/ImportResolver.d.ts.map +1 -0
  157. package/dist/cli/utils/ImportResolver.js +57 -0
  158. package/dist/cli/utils/ImportResolver.js.map +1 -0
  159. package/dist/cli/utils/ModelIntrospector.d.ts +33 -0
  160. package/dist/cli/utils/ModelIntrospector.d.ts.map +1 -0
  161. package/dist/cli/utils/ModelIntrospector.js +76 -0
  162. package/dist/cli/utils/ModelIntrospector.js.map +1 -0
  163. package/dist/cli/utils/PathMap.d.ts +58 -0
  164. package/dist/cli/utils/PathMap.d.ts.map +1 -0
  165. package/dist/cli/utils/PathMap.js +132 -0
  166. package/dist/cli/utils/PathMap.js.map +1 -0
  167. package/dist/cli/utils/ProductionSafety.d.ts +25 -0
  168. package/dist/cli/utils/ProductionSafety.d.ts.map +1 -0
  169. package/dist/cli/utils/ProductionSafety.js +61 -0
  170. package/dist/cli/utils/ProductionSafety.js.map +1 -0
  171. package/dist/cli/utils/ScaffoldGeneratorSupport.d.ts +16 -0
  172. package/dist/cli/utils/ScaffoldGeneratorSupport.d.ts.map +1 -0
  173. package/dist/cli/utils/ScaffoldGeneratorSupport.js +66 -0
  174. package/dist/cli/utils/ScaffoldGeneratorSupport.js.map +1 -0
  175. package/dist/cli/utils/ScenarioMorphAliasRouting.d.ts +14 -0
  176. package/dist/cli/utils/ScenarioMorphAliasRouting.d.ts.map +1 -0
  177. package/dist/cli/utils/ScenarioMorphAliasRouting.js +62 -0
  178. package/dist/cli/utils/ScenarioMorphAliasRouting.js.map +1 -0
  179. package/dist/cli/utils/SeedBootstrapPrecheck.d.ts +20 -0
  180. package/dist/cli/utils/SeedBootstrapPrecheck.d.ts.map +1 -0
  181. package/dist/cli/utils/SeedBootstrapPrecheck.js +133 -0
  182. package/dist/cli/utils/SeedBootstrapPrecheck.js.map +1 -0
  183. package/dist/cli/utils/StructuredLogger.d.ts +11 -0
  184. package/dist/cli/utils/StructuredLogger.d.ts.map +1 -0
  185. package/dist/cli/utils/StructuredLogger.js +53 -0
  186. package/dist/cli/utils/StructuredLogger.js.map +1 -0
  187. package/dist/cli/utils/TemplateEngine.d.ts +30 -0
  188. package/dist/cli/utils/TemplateEngine.d.ts.map +1 -0
  189. package/dist/cli/utils/TemplateEngine.js +165 -0
  190. package/dist/cli/utils/TemplateEngine.js.map +1 -0
  191. package/dist/cli/utils/factories/Factory.d.ts +61 -0
  192. package/dist/cli/utils/factories/Factory.d.ts.map +1 -0
  193. package/dist/cli/utils/factories/Factory.js +140 -0
  194. package/dist/cli/utils/factories/Factory.js.map +1 -0
  195. package/dist/cli/utils/factories/FactoryDisplay.d.ts +6 -0
  196. package/dist/cli/utils/factories/FactoryDisplay.d.ts.map +1 -0
  197. package/dist/cli/utils/factories/FactoryDisplay.js +26 -0
  198. package/dist/cli/utils/factories/FactoryDisplay.js.map +1 -0
  199. package/dist/cli/utils/factories/FactoryGraph.d.ts +6 -0
  200. package/dist/cli/utils/factories/FactoryGraph.d.ts.map +1 -0
  201. package/dist/cli/utils/factories/FactoryGraph.js +72 -0
  202. package/dist/cli/utils/factories/FactoryGraph.js.map +1 -0
  203. package/dist/cli/utils/factories/FactoryLoader.d.ts +16 -0
  204. package/dist/cli/utils/factories/FactoryLoader.d.ts.map +1 -0
  205. package/dist/cli/utils/factories/FactoryLoader.js +35 -0
  206. package/dist/cli/utils/factories/FactoryLoader.js.map +1 -0
  207. package/dist/cli/utils/factories/FactoryRegistry.d.ts +16 -0
  208. package/dist/cli/utils/factories/FactoryRegistry.d.ts.map +1 -0
  209. package/dist/cli/utils/factories/FactoryRegistry.js +87 -0
  210. package/dist/cli/utils/factories/FactoryRegistry.js.map +1 -0
  211. package/dist/cli/utils/fileWriter.d.ts +7 -0
  212. package/dist/cli/utils/fileWriter.d.ts.map +1 -0
  213. package/dist/cli/utils/fileWriter.js +61 -0
  214. package/dist/cli/utils/fileWriter.js.map +1 -0
  215. package/dist/cli/utils/migrations/MigrationLockStrategy.d.ts +21 -0
  216. package/dist/cli/utils/migrations/MigrationLockStrategy.d.ts.map +1 -0
  217. package/dist/cli/utils/migrations/MigrationLockStrategy.js +129 -0
  218. package/dist/cli/utils/migrations/MigrationLockStrategy.js.map +1 -0
  219. package/dist/cli/utils/migrations/MigrationTracker.d.ts +25 -0
  220. package/dist/cli/utils/migrations/MigrationTracker.d.ts.map +1 -0
  221. package/dist/cli/utils/migrations/MigrationTracker.js +279 -0
  222. package/dist/cli/utils/migrations/MigrationTracker.js.map +1 -0
  223. package/dist/cli/utils/migrations/MongoMigrationTracker.d.ts +18 -0
  224. package/dist/cli/utils/migrations/MongoMigrationTracker.d.ts.map +1 -0
  225. package/dist/cli/utils/migrations/MongoMigrationTracker.js +276 -0
  226. package/dist/cli/utils/migrations/MongoMigrationTracker.js.map +1 -0
  227. package/dist/cli/utils/resolveConnectionFlags.d.ts +14 -0
  228. package/dist/cli/utils/resolveConnectionFlags.d.ts.map +1 -0
  229. package/dist/cli/utils/resolveConnectionFlags.js +42 -0
  230. package/dist/cli/utils/resolveConnectionFlags.js.map +1 -0
  231. package/dist/cli/utils/resolveSqlConnectionFlags.d.ts +9 -0
  232. package/dist/cli/utils/resolveSqlConnectionFlags.d.ts.map +1 -0
  233. package/dist/cli/utils/resolveSqlConnectionFlags.js +23 -0
  234. package/dist/cli/utils/resolveSqlConnectionFlags.js.map +1 -0
  235. package/dist/cli/utils/typescript/BaseCommand.d.ts +15 -0
  236. package/dist/cli/utils/typescript/BaseCommand.d.ts.map +1 -0
  237. package/dist/cli/utils/typescript/BaseCommand.js +36 -0
  238. package/dist/cli/utils/typescript/BaseCommand.js.map +1 -0
  239. package/dist/cli/utils/typescript/RuntimeDetector.d.ts +16 -0
  240. package/dist/cli/utils/typescript/RuntimeDetector.d.ts.map +1 -0
  241. package/dist/cli/utils/typescript/RuntimeDetector.js +45 -0
  242. package/dist/cli/utils/typescript/RuntimeDetector.js.map +1 -0
  243. package/dist/cli/utils/typescript/TypeScriptCompiler.d.ts +25 -0
  244. package/dist/cli/utils/typescript/TypeScriptCompiler.d.ts.map +1 -0
  245. package/dist/cli/utils/typescript/TypeScriptCompiler.js +109 -0
  246. package/dist/cli/utils/typescript/TypeScriptCompiler.js.map +1 -0
  247. package/dist/cli/utils/typescript/tsRuntime.d.ts +12 -0
  248. package/dist/cli/utils/typescript/tsRuntime.d.ts.map +1 -0
  249. package/dist/cli/utils/typescript/tsRuntime.js +189 -0
  250. package/dist/cli/utils/typescript/tsRuntime.js.map +1 -0
  251. package/dist/config/database.d.ts +58 -0
  252. package/dist/config/database.d.ts.map +1 -0
  253. package/dist/config/database.js +106 -0
  254. package/dist/config/database.js.map +1 -0
  255. package/dist/config/dbRoleEnv.d.ts +31 -0
  256. package/dist/config/dbRoleEnv.d.ts.map +1 -0
  257. package/dist/config/dbRoleEnv.js +171 -0
  258. package/dist/config/dbRoleEnv.js.map +1 -0
  259. package/dist/core/cache/CacheAnalytics.d.ts +47 -0
  260. package/dist/core/cache/CacheAnalytics.d.ts.map +1 -0
  261. package/dist/core/cache/CacheAnalytics.js +113 -0
  262. package/dist/core/cache/CacheAnalytics.js.map +1 -0
  263. package/dist/core/cache/CacheDriver.d.ts +19 -0
  264. package/dist/core/cache/CacheDriver.d.ts.map +1 -0
  265. package/dist/core/cache/CacheDriver.js +8 -0
  266. package/dist/core/cache/CacheDriver.js.map +1 -0
  267. package/dist/core/cache/CacheFallbackManager.d.ts +35 -0
  268. package/dist/core/cache/CacheFallbackManager.d.ts.map +1 -0
  269. package/dist/core/cache/CacheFallbackManager.js +118 -0
  270. package/dist/core/cache/CacheFallbackManager.js.map +1 -0
  271. package/dist/core/cache/CacheManager.d.ts +11 -0
  272. package/dist/core/cache/CacheManager.d.ts.map +1 -0
  273. package/dist/core/cache/CacheManager.js +27 -0
  274. package/dist/core/cache/CacheManager.js.map +1 -0
  275. package/dist/core/cache/CacheRegistry.d.ts +49 -0
  276. package/dist/core/cache/CacheRegistry.d.ts.map +1 -0
  277. package/dist/core/cache/CacheRegistry.js +117 -0
  278. package/dist/core/cache/CacheRegistry.js.map +1 -0
  279. package/dist/core/cache/drivers/FileCacheDriver.d.ts +11 -0
  280. package/dist/core/cache/drivers/FileCacheDriver.d.ts.map +1 -0
  281. package/dist/core/cache/drivers/FileCacheDriver.js +54 -0
  282. package/dist/core/cache/drivers/FileCacheDriver.js.map +1 -0
  283. package/dist/core/cache/drivers/MemcachedCacheDriver.d.ts +15 -0
  284. package/dist/core/cache/drivers/MemcachedCacheDriver.d.ts.map +1 -0
  285. package/dist/core/cache/drivers/MemcachedCacheDriver.js +60 -0
  286. package/dist/core/cache/drivers/MemcachedCacheDriver.js.map +1 -0
  287. package/dist/core/cache/drivers/MemoryCacheDriver.d.ts +9 -0
  288. package/dist/core/cache/drivers/MemoryCacheDriver.d.ts.map +1 -0
  289. package/dist/core/cache/drivers/MemoryCacheDriver.js +33 -0
  290. package/dist/core/cache/drivers/MemoryCacheDriver.js.map +1 -0
  291. package/dist/core/cache/setupCache.d.ts +2 -0
  292. package/dist/core/cache/setupCache.d.ts.map +1 -0
  293. package/dist/core/cache/setupCache.js +38 -0
  294. package/dist/core/cache/setupCache.js.map +1 -0
  295. package/dist/core/connection/BetterSqliteConnection.d.ts +23 -0
  296. package/dist/core/connection/BetterSqliteConnection.d.ts.map +1 -0
  297. package/dist/core/connection/BetterSqliteConnection.js +33 -0
  298. package/dist/core/connection/BetterSqliteConnection.js.map +1 -0
  299. package/dist/core/connection/ConnectionFactory.d.ts +18 -0
  300. package/dist/core/connection/ConnectionFactory.d.ts.map +1 -0
  301. package/dist/core/connection/ConnectionFactory.js +111 -0
  302. package/dist/core/connection/ConnectionFactory.js.map +1 -0
  303. package/dist/core/connection/DatabaseConnection.d.ts +49 -0
  304. package/dist/core/connection/DatabaseConnection.d.ts.map +1 -0
  305. package/dist/core/connection/DatabaseConnection.js +120 -0
  306. package/dist/core/connection/DatabaseConnection.js.map +1 -0
  307. package/dist/core/connection/DriverAdapter.d.ts +23 -0
  308. package/dist/core/connection/DriverAdapter.d.ts.map +1 -0
  309. package/dist/core/connection/DriverAdapter.js +145 -0
  310. package/dist/core/connection/DriverAdapter.js.map +1 -0
  311. package/dist/core/connection/resolveConnectionName.d.ts +17 -0
  312. package/dist/core/connection/resolveConnectionName.d.ts.map +1 -0
  313. package/dist/core/connection/resolveConnectionName.js +47 -0
  314. package/dist/core/connection/resolveConnectionName.js.map +1 -0
  315. package/dist/core/model/BaseModel.d.ts +247 -0
  316. package/dist/core/model/BaseModel.d.ts.map +1 -0
  317. package/dist/core/model/BaseModel.js +165 -0
  318. package/dist/core/model/BaseModel.js.map +1 -0
  319. package/dist/core/model/BaseModelSafeFinderStatics.d.ts +33 -0
  320. package/dist/core/model/BaseModelSafeFinderStatics.d.ts.map +1 -0
  321. package/dist/core/model/BaseModelSafeFinderStatics.js +87 -0
  322. package/dist/core/model/BaseModelSafeFinderStatics.js.map +1 -0
  323. package/dist/core/model/CoreModel.d.ts +134 -0
  324. package/dist/core/model/CoreModel.d.ts.map +1 -0
  325. package/dist/core/model/CoreModel.js +541 -0
  326. package/dist/core/model/CoreModel.js.map +1 -0
  327. package/dist/core/model/CoreModelPersistenceState.d.ts +36 -0
  328. package/dist/core/model/CoreModelPersistenceState.d.ts.map +1 -0
  329. package/dist/core/model/CoreModelPersistenceState.js +141 -0
  330. package/dist/core/model/CoreModelPersistenceState.js.map +1 -0
  331. package/dist/core/model/CoreModelSafeFinderSupport.d.ts +5 -0
  332. package/dist/core/model/CoreModelSafeFinderSupport.d.ts.map +1 -0
  333. package/dist/core/model/CoreModelSafeFinderSupport.js +15 -0
  334. package/dist/core/model/CoreModelSafeFinderSupport.js.map +1 -0
  335. package/dist/core/model/CoreModelValidationEvents.d.ts +24 -0
  336. package/dist/core/model/CoreModelValidationEvents.d.ts.map +1 -0
  337. package/dist/core/model/CoreModelValidationEvents.js +45 -0
  338. package/dist/core/model/CoreModelValidationEvents.js.map +1 -0
  339. package/dist/core/model/SafeFinder.d.ts +46 -0
  340. package/dist/core/model/SafeFinder.d.ts.map +1 -0
  341. package/dist/core/model/SafeFinder.js +223 -0
  342. package/dist/core/model/SafeFinder.js.map +1 -0
  343. package/dist/core/orm/Relation.d.ts +47 -0
  344. package/dist/core/orm/Relation.d.ts.map +1 -0
  345. package/dist/core/orm/Relation.js +62 -0
  346. package/dist/core/orm/Relation.js.map +1 -0
  347. package/dist/core/orm/mixins/CastsMixin.d.ts +18 -0
  348. package/dist/core/orm/mixins/CastsMixin.d.ts.map +1 -0
  349. package/dist/core/orm/mixins/CastsMixin.js +125 -0
  350. package/dist/core/orm/mixins/CastsMixin.js.map +1 -0
  351. package/dist/core/orm/mixins/EagerLoadingMixin.d.ts +19 -0
  352. package/dist/core/orm/mixins/EagerLoadingMixin.d.ts.map +1 -0
  353. package/dist/core/orm/mixins/EagerLoadingMixin.js +137 -0
  354. package/dist/core/orm/mixins/EagerLoadingMixin.js.map +1 -0
  355. package/dist/core/orm/mixins/HooksMixin.d.ts +16 -0
  356. package/dist/core/orm/mixins/HooksMixin.d.ts.map +1 -0
  357. package/dist/core/orm/mixins/HooksMixin.js +95 -0
  358. package/dist/core/orm/mixins/HooksMixin.js.map +1 -0
  359. package/dist/core/orm/mixins/MorphRegistry.d.ts +47 -0
  360. package/dist/core/orm/mixins/MorphRegistry.d.ts.map +1 -0
  361. package/dist/core/orm/mixins/MorphRegistry.js +67 -0
  362. package/dist/core/orm/mixins/MorphRegistry.js.map +1 -0
  363. package/dist/core/orm/mixins/MorphableMixin.d.ts +29 -0
  364. package/dist/core/orm/mixins/MorphableMixin.d.ts.map +1 -0
  365. package/dist/core/orm/mixins/MorphableMixin.js +93 -0
  366. package/dist/core/orm/mixins/MorphableMixin.js.map +1 -0
  367. package/dist/core/orm/mixins/PivotHelperMixin.d.ts +26 -0
  368. package/dist/core/orm/mixins/PivotHelperMixin.d.ts.map +1 -0
  369. package/dist/core/orm/mixins/PivotHelperMixin.js +102 -0
  370. package/dist/core/orm/mixins/PivotHelperMixin.js.map +1 -0
  371. package/dist/core/orm/mixins/QueryCacheMixin.d.ts +23 -0
  372. package/dist/core/orm/mixins/QueryCacheMixin.d.ts.map +1 -0
  373. package/dist/core/orm/mixins/QueryCacheMixin.js +172 -0
  374. package/dist/core/orm/mixins/QueryCacheMixin.js.map +1 -0
  375. package/dist/core/orm/mixins/ScopeMixin.d.ts +20 -0
  376. package/dist/core/orm/mixins/ScopeMixin.d.ts.map +1 -0
  377. package/dist/core/orm/mixins/ScopeMixin.js +72 -0
  378. package/dist/core/orm/mixins/ScopeMixin.js.map +1 -0
  379. package/dist/core/orm/mixins/SerializeMixin.d.ts +44 -0
  380. package/dist/core/orm/mixins/SerializeMixin.d.ts.map +1 -0
  381. package/dist/core/orm/mixins/SerializeMixin.js +80 -0
  382. package/dist/core/orm/mixins/SerializeMixin.js.map +1 -0
  383. package/dist/core/orm/mixins/SoftDeletesMixin.d.ts +22 -0
  384. package/dist/core/orm/mixins/SoftDeletesMixin.d.ts.map +1 -0
  385. package/dist/core/orm/mixins/SoftDeletesMixin.js +146 -0
  386. package/dist/core/orm/mixins/SoftDeletesMixin.js.map +1 -0
  387. package/dist/core/orm/mixins/utils/BaseMethodResolver.d.ts +8 -0
  388. package/dist/core/orm/mixins/utils/BaseMethodResolver.d.ts.map +1 -0
  389. package/dist/core/orm/mixins/utils/BaseMethodResolver.js +26 -0
  390. package/dist/core/orm/mixins/utils/BaseMethodResolver.js.map +1 -0
  391. package/dist/core/orm/mixins/utils/HookStore.d.ts +26 -0
  392. package/dist/core/orm/mixins/utils/HookStore.d.ts.map +1 -0
  393. package/dist/core/orm/mixins/utils/HookStore.js +78 -0
  394. package/dist/core/orm/mixins/utils/HookStore.js.map +1 -0
  395. package/dist/core/orm/mixins/utils/ModelRegistry.d.ts +33 -0
  396. package/dist/core/orm/mixins/utils/ModelRegistry.d.ts.map +1 -0
  397. package/dist/core/orm/mixins/utils/ModelRegistry.js +87 -0
  398. package/dist/core/orm/mixins/utils/ModelRegistry.js.map +1 -0
  399. package/dist/core/orm/mixins/utils/modelRegistration.d.ts +9 -0
  400. package/dist/core/orm/mixins/utils/modelRegistration.d.ts.map +1 -0
  401. package/dist/core/orm/mixins/utils/modelRegistration.js +26 -0
  402. package/dist/core/orm/mixins/utils/modelRegistration.js.map +1 -0
  403. package/dist/core/orm/relations/BelongsTo.d.ts +6 -0
  404. package/dist/core/orm/relations/BelongsTo.d.ts.map +1 -0
  405. package/dist/core/orm/relations/BelongsTo.js +70 -0
  406. package/dist/core/orm/relations/BelongsTo.js.map +1 -0
  407. package/dist/core/orm/relations/BelongsToMany.d.ts +14 -0
  408. package/dist/core/orm/relations/BelongsToMany.d.ts.map +1 -0
  409. package/dist/core/orm/relations/BelongsToMany.js +245 -0
  410. package/dist/core/orm/relations/BelongsToMany.js.map +1 -0
  411. package/dist/core/orm/relations/HasMany.d.ts +6 -0
  412. package/dist/core/orm/relations/HasMany.d.ts.map +1 -0
  413. package/dist/core/orm/relations/HasMany.js +75 -0
  414. package/dist/core/orm/relations/HasMany.js.map +1 -0
  415. package/dist/core/orm/relations/HasOne.d.ts +6 -0
  416. package/dist/core/orm/relations/HasOne.d.ts.map +1 -0
  417. package/dist/core/orm/relations/HasOne.js +71 -0
  418. package/dist/core/orm/relations/HasOne.js.map +1 -0
  419. package/dist/core/orm/relations/MorphMany.d.ts +9 -0
  420. package/dist/core/orm/relations/MorphMany.d.ts.map +1 -0
  421. package/dist/core/orm/relations/MorphMany.js +107 -0
  422. package/dist/core/orm/relations/MorphMany.js.map +1 -0
  423. package/dist/core/orm/relations/MorphOne.d.ts +9 -0
  424. package/dist/core/orm/relations/MorphOne.d.ts.map +1 -0
  425. package/dist/core/orm/relations/MorphOne.js +101 -0
  426. package/dist/core/orm/relations/MorphOne.js.map +1 -0
  427. package/dist/core/orm/relations/MorphTo.d.ts +9 -0
  428. package/dist/core/orm/relations/MorphTo.d.ts.map +1 -0
  429. package/dist/core/orm/relations/MorphTo.js +85 -0
  430. package/dist/core/orm/relations/MorphTo.js.map +1 -0
  431. package/dist/core/schema/SQLDialect.d.ts +22 -0
  432. package/dist/core/schema/SQLDialect.d.ts.map +1 -0
  433. package/dist/core/schema/SQLDialect.js +38 -0
  434. package/dist/core/schema/SQLDialect.js.map +1 -0
  435. package/dist/core/schema/SchemaBlueprint.d.ts +61 -0
  436. package/dist/core/schema/SchemaBlueprint.d.ts.map +1 -0
  437. package/dist/core/schema/SchemaBlueprint.js +62 -0
  438. package/dist/core/schema/SchemaBlueprint.js.map +1 -0
  439. package/dist/core/schema/SchemaBuilder.d.ts +29 -0
  440. package/dist/core/schema/SchemaBuilder.d.ts.map +1 -0
  441. package/dist/core/schema/SchemaBuilder.js +661 -0
  442. package/dist/core/schema/SchemaBuilder.js.map +1 -0
  443. package/dist/core/schema/SchemaValidator.d.ts +23 -0
  444. package/dist/core/schema/SchemaValidator.d.ts.map +1 -0
  445. package/dist/core/schema/SchemaValidator.js +75 -0
  446. package/dist/core/schema/SchemaValidator.js.map +1 -0
  447. package/dist/core/security/AbstractSecurity.d.ts +24 -0
  448. package/dist/core/security/AbstractSecurity.d.ts.map +1 -0
  449. package/dist/core/security/AbstractSecurity.js +58 -0
  450. package/dist/core/security/AbstractSecurity.js.map +1 -0
  451. package/dist/core/security/EnvKeySecurity.d.ts +11 -0
  452. package/dist/core/security/EnvKeySecurity.d.ts.map +1 -0
  453. package/dist/core/security/EnvKeySecurity.js +46 -0
  454. package/dist/core/security/EnvKeySecurity.js.map +1 -0
  455. package/dist/core/security/NoSecurity.d.ts +10 -0
  456. package/dist/core/security/NoSecurity.d.ts.map +1 -0
  457. package/dist/core/security/NoSecurity.js +18 -0
  458. package/dist/core/security/NoSecurity.js.map +1 -0
  459. package/dist/core/security/SecretRedactor.d.ts +4 -0
  460. package/dist/core/security/SecretRedactor.d.ts.map +1 -0
  461. package/dist/core/security/SecretRedactor.js +60 -0
  462. package/dist/core/security/SecretRedactor.js.map +1 -0
  463. package/dist/core/security/SecurityContract.d.ts +13 -0
  464. package/dist/core/security/SecurityContract.d.ts.map +1 -0
  465. package/dist/core/security/SecurityContract.js +3 -0
  466. package/dist/core/security/SecurityContract.js.map +1 -0
  467. package/dist/core/security/SecurityFactory.d.ts +9 -0
  468. package/dist/core/security/SecurityFactory.d.ts.map +1 -0
  469. package/dist/core/security/SecurityFactory.js +29 -0
  470. package/dist/core/security/SecurityFactory.js.map +1 -0
  471. package/dist/core/security/index.d.ts +6 -0
  472. package/dist/core/security/index.d.ts.map +1 -0
  473. package/dist/core/security/index.js +22 -0
  474. package/dist/core/security/index.js.map +1 -0
  475. package/dist/index.d.ts +16 -0
  476. package/dist/index.d.ts.map +1 -0
  477. package/dist/index.js +40 -0
  478. package/dist/index.js.map +1 -0
  479. package/package.json +104 -0
  480. package/src/cli/templates/controller.tpl +80 -0
  481. package/src/cli/templates/factory.tpl +14 -0
  482. package/src/cli/templates/migration.tpl +36 -0
  483. package/src/cli/templates/model-registry.tpl +16 -0
  484. package/src/cli/templates/model.tpl +95 -0
  485. package/src/cli/templates/pivot-factory.tpl +85 -0
  486. package/src/cli/templates/seed.tpl +20 -0
  487. package/src/cli/templates/service.tpl +40 -0
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MorphMany = void 0;
4
+ const Relation_1 = require("../Relation");
5
+ class MorphMany extends Relation_1.Relation {
6
+ constructor(relatedModel, morphType, morphId) {
7
+ super(relatedModel, morphId, "id");
8
+ this.morphType = morphType;
9
+ this.morphId = morphId;
10
+ }
11
+ async getResults(parent) {
12
+ const RelatedModel = this.relatedModel;
13
+ if (!RelatedModel)
14
+ throw new Error("Related model is not defined.");
15
+ const relatedInstance = new RelatedModel();
16
+ const db = await relatedInstance.getDB();
17
+ const morphTypeValue = typeof parent.getMorphClass === "function"
18
+ ? parent.getMorphClass()
19
+ : parent.constructor.name;
20
+ const parentValues = this.getMongoComparableValues(parent, this.localKey);
21
+ let rows;
22
+ if (this.isMongoDatabase(db)) {
23
+ rows = await db
24
+ .collection(relatedInstance.tableName)
25
+ .find({
26
+ ...this.buildMongoEqualityFilter(this.morphId, parentValues[0]),
27
+ [this.morphType]: morphTypeValue,
28
+ })
29
+ .toArray();
30
+ }
31
+ else {
32
+ const adapter = db;
33
+ const table = adapter.wrapId(relatedInstance.tableName);
34
+ const morphId = adapter.wrapId(this.morphId);
35
+ const morphTypeColumn = adapter.wrapId(this.morphType);
36
+ const sql = `
37
+ SELECT * FROM ${table}
38
+ WHERE ${morphId} = ${adapter.placeholder(1)} AND ${morphTypeColumn} = ${adapter.placeholder(2)}
39
+ `;
40
+ rows = await adapter.query(sql, [
41
+ parent[this.localKey],
42
+ morphTypeValue,
43
+ ]);
44
+ }
45
+ return RelatedModel.hydrateMany(rows);
46
+ }
47
+ async match(parents) {
48
+ if (!parents.length)
49
+ return;
50
+ const parentIds = parents.flatMap((p) => this.getMongoComparableValues(p, this.localKey));
51
+ const RelatedModel = this.relatedModel;
52
+ if (!RelatedModel)
53
+ throw new Error("Related model is not defined.");
54
+ const relatedInstance = new RelatedModel();
55
+ const db = await relatedInstance.getDB();
56
+ const morphTypeValue = typeof parents[0]?.getMorphClass === "function"
57
+ ? parents[0].getMorphClass()
58
+ : parents[0].constructor.name;
59
+ let rows;
60
+ if (this.isMongoDatabase(db)) {
61
+ rows = await db
62
+ .collection(relatedInstance.tableName)
63
+ .find({
64
+ ...this.buildMongoInFilter(this.morphId, parentIds),
65
+ [this.morphType]: morphTypeValue,
66
+ })
67
+ .toArray();
68
+ }
69
+ else {
70
+ const adapter = db;
71
+ const table = adapter.wrapId(relatedInstance.tableName);
72
+ const morphId = adapter.wrapId(this.morphId);
73
+ const morphTypeColumn = adapter.wrapId(this.morphType);
74
+ const inResult = adapter.inClause(morphId, parentIds, 1);
75
+ const typePlaceholder = adapter.placeholder(inResult.nextIndex);
76
+ const sql = `
77
+ SELECT * FROM ${table}
78
+ WHERE ${inResult.sql} AND ${morphTypeColumn} = ${typePlaceholder}
79
+ `;
80
+ rows = await adapter.query(sql, [
81
+ ...inResult.params,
82
+ morphTypeValue,
83
+ ]);
84
+ }
85
+ const grouped = {};
86
+ for (const row of rows) {
87
+ const instance = RelatedModel.hydrateRow(row);
88
+ if (!instance)
89
+ continue;
90
+ const record = instance;
91
+ for (const value of this.getMongoComparableValues(record, this.morphId)) {
92
+ const key = String(value);
93
+ if (!grouped[key])
94
+ grouped[key] = [];
95
+ grouped[key].push(record);
96
+ }
97
+ }
98
+ const relName = this.name ?? "relation";
99
+ for (const parent of parents) {
100
+ const keys = this.getMongoComparableValues(parent, this.localKey).map((value) => String(value));
101
+ const matched = keys.flatMap((key) => grouped[key] ?? []);
102
+ parent[relName] = matched;
103
+ }
104
+ }
105
+ }
106
+ exports.MorphMany = MorphMany;
107
+ //# sourceMappingURL=MorphMany.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MorphMany.js","sourceRoot":"","sources":["../../../../src/core/orm/relations/MorphMany.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Relation, type CoreModelClass } from "../Relation";
2
+ export declare class MorphOne extends Relation {
3
+ protected morphType: string;
4
+ protected morphId: string;
5
+ constructor(relatedModel: CoreModelClass, morphType: string, morphId: string);
6
+ getResults(parent: Record<string, unknown>): Promise<unknown>;
7
+ match(parents: Record<string, unknown>[]): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=MorphOne.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MorphOne.d.ts","sourceRoot":"","sources":["../../../../src/core/orm/relations/MorphOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAG5D,qBAAa,QAAS,SAAQ,QAAQ;IACpC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEd,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMtE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAqC7D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAuD/D"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MorphOne = void 0;
4
+ const Relation_1 = require("../Relation");
5
+ class MorphOne extends Relation_1.Relation {
6
+ constructor(relatedModel, morphType, morphId) {
7
+ super(relatedModel, morphId, "id");
8
+ this.morphType = morphType;
9
+ this.morphId = morphId;
10
+ }
11
+ async getResults(parent) {
12
+ const RelatedModel = this.relatedModel;
13
+ if (!RelatedModel)
14
+ throw new Error("Related model is not defined.");
15
+ const relatedInstance = new RelatedModel();
16
+ const db = await relatedInstance.getDB();
17
+ const morphTypeValue = typeof parent.getMorphClass === "function"
18
+ ? parent.getMorphClass()
19
+ : parent.constructor.name;
20
+ const parentValues = this.getMongoComparableValues(parent, this.localKey);
21
+ let row;
22
+ if (this.isMongoDatabase(db)) {
23
+ row = await db.collection(relatedInstance.tableName).findOne({
24
+ ...this.buildMongoEqualityFilter(this.morphId, parentValues[0]),
25
+ [this.morphType]: morphTypeValue,
26
+ });
27
+ }
28
+ else {
29
+ const adapter = db;
30
+ const table = adapter.wrapId(relatedInstance.tableName);
31
+ const morphId = adapter.wrapId(this.morphId);
32
+ const morphTypeColumn = adapter.wrapId(this.morphType);
33
+ const sql = `
34
+ SELECT * FROM ${table}
35
+ WHERE ${morphId} = ${adapter.placeholder(1)} AND ${morphTypeColumn} = ${adapter.placeholder(2)} LIMIT 1
36
+ `;
37
+ row = await adapter.queryOne(sql, [
38
+ parent[this.localKey],
39
+ morphTypeValue,
40
+ ]);
41
+ }
42
+ return RelatedModel.hydrateRow(row);
43
+ }
44
+ async match(parents) {
45
+ if (!parents.length)
46
+ return;
47
+ const parentIds = parents.flatMap((p) => this.getMongoComparableValues(p, this.localKey));
48
+ const RelatedModel = this.relatedModel;
49
+ if (!RelatedModel)
50
+ throw new Error("Related model is not defined.");
51
+ const relatedInstance = new RelatedModel();
52
+ const db = await relatedInstance.getDB();
53
+ const morphTypeValue = typeof parents[0]?.getMorphClass === "function"
54
+ ? parents[0].getMorphClass()
55
+ : parents[0].constructor.name;
56
+ let rows;
57
+ if (this.isMongoDatabase(db)) {
58
+ rows = await db
59
+ .collection(relatedInstance.tableName)
60
+ .find({
61
+ ...this.buildMongoInFilter(this.morphId, parentIds),
62
+ [this.morphType]: morphTypeValue,
63
+ })
64
+ .toArray();
65
+ }
66
+ else {
67
+ const adapter = db;
68
+ const table = adapter.wrapId(relatedInstance.tableName);
69
+ const morphId = adapter.wrapId(this.morphId);
70
+ const morphTypeColumn = adapter.wrapId(this.morphType);
71
+ const inResult = adapter.inClause(morphId, parentIds, 1);
72
+ const typePlaceholder = adapter.placeholder(inResult.nextIndex);
73
+ const sql = `
74
+ SELECT * FROM ${table}
75
+ WHERE ${inResult.sql} AND ${morphTypeColumn} = ${typePlaceholder}
76
+ `;
77
+ rows = await adapter.query(sql, [
78
+ ...inResult.params,
79
+ morphTypeValue,
80
+ ]);
81
+ }
82
+ const grouped = {};
83
+ for (const row of rows) {
84
+ const instance = RelatedModel.hydrateRow(row);
85
+ if (!instance)
86
+ continue;
87
+ const record = instance;
88
+ for (const value of this.getMongoComparableValues(record, this.morphId)) {
89
+ grouped[String(value)] = record;
90
+ }
91
+ }
92
+ const relName = this.name ?? "relation";
93
+ for (const parent of parents) {
94
+ const keys = this.getMongoComparableValues(parent, this.localKey).map((value) => String(value));
95
+ const matched = keys.find((key) => grouped[key]);
96
+ parent[relName] = matched ? grouped[matched] : null;
97
+ }
98
+ }
99
+ }
100
+ exports.MorphOne = MorphOne;
101
+ //# sourceMappingURL=MorphOne.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MorphOne.js","sourceRoot":"","sources":["../../../../src/core/orm/relations/MorphOne.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Relation } from "../Relation";
2
+ export declare class MorphTo extends Relation {
3
+ protected morphType: string;
4
+ protected morphId: string;
5
+ constructor(morphType: string, morphId: string);
6
+ getResults(parent: Record<string, unknown>): Promise<unknown>;
7
+ match(parents: Record<string, unknown>[]): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=MorphTo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MorphTo.d.ts","sourceRoot":"","sources":["../../../../src/core/orm/relations/MorphTo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA2C,MAAM,aAAa,CAAC;AAIhF,qBAAa,OAAQ,SAAQ,QAAQ;IACnC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEd,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAOxC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB7D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAiD/D"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MorphTo = void 0;
4
+ const Relation_1 = require("../Relation");
5
+ const MorphRegistry_1 = require("../mixins/MorphRegistry");
6
+ class MorphTo extends Relation_1.Relation {
7
+ constructor(morphType, morphId) {
8
+ // The related model is determined dynamically at runtime
9
+ super(null, morphId, "id");
10
+ this.morphType = morphType;
11
+ this.morphId = morphId;
12
+ }
13
+ async getResults(parent) {
14
+ const modelClassName = parent[this.morphType];
15
+ if (!modelClassName)
16
+ return null;
17
+ const Model = MorphRegistry_1.MorphRegistry.resolve(modelClassName);
18
+ const relatedInstance = new Model();
19
+ const db = await relatedInstance.getDB();
20
+ let row;
21
+ if (this.isMongoDatabase(db)) {
22
+ row = await db
23
+ .collection(relatedInstance.tableName)
24
+ .findOne(this.buildMongoEqualityFilter(this.localKey, parent[this.morphId]));
25
+ }
26
+ else {
27
+ const adapter = db;
28
+ const table = adapter.wrapId(relatedInstance.tableName);
29
+ const localKey = adapter.wrapId(this.localKey);
30
+ const sql = `SELECT * FROM ${table} WHERE ${localKey} = ${adapter.placeholder(1)} LIMIT 1`;
31
+ row = await adapter.queryOne(sql, [parent[this.morphId]]);
32
+ }
33
+ return Model.hydrateRow(row);
34
+ }
35
+ async match(parents) {
36
+ if (!parents.length)
37
+ return;
38
+ // Group by morph type (so we can fetch each model type once)
39
+ const groups = {};
40
+ for (const parent of parents) {
41
+ const type = parent[this.morphType];
42
+ if (!groups[type])
43
+ groups[type] = [];
44
+ groups[type].push(parent);
45
+ }
46
+ for (const [type, models] of Object.entries(groups)) {
47
+ const Model = MorphRegistry_1.MorphRegistry.resolve(type);
48
+ const relatedInstance = new Model();
49
+ const db = await relatedInstance.getDB();
50
+ const ids = models.map((m) => m[this.morphId]);
51
+ let rows;
52
+ if (this.isMongoDatabase(db)) {
53
+ rows = await db
54
+ .collection(relatedInstance.tableName)
55
+ .find(this.buildMongoInFilter(this.localKey, ids))
56
+ .toArray();
57
+ }
58
+ else {
59
+ const adapter = db;
60
+ const table = adapter.wrapId(relatedInstance.tableName);
61
+ const localKey = adapter.wrapId(this.localKey);
62
+ const inResult = adapter.inClause(localKey, ids, 1);
63
+ const sql = `SELECT * FROM ${table} WHERE ${inResult.sql}`;
64
+ rows = await adapter.query(sql, inResult.params);
65
+ }
66
+ const relatedMap = {};
67
+ for (const row of rows) {
68
+ const instance = Model.hydrateRow(row);
69
+ if (!instance)
70
+ continue;
71
+ const record = instance;
72
+ for (const value of this.getMongoComparableValues(record, this.localKey)) {
73
+ relatedMap[String(value)] = record;
74
+ }
75
+ }
76
+ const relName = this.name ?? "relation";
77
+ for (const parent of models) {
78
+ parent[relName] =
79
+ relatedMap[parent[this.morphId]] || null;
80
+ }
81
+ }
82
+ }
83
+ }
84
+ exports.MorphTo = MorphTo;
85
+ //# sourceMappingURL=MorphTo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MorphTo.js","sourceRoot":"","sources":["../../../../src/core/orm/relations/MorphTo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 🧠 SQLDialect
3
+ * Handles identifier quoting for multiple SQL dialects.
4
+ */
5
+ export type Dialect = "mysql" | "pg" | "sqlite";
6
+ export declare class SQLDialect {
7
+ private readonly dialect;
8
+ constructor(dialect?: Dialect);
9
+ /**
10
+ * Wraps an identifier (table or column) safely for the current dialect.
11
+ */
12
+ wrap(identifier: string): string;
13
+ /**
14
+ * Quotes a full CREATE TABLE statement appropriately.
15
+ */
16
+ formatCreateSQL(table: string, columnsSQL: string[]): string;
17
+ /**
18
+ * Quotes a DROP TABLE statement appropriately.
19
+ */
20
+ formatDropSQL(table: string): string;
21
+ }
22
+ //# sourceMappingURL=SQLDialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLDialect.d.ts","sourceRoot":"","sources":["../../../src/core/schema/SQLDialect.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEhD,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,OAAiB;IAEvD;;OAEG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAWhC;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAK5D;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAIrC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ // src/core/schema/SQLDialect.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SQLDialect = void 0;
5
+ class SQLDialect {
6
+ constructor(dialect = "mysql") {
7
+ this.dialect = dialect;
8
+ }
9
+ /**
10
+ * Wraps an identifier (table or column) safely for the current dialect.
11
+ */
12
+ wrap(identifier) {
13
+ switch (this.dialect) {
14
+ case "pg":
15
+ return `"${identifier.replace(/"/g, '""')}"`; // double quotes escaped
16
+ case "sqlite":
17
+ return `"${identifier.replace(/"/g, '""')}"`;
18
+ default:
19
+ return `\`${identifier.replace(/`/g, "``")}\``; // MySQL default
20
+ }
21
+ }
22
+ /**
23
+ * Quotes a full CREATE TABLE statement appropriately.
24
+ */
25
+ formatCreateSQL(table, columnsSQL) {
26
+ const t = this.wrap(table);
27
+ return `CREATE TABLE IF NOT EXISTS ${t} (\n ${columnsSQL.join(",\n ")}\n);`;
28
+ }
29
+ /**
30
+ * Quotes a DROP TABLE statement appropriately.
31
+ */
32
+ formatDropSQL(table) {
33
+ const t = this.wrap(table);
34
+ return `DROP TABLE IF EXISTS ${t};`;
35
+ }
36
+ }
37
+ exports.SQLDialect = SQLDialect;
38
+ //# sourceMappingURL=SQLDialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLDialect.js","sourceRoot":"","sources":["../../../src/core/schema/SQLDialect.ts"],"names":[],"mappings":";AAAA,gCAAgC;;;AAQhC,MAAa,UAAU;IACrB,YAA6B,UAAmB,OAAO;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAE3D;;OAEG;IACH,IAAI,CAAC,UAAkB;QACrB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,KAAK,IAAI;gBACP,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,wBAAwB;YACxE,KAAK,QAAQ;gBACX,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;YAC/C;gBACE,OAAO,KAAK,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB;QACpE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,KAAa,EAAE,UAAoB;QACjD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,8BAA8B,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAChF,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAa;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,wBAAwB,CAAC,GAAG,CAAC;IACtC,CAAC;CACF;AAhCD,gCAgCC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * 🧩 SchemaBlueprint
3
+ * Defines model schema, validation, relations, and mixins.
4
+ * Supports advanced relation metadata for automatic migration generation.
5
+ */
6
+ export type ColumnType = "increments" | "bigint" | "uuid" | "int" | "string" | "text" | "boolean" | "decimal" | "float" | "json" | "timestamp" | "timestamps" | "softDeletes";
7
+ export interface ColumnOptions {
8
+ length?: number;
9
+ notNull?: boolean;
10
+ unique?: boolean;
11
+ unsigned?: boolean;
12
+ default?: string | number | boolean | null;
13
+ primary?: boolean;
14
+ index?: boolean;
15
+ comment?: string;
16
+ }
17
+ export interface ValidationRule {
18
+ required?: boolean;
19
+ min?: number;
20
+ max?: number;
21
+ pattern?: RegExp;
22
+ email?: boolean;
23
+ numeric?: boolean;
24
+ in?: Array<string | number>;
25
+ }
26
+ export type RelationType = "hasOne" | "hasMany" | "belongsTo" | "belongsToMany" | "morphOne" | "morphMany" | "morphTo";
27
+ export interface RelationOptions {
28
+ localKey?: string;
29
+ foreignKey?: string;
30
+ pivotTable?: string;
31
+ pivotLocalKey?: string;
32
+ pivotForeignKey?: string;
33
+ morphName?: string;
34
+ typeColumn?: string;
35
+ idColumn?: string;
36
+ cascade?: boolean;
37
+ }
38
+ export type MixinName = "SoftDeletes" | "Casts" | "EagerLoading" | "Hooks" | "Scope" | "QueryCache" | "Serialize" | "PivotHelper";
39
+ export interface MixinDefinition {
40
+ kind: "mixin";
41
+ name: MixinName;
42
+ }
43
+ export interface ColumnDefinition {
44
+ kind: "column";
45
+ type: ColumnType;
46
+ options: ColumnOptions;
47
+ validate?: ValidationRule;
48
+ }
49
+ export interface RelationDefinition {
50
+ kind: "relation";
51
+ relation: RelationType;
52
+ model: string;
53
+ options: RelationOptions;
54
+ }
55
+ export type SchemaField = ColumnDefinition | RelationDefinition | MixinDefinition;
56
+ export declare function column(type: ColumnType, length?: number, options?: Partial<ColumnOptions>): ColumnDefinition;
57
+ export declare function validate(columnDef: ColumnDefinition, rules: ValidationRule): ColumnDefinition;
58
+ export declare function relation(rel: RelationType, model: string, options?: RelationOptions): RelationDefinition;
59
+ export declare function mixin(name: MixinName): MixinDefinition;
60
+ export declare function validateSchema(schema: Record<string, SchemaField>): string[];
61
+ //# sourceMappingURL=SchemaBlueprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaBlueprint.d.ts","sourceRoot":"","sources":["../../../src/core/schema/SchemaBlueprint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ /**
3
+ * 🧩 SchemaBlueprint
4
+ * Defines model schema, validation, relations, and mixins.
5
+ * Supports advanced relation metadata for automatic migration generation.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.column = column;
9
+ exports.validate = validate;
10
+ exports.relation = relation;
11
+ exports.mixin = mixin;
12
+ exports.validateSchema = validateSchema;
13
+ /* --------------------------------- Builders --------------------------------- */
14
+ function column(type, length, options) {
15
+ const finalOptions = {
16
+ ...(length ? { length } : {}),
17
+ ...(options || {}),
18
+ };
19
+ return { kind: "column", type, options: finalOptions };
20
+ }
21
+ function validate(columnDef, rules) {
22
+ columnDef.validate = rules;
23
+ return columnDef;
24
+ }
25
+ function relation(rel, model, options = {}) {
26
+ return { kind: "relation", relation: rel, model, options };
27
+ }
28
+ function mixin(name) {
29
+ return { kind: "mixin", name };
30
+ }
31
+ /* --------------------------------- Validators --------------------------------- */
32
+ function validateSchema(schema) {
33
+ const errors = [];
34
+ for (const [key, field] of Object.entries(schema)) {
35
+ if (field.kind === "column" && field.validate) {
36
+ const rules = field.validate;
37
+ if (rules.min && rules.max && rules.min > rules.max) {
38
+ errors.push(`Column '${key}' has invalid range: min > max.`);
39
+ }
40
+ }
41
+ if (field.kind === "relation") {
42
+ if (!field.model) {
43
+ errors.push(`Relation '${key}' must reference a model name.`);
44
+ }
45
+ if (field.relation === "belongsTo" && !field.options.foreignKey) {
46
+ errors.push(`Relation '${key}' (belongsTo) requires a foreignKey.`);
47
+ }
48
+ if (field.relation === "morphOne" ||
49
+ field.relation === "morphMany" ||
50
+ field.relation === "morphTo") {
51
+ if (!field.options.morphName) {
52
+ errors.push(`Morph relation '${key}' should define a morphName.`);
53
+ }
54
+ }
55
+ }
56
+ if (field.kind === "mixin" && !field.name) {
57
+ errors.push(`Mixin '${key}' is missing a valid name.`);
58
+ }
59
+ }
60
+ return errors;
61
+ }
62
+ //# sourceMappingURL=SchemaBlueprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaBlueprint.js","sourceRoot":"","sources":["../../../src/core/schema/SchemaBlueprint.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA0GH,wBAUC;AAED,4BAMC;AAED,4BAMC;AAED,sBAEC;AAGD,wCAuCC;AAzED,kFAAkF;AAClF,SAAgB,MAAM,CACpB,IAAgB,EAChB,MAAe,EACf,OAAgC;IAEhC,MAAM,YAAY,GAAkB;QAClC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;KACnB,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACzD,CAAC;AAED,SAAgB,QAAQ,CACtB,SAA2B,EAC3B,KAAqB;IAErB,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC3B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,QAAQ,CACtB,GAAiB,EACjB,KAAa,EACb,UAA2B,EAAE;IAE7B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC7D,CAAC;AAED,SAAgB,KAAK,CAAC,IAAe;IACnC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,oFAAoF;AACpF,SAAgB,cAAc,CAC5B,MAAmC;IAEnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC7B,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,gCAAgC,CAAC,CAAC;YAChE,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAChE,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,sCAAsC,CAAC,CAAC;YACtE,CAAC;YAED,IACE,KAAK,CAAC,QAAQ,KAAK,UAAU;gBAC7B,KAAK,CAAC,QAAQ,KAAK,WAAW;gBAC9B,KAAK,CAAC,QAAQ,KAAK,SAAS,EAC5B,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,8BAA8B,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,4BAA4B,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { SchemaField } from "./SchemaBlueprint";
2
+ import { Dialect } from "./SQLDialect";
3
+ export interface SchemaBuildResult {
4
+ mainSQL: string;
5
+ extraTables: string[];
6
+ rollbackMainSQL: string;
7
+ rollbackExtraTables: string[];
8
+ }
9
+ export declare class SchemaBuilder {
10
+ static toCreateSQL(tableName: string, schema: Record<string, SchemaField>, explicitDialect?: Dialect | string, smartUpdate?: boolean, connectionNameOverride?: string, forceCreate?: boolean): Promise<SchemaBuildResult>;
11
+ static toDropSQL(tableName: string, schema: Record<string, SchemaField>, dialectName?: Dialect): string[];
12
+ private static columnSQL;
13
+ private static relationSQL;
14
+ private static formatDefaultLiteral;
15
+ private static mysqlColumnSQL;
16
+ private static pgTypeSQL;
17
+ private static pgColumnSQL;
18
+ private static sqliteColumnSQL;
19
+ private static referencedTableName;
20
+ private static foreignKeyConstraintName;
21
+ private static foreignKeyConstraintKey;
22
+ private static foreignKeyConstraintDefinition;
23
+ private static mysqlForeignKeys;
24
+ private static pgForeignKeys;
25
+ private static sqliteForeignKeys;
26
+ private static pivotTableExists;
27
+ private static mixinSQL;
28
+ }
29
+ //# sourceMappingURL=SchemaBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/schema/SchemaBuilder.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EAKZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAc,OAAO,EAAE,MAAM,cAAc,CAAC;AAGnD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAeD,qBAAa,aAAa;WACX,WAAW,CACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACnC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,EAClC,WAAW,GAAE,OAAe,EAC5B,sBAAsB,CAAC,EAAE,MAAM,EAC/B,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,iBAAiB,CAAC;IAuW7B,MAAM,CAAC,SAAS,CACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACnC,WAAW,GAAE,OAAiB,GAC7B,MAAM,EAAE;IAwBX,OAAO,CAAC,MAAM,CAAC,SAAS;IA6DxB,OAAO,CAAC,MAAM,CAAC,WAAW;IAoG1B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAsBnC,OAAO,CAAC,MAAM,CAAC,cAAc;IAuB7B,OAAO,CAAC,MAAM,CAAC,SAAS;IAiCxB,OAAO,CAAC,MAAM,CAAC,WAAW;IAqB1B,OAAO,CAAC,MAAM,CAAC,eAAe;IAoB9B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAIvC,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAQtC,OAAO,CAAC,MAAM,CAAC,8BAA8B;mBAkCxB,gBAAgB;mBA4ChB,aAAa;mBAkDb,iBAAiB;mBA8BjB,gBAAgB;IAsCrC,OAAO,CAAC,MAAM,CAAC,QAAQ;CAYxB"}