@alpha.consultings/eloquent-orm.js 1.0.9 → 1.0.11

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 (157) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/PACKAGE-UPDATE-SUMMARY.md +18 -11
  3. package/README.md +5 -5
  4. package/dist/Model.d.ts +1 -1
  5. package/dist/Model.js +3 -3
  6. package/dist/cli/commands/cacheClear.js +12 -12
  7. package/dist/cli/commands/cacheStats.js +12 -12
  8. package/dist/cli/commands/dbSeed.d.ts +1 -1
  9. package/dist/cli/commands/dbSeed.js +23 -23
  10. package/dist/cli/commands/dbSeedBootstrapPrecheck.d.ts +1 -1
  11. package/dist/cli/commands/dbSeedBootstrapPrecheck.js +2 -2
  12. package/dist/cli/commands/dbSeedFresh.d.ts +1 -1
  13. package/dist/cli/commands/dbSeedFresh.js +10 -10
  14. package/dist/cli/commands/demoScenario.js +11 -11
  15. package/dist/cli/commands/factoryStatus.js +13 -13
  16. package/dist/cli/commands/makeController.js +11 -11
  17. package/dist/cli/commands/makeFactory.js +21 -21
  18. package/dist/cli/commands/makeMigration.d.ts +1 -1
  19. package/dist/cli/commands/makeMigration.js +31 -17
  20. package/dist/cli/commands/makeModel.js +30 -30
  21. package/dist/cli/commands/makeRegistry.d.ts +5 -8
  22. package/dist/cli/commands/makeRegistry.js +18 -68
  23. package/dist/cli/commands/makeScenario.js +49 -43
  24. package/dist/cli/commands/makeSeed.js +12 -9
  25. package/dist/cli/commands/makeService.js +10 -10
  26. package/dist/cli/commands/migrateFresh.d.ts +1 -1
  27. package/dist/cli/commands/migrateFresh.js +14 -14
  28. package/dist/cli/commands/migrateReset.d.ts +1 -1
  29. package/dist/cli/commands/migrateReset.js +4 -4
  30. package/dist/cli/commands/migrateRollback.d.ts +1 -1
  31. package/dist/cli/commands/migrateRollback.js +36 -36
  32. package/dist/cli/commands/migrateRun.d.ts +2 -2
  33. package/dist/cli/commands/migrateRun.js +34 -34
  34. package/dist/cli/commands/migrateStatus.d.ts +1 -1
  35. package/dist/cli/commands/migrateStatus.js +16 -16
  36. package/dist/cli/eloquent.d.ts +1 -1
  37. package/dist/cli/eloquent.js +30 -30
  38. package/dist/cli/utils/ArtifactRoutingReport.d.ts +1 -1
  39. package/dist/cli/utils/ArtifactRoutingReport.js +3 -3
  40. package/dist/cli/utils/ArtifactStorage.d.ts +2 -2
  41. package/dist/cli/utils/ArtifactStorage.js +17 -17
  42. package/dist/cli/utils/AuditTrail.js +2 -2
  43. package/dist/cli/utils/CliBootstrapSupport.d.ts +1 -1
  44. package/dist/cli/utils/CliCommandTargets.d.ts +2 -2
  45. package/dist/cli/utils/CliCommandTargets.js +2 -2
  46. package/dist/cli/utils/CliMakeArtifactCommandRegistration.js +15 -15
  47. package/dist/cli/utils/CliMigrationCommandRegistration.js +29 -29
  48. package/dist/cli/utils/CliProductionGuards.d.ts +1 -1
  49. package/dist/cli/utils/CliProductionGuards.js +6 -6
  50. package/dist/cli/utils/CliScaffoldCommandRegistration.js +13 -13
  51. package/dist/cli/utils/CliSeedScenarioCommandRegistration.js +23 -23
  52. package/dist/cli/utils/CliSupportCommandRegistration.js +8 -8
  53. package/dist/cli/utils/ImportResolver.d.ts +12 -3
  54. package/dist/cli/utils/ImportResolver.js +76 -17
  55. package/dist/cli/utils/ModelIntrospector.d.ts +1 -1
  56. package/dist/cli/utils/ModelIntrospector.js +4 -4
  57. package/dist/cli/utils/ScaffoldGeneratorSupport.js +2 -2
  58. package/dist/cli/utils/ScenarioMorphAliasRouting.js +8 -8
  59. package/dist/cli/utils/SeedBootstrapPrecheck.d.ts +1 -1
  60. package/dist/cli/utils/SeedBootstrapPrecheck.js +10 -10
  61. package/dist/cli/utils/TemplateEngine.js +2 -2
  62. package/dist/cli/utils/factories/Factory.d.ts +1 -1
  63. package/dist/cli/utils/factories/FactoryDisplay.d.ts +1 -1
  64. package/dist/cli/utils/factories/FactoryGraph.js +5 -5
  65. package/dist/cli/utils/factories/FactoryLoader.d.ts +1 -1
  66. package/dist/cli/utils/factories/FactoryLoader.js +4 -4
  67. package/dist/cli/utils/factories/FactoryRegistry.d.ts +3 -3
  68. package/dist/cli/utils/factories/FactoryRegistry.js +10 -10
  69. package/dist/cli/utils/migrations/MigrationLockStrategy.d.ts +1 -1
  70. package/dist/cli/utils/migrations/MigrationLockStrategy.js +2 -2
  71. package/dist/cli/utils/migrations/MigrationTracker.d.ts +2 -2
  72. package/dist/cli/utils/migrations/MigrationTracker.js +6 -6
  73. package/dist/cli/utils/migrations/MongoMigrationTracker.js +3 -3
  74. package/dist/cli/utils/resolveConnectionFlags.d.ts +1 -1
  75. package/dist/cli/utils/resolveConnectionFlags.js +3 -3
  76. package/dist/cli/utils/resolveSqlConnectionFlags.d.ts +1 -1
  77. package/dist/cli/utils/typescript/BaseCommand.d.ts +1 -1
  78. package/dist/cli/utils/typescript/BaseCommand.js +3 -3
  79. package/dist/cli/utils/typescript/tsRuntime.js +62 -9
  80. package/dist/config/database.js +9 -9
  81. package/dist/core/cache/CacheFallbackManager.d.ts +1 -1
  82. package/dist/core/cache/CacheManager.d.ts +1 -1
  83. package/dist/core/cache/CacheManager.js +2 -2
  84. package/dist/core/cache/CacheRegistry.js +4 -4
  85. package/dist/core/cache/drivers/FileCacheDriver.d.ts +1 -1
  86. package/dist/core/cache/drivers/FileCacheDriver.js +2 -2
  87. package/dist/core/cache/drivers/MemcachedCacheDriver.d.ts +1 -1
  88. package/dist/core/cache/drivers/MemcachedCacheDriver.js +2 -2
  89. package/dist/core/cache/drivers/MemoryCacheDriver.d.ts +1 -1
  90. package/dist/core/cache/drivers/MemoryCacheDriver.js +2 -2
  91. package/dist/core/cache/setupCache.js +12 -12
  92. package/dist/core/connection/ConnectionFactory.d.ts +2 -2
  93. package/dist/core/connection/ConnectionFactory.js +9 -9
  94. package/dist/core/connection/DatabaseConnection.d.ts +2 -2
  95. package/dist/core/connection/DatabaseConnection.js +4 -4
  96. package/dist/core/connection/DriverAdapter.d.ts +1 -1
  97. package/dist/core/connection/DriverAdapter.js +2 -2
  98. package/dist/core/connection/resolveConnectionName.d.ts +1 -1
  99. package/dist/core/connection/resolveConnectionName.js +7 -7
  100. package/dist/core/model/BaseModel.d.ts +29 -29
  101. package/dist/core/model/BaseModel.js +38 -38
  102. package/dist/core/model/BaseModelSafeFinderStatics.d.ts +1 -1
  103. package/dist/core/model/BaseModelSafeFinderStatics.js +19 -19
  104. package/dist/core/model/CoreModel.d.ts +4 -4
  105. package/dist/core/model/CoreModel.js +28 -28
  106. package/dist/core/model/CoreModelPersistenceState.d.ts +1 -1
  107. package/dist/core/model/CoreModelSafeFinderSupport.d.ts +2 -2
  108. package/dist/core/model/CoreModelSafeFinderSupport.js +2 -2
  109. package/dist/core/model/CoreModelValidationEvents.d.ts +2 -2
  110. package/dist/core/model/CoreModelValidationEvents.js +2 -2
  111. package/dist/core/model/SafeFinder.d.ts +1 -1
  112. package/dist/core/model/SafeFinder.js +2 -2
  113. package/dist/core/orm/mixins/CastsMixin.js +2 -2
  114. package/dist/core/orm/mixins/HooksMixin.js +8 -8
  115. package/dist/core/orm/mixins/MorphableMixin.js +4 -4
  116. package/dist/core/orm/mixins/PivotHelperMixin.js +3 -3
  117. package/dist/core/orm/mixins/QueryCacheMixin.js +20 -20
  118. package/dist/core/orm/mixins/ScopeMixin.js +2 -2
  119. package/dist/core/orm/mixins/SoftDeletesMixin.js +2 -2
  120. package/dist/core/orm/mixins/utils/HookStore.d.ts +1 -1
  121. package/dist/core/orm/mixins/utils/HookStore.js +2 -2
  122. package/dist/core/orm/mixins/utils/modelRegistration.d.ts +1 -1
  123. package/dist/core/orm/mixins/utils/modelRegistration.js +6 -6
  124. package/dist/core/orm/relations/BelongsTo.d.ts +1 -1
  125. package/dist/core/orm/relations/BelongsTo.js +2 -2
  126. package/dist/core/orm/relations/BelongsToMany.d.ts +1 -1
  127. package/dist/core/orm/relations/BelongsToMany.js +2 -2
  128. package/dist/core/orm/relations/HasMany.d.ts +1 -1
  129. package/dist/core/orm/relations/HasMany.js +2 -2
  130. package/dist/core/orm/relations/HasOne.d.ts +1 -1
  131. package/dist/core/orm/relations/HasOne.js +2 -2
  132. package/dist/core/orm/relations/MorphMany.d.ts +1 -1
  133. package/dist/core/orm/relations/MorphMany.js +2 -2
  134. package/dist/core/orm/relations/MorphOne.d.ts +1 -1
  135. package/dist/core/orm/relations/MorphOne.js +2 -2
  136. package/dist/core/orm/relations/MorphTo.d.ts +1 -1
  137. package/dist/core/orm/relations/MorphTo.js +5 -5
  138. package/dist/core/schema/SchemaBuilder.d.ts +2 -2
  139. package/dist/core/schema/SchemaBuilder.js +9 -9
  140. package/dist/core/schema/SchemaValidator.d.ts +1 -1
  141. package/dist/core/security/AbstractSecurity.d.ts +1 -1
  142. package/dist/core/security/EnvKeySecurity.d.ts +1 -1
  143. package/dist/core/security/EnvKeySecurity.js +2 -2
  144. package/dist/core/security/NoSecurity.d.ts +1 -1
  145. package/dist/core/security/NoSecurity.js +2 -2
  146. package/dist/core/security/SecurityFactory.d.ts +1 -1
  147. package/dist/core/security/SecurityFactory.js +4 -4
  148. package/dist/core/security/index.d.ts +5 -5
  149. package/dist/core/security/index.js +5 -5
  150. package/dist/index.d.ts +10 -10
  151. package/dist/index.js +30 -30
  152. package/esm/Factory.mjs +113 -136
  153. package/esm/Model.mjs +4 -0
  154. package/esm/index.mjs +23 -28
  155. package/package.json +14 -5
  156. package/src/cli/templates/factory.tpl +1 -1
  157. package/src/cli/templates/seed.tpl +1 -1
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CacheRegistry = void 0;
4
4
  // src/core/cache/CacheRegistry.ts
5
- const CacheManager_1 = require("./CacheManager");
5
+ const CacheManager_js_1 = require("./CacheManager.js");
6
6
  /**
7
7
  * 🧩 CacheRegistry
8
8
  * Keeps track of cache keys grouped by model and group name.
@@ -85,7 +85,7 @@ class CacheRegistry {
85
85
  for (const [key, set] of Array.from(this.registry.entries())) {
86
86
  if (key.startsWith(modelName + ":")) {
87
87
  for (const cacheKey of Array.from(set)) {
88
- await CacheManager_1.CacheManager.delete(cacheKey);
88
+ await CacheManager_js_1.CacheManager.delete(cacheKey);
89
89
  }
90
90
  this.registry.delete(key);
91
91
  }
@@ -100,7 +100,7 @@ class CacheRegistry {
100
100
  if (!set)
101
101
  return;
102
102
  for (const cacheKey of Array.from(set)) {
103
- await CacheManager_1.CacheManager.delete(cacheKey);
103
+ await CacheManager_js_1.CacheManager.delete(cacheKey);
104
104
  }
105
105
  this.registry.delete(registryKey);
106
106
  }
@@ -108,7 +108,7 @@ class CacheRegistry {
108
108
  * Clear the entire registry (dangerous: wipes all caches).
109
109
  */
110
110
  static async clearAll() {
111
- await CacheManager_1.CacheManager.clear();
111
+ await CacheManager_js_1.CacheManager.clear();
112
112
  this.registry.clear();
113
113
  }
114
114
  }
@@ -1,4 +1,4 @@
1
- import { CacheDriver } from "../CacheDriver";
1
+ import { CacheDriver } from "../CacheDriver.js";
2
2
  export declare class FileCacheDriver extends CacheDriver {
3
3
  private dir;
4
4
  constructor(dir?: string);
@@ -5,10 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FileCacheDriver = void 0;
7
7
  // src/core/cache/drivers/FileCacheDriver.ts
8
- const CacheDriver_1 = require("../CacheDriver");
8
+ const CacheDriver_js_1 = require("../CacheDriver.js");
9
9
  const promises_1 = __importDefault(require("fs/promises"));
10
10
  const path_1 = __importDefault(require("path"));
11
- class FileCacheDriver extends CacheDriver_1.CacheDriver {
11
+ class FileCacheDriver extends CacheDriver_js_1.CacheDriver {
12
12
  constructor(dir = ".cache") {
13
13
  super();
14
14
  this.dir = dir;
@@ -1,4 +1,4 @@
1
- import { CacheDriver } from "../CacheDriver";
1
+ import { CacheDriver } from "../CacheDriver.js";
2
2
  export declare class MemcachedCacheDriver extends CacheDriver {
3
3
  private client;
4
4
  private defaultTtl;
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.MemcachedCacheDriver = void 0;
7
7
  // src/core/cache/drivers/MemcachedCacheDriver.ts
8
- const CacheDriver_1 = require("../CacheDriver");
8
+ const CacheDriver_js_1 = require("../CacheDriver.js");
9
9
  const memcached_1 = __importDefault(require("memcached"));
10
- class MemcachedCacheDriver extends CacheDriver_1.CacheDriver {
10
+ class MemcachedCacheDriver extends CacheDriver_js_1.CacheDriver {
11
11
  /**
12
12
  * servers: string or array (e.g. "127.0.0.1:11211" or ["a:11211","b:11211"])
13
13
  */
@@ -1,4 +1,4 @@
1
- import { CacheDriver } from "../CacheDriver";
1
+ import { CacheDriver } from "../CacheDriver.js";
2
2
  export declare class MemoryCacheDriver extends CacheDriver {
3
3
  private store;
4
4
  get<T = any>(key: string): Promise<T | null>;
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MemoryCacheDriver = void 0;
4
4
  // src/core/cache/drivers/MemoryCacheDriver.ts
5
- const CacheDriver_1 = require("../CacheDriver");
6
- class MemoryCacheDriver extends CacheDriver_1.CacheDriver {
5
+ const CacheDriver_js_1 = require("../CacheDriver.js");
6
+ class MemoryCacheDriver extends CacheDriver_js_1.CacheDriver {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  this.store = new Map();
@@ -2,36 +2,36 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setupCache = setupCache;
4
4
  // src/core/cache/setupCache.ts
5
- const CacheFallbackManager_1 = require("./CacheFallbackManager");
6
- const MemoryCacheDriver_1 = require("./drivers/MemoryCacheDriver");
7
- const FileCacheDriver_1 = require("./drivers/FileCacheDriver");
8
- const MemcachedCacheDriver_1 = require("./drivers/MemcachedCacheDriver");
9
- const CacheManager_1 = require("./CacheManager"); // still used for simple modes
5
+ const CacheFallbackManager_js_1 = require("./CacheFallbackManager.js");
6
+ const MemoryCacheDriver_js_1 = require("./drivers/MemoryCacheDriver.js");
7
+ const FileCacheDriver_js_1 = require("./drivers/FileCacheDriver.js");
8
+ const MemcachedCacheDriver_js_1 = require("./drivers/MemcachedCacheDriver.js");
9
+ const CacheManager_js_1 = require("./CacheManager.js"); // still used for simple modes
10
10
  function setupCache() {
11
11
  const env = process.env.APP_ENV || process.env.NODE_ENV || "development";
12
12
  console.log(`[CacheManager] Initializing cache for environment: ${env}`);
13
13
  switch (env) {
14
14
  case "development":
15
- CacheManager_1.CacheManager.use(new MemoryCacheDriver_1.MemoryCacheDriver());
15
+ CacheManager_js_1.CacheManager.use(new MemoryCacheDriver_js_1.MemoryCacheDriver());
16
16
  console.log("→ Using MemoryCacheDriver (Development)");
17
17
  break;
18
18
  case "staging":
19
- CacheManager_1.CacheManager.use(new FileCacheDriver_1.FileCacheDriver(process.env.CACHE_DIR || ".cache"));
19
+ CacheManager_js_1.CacheManager.use(new FileCacheDriver_js_1.FileCacheDriver(process.env.CACHE_DIR || ".cache"));
20
20
  console.log("→ Using FileCacheDriver (Staging)");
21
21
  break;
22
22
  case "production":
23
23
  const host = process.env.MEMCACHED_HOST || "127.0.0.1";
24
24
  const port = process.env.MEMCACHED_PORT || "11211";
25
25
  const memcachedUrl = `${host}:${port}`;
26
- const memDriver = new MemcachedCacheDriver_1.MemcachedCacheDriver(memcachedUrl, 120);
27
- const fileDriver = new FileCacheDriver_1.FileCacheDriver(process.env.CACHE_DIR || ".cache");
28
- const memLocal = new MemoryCacheDriver_1.MemoryCacheDriver();
26
+ const memDriver = new MemcachedCacheDriver_js_1.MemcachedCacheDriver(memcachedUrl, 120);
27
+ const fileDriver = new FileCacheDriver_js_1.FileCacheDriver(process.env.CACHE_DIR || ".cache");
28
+ const memLocal = new MemoryCacheDriver_js_1.MemoryCacheDriver();
29
29
  // 🧩 Setup fallback chain
30
- CacheFallbackManager_1.CacheFallbackManager.useChain([memDriver, fileDriver, memLocal]);
30
+ CacheFallbackManager_js_1.CacheFallbackManager.useChain([memDriver, fileDriver, memLocal]);
31
31
  console.log(`→ Using Fallback chain (Production): Memcached → File → Memory`);
32
32
  break;
33
33
  default:
34
- CacheManager_1.CacheManager.use(new MemoryCacheDriver_1.MemoryCacheDriver());
34
+ CacheManager_js_1.CacheManager.use(new MemoryCacheDriver_js_1.MemoryCacheDriver());
35
35
  console.log("→ Using MemoryCacheDriver (Default fallback)");
36
36
  }
37
37
  }
@@ -1,5 +1,5 @@
1
- import { ConnectionName } from "./DatabaseConnection";
2
- import type { DriverAdapter } from "./DriverAdapter";
1
+ import { ConnectionName } from "./DatabaseConnection.js";
2
+ import type { DriverAdapter } from "./DriverAdapter.js";
3
3
  export type { ConnectionName };
4
4
  type ConnectionInstance = any;
5
5
  /**
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getConnection = getConnection;
4
4
  exports.getAdapter = getAdapter;
5
5
  exports.closeAllConnections = closeAllConnections;
6
- const DatabaseConnection_1 = require("./DatabaseConnection");
7
- const DriverAdapter_1 = require("./DriverAdapter");
8
- const database_1 = require("../../config/database");
9
- const SecretRedactor_1 = require("../security/SecretRedactor");
6
+ const DatabaseConnection_js_1 = require("./DatabaseConnection.js");
7
+ const DriverAdapter_js_1 = require("./DriverAdapter.js");
8
+ const database_js_1 = require("../../config/database.js");
9
+ const SecretRedactor_js_1 = require("../security/SecretRedactor.js");
10
10
  const connectionCache = {};
11
11
  const adapterCache = {};
12
12
  const connectionInitCache = {};
@@ -23,7 +23,7 @@ async function getConnection(name) {
23
23
  return await connectionInitCache[name];
24
24
  }
25
25
  console.log(`Creating new ${name} connection...`);
26
- const initPromise = (0, DatabaseConnection_1.connectDB)(name)
26
+ const initPromise = (0, DatabaseConnection_js_1.connectDB)(name)
27
27
  .then((connection) => {
28
28
  connectionCache[name] = connection;
29
29
  return connection;
@@ -46,7 +46,7 @@ async function getAdapter(name) {
46
46
  }
47
47
  const initPromise = getConnection(name)
48
48
  .then((conn) => {
49
- const adapter = (0, DriverAdapter_1.createAdapter)(name, conn);
49
+ const adapter = (0, DriverAdapter_js_1.createAdapter)(name, conn);
50
50
  adapterCache[name] = adapter;
51
51
  return adapter;
52
52
  })
@@ -69,7 +69,7 @@ async function closeAllConnections() {
69
69
  if (!conn)
70
70
  continue;
71
71
  const connectionName = name;
72
- const driver = database_1.dbConfig.connections[connectionName]?.driver;
72
+ const driver = database_js_1.dbConfig.connections[connectionName]?.driver;
73
73
  try {
74
74
  switch (driver) {
75
75
  case "mysql":
@@ -84,7 +84,7 @@ async function closeAllConnections() {
84
84
  }
85
85
  break;
86
86
  case "mongo": {
87
- const closedByTracker = await (0, DatabaseConnection_1.closeMongoClient)(conn);
87
+ const closedByTracker = await (0, DatabaseConnection_js_1.closeMongoClient)(conn);
88
88
  if (!closedByTracker) {
89
89
  const maybeClose = conn;
90
90
  if (typeof maybeClose.close === "function") {
@@ -98,7 +98,7 @@ async function closeAllConnections() {
98
98
  catch (err) {
99
99
  const message = err instanceof Error ? err.message : String(err);
100
100
  if (!message.includes("closed state")) {
101
- console.error(`Error closing ${connectionName}:`, (0, SecretRedactor_1.redactSecretsInValue)(err));
101
+ console.error(`Error closing ${connectionName}:`, (0, SecretRedactor_js_1.redactSecretsInValue)(err));
102
102
  }
103
103
  }
104
104
  delete connectionCache[connectionName];
@@ -1,8 +1,8 @@
1
1
  import { Pool } from "mysql2/promise";
2
2
  import { Client as PgClient } from "pg";
3
3
  import { Db } from "mongodb";
4
- import { dbConfig } from "../../config/database";
5
- import { SQLiteConnectionLike } from "./BetterSqliteConnection";
4
+ import { dbConfig } from "../../config/database.js";
5
+ import { SQLiteConnectionLike } from "./BetterSqliteConnection.js";
6
6
  /** Supported driver names */
7
7
  export type DriverName = "mysql" | "pg" | "sqlite" | "mongo";
8
8
  /** MySQL connection configuration */
@@ -8,8 +8,8 @@ exports.closeMongoClient = closeMongoClient;
8
8
  const pg_1 = require("pg");
9
9
  const mongodb_1 = require("mongodb");
10
10
  const dns_1 = __importDefault(require("dns"));
11
- const database_1 = require("../../config/database");
12
- const BetterSqliteConnection_1 = require("./BetterSqliteConnection");
11
+ const database_js_1 = require("../../config/database.js");
12
+ const BetterSqliteConnection_js_1 = require("./BetterSqliteConnection.js");
13
13
  const mongoClientByDb = new WeakMap();
14
14
  function applyMongoDnsServers(uri, dnsServers) {
15
15
  if (!uri.startsWith("mongodb+srv://"))
@@ -50,7 +50,7 @@ function normalizeMongoConnectionError(connectionName, error) {
50
50
  * 2. Connect Function (Multi-Driver)
51
51
  * ---------------------------------------------------------- */
52
52
  async function connectDB(name) {
53
- const config = database_1.dbConfig.connections[name];
53
+ const config = database_js_1.dbConfig.connections[name];
54
54
  switch (config.driver) {
55
55
  /* ---------- MySQL ---------- */
56
56
  case "mysql": {
@@ -80,7 +80,7 @@ async function connectDB(name) {
80
80
  }
81
81
  /* ---------- SQLite ---------- */
82
82
  case "sqlite": {
83
- return new BetterSqliteConnection_1.BetterSqliteConnection(config.sqlitePath);
83
+ return new BetterSqliteConnection_js_1.BetterSqliteConnection(config.sqlitePath);
84
84
  }
85
85
  /* ---------- MongoDB ---------- */
86
86
  case "mongo": {
@@ -1,4 +1,4 @@
1
- import type { ConnectionInstance, ConnectionName } from "./DatabaseConnection";
1
+ import type { ConnectionInstance, ConnectionName } from "./DatabaseConnection.js";
2
2
  export type AdapterKind = "sql" | "mongo";
3
3
  export interface DriverAdapter {
4
4
  name: ConnectionName;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createAdapter = createAdapter;
4
- const database_1 = require("../../config/database");
4
+ const database_js_1 = require("../../config/database.js");
5
5
  function isSqlDriver(driver) {
6
6
  return driver === "mysql" || driver === "pg" || driver === "sqlite";
7
7
  }
@@ -132,7 +132,7 @@ function buildSqlAdapter(name, connection, driver) {
132
132
  };
133
133
  }
134
134
  function createAdapter(name, connection) {
135
- const config = database_1.dbConfig.connections[name];
135
+ const config = database_js_1.dbConfig.connections[name];
136
136
  const driver = config?.driver;
137
137
  if (driver === "mongo") {
138
138
  throw new Error("Mongo driver does not support SQL adapter APIs.");
@@ -1,4 +1,4 @@
1
- import type { ConnectionName } from "./ConnectionFactory";
1
+ import type { ConnectionName } from "./ConnectionFactory.js";
2
2
  /**
3
3
  * 🔍 Resolve the correct connection name for a model or fallback globally.
4
4
  * Priority:
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveConnectionName = resolveConnectionName;
4
4
  // src/core/connection/resolveConnectionName.ts
5
- const database_1 = require("../../config/database");
5
+ const database_js_1 = require("../../config/database.js");
6
6
  /**
7
7
  * 🔍 Resolve the correct connection name for a model or fallback globally.
8
8
  * Priority:
@@ -17,28 +17,28 @@ function resolveConnectionName(modelClass, options) {
17
17
  if (options?.test) {
18
18
  const explicitModelConnection = modelClass?.connectionName;
19
19
  if (explicitModelConnection &&
20
- Object.prototype.hasOwnProperty.call(database_1.dbConfig.connections, explicitModelConnection)) {
21
- const modelDriver = database_1.dbConfig.connections[explicitModelConnection]?.driver;
20
+ Object.prototype.hasOwnProperty.call(database_js_1.dbConfig.connections, explicitModelConnection)) {
21
+ const modelDriver = database_js_1.dbConfig.connections[explicitModelConnection]?.driver;
22
22
  if (explicitModelConnection.endsWith("_test") || modelDriver === "mongo") {
23
23
  return explicitModelConnection;
24
24
  }
25
25
  }
26
26
  const explicitTest = process.env.DB_TEST_CONNECTION;
27
27
  if (explicitTest &&
28
- Object.prototype.hasOwnProperty.call(database_1.dbConfig.connections, explicitTest)) {
28
+ Object.prototype.hasOwnProperty.call(database_js_1.dbConfig.connections, explicitTest)) {
29
29
  return explicitTest;
30
30
  }
31
31
  for (const fallback of ["mysql_test", "pg_test", "sqlite_test", "mongo_test", "mongo"]) {
32
- if (Object.prototype.hasOwnProperty.call(database_1.dbConfig.connections, fallback)) {
32
+ if (Object.prototype.hasOwnProperty.call(database_js_1.dbConfig.connections, fallback)) {
33
33
  return fallback;
34
34
  }
35
35
  }
36
36
  }
37
37
  const name = modelClass?.connectionName ||
38
38
  process.env.DB_CONNECTION ||
39
- database_1.dbConfig.default ||
39
+ database_js_1.dbConfig.default ||
40
40
  "mysql";
41
- if (!Object.keys(database_1.dbConfig.connections).includes(name)) {
41
+ if (!Object.keys(database_js_1.dbConfig.connections).includes(name)) {
42
42
  console.warn(`⚠️ Invalid connection "${name}" — falling back to "mysql".`);
43
43
  return "mysql";
44
44
  }
@@ -1,9 +1,9 @@
1
- import { ConnectionName } from "../connection/ConnectionFactory";
2
- import type { DriverAdapter } from "../connection/DriverAdapter";
1
+ import { ConnectionName } from "../connection/ConnectionFactory.js";
2
+ import type { DriverAdapter } from "../connection/DriverAdapter.js";
3
3
  import type { Db } from "mongodb";
4
- import type { CoreModelClass } from "../orm/Relation";
5
- import { MorphableMixin, MorphableBaseModel } from "../orm/mixins/MorphableMixin";
6
- import { MorphRegistry } from "../orm/mixins/MorphRegistry";
4
+ import type { CoreModelClass } from "../orm/Relation.js";
5
+ import { MorphableMixin, MorphableBaseModel } from "../orm/mixins/MorphableMixin.js";
6
+ import { MorphRegistry } from "../orm/mixins/MorphRegistry.js";
7
7
  /**
8
8
  * Shared record interface for all models
9
9
  */
@@ -46,16 +46,16 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
46
46
  connectionName: string;
47
47
  getDB(): Promise<unknown>;
48
48
  }) & {
49
- create(this: new (...args: any[]) => import("./SafeFinder").SafeFinderModelInstance, data: Record<string, unknown>): Promise<import("./SafeFinder").SafeFinderModelInstance | null>;
50
- createMany(this: new (...args: any[]) => import("./SafeFinder").SafeFinderModelInstance, rows: Record<string, unknown>[]): Promise<import("./SafeFinder").SafeFinderModelInstance[]>;
51
- find(this: new (...args: any[]) => import("./SafeFinder").SafeFinderModelInstance, id: number | string, pk?: string): Promise<import("./SafeFinder").SafeFinderModelInstance | null>;
52
- updateById(this: new (...args: any[]) => import("./SafeFinder").SafeFinderModelInstance, id: number | string, data: Record<string, unknown>, pk?: string): Promise<void>;
53
- updateMany(this: new (...args: any[]) => import("./SafeFinder").SafeFinderModelInstance, ids: Array<number | string>, data: Record<string, unknown>, pk?: string): Promise<void>;
54
- patchMany(this: new (...args: any[]) => import("./SafeFinder").SafeFinderModelInstance, rows: Record<string, unknown>[], pk?: string): Promise<void>;
55
- deleteById(this: new (...args: any[]) => import("./SafeFinder").SafeFinderModelInstance, id: number | string, pk?: string): Promise<void>;
56
- deleteMany(this: new (...args: any[]) => import("./SafeFinder").SafeFinderModelInstance, ids: Array<number | string>, pk?: string): Promise<void>;
57
- restoreById(this: new (...args: any[]) => import("./SafeFinder").SafeFinderModelInstance, id: number | string, pk?: string): Promise<void>;
58
- restoreMany(this: new (...args: any[]) => import("./SafeFinder").SafeFinderModelInstance, ids: Array<number | string>, pk?: string): Promise<void>;
49
+ create(this: new (...args: any[]) => import("./SafeFinder.js").SafeFinderModelInstance, data: Record<string, unknown>): Promise<import("./SafeFinder.js").SafeFinderModelInstance | null>;
50
+ createMany(this: new (...args: any[]) => import("./SafeFinder.js").SafeFinderModelInstance, rows: Record<string, unknown>[]): Promise<import("./SafeFinder.js").SafeFinderModelInstance[]>;
51
+ find(this: new (...args: any[]) => import("./SafeFinder.js").SafeFinderModelInstance, id: number | string, pk?: string): Promise<import("./SafeFinder.js").SafeFinderModelInstance | null>;
52
+ updateById(this: new (...args: any[]) => import("./SafeFinder.js").SafeFinderModelInstance, id: number | string, data: Record<string, unknown>, pk?: string): Promise<void>;
53
+ updateMany(this: new (...args: any[]) => import("./SafeFinder.js").SafeFinderModelInstance, ids: Array<number | string>, data: Record<string, unknown>, pk?: string): Promise<void>;
54
+ patchMany(this: new (...args: any[]) => import("./SafeFinder.js").SafeFinderModelInstance, rows: Record<string, unknown>[], pk?: string): Promise<void>;
55
+ deleteById(this: new (...args: any[]) => import("./SafeFinder.js").SafeFinderModelInstance, id: number | string, pk?: string): Promise<void>;
56
+ deleteMany(this: new (...args: any[]) => import("./SafeFinder.js").SafeFinderModelInstance, ids: Array<number | string>, pk?: string): Promise<void>;
57
+ restoreById(this: new (...args: any[]) => import("./SafeFinder.js").SafeFinderModelInstance, id: number | string, pk?: string): Promise<void>;
58
+ restoreMany(this: new (...args: any[]) => import("./SafeFinder.js").SafeFinderModelInstance, ids: Array<number | string>, pk?: string): Promise<void>;
59
59
  where<T extends /*elided*/ any & (abstract new (...args: any[]) => {
60
60
  hidden: string[];
61
61
  appends: string[];
@@ -64,7 +64,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
64
64
  serializeValue(value: unknown): unknown;
65
65
  all(): Promise<unknown[]>;
66
66
  find(id: number | string, pk?: string): Promise<unknown | null>;
67
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T, field: string, value: unknown): import("./SafeFinder").SafeFinderQuery<InstanceType<T>>;
67
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T, field: string, value: unknown): import("./SafeFinder.js").SafeFinderQuery<InstanceType<T>>;
68
68
  with<T extends /*elided*/ any & (abstract new (...args: any[]) => {
69
69
  hidden: string[];
70
70
  appends: string[];
@@ -73,7 +73,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
73
73
  serializeValue(value: unknown): unknown;
74
74
  all(): Promise<unknown[]>;
75
75
  find(id: number | string, pk?: string): Promise<unknown | null>;
76
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T, ...relations: string[]): import("./SafeFinder").SafeFinderQuery<InstanceType<T>>;
76
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T, ...relations: string[]): import("./SafeFinder.js").SafeFinderQuery<InstanceType<T>>;
77
77
  active<T extends /*elided*/ any & (abstract new (...args: any[]) => {
78
78
  hidden: string[];
79
79
  appends: string[];
@@ -82,7 +82,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
82
82
  serializeValue(value: unknown): unknown;
83
83
  all(): Promise<unknown[]>;
84
84
  find(id: number | string, pk?: string): Promise<unknown | null>;
85
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T, ...args: unknown[]): import("./SafeFinder").SafeFinderQuery<InstanceType<T>>;
85
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T, ...args: unknown[]): import("./SafeFinder.js").SafeFinderQuery<InstanceType<T>>;
86
86
  inactive<T extends /*elided*/ any & (abstract new (...args: any[]) => {
87
87
  hidden: string[];
88
88
  appends: string[];
@@ -91,7 +91,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
91
91
  serializeValue(value: unknown): unknown;
92
92
  all(): Promise<unknown[]>;
93
93
  find(id: number | string, pk?: string): Promise<unknown | null>;
94
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T, ...args: unknown[]): import("./SafeFinder").SafeFinderQuery<InstanceType<T>>;
94
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T, ...args: unknown[]): import("./SafeFinder.js").SafeFinderQuery<InstanceType<T>>;
95
95
  published<T extends /*elided*/ any & (abstract new (...args: any[]) => {
96
96
  hidden: string[];
97
97
  appends: string[];
@@ -100,7 +100,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
100
100
  serializeValue(value: unknown): unknown;
101
101
  all(): Promise<unknown[]>;
102
102
  find(id: number | string, pk?: string): Promise<unknown | null>;
103
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T, ...args: unknown[]): import("./SafeFinder").SafeFinderQuery<InstanceType<T>>;
103
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T, ...args: unknown[]): import("./SafeFinder.js").SafeFinderQuery<InstanceType<T>>;
104
104
  orderBy<T extends /*elided*/ any & (abstract new (...args: any[]) => {
105
105
  hidden: string[];
106
106
  appends: string[];
@@ -109,7 +109,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
109
109
  serializeValue(value: unknown): unknown;
110
110
  all(): Promise<unknown[]>;
111
111
  find(id: number | string, pk?: string): Promise<unknown | null>;
112
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T, field: string, direction?: import("./SafeFinder").SafeFinderDirection): import("./SafeFinder").SafeFinderQuery<InstanceType<T>>;
112
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T, field: string, direction?: import("./SafeFinder.js").SafeFinderDirection): import("./SafeFinder.js").SafeFinderQuery<InstanceType<T>>;
113
113
  limit<T extends /*elided*/ any & (abstract new (...args: any[]) => {
114
114
  hidden: string[];
115
115
  appends: string[];
@@ -118,7 +118,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
118
118
  serializeValue(value: unknown): unknown;
119
119
  all(): Promise<unknown[]>;
120
120
  find(id: number | string, pk?: string): Promise<unknown | null>;
121
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T, count: number): import("./SafeFinder").SafeFinderQuery<InstanceType<T>>;
121
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T, count: number): import("./SafeFinder.js").SafeFinderQuery<InstanceType<T>>;
122
122
  get<T extends /*elided*/ any & (abstract new (...args: any[]) => {
123
123
  hidden: string[];
124
124
  appends: string[];
@@ -127,7 +127,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
127
127
  serializeValue(value: unknown): unknown;
128
128
  all(): Promise<unknown[]>;
129
129
  find(id: number | string, pk?: string): Promise<unknown | null>;
130
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T): Promise<InstanceType<T>[]>;
130
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T): Promise<InstanceType<T>[]>;
131
131
  first<T extends /*elided*/ any & (abstract new (...args: any[]) => {
132
132
  hidden: string[];
133
133
  appends: string[];
@@ -136,7 +136,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
136
136
  serializeValue(value: unknown): unknown;
137
137
  all(): Promise<unknown[]>;
138
138
  find(id: number | string, pk?: string): Promise<unknown | null>;
139
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T): Promise<InstanceType<T> | null>;
139
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T): Promise<InstanceType<T> | null>;
140
140
  findBy<T extends /*elided*/ any & (abstract new (...args: any[]) => {
141
141
  hidden: string[];
142
142
  appends: string[];
@@ -145,7 +145,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
145
145
  serializeValue(value: unknown): unknown;
146
146
  all(): Promise<unknown[]>;
147
147
  find(id: number | string, pk?: string): Promise<unknown | null>;
148
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T, field: string, value: unknown): import("./SafeFinder").SafeFinderQuery<InstanceType<T>>;
148
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T, field: string, value: unknown): import("./SafeFinder.js").SafeFinderQuery<InstanceType<T>>;
149
149
  findOneBy<T extends /*elided*/ any & (abstract new (...args: any[]) => {
150
150
  hidden: string[];
151
151
  appends: string[];
@@ -154,7 +154,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
154
154
  serializeValue(value: unknown): unknown;
155
155
  all(): Promise<unknown[]>;
156
156
  find(id: number | string, pk?: string): Promise<unknown | null>;
157
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T, field: string, value: unknown): Promise<InstanceType<T> | null>;
157
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T, field: string, value: unknown): Promise<InstanceType<T> | null>;
158
158
  findAllBy<T extends /*elided*/ any & (abstract new (...args: any[]) => {
159
159
  hidden: string[];
160
160
  appends: string[];
@@ -163,7 +163,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
163
163
  serializeValue(value: unknown): unknown;
164
164
  all(): Promise<unknown[]>;
165
165
  find(id: number | string, pk?: string): Promise<unknown | null>;
166
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T, filters: import("./SafeFinder").SafeFinderFilters): Promise<InstanceType<T>[]>;
166
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T, filters: import("./SafeFinder.js").SafeFinderFilters): Promise<InstanceType<T>[]>;
167
167
  existsBy<T extends /*elided*/ any & (abstract new (...args: any[]) => {
168
168
  hidden: string[];
169
169
  appends: string[];
@@ -172,7 +172,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
172
172
  serializeValue(value: unknown): unknown;
173
173
  all(): Promise<unknown[]>;
174
174
  find(id: number | string, pk?: string): Promise<unknown | null>;
175
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable)>(this: T, filters: import("./SafeFinder").SafeFinderFilters): Promise<boolean>;
175
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable)>(this: T, filters: import("./SafeFinder.js").SafeFinderFilters): Promise<boolean>;
176
176
  }) & (abstract new (...args: any[]) => {
177
177
  hidden: string[];
178
178
  appends: string[];
@@ -181,7 +181,7 @@ declare const SafeFinderStaticModel: ((abstract new (...args: any[]) => {
181
181
  serializeValue(value: unknown): unknown;
182
182
  all(): Promise<unknown[]>;
183
183
  find(id: number | string, pk?: string): Promise<unknown | null>;
184
- }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin").CacheableModel) & import("../orm/mixins/QueryCacheMixin").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin").EagerLoadable);
184
+ }) & (abstract new (...args: any[]) => MorphableBaseModel) & AbstractConstructor<ORMCoreContract> & (abstract new (...args: any[]) => import("../orm/mixins/PivotHelperMixin.js").PivotCapableModel) & (abstract new (...args: any[]) => import("../orm/mixins/CastsMixin.js").Castable) & (abstract new (...args: any[]) => import("../orm/mixins/SoftDeletesMixin.js").SoftDeletable) & (abstract new (...args: any[]) => import("../orm/mixins/ScopeMixin.js").ScopableModel<Record<string, unknown>>) & (abstract new (...args: any[]) => import("../orm/mixins/HooksMixin.js").HookableModel) & (abstract new (...args: any[]) => import("../orm/mixins/QueryCacheMixin.js").CacheableModel) & import("../orm/mixins/QueryCacheMixin.js").CacheableConstructor & (abstract new (...args: unknown[]) => import("../orm/mixins/EagerLoadingMixin.js").EagerLoadable);
185
185
  /**
186
186
  * BaseModel
187
187
  * The central abstract model class your application models should extend.