arkormx 2.9.2 → 2.9.3

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/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as applyOperationsToPersistedColumnMappingsState, $t as resolvePrismaType, A as getRuntimePrismaClient, An as writeAppliedMigrationsStateToStore, At as buildInverseRelationLine, B as getRegisteredModels, Bt as deriveRelationFieldName, C as getActiveTransactionClient, Cn as markMigrationRun, Ct as applyMigrationRollbackToPrismaSchema, D as getRuntimeDebugHandler, Dn as resolveMigrationStateFilePath, Dt as buildEnumBlock, E as getRuntimeClient, En as removeAppliedMigration, Et as applyOperationsToPrismaSchema, F as loadArkormConfig, Fn as RelationResolutionException, Ft as buildUniqueConstraintLine, G as loadModelsFrom, Gt as formatDefaultValue, H as getRegisteredSeeders, Ht as escapeRegex, I as resetArkormRuntimeForTests, In as ArkormCollection, It as createMigrationTimestamp, J as registerMigrations, Jt as generateMigrationFile, K as loadSeedersFrom, Kt as formatEnumDefaultValue, L as runArkormTransaction, Ln as ArkormException, Lt as deriveCollectionFieldName, M as isDelegateLike, Mn as UnsupportedAdapterFeatureException, Mt as buildModelBlock, N as isQuerySchemaLike, Nn as SetBasedEagerLoader, Nt as buildPrimaryKeyLine, O as getRuntimePaginationCurrentPageResolver, On as supportsDatabaseMigrationState, Ot as buildFieldLine, P as isTransactionCapableClient, Pt as buildRelationLine, Q as resetRuntimeRegistryForTests, Qt as resolveMigrationClassName, R as getRegisteredFactories, Rt as deriveInverseRelationAlias, S as getActiveTransactionAdapter, Sn as markMigrationApplied, St as applyMigrationRollbackToDatabase, T as getRuntimeAdapter, Tn as readAppliedMigrationsStateFromStore, Tt as applyMigrationToPrismaSchema, U as loadFactoriesFrom, Ut as findEnumBlock, V as getRegisteredPaths, Vt as deriveSingularFieldName, W as loadMigrationsFrom, Wt as findModelBlock, X as registerPaths, Xt as pad, Y as registerModels, Yt as getMigrationPlan, Z as registerSeeders, Zt as resolveEnumName, _ as bindAdapterToModels, _n as deleteAppliedMigrationsStateFromStore, _t as PRISMA_ENUM_REGEX, a as HasOneThroughRelation, an as supportsDatabaseReset, at as getPersistedPrimaryKeyGeneration, b as emitRuntimeDebugEvent, bn as getLatestAppliedMigrations, bt as applyCreateTableOperation, c as HasManyRelation, cn as SchemaBuilder, ct as readPersistedColumnMappingsState, d as BelongsToManyRelation, dn as PrimaryKeyGenerationPlanner, dt as resolveColumnMappingsFilePath, en as runMigrationWithPrisma, et as createEmptyPersistedColumnMappingsState, f as Relation, fn as ForeignKeyBuilder, ft as resolvePersistedMetadataFeatures, g as awaitConfiguredModelsRegistration, gn as createEmptyAppliedMigrationsState, gt as PRISMA_ENUM_MEMBER_REGEX, h as URLDriver, hn as computeMigrationChecksum, ht as writePersistedColumnMappingsState, i as MorphManyRelation, in as supportsDatabaseMigrationExecution, it as getPersistedEnumTsType, j as getUserConfig, jn as RuntimeModuleLoader, jt as buildMigrationSource, k as getRuntimePaginationURLDriverFactory, kn as writeAppliedMigrationsState, kt as buildIndexLine, l as BelongsToRelation, ln as EnumBuilder, lt as rebuildPersistedColumnMappingsState, m as Paginator, mn as buildMigrationRunId, mt as validatePersistedMetadataFeaturesForMigrations, n as MorphToManyRelation, nn as stripPrismaSchemaModelsAndEnums, nt as getPersistedColumnMap, o as HasOneRelation, on as toMigrationFileSlug, ot as getPersistedTableMetadata, p as LengthAwarePaginator, pn as buildMigrationIdentity, pt as syncPersistedColumnMappingsFromState, q as registerFactories, qt as formatRelationAction, r as MorphOneRelation, rn as supportsDatabaseCreation, rt as getPersistedEnumMap, s as HasManyThroughRelation, sn as toModelName, st as getPersistedTimestampColumns, t as MorphToRelation, tn as runPrismaCommand, tt as deletePersistedColumnMappingsState, un as TableBuilder, ut as resetPersistedColumnMappingsCache, v as configureArkormRuntime, vn as findAppliedMigration, vt as PRISMA_MODEL_REGEX, w as getDefaultStubsPath, wn as readAppliedMigrationsState, wt as applyMigrationToDatabase, x as ensureArkormConfigLoading, xn as isMigrationApplied, xt as applyDropTableOperation, y as defineConfig, yn as getLastMigrationRun, yt as applyAlterTableOperation, z as getRegisteredMigrations, zt as deriveRelationAlias } from "./relationship-DtNgcxxv.mjs";
1
+ import { $ as applyOperationsToPersistedColumnMappingsState, $t as resolvePrismaType, A as getRuntimePrismaClient, An as writeAppliedMigrationsStateToStore, At as buildInverseRelationLine, B as getRegisteredModels, Bt as deriveRelationFieldName, C as getActiveTransactionClient, Cn as markMigrationRun, Ct as applyMigrationRollbackToPrismaSchema, D as getRuntimeDebugHandler, Dn as resolveMigrationStateFilePath, Dt as buildEnumBlock, E as getRuntimeClient, En as removeAppliedMigration, Et as applyOperationsToPrismaSchema, F as loadArkormConfig, Fn as RelationResolutionException, Ft as buildUniqueConstraintLine, G as loadModelsFrom, Gt as formatDefaultValue, H as getRegisteredSeeders, Ht as escapeRegex, I as resetArkormRuntimeForTests, In as ArkormCollection, It as createMigrationTimestamp, J as registerMigrations, Jt as generateMigrationFile, K as loadSeedersFrom, Kt as formatEnumDefaultValue, L as runArkormTransaction, Ln as ArkormException, Lt as deriveCollectionFieldName, M as isDelegateLike, Mn as UnsupportedAdapterFeatureException, Mt as buildModelBlock, N as isQuerySchemaLike, Nn as SetBasedEagerLoader, Nt as buildPrimaryKeyLine, O as getRuntimePaginationCurrentPageResolver, On as supportsDatabaseMigrationState, Ot as buildFieldLine, P as isTransactionCapableClient, Pt as buildRelationLine, Q as resetRuntimeRegistryForTests, Qt as resolveMigrationClassName, R as getRegisteredFactories, Rt as deriveInverseRelationAlias, S as getActiveTransactionAdapter, Sn as markMigrationApplied, St as applyMigrationRollbackToDatabase, T as getRuntimeAdapter, Tn as readAppliedMigrationsStateFromStore, Tt as applyMigrationToPrismaSchema, U as loadFactoriesFrom, Ut as findEnumBlock, V as getRegisteredPaths, Vt as deriveSingularFieldName, W as loadMigrationsFrom, Wt as findModelBlock, X as registerPaths, Xt as pad, Y as registerModels, Yt as getMigrationPlan, Z as registerSeeders, Zt as resolveEnumName, _ as bindAdapterToModels, _n as deleteAppliedMigrationsStateFromStore, _t as PRISMA_ENUM_REGEX, a as HasOneThroughRelation, an as supportsDatabaseReset, at as getPersistedPrimaryKeyGeneration, b as emitRuntimeDebugEvent, bn as getLatestAppliedMigrations, bt as applyCreateTableOperation, c as HasManyRelation, cn as SchemaBuilder, ct as readPersistedColumnMappingsState, d as BelongsToManyRelation, dn as PrimaryKeyGenerationPlanner, dt as resolveColumnMappingsFilePath, en as runMigrationWithPrisma, et as createEmptyPersistedColumnMappingsState, f as Relation, fn as ForeignKeyBuilder, ft as resolvePersistedMetadataFeatures, g as awaitConfiguredModelsRegistration, gn as createEmptyAppliedMigrationsState, gt as PRISMA_ENUM_MEMBER_REGEX, h as URLDriver, hn as computeMigrationChecksum, ht as writePersistedColumnMappingsState, i as MorphManyRelation, in as supportsDatabaseMigrationExecution, it as getPersistedEnumTsType, j as getUserConfig, jn as RuntimeModuleLoader, jt as buildMigrationSource, k as getRuntimePaginationURLDriverFactory, kn as writeAppliedMigrationsState, kt as buildIndexLine, l as BelongsToRelation, ln as EnumBuilder, lt as rebuildPersistedColumnMappingsState, m as Paginator, mn as buildMigrationRunId, mt as validatePersistedMetadataFeaturesForMigrations, n as MorphToManyRelation, nn as stripPrismaSchemaModelsAndEnums, nt as getPersistedColumnMap, o as HasOneRelation, on as toMigrationFileSlug, ot as getPersistedTableMetadata, p as LengthAwarePaginator, pn as buildMigrationIdentity, pt as syncPersistedColumnMappingsFromState, q as registerFactories, qt as formatRelationAction, r as MorphOneRelation, rn as supportsDatabaseCreation, rt as getPersistedEnumMap, s as HasManyThroughRelation, sn as toModelName, st as getPersistedTimestampColumns, t as MorphToRelation, tn as runPrismaCommand, tt as deletePersistedColumnMappingsState, un as TableBuilder, ut as resetPersistedColumnMappingsCache, v as configureArkormRuntime, vn as findAppliedMigration, vt as PRISMA_MODEL_REGEX, w as getDefaultStubsPath, wn as readAppliedMigrationsState, wt as applyMigrationToDatabase, x as ensureArkormConfigLoading, xn as isMigrationApplied, xt as applyDropTableOperation, y as defineConfig, yn as getLastMigrationRun, yt as applyAlterTableOperation, z as getRegisteredMigrations, zt as deriveRelationAlias } from "./relationship-BD04hN72.mjs";
2
2
  import { Pool } from "pg";
3
3
  import { join, resolve } from "node:path";
4
4
  import { createRequire } from "module";
@@ -33,9 +33,9 @@ var QueryExecutionException = class extends ArkormException {
33
33
  //#endregion
34
34
  //#region src/adapters/KyselyDatabaseAdapter.ts
35
35
  /**
36
- * Database adapter implementation for Kysely, allowing Arkorm to execute queries using Kysely
36
+ * Database adapter implementation for Kysely, allowing Arkorm to execute queries using Kysely
37
37
  * as the underlying query builder and executor.
38
- *
38
+ *
39
39
  * @author Legacy (3m1n3nc3)
40
40
  * @since 2.0.0-next.0
41
41
  */
@@ -1083,9 +1083,9 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1083
1083
  }
1084
1084
  }
1085
1085
  /**
1086
- * Selects records from the database matching the specified criteria and returns
1086
+ * Selects records from the database matching the specified criteria and returns
1087
1087
  * them as an array of database rows.
1088
- *
1088
+ *
1089
1089
  * @param spec The specification defining the selection criteria.
1090
1090
  * @returns A promise that resolves to an array of database rows.
1091
1091
  */
@@ -1103,10 +1103,10 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1103
1103
  });
1104
1104
  }
1105
1105
  /**
1106
- * Selects a single record from the database matching the specified criteria and returns it as
1107
- * a database row. If multiple records match the criteria, only the first one is returned.
1106
+ * Selects a single record from the database matching the specified criteria and returns it as
1107
+ * a database row. If multiple records match the criteria, only the first one is returned.
1108
1108
  * If no records match, null is returned.
1109
- *
1109
+ *
1110
1110
  * @param spec The specification defining the selection criteria.
1111
1111
  * @returns A promise that resolves to a database row or null if no records match.
1112
1112
  */
@@ -1117,11 +1117,11 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1117
1117
  }))[0] ?? null;
1118
1118
  }
1119
1119
  /**
1120
- * Inserts a new record into the database with the specified values and returns the
1120
+ * Inserts a new record into the database with the specified values and returns the
1121
1121
  * inserted record as a database row.
1122
- *
1123
- * @param spec
1124
- * @returns
1122
+ *
1123
+ * @param spec
1124
+ * @returns
1125
1125
  */
1126
1126
  async insert(spec) {
1127
1127
  const values = this.mapValues(spec.target, spec.values);
@@ -1140,9 +1140,9 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1140
1140
  }, { values: spec.values });
1141
1141
  }
1142
1142
  /**
1143
- * Inserts multiple records into the database with the specified values and returns the number
1144
- * of records successfully inserted.
1145
- *
1143
+ * Inserts multiple records into the database with the specified values and returns the number
1144
+ * of records successfully inserted.
1145
+ *
1146
1146
  * @param spec The specification defining the values to be inserted.
1147
1147
  * @returns A promise that resolves to the number of records successfully inserted.
1148
1148
  */
@@ -1213,11 +1213,11 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1213
1213
  return spec.values.length;
1214
1214
  }
1215
1215
  /**
1216
- * Updates records in the database matching the specified criteria with the given values
1217
- * and returns the updated record as a database row.
1218
- *
1216
+ * Updates records in the database matching the specified criteria with the given values
1217
+ * and returns the updated record as a database row.
1218
+ *
1219
1219
  * @param spec The specification defining the update criteria and values.
1220
- * @returns A promise that resolves to the updated record as a database row, or null if no records match the criteria.
1220
+ * @returns A promise that resolves to the updated record as a database row, or null if no records match the criteria.
1221
1221
  */
1222
1222
  async update(spec) {
1223
1223
  const values = this.mapValues(spec.target, spec.values);
@@ -1244,9 +1244,9 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1244
1244
  }
1245
1245
  /**
1246
1246
  * Updates a single record in the database matching the specified criteria with the given values.
1247
- *
1248
- * @param spec
1249
- * @returns
1247
+ *
1248
+ * @param spec
1249
+ * @returns
1250
1250
  */
1251
1251
  async updateFirst(spec) {
1252
1252
  const values = this.mapValues(spec.target, spec.values);
@@ -1276,9 +1276,9 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1276
1276
  });
1277
1277
  }
1278
1278
  /**
1279
- * Updates multiple records in the database matching the specified criteria with the
1279
+ * Updates multiple records in the database matching the specified criteria with the
1280
1280
  * given values and returns the number of records successfully updated.
1281
- *
1281
+ *
1282
1282
  * @param spec The specification defining the update criteria and values.
1283
1283
  * @returns A promise that resolves to the number of records successfully updated.
1284
1284
  */
@@ -1300,9 +1300,9 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1300
1300
  });
1301
1301
  }
1302
1302
  /**
1303
- * Deletes records from the database matching the specified criteria and returns the
1303
+ * Deletes records from the database matching the specified criteria and returns the
1304
1304
  * deleted record as a database row.
1305
- *
1305
+ *
1306
1306
  * @param spec The specification defining the delete criteria.
1307
1307
  * @returns A promise that resolves to the deleted record as a database row, or null if no records match the criteria.
1308
1308
  */
@@ -1318,9 +1318,9 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1318
1318
  }
1319
1319
  /**
1320
1320
  * Deletes a single record from the database matching the specified criteria and returns it as a database row.
1321
- *
1322
- * @param spec
1323
- * @returns
1321
+ *
1322
+ * @param spec
1323
+ * @returns
1324
1324
  */
1325
1325
  async deleteFirst(spec) {
1326
1326
  const primaryKey = this.resolvePrimaryKey(spec.target);
@@ -1337,9 +1337,9 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1337
1337
  }, { where: spec.where });
1338
1338
  }
1339
1339
  /**
1340
- * Deletes multiple records from the database matching the specified criteria and
1340
+ * Deletes multiple records from the database matching the specified criteria and
1341
1341
  * returns the number of records successfully deleted.
1342
- *
1342
+ *
1343
1343
  * @param spec The specification defining the delete criteria.
1344
1344
  * @returns A promise that resolves to the number of records successfully deleted.
1345
1345
  */
@@ -1352,9 +1352,9 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1352
1352
  return await this.executeWithDebug("deleteMany", spec.target, statement, (rows) => rows.length, { where: spec.where });
1353
1353
  }
1354
1354
  /**
1355
- * Counts the number of records in the database matching the specified criteria and returns
1355
+ * Counts the number of records in the database matching the specified criteria and returns
1356
1356
  * the count as a number.
1357
- *
1357
+ *
1358
1358
  * @param spec The specification defining the count criteria.
1359
1359
  * @returns A promise that resolves to the number of records matching the criteria.
1360
1360
  */
@@ -1368,7 +1368,7 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1368
1368
  }
1369
1369
  /**
1370
1370
  * Checks for the existence of records matching the specified criteria.
1371
- *
1371
+ *
1372
1372
  * @param spec The specification defining the existence criteria.
1373
1373
  * @returns A promise that resolves to a boolean indicating whether any records match the criteria.
1374
1374
  */
@@ -1382,9 +1382,9 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1382
1382
  }
1383
1383
  /**
1384
1384
  * Loads relations for the given models based on the specified relation load plans.
1385
- *
1385
+ *
1386
1386
  * @param spec The specification defining the models and their relations to be loaded.
1387
- * @returns
1387
+ * @returns
1388
1388
  */
1389
1389
  async loadRelations(spec) {
1390
1390
  if (spec.models.length === 0 || spec.relations.length === 0) return;
@@ -1520,10 +1520,10 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1520
1520
  });
1521
1521
  }
1522
1522
  /**
1523
- * Executes a series of database operations within a transaction.
1524
- * The provided callback function is called with a new instance of the
1523
+ * Executes a series of database operations within a transaction.
1524
+ * The provided callback function is called with a new instance of the
1525
1525
  * KyselyDatabaseAdapter that is bound to the transaction context.
1526
- *
1526
+ *
1527
1527
  * @param callback The callback function containing the database operations to be executed within the transaction.
1528
1528
  * @param context The transaction context specifying options such as read-only mode and isolation level.
1529
1529
  * @returns A promise that resolves to the result of the callback function.
@@ -1538,12 +1538,12 @@ var KyselyDatabaseAdapter = class KyselyDatabaseAdapter {
1538
1538
  }
1539
1539
  };
1540
1540
  /**
1541
- * Factory function to create a KyselyDatabaseAdapter instance with the given Kysely executor
1541
+ * Factory function to create a KyselyDatabaseAdapter instance with the given Kysely executor
1542
1542
  * and optional table name mapping.
1543
- *
1543
+ *
1544
1544
  * @param db The Kysely executor to be used by the adapter.
1545
1545
  * @param mapping Optional table name mapping for the adapter.
1546
- * @returns A new instance of KyselyDatabaseAdapter.
1546
+ * @returns A new instance of KyselyDatabaseAdapter.
1547
1547
  */
1548
1548
  const createKyselyAdapter = (db, mapping = {}) => {
1549
1549
  return new KyselyDatabaseAdapter(db, mapping);
@@ -1602,7 +1602,7 @@ function createPrismaDelegateMap(prisma, mapping = {}) {
1602
1602
  }
1603
1603
  /**
1604
1604
  * Infer the Prisma delegate name for a given model name using a simple convention.
1605
- *
1605
+ *
1606
1606
  * @param modelName The name of the model to infer the delegate name for.
1607
1607
  * @returns The inferred Prisma delegate name.
1608
1608
  */
@@ -1613,9 +1613,9 @@ function inferDelegateName(modelName) {
1613
1613
  //#endregion
1614
1614
  //#region src/adapters/PrismaDatabaseAdapter.ts
1615
1615
  /**
1616
- * Database adapter implementation for Prisma, allowing Arkorm to execute queries using Prisma
1616
+ * Database adapter implementation for Prisma, allowing Arkorm to execute queries using Prisma
1617
1617
  * as the underlying query builder and executor.
1618
- *
1618
+ *
1619
1619
  * @author Legacy (3m1n3nc3)
1620
1620
  * @since 2.0.0-next.0
1621
1621
  */
@@ -1884,9 +1884,9 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
1884
1884
  * Prisma include/select arguments, but the adapter does not advertise the
1885
1885
  * adapter-owned batch relation load seam. QueryBuilder eager loads therefore stay
1886
1886
  * on Arkorm's generic relation loader on the Prisma compatibility path.
1887
- *
1888
- * @param spec
1889
- * @returns
1887
+ *
1888
+ * @param spec
1889
+ * @returns
1890
1890
  */
1891
1891
  async select(spec) {
1892
1892
  const delegate = this.resolveDelegate(spec.target);
@@ -1896,10 +1896,10 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
1896
1896
  }, { args });
1897
1897
  }
1898
1898
  /**
1899
- * Selects a single record matching the specified criteria.
1900
- *
1901
- * @param spec
1902
- * @returns
1899
+ * Selects a single record matching the specified criteria.
1900
+ *
1901
+ * @param spec
1902
+ * @returns
1903
1903
  */
1904
1904
  async selectOne(spec) {
1905
1905
  const delegate = this.resolveDelegate(spec.target);
@@ -1910,9 +1910,9 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
1910
1910
  }
1911
1911
  /**
1912
1912
  * Inserts a single record into the database and returns the created record.
1913
- *
1914
- * @param spec
1915
- * @returns
1913
+ *
1914
+ * @param spec
1915
+ * @returns
1916
1916
  */
1917
1917
  async insert(spec) {
1918
1918
  const delegate = this.resolveDelegate(spec.target);
@@ -1921,10 +1921,10 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
1921
1921
  }, { values: spec.values });
1922
1922
  }
1923
1923
  /**
1924
- * Inserts multiple records into the database.
1925
- *
1926
- * @param spec
1927
- * @returns
1924
+ * Inserts multiple records into the database.
1925
+ *
1926
+ * @param spec
1927
+ * @returns
1928
1928
  */
1929
1929
  async insertMany(spec) {
1930
1930
  const delegate = this.resolveDelegate(spec.target);
@@ -1953,9 +1953,9 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
1953
1953
  }
1954
1954
  /**
1955
1955
  * Updates a single record matching the specified criteria and returns the updated record.
1956
- *
1957
- * @param spec
1958
- * @returns
1956
+ *
1957
+ * @param spec
1958
+ * @returns
1959
1959
  */
1960
1960
  async update(spec) {
1961
1961
  const delegate = this.resolveDelegate(spec.target);
@@ -1972,10 +1972,10 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
1972
1972
  });
1973
1973
  }
1974
1974
  /**
1975
- * Updates multiple records matching the specified criteria.
1976
- *
1977
- * @param spec
1978
- * @returns
1975
+ * Updates multiple records matching the specified criteria.
1976
+ *
1977
+ * @param spec
1978
+ * @returns
1979
1979
  */
1980
1980
  async updateMany(spec) {
1981
1981
  const delegate = this.resolveDelegate(spec.target);
@@ -2005,9 +2005,9 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
2005
2005
  }
2006
2006
  /**
2007
2007
  * Deletes a single record matching the specified criteria and returns the deleted record.
2008
- *
2009
- * @param spec
2010
- * @returns
2008
+ *
2009
+ * @param spec
2010
+ * @returns
2011
2011
  */
2012
2012
  async delete(spec) {
2013
2013
  const delegate = this.resolveDelegate(spec.target);
@@ -2018,10 +2018,10 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
2018
2018
  }, { where });
2019
2019
  }
2020
2020
  /**
2021
- * Deletes multiple records matching the specified criteria.
2022
- *
2023
- * @param spec
2024
- * @returns
2021
+ * Deletes multiple records matching the specified criteria.
2022
+ *
2023
+ * @param spec
2024
+ * @returns
2025
2025
  */
2026
2026
  async deleteMany(spec) {
2027
2027
  const delegate = this.resolveDelegate(spec.target);
@@ -2036,9 +2036,9 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
2036
2036
  }
2037
2037
  /**
2038
2038
  * Counts the number of records matching the specified criteria.
2039
- *
2040
- * @param spec
2041
- * @returns
2039
+ *
2040
+ * @param spec
2041
+ * @returns
2042
2042
  */
2043
2043
  async count(spec) {
2044
2044
  const delegate = this.resolveDelegate(spec.target);
@@ -2049,9 +2049,9 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
2049
2049
  }
2050
2050
  /**
2051
2051
  * Checks for the existence of records matching the specified criteria.
2052
- *
2053
- * @param spec
2054
- * @returns
2052
+ *
2053
+ * @param spec
2054
+ * @returns
2055
2055
  */
2056
2056
  async exists(spec) {
2057
2057
  return await this.selectOne({
@@ -2061,8 +2061,8 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
2061
2061
  }
2062
2062
  /**
2063
2063
  * Loads related models for a batch of parent records based on the specified relation load plans.
2064
- *
2065
- * @param _spec
2064
+ *
2065
+ * @param _spec
2066
2066
  */
2067
2067
  async loadRelations(_spec) {
2068
2068
  throw new UnsupportedAdapterFeatureException("Adapter-owned relation batch loading is intentionally unavailable on the Prisma compatibility adapter; eager loading stays on Arkorm's generic loader for this path.", {
@@ -2071,12 +2071,12 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
2071
2071
  });
2072
2072
  }
2073
2073
  /**
2074
- * Executes a series of database operations within a transaction.
2074
+ * Executes a series of database operations within a transaction.
2075
2075
  * If the underlying Prisma client does not support transactions, an exception is thrown.
2076
- *
2077
- * @param callback
2078
- * @param context
2079
- * @returns
2076
+ *
2077
+ * @param callback
2078
+ * @param context
2079
+ * @returns
2080
2080
  */
2081
2081
  async transaction(callback, context = {}) {
2082
2082
  if (!this.hasTransactionSupport(this.prisma)) throw new UnsupportedAdapterFeatureException("Transactions are not supported by the Prisma compatibility adapter.", {
@@ -2093,9 +2093,9 @@ var PrismaDatabaseAdapter = class PrismaDatabaseAdapter {
2093
2093
  }
2094
2094
  };
2095
2095
  /**
2096
- * Factory function to create a PrismaDatabaseAdapter instance with the given
2096
+ * Factory function to create a PrismaDatabaseAdapter instance with the given
2097
2097
  * Prisma client and optional delegate name mapping.
2098
- *
2098
+ *
2099
2099
  * @param prisma The Prisma client instance to be used by the adapter.
2100
2100
  * @param mapping Optional mapping of delegate names.
2101
2101
  * @returns A new instance of PrismaDatabaseAdapter.
@@ -2104,9 +2104,9 @@ const createPrismaDatabaseAdapter = (prisma, mapping = {}) => {
2104
2104
  return new PrismaDatabaseAdapter(prisma, mapping);
2105
2105
  };
2106
2106
  /**
2107
- * Alias for createPrismaDatabaseAdapter to maintain backward compatibility with
2107
+ * Alias for createPrismaDatabaseAdapter to maintain backward compatibility with
2108
2108
  * previous versions of Arkorm that exported the adapter factory under a different name.
2109
- *
2109
+ *
2110
2110
  * @param prisma The Prisma client instance to be used by the adapter.
2111
2111
  * @param mapping Optional mapping of delegate names.
2112
2112
  * @returns A new instance of PrismaDatabaseAdapter.
@@ -2136,10 +2136,10 @@ var Arkorm = class Arkorm {
2136
2136
  }
2137
2137
  /**
2138
2138
  * Configure the ArkORM runtime with the provided runtime client resolver and adapter-first options.
2139
- *
2140
- * @param client
2141
- * @param options
2142
- * @returns
2139
+ *
2140
+ * @param client
2141
+ * @param options
2142
+ * @returns
2143
2143
  */
2144
2144
  static configure(options, client) {
2145
2145
  return configureArkormRuntime(client, options);
@@ -2156,113 +2156,113 @@ var Arkorm = class Arkorm {
2156
2156
  }
2157
2157
  /**
2158
2158
  * Register migration constructors directly without relying on runtime discovery.
2159
- *
2160
- * @param migrations
2161
- * @returns
2159
+ *
2160
+ * @param migrations
2161
+ * @returns
2162
2162
  */
2163
2163
  static registerMigrations(...migrations) {
2164
2164
  return registerMigrations(...migrations);
2165
2165
  }
2166
2166
  /**
2167
2167
  * Register seeder constructors directly without relying on runtime discovery.
2168
- *
2169
- * @param seeders
2170
- * @returns
2168
+ *
2169
+ * @param seeders
2170
+ * @returns
2171
2171
  */
2172
2172
  static registerSeeders(...seeders) {
2173
2173
  return registerSeeders(...seeders);
2174
2174
  }
2175
2175
  /**
2176
2176
  * Register model constructors directly without relying on runtime discovery.
2177
- *
2178
- * @param models
2179
- * @returns
2177
+ *
2178
+ * @param models
2179
+ * @returns
2180
2180
  */
2181
2181
  static registerModels(...models) {
2182
2182
  return registerModels(...models);
2183
2183
  }
2184
2184
  /**
2185
2185
  * Register factory constructors or instances directly without relying on runtime discovery.
2186
- *
2187
- * @param factories
2188
- * @returns
2186
+ *
2187
+ * @param factories
2188
+ * @returns
2189
2189
  */
2190
2190
  static registerFactories(...factories) {
2191
2191
  return registerFactories(...factories);
2192
2192
  }
2193
2193
  /**
2194
2194
  * Register additional runtime discovery paths for models without replacing configured paths.
2195
- *
2196
- * @param paths
2197
- * @returns
2195
+ *
2196
+ * @param paths
2197
+ * @returns
2198
2198
  */
2199
2199
  static loadModelsFrom(paths) {
2200
2200
  return loadModelsFrom(paths);
2201
2201
  }
2202
2202
  /**
2203
2203
  * Register additional runtime discovery paths for seeders without replacing configured paths.
2204
- *
2205
- * @param paths
2206
- * @returns
2204
+ *
2205
+ * @param paths
2206
+ * @returns
2207
2207
  */
2208
2208
  static loadSeedersFrom(paths) {
2209
2209
  return loadSeedersFrom(paths);
2210
2210
  }
2211
2211
  /**
2212
2212
  * Register additional runtime discovery paths for migrations without replacing configured paths.
2213
- *
2214
- * @param paths
2215
- * @returns
2213
+ *
2214
+ * @param paths
2215
+ * @returns
2216
2216
  */
2217
2217
  static loadMigrationsFrom(paths) {
2218
2218
  return loadMigrationsFrom(paths);
2219
2219
  }
2220
2220
  /**
2221
2221
  * Register additional runtime discovery paths for factories without replacing configured paths.
2222
- *
2223
- * @param paths
2224
- * @returns
2222
+ *
2223
+ * @param paths
2224
+ * @returns
2225
2225
  */
2226
2226
  static loadFactoriesFrom(paths) {
2227
2227
  return loadFactoriesFrom(paths);
2228
2228
  }
2229
2229
  /**
2230
2230
  * Get registered runtime discovery paths or registered constructors for a specific type.
2231
- *
2232
- * @param key
2233
- * @returns
2231
+ *
2232
+ * @param key
2233
+ * @returns
2234
2234
  */
2235
2235
  static getRegisteredPaths(key) {
2236
2236
  return getRegisteredPaths(key);
2237
2237
  }
2238
2238
  /**
2239
2239
  * Get registered migration constructors instances
2240
- *
2241
- * @returns
2240
+ *
2241
+ * @returns
2242
2242
  */
2243
2243
  static getRegisteredMigrations() {
2244
2244
  return getRegisteredMigrations();
2245
2245
  }
2246
2246
  /**
2247
2247
  * Get registered seeder constructors instances.
2248
- *
2249
- * @returns
2248
+ *
2249
+ * @returns
2250
2250
  */
2251
2251
  static getRegisteredSeeders() {
2252
2252
  return getRegisteredSeeders();
2253
2253
  }
2254
2254
  /**
2255
2255
  * Get registered model constructors instances.
2256
- *
2257
- * @returns
2256
+ *
2257
+ * @returns
2258
2258
  */
2259
2259
  static getRegisteredModels() {
2260
2260
  return getRegisteredModels();
2261
2261
  }
2262
2262
  /**
2263
2263
  * Get registered factory constructors or instances.
2264
- *
2265
- * @returns
2264
+ *
2265
+ * @returns
2266
2266
  */
2267
2267
  static getRegisteredFactories() {
2268
2268
  return getRegisteredFactories();
@@ -2390,12 +2390,12 @@ var CliApp = class {
2390
2390
  return relPath;
2391
2391
  }
2392
2392
  /**
2393
- * Utility to format a value for logging, converting absolute paths under current
2393
+ * Utility to format a value for logging, converting absolute paths under current
2394
2394
  * working directory into relative display paths.
2395
- *
2396
- * @param name
2397
- * @param value
2398
- * @returns
2395
+ *
2396
+ * @param name
2397
+ * @param value
2398
+ * @returns
2399
2399
  */
2400
2400
  splitLogger(name, value) {
2401
2401
  value = value.includes(process.cwd()) ? this.formatPathForLog(value) : value;
@@ -2484,7 +2484,7 @@ var CliApp = class {
2484
2484
  }
2485
2485
  /**
2486
2486
  * Resolve a configuration path with a fallback default
2487
- *
2487
+ *
2488
2488
  * @param key The configuration key to resolve
2489
2489
  * @param fallback The fallback value if the configuration key is not set
2490
2490
  * @returns The resolved configuration path
@@ -2496,19 +2496,19 @@ var CliApp = class {
2496
2496
  }
2497
2497
  /**
2498
2498
  * Resolve the path to a stub file based on configuration
2499
- *
2500
- * @param stubName
2501
- * @returns
2499
+ *
2500
+ * @param stubName
2501
+ * @returns
2502
2502
  */
2503
2503
  resolveStubPath(stubName) {
2504
2504
  return join$1(this.resolveConfigPath("stubs", getDefaultStubsPath()), stubName);
2505
2505
  }
2506
2506
  /**
2507
2507
  * Generate a factory file for a given model name.
2508
- *
2509
- * @param name
2510
- * @param options
2511
- * @returns
2508
+ *
2509
+ * @param name
2510
+ * @param options
2511
+ * @returns
2512
2512
  */
2513
2513
  makeFactory(name, options = {}) {
2514
2514
  const baseName = str(name.replace(/Factory$/, "")).pascal();
@@ -2530,10 +2530,10 @@ var CliApp = class {
2530
2530
  }
2531
2531
  /**
2532
2532
  * Generate a seeder file for a given name.
2533
- *
2534
- * @param name
2535
- * @param options
2536
- * @returns
2533
+ *
2534
+ * @param name
2535
+ * @param options
2536
+ * @returns
2537
2537
  */
2538
2538
  makeSeeder(name, options = {}) {
2539
2539
  const seederName = `${str(name.replace(/Seeder$/, "")).pascal()}Seeder`;
@@ -2547,7 +2547,7 @@ var CliApp = class {
2547
2547
  }
2548
2548
  /**
2549
2549
  * Generate a migration file for a given name.
2550
- *
2550
+ *
2551
2551
  * @param name The name of the migration.
2552
2552
  * @returns An object containing the name and path of the generated migration file.
2553
2553
  */
@@ -2563,10 +2563,10 @@ var CliApp = class {
2563
2563
  }
2564
2564
  /**
2565
2565
  * Generate a model file along with optional factory, seeder, and migration files.
2566
- *
2567
- * @param name
2568
- * @param options
2569
- * @returns
2566
+ *
2567
+ * @param name
2568
+ * @param options
2569
+ * @returns
2570
2570
  */
2571
2571
  makeModel(name, options = {}) {
2572
2572
  const baseName = str(name.replace(/Model$/, "")).pascal().toString();
@@ -2610,10 +2610,10 @@ var CliApp = class {
2610
2610
  return created;
2611
2611
  }
2612
2612
  /**
2613
- * Ensure that the Prisma schema has a model entry for the given model
2613
+ * Ensure that the Prisma schema has a model entry for the given model
2614
2614
  * and table names.
2615
2615
  * If the entry does not exist, it will be created with a default `id` field.
2616
- *
2616
+ *
2617
2617
  * @param modelName The name of the model to ensure in the Prisma schema.
2618
2618
  * @param tableName The table name to ensure in the Prisma schema.
2619
2619
  */
@@ -2645,7 +2645,7 @@ var CliApp = class {
2645
2645
  }
2646
2646
  /**
2647
2647
  * Convert a Prisma scalar type to its corresponding TypeScript type.
2648
- *
2648
+ *
2649
2649
  * @param value The Prisma scalar type.
2650
2650
  * @returns The corresponding TypeScript type.
2651
2651
  */
@@ -2938,9 +2938,9 @@ var CliApp = class {
2938
2938
  return isList ? `Array<${baseType}>` : baseType;
2939
2939
  }
2940
2940
  /**
2941
- * Parse the Prisma schema to extract model definitions and their fields, focusing
2941
+ * Parse the Prisma schema to extract model definitions and their fields, focusing
2942
2942
  * on scalar types.
2943
- *
2943
+ *
2944
2944
  * @param schema The Prisma schema as a string.
2945
2945
  * @returns An array of model definitions with their fields.
2946
2946
  */
@@ -2988,11 +2988,11 @@ var CliApp = class {
2988
2988
  return models;
2989
2989
  }
2990
2990
  /**
2991
- * Sync model attribute declarations in a model file based on the
2991
+ * Sync model attribute declarations in a model file based on the
2992
2992
  * provided declarations.
2993
- * This method takes the source code of a model file and a list of
2993
+ * This method takes the source code of a model file and a list of
2994
2994
  * attribute declarations,
2995
- *
2995
+ *
2996
2996
  * @param modelSource The source code of the model file.
2997
2997
  * @param declarations A list of attribute declarations to sync.
2998
2998
  * @returns An object containing the updated content and a flag indicating if it was updated.
@@ -3088,12 +3088,12 @@ var CliApp = class {
3088
3088
  }
3089
3089
  /**
3090
3090
  * Sync model attribute declarations in model files based on the Prisma schema.
3091
- * This method reads the Prisma schema to extract model definitions and their
3092
- * scalar fields, then updates the corresponding model files to include `declare`
3091
+ * This method reads the Prisma schema to extract model definitions and their
3092
+ * scalar fields, then updates the corresponding model files to include `declare`
3093
3093
  * statements for these fields. It returns an object containing the paths of the
3094
- * schema and models, the total number of model files processed, and lists of
3094
+ * schema and models, the total number of model files processed, and lists of
3095
3095
  * updated and skipped files.
3096
- *
3096
+ *
3097
3097
  * @param options Optional parameters to specify custom paths for the Prisma schema and models directory.
3098
3098
  * @returns An object with details about the synchronization process, including updated and skipped files.
3099
3099
  */
@@ -3124,7 +3124,7 @@ var CliApp = class {
3124
3124
  //#endregion
3125
3125
  //#region src/cli/commands/InitCommand.ts
3126
3126
  /**
3127
- * The InitCommand class implements the CLI command for initializing Arkormˣ by creating
3127
+ * The InitCommand class implements the CLI command for initializing Arkormˣ by creating
3128
3128
  * a default config file in the current directory.
3129
3129
  *
3130
3130
  * @author Legacy (3m1n3nc3)
@@ -3183,8 +3183,8 @@ var MakeFactoryCommand = class extends Command {
3183
3183
  }
3184
3184
  /**
3185
3185
  * Command handler for the make:factory command.
3186
- *
3187
- * @returns
3186
+ *
3187
+ * @returns
3188
3188
  */
3189
3189
  async handle() {
3190
3190
  this.app.command = this;
@@ -3213,8 +3213,8 @@ var MakeMigrationCommand = class extends Command {
3213
3213
  }
3214
3214
  /**
3215
3215
  * Command handler for the make:migration command.
3216
- *
3217
- * @returns
3216
+ *
3217
+ * @returns
3218
3218
  */
3219
3219
  async handle() {
3220
3220
  this.app.command = this;
@@ -3228,7 +3228,7 @@ var MakeMigrationCommand = class extends Command {
3228
3228
  //#endregion
3229
3229
  //#region src/cli/commands/MakeModelCommand.ts
3230
3230
  /**
3231
- * The MakeModelCommand class implements the CLI command for creating new model
3231
+ * The MakeModelCommand class implements the CLI command for creating new model
3232
3232
  * classes along with optional linked resources such as factories, seeders, and migrations.
3233
3233
  *
3234
3234
  * @author Legacy (3m1n3nc3)
@@ -3250,8 +3250,8 @@ var MakeModelCommand = class extends Command {
3250
3250
  }
3251
3251
  /**
3252
3252
  * Command handler for the make:model command.
3253
- *
3254
- * @returns
3253
+ *
3254
+ * @returns
3255
3255
  */
3256
3256
  async handle() {
3257
3257
  this.app.command = this;
@@ -3301,8 +3301,8 @@ var MakeSeederCommand = class extends Command {
3301
3301
  //#region src/database/Migration.ts
3302
3302
  const MIGRATION_BRAND = Symbol.for("arkormx.migration");
3303
3303
  /**
3304
- * The Migration class serves as a base for defining database migrations, requiring
3305
- * the implementation of `up` and `down` methods to specify the changes to be
3304
+ * The Migration class serves as a base for defining database migrations, requiring
3305
+ * the implementation of `up` and `down` methods to specify the changes to be
3306
3306
  * applied or reverted in the database schema.
3307
3307
  *
3308
3308
  * @author Legacy (3m1n3nc3)
@@ -3317,7 +3317,7 @@ var Migration = class {
3317
3317
  //#endregion
3318
3318
  //#region src/cli/commands/MigrateCommand.ts
3319
3319
  /**
3320
- * The MigrateCommand class implements the CLI command for applying migration
3320
+ * The MigrateCommand class implements the CLI command for applying migration
3321
3321
  * classes to the Prisma schema and running the Prisma workflow.
3322
3322
  *
3323
3323
  * @author Legacy (3m1n3nc3)
@@ -3341,12 +3341,12 @@ var MigrateCommand = class extends Command {
3341
3341
  }
3342
3342
  /**
3343
3343
  * Command handler for the migrate command.
3344
- * This method is responsible for orchestrating the migration
3345
- * process, including loading migration classes, applying them to
3346
- * the Prisma schema, and running the appropriate Prisma commands
3344
+ * This method is responsible for orchestrating the migration
3345
+ * process, including loading migration classes, applying them to
3346
+ * the Prisma schema, and running the appropriate Prisma commands
3347
3347
  * based on the provided options.
3348
- *
3349
- * @returns
3348
+ *
3349
+ * @returns
3350
3350
  */
3351
3351
  async handle() {
3352
3352
  this.app.command = this;
@@ -3461,10 +3461,10 @@ var MigrateCommand = class extends Command {
3461
3461
  }
3462
3462
  /**
3463
3463
  * Load migration classes from a specific file or by class name.
3464
- *
3465
- * @param migrationsDir
3466
- * @param name
3467
- * @returns
3464
+ *
3465
+ * @param migrationsDir
3466
+ * @param name
3467
+ * @returns
3468
3468
  */
3469
3469
  async loadNamedMigration(migrationsDirs, name) {
3470
3470
  if (!name) return [[void 0, ""]];
@@ -3487,9 +3487,9 @@ var MigrateCommand = class extends Command {
3487
3487
  }
3488
3488
  /**
3489
3489
  * Load migration classes from a given file path.
3490
- *
3491
- * @param filePath
3492
- * @returns
3490
+ *
3491
+ * @param filePath
3492
+ * @returns
3493
3493
  */
3494
3494
  async loadMigrationClassesFromFile(filePath) {
3495
3495
  const imported = await RuntimeModuleLoader.load(filePath);
@@ -3908,7 +3908,7 @@ var ModelsSyncCommand = class extends Command {
3908
3908
  //#region src/database/Seeder.ts
3909
3909
  const SEEDER_BRAND = Symbol.for("arkormx.seeder");
3910
3910
  /**
3911
- * The Seeder class serves as a base for defining database seeders, which are
3911
+ * The Seeder class serves as a base for defining database seeders, which are
3912
3912
  * used to populate the database with initial or test data.
3913
3913
  *
3914
3914
  * @author Legacy (3m1n3nc3)
@@ -3923,7 +3923,7 @@ var Seeder = class Seeder {
3923
3923
  }
3924
3924
  /**
3925
3925
  * Runs one or more seeders.
3926
- *
3926
+ *
3927
3927
  * @param seeders The seeders to be run.
3928
3928
  */
3929
3929
  async call(...seeders) {
@@ -3931,9 +3931,9 @@ var Seeder = class Seeder {
3931
3931
  }
3932
3932
  /**
3933
3933
  * Run seeders and return every seeder class executed, including nested calls.
3934
- *
3935
- * @param seeders
3936
- * @returns
3934
+ *
3935
+ * @param seeders
3936
+ * @returns
3937
3937
  */
3938
3938
  static async runWithReport(...seeders) {
3939
3939
  const report = [];
@@ -3943,8 +3943,8 @@ var Seeder = class Seeder {
3943
3943
  return report;
3944
3944
  }
3945
3945
  /**
3946
- * Converts a SeederInput into a Seeder instance.
3947
- *
3946
+ * Converts a SeederInput into a Seeder instance.
3947
+ *
3948
3948
  * @param input The SeederInput to convert.
3949
3949
  * @returns A Seeder instance.
3950
3950
  */
@@ -3957,7 +3957,7 @@ var Seeder = class Seeder {
3957
3957
  }
3958
3958
  /**
3959
3959
  * Runs the given seeders in sequence.
3960
- *
3960
+ *
3961
3961
  * @param seeders The seeders to be run.
3962
3962
  */
3963
3963
  static async runSeeders(...seeders) {
@@ -3977,7 +3977,7 @@ var Seeder = class Seeder {
3977
3977
  //#endregion
3978
3978
  //#region src/cli/commands/SeedCommand.ts
3979
3979
  /**
3980
- * The SeedCommand class implements the CLI command for running seeder classes.
3980
+ * The SeedCommand class implements the CLI command for running seeder classes.
3981
3981
  *
3982
3982
  * @author Legacy (3m1n3nc3)
3983
3983
  * @since 0.1.0
@@ -3993,8 +3993,8 @@ var SeedCommand = class extends Command {
3993
3993
  }
3994
3994
  /**
3995
3995
  * Command handler for the seed command.
3996
- *
3997
- * @returns
3996
+ *
3997
+ * @returns
3998
3998
  */
3999
3999
  async handle() {
4000
4000
  this.app.command = this;
@@ -4010,9 +4010,9 @@ var SeedCommand = class extends Command {
4010
4010
  }
4011
4011
  /**
4012
4012
  * Load all seeder classes from the specified directory.
4013
- *
4014
- * @param seedersDir
4015
- * @returns
4013
+ *
4014
+ * @param seedersDir
4015
+ * @returns
4016
4016
  */
4017
4017
  resolveSeederDirectories(configuredSeedersDir) {
4018
4018
  return [this.app.resolveRuntimeDirectoryPath(configuredSeedersDir), ...getRegisteredPaths("seeders").map((directory) => this.app.resolveRuntimeDirectoryPath(directory))].filter((directory, index, all) => existsSync$1(directory) && all.indexOf(directory) === index);
@@ -4023,10 +4023,10 @@ var SeedCommand = class extends Command {
4023
4023
  }
4024
4024
  /**
4025
4025
  * Load seeder classes from a specific file or by class name.
4026
- *
4027
- * @param seedersDir
4028
- * @param name
4029
- * @returns
4026
+ *
4027
+ * @param seedersDir
4028
+ * @param name
4029
+ * @returns
4030
4030
  */
4031
4031
  async loadNamedSeeder(seedersDirs, name) {
4032
4032
  const base = name.replace(/Seeder$/, "");
@@ -4048,7 +4048,7 @@ var SeedCommand = class extends Command {
4048
4048
  }
4049
4049
  /**
4050
4050
  * Load seeder classes from a given file path.
4051
- *
4051
+ *
4052
4052
  * @param filePath The path to the file containing seeder classes.
4053
4053
  * @returns An array of seeder classes.
4054
4054
  */
@@ -4314,9 +4314,9 @@ var JoinClause = class JoinClause {
4314
4314
  //#endregion
4315
4315
  //#region src/Exceptions/ModelNotFoundException.ts
4316
4316
  /**
4317
- * The ModelNotFoundException class is a custom error type for handling
4318
- * cases where a requested model instance cannot be found in the database.
4319
- *
4317
+ * The ModelNotFoundException class is a custom error type for handling
4318
+ * cases where a requested model instance cannot be found in the database.
4319
+ *
4320
4320
  * @author Legacy (3m1n3nc3)
4321
4321
  * @since 0.1.0
4322
4322
  */
@@ -4374,9 +4374,9 @@ var UniqueConstraintResolutionException = class extends ArkormException {
4374
4374
  //#endregion
4375
4375
  //#region src/QueryBuilder.ts
4376
4376
  /**
4377
- * The QueryBuilder class provides a fluent interface for building and
4377
+ * The QueryBuilder class provides a fluent interface for building and
4378
4378
  * executing database queries.
4379
- *
4379
+ *
4380
4380
  * @template TModel The type of the model being queried.
4381
4381
  * @author Legacy (3m1n3nc3)
4382
4382
  * @since 0.1.0
@@ -4384,8 +4384,8 @@ var UniqueConstraintResolutionException = class extends ArkormException {
4384
4384
  var QueryBuilder = class QueryBuilder {
4385
4385
  /**
4386
4386
  * Creates a new QueryBuilder instance.
4387
- *
4388
- * @param model
4387
+ *
4388
+ * @param model
4389
4389
  */
4390
4390
  constructor(model, adapter) {
4391
4391
  this.model = model;
@@ -4563,45 +4563,45 @@ var QueryBuilder = class QueryBuilder {
4563
4563
  }
4564
4564
  /**
4565
4565
  * Adds clause to determine if a column's value is in the past
4566
- *
4567
- * @param key
4568
- * @returns
4566
+ *
4567
+ * @param key
4568
+ * @returns
4569
4569
  */
4570
4570
  wherePast(key) {
4571
4571
  return this.where({ [key]: { lt: /* @__PURE__ */ new Date() } });
4572
4572
  }
4573
4573
  /**
4574
4574
  * Adds clause to determine if a column's value is in the future
4575
- *
4576
- * @param key
4577
- * @returns
4575
+ *
4576
+ * @param key
4577
+ * @returns
4578
4578
  */
4579
4579
  whereFuture(key) {
4580
4580
  return this.where({ [key]: { gt: /* @__PURE__ */ new Date() } });
4581
4581
  }
4582
4582
  /**
4583
4583
  * Adds clause to determine if a column's value is in the past, inclusive of the current date and time
4584
- *
4585
- * @param key
4586
- * @returns
4584
+ *
4585
+ * @param key
4586
+ * @returns
4587
4587
  */
4588
4588
  whereNowOrPast(key) {
4589
4589
  return this.where({ [key]: { lte: /* @__PURE__ */ new Date() } });
4590
4590
  }
4591
4591
  /**
4592
4592
  * Adds clause to determine if a column's value is in the future, inclusive of the current date and time
4593
- *
4594
- * @param key
4595
- * @returns
4593
+ *
4594
+ * @param key
4595
+ * @returns
4596
4596
  */
4597
4597
  whereNowOrFuture(key) {
4598
4598
  return this.where({ [key]: { gte: /* @__PURE__ */ new Date() } });
4599
4599
  }
4600
4600
  /**
4601
4601
  * Adds clause to determine if a column's value is today
4602
- *
4603
- * @param key
4604
- * @returns
4602
+ *
4603
+ * @param key
4604
+ * @returns
4605
4605
  */
4606
4606
  whereToday(key) {
4607
4607
  const [start, end] = this.getUtcDayBounds();
@@ -4612,9 +4612,9 @@ var QueryBuilder = class QueryBuilder {
4612
4612
  }
4613
4613
  /**
4614
4614
  * Adds clause to determine if a column's value is before today
4615
- *
4616
- * @param key
4617
- * @returns
4615
+ *
4616
+ * @param key
4617
+ * @returns
4618
4618
  */
4619
4619
  whereBeforeToday(key) {
4620
4620
  const [start] = this.getUtcDayBounds();
@@ -4622,9 +4622,9 @@ var QueryBuilder = class QueryBuilder {
4622
4622
  }
4623
4623
  /**
4624
4624
  * Adds clause to determine if a column's value is after today
4625
- *
4626
- * @param key
4627
- * @returns
4625
+ *
4626
+ * @param key
4627
+ * @returns
4628
4628
  */
4629
4629
  whereAfterToday(key) {
4630
4630
  const [, end] = this.getUtcDayBounds();
@@ -4632,9 +4632,9 @@ var QueryBuilder = class QueryBuilder {
4632
4632
  }
4633
4633
  /**
4634
4634
  * Adds clause to determine if a column's value is today or before today
4635
- *
4636
- * @param key
4637
- * @returns
4635
+ *
4636
+ * @param key
4637
+ * @returns
4638
4638
  */
4639
4639
  whereTodayOrBefore(key) {
4640
4640
  const [, end] = this.getUtcDayBounds();
@@ -4642,9 +4642,9 @@ var QueryBuilder = class QueryBuilder {
4642
4642
  }
4643
4643
  /**
4644
4644
  * Adds clause to determine if a column's value is today or after today
4645
- *
4646
- * @param key
4647
- * @returns
4645
+ *
4646
+ * @param key
4647
+ * @returns
4648
4648
  */
4649
4649
  whereTodayOrAfter(key) {
4650
4650
  const [start] = this.getUtcDayBounds();
@@ -4661,9 +4661,9 @@ var QueryBuilder = class QueryBuilder {
4661
4661
  }
4662
4662
  /**
4663
4663
  * Adds "where exists" SQL clauses.
4664
- *
4665
- * @param queryOrCallback
4666
- * @returns
4664
+ *
4665
+ * @param queryOrCallback
4666
+ * @returns
4667
4667
  */
4668
4668
  whereExists(queryOrCallback) {
4669
4669
  const baseQuery = new QueryBuilder(this.model, this.adapter);
@@ -4803,12 +4803,12 @@ var QueryBuilder = class QueryBuilder {
4803
4803
  /**
4804
4804
  * Append a structured JSON predicate, splitting a `column->path->key`
4805
4805
  * expression into its base column and nested path segments.
4806
- *
4807
- * @param boolean
4808
- * @param kind
4809
- * @param column
4810
- * @param options
4811
- * @returns
4806
+ *
4807
+ * @param boolean
4808
+ * @param kind
4809
+ * @param column
4810
+ * @param options
4811
+ * @returns
4812
4812
  */
4813
4813
  appendJsonCondition(boolean, kind, column, options = {}) {
4814
4814
  const [base, ...path] = column.split("->").map((segment) => segment.trim());
@@ -4837,10 +4837,10 @@ var QueryBuilder = class QueryBuilder {
4837
4837
  }
4838
4838
  /**
4839
4839
  * OR variant of whereJsonContains().
4840
- *
4841
- * @param column
4842
- * @param value
4843
- * @returns
4840
+ *
4841
+ * @param column
4842
+ * @param value
4843
+ * @returns
4844
4844
  */
4845
4845
  orWhereJsonContains(column, value) {
4846
4846
  return this.appendJsonCondition("OR", "contains", column, { value });
@@ -4860,10 +4860,10 @@ var QueryBuilder = class QueryBuilder {
4860
4860
  }
4861
4861
  /**
4862
4862
  * OR variant of whereJsonDoesntContain().
4863
- *
4864
- * @param column
4865
- * @param value
4866
- * @returns
4863
+ *
4864
+ * @param column
4865
+ * @param value
4866
+ * @returns
4867
4867
  */
4868
4868
  orWhereJsonDoesntContain(column, value) {
4869
4869
  return this.appendJsonCondition("OR", "contains", column, {
@@ -4882,9 +4882,9 @@ var QueryBuilder = class QueryBuilder {
4882
4882
  }
4883
4883
  /**
4884
4884
  * OR variant of whereJsonContainsKey().
4885
- *
4886
- * @param column
4887
- * @returns
4885
+ *
4886
+ * @param column
4887
+ * @returns
4888
4888
  */
4889
4889
  orWhereJsonContainsKey(column) {
4890
4890
  return this.appendJsonCondition("OR", "contains-key", column);
@@ -4900,9 +4900,9 @@ var QueryBuilder = class QueryBuilder {
4900
4900
  }
4901
4901
  /**
4902
4902
  * OR variant of whereJsonDoesntContainKey().
4903
- *
4904
- * @param column
4905
- * @returns
4903
+ *
4904
+ * @param column
4905
+ * @returns
4906
4906
  */
4907
4907
  orWhereJsonDoesntContainKey(column) {
4908
4908
  return this.appendJsonCondition("OR", "contains-key", column, { not: true });
@@ -4944,10 +4944,10 @@ var QueryBuilder = class QueryBuilder {
4944
4944
  }
4945
4945
  /**
4946
4946
  * OR variant of whereJsonOverlaps().
4947
- *
4948
- * @param column
4949
- * @param value
4950
- * @returns
4947
+ *
4948
+ * @param column
4949
+ * @param value
4950
+ * @returns
4951
4951
  */
4952
4952
  orWhereJsonOverlaps(column, value) {
4953
4953
  return this.appendJsonCondition("OR", "overlaps", column, { value });
@@ -5065,9 +5065,9 @@ var QueryBuilder = class QueryBuilder {
5065
5065
  }
5066
5066
  /**
5067
5067
  * Adds an orderBy clause to the query. This will overwrite any existing orderBy clause.
5068
- *
5069
- * @param orderBy
5070
- * @returns
5068
+ *
5069
+ * @param orderBy
5070
+ * @returns
5071
5071
  */
5072
5072
  orderBy(orderBy) {
5073
5073
  this.randomOrderEnabled = false;
@@ -5121,9 +5121,9 @@ var QueryBuilder = class QueryBuilder {
5121
5121
  }
5122
5122
  /**
5123
5123
  * Adds an include clause to the query. This will overwrite any existing include clause.
5124
- *
5125
- * @param include
5126
- * @returns
5124
+ *
5125
+ * @param include
5126
+ * @returns
5127
5127
  */
5128
5128
  include(include) {
5129
5129
  const normalized = this.normalizeRelationLoads(include);
@@ -5136,11 +5136,11 @@ var QueryBuilder = class QueryBuilder {
5136
5136
  return this;
5137
5137
  }
5138
5138
  /**
5139
- * Adds eager loading for the specified relations.
5139
+ * Adds eager loading for the specified relations.
5140
5140
  * This will merge with any existing include clause.
5141
- *
5142
- * @param relations
5143
- * @returns
5141
+ *
5142
+ * @param relations
5143
+ * @returns
5144
5144
  */
5145
5145
  with(relations) {
5146
5146
  const relationMap = this.normalizeWith(relations);
@@ -5342,10 +5342,10 @@ var QueryBuilder = class QueryBuilder {
5342
5342
  return this.withRelationAggregate("max", relation, column);
5343
5343
  }
5344
5344
  /**
5345
- * Includes soft-deleted records in the query results.
5345
+ * Includes soft-deleted records in the query results.
5346
5346
  * This method is only applicable if the model has soft delete enabled.
5347
- *
5348
- * @returns
5347
+ *
5348
+ * @returns
5349
5349
  */
5350
5350
  withTrashed() {
5351
5351
  this.includeTrashed = true;
@@ -5353,10 +5353,10 @@ var QueryBuilder = class QueryBuilder {
5353
5353
  return this;
5354
5354
  }
5355
5355
  /**
5356
- * Limits the query results to only soft-deleted records.
5356
+ * Limits the query results to only soft-deleted records.
5357
5357
  * This method is only applicable if the model has soft delete enabled.
5358
- *
5359
- * @returns
5358
+ *
5359
+ * @returns
5360
5360
  */
5361
5361
  onlyTrashed() {
5362
5362
  this.onlyTrashedRecords = true;
@@ -5364,11 +5364,11 @@ var QueryBuilder = class QueryBuilder {
5364
5364
  return this;
5365
5365
  }
5366
5366
  /**
5367
- * Excludes soft-deleted records from the query results.
5368
- * This is the default behavior, but this method can be used to explicitly
5367
+ * Excludes soft-deleted records from the query results.
5368
+ * This is the default behavior, but this method can be used to explicitly
5369
5369
  * enforce it after using withTrashed or onlyTrashed.
5370
- *
5371
- * @returns
5370
+ *
5371
+ * @returns
5372
5372
  */
5373
5373
  withoutTrashed() {
5374
5374
  this.includeTrashed = false;
@@ -5377,14 +5377,14 @@ var QueryBuilder = class QueryBuilder {
5377
5377
  }
5378
5378
  /**
5379
5379
  * Applies a named scope to the query. A scope is a reusable query constraint
5380
- * defined as a static method on the model. The scope method will look for a
5381
- * method with the name `scope{Name}` on the model's prototype.
5382
- * If found, it will call that method with the current query builder
5380
+ * defined as a static method on the model. The scope method will look for a
5381
+ * method with the name `scope{Name}` on the model's prototype.
5382
+ * If found, it will call that method with the current query builder
5383
5383
  * instance and any additional arguments provided.
5384
- *
5385
- * @param name
5386
- * @param args
5387
- * @returns
5384
+ *
5385
+ * @param name
5386
+ * @param args
5387
+ * @returns
5388
5388
  */
5389
5389
  scope(name, ...args) {
5390
5390
  const methodName = `scope${name.charAt(0).toUpperCase()}${name.slice(1)}`;
@@ -5447,9 +5447,9 @@ var QueryBuilder = class QueryBuilder {
5447
5447
  }
5448
5448
  /**
5449
5449
  * Adds a select clause to the query. This will overwrite any existing select clause.
5450
- *
5451
- * @param select
5452
- * @returns
5450
+ *
5451
+ * @param select
5452
+ * @returns
5453
5453
  */
5454
5454
  select(select) {
5455
5455
  const normalized = this.normalizeQuerySelect(select);
@@ -5800,9 +5800,9 @@ var QueryBuilder = class QueryBuilder {
5800
5800
  /**
5801
5801
  * Adds a skip clause to the query for pagination.
5802
5802
  * This will overwrite any existing skip clause.
5803
- *
5804
- * @param skip
5805
- * @returns
5803
+ *
5804
+ * @param skip
5805
+ * @returns
5806
5806
  */
5807
5807
  skip(skip) {
5808
5808
  this.offsetValue = skip;
@@ -5819,9 +5819,9 @@ var QueryBuilder = class QueryBuilder {
5819
5819
  }
5820
5820
  /**
5821
5821
  * Adds a take clause to the query for pagination.
5822
- *
5823
- * @param take
5824
- * @returns
5822
+ *
5823
+ * @param take
5824
+ * @returns
5825
5825
  */
5826
5826
  take(take) {
5827
5827
  this.limitValue = take;
@@ -5838,9 +5838,9 @@ var QueryBuilder = class QueryBuilder {
5838
5838
  }
5839
5839
  /**
5840
5840
  * Returns a representation of the query that can be used for debugging or logging purposes.
5841
- *
5842
- * @param operation
5843
- * @returns
5841
+ *
5842
+ * @param operation
5843
+ * @returns
5844
5844
  */
5845
5845
  inspect(operation = "select") {
5846
5846
  const adapter = this.requireAdapter();
@@ -5887,8 +5887,8 @@ var QueryBuilder = class QueryBuilder {
5887
5887
  }
5888
5888
  /**
5889
5889
  * Executes the query and returns the results as a collection of model instances.
5890
- *
5891
- * @returns
5890
+ *
5891
+ * @returns
5892
5892
  */
5893
5893
  async get() {
5894
5894
  const useAdapterRelationFeatures = this.canExecuteRelationFeaturesInAdapter();
@@ -5909,10 +5909,10 @@ var QueryBuilder = class QueryBuilder {
5909
5909
  return new ArkormCollection(filteredModels);
5910
5910
  }
5911
5911
  /**
5912
- * Executes the query and returns the first result as a model
5912
+ * Executes the query and returns the first result as a model
5913
5913
  * instance, or null if no results are found.
5914
- *
5915
- * @returns
5914
+ *
5915
+ * @returns
5916
5916
  */
5917
5917
  async first() {
5918
5918
  if (this.shouldUseCompatibilityRelationFallback()) return (await this.get()).all()[0] ?? null;
@@ -5933,8 +5933,8 @@ var QueryBuilder = class QueryBuilder {
5933
5933
  }
5934
5934
  /**
5935
5935
  * Executes the query and returns the first result as a model instance.
5936
- *
5937
- * @returns
5936
+ *
5937
+ * @returns
5938
5938
  */
5939
5939
  async firstOrFail() {
5940
5940
  const model = await this.first();
@@ -6047,9 +6047,9 @@ var QueryBuilder = class QueryBuilder {
6047
6047
  }
6048
6048
  /**
6049
6049
  * Creates a new record with the specified data and returns it as a model instance.
6050
- *
6051
- * @param data
6052
- * @returns
6050
+ *
6051
+ * @param data
6052
+ * @returns
6053
6053
  */
6054
6054
  async create(data) {
6055
6055
  const created = await this.executeInsertRow(data);
@@ -6135,11 +6135,11 @@ var QueryBuilder = class QueryBuilder {
6135
6135
  return this.insertOrIgnore(rows);
6136
6136
  }
6137
6137
  /**
6138
- * Updates records matching the current query constraints with the
6138
+ * Updates records matching the current query constraints with the
6139
6139
  * specified data and returns the updated record(s) as model instance(s).
6140
- *
6141
- * @param data
6142
- * @returns
6140
+ *
6141
+ * @param data
6142
+ * @returns
6143
6143
  */
6144
6144
  async update(data) {
6145
6145
  const where = this.buildWhere();
@@ -6254,8 +6254,8 @@ var QueryBuilder = class QueryBuilder {
6254
6254
  /**
6255
6255
  * Deletes the first record matching the current query constraints and returns
6256
6256
  * it as a hydrated model instance. Returns null when no record matches.
6257
- *
6258
- * @returns
6257
+ *
6258
+ * @returns
6259
6259
  */
6260
6260
  async delete() {
6261
6261
  const where = this.buildWhere();
@@ -6353,8 +6353,8 @@ var QueryBuilder = class QueryBuilder {
6353
6353
  }
6354
6354
  /**
6355
6355
  * Counts the number of records matching the current query constraints.
6356
- *
6357
- * @returns
6356
+ *
6357
+ * @returns
6358
6358
  */
6359
6359
  async count() {
6360
6360
  if (this.hasRelationFilters() && this.shouldUseCompatibilityRelationFallback()) return (await this.get()).all().length;
@@ -6395,11 +6395,11 @@ var QueryBuilder = class QueryBuilder {
6395
6395
  return this.castForPersistence(nextPayload);
6396
6396
  });
6397
6397
  }
6398
- /**
6399
- * Apply the model's persistence casts when a real model backs the query.
6400
- *
6401
- * @param payload
6402
- * @returns
6398
+ /**
6399
+ * Apply the model's persistence casts when a real model backs the query.
6400
+ *
6401
+ * @param payload
6402
+ * @returns
6403
6403
  */
6404
6404
  castForPersistence(payload) {
6405
6405
  return typeof this.model.castAttributesForPersistence === "function" ? this.model.castAttributesForPersistence(payload) : payload;
@@ -6561,13 +6561,13 @@ var QueryBuilder = class QueryBuilder {
6561
6561
  return this;
6562
6562
  }
6563
6563
  /**
6564
- * Paginates the query results and returns a LengthAwarePaginator instance
6564
+ * Paginates the query results and returns a LengthAwarePaginator instance
6565
6565
  * containing data and total-aware pagination metadata.
6566
- *
6567
- * @param page
6568
- * @param perPage
6566
+ *
6567
+ * @param page
6568
+ * @param perPage
6569
6569
  * @param options
6570
- * @returns
6570
+ * @returns
6571
6571
  */
6572
6572
  async paginate(perPage = 15, page = void 0, options = {}) {
6573
6573
  const currentPage = this.resolvePaginationPage(page, options);
@@ -6605,8 +6605,8 @@ var QueryBuilder = class QueryBuilder {
6605
6605
  }
6606
6606
  /**
6607
6607
  * Creates a clone of the current query builder instance with the same state.
6608
- *
6609
- * @returns
6608
+ *
6609
+ * @returns
6610
6610
  */
6611
6611
  clone() {
6612
6612
  const builder = new QueryBuilder(this.model, this.adapter);
@@ -6636,9 +6636,9 @@ var QueryBuilder = class QueryBuilder {
6636
6636
  }
6637
6637
  /**
6638
6638
  * Normalizes the input for eager loading relations into a consistent format.
6639
- *
6640
- * @param relations
6641
- * @returns
6639
+ *
6640
+ * @param relations
6641
+ * @returns
6642
6642
  */
6643
6643
  normalizeWith(relations) {
6644
6644
  if (typeof relations === "string") return { [relations]: void 0 };
@@ -6827,7 +6827,7 @@ var QueryBuilder = class QueryBuilder {
6827
6827
  }
6828
6828
  /**
6829
6829
  * Attempts to build relation load plans for the adapter based on the eager loads specified in the query builder.
6830
- *
6830
+ *
6831
6831
  * @returns an array of RelationLoadPlan if successful, or null if the eager loads contain constraints that cannot be represented in a way compatible with adapter-based loading.
6832
6832
  */
6833
6833
  tryBuildAdapterRelationLoadPlans() {
@@ -7295,10 +7295,10 @@ var QueryBuilder = class QueryBuilder {
7295
7295
  return deleted;
7296
7296
  }
7297
7297
  /**
7298
- * Builds the where clause for the query, taking into account soft delete
7298
+ * Builds the where clause for the query, taking into account soft delete
7299
7299
  * settings if applicable.
7300
- *
7301
- * @returns
7300
+ *
7301
+ * @returns
7302
7302
  */
7303
7303
  buildWhere() {
7304
7304
  const baseWhere = this.legacyWhere ?? this.toQuerySchemaWhere(this.queryWhere);
@@ -7311,14 +7311,14 @@ var QueryBuilder = class QueryBuilder {
7311
7311
  }
7312
7312
  /**
7313
7313
  * Builds the arguments for the findMany delegate method, including the where clause.
7314
- *
7315
- * @returns
7314
+ *
7315
+ * @returns
7316
7316
  */
7317
7317
  /**
7318
- * Resolves a unique where clause for update and delete operations.
7319
- *
7320
- * @param where
7321
- * @returns
7318
+ * Resolves a unique where clause for update and delete operations.
7319
+ *
7320
+ * @param where
7321
+ * @returns
7322
7322
  */
7323
7323
  async resolveUniqueWhere(where, failIfMissing = true) {
7324
7324
  if (this.isUniqueWhere(where)) return where;
@@ -7349,11 +7349,11 @@ var QueryBuilder = class QueryBuilder {
7349
7349
  return { [primaryKey]: row[primaryKey] };
7350
7350
  }
7351
7351
  /**
7352
- * Checks if the provided where clause is already a unique
7352
+ * Checks if the provided where clause is already a unique
7353
7353
  * identifier (i.e., contains only an 'id' field).
7354
- *
7355
- * @param where
7356
- * @returns
7354
+ *
7355
+ * @param where
7356
+ * @returns
7357
7357
  */
7358
7358
  isUniqueWhere(where) {
7359
7359
  const primaryKey = this.model.getPrimaryKey();
@@ -7623,10 +7623,10 @@ var QueryBuilder = class QueryBuilder {
7623
7623
  //#endregion
7624
7624
  //#region src/Model.ts
7625
7625
  /**
7626
- * Base model class that all models should extend.
7627
- *
7626
+ * Base model class that all models should extend.
7627
+ *
7628
7628
  * @template TModel The type of the model extending this base class.
7629
- *
7629
+ *
7630
7630
  * @author Legacy (3m1n3nc3)
7631
7631
  * @since 0.1.0
7632
7632
  */
@@ -7977,9 +7977,9 @@ var Model = class Model {
7977
7977
  * If a delegate name is provided, it will attempt to resolve that delegate.
7978
7978
  * Otherwise, it will attempt to resolve a compatibility schema based on the model's name or
7979
7979
  * the static `delegate` property.
7980
- *
7981
- * @param delegate
7982
- * @returns
7980
+ *
7981
+ * @param delegate
7982
+ * @returns
7983
7983
  */
7984
7984
  static getDelegate(delegate) {
7985
7985
  Model.emitDeprecationWarning("ARKORM_GET_DELEGATE_DEPRECATED", "Model.getDelegate() is deprecated and will be removed in Arkorm 3.0. Use Model.getAdapter() and adapter-backed execution instead.");
@@ -8001,9 +8001,9 @@ var Model = class Model {
8001
8001
  }
8002
8002
  /**
8003
8003
  * Get a new query builder instance for the model.
8004
- *
8005
- * @param this
8006
- * @returns
8004
+ *
8005
+ * @param this
8006
+ * @returns
8007
8007
  */
8008
8008
  static query() {
8009
8009
  Model.ensureModelBooted(this);
@@ -8029,31 +8029,31 @@ var Model = class Model {
8029
8029
  static booted() {}
8030
8030
  /**
8031
8031
  * Get a query builder instance that includes soft-deleted records.
8032
- *
8033
- * @param this
8034
- * @returns
8032
+ *
8033
+ * @param this
8034
+ * @returns
8035
8035
  */
8036
8036
  static withTrashed() {
8037
8037
  return this.query().withTrashed();
8038
8038
  }
8039
8039
  /**
8040
8040
  * Get a query builder instance that only includes soft-deleted records.
8041
- *
8042
- * @param this
8043
- * @returns
8041
+ *
8042
+ * @param this
8043
+ * @returns
8044
8044
  */
8045
8045
  static onlyTrashed() {
8046
8046
  return this.query().onlyTrashed();
8047
8047
  }
8048
8048
  /**
8049
- * Get a query builder instance that excludes soft-deleted records.
8050
- * This is the default behavior of the query builder, but this method can be used
8049
+ * Get a query builder instance that excludes soft-deleted records.
8050
+ * This is the default behavior of the query builder, but this method can be used
8051
8051
  * to explicitly specify it after using `withTrashed` or `onlyTrashed`.
8052
- *
8053
- * @param this
8054
- * @param name
8055
- * @param args
8056
- * @returns
8052
+ *
8053
+ * @param this
8054
+ * @param name
8055
+ * @param args
8056
+ * @returns
8057
8057
  */
8058
8058
  static scope(name, ...args) {
8059
8059
  return this.query().scope(name, ...args);
@@ -8121,10 +8121,10 @@ var Model = class Model {
8121
8121
  return deleted;
8122
8122
  }
8123
8123
  /**
8124
- * Get the soft delete configuration for the model, including whether
8124
+ * Get the soft delete configuration for the model, including whether
8125
8125
  * soft deletes are enabled and the name of the deleted at column.
8126
- *
8127
- * @returns
8126
+ *
8127
+ * @returns
8128
8128
  */
8129
8129
  static getSoftDeleteConfig() {
8130
8130
  return {
@@ -8133,11 +8133,11 @@ var Model = class Model {
8133
8133
  };
8134
8134
  }
8135
8135
  /**
8136
- * Hydrate a model instance from a plain object of attributes.
8137
- *
8138
- * @param this
8139
- * @param attributes
8140
- * @returns
8136
+ * Hydrate a model instance from a plain object of attributes.
8137
+ *
8138
+ * @param this
8139
+ * @param attributes
8140
+ * @returns
8141
8141
  */
8142
8142
  static hydrate(attributes) {
8143
8143
  const model = new this(attributes);
@@ -8148,10 +8148,10 @@ var Model = class Model {
8148
8148
  }
8149
8149
  /**
8150
8150
  * Hydrate multiple model instances from an array of plain objects of attributes.
8151
- *
8152
- * @param this
8153
- * @param attributes
8154
- * @returns
8151
+ *
8152
+ * @param this
8153
+ * @param attributes
8154
+ * @returns
8155
8155
  */
8156
8156
  static hydrateMany(attributes) {
8157
8157
  const constructor = this;
@@ -8291,12 +8291,12 @@ var Model = class Model {
8291
8291
  return await this.constructor.transaction(async () => await this.save());
8292
8292
  }
8293
8293
  /**
8294
- * Delete the model from the database.
8295
- * If soft deletes are enabled, it will perform a soft delete by
8296
- * setting the deleted at column to the current date.
8294
+ * Delete the model from the database.
8295
+ * If soft deletes are enabled, it will perform a soft delete by
8296
+ * setting the deleted at column to the current date.
8297
8297
  * Otherwise, it will perform a hard delete.
8298
- *
8299
- * @returns
8298
+ *
8299
+ * @returns
8300
8300
  */
8301
8301
  async delete() {
8302
8302
  const constructor = this.constructor;
@@ -8340,10 +8340,10 @@ var Model = class Model {
8340
8340
  return await this.constructor.transaction(async () => await this.delete());
8341
8341
  }
8342
8342
  /**
8343
- * Permanently delete the model from the database, regardless of whether soft
8343
+ * Permanently delete the model from the database, regardless of whether soft
8344
8344
  * deletes are enabled.
8345
- *
8346
- * @returns
8345
+ *
8346
+ * @returns
8347
8347
  */
8348
8348
  async forceDelete() {
8349
8349
  const constructor = this.constructor;
@@ -8372,8 +8372,8 @@ var Model = class Model {
8372
8372
  }
8373
8373
  /**
8374
8374
  * Restore a soft-deleted model by setting the deleted at column to null.
8375
- *
8376
- * @returns
8375
+ *
8376
+ * @returns
8377
8377
  */
8378
8378
  async restore() {
8379
8379
  const constructor = this.constructor;
@@ -8401,9 +8401,9 @@ var Model = class Model {
8401
8401
  }
8402
8402
  /**
8403
8403
  * Load related models onto the current model instance.
8404
- *
8405
- * @param relations
8406
- * @returns
8404
+ *
8405
+ * @param relations
8406
+ * @returns
8407
8407
  */
8408
8408
  async load(relations) {
8409
8409
  const relationMap = this.normalizeRelationMap(relations);
@@ -8469,8 +8469,8 @@ var Model = class Model {
8469
8469
  }
8470
8470
  /**
8471
8471
  * Get the raw attributes of the model without applying any mutators or casts.
8472
- *
8473
- * @returns
8472
+ *
8473
+ * @returns
8474
8474
  */
8475
8475
  getRawAttributes() {
8476
8476
  return { ...this.attributes };
@@ -8531,10 +8531,10 @@ var Model = class Model {
8531
8531
  }, {});
8532
8532
  }
8533
8533
  /**
8534
- * Convert the model instance to a plain object, applying visibility
8534
+ * Convert the model instance to a plain object, applying visibility
8535
8535
  * rules, appends, and mutators.
8536
- *
8537
- * @returns
8536
+ *
8537
+ * @returns
8538
8538
  */
8539
8539
  toObject() {
8540
8540
  const object = (this.visible.length > 0 ? this.visible : Object.keys(this.attributes).filter((key) => !this.hidden.includes(key))).reduce((accumulator, key) => {
@@ -8550,8 +8550,8 @@ var Model = class Model {
8550
8550
  }
8551
8551
  /**
8552
8552
  * Convert the model instance to JSON by first converting it to a plain object.
8553
- *
8554
- * @returns
8553
+ *
8554
+ * @returns
8555
8555
  */
8556
8556
  toJSON() {
8557
8557
  return this.toObject();
@@ -8600,11 +8600,11 @@ var Model = class Model {
8600
8600
  }
8601
8601
  /**
8602
8602
  * Define a has one relationship.
8603
- *
8604
- * @param related
8605
- * @param foreignKey
8606
- * @param localKey
8607
- * @returns
8603
+ *
8604
+ * @param related
8605
+ * @param foreignKey
8606
+ * @param localKey
8607
+ * @returns
8608
8608
  */
8609
8609
  hasOne(related, foreignKey, localKey) {
8610
8610
  const constructor = this.constructor;
@@ -8612,11 +8612,11 @@ var Model = class Model {
8612
8612
  }
8613
8613
  /**
8614
8614
  * Define a has many relationship.
8615
- *
8616
- * @param related
8617
- * @param foreignKey
8618
- * @param localKey
8619
- * @returns
8615
+ *
8616
+ * @param related
8617
+ * @param foreignKey
8618
+ * @param localKey
8619
+ * @returns
8620
8620
  */
8621
8621
  hasMany(related, foreignKey, localKey) {
8622
8622
  const constructor = this.constructor;
@@ -8624,25 +8624,25 @@ var Model = class Model {
8624
8624
  }
8625
8625
  /**
8626
8626
  * Define a belongs to relationship.
8627
- *
8628
- * @param related
8629
- * @param foreignKey
8630
- * @param ownerKey
8631
- * @returns
8627
+ *
8628
+ * @param related
8629
+ * @param foreignKey
8630
+ * @param ownerKey
8631
+ * @returns
8632
8632
  */
8633
8633
  belongsTo(related, foreignKey, ownerKey) {
8634
8634
  return new BelongsToRelation(this, related, foreignKey, ownerKey ?? related.getPrimaryKey());
8635
8635
  }
8636
8636
  /**
8637
8637
  * Define a belongs to many relationship.
8638
- *
8639
- * @param related
8638
+ *
8639
+ * @param related
8640
8640
  * @param throughTable
8641
- * @param foreignPivotKey
8642
- * @param relatedPivotKey
8643
- * @param parentKey
8644
- * @param relatedKey
8645
- * @returns
8641
+ * @param foreignPivotKey
8642
+ * @param relatedPivotKey
8643
+ * @param parentKey
8644
+ * @param relatedKey
8645
+ * @returns
8646
8646
  */
8647
8647
  belongsToMany(related, throughTable, foreignPivotKey, relatedPivotKey, parentKey, relatedKey) {
8648
8648
  const constructor = this.constructor;
@@ -8650,14 +8650,14 @@ var Model = class Model {
8650
8650
  }
8651
8651
  /**
8652
8652
  * Define a has one through relationship.
8653
- *
8654
- * @param related
8653
+ *
8654
+ * @param related
8655
8655
  * @param throughTable
8656
- * @param firstKey
8657
- * @param secondKey
8658
- * @param localKey
8659
- * @param secondLocalKey
8660
- * @returns
8656
+ * @param firstKey
8657
+ * @param secondKey
8658
+ * @param localKey
8659
+ * @param secondLocalKey
8660
+ * @returns
8661
8661
  */
8662
8662
  hasOneThrough(related, throughTable, firstKey, secondKey, localKey, secondLocalKey = "id") {
8663
8663
  const constructor = this.constructor;
@@ -8665,14 +8665,14 @@ var Model = class Model {
8665
8665
  }
8666
8666
  /**
8667
8667
  * Define a has many through relationship.
8668
- *
8669
- * @param related
8668
+ *
8669
+ * @param related
8670
8670
  * @param throughTable
8671
- * @param firstKey
8672
- * @param secondKey
8673
- * @param localKey
8674
- * @param secondLocalKey
8675
- * @returns
8671
+ * @param firstKey
8672
+ * @param secondKey
8673
+ * @param localKey
8674
+ * @param secondLocalKey
8675
+ * @returns
8676
8676
  */
8677
8677
  hasManyThrough(related, throughTable, firstKey, secondKey, localKey, secondLocalKey = "id") {
8678
8678
  const constructor = this.constructor;
@@ -8680,13 +8680,13 @@ var Model = class Model {
8680
8680
  }
8681
8681
  /**
8682
8682
  * Define a polymorphic one to one relationship.
8683
- *
8684
- * @param related
8683
+ *
8684
+ * @param related
8685
8685
  * @param morphName
8686
8686
  * @param idColumn
8687
8687
  * @param typeColumn
8688
8688
  * @param localKey
8689
- * @returns
8689
+ * @returns
8690
8690
  */
8691
8691
  morphOne(related, morphName, idColumn, typeColumn, localKey) {
8692
8692
  const constructor = this.constructor;
@@ -8695,13 +8695,13 @@ var Model = class Model {
8695
8695
  }
8696
8696
  /**
8697
8697
  * Define a polymorphic one to many relationship.
8698
- *
8699
- * @param related
8698
+ *
8699
+ * @param related
8700
8700
  * @param morphName
8701
8701
  * @param idColumn
8702
8702
  * @param typeColumn
8703
8703
  * @param localKey
8704
- * @returns
8704
+ * @returns
8705
8705
  */
8706
8706
  morphMany(related, morphName, idColumn, typeColumn, localKey) {
8707
8707
  const constructor = this.constructor;
@@ -8716,7 +8716,7 @@ var Model = class Model {
8716
8716
  }
8717
8717
  /**
8718
8718
  * Define a polymorphic many to many relationship.
8719
- *
8719
+ *
8720
8720
  * @param related
8721
8721
  * @param morphName
8722
8722
  * @param throughTable
@@ -8725,7 +8725,7 @@ var Model = class Model {
8725
8725
  * @param relatedPivotKey
8726
8726
  * @param parentKey
8727
8727
  * @param relatedKey
8728
- * @returns
8728
+ * @returns
8729
8729
  */
8730
8730
  morphToMany(related, morphName, throughTable, foreignPivotKey, morphTypeColumn, relatedPivotKey, parentKey, relatedKey) {
8731
8731
  const constructor = this.constructor;
@@ -8753,9 +8753,9 @@ var Model = class Model {
8753
8753
  }
8754
8754
  /**
8755
8755
  * Resolve a get mutator method for a given attribute key, if it exists.
8756
- *
8757
- * @param key
8758
- * @returns
8756
+ *
8757
+ * @param key
8758
+ * @returns
8759
8759
  */
8760
8760
  resolveGetMutator(key) {
8761
8761
  const methodName = `get${str(key).studly()}Attribute`;
@@ -8819,9 +8819,9 @@ var Model = class Model {
8819
8819
  }
8820
8820
  /**
8821
8821
  * Resolve a set mutator method for a given attribute key, if it exists.
8822
- *
8823
- * @param key
8824
- * @returns
8822
+ *
8823
+ * @param key
8824
+ * @returns
8825
8825
  */
8826
8826
  resolveSetMutator(key) {
8827
8827
  const methodName = `set${str(key).studly()}Attribute`;
@@ -9048,9 +9048,9 @@ var Model = class Model {
9048
9048
  }
9049
9049
  /**
9050
9050
  * Normalize the relation map for eager loading.
9051
- *
9052
- * @param relations
9053
- * @returns
9051
+ *
9052
+ * @param relations
9053
+ * @returns
9054
9054
  */
9055
9055
  normalizeRelationMap(relations) {
9056
9056
  if (typeof relations === "string") return { [relations]: void 0 };
@@ -9068,9 +9068,9 @@ var Model = class Model {
9068
9068
  //#endregion
9069
9069
  //#region src/database/factories.ts
9070
9070
  /**
9071
- * Base class for defining model factories.
9071
+ * Base class for defining model factories.
9072
9072
  * Not meant to be used directly.
9073
- *
9073
+ *
9074
9074
  * @template TModel The type of model the factory creates.
9075
9075
  * @template TAttributes The type of attributes used to create the model.
9076
9076
  * @author Legacy (3m1n3nc3)
@@ -9096,9 +9096,9 @@ var ModelFactory = class ModelFactory {
9096
9096
  configure() {}
9097
9097
  /**
9098
9098
  * Set the number of models to create.
9099
- *
9100
- * @param amount
9101
- * @returns
9099
+ *
9100
+ * @param amount
9101
+ * @returns
9102
9102
  */
9103
9103
  count(amount) {
9104
9104
  this.ensureConfigured();
@@ -9106,9 +9106,9 @@ var ModelFactory = class ModelFactory {
9106
9106
  return this;
9107
9107
  }
9108
9108
  /**
9109
- * Define a state transformation for the factory.
9109
+ * Define a state transformation for the factory.
9110
9110
  * States are applied in the order they were defined.
9111
- *
9111
+ *
9112
9112
  * @param resolver A function that takes the current attributes and sequence number, and returns the transformed attributes.
9113
9113
  * @returns The factory instance for chaining.
9114
9114
  */
@@ -9119,9 +9119,9 @@ var ModelFactory = class ModelFactory {
9119
9119
  }
9120
9120
  /**
9121
9121
  * Register a callback that runs after a model is made.
9122
- *
9123
- * @param callback
9124
- * @returns
9122
+ *
9123
+ * @param callback
9124
+ * @returns
9125
9125
  */
9126
9126
  afterMaking(callback) {
9127
9127
  this.ensureConfigured();
@@ -9130,9 +9130,9 @@ var ModelFactory = class ModelFactory {
9130
9130
  }
9131
9131
  /**
9132
9132
  * Register a callback that runs after a model is persisted.
9133
- *
9134
- * @param callback
9135
- * @returns
9133
+ *
9134
+ * @param callback
9135
+ * @returns
9136
9136
  */
9137
9137
  afterCreating(callback) {
9138
9138
  this.ensureConfigured();
@@ -9141,9 +9141,9 @@ var ModelFactory = class ModelFactory {
9141
9141
  }
9142
9142
  /**
9143
9143
  * Create a new model instance without saving it to the database.
9144
- *
9145
- * @param overrides
9146
- * @returns
9144
+ *
9145
+ * @param overrides
9146
+ * @returns
9147
9147
  */
9148
9148
  make(overrides = {}) {
9149
9149
  this.ensureConfigured();
@@ -9168,10 +9168,10 @@ var ModelFactory = class ModelFactory {
9168
9168
  }
9169
9169
  /**
9170
9170
  * Create multiple model instances without saving them to the database.
9171
- *
9172
- * @param amount
9173
- * @param overrides
9174
- * @returns
9171
+ *
9172
+ * @param amount
9173
+ * @param overrides
9174
+ * @returns
9175
9175
  */
9176
9176
  makeMany(amount = this.amount, overrides = {}) {
9177
9177
  const total = Math.max(1, Math.floor(amount));
@@ -9193,19 +9193,19 @@ var ModelFactory = class ModelFactory {
9193
9193
  }
9194
9194
  /**
9195
9195
  * Create a new model instance and save it to the database.
9196
- *
9197
- * @param overrides
9198
- * @returns
9196
+ *
9197
+ * @param overrides
9198
+ * @returns
9199
9199
  */
9200
9200
  async create(overrides = {}) {
9201
9201
  return await this.createPersisted(overrides);
9202
9202
  }
9203
9203
  /**
9204
9204
  * Create multiple model instances and save them to the database.
9205
- *
9206
- * @param amount
9207
- * @param overrides
9208
- * @returns
9205
+ *
9206
+ * @param amount
9207
+ * @param overrides
9208
+ * @returns
9209
9209
  */
9210
9210
  async createMany(amount = this.amount, overrides = {}) {
9211
9211
  this.ensureConfigured();
@@ -9216,10 +9216,10 @@ var ModelFactory = class ModelFactory {
9216
9216
  }
9217
9217
  /**
9218
9218
  * Create related models through a has-one or has-many relationship.
9219
- *
9220
- * @param factory
9221
- * @param relationship
9222
- * @returns
9219
+ *
9220
+ * @param factory
9221
+ * @param relationship
9222
+ * @returns
9223
9223
  */
9224
9224
  has(factory, relationship) {
9225
9225
  this.ensureConfigured();
@@ -9231,10 +9231,10 @@ var ModelFactory = class ModelFactory {
9231
9231
  }
9232
9232
  /**
9233
9233
  * Associate the created model with a parent model or factory.
9234
- *
9235
- * @param related
9236
- * @param relationship
9237
- * @returns
9234
+ *
9235
+ * @param related
9236
+ * @param relationship
9237
+ * @returns
9238
9238
  */
9239
9239
  for(related, relationship) {
9240
9240
  this.ensureConfigured();
@@ -9246,11 +9246,11 @@ var ModelFactory = class ModelFactory {
9246
9246
  }
9247
9247
  /**
9248
9248
  * Create or reuse related models and attach them through a many-to-many relationship.
9249
- *
9250
- * @param related
9251
- * @param pivot
9252
- * @param relationship
9253
- * @returns
9249
+ *
9250
+ * @param related
9251
+ * @param pivot
9252
+ * @param relationship
9253
+ * @returns
9254
9254
  */
9255
9255
  hasAttached(related, pivot = {}, relationship) {
9256
9256
  this.ensureConfigured();
@@ -9263,9 +9263,9 @@ var ModelFactory = class ModelFactory {
9263
9263
  }
9264
9264
  /**
9265
9265
  * Reuse existing models when resolving factory-backed relationships.
9266
- *
9267
- * @param models
9268
- * @returns
9266
+ *
9267
+ * @param models
9268
+ * @returns
9269
9269
  */
9270
9270
  recycle(models) {
9271
9271
  this.ensureConfigured();
@@ -9279,18 +9279,18 @@ var ModelFactory = class ModelFactory {
9279
9279
  }
9280
9280
  /**
9281
9281
  * Get the model contgructor
9282
- *
9283
- * @returns
9282
+ *
9283
+ * @returns
9284
9284
  */
9285
9285
  getModelConstructor() {
9286
9286
  return this.model;
9287
9287
  }
9288
9288
  /**
9289
- * Build the attributes for a model instance, applying the factory
9289
+ * Build the attributes for a model instance, applying the factory
9290
9290
  * definition and any defined states, and merging in any overrides.
9291
- *
9292
- * @param overrides
9293
- * @returns
9291
+ *
9292
+ * @param overrides
9293
+ * @returns
9294
9294
  */
9295
9295
  buildAttributes(overrides) {
9296
9296
  const sequence = this.sequence;
@@ -9461,11 +9461,11 @@ var ModelFactory = class ModelFactory {
9461
9461
  }
9462
9462
  };
9463
9463
  /**
9464
- * A helper class for defining factories using an inline definition
9464
+ * A helper class for defining factories using an inline definition
9465
9465
  * function, without needing to create a separate factory class.
9466
- *
9466
+ *
9467
9467
  * @template TModel
9468
- * @template TAttributes
9468
+ * @template TAttributes
9469
9469
  * @author Legacy (3m1n3nc3)
9470
9470
  * @since 0.1.0
9471
9471
  */
@@ -9481,7 +9481,7 @@ var InlineFactory = class extends ModelFactory {
9481
9481
  };
9482
9482
  /**
9483
9483
  * Define a factory for a given model using an inline definition function.
9484
- *
9484
+ *
9485
9485
  * @template TModel The type of model the factory creates.
9486
9486
  * @template TAttributes The type of attributes used to create the model.
9487
9487
  * @param model The model constructor.
@@ -9614,10 +9614,10 @@ var DB = class DB {
9614
9614
  //#endregion
9615
9615
  //#region src/PivotModel.ts
9616
9616
  /**
9617
- * Base pivot class that all pivot models should extend.
9618
- *
9617
+ * Base pivot class that all pivot models should extend.
9618
+ *
9619
9619
  * @template TModel The type of the model extending this base class.
9620
- *
9620
+ *
9621
9621
  * @author Legacy (3m1n3nc3)
9622
9622
  * @since 2.0.0-next.18
9623
9623
  */