@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.
- package/CHANGELOG.md +73 -0
- package/README.md +215 -0
- package/dist/Model.d.ts +2 -0
- package/dist/Model.d.ts.map +1 -0
- package/dist/Model.js +7 -0
- package/dist/Model.js.map +1 -0
- package/dist/cli/commands/cacheClear.d.ts +2 -0
- package/dist/cli/commands/cacheClear.d.ts.map +1 -0
- package/dist/cli/commands/cacheClear.js +69 -0
- package/dist/cli/commands/cacheClear.js.map +1 -0
- package/dist/cli/commands/cacheStats.d.ts +2 -0
- package/dist/cli/commands/cacheStats.d.ts.map +1 -0
- package/dist/cli/commands/cacheStats.js +55 -0
- package/dist/cli/commands/cacheStats.js.map +1 -0
- package/dist/cli/commands/dbSeed.d.ts +16 -0
- package/dist/cli/commands/dbSeed.d.ts.map +1 -0
- package/dist/cli/commands/dbSeed.js +201 -0
- package/dist/cli/commands/dbSeed.js.map +1 -0
- package/dist/cli/commands/dbSeedBootstrapPrecheck.d.ts +3 -0
- package/dist/cli/commands/dbSeedBootstrapPrecheck.d.ts.map +1 -0
- package/dist/cli/commands/dbSeedBootstrapPrecheck.js +8 -0
- package/dist/cli/commands/dbSeedBootstrapPrecheck.js.map +1 -0
- package/dist/cli/commands/dbSeedFresh.d.ts +14 -0
- package/dist/cli/commands/dbSeedFresh.d.ts.map +1 -0
- package/dist/cli/commands/dbSeedFresh.js +81 -0
- package/dist/cli/commands/dbSeedFresh.js.map +1 -0
- package/dist/cli/commands/demoScenario.d.ts +9 -0
- package/dist/cli/commands/demoScenario.d.ts.map +1 -0
- package/dist/cli/commands/demoScenario.js +185 -0
- package/dist/cli/commands/demoScenario.js.map +1 -0
- package/dist/cli/commands/factoryStatus.d.ts +9 -0
- package/dist/cli/commands/factoryStatus.d.ts.map +1 -0
- package/dist/cli/commands/factoryStatus.js +103 -0
- package/dist/cli/commands/factoryStatus.js.map +1 -0
- package/dist/cli/commands/makeController.d.ts +11 -0
- package/dist/cli/commands/makeController.d.ts.map +1 -0
- package/dist/cli/commands/makeController.js +61 -0
- package/dist/cli/commands/makeController.js.map +1 -0
- package/dist/cli/commands/makeFactory.d.ts +14 -0
- package/dist/cli/commands/makeFactory.d.ts.map +1 -0
- package/dist/cli/commands/makeFactory.js +183 -0
- package/dist/cli/commands/makeFactory.js.map +1 -0
- package/dist/cli/commands/makeMigration.d.ts +18 -0
- package/dist/cli/commands/makeMigration.d.ts.map +1 -0
- package/dist/cli/commands/makeMigration.js +496 -0
- package/dist/cli/commands/makeMigration.js.map +1 -0
- package/dist/cli/commands/makeModel.d.ts +20 -0
- package/dist/cli/commands/makeModel.d.ts.map +1 -0
- package/dist/cli/commands/makeModel.js +360 -0
- package/dist/cli/commands/makeModel.js.map +1 -0
- package/dist/cli/commands/makeRegistry.d.ts +7 -0
- package/dist/cli/commands/makeRegistry.d.ts.map +1 -0
- package/dist/cli/commands/makeRegistry.js +88 -0
- package/dist/cli/commands/makeRegistry.js.map +1 -0
- package/dist/cli/commands/makeScenario.d.ts +12 -0
- package/dist/cli/commands/makeScenario.d.ts.map +1 -0
- package/dist/cli/commands/makeScenario.js +639 -0
- package/dist/cli/commands/makeScenario.js.map +1 -0
- package/dist/cli/commands/makeSeed.d.ts +11 -0
- package/dist/cli/commands/makeSeed.d.ts.map +1 -0
- package/dist/cli/commands/makeSeed.js +47 -0
- package/dist/cli/commands/makeSeed.js.map +1 -0
- package/dist/cli/commands/makeService.d.ts +5 -0
- package/dist/cli/commands/makeService.d.ts.map +1 -0
- package/dist/cli/commands/makeService.js +31 -0
- package/dist/cli/commands/makeService.js.map +1 -0
- package/dist/cli/commands/migrateFresh.d.ts +14 -0
- package/dist/cli/commands/migrateFresh.d.ts.map +1 -0
- package/dist/cli/commands/migrateFresh.js +150 -0
- package/dist/cli/commands/migrateFresh.js.map +1 -0
- package/dist/cli/commands/migrateReset.d.ts +12 -0
- package/dist/cli/commands/migrateReset.d.ts.map +1 -0
- package/dist/cli/commands/migrateReset.js +28 -0
- package/dist/cli/commands/migrateReset.js.map +1 -0
- package/dist/cli/commands/migrateRollback.d.ts +10 -0
- package/dist/cli/commands/migrateRollback.d.ts.map +1 -0
- package/dist/cli/commands/migrateRollback.js +303 -0
- package/dist/cli/commands/migrateRollback.js.map +1 -0
- package/dist/cli/commands/migrateRun.d.ts +10 -0
- package/dist/cli/commands/migrateRun.d.ts.map +1 -0
- package/dist/cli/commands/migrateRun.js +301 -0
- package/dist/cli/commands/migrateRun.js.map +1 -0
- package/dist/cli/commands/migrateStatus.d.ts +8 -0
- package/dist/cli/commands/migrateStatus.d.ts.map +1 -0
- package/dist/cli/commands/migrateStatus.js +118 -0
- package/dist/cli/commands/migrateStatus.js.map +1 -0
- package/dist/cli/eloquent.d.ts +18 -0
- package/dist/cli/eloquent.d.ts.map +1 -0
- package/dist/cli/eloquent.js +187 -0
- package/dist/cli/eloquent.js.map +1 -0
- package/dist/cli/utils/ArtifactCompatibility.d.ts +10 -0
- package/dist/cli/utils/ArtifactCompatibility.d.ts.map +1 -0
- package/dist/cli/utils/ArtifactCompatibility.js +60 -0
- package/dist/cli/utils/ArtifactCompatibility.js.map +1 -0
- package/dist/cli/utils/ArtifactRoutingReport.d.ts +10 -0
- package/dist/cli/utils/ArtifactRoutingReport.d.ts.map +1 -0
- package/dist/cli/utils/ArtifactRoutingReport.js +25 -0
- package/dist/cli/utils/ArtifactRoutingReport.js.map +1 -0
- package/dist/cli/utils/ArtifactStorage.d.ts +10 -0
- package/dist/cli/utils/ArtifactStorage.d.ts.map +1 -0
- package/dist/cli/utils/ArtifactStorage.js +193 -0
- package/dist/cli/utils/ArtifactStorage.js.map +1 -0
- package/dist/cli/utils/AuditTrail.d.ts +25 -0
- package/dist/cli/utils/AuditTrail.d.ts.map +1 -0
- package/dist/cli/utils/AuditTrail.js +74 -0
- package/dist/cli/utils/AuditTrail.js.map +1 -0
- package/dist/cli/utils/CliActionRuntime.d.ts +5 -0
- package/dist/cli/utils/CliActionRuntime.d.ts.map +1 -0
- package/dist/cli/utils/CliActionRuntime.js +22 -0
- package/dist/cli/utils/CliActionRuntime.js.map +1 -0
- package/dist/cli/utils/CliBootstrapSupport.d.ts +13 -0
- package/dist/cli/utils/CliBootstrapSupport.d.ts.map +1 -0
- package/dist/cli/utils/CliBootstrapSupport.js +55 -0
- package/dist/cli/utils/CliBootstrapSupport.js.map +1 -0
- package/dist/cli/utils/CliCommandCatalog.d.ts +6 -0
- package/dist/cli/utils/CliCommandCatalog.d.ts.map +1 -0
- package/dist/cli/utils/CliCommandCatalog.js +78 -0
- package/dist/cli/utils/CliCommandCatalog.js.map +1 -0
- package/dist/cli/utils/CliCommandTargets.d.ts +8 -0
- package/dist/cli/utils/CliCommandTargets.d.ts.map +1 -0
- package/dist/cli/utils/CliCommandTargets.js +19 -0
- package/dist/cli/utils/CliCommandTargets.js.map +1 -0
- package/dist/cli/utils/CliMakeArtifactCommandRegistration.d.ts +3 -0
- package/dist/cli/utils/CliMakeArtifactCommandRegistration.d.ts.map +1 -0
- package/dist/cli/utils/CliMakeArtifactCommandRegistration.js +94 -0
- package/dist/cli/utils/CliMakeArtifactCommandRegistration.js.map +1 -0
- package/dist/cli/utils/CliMigrationCommandRegistration.d.ts +3 -0
- package/dist/cli/utils/CliMigrationCommandRegistration.d.ts.map +1 -0
- package/dist/cli/utils/CliMigrationCommandRegistration.js +195 -0
- package/dist/cli/utils/CliMigrationCommandRegistration.js.map +1 -0
- package/dist/cli/utils/CliPresentation.d.ts +2 -0
- package/dist/cli/utils/CliPresentation.d.ts.map +1 -0
- package/dist/cli/utils/CliPresentation.js +13 -0
- package/dist/cli/utils/CliPresentation.js.map +1 -0
- package/dist/cli/utils/CliProductionGuards.d.ts +11 -0
- package/dist/cli/utils/CliProductionGuards.d.ts.map +1 -0
- package/dist/cli/utils/CliProductionGuards.js +34 -0
- package/dist/cli/utils/CliProductionGuards.js.map +1 -0
- package/dist/cli/utils/CliScaffoldCommandRegistration.d.ts +3 -0
- package/dist/cli/utils/CliScaffoldCommandRegistration.d.ts.map +1 -0
- package/dist/cli/utils/CliScaffoldCommandRegistration.js +89 -0
- package/dist/cli/utils/CliScaffoldCommandRegistration.js.map +1 -0
- package/dist/cli/utils/CliSeedScenarioCommandRegistration.d.ts +3 -0
- package/dist/cli/utils/CliSeedScenarioCommandRegistration.d.ts.map +1 -0
- package/dist/cli/utils/CliSeedScenarioCommandRegistration.js +123 -0
- package/dist/cli/utils/CliSeedScenarioCommandRegistration.js.map +1 -0
- package/dist/cli/utils/CliSupportCommandRegistration.d.ts +3 -0
- package/dist/cli/utils/CliSupportCommandRegistration.d.ts.map +1 -0
- package/dist/cli/utils/CliSupportCommandRegistration.js +44 -0
- package/dist/cli/utils/CliSupportCommandRegistration.js.map +1 -0
- package/dist/cli/utils/ConsoleSilencer.d.ts +6 -0
- package/dist/cli/utils/ConsoleSilencer.d.ts.map +1 -0
- package/dist/cli/utils/ConsoleSilencer.js +25 -0
- package/dist/cli/utils/ConsoleSilencer.js.map +1 -0
- package/dist/cli/utils/ImportResolver.d.ts +16 -0
- package/dist/cli/utils/ImportResolver.d.ts.map +1 -0
- package/dist/cli/utils/ImportResolver.js +57 -0
- package/dist/cli/utils/ImportResolver.js.map +1 -0
- package/dist/cli/utils/ModelIntrospector.d.ts +33 -0
- package/dist/cli/utils/ModelIntrospector.d.ts.map +1 -0
- package/dist/cli/utils/ModelIntrospector.js +76 -0
- package/dist/cli/utils/ModelIntrospector.js.map +1 -0
- package/dist/cli/utils/PathMap.d.ts +58 -0
- package/dist/cli/utils/PathMap.d.ts.map +1 -0
- package/dist/cli/utils/PathMap.js +132 -0
- package/dist/cli/utils/PathMap.js.map +1 -0
- package/dist/cli/utils/ProductionSafety.d.ts +25 -0
- package/dist/cli/utils/ProductionSafety.d.ts.map +1 -0
- package/dist/cli/utils/ProductionSafety.js +61 -0
- package/dist/cli/utils/ProductionSafety.js.map +1 -0
- package/dist/cli/utils/ScaffoldGeneratorSupport.d.ts +16 -0
- package/dist/cli/utils/ScaffoldGeneratorSupport.d.ts.map +1 -0
- package/dist/cli/utils/ScaffoldGeneratorSupport.js +66 -0
- package/dist/cli/utils/ScaffoldGeneratorSupport.js.map +1 -0
- package/dist/cli/utils/ScenarioMorphAliasRouting.d.ts +14 -0
- package/dist/cli/utils/ScenarioMorphAliasRouting.d.ts.map +1 -0
- package/dist/cli/utils/ScenarioMorphAliasRouting.js +62 -0
- package/dist/cli/utils/ScenarioMorphAliasRouting.js.map +1 -0
- package/dist/cli/utils/SeedBootstrapPrecheck.d.ts +20 -0
- package/dist/cli/utils/SeedBootstrapPrecheck.d.ts.map +1 -0
- package/dist/cli/utils/SeedBootstrapPrecheck.js +133 -0
- package/dist/cli/utils/SeedBootstrapPrecheck.js.map +1 -0
- package/dist/cli/utils/StructuredLogger.d.ts +11 -0
- package/dist/cli/utils/StructuredLogger.d.ts.map +1 -0
- package/dist/cli/utils/StructuredLogger.js +53 -0
- package/dist/cli/utils/StructuredLogger.js.map +1 -0
- package/dist/cli/utils/TemplateEngine.d.ts +30 -0
- package/dist/cli/utils/TemplateEngine.d.ts.map +1 -0
- package/dist/cli/utils/TemplateEngine.js +165 -0
- package/dist/cli/utils/TemplateEngine.js.map +1 -0
- package/dist/cli/utils/factories/Factory.d.ts +61 -0
- package/dist/cli/utils/factories/Factory.d.ts.map +1 -0
- package/dist/cli/utils/factories/Factory.js +140 -0
- package/dist/cli/utils/factories/Factory.js.map +1 -0
- package/dist/cli/utils/factories/FactoryDisplay.d.ts +6 -0
- package/dist/cli/utils/factories/FactoryDisplay.d.ts.map +1 -0
- package/dist/cli/utils/factories/FactoryDisplay.js +26 -0
- package/dist/cli/utils/factories/FactoryDisplay.js.map +1 -0
- package/dist/cli/utils/factories/FactoryGraph.d.ts +6 -0
- package/dist/cli/utils/factories/FactoryGraph.d.ts.map +1 -0
- package/dist/cli/utils/factories/FactoryGraph.js +72 -0
- package/dist/cli/utils/factories/FactoryGraph.js.map +1 -0
- package/dist/cli/utils/factories/FactoryLoader.d.ts +16 -0
- package/dist/cli/utils/factories/FactoryLoader.d.ts.map +1 -0
- package/dist/cli/utils/factories/FactoryLoader.js +35 -0
- package/dist/cli/utils/factories/FactoryLoader.js.map +1 -0
- package/dist/cli/utils/factories/FactoryRegistry.d.ts +16 -0
- package/dist/cli/utils/factories/FactoryRegistry.d.ts.map +1 -0
- package/dist/cli/utils/factories/FactoryRegistry.js +87 -0
- package/dist/cli/utils/factories/FactoryRegistry.js.map +1 -0
- package/dist/cli/utils/fileWriter.d.ts +7 -0
- package/dist/cli/utils/fileWriter.d.ts.map +1 -0
- package/dist/cli/utils/fileWriter.js +61 -0
- package/dist/cli/utils/fileWriter.js.map +1 -0
- package/dist/cli/utils/migrations/MigrationLockStrategy.d.ts +21 -0
- package/dist/cli/utils/migrations/MigrationLockStrategy.d.ts.map +1 -0
- package/dist/cli/utils/migrations/MigrationLockStrategy.js +129 -0
- package/dist/cli/utils/migrations/MigrationLockStrategy.js.map +1 -0
- package/dist/cli/utils/migrations/MigrationTracker.d.ts +25 -0
- package/dist/cli/utils/migrations/MigrationTracker.d.ts.map +1 -0
- package/dist/cli/utils/migrations/MigrationTracker.js +279 -0
- package/dist/cli/utils/migrations/MigrationTracker.js.map +1 -0
- package/dist/cli/utils/migrations/MongoMigrationTracker.d.ts +18 -0
- package/dist/cli/utils/migrations/MongoMigrationTracker.d.ts.map +1 -0
- package/dist/cli/utils/migrations/MongoMigrationTracker.js +276 -0
- package/dist/cli/utils/migrations/MongoMigrationTracker.js.map +1 -0
- package/dist/cli/utils/resolveConnectionFlags.d.ts +14 -0
- package/dist/cli/utils/resolveConnectionFlags.d.ts.map +1 -0
- package/dist/cli/utils/resolveConnectionFlags.js +42 -0
- package/dist/cli/utils/resolveConnectionFlags.js.map +1 -0
- package/dist/cli/utils/resolveSqlConnectionFlags.d.ts +9 -0
- package/dist/cli/utils/resolveSqlConnectionFlags.d.ts.map +1 -0
- package/dist/cli/utils/resolveSqlConnectionFlags.js +23 -0
- package/dist/cli/utils/resolveSqlConnectionFlags.js.map +1 -0
- package/dist/cli/utils/typescript/BaseCommand.d.ts +15 -0
- package/dist/cli/utils/typescript/BaseCommand.d.ts.map +1 -0
- package/dist/cli/utils/typescript/BaseCommand.js +36 -0
- package/dist/cli/utils/typescript/BaseCommand.js.map +1 -0
- package/dist/cli/utils/typescript/RuntimeDetector.d.ts +16 -0
- package/dist/cli/utils/typescript/RuntimeDetector.d.ts.map +1 -0
- package/dist/cli/utils/typescript/RuntimeDetector.js +45 -0
- package/dist/cli/utils/typescript/RuntimeDetector.js.map +1 -0
- package/dist/cli/utils/typescript/TypeScriptCompiler.d.ts +25 -0
- package/dist/cli/utils/typescript/TypeScriptCompiler.d.ts.map +1 -0
- package/dist/cli/utils/typescript/TypeScriptCompiler.js +109 -0
- package/dist/cli/utils/typescript/TypeScriptCompiler.js.map +1 -0
- package/dist/cli/utils/typescript/tsRuntime.d.ts +12 -0
- package/dist/cli/utils/typescript/tsRuntime.d.ts.map +1 -0
- package/dist/cli/utils/typescript/tsRuntime.js +189 -0
- package/dist/cli/utils/typescript/tsRuntime.js.map +1 -0
- package/dist/config/database.d.ts +58 -0
- package/dist/config/database.d.ts.map +1 -0
- package/dist/config/database.js +106 -0
- package/dist/config/database.js.map +1 -0
- package/dist/config/dbRoleEnv.d.ts +31 -0
- package/dist/config/dbRoleEnv.d.ts.map +1 -0
- package/dist/config/dbRoleEnv.js +171 -0
- package/dist/config/dbRoleEnv.js.map +1 -0
- package/dist/core/cache/CacheAnalytics.d.ts +47 -0
- package/dist/core/cache/CacheAnalytics.d.ts.map +1 -0
- package/dist/core/cache/CacheAnalytics.js +113 -0
- package/dist/core/cache/CacheAnalytics.js.map +1 -0
- package/dist/core/cache/CacheDriver.d.ts +19 -0
- package/dist/core/cache/CacheDriver.d.ts.map +1 -0
- package/dist/core/cache/CacheDriver.js +8 -0
- package/dist/core/cache/CacheDriver.js.map +1 -0
- package/dist/core/cache/CacheFallbackManager.d.ts +35 -0
- package/dist/core/cache/CacheFallbackManager.d.ts.map +1 -0
- package/dist/core/cache/CacheFallbackManager.js +118 -0
- package/dist/core/cache/CacheFallbackManager.js.map +1 -0
- package/dist/core/cache/CacheManager.d.ts +11 -0
- package/dist/core/cache/CacheManager.d.ts.map +1 -0
- package/dist/core/cache/CacheManager.js +27 -0
- package/dist/core/cache/CacheManager.js.map +1 -0
- package/dist/core/cache/CacheRegistry.d.ts +49 -0
- package/dist/core/cache/CacheRegistry.d.ts.map +1 -0
- package/dist/core/cache/CacheRegistry.js +117 -0
- package/dist/core/cache/CacheRegistry.js.map +1 -0
- package/dist/core/cache/drivers/FileCacheDriver.d.ts +11 -0
- package/dist/core/cache/drivers/FileCacheDriver.d.ts.map +1 -0
- package/dist/core/cache/drivers/FileCacheDriver.js +54 -0
- package/dist/core/cache/drivers/FileCacheDriver.js.map +1 -0
- package/dist/core/cache/drivers/MemcachedCacheDriver.d.ts +15 -0
- package/dist/core/cache/drivers/MemcachedCacheDriver.d.ts.map +1 -0
- package/dist/core/cache/drivers/MemcachedCacheDriver.js +60 -0
- package/dist/core/cache/drivers/MemcachedCacheDriver.js.map +1 -0
- package/dist/core/cache/drivers/MemoryCacheDriver.d.ts +9 -0
- package/dist/core/cache/drivers/MemoryCacheDriver.d.ts.map +1 -0
- package/dist/core/cache/drivers/MemoryCacheDriver.js +33 -0
- package/dist/core/cache/drivers/MemoryCacheDriver.js.map +1 -0
- package/dist/core/cache/setupCache.d.ts +2 -0
- package/dist/core/cache/setupCache.d.ts.map +1 -0
- package/dist/core/cache/setupCache.js +38 -0
- package/dist/core/cache/setupCache.js.map +1 -0
- package/dist/core/connection/BetterSqliteConnection.d.ts +23 -0
- package/dist/core/connection/BetterSqliteConnection.d.ts.map +1 -0
- package/dist/core/connection/BetterSqliteConnection.js +33 -0
- package/dist/core/connection/BetterSqliteConnection.js.map +1 -0
- package/dist/core/connection/ConnectionFactory.d.ts +18 -0
- package/dist/core/connection/ConnectionFactory.d.ts.map +1 -0
- package/dist/core/connection/ConnectionFactory.js +111 -0
- package/dist/core/connection/ConnectionFactory.js.map +1 -0
- package/dist/core/connection/DatabaseConnection.d.ts +49 -0
- package/dist/core/connection/DatabaseConnection.d.ts.map +1 -0
- package/dist/core/connection/DatabaseConnection.js +120 -0
- package/dist/core/connection/DatabaseConnection.js.map +1 -0
- package/dist/core/connection/DriverAdapter.d.ts +23 -0
- package/dist/core/connection/DriverAdapter.d.ts.map +1 -0
- package/dist/core/connection/DriverAdapter.js +145 -0
- package/dist/core/connection/DriverAdapter.js.map +1 -0
- package/dist/core/connection/resolveConnectionName.d.ts +17 -0
- package/dist/core/connection/resolveConnectionName.d.ts.map +1 -0
- package/dist/core/connection/resolveConnectionName.js +47 -0
- package/dist/core/connection/resolveConnectionName.js.map +1 -0
- package/dist/core/model/BaseModel.d.ts +247 -0
- package/dist/core/model/BaseModel.d.ts.map +1 -0
- package/dist/core/model/BaseModel.js +165 -0
- package/dist/core/model/BaseModel.js.map +1 -0
- package/dist/core/model/BaseModelSafeFinderStatics.d.ts +33 -0
- package/dist/core/model/BaseModelSafeFinderStatics.d.ts.map +1 -0
- package/dist/core/model/BaseModelSafeFinderStatics.js +87 -0
- package/dist/core/model/BaseModelSafeFinderStatics.js.map +1 -0
- package/dist/core/model/CoreModel.d.ts +134 -0
- package/dist/core/model/CoreModel.d.ts.map +1 -0
- package/dist/core/model/CoreModel.js +541 -0
- package/dist/core/model/CoreModel.js.map +1 -0
- package/dist/core/model/CoreModelPersistenceState.d.ts +36 -0
- package/dist/core/model/CoreModelPersistenceState.d.ts.map +1 -0
- package/dist/core/model/CoreModelPersistenceState.js +141 -0
- package/dist/core/model/CoreModelPersistenceState.js.map +1 -0
- package/dist/core/model/CoreModelSafeFinderSupport.d.ts +5 -0
- package/dist/core/model/CoreModelSafeFinderSupport.d.ts.map +1 -0
- package/dist/core/model/CoreModelSafeFinderSupport.js +15 -0
- package/dist/core/model/CoreModelSafeFinderSupport.js.map +1 -0
- package/dist/core/model/CoreModelValidationEvents.d.ts +24 -0
- package/dist/core/model/CoreModelValidationEvents.d.ts.map +1 -0
- package/dist/core/model/CoreModelValidationEvents.js +45 -0
- package/dist/core/model/CoreModelValidationEvents.js.map +1 -0
- package/dist/core/model/SafeFinder.d.ts +46 -0
- package/dist/core/model/SafeFinder.d.ts.map +1 -0
- package/dist/core/model/SafeFinder.js +223 -0
- package/dist/core/model/SafeFinder.js.map +1 -0
- package/dist/core/orm/Relation.d.ts +47 -0
- package/dist/core/orm/Relation.d.ts.map +1 -0
- package/dist/core/orm/Relation.js +62 -0
- package/dist/core/orm/Relation.js.map +1 -0
- package/dist/core/orm/mixins/CastsMixin.d.ts +18 -0
- package/dist/core/orm/mixins/CastsMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/CastsMixin.js +125 -0
- package/dist/core/orm/mixins/CastsMixin.js.map +1 -0
- package/dist/core/orm/mixins/EagerLoadingMixin.d.ts +19 -0
- package/dist/core/orm/mixins/EagerLoadingMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/EagerLoadingMixin.js +137 -0
- package/dist/core/orm/mixins/EagerLoadingMixin.js.map +1 -0
- package/dist/core/orm/mixins/HooksMixin.d.ts +16 -0
- package/dist/core/orm/mixins/HooksMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/HooksMixin.js +95 -0
- package/dist/core/orm/mixins/HooksMixin.js.map +1 -0
- package/dist/core/orm/mixins/MorphRegistry.d.ts +47 -0
- package/dist/core/orm/mixins/MorphRegistry.d.ts.map +1 -0
- package/dist/core/orm/mixins/MorphRegistry.js +67 -0
- package/dist/core/orm/mixins/MorphRegistry.js.map +1 -0
- package/dist/core/orm/mixins/MorphableMixin.d.ts +29 -0
- package/dist/core/orm/mixins/MorphableMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/MorphableMixin.js +93 -0
- package/dist/core/orm/mixins/MorphableMixin.js.map +1 -0
- package/dist/core/orm/mixins/PivotHelperMixin.d.ts +26 -0
- package/dist/core/orm/mixins/PivotHelperMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/PivotHelperMixin.js +102 -0
- package/dist/core/orm/mixins/PivotHelperMixin.js.map +1 -0
- package/dist/core/orm/mixins/QueryCacheMixin.d.ts +23 -0
- package/dist/core/orm/mixins/QueryCacheMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/QueryCacheMixin.js +172 -0
- package/dist/core/orm/mixins/QueryCacheMixin.js.map +1 -0
- package/dist/core/orm/mixins/ScopeMixin.d.ts +20 -0
- package/dist/core/orm/mixins/ScopeMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/ScopeMixin.js +72 -0
- package/dist/core/orm/mixins/ScopeMixin.js.map +1 -0
- package/dist/core/orm/mixins/SerializeMixin.d.ts +44 -0
- package/dist/core/orm/mixins/SerializeMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/SerializeMixin.js +80 -0
- package/dist/core/orm/mixins/SerializeMixin.js.map +1 -0
- package/dist/core/orm/mixins/SoftDeletesMixin.d.ts +22 -0
- package/dist/core/orm/mixins/SoftDeletesMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/SoftDeletesMixin.js +146 -0
- package/dist/core/orm/mixins/SoftDeletesMixin.js.map +1 -0
- package/dist/core/orm/mixins/utils/BaseMethodResolver.d.ts +8 -0
- package/dist/core/orm/mixins/utils/BaseMethodResolver.d.ts.map +1 -0
- package/dist/core/orm/mixins/utils/BaseMethodResolver.js +26 -0
- package/dist/core/orm/mixins/utils/BaseMethodResolver.js.map +1 -0
- package/dist/core/orm/mixins/utils/HookStore.d.ts +26 -0
- package/dist/core/orm/mixins/utils/HookStore.d.ts.map +1 -0
- package/dist/core/orm/mixins/utils/HookStore.js +78 -0
- package/dist/core/orm/mixins/utils/HookStore.js.map +1 -0
- package/dist/core/orm/mixins/utils/ModelRegistry.d.ts +33 -0
- package/dist/core/orm/mixins/utils/ModelRegistry.d.ts.map +1 -0
- package/dist/core/orm/mixins/utils/ModelRegistry.js +87 -0
- package/dist/core/orm/mixins/utils/ModelRegistry.js.map +1 -0
- package/dist/core/orm/mixins/utils/modelRegistration.d.ts +9 -0
- package/dist/core/orm/mixins/utils/modelRegistration.d.ts.map +1 -0
- package/dist/core/orm/mixins/utils/modelRegistration.js +26 -0
- package/dist/core/orm/mixins/utils/modelRegistration.js.map +1 -0
- package/dist/core/orm/relations/BelongsTo.d.ts +6 -0
- package/dist/core/orm/relations/BelongsTo.d.ts.map +1 -0
- package/dist/core/orm/relations/BelongsTo.js +70 -0
- package/dist/core/orm/relations/BelongsTo.js.map +1 -0
- package/dist/core/orm/relations/BelongsToMany.d.ts +14 -0
- package/dist/core/orm/relations/BelongsToMany.d.ts.map +1 -0
- package/dist/core/orm/relations/BelongsToMany.js +245 -0
- package/dist/core/orm/relations/BelongsToMany.js.map +1 -0
- package/dist/core/orm/relations/HasMany.d.ts +6 -0
- package/dist/core/orm/relations/HasMany.d.ts.map +1 -0
- package/dist/core/orm/relations/HasMany.js +75 -0
- package/dist/core/orm/relations/HasMany.js.map +1 -0
- package/dist/core/orm/relations/HasOne.d.ts +6 -0
- package/dist/core/orm/relations/HasOne.d.ts.map +1 -0
- package/dist/core/orm/relations/HasOne.js +71 -0
- package/dist/core/orm/relations/HasOne.js.map +1 -0
- package/dist/core/orm/relations/MorphMany.d.ts +9 -0
- package/dist/core/orm/relations/MorphMany.d.ts.map +1 -0
- package/dist/core/orm/relations/MorphMany.js +107 -0
- package/dist/core/orm/relations/MorphMany.js.map +1 -0
- package/dist/core/orm/relations/MorphOne.d.ts +9 -0
- package/dist/core/orm/relations/MorphOne.d.ts.map +1 -0
- package/dist/core/orm/relations/MorphOne.js +101 -0
- package/dist/core/orm/relations/MorphOne.js.map +1 -0
- package/dist/core/orm/relations/MorphTo.d.ts +9 -0
- package/dist/core/orm/relations/MorphTo.d.ts.map +1 -0
- package/dist/core/orm/relations/MorphTo.js +85 -0
- package/dist/core/orm/relations/MorphTo.js.map +1 -0
- package/dist/core/schema/SQLDialect.d.ts +22 -0
- package/dist/core/schema/SQLDialect.d.ts.map +1 -0
- package/dist/core/schema/SQLDialect.js +38 -0
- package/dist/core/schema/SQLDialect.js.map +1 -0
- package/dist/core/schema/SchemaBlueprint.d.ts +61 -0
- package/dist/core/schema/SchemaBlueprint.d.ts.map +1 -0
- package/dist/core/schema/SchemaBlueprint.js +62 -0
- package/dist/core/schema/SchemaBlueprint.js.map +1 -0
- package/dist/core/schema/SchemaBuilder.d.ts +29 -0
- package/dist/core/schema/SchemaBuilder.d.ts.map +1 -0
- package/dist/core/schema/SchemaBuilder.js +661 -0
- package/dist/core/schema/SchemaBuilder.js.map +1 -0
- package/dist/core/schema/SchemaValidator.d.ts +23 -0
- package/dist/core/schema/SchemaValidator.d.ts.map +1 -0
- package/dist/core/schema/SchemaValidator.js +75 -0
- package/dist/core/schema/SchemaValidator.js.map +1 -0
- package/dist/core/security/AbstractSecurity.d.ts +24 -0
- package/dist/core/security/AbstractSecurity.d.ts.map +1 -0
- package/dist/core/security/AbstractSecurity.js +58 -0
- package/dist/core/security/AbstractSecurity.js.map +1 -0
- package/dist/core/security/EnvKeySecurity.d.ts +11 -0
- package/dist/core/security/EnvKeySecurity.d.ts.map +1 -0
- package/dist/core/security/EnvKeySecurity.js +46 -0
- package/dist/core/security/EnvKeySecurity.js.map +1 -0
- package/dist/core/security/NoSecurity.d.ts +10 -0
- package/dist/core/security/NoSecurity.d.ts.map +1 -0
- package/dist/core/security/NoSecurity.js +18 -0
- package/dist/core/security/NoSecurity.js.map +1 -0
- package/dist/core/security/SecretRedactor.d.ts +4 -0
- package/dist/core/security/SecretRedactor.d.ts.map +1 -0
- package/dist/core/security/SecretRedactor.js +60 -0
- package/dist/core/security/SecretRedactor.js.map +1 -0
- package/dist/core/security/SecurityContract.d.ts +13 -0
- package/dist/core/security/SecurityContract.d.ts.map +1 -0
- package/dist/core/security/SecurityContract.js +3 -0
- package/dist/core/security/SecurityContract.js.map +1 -0
- package/dist/core/security/SecurityFactory.d.ts +9 -0
- package/dist/core/security/SecurityFactory.d.ts.map +1 -0
- package/dist/core/security/SecurityFactory.js +29 -0
- package/dist/core/security/SecurityFactory.js.map +1 -0
- package/dist/core/security/index.d.ts +6 -0
- package/dist/core/security/index.d.ts.map +1 -0
- package/dist/core/security/index.js +22 -0
- package/dist/core/security/index.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/package.json +104 -0
- package/src/cli/templates/controller.tpl +80 -0
- package/src/cli/templates/factory.tpl +14 -0
- package/src/cli/templates/migration.tpl +36 -0
- package/src/cli/templates/model-registry.tpl +16 -0
- package/src/cli/templates/model.tpl +95 -0
- package/src/cli/templates/pivot-factory.tpl +85 -0
- package/src/cli/templates/seed.tpl +20 -0
- package/src/cli/templates/service.tpl +40 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 🧩 SerializeMixin
|
|
4
|
+
* Adds toJSON() and toObject() serialization logic.
|
|
5
|
+
* ✅ Type-safe, mixin-compliant, and compatible with nested models and arrays.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.SerializeMixin = SerializeMixin;
|
|
9
|
+
function SerializeMixin(Base) {
|
|
10
|
+
class Serializable extends Base {
|
|
11
|
+
constructor(...args) {
|
|
12
|
+
super(...args);
|
|
13
|
+
/**
|
|
14
|
+
* 🕵️♂️ Attributes to hide during serialization
|
|
15
|
+
* Example: ['password', 'api_token']
|
|
16
|
+
*/
|
|
17
|
+
this.hidden = [];
|
|
18
|
+
/**
|
|
19
|
+
* 🌟 Computed attributes to append to output
|
|
20
|
+
* Example: ['full_name', 'profile_url']
|
|
21
|
+
*/
|
|
22
|
+
this.appends = [];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 🚀 Convert model instance into a plain JS object
|
|
26
|
+
* - Removes hidden/private fields
|
|
27
|
+
* - Appends computed attributes
|
|
28
|
+
* - Recursively serializes nested models/arrays
|
|
29
|
+
*/
|
|
30
|
+
toObject() {
|
|
31
|
+
// ✅ Safe shallow clone that TS accepts
|
|
32
|
+
const raw = Object.assign({}, this);
|
|
33
|
+
const obj = {};
|
|
34
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
35
|
+
if (key.startsWith("_"))
|
|
36
|
+
continue; // skip internals
|
|
37
|
+
if (this.hidden.includes(key))
|
|
38
|
+
continue;
|
|
39
|
+
obj[key] = this.serializeValue(value);
|
|
40
|
+
}
|
|
41
|
+
// 🌟 Append computed attributes
|
|
42
|
+
for (const attr of this.appends) {
|
|
43
|
+
const getter = this[attr];
|
|
44
|
+
if (typeof getter === "function") {
|
|
45
|
+
obj[attr] = getter.call(this);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return obj;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 🧠 Convert model to JSON string
|
|
52
|
+
*/
|
|
53
|
+
toJSON() {
|
|
54
|
+
return JSON.stringify(this.toObject());
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* ♻️ Recursively serialize nested models, arrays, or plain objects
|
|
58
|
+
*/
|
|
59
|
+
serializeValue(value) {
|
|
60
|
+
if (value === null || value === undefined)
|
|
61
|
+
return value;
|
|
62
|
+
// 🧩 Handle arrays
|
|
63
|
+
if (Array.isArray(value)) {
|
|
64
|
+
return value.map((v) => this.serializeValue(v));
|
|
65
|
+
}
|
|
66
|
+
// 🧩 Handle nested model or plain object
|
|
67
|
+
if (typeof value === "object") {
|
|
68
|
+
const objVal = value;
|
|
69
|
+
if (typeof objVal.toObject === "function") {
|
|
70
|
+
return objVal.toObject();
|
|
71
|
+
}
|
|
72
|
+
return { ...value };
|
|
73
|
+
}
|
|
74
|
+
// ⚙️ Primitive values (string, number, boolean)
|
|
75
|
+
return value;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return Serializable;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=SerializeMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SerializeMixin.js","sourceRoot":"","sources":["../../../../src/core/orm/mixins/SerializeMixin.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAaH,wCAgFC;AAhFD,SAAgB,cAAc,CAA+C,IAAW;IACtF,MAAe,YAAa,SAAQ,IAAI;QAatC,YAAY,GAAG,IAAW;YACxB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAbjB;;;eAGG;YACI,WAAM,GAAa,EAAE,CAAC;YAE7B;;;eAGG;YACI,YAAO,GAAa,EAAE,CAAC;QAI9B,CAAC;QAED;;;;;WAKG;QACH,QAAQ;YACN,uCAAuC;YACvC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAA4B,CAAC;YAC/D,MAAM,GAAG,GAA4B,EAAE,CAAC;YAExC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS,CAAC,iBAAiB;gBACpD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAExC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YAED,gCAAgC;YAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAI,IAAgC,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,GAAG,CAAC,IAAI,CAAC,GAAI,MAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC;QAED;;WAEG;QACH,MAAM;YACJ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,CAAC;QAED;;WAEG;QACI,cAAc,CAAC,KAAc;YAClC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAExD,mBAAmB;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;YAED,yCAAyC;YACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,KAAqD,CAAC;gBACrE,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAC1C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC3B,CAAC;gBACD,OAAO,EAAE,GAAI,KAAiC,EAAE,CAAC;YACnD,CAAC;YAED,gDAAgD;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;KACF;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🧹 SoftDeletesMixin
|
|
3
|
+
* Adds soft delete support (deleted_at timestamp)
|
|
4
|
+
* ✅ Fully type-safe and mixin-compliant
|
|
5
|
+
* ✅ Compatible with CoreModel and previous mixins
|
|
6
|
+
*/
|
|
7
|
+
export interface SoftDeletable {
|
|
8
|
+
deleted_at?: string | null;
|
|
9
|
+
find(id: number | string, pk?: string): Promise<this | null>;
|
|
10
|
+
all(): Promise<this[]>;
|
|
11
|
+
update(data: Record<string, unknown>, pk?: string): this;
|
|
12
|
+
update(id: number | string, data: Record<string, unknown>, pk?: string): Promise<void>;
|
|
13
|
+
delete(): Promise<void>;
|
|
14
|
+
delete(id: number | string, pk?: string): Promise<void>;
|
|
15
|
+
restore(): Promise<void>;
|
|
16
|
+
restore(id: number | string, pk?: string): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
/** Generic constructor helper */
|
|
19
|
+
type Constructor<T = object> = abstract new (...args: any[]) => T;
|
|
20
|
+
export declare function SoftDeletesMixin<TBase extends Constructor>(Base: TBase): TBase & (abstract new (...args: any[]) => SoftDeletable);
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=SoftDeletesMixin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SoftDeletesMixin.d.ts","sourceRoot":"","sources":["../../../../src/core/orm/mixins/SoftDeletesMixin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAC7D,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACvB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED,iCAAiC;AACjC,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAElE,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,WAAW,EAAE,IAAI,EAAE,KAAK,GA8M7B,KAAK,GAAG,CAAC,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,aAAa,CAAC,CACjG"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 🧹 SoftDeletesMixin
|
|
4
|
+
* Adds soft delete support (deleted_at timestamp)
|
|
5
|
+
* ✅ Fully type-safe and mixin-compliant
|
|
6
|
+
* ✅ Compatible with CoreModel and previous mixins
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SoftDeletesMixin = SoftDeletesMixin;
|
|
10
|
+
const BaseMethodResolver_1 = require("./utils/BaseMethodResolver");
|
|
11
|
+
function SoftDeletesMixin(Base) {
|
|
12
|
+
const resolveBaseMethod = (0, BaseMethodResolver_1.createBaseMethodResolver)(Base);
|
|
13
|
+
class SoftDeletableModel extends Base {
|
|
14
|
+
constructor(...args) {
|
|
15
|
+
super(...args);
|
|
16
|
+
this.deletedAtColumn = "deleted_at";
|
|
17
|
+
}
|
|
18
|
+
getTrackedPrimaryValue(pk) {
|
|
19
|
+
const self = this;
|
|
20
|
+
const original = (self._originalAttributes ?? {});
|
|
21
|
+
if (pk === "_id") {
|
|
22
|
+
return self._id ?? self.id ?? original._id ?? original.id;
|
|
23
|
+
}
|
|
24
|
+
if (pk === "id") {
|
|
25
|
+
return self.id ?? self._id ?? original.id ?? original._id;
|
|
26
|
+
}
|
|
27
|
+
return self[pk] ?? original[pk];
|
|
28
|
+
}
|
|
29
|
+
syncSoftDeleteState(id, pk, deletedAtValue, options) {
|
|
30
|
+
if (!Object.is(this.getTrackedPrimaryValue(pk), id)) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const self = this;
|
|
34
|
+
self[this.deletedAtColumn] = deletedAtValue;
|
|
35
|
+
if (options?.removed) {
|
|
36
|
+
self._exists = false;
|
|
37
|
+
self._originalAttributes = {};
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const syncPersistedState = self.syncPersistedState;
|
|
41
|
+
if (typeof syncPersistedState === "function") {
|
|
42
|
+
syncPersistedState.call(this, {
|
|
43
|
+
...self,
|
|
44
|
+
[this.deletedAtColumn]: deletedAtValue,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async delete(id, pk = "id") {
|
|
49
|
+
const baseUpdate = resolveBaseMethod(this, "update");
|
|
50
|
+
if (typeof baseUpdate !== "function") {
|
|
51
|
+
throw new Error("Base 'update' method not found for SoftDeletesMixin.");
|
|
52
|
+
}
|
|
53
|
+
const targetId = id ?? this.getTrackedPrimaryValue(pk);
|
|
54
|
+
if (targetId === undefined || targetId === null) {
|
|
55
|
+
throw new Error(`Cannot delete ${this.constructor.name} without primary key '${pk}'.`);
|
|
56
|
+
}
|
|
57
|
+
const timestamp = new Date().toISOString();
|
|
58
|
+
await baseUpdate(targetId, { [this.deletedAtColumn]: timestamp }, pk);
|
|
59
|
+
this.syncSoftDeleteState(targetId, pk, timestamp);
|
|
60
|
+
}
|
|
61
|
+
async restore(id, pk = "id") {
|
|
62
|
+
const baseUpdate = resolveBaseMethod(this, "update");
|
|
63
|
+
if (typeof baseUpdate !== "function") {
|
|
64
|
+
throw new Error("Base 'update' method not found for SoftDeletesMixin.");
|
|
65
|
+
}
|
|
66
|
+
const targetId = id ?? this.getTrackedPrimaryValue(pk);
|
|
67
|
+
if (targetId === undefined || targetId === null) {
|
|
68
|
+
throw new Error(`Cannot restore ${this.constructor.name} without primary key '${pk}'.`);
|
|
69
|
+
}
|
|
70
|
+
await baseUpdate(targetId, { [this.deletedAtColumn]: null }, pk);
|
|
71
|
+
this.syncSoftDeleteState(targetId, pk, null);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* 🔎 Get all non-deleted records
|
|
75
|
+
*/
|
|
76
|
+
async all() {
|
|
77
|
+
const baseAll = resolveBaseMethod(this, "all");
|
|
78
|
+
if (typeof baseAll !== "function") {
|
|
79
|
+
throw new Error("Base 'all' method not found for SoftDeletesMixin.");
|
|
80
|
+
}
|
|
81
|
+
const records = await baseAll();
|
|
82
|
+
return records.filter((record) => !record[this.deletedAtColumn]);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 🔍 Find a record if not soft-deleted
|
|
86
|
+
*/
|
|
87
|
+
async find(id, pk = "id") {
|
|
88
|
+
const baseFind = resolveBaseMethod(this, "find");
|
|
89
|
+
if (typeof baseFind !== "function") {
|
|
90
|
+
throw new Error("Base 'find' method not found for SoftDeletesMixin.");
|
|
91
|
+
}
|
|
92
|
+
const record = await baseFind(id, pk);
|
|
93
|
+
if (!record)
|
|
94
|
+
return null;
|
|
95
|
+
const isDeleted = typeof record[this.deletedAtColumn] === "string" &&
|
|
96
|
+
record[this.deletedAtColumn] !== null;
|
|
97
|
+
return isDeleted ? null : record;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 🧠 Get all including deleted
|
|
101
|
+
*/
|
|
102
|
+
async withTrashed() {
|
|
103
|
+
const baseAll = resolveBaseMethod(this, "all");
|
|
104
|
+
if (typeof baseAll !== "function") {
|
|
105
|
+
throw new Error("Base 'all' method not found for SoftDeletesMixin.");
|
|
106
|
+
}
|
|
107
|
+
return (await baseAll());
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* 🧠 Get only deleted records
|
|
111
|
+
*/
|
|
112
|
+
async onlyTrashed() {
|
|
113
|
+
const baseAll = resolveBaseMethod(this, "all");
|
|
114
|
+
if (typeof baseAll !== "function") {
|
|
115
|
+
throw new Error("Base 'all' method not found for SoftDeletesMixin.");
|
|
116
|
+
}
|
|
117
|
+
const allRecords = (await baseAll());
|
|
118
|
+
return allRecords.filter((record) => typeof record[this.deletedAtColumn] === "string" &&
|
|
119
|
+
record[this.deletedAtColumn] !== null);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* ⚙️ Force delete (permanent removal from DB)
|
|
123
|
+
*/
|
|
124
|
+
async forceDelete(id, pk = "id") {
|
|
125
|
+
const baseDelete = resolveBaseMethod(this, "delete");
|
|
126
|
+
if (typeof baseDelete !== "function") {
|
|
127
|
+
throw new Error("Base 'delete' method not found for SoftDeletesMixin.");
|
|
128
|
+
}
|
|
129
|
+
await baseDelete(id, pk);
|
|
130
|
+
this.syncSoftDeleteState(id, pk, null, { removed: true });
|
|
131
|
+
}
|
|
132
|
+
update(idOrData, dataOrPk, pk = "id") {
|
|
133
|
+
const baseUpdate = resolveBaseMethod(this, "update");
|
|
134
|
+
if (typeof baseUpdate !== "function") {
|
|
135
|
+
throw new Error("Base 'update' method not found for SoftDeletesMixin.");
|
|
136
|
+
}
|
|
137
|
+
if (typeof idOrData === "object" && idOrData !== null && !Array.isArray(idOrData)) {
|
|
138
|
+
return baseUpdate(idOrData, dataOrPk);
|
|
139
|
+
}
|
|
140
|
+
return baseUpdate(idOrData, dataOrPk, pk);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// ✅ Return type cast ensures TS knows Base + SoftDeletable merged
|
|
144
|
+
return SoftDeletableModel;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=SoftDeletesMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SoftDeletesMixin.js","sourceRoot":"","sources":["../../../../src/core/orm/mixins/SoftDeletesMixin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type Constructor<T = object> = abstract new (...args: any[]) => T;
|
|
2
|
+
/**
|
|
3
|
+
* Create a resolver that finds the nearest base implementation for a method
|
|
4
|
+
* by walking prototypes starting from the captured Base.prototype.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createBaseMethodResolver<TBase extends Constructor>(Base: TBase): <TInstance extends object, K extends keyof TInstance>(instance: TInstance, method: K) => ((...args: unknown[]) => unknown) | null;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=BaseMethodResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseMethodResolver.d.ts","sourceRoot":"","sources":["../../../../../src/core/orm/mixins/utils/BaseMethodResolver.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAElE;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,SAAS,WAAW,EAAE,IAAI,EAAE,KAAK,IAG3C,SAAS,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,SAAS,EACnF,UAAU,SAAS,EACnB,QAAQ,CAAC,KACR,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI,CAkB5C"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBaseMethodResolver = createBaseMethodResolver;
|
|
4
|
+
/**
|
|
5
|
+
* Create a resolver that finds the nearest base implementation for a method
|
|
6
|
+
* by walking prototypes starting from the captured Base.prototype.
|
|
7
|
+
*/
|
|
8
|
+
function createBaseMethodResolver(Base) {
|
|
9
|
+
const basePrototype = Base.prototype;
|
|
10
|
+
return function resolveBaseMethod(instance, method) {
|
|
11
|
+
let proto = basePrototype;
|
|
12
|
+
const visited = new WeakSet();
|
|
13
|
+
while (proto && typeof proto === "object") {
|
|
14
|
+
if (visited.has(proto))
|
|
15
|
+
break;
|
|
16
|
+
visited.add(proto);
|
|
17
|
+
const fn = proto[method];
|
|
18
|
+
if (typeof fn === "function") {
|
|
19
|
+
return fn.bind(instance);
|
|
20
|
+
}
|
|
21
|
+
proto = Object.getPrototypeOf(proto);
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=BaseMethodResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseMethodResolver.js","sourceRoot":"","sources":["../../../../../src/core/orm/mixins/utils/BaseMethodResolver.ts"],"names":[],"mappings":";;AAMA,4DAwBC;AA5BD;;;GAGG;AACH,SAAgB,wBAAwB,CAA4B,IAAW;IAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;IAErC,OAAO,SAAS,iBAAiB,CAC/B,QAAmB,EACnB,MAAS;QAET,IAAI,KAAK,GAAY,aAAa,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAU,CAAC;QAEtC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,KAAe,CAAC;gBAAE,MAAM;YACxC,OAAO,CAAC,GAAG,CAAC,KAAe,CAAC,CAAC;YAE7B,MAAM,EAAE,GAAI,KAAiC,CAAC,MAAgB,CAAC,CAAC;YAChE,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAoC,CAAC;YAC9D,CAAC;YAED,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ModelConstructor } from "./ModelRegistry";
|
|
2
|
+
export type LifecycleEvent = "creating" | "created" | "updating" | "updated" | "deleting" | "deleted";
|
|
3
|
+
export type HookHandler<TPayload = unknown> = (payload: TPayload) => Promise<void> | void;
|
|
4
|
+
type HookBucket = Record<LifecycleEvent, HookHandler<unknown>[]>;
|
|
5
|
+
declare const EMPTY_HOOKS: HookBucket;
|
|
6
|
+
/**
|
|
7
|
+
* Internal hook storage bound to model constructors.
|
|
8
|
+
* In strict mode, hook mutations are blocked for unregistered models.
|
|
9
|
+
* In non-strict mode, models are granted lazily on first mutation.
|
|
10
|
+
*/
|
|
11
|
+
export declare class HookStore {
|
|
12
|
+
private static store;
|
|
13
|
+
static add<TPayload>(modelCtor: ModelConstructor, event: LifecycleEvent, handler: HookHandler<TPayload>): void;
|
|
14
|
+
static get(modelCtor: ModelConstructor, event: LifecycleEvent): HookHandler<unknown>[];
|
|
15
|
+
/**
|
|
16
|
+
* Test helper. Clears one model bucket or all buckets.
|
|
17
|
+
*/
|
|
18
|
+
static clear(modelCtor?: ModelConstructor): void;
|
|
19
|
+
private static ensureBucket;
|
|
20
|
+
/**
|
|
21
|
+
* Debug/test snapshot only.
|
|
22
|
+
*/
|
|
23
|
+
static snapshot(modelCtor: ModelConstructor): HookBucket;
|
|
24
|
+
}
|
|
25
|
+
export { EMPTY_HOOKS, type HookBucket };
|
|
26
|
+
//# sourceMappingURL=HookStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HookStore.d.ts","sourceRoot":"","sources":["../../../../../src/core/orm/mixins/utils/HookStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,MAAM,WAAW,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1F,KAAK,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAEjE,QAAA,MAAM,WAAW,EAAE,UAOlB,CAAC;AAaF;;;;GAIG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAA+C;IAEnE,MAAM,CAAC,GAAG,CAAC,QAAQ,EACjB,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC7B,IAAI;IAOP,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE;IAMtF;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAQhD,OAAO,CAAC,MAAM,CAAC,YAAY;IAS3B;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,GAAG,UAAU;CAazD;AAED,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EMPTY_HOOKS = exports.HookStore = void 0;
|
|
4
|
+
const ModelRegistry_1 = require("./ModelRegistry");
|
|
5
|
+
const EMPTY_HOOKS = {
|
|
6
|
+
creating: [],
|
|
7
|
+
created: [],
|
|
8
|
+
updating: [],
|
|
9
|
+
updated: [],
|
|
10
|
+
deleting: [],
|
|
11
|
+
deleted: [],
|
|
12
|
+
};
|
|
13
|
+
exports.EMPTY_HOOKS = EMPTY_HOOKS;
|
|
14
|
+
function makeHookBucket() {
|
|
15
|
+
return {
|
|
16
|
+
creating: [],
|
|
17
|
+
created: [],
|
|
18
|
+
updating: [],
|
|
19
|
+
updated: [],
|
|
20
|
+
deleting: [],
|
|
21
|
+
deleted: [],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Internal hook storage bound to model constructors.
|
|
26
|
+
* In strict mode, hook mutations are blocked for unregistered models.
|
|
27
|
+
* In non-strict mode, models are granted lazily on first mutation.
|
|
28
|
+
*/
|
|
29
|
+
class HookStore {
|
|
30
|
+
static add(modelCtor, event, handler) {
|
|
31
|
+
ModelRegistry_1.ModelRegistry.ensureGranted(modelCtor, "registration");
|
|
32
|
+
const bucket = this.ensureBucket(modelCtor);
|
|
33
|
+
bucket[event].push(handler);
|
|
34
|
+
}
|
|
35
|
+
static get(modelCtor, event) {
|
|
36
|
+
const bucket = this.store.get(modelCtor);
|
|
37
|
+
if (!bucket)
|
|
38
|
+
return [];
|
|
39
|
+
return [...bucket[event]];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Test helper. Clears one model bucket or all buckets.
|
|
43
|
+
*/
|
|
44
|
+
static clear(modelCtor) {
|
|
45
|
+
if (modelCtor) {
|
|
46
|
+
this.store.delete(modelCtor);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
this.store = new WeakMap();
|
|
50
|
+
}
|
|
51
|
+
static ensureBucket(modelCtor) {
|
|
52
|
+
const existing = this.store.get(modelCtor);
|
|
53
|
+
if (existing)
|
|
54
|
+
return existing;
|
|
55
|
+
const bucket = makeHookBucket();
|
|
56
|
+
this.store.set(modelCtor, bucket);
|
|
57
|
+
return bucket;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Debug/test snapshot only.
|
|
61
|
+
*/
|
|
62
|
+
static snapshot(modelCtor) {
|
|
63
|
+
const bucket = this.store.get(modelCtor);
|
|
64
|
+
if (!bucket)
|
|
65
|
+
return makeHookBucket();
|
|
66
|
+
return {
|
|
67
|
+
creating: [...bucket.creating],
|
|
68
|
+
created: [...bucket.created],
|
|
69
|
+
updating: [...bucket.updating],
|
|
70
|
+
updated: [...bucket.updated],
|
|
71
|
+
deleting: [...bucket.deleting],
|
|
72
|
+
deleted: [...bucket.deleted],
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.HookStore = HookStore;
|
|
77
|
+
HookStore.store = new WeakMap();
|
|
78
|
+
//# sourceMappingURL=HookStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HookStore.js","sourceRoot":"","sources":["../../../../../src/core/orm/mixins/utils/HookStore.ts"],"names":[],"mappings":";;;AAAA,mDAAuE;AAcvE,MAAM,WAAW,GAAe;IAC9B,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;CACZ,CAAC;AA4EO,kCAAW;AA1EpB,SAAS,cAAc;IACrB,OAAO;QACL,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAa,SAAS;IAGpB,MAAM,CAAC,GAAG,CACR,SAA2B,EAC3B,KAAqB,EACrB,OAA8B;QAE9B,6BAAa,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAA+B,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,SAA2B,EAAE,KAAqB;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAA4B;QACvC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,EAAgC,CAAC;IAC3D,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,SAA2B;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,SAA2B;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO,cAAc,EAAE,CAAC;QAErC,OAAO;YACL,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC9B,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;YAC5B,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC9B,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;YAC5B,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC9B,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;SAC7B,CAAC;IACJ,CAAC;;AAvDH,8BAwDC;AAvDgB,eAAK,GAAG,IAAI,OAAO,EAAgC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
type ModelConstructor = Function;
|
|
2
|
+
/**
|
|
3
|
+
* Internal registry that controls which model constructors are allowed
|
|
4
|
+
* to participate in guarded ORM internals (e.g. hook registration).
|
|
5
|
+
*/
|
|
6
|
+
export declare class ModelRegistry {
|
|
7
|
+
private static granted;
|
|
8
|
+
private static debugGranted;
|
|
9
|
+
private static strictMode;
|
|
10
|
+
static grant(modelCtor: ModelConstructor): void;
|
|
11
|
+
static grantMany(modelCtors: ModelConstructor[]): void;
|
|
12
|
+
static revoke(modelCtor: ModelConstructor): void;
|
|
13
|
+
static isGranted(modelCtor: ModelConstructor): boolean;
|
|
14
|
+
static setStrictMode(enabled: boolean): void;
|
|
15
|
+
static isStrictMode(): boolean;
|
|
16
|
+
static assertGranted(modelCtor: ModelConstructor, context?: "registration" | "lifecycle"): void;
|
|
17
|
+
/**
|
|
18
|
+
* Ensures model access under current registry mode:
|
|
19
|
+
* - strict mode: enforce explicit registration
|
|
20
|
+
* - non-strict mode: lazy-grant on first touch
|
|
21
|
+
*/
|
|
22
|
+
static ensureGranted(modelCtor: ModelConstructor, context?: "registration" | "lifecycle"): void;
|
|
23
|
+
/**
|
|
24
|
+
* Debug/testing helper. Avoid using this in hot runtime paths.
|
|
25
|
+
*/
|
|
26
|
+
static listGranted(): ModelConstructor[];
|
|
27
|
+
/**
|
|
28
|
+
* Test helper for deterministic cleanup.
|
|
29
|
+
*/
|
|
30
|
+
static clear(): void;
|
|
31
|
+
}
|
|
32
|
+
export type { ModelConstructor };
|
|
33
|
+
//# sourceMappingURL=ModelRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/core/orm/mixins/utils/ModelRegistry.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG,QAAQ,CAAC;AAYjC;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAmC;IACzD,OAAO,CAAC,MAAM,CAAC,YAAY,CAA+B;IAC1D,OAAO,CAAC,MAAM,CAAC,UAAU,CAAS;IAElC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAM/C,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAMtD,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAMhD,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO;IAKtD,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI5C,MAAM,CAAC,YAAY,IAAI,OAAO;IAI9B,MAAM,CAAC,aAAa,CAClB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,GAAE,cAAc,GAAG,WAAyB,GAClD,IAAI;IAcP;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAClB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,GAAE,cAAc,GAAG,WAAyB,GAClD,IAAI;IAWP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,gBAAgB,EAAE;IAIxC;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;CAKrB;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModelRegistry = void 0;
|
|
4
|
+
function assertModelConstructor(modelCtor) {
|
|
5
|
+
if (typeof modelCtor !== "function") {
|
|
6
|
+
throw new Error("ModelRegistry expects a model constructor function.");
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
function modelNameOf(modelCtor) {
|
|
10
|
+
return modelCtor.name || "AnonymousModel";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Internal registry that controls which model constructors are allowed
|
|
14
|
+
* to participate in guarded ORM internals (e.g. hook registration).
|
|
15
|
+
*/
|
|
16
|
+
class ModelRegistry {
|
|
17
|
+
static grant(modelCtor) {
|
|
18
|
+
assertModelConstructor(modelCtor);
|
|
19
|
+
this.granted.add(modelCtor);
|
|
20
|
+
this.debugGranted.add(modelCtor);
|
|
21
|
+
}
|
|
22
|
+
static grantMany(modelCtors) {
|
|
23
|
+
for (const modelCtor of modelCtors) {
|
|
24
|
+
this.grant(modelCtor);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
static revoke(modelCtor) {
|
|
28
|
+
assertModelConstructor(modelCtor);
|
|
29
|
+
this.granted.delete(modelCtor);
|
|
30
|
+
this.debugGranted.delete(modelCtor);
|
|
31
|
+
}
|
|
32
|
+
static isGranted(modelCtor) {
|
|
33
|
+
assertModelConstructor(modelCtor);
|
|
34
|
+
return this.granted.has(modelCtor);
|
|
35
|
+
}
|
|
36
|
+
static setStrictMode(enabled) {
|
|
37
|
+
this.strictMode = enabled;
|
|
38
|
+
}
|
|
39
|
+
static isStrictMode() {
|
|
40
|
+
return this.strictMode;
|
|
41
|
+
}
|
|
42
|
+
static assertGranted(modelCtor, context = "lifecycle") {
|
|
43
|
+
assertModelConstructor(modelCtor);
|
|
44
|
+
if (!this.strictMode)
|
|
45
|
+
return;
|
|
46
|
+
if (this.granted.has(modelCtor))
|
|
47
|
+
return;
|
|
48
|
+
const modelName = modelNameOf(modelCtor);
|
|
49
|
+
if (context === "registration") {
|
|
50
|
+
throw new Error(`Hook registration denied for unregistered model: ${modelName}`);
|
|
51
|
+
}
|
|
52
|
+
throw new Error(`Model not granted in ModelRegistry: ${modelName}. Register models via registerModels([...]).`);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Ensures model access under current registry mode:
|
|
56
|
+
* - strict mode: enforce explicit registration
|
|
57
|
+
* - non-strict mode: lazy-grant on first touch
|
|
58
|
+
*/
|
|
59
|
+
static ensureGranted(modelCtor, context = "lifecycle") {
|
|
60
|
+
assertModelConstructor(modelCtor);
|
|
61
|
+
if (this.granted.has(modelCtor))
|
|
62
|
+
return;
|
|
63
|
+
if (this.strictMode) {
|
|
64
|
+
this.assertGranted(modelCtor, context);
|
|
65
|
+
}
|
|
66
|
+
this.grant(modelCtor);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Debug/testing helper. Avoid using this in hot runtime paths.
|
|
70
|
+
*/
|
|
71
|
+
static listGranted() {
|
|
72
|
+
return Array.from(this.debugGranted);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Test helper for deterministic cleanup.
|
|
76
|
+
*/
|
|
77
|
+
static clear() {
|
|
78
|
+
this.granted = new WeakSet();
|
|
79
|
+
this.debugGranted.clear();
|
|
80
|
+
this.strictMode = false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.ModelRegistry = ModelRegistry;
|
|
84
|
+
ModelRegistry.granted = new WeakSet();
|
|
85
|
+
ModelRegistry.debugGranted = new Set();
|
|
86
|
+
ModelRegistry.strictMode = false;
|
|
87
|
+
//# sourceMappingURL=ModelRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../../../../../src/core/orm/mixins/utils/ModelRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ModelConstructor } from "./ModelRegistry";
|
|
2
|
+
export type RegisterModelsOptions = {
|
|
3
|
+
strict?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export declare function registerModels(modelCtors: ModelConstructor[], options?: RegisterModelsOptions): void;
|
|
6
|
+
export declare function isModelRegistered(modelCtor: ModelConstructor): boolean;
|
|
7
|
+
export declare function setModelRegistryStrictMode(enabled: boolean): void;
|
|
8
|
+
export declare function isModelRegistryStrictMode(): boolean;
|
|
9
|
+
//# sourceMappingURL=modelRegistration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelRegistration.d.ts","sourceRoot":"","sources":["../../../../../src/core/orm/mixins/utils/modelRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,cAAc,CAC5B,UAAU,EAAE,gBAAgB,EAAE,EAC9B,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAUN;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAEtE;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjE;AAED,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerModels = registerModels;
|
|
4
|
+
exports.isModelRegistered = isModelRegistered;
|
|
5
|
+
exports.setModelRegistryStrictMode = setModelRegistryStrictMode;
|
|
6
|
+
exports.isModelRegistryStrictMode = isModelRegistryStrictMode;
|
|
7
|
+
const ModelRegistry_1 = require("./ModelRegistry");
|
|
8
|
+
function registerModels(modelCtors, options = {}) {
|
|
9
|
+
if (!Array.isArray(modelCtors)) {
|
|
10
|
+
throw new Error("registerModels expects an array of model constructors.");
|
|
11
|
+
}
|
|
12
|
+
ModelRegistry_1.ModelRegistry.grantMany(modelCtors);
|
|
13
|
+
if (options.strict !== false) {
|
|
14
|
+
ModelRegistry_1.ModelRegistry.setStrictMode(true);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function isModelRegistered(modelCtor) {
|
|
18
|
+
return ModelRegistry_1.ModelRegistry.isGranted(modelCtor);
|
|
19
|
+
}
|
|
20
|
+
function setModelRegistryStrictMode(enabled) {
|
|
21
|
+
ModelRegistry_1.ModelRegistry.setStrictMode(enabled);
|
|
22
|
+
}
|
|
23
|
+
function isModelRegistryStrictMode() {
|
|
24
|
+
return ModelRegistry_1.ModelRegistry.isStrictMode();
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=modelRegistration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelRegistration.js","sourceRoot":"","sources":["../../../../../src/core/orm/mixins/utils/modelRegistration.ts"],"names":[],"mappings":";;AAMA,wCAaC;AAED,8CAEC;AAED,gEAEC;AAED,8DAEC;AA/BD,mDAAuE;AAMvE,SAAgB,cAAc,CAC5B,UAA8B,EAC9B,UAAiC,EAAE;IAEnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,6BAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAEpC,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC7B,6BAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,SAA2B;IAC3D,OAAO,6BAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,0BAA0B,CAAC,OAAgB;IACzD,6BAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,yBAAyB;IACvC,OAAO,6BAAa,CAAC,YAAY,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BelongsTo.d.ts","sourceRoot":"","sources":["../../../../src/core/orm/relations/BelongsTo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,qBAAa,SAAU,SAAQ,QAAQ;IAC/B,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB7D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAwC/D"}
|