arkormx 2.5.1 → 2.5.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/cli.mjs CHANGED
@@ -2095,6 +2095,20 @@ const createEmptyRegistry = () => ({
2095
2095
  factories: []
2096
2096
  });
2097
2097
  const registry = createEmptyRegistry();
2098
+ const pushUnique = (items, values) => {
2099
+ values.forEach((value) => {
2100
+ if (!items.includes(value)) items.push(value);
2101
+ });
2102
+ };
2103
+ const normalizeConstructors = (items) => items.flatMap((item) => Array.isArray(item) ? item : [item]).filter(Boolean);
2104
+ /**
2105
+ * Register model constructors directly without relying on runtime discovery.
2106
+ *
2107
+ * @param models
2108
+ */
2109
+ const registerModels = (...models) => {
2110
+ pushUnique(registry.models, normalizeConstructors(models));
2111
+ };
2098
2112
  /**
2099
2113
  * Get registered runtime discovery paths or registered constructors for a specific type.
2100
2114
  *
@@ -2161,6 +2175,8 @@ const userConfig = {
2161
2175
  };
2162
2176
  let runtimeConfigLoaded = false;
2163
2177
  let runtimeConfigLoadingPromise;
2178
+ let runtimeModelRegistrationPromise;
2179
+ let runtimeModelRegistrationGeneration = 0;
2164
2180
  let runtimeClientResolver;
2165
2181
  let runtimeAdapter;
2166
2182
  let runtimePaginationURLDriverFactory;
@@ -2226,6 +2242,51 @@ const mergeFeatureConfig = (features) => {
2226
2242
  ...features ?? {}
2227
2243
  };
2228
2244
  };
2245
+ const resolveRuntimeModelsDirectory = (directory) => {
2246
+ if (existsSync(directory)) return directory;
2247
+ const buildOutput = userConfig.paths?.buildOutput;
2248
+ if (typeof buildOutput !== "string" || buildOutput.trim().length === 0) return directory;
2249
+ const relativeSource = path.relative(process.cwd(), directory);
2250
+ if (!relativeSource || relativeSource.startsWith("..")) return directory;
2251
+ const mappedDirectory = path.join(buildOutput, relativeSource);
2252
+ return existsSync(mappedDirectory) ? mappedDirectory : directory;
2253
+ };
2254
+ const collectRuntimeModelFiles = (directory) => {
2255
+ if (!existsSync(directory)) return [];
2256
+ return readdirSync(directory, { withFileTypes: true }).flatMap((entry) => {
2257
+ const entryPath = path.join(directory, entry.name);
2258
+ if (entry.isDirectory()) return collectRuntimeModelFiles(entryPath);
2259
+ if (!entry.isFile() || !/\.(ts|tsx|mts|cts|js|mjs|cjs)$/i.test(entry.name)) return [];
2260
+ if (/\.d\.(ts|mts|cts)$/i.test(entry.name)) return [];
2261
+ return [entryPath];
2262
+ });
2263
+ };
2264
+ const isModelConstructor = (value) => {
2265
+ if (typeof value !== "function") return false;
2266
+ const candidate = value;
2267
+ return typeof candidate.query === "function" && typeof candidate.hydrate === "function" && typeof candidate.getTable === "function" && typeof candidate.getPrimaryKey === "function";
2268
+ };
2269
+ const registerConfiguredModels = async (generation) => {
2270
+ const configured = userConfig.paths?.models;
2271
+ const additional = getRegisteredPaths("models");
2272
+ const files = [...typeof configured === "string" ? [configured] : [], ...additional].map((directory) => resolveRuntimeModelsDirectory(path.isAbsolute(directory) ? directory : path.resolve(process.cwd(), directory))).filter((directory, index, all) => all.indexOf(directory) === index).flatMap(collectRuntimeModelFiles);
2273
+ const models = (await Promise.all(files.map(async (file) => {
2274
+ try {
2275
+ return await RuntimeModuleLoader.load(file);
2276
+ } catch {
2277
+ return null;
2278
+ }
2279
+ }))).flatMap((module) => module ? Object.values(module).filter(isModelConstructor) : []);
2280
+ if (generation === runtimeModelRegistrationGeneration) registerModels(models);
2281
+ };
2282
+ const scheduleConfiguredModelRegistration = () => {
2283
+ const generation = runtimeModelRegistrationGeneration;
2284
+ runtimeModelRegistrationPromise = (runtimeModelRegistrationPromise ?? Promise.resolve()).then(async () => await registerConfiguredModels(generation));
2285
+ return runtimeModelRegistrationPromise;
2286
+ };
2287
+ const awaitConfiguredModelsRegistration = async () => {
2288
+ if (runtimeModelRegistrationPromise) await runtimeModelRegistrationPromise;
2289
+ };
2229
2290
  /**
2230
2291
  * Bind a database adapter instance to an array of models that support adapter binding.
2231
2292
  *
@@ -2277,6 +2338,7 @@ const configureArkormRuntime = (client, options = {}) => {
2277
2338
  runtimePaginationURLDriverFactory = nextConfig.pagination?.urlDriver;
2278
2339
  runtimePaginationCurrentPageResolver = nextConfig.pagination?.resolveCurrentPage;
2279
2340
  runtimeDebugHandler = resolveDebugHandler(nextConfig.debug);
2341
+ scheduleConfiguredModelRegistration();
2280
2342
  const bootClient = resolveClient(resolvedClient);
2281
2343
  options.boot?.({
2282
2344
  client: bootClient,
@@ -2352,21 +2414,30 @@ const loadRuntimeConfigSync = () => {
2352
2414
  * @returns
2353
2415
  */
2354
2416
  const loadArkormConfig = async () => {
2355
- if (runtimeConfigLoaded) return;
2417
+ if (runtimeConfigLoaded) {
2418
+ await awaitConfiguredModelsRegistration();
2419
+ return;
2420
+ }
2356
2421
  if (runtimeConfigLoadingPromise) return await runtimeConfigLoadingPromise;
2357
- if (loadRuntimeConfigSync()) return;
2422
+ if (loadRuntimeConfigSync()) {
2423
+ await awaitConfiguredModelsRegistration();
2424
+ return;
2425
+ }
2358
2426
  runtimeConfigLoadingPromise = (async () => {
2359
2427
  const configPaths = [path.join(process.cwd(), "arkormx.config.js"), path.join(process.cwd(), "arkormx.config.ts")];
2360
2428
  for (const configPath of configPaths) {
2361
2429
  if (!existsSync(configPath)) continue;
2362
2430
  try {
2363
2431
  resolveAndApplyConfig(await importConfigFile(configPath));
2432
+ await awaitConfiguredModelsRegistration();
2364
2433
  return;
2365
2434
  } catch {
2366
2435
  continue;
2367
2436
  }
2368
2437
  }
2369
2438
  runtimeConfigLoaded = true;
2439
+ await scheduleConfiguredModelRegistration();
2440
+ await awaitConfiguredModelsRegistration();
2370
2441
  })();
2371
2442
  await runtimeConfigLoadingPromise;
2372
2443
  };
@@ -1,7 +1,7 @@
1
- import { Kysely, Transaction } from "kysely";
2
- import { PrismaClient } from "@prisma/client";
3
1
  import { Collection } from "@h3ravel/collect.js";
2
+ import { Kysely, Transaction } from "kysely";
4
3
  import { Command } from "@h3ravel/musket";
4
+ import { PrismaClient } from "@prisma/client";
5
5
 
6
6
  //#region src/types/migrations.d.ts
7
7
  type SchemaColumnType = 'id' | 'uuid' | 'enum' | 'string' | 'text' | 'integer' | 'bigInteger' | 'float' | 'boolean' | 'json' | 'date' | 'timestamp';
@@ -136,7 +136,7 @@ interface ModelMetadata {
136
136
  primaryKeyGeneration?: PrimaryKeyGeneration;
137
137
  timestampColumns?: TimestampColumnBehavior[];
138
138
  }
139
- type RelationMetadataType = 'hasOne' | 'hasMany' | 'belongsTo' | 'belongsToMany' | 'hasOneThrough' | 'hasManyThrough' | 'morphOne' | 'morphMany' | 'morphToMany';
139
+ type RelationMetadataType = 'hasOne' | 'hasMany' | 'belongsTo' | 'belongsToMany' | 'hasOneThrough' | 'hasManyThrough' | 'morphOne' | 'morphMany' | 'morphTo' | 'morphToMany';
140
140
  interface BaseRelationMetadata {
141
141
  type: RelationMetadataType;
142
142
  relatedModel: RelationshipModelStatic;
@@ -200,6 +200,13 @@ interface MorphManyRelationMetadata extends BaseRelationMetadata {
200
200
  morphTypeColumn: string;
201
201
  localKey: string;
202
202
  }
203
+ interface MorphToRelationMetadata {
204
+ type: 'morphTo';
205
+ morphName: string;
206
+ morphIdColumn: string;
207
+ morphTypeColumn: string;
208
+ ownerKey?: string;
209
+ }
203
210
  interface MorphToManyRelationMetadata extends BaseRelationMetadata {
204
211
  type: 'morphToMany';
205
212
  throughTable: string;
@@ -210,7 +217,7 @@ interface MorphToManyRelationMetadata extends BaseRelationMetadata {
210
217
  parentKey: string;
211
218
  relatedKey: string;
212
219
  }
213
- type RelationMetadata = HasOneRelationMetadata | HasManyRelationMetadata | BelongsToRelationMetadata | BelongsToManyRelationMetadata | HasOneThroughRelationMetadata | HasManyThroughRelationMetadata | MorphOneRelationMetadata | MorphManyRelationMetadata | MorphToManyRelationMetadata;
220
+ type RelationMetadata = HasOneRelationMetadata | HasManyRelationMetadata | BelongsToRelationMetadata | BelongsToManyRelationMetadata | HasOneThroughRelationMetadata | HasManyThroughRelationMetadata | MorphOneRelationMetadata | MorphManyRelationMetadata | MorphToRelationMetadata | MorphToManyRelationMetadata;
214
221
  //#endregion
215
222
  //#region src/types/db.d.ts
216
223
  interface DatabaseTablePersistedMetadataOptions {
@@ -1256,6 +1263,44 @@ declare class MorphToManyRelation<TParent, TRelated> extends Relation<TRelated>
1256
1263
  getResults(): Promise<ArkormCollection<TRelated>>;
1257
1264
  }
1258
1265
  //#endregion
1266
+ //#region src/relationship/MorphToRelation.d.ts
1267
+ type MorphToParent = {
1268
+ getAttribute: (key: string) => unknown;
1269
+ };
1270
+ /**
1271
+ * Defines the inverse side of a polymorphic one-to-one or one-to-many relationship.
1272
+ *
1273
+ * Related models are resolved from ArkORM's runtime model registry using the value
1274
+ * stored in the morph type column.
1275
+ *
1276
+ * @author Legacy (3m1n3nc3)
1277
+ * @since 2.6.0
1278
+ */
1279
+ declare class MorphToRelation<TParent, TRelated> extends Relation<TRelated> {
1280
+ private readonly parent;
1281
+ private readonly morphName;
1282
+ private readonly morphTypeColumn;
1283
+ private readonly morphIdColumn;
1284
+ private readonly ownerKey?;
1285
+ private readonly relatedModel?;
1286
+ constructor(parent: TParent & MorphToParent, morphName: string, morphTypeColumn: string, morphIdColumn: string, ownerKey?: string | undefined, relatedModel?: RelatedModelClass<TRelated> | undefined);
1287
+ protected get related(): RelatedModelClass<TRelated>;
1288
+ /**
1289
+ * Build the relationship query.
1290
+ *
1291
+ * @returns
1292
+ */
1293
+ getQuery(): Promise<QueryBuilder<TRelated>>;
1294
+ getMetadata(): MorphToRelationMetadata;
1295
+ /**
1296
+ * Fetch the polymorphic parent model.
1297
+ *
1298
+ * @returns
1299
+ */
1300
+ getResults(): Promise<TRelated | null>;
1301
+ private resolveRelatedModel;
1302
+ }
1303
+ //#endregion
1259
1304
  //#region src/relationship/SetBasedEagerLoader.d.ts
1260
1305
  type EagerLoadableModel = {
1261
1306
  getAttribute: (key: string) => unknown;
@@ -2165,6 +2210,17 @@ declare abstract class Model<TSchema extends ModelQuerySchemaLike | Record<strin
2165
2210
  * @returns
2166
2211
  */
2167
2212
  protected morphMany<TRelatedClass extends RelatedModelClass>(related: TRelatedClass, morphName: string, idColumn?: string, typeColumn?: string, localKey?: string): MorphManyRelation<this, InstanceType<TRelatedClass>>;
2213
+ /**
2214
+ * Define the inverse side of a polymorphic relationship.
2215
+ *
2216
+ * @param morphName
2217
+ * @param typeColumnOrRelated
2218
+ * @param idColumn
2219
+ * @param ownerKey
2220
+ * @returns
2221
+ */
2222
+ protected morphTo<TRelatedClass extends RelatedModelClass>(morphName: string, related: TRelatedClass, idColumn?: string, ownerKey?: string): MorphToRelation<this, InstanceType<TRelatedClass>>;
2223
+ protected morphTo<TRelated extends Model = Model>(morphName: string, typeColumn?: string, idColumn?: string, ownerKey?: string): MorphToRelation<this, TRelated>;
2168
2224
  /**
2169
2225
  * Define a polymorphic many to many relationship.
2170
2226
  *
@@ -2196,6 +2252,13 @@ declare abstract class Model<TSchema extends ModelQuerySchemaLike | Record<strin
2196
2252
  * @returns
2197
2253
  */
2198
2254
  private getDirtyAttributes;
2255
+ /**
2256
+ * Normalize built-in persistence casts without re-running arbitrary custom setters.
2257
+ *
2258
+ * @param attributes
2259
+ * @returns
2260
+ */
2261
+ private normalizePersistenceAttributes;
2199
2262
  /**
2200
2263
  * Normalize a key or key list for dirty/change lookups.
2201
2264
  *
@@ -6040,6 +6103,7 @@ declare class PrimaryKeyGenerationPlanner {
6040
6103
  }
6041
6104
  //#endregion
6042
6105
  //#region src/helpers/runtime-config.d.ts
6106
+ declare const awaitConfiguredModelsRegistration: () => Promise<void>;
6043
6107
  /**
6044
6108
  * Define the ArkORM runtime configuration. This function can be used to provide.
6045
6109
  *
@@ -6213,4 +6277,4 @@ declare class URLDriver {
6213
6277
  url(page: number): string;
6214
6278
  }
6215
6279
  //#endregion
6216
- export { createMigrationTimestamp as $, InlineFactory as $a, PrismaLikeWhereInput as $i, getRegisteredMigrations as $n, RelationMetadataType as $o, QuerySelectColumn as $r, getPersistedEnumTsType as $t, resetArkormRuntimeForTests as A, AttributeSchemaDelegate as Aa, DelegateUniqueWhere as Ai, ModelsSyncCommand as An, FactoryAttributes as Ao, AdapterModelStructure as Ar, findAppliedMigration as At, applyMigrationRollbackToPrismaSchema as B, ModelDeclaredAttributeKey as Ba, PaginationCurrentPageResolver as Bi, CliApp as Bn, BelongsToManyRelationMetadata as Bo, DatabaseValue as Br, supportsDatabaseMigrationState as Bt, getRuntimePaginationURLDriverFactory as C, TransactionOptions as Ca, DelegateCreateData as Ci, MIGRATION_BRAND as Cn, RelationResult as Co, createKyselyAdapter as Cr, toMigrationFileSlug as Ct, isQuerySchemaLike as D, AttributeCreateInput as Da, DelegateRow as Di, TableBuilder as Dn, Paginator as Do, AdapterInspectionRequest as Dr, computeMigrationChecksum as Dt, isDelegateLike as E, QueryBuilder as Ea, DelegateOrderBy as Ei, EnumBuilder as En, LengthAwarePaginator as Eo, AdapterDatabaseCreationResult as Er, buildMigrationRunId as Et, PRISMA_MODEL_REGEX as F, GlobalScope as Fa, EagerLoadMap as Fi, MakeSeederCommand as Fn, FactoryRelationshipResolver as Fo, AggregateSpec as Fr, markMigrationRun as Ft, buildFieldLine as G, ModelEventName as Ga, PrismaClientLike as Gi, Arkormx as Gn, HasOneRelationMetadata as Go, QueryComparisonCondition as Gr, PersistedPrimaryKeyGeneration as Gt, applyMigrationToPrismaSchema as H, ModelEventHandler as Ha, PaginationOptions as Hi, Attribute as Hn, ColumnMap as Ho, DeleteSpec as Hr, writeAppliedMigrationsStateToStore as Ht, applyAlterTableOperation as I, ModelAttributeValue as Ia, GetUserConfig as Ii, MakeModelCommand as In, FactoryState as Io, DatabaseAdapter as Ir, readAppliedMigrationsState as It, buildMigrationSource as J, ModelRelationshipResult as Ja, PrismaLikeInclude as Ji, RuntimeConstructor as Jn, MorphManyRelationMetadata as Jo, QueryGroupCondition as Jr, applyOperationsToPersistedColumnMappingsState as Jt, buildIndexLine as K, ModelLifecycleState as Ka, PrismaDelegateLike as Ki, RegisteredFactory as Kn, HasOneThroughRelationMetadata as Ko, QueryComparisonOperator as Kr, PersistedTableMetadata as Kt, applyCreateTableOperation as L, ModelAttributes as La, ModelQuerySchemaLike as Li, MakeMigrationCommand as Ln, MaybePromise as Lo, DatabasePrimitive as Lr, readAppliedMigrationsStateFromStore as Lt, PrimaryKeyGenerationPlanner as M, AttributeUpdateInput as Ma, DelegateUpdateData as Mi, MigrateRollbackCommand as Mn, FactoryDefinition as Mo, AdapterTransactionContext as Mr, getLatestAppliedMigrations as Mt, PRISMA_ENUM_MEMBER_REGEX as N, AttributeWhereInput as Na, DelegateWhere as Ni, MigrateFreshCommand as Nn, FactoryDefinitionAttributes as No, AggregateOperation as Nr, isMigrationApplied as Nt, isTransactionCapableClient as O, AttributeOrderBy as Oa, DelegateRows as Oi, ForeignKeyBuilder as On, ArkormCollection as Oo, AdapterModelFieldStructure as Or, createEmptyAppliedMigrationsState as Ot, PRISMA_ENUM_REGEX as P, DelegateForModelSchema as Pa, EagerLoadConstraint as Pi, MigrateCommand as Pn, FactoryModelConstructor as Po, AggregateSelection as Pr, markMigrationApplied as Pt, buildUniqueConstraintLine as Q, Model as Qa, PrismaLikeSortOrder as Qi, getRegisteredFactories as Qn, RelationMetadata as Qo, QueryRawCondition as Qr, getPersistedEnumMap as Qt, applyDropTableOperation as R, ModelAttributesOf as Ra, ModelTableCase as Ri, MakeFactoryCommand as Rn, DatabaseTableOptions as Ro, DatabaseRow as Rr, removeAppliedMigration as Rt, getRuntimePaginationCurrentPageResolver as S, TransactionContext as Sa, ClientResolver as Si, DB as Sn, RelationMetadataProvider as So, KyselyDatabaseAdapter as Sr, supportsDatabaseReset as St, getUserConfig as T, RelationshipModelStatic as Ta, DelegateInclude as Ti, SchemaBuilder as Tn, RelationTableLookupSpec as To, AdapterCapability as Tr, buildMigrationIdentity as Tt, applyOperationsToPrismaSchema as U, ModelEventHandlerConstructor as Ua, PaginationURLDriver as Ui, AttributeOptions as Un, HasManyRelationMetadata as Uo, InsertManySpec as Ur, PersistedColumnMappingsState as Ut, applyMigrationToDatabase as V, ModelEventDispatcher as Va, PaginationMeta as Vi, resolveCast as Vn, BelongsToRelationMetadata as Vo, DeleteManySpec as Vr, writeAppliedMigrationsState as Vt, buildEnumBlock as W, ModelEventListener as Wa, PaginationURLDriverFactory as Wi, Arkorm as Wn, HasManyThroughRelationMetadata as Wo, InsertSpec as Wr, PersistedMetadataFeatures as Wt, buildPrimaryKeyLine as X, QuerySchemaForModel as Xa, PrismaLikeScalarFilter as Xi, RuntimePathKey as Xn, MorphToManyRelationMetadata as Xo, QueryNotCondition as Xr, deletePersistedColumnMappingsState as Xt, buildModelBlock as Y, ModelUpdateData as Ya, PrismaLikeOrderBy as Yi, RuntimePathInput as Yn, MorphOneRelationMetadata as Yo, QueryLogicalOperator as Yr, createEmptyPersistedColumnMappingsState as Yt, buildRelationLine as Z, RelatedModelClass as Za, PrismaLikeSelect as Zi, RuntimePathMap as Zn, PivotModelStatic as Zo, QueryOrderBy as Zr, getPersistedColumnMap as Zt, getActiveTransactionClient as _, Serializable as _a, ArkormDebugHandler as _i, QueryConstraintException as _n, RelationAggregateType as _o, SeederInput as _r, SchemaTableAlterOperation as _s, runMigrationWithPrisma as _t, resolveRuntimeCompatibilityQuerySchema as a, QuerySchemaFindManyArgs as aa, RelationLoadSpec as ai, resetPersistedColumnMappingsCache as an, MorphManyRelation as ao, loadModelsFrom as ar, MigrationClass as as, escapeRegex as at, getRuntimeClient as b, TransactionCallback as ba, CastMap as bi, ArkormErrorContext as bn, RelationDefaultResolver as bo, createPrismaCompatibilityAdapter as br, SchemaUniqueConstraint as bs, supportsDatabaseCreation as bt, createPrismaAdapter as c, QuerySchemaRow as ca, SortDirection as ci, syncPersistedColumnMappingsFromState as cn, HasManyThroughRelation as co, registerMigrations as cr, PrismaMigrationWorkflowOptions as cs, formatDefaultValue as ct, bindAdapterToModels as d, QuerySchemaUniqueWhere as da, UpsertSpec as di, UnsupportedAdapterFeatureException as dn, SingleResultRelation as do, registerSeeders as dr, SchemaColumnType as ds, generateMigrationFile as dt, PrismaTransactionCallback as ea, QueryTarget as ei, getPersistedPrimaryKeyGeneration as en, ModelFactory as eo, getRegisteredModels as er, AppliedMigrationEntry as es, deriveCollectionFieldName as et, configureArkormRuntime as f, QuerySchemaUpdateArgs as fa, AdapterBindableModel as fi, UniqueConstraintResolutionException as fn, BelongsToManyRelation as fo, resetRuntimeRegistryForTests as fr, SchemaForeignKey as fs, getMigrationPlan as ft, getActiveTransactionAdapter as g, RuntimeClientLike as ga, ArkormDebugEvent as gi, QueryExecutionExceptionContext as gn, RelationAggregateInput as go, SeederConstructor as gr, SchemaPrimaryKey as gs, resolvePrismaType as gt, ensureArkormConfigLoading as h, RawSelectInput as ha, ArkormConfig as hi, QueryExecutionException as hn, RelationAggregateConstraint as ho, SeederCallArgument as hr, SchemaOperation as hs, resolveMigrationClassName as ht, getRuntimeCompatibilityAdapter as i, QuerySchemaCreateData as ia, RelationLoadPlan as ii, rebuildPersistedColumnMappingsState as in, MorphOneRelation as io, loadMigrationsFrom as ir, GeneratedMigrationFile as is, deriveSingularFieldName as it, runArkormTransaction as j, AttributeSelect as ja, DelegateUpdateArgs as ji, MigrationHistoryCommand as jn, FactoryCallback as jo, AdapterQueryOperation as jr, getLastMigrationRun as jt, loadArkormConfig as k, AttributeQuerySchema as ka, DelegateSelect as ki, SeedCommand as kn, FactoryAttributeResolver as ko, AdapterModelIntrospectionOptions as kr, deleteAppliedMigrationsStateFromStore as kt, createPrismaDelegateMap as l, QuerySchemaRows as la, UpdateManySpec as li, validatePersistedMetadataFeaturesForMigrations as ln, HasManyRelation as lo, registerModels as lr, PrismaSchemaSyncOptions as ls, formatEnumDefaultValue as lt, emitRuntimeDebugEvent as m, QuerySchemaWhere as ma, ArkormBootContext as mi, RelationResolutionException as mn, RelationTableLoader as mo, Seeder as mr, SchemaIndex as ms, resolveEnumName as mt, PivotModel as n, PrismaTransactionContext as na, RelationAggregateSpec as ni, getPersistedTimestampColumns as nn, SetBasedEagerLoader as no, getRegisteredSeeders as nr, AppliedMigrationsState as ns, deriveRelationAlias as nt, resolveRuntimeCompatibilityQuerySchemaOrThrow as o, QuerySchemaInclude as oa, SelectSpec as oi, resolveColumnMappingsFilePath as on, HasOneThroughRelation as oo, loadSeedersFrom as or, MigrationInstanceLike as os, findEnumBlock as ot, defineConfig as p, QuerySchemaUpdateData as pa, AdapterQueryInspection as pi, ScopeNotDefinedException as pn, Relation as po, SEEDER_BRAND as pr, SchemaForeignKeyAction as ps, pad as pt, buildInverseRelationLine as q, ModelRelationshipKey as qa, PrismaFindManyArgsLike as qi, RegisteredModel as qn, ModelMetadata as qo, QueryCondition as qr, PersistedTimestampColumn as qt, RuntimeModuleLoader as r, PrismaTransactionOptions as ra, RelationFilterSpec as ri, readPersistedColumnMappingsState as rn, MorphToManyRelation as ro, loadFactoriesFrom as rr, GenerateMigrationOptions as rs, deriveRelationFieldName as rt, PrismaDelegateMap as s, QuerySchemaOrderBy as sa, SoftDeleteQueryMode as si, resolvePersistedMetadataFeatures as sn, HasOneRelation as so, registerFactories as sr, PrimaryKeyGeneration as ss, findModelBlock as st, URLDriver as t, PrismaTransactionCapableClient as ta, RawQuerySpec as ti, getPersistedTableMetadata as tn, defineFactory as to, getRegisteredPaths as tr, AppliedMigrationRun as ts, deriveInverseRelationAlias as tt, inferDelegateName as u, QuerySchemaSelect as ua, UpdateSpec as ui, writePersistedColumnMappingsState as un, BelongsToRelation as uo, registerPaths as ur, SchemaColumn as us, formatRelationAction as ut, getDefaultStubsPath as v, SimplePaginationMeta as va, CastDefinition as vi, ModelNotFoundException as vn, RelationColumnLookupSpec as vo, PrismaDatabaseAdapter as vr, SchemaTableCreateOperation as vs, runPrismaCommand as vt, getRuntimePrismaClient as w, ModelStatic as wa, DelegateFindManyArgs as wi, Migration as wn, RelationResultCache as wo, AdapterCapabilities as wr, toModelName as wt, getRuntimeDebugHandler as x, TransactionCapableClient as xa, CastType as xi, ArkormException as xn, RelationDefaultValue as xo, createPrismaDatabaseAdapter as xr, TimestampColumnBehavior as xs, supportsDatabaseMigrationExecution as xt, getRuntimeAdapter as y, SoftDeleteConfig as ya, CastHandler as yi, MissingDelegateException as yn, RelationConstraint as yo, PrismaDelegateNameMapping as yr, SchemaTableDropOperation as ys, stripPrismaSchemaModelsAndEnums as yt, applyMigrationRollbackToDatabase as z, ModelCreateData as za, NamingCase as zi, InitCommand as zn, DatabaseTablePersistedMetadataOptions as zo, DatabaseRows as zr, resolveMigrationStateFilePath as zt };
6280
+ export { buildUniqueConstraintLine as $, Model as $a, PrismaLikeSortOrder as $i, getRegisteredFactories as $n, MorphToRelationMetadata as $o, QueryRawCondition as $r, getPersistedEnumMap as $t, loadArkormConfig as A, AttributeQuerySchema as Aa, DelegateSelect as Ai, SeedCommand as An, ArkormCollection as Ao, AdapterModelIntrospectionOptions as Ar, deleteAppliedMigrationsStateFromStore as At, applyMigrationRollbackToDatabase as B, ModelCreateData as Ba, NamingCase as Bi, InitCommand as Bn, DatabaseTableOptions as Bo, DatabaseRows as Br, resolveMigrationStateFilePath as Bt, getRuntimePaginationCurrentPageResolver as C, TransactionContext as Ca, ClientResolver as Ci, DB as Cn, RelationDefaultValue as Co, KyselyDatabaseAdapter as Cr, SchemaUniqueConstraint as Cs, supportsDatabaseReset as Ct, isDelegateLike as D, QueryBuilder as Da, DelegateOrderBy as Di, EnumBuilder as Dn, RelationTableLookupSpec as Do, AdapterDatabaseCreationResult as Dr, buildMigrationRunId as Dt, getUserConfig as E, RelationshipModelStatic as Ea, DelegateInclude as Ei, SchemaBuilder as En, RelationResultCache as Eo, AdapterCapability as Er, buildMigrationIdentity as Et, PRISMA_ENUM_REGEX as F, DelegateForModelSchema as Fa, EagerLoadConstraint as Fi, MigrateCommand as Fn, FactoryDefinitionAttributes as Fo, AggregateSelection as Fr, markMigrationApplied as Ft, buildEnumBlock as G, ModelEventListener as Ga, PaginationURLDriverFactory as Gi, Arkorm as Gn, HasManyRelationMetadata as Go, InsertSpec as Gr, PersistedMetadataFeatures as Gt, applyMigrationToDatabase as H, ModelEventDispatcher as Ha, PaginationMeta as Hi, resolveCast as Hn, BelongsToManyRelationMetadata as Ho, DeleteManySpec as Hr, writeAppliedMigrationsState as Ht, PRISMA_MODEL_REGEX as I, GlobalScope as Ia, EagerLoadMap as Ii, MakeSeederCommand as In, FactoryModelConstructor as Io, AggregateSpec as Ir, markMigrationRun as It, buildInverseRelationLine as J, ModelRelationshipKey as Ja, PrismaFindManyArgsLike as Ji, RegisteredModel as Jn, HasOneThroughRelationMetadata as Jo, QueryCondition as Jr, PersistedTimestampColumn as Jt, buildFieldLine as K, ModelEventName as Ka, PrismaClientLike as Ki, Arkormx as Kn, HasManyThroughRelationMetadata as Ko, QueryComparisonCondition as Kr, PersistedPrimaryKeyGeneration as Kt, applyAlterTableOperation as L, ModelAttributeValue as La, GetUserConfig as Li, MakeModelCommand as Ln, FactoryRelationshipResolver as Lo, DatabaseAdapter as Lr, readAppliedMigrationsState as Lt, runArkormTransaction as M, AttributeSelect as Ma, DelegateUpdateArgs as Mi, MigrationHistoryCommand as Mn, FactoryAttributes as Mo, AdapterQueryOperation as Mr, getLastMigrationRun as Mt, PrimaryKeyGenerationPlanner as N, AttributeUpdateInput as Na, DelegateUpdateData as Ni, MigrateRollbackCommand as Nn, FactoryCallback as No, AdapterTransactionContext as Nr, getLatestAppliedMigrations as Nt, isQuerySchemaLike as O, AttributeCreateInput as Oa, DelegateRow as Oi, TableBuilder as On, LengthAwarePaginator as Oo, AdapterInspectionRequest as Or, computeMigrationChecksum as Ot, PRISMA_ENUM_MEMBER_REGEX as P, AttributeWhereInput as Pa, DelegateWhere as Pi, MigrateFreshCommand as Pn, FactoryDefinition as Po, AggregateOperation as Pr, isMigrationApplied as Pt, buildRelationLine as Q, RelatedModelClass as Qa, PrismaLikeSelect as Qi, RuntimePathMap as Qn, MorphToManyRelationMetadata as Qo, QueryOrderBy as Qr, getPersistedColumnMap as Qt, applyCreateTableOperation as R, ModelAttributes as Ra, ModelQuerySchemaLike as Ri, MakeMigrationCommand as Rn, FactoryState as Ro, DatabasePrimitive as Rr, readAppliedMigrationsStateFromStore as Rt, getRuntimeDebugHandler as S, TransactionCapableClient as Sa, CastType as Si, ArkormException as Sn, RelationDefaultResolver as So, createPrismaDatabaseAdapter as Sr, SchemaTableDropOperation as Ss, supportsDatabaseMigrationExecution as St, getRuntimePrismaClient as T, ModelStatic as Ta, DelegateFindManyArgs as Ti, Migration as Tn, RelationResult as To, AdapterCapabilities as Tr, toModelName as Tt, applyMigrationToPrismaSchema as U, ModelEventHandler as Ua, PaginationOptions as Ui, Attribute as Un, BelongsToRelationMetadata as Uo, DeleteSpec as Ur, writeAppliedMigrationsStateToStore as Ut, applyMigrationRollbackToPrismaSchema as V, ModelDeclaredAttributeKey as Va, PaginationCurrentPageResolver as Vi, CliApp as Vn, DatabaseTablePersistedMetadataOptions as Vo, DatabaseValue as Vr, supportsDatabaseMigrationState as Vt, applyOperationsToPrismaSchema as W, ModelEventHandlerConstructor as Wa, PaginationURLDriver as Wi, AttributeOptions as Wn, ColumnMap as Wo, InsertManySpec as Wr, PersistedColumnMappingsState as Wt, buildModelBlock as X, ModelUpdateData as Xa, PrismaLikeOrderBy as Xi, RuntimePathInput as Xn, MorphManyRelationMetadata as Xo, QueryLogicalOperator as Xr, createEmptyPersistedColumnMappingsState as Xt, buildMigrationSource as Y, ModelRelationshipResult as Ya, PrismaLikeInclude as Yi, RuntimeConstructor as Yn, ModelMetadata as Yo, QueryGroupCondition as Yr, applyOperationsToPersistedColumnMappingsState as Yt, buildPrimaryKeyLine as Z, QuerySchemaForModel as Za, PrismaLikeScalarFilter as Zi, RuntimePathKey as Zn, MorphOneRelationMetadata as Zo, QueryNotCondition as Zr, deletePersistedColumnMappingsState as Zt, getActiveTransactionAdapter as _, RuntimeClientLike as _a, ArkormDebugEvent as _i, QueryExecutionExceptionContext as _n, RelationAggregateConstraint as _o, SeederConstructor as _r, SchemaIndex as _s, resolvePrismaType as _t, resolveRuntimeCompatibilityQuerySchema as a, QuerySchemaCreateData as aa, RelationLoadPlan as ai, rebuildPersistedColumnMappingsState as an, MorphToManyRelation as ao, loadMigrationsFrom as ar, AppliedMigrationsState as as, deriveSingularFieldName as at, getRuntimeAdapter as b, SoftDeleteConfig as ba, CastHandler as bi, MissingDelegateException as bn, RelationColumnLookupSpec as bo, PrismaDelegateNameMapping as br, SchemaTableAlterOperation as bs, stripPrismaSchemaModelsAndEnums as bt, createPrismaAdapter as c, QuerySchemaOrderBy as ca, SoftDeleteQueryMode as ci, resolvePersistedMetadataFeatures as cn, HasOneThroughRelation as co, registerFactories as cr, MigrationClass as cs, findModelBlock as ct, awaitConfiguredModelsRegistration as d, QuerySchemaSelect as da, UpdateSpec as di, writePersistedColumnMappingsState as dn, HasManyRelation as do, registerPaths as dr, PrismaMigrationWorkflowOptions as ds, formatRelationAction as dt, PrismaLikeWhereInput as ea, QuerySelectColumn as ei, getPersistedEnumTsType as en, InlineFactory as eo, getRegisteredMigrations as er, PivotModelStatic as es, createMigrationTimestamp as et, bindAdapterToModels as f, QuerySchemaUniqueWhere as fa, UpsertSpec as fi, UnsupportedAdapterFeatureException as fn, BelongsToRelation as fo, registerSeeders as fr, PrismaSchemaSyncOptions as fs, generateMigrationFile as ft, ensureArkormConfigLoading as g, RawSelectInput as ga, ArkormConfig as gi, QueryExecutionException as gn, RelationTableLoader as go, SeederCallArgument as gr, SchemaForeignKeyAction as gs, resolveMigrationClassName as gt, emitRuntimeDebugEvent as h, QuerySchemaWhere as ha, ArkormBootContext as hi, RelationResolutionException as hn, Relation as ho, Seeder as hr, SchemaForeignKey as hs, resolveEnumName as ht, getRuntimeCompatibilityAdapter as i, PrismaTransactionOptions as ia, RelationFilterSpec as ii, readPersistedColumnMappingsState as in, MorphToRelation as io, loadFactoriesFrom as ir, AppliedMigrationRun as is, deriveRelationFieldName as it, resetArkormRuntimeForTests as j, AttributeSchemaDelegate as ja, DelegateUniqueWhere as ji, ModelsSyncCommand as jn, FactoryAttributeResolver as jo, AdapterModelStructure as jr, findAppliedMigration as jt, isTransactionCapableClient as k, AttributeOrderBy as ka, DelegateRows as ki, ForeignKeyBuilder as kn, Paginator as ko, AdapterModelFieldStructure as kr, createEmptyAppliedMigrationsState as kt, createPrismaDelegateMap as l, QuerySchemaRow as la, SortDirection as li, syncPersistedColumnMappingsFromState as ln, HasOneRelation as lo, registerMigrations as lr, MigrationInstanceLike as ls, formatDefaultValue as lt, defineConfig as m, QuerySchemaUpdateData as ma, AdapterQueryInspection as mi, ScopeNotDefinedException as mn, BelongsToManyRelation as mo, SEEDER_BRAND as mr, SchemaColumnType as ms, pad as mt, PivotModel as n, PrismaTransactionCapableClient as na, RawQuerySpec as ni, getPersistedTableMetadata as nn, defineFactory as no, getRegisteredPaths as nr, RelationMetadataType as ns, deriveInverseRelationAlias as nt, resolveRuntimeCompatibilityQuerySchemaOrThrow as o, QuerySchemaFindManyArgs as oa, RelationLoadSpec as oi, resetPersistedColumnMappingsCache as on, MorphOneRelation as oo, loadModelsFrom as or, GenerateMigrationOptions as os, escapeRegex as ot, configureArkormRuntime as p, QuerySchemaUpdateArgs as pa, AdapterBindableModel as pi, UniqueConstraintResolutionException as pn, SingleResultRelation as po, resetRuntimeRegistryForTests as pr, SchemaColumn as ps, getMigrationPlan as pt, buildIndexLine as q, ModelLifecycleState as qa, PrismaDelegateLike as qi, RegisteredFactory as qn, HasOneRelationMetadata as qo, QueryComparisonOperator as qr, PersistedTableMetadata as qt, RuntimeModuleLoader as r, PrismaTransactionContext as ra, RelationAggregateSpec as ri, getPersistedTimestampColumns as rn, SetBasedEagerLoader as ro, getRegisteredSeeders as rr, AppliedMigrationEntry as rs, deriveRelationAlias as rt, PrismaDelegateMap as s, QuerySchemaInclude as sa, SelectSpec as si, resolveColumnMappingsFilePath as sn, MorphManyRelation as so, loadSeedersFrom as sr, GeneratedMigrationFile as ss, findEnumBlock as st, URLDriver as t, PrismaTransactionCallback as ta, QueryTarget as ti, getPersistedPrimaryKeyGeneration as tn, ModelFactory as to, getRegisteredModels as tr, RelationMetadata as ts, deriveCollectionFieldName as tt, inferDelegateName as u, QuerySchemaRows as ua, UpdateManySpec as ui, validatePersistedMetadataFeaturesForMigrations as un, HasManyThroughRelation as uo, registerModels as ur, PrimaryKeyGeneration as us, formatEnumDefaultValue as ut, getActiveTransactionClient as v, Serializable as va, ArkormDebugHandler as vi, QueryConstraintException as vn, RelationAggregateInput as vo, SeederInput as vr, SchemaOperation as vs, runMigrationWithPrisma as vt, getRuntimePaginationURLDriverFactory as w, TransactionOptions as wa, DelegateCreateData as wi, MIGRATION_BRAND as wn, RelationMetadataProvider as wo, createKyselyAdapter as wr, TimestampColumnBehavior as ws, toMigrationFileSlug as wt, getRuntimeClient as x, TransactionCallback as xa, CastMap as xi, ArkormErrorContext as xn, RelationConstraint as xo, createPrismaCompatibilityAdapter as xr, SchemaTableCreateOperation as xs, supportsDatabaseCreation as xt, getDefaultStubsPath as y, SimplePaginationMeta as ya, CastDefinition as yi, ModelNotFoundException as yn, RelationAggregateType as yo, PrismaDatabaseAdapter as yr, SchemaPrimaryKey as ys, runPrismaCommand as yt, applyDropTableOperation as z, ModelAttributesOf as za, ModelTableCase as zi, MakeFactoryCommand as zn, MaybePromise as zo, DatabaseRow as zr, removeAppliedMigration as zt };
@@ -1,7 +1,7 @@
1
- import { Collection } from "@h3ravel/collect.js";
2
1
  import { Kysely, Transaction } from "kysely";
3
- import { Command } from "@h3ravel/musket";
4
2
  import { PrismaClient } from "@prisma/client";
3
+ import { Collection } from "@h3ravel/collect.js";
4
+ import { Command } from "@h3ravel/musket";
5
5
 
6
6
  //#region src/types/migrations.d.ts
7
7
  type SchemaColumnType = 'id' | 'uuid' | 'enum' | 'string' | 'text' | 'integer' | 'bigInteger' | 'float' | 'boolean' | 'json' | 'date' | 'timestamp';
@@ -136,7 +136,7 @@ interface ModelMetadata {
136
136
  primaryKeyGeneration?: PrimaryKeyGeneration;
137
137
  timestampColumns?: TimestampColumnBehavior[];
138
138
  }
139
- type RelationMetadataType = 'hasOne' | 'hasMany' | 'belongsTo' | 'belongsToMany' | 'hasOneThrough' | 'hasManyThrough' | 'morphOne' | 'morphMany' | 'morphToMany';
139
+ type RelationMetadataType = 'hasOne' | 'hasMany' | 'belongsTo' | 'belongsToMany' | 'hasOneThrough' | 'hasManyThrough' | 'morphOne' | 'morphMany' | 'morphTo' | 'morphToMany';
140
140
  interface BaseRelationMetadata {
141
141
  type: RelationMetadataType;
142
142
  relatedModel: RelationshipModelStatic;
@@ -200,6 +200,13 @@ interface MorphManyRelationMetadata extends BaseRelationMetadata {
200
200
  morphTypeColumn: string;
201
201
  localKey: string;
202
202
  }
203
+ interface MorphToRelationMetadata {
204
+ type: 'morphTo';
205
+ morphName: string;
206
+ morphIdColumn: string;
207
+ morphTypeColumn: string;
208
+ ownerKey?: string;
209
+ }
203
210
  interface MorphToManyRelationMetadata extends BaseRelationMetadata {
204
211
  type: 'morphToMany';
205
212
  throughTable: string;
@@ -210,7 +217,7 @@ interface MorphToManyRelationMetadata extends BaseRelationMetadata {
210
217
  parentKey: string;
211
218
  relatedKey: string;
212
219
  }
213
- type RelationMetadata = HasOneRelationMetadata | HasManyRelationMetadata | BelongsToRelationMetadata | BelongsToManyRelationMetadata | HasOneThroughRelationMetadata | HasManyThroughRelationMetadata | MorphOneRelationMetadata | MorphManyRelationMetadata | MorphToManyRelationMetadata;
220
+ type RelationMetadata = HasOneRelationMetadata | HasManyRelationMetadata | BelongsToRelationMetadata | BelongsToManyRelationMetadata | HasOneThroughRelationMetadata | HasManyThroughRelationMetadata | MorphOneRelationMetadata | MorphManyRelationMetadata | MorphToRelationMetadata | MorphToManyRelationMetadata;
214
221
  //#endregion
215
222
  //#region src/types/db.d.ts
216
223
  interface DatabaseTablePersistedMetadataOptions {
@@ -1256,6 +1263,44 @@ declare class MorphToManyRelation<TParent, TRelated> extends Relation<TRelated>
1256
1263
  getResults(): Promise<ArkormCollection<TRelated>>;
1257
1264
  }
1258
1265
  //#endregion
1266
+ //#region src/relationship/MorphToRelation.d.ts
1267
+ type MorphToParent = {
1268
+ getAttribute: (key: string) => unknown;
1269
+ };
1270
+ /**
1271
+ * Defines the inverse side of a polymorphic one-to-one or one-to-many relationship.
1272
+ *
1273
+ * Related models are resolved from ArkORM's runtime model registry using the value
1274
+ * stored in the morph type column.
1275
+ *
1276
+ * @author Legacy (3m1n3nc3)
1277
+ * @since 2.6.0
1278
+ */
1279
+ declare class MorphToRelation<TParent, TRelated> extends Relation<TRelated> {
1280
+ private readonly parent;
1281
+ private readonly morphName;
1282
+ private readonly morphTypeColumn;
1283
+ private readonly morphIdColumn;
1284
+ private readonly ownerKey?;
1285
+ private readonly relatedModel?;
1286
+ constructor(parent: TParent & MorphToParent, morphName: string, morphTypeColumn: string, morphIdColumn: string, ownerKey?: string | undefined, relatedModel?: RelatedModelClass<TRelated> | undefined);
1287
+ protected get related(): RelatedModelClass<TRelated>;
1288
+ /**
1289
+ * Build the relationship query.
1290
+ *
1291
+ * @returns
1292
+ */
1293
+ getQuery(): Promise<QueryBuilder<TRelated>>;
1294
+ getMetadata(): MorphToRelationMetadata;
1295
+ /**
1296
+ * Fetch the polymorphic parent model.
1297
+ *
1298
+ * @returns
1299
+ */
1300
+ getResults(): Promise<TRelated | null>;
1301
+ private resolveRelatedModel;
1302
+ }
1303
+ //#endregion
1259
1304
  //#region src/relationship/SetBasedEagerLoader.d.ts
1260
1305
  type EagerLoadableModel = {
1261
1306
  getAttribute: (key: string) => unknown;
@@ -2165,6 +2210,17 @@ declare abstract class Model<TSchema extends ModelQuerySchemaLike | Record<strin
2165
2210
  * @returns
2166
2211
  */
2167
2212
  protected morphMany<TRelatedClass extends RelatedModelClass>(related: TRelatedClass, morphName: string, idColumn?: string, typeColumn?: string, localKey?: string): MorphManyRelation<this, InstanceType<TRelatedClass>>;
2213
+ /**
2214
+ * Define the inverse side of a polymorphic relationship.
2215
+ *
2216
+ * @param morphName
2217
+ * @param typeColumnOrRelated
2218
+ * @param idColumn
2219
+ * @param ownerKey
2220
+ * @returns
2221
+ */
2222
+ protected morphTo<TRelatedClass extends RelatedModelClass>(morphName: string, related: TRelatedClass, idColumn?: string, ownerKey?: string): MorphToRelation<this, InstanceType<TRelatedClass>>;
2223
+ protected morphTo<TRelated extends Model = Model>(morphName: string, typeColumn?: string, idColumn?: string, ownerKey?: string): MorphToRelation<this, TRelated>;
2168
2224
  /**
2169
2225
  * Define a polymorphic many to many relationship.
2170
2226
  *
@@ -2196,6 +2252,13 @@ declare abstract class Model<TSchema extends ModelQuerySchemaLike | Record<strin
2196
2252
  * @returns
2197
2253
  */
2198
2254
  private getDirtyAttributes;
2255
+ /**
2256
+ * Normalize built-in persistence casts without re-running arbitrary custom setters.
2257
+ *
2258
+ * @param attributes
2259
+ * @returns
2260
+ */
2261
+ private normalizePersistenceAttributes;
2199
2262
  /**
2200
2263
  * Normalize a key or key list for dirty/change lookups.
2201
2264
  *
@@ -6040,6 +6103,7 @@ declare class PrimaryKeyGenerationPlanner {
6040
6103
  }
6041
6104
  //#endregion
6042
6105
  //#region src/helpers/runtime-config.d.ts
6106
+ declare const awaitConfiguredModelsRegistration: () => Promise<void>;
6043
6107
  /**
6044
6108
  * Define the ArkORM runtime configuration. This function can be used to provide.
6045
6109
  *
@@ -6213,4 +6277,4 @@ declare class URLDriver {
6213
6277
  url(page: number): string;
6214
6278
  }
6215
6279
  //#endregion
6216
- export { createMigrationTimestamp as $, InlineFactory as $a, PrismaLikeWhereInput as $i, getRegisteredMigrations as $n, RelationMetadataType as $o, QuerySelectColumn as $r, getPersistedEnumTsType as $t, resetArkormRuntimeForTests as A, AttributeSchemaDelegate as Aa, DelegateUniqueWhere as Ai, ModelsSyncCommand as An, FactoryAttributes as Ao, AdapterModelStructure as Ar, findAppliedMigration as At, applyMigrationRollbackToPrismaSchema as B, ModelDeclaredAttributeKey as Ba, PaginationCurrentPageResolver as Bi, CliApp as Bn, BelongsToManyRelationMetadata as Bo, DatabaseValue as Br, supportsDatabaseMigrationState as Bt, getRuntimePaginationURLDriverFactory as C, TransactionOptions as Ca, DelegateCreateData as Ci, MIGRATION_BRAND as Cn, RelationResult as Co, createKyselyAdapter as Cr, toMigrationFileSlug as Ct, isQuerySchemaLike as D, AttributeCreateInput as Da, DelegateRow as Di, TableBuilder as Dn, Paginator as Do, AdapterInspectionRequest as Dr, computeMigrationChecksum as Dt, isDelegateLike as E, QueryBuilder as Ea, DelegateOrderBy as Ei, EnumBuilder as En, LengthAwarePaginator as Eo, AdapterDatabaseCreationResult as Er, buildMigrationRunId as Et, PRISMA_MODEL_REGEX as F, GlobalScope as Fa, EagerLoadMap as Fi, MakeSeederCommand as Fn, FactoryRelationshipResolver as Fo, AggregateSpec as Fr, markMigrationRun as Ft, buildFieldLine as G, ModelEventName as Ga, PrismaClientLike as Gi, Arkormx as Gn, HasOneRelationMetadata as Go, QueryComparisonCondition as Gr, PersistedPrimaryKeyGeneration as Gt, applyMigrationToPrismaSchema as H, ModelEventHandler as Ha, PaginationOptions as Hi, Attribute as Hn, ColumnMap as Ho, DeleteSpec as Hr, writeAppliedMigrationsStateToStore as Ht, applyAlterTableOperation as I, ModelAttributeValue as Ia, GetUserConfig as Ii, MakeModelCommand as In, FactoryState as Io, DatabaseAdapter as Ir, readAppliedMigrationsState as It, buildMigrationSource as J, ModelRelationshipResult as Ja, PrismaLikeInclude as Ji, RuntimeConstructor as Jn, MorphManyRelationMetadata as Jo, QueryGroupCondition as Jr, applyOperationsToPersistedColumnMappingsState as Jt, buildIndexLine as K, ModelLifecycleState as Ka, PrismaDelegateLike as Ki, RegisteredFactory as Kn, HasOneThroughRelationMetadata as Ko, QueryComparisonOperator as Kr, PersistedTableMetadata as Kt, applyCreateTableOperation as L, ModelAttributes as La, ModelQuerySchemaLike as Li, MakeMigrationCommand as Ln, MaybePromise as Lo, DatabasePrimitive as Lr, readAppliedMigrationsStateFromStore as Lt, PrimaryKeyGenerationPlanner as M, AttributeUpdateInput as Ma, DelegateUpdateData as Mi, MigrateRollbackCommand as Mn, FactoryDefinition as Mo, AdapterTransactionContext as Mr, getLatestAppliedMigrations as Mt, PRISMA_ENUM_MEMBER_REGEX as N, AttributeWhereInput as Na, DelegateWhere as Ni, MigrateFreshCommand as Nn, FactoryDefinitionAttributes as No, AggregateOperation as Nr, isMigrationApplied as Nt, isTransactionCapableClient as O, AttributeOrderBy as Oa, DelegateRows as Oi, ForeignKeyBuilder as On, ArkormCollection as Oo, AdapterModelFieldStructure as Or, createEmptyAppliedMigrationsState as Ot, PRISMA_ENUM_REGEX as P, DelegateForModelSchema as Pa, EagerLoadConstraint as Pi, MigrateCommand as Pn, FactoryModelConstructor as Po, AggregateSelection as Pr, markMigrationApplied as Pt, buildUniqueConstraintLine as Q, Model as Qa, PrismaLikeSortOrder as Qi, getRegisteredFactories as Qn, RelationMetadata as Qo, QueryRawCondition as Qr, getPersistedEnumMap as Qt, applyDropTableOperation as R, ModelAttributesOf as Ra, ModelTableCase as Ri, MakeFactoryCommand as Rn, DatabaseTableOptions as Ro, DatabaseRow as Rr, removeAppliedMigration as Rt, getRuntimePaginationCurrentPageResolver as S, TransactionContext as Sa, ClientResolver as Si, DB as Sn, RelationMetadataProvider as So, KyselyDatabaseAdapter as Sr, supportsDatabaseReset as St, getUserConfig as T, RelationshipModelStatic as Ta, DelegateInclude as Ti, SchemaBuilder as Tn, RelationTableLookupSpec as To, AdapterCapability as Tr, buildMigrationIdentity as Tt, applyOperationsToPrismaSchema as U, ModelEventHandlerConstructor as Ua, PaginationURLDriver as Ui, AttributeOptions as Un, HasManyRelationMetadata as Uo, InsertManySpec as Ur, PersistedColumnMappingsState as Ut, applyMigrationToDatabase as V, ModelEventDispatcher as Va, PaginationMeta as Vi, resolveCast as Vn, BelongsToRelationMetadata as Vo, DeleteManySpec as Vr, writeAppliedMigrationsState as Vt, buildEnumBlock as W, ModelEventListener as Wa, PaginationURLDriverFactory as Wi, Arkorm as Wn, HasManyThroughRelationMetadata as Wo, InsertSpec as Wr, PersistedMetadataFeatures as Wt, buildPrimaryKeyLine as X, QuerySchemaForModel as Xa, PrismaLikeScalarFilter as Xi, RuntimePathKey as Xn, MorphToManyRelationMetadata as Xo, QueryNotCondition as Xr, deletePersistedColumnMappingsState as Xt, buildModelBlock as Y, ModelUpdateData as Ya, PrismaLikeOrderBy as Yi, RuntimePathInput as Yn, MorphOneRelationMetadata as Yo, QueryLogicalOperator as Yr, createEmptyPersistedColumnMappingsState as Yt, buildRelationLine as Z, RelatedModelClass as Za, PrismaLikeSelect as Zi, RuntimePathMap as Zn, PivotModelStatic as Zo, QueryOrderBy as Zr, getPersistedColumnMap as Zt, getActiveTransactionClient as _, Serializable as _a, ArkormDebugHandler as _i, QueryConstraintException as _n, RelationAggregateType as _o, SeederInput as _r, SchemaTableAlterOperation as _s, runMigrationWithPrisma as _t, resolveRuntimeCompatibilityQuerySchema as a, QuerySchemaFindManyArgs as aa, RelationLoadSpec as ai, resetPersistedColumnMappingsCache as an, MorphManyRelation as ao, loadModelsFrom as ar, MigrationClass as as, escapeRegex as at, getRuntimeClient as b, TransactionCallback as ba, CastMap as bi, ArkormErrorContext as bn, RelationDefaultResolver as bo, createPrismaCompatibilityAdapter as br, SchemaUniqueConstraint as bs, supportsDatabaseCreation as bt, createPrismaAdapter as c, QuerySchemaRow as ca, SortDirection as ci, syncPersistedColumnMappingsFromState as cn, HasManyThroughRelation as co, registerMigrations as cr, PrismaMigrationWorkflowOptions as cs, formatDefaultValue as ct, bindAdapterToModels as d, QuerySchemaUniqueWhere as da, UpsertSpec as di, UnsupportedAdapterFeatureException as dn, SingleResultRelation as do, registerSeeders as dr, SchemaColumnType as ds, generateMigrationFile as dt, PrismaTransactionCallback as ea, QueryTarget as ei, getPersistedPrimaryKeyGeneration as en, ModelFactory as eo, getRegisteredModels as er, AppliedMigrationEntry as es, deriveCollectionFieldName as et, configureArkormRuntime as f, QuerySchemaUpdateArgs as fa, AdapterBindableModel as fi, UniqueConstraintResolutionException as fn, BelongsToManyRelation as fo, resetRuntimeRegistryForTests as fr, SchemaForeignKey as fs, getMigrationPlan as ft, getActiveTransactionAdapter as g, RuntimeClientLike as ga, ArkormDebugEvent as gi, QueryExecutionExceptionContext as gn, RelationAggregateInput as go, SeederConstructor as gr, SchemaPrimaryKey as gs, resolvePrismaType as gt, ensureArkormConfigLoading as h, RawSelectInput as ha, ArkormConfig as hi, QueryExecutionException as hn, RelationAggregateConstraint as ho, SeederCallArgument as hr, SchemaOperation as hs, resolveMigrationClassName as ht, getRuntimeCompatibilityAdapter as i, QuerySchemaCreateData as ia, RelationLoadPlan as ii, rebuildPersistedColumnMappingsState as in, MorphOneRelation as io, loadMigrationsFrom as ir, GeneratedMigrationFile as is, deriveSingularFieldName as it, runArkormTransaction as j, AttributeSelect as ja, DelegateUpdateArgs as ji, MigrationHistoryCommand as jn, FactoryCallback as jo, AdapterQueryOperation as jr, getLastMigrationRun as jt, loadArkormConfig as k, AttributeQuerySchema as ka, DelegateSelect as ki, SeedCommand as kn, FactoryAttributeResolver as ko, AdapterModelIntrospectionOptions as kr, deleteAppliedMigrationsStateFromStore as kt, createPrismaDelegateMap as l, QuerySchemaRows as la, UpdateManySpec as li, validatePersistedMetadataFeaturesForMigrations as ln, HasManyRelation as lo, registerModels as lr, PrismaSchemaSyncOptions as ls, formatEnumDefaultValue as lt, emitRuntimeDebugEvent as m, QuerySchemaWhere as ma, ArkormBootContext as mi, RelationResolutionException as mn, RelationTableLoader as mo, Seeder as mr, SchemaIndex as ms, resolveEnumName as mt, PivotModel as n, PrismaTransactionContext as na, RelationAggregateSpec as ni, getPersistedTimestampColumns as nn, SetBasedEagerLoader as no, getRegisteredSeeders as nr, AppliedMigrationsState as ns, deriveRelationAlias as nt, resolveRuntimeCompatibilityQuerySchemaOrThrow as o, QuerySchemaInclude as oa, SelectSpec as oi, resolveColumnMappingsFilePath as on, HasOneThroughRelation as oo, loadSeedersFrom as or, MigrationInstanceLike as os, findEnumBlock as ot, defineConfig as p, QuerySchemaUpdateData as pa, AdapterQueryInspection as pi, ScopeNotDefinedException as pn, Relation as po, SEEDER_BRAND as pr, SchemaForeignKeyAction as ps, pad as pt, buildInverseRelationLine as q, ModelRelationshipKey as qa, PrismaFindManyArgsLike as qi, RegisteredModel as qn, ModelMetadata as qo, QueryCondition as qr, PersistedTimestampColumn as qt, RuntimeModuleLoader as r, PrismaTransactionOptions as ra, RelationFilterSpec as ri, readPersistedColumnMappingsState as rn, MorphToManyRelation as ro, loadFactoriesFrom as rr, GenerateMigrationOptions as rs, deriveRelationFieldName as rt, PrismaDelegateMap as s, QuerySchemaOrderBy as sa, SoftDeleteQueryMode as si, resolvePersistedMetadataFeatures as sn, HasOneRelation as so, registerFactories as sr, PrimaryKeyGeneration as ss, findModelBlock as st, URLDriver as t, PrismaTransactionCapableClient as ta, RawQuerySpec as ti, getPersistedTableMetadata as tn, defineFactory as to, getRegisteredPaths as tr, AppliedMigrationRun as ts, deriveInverseRelationAlias as tt, inferDelegateName as u, QuerySchemaSelect as ua, UpdateSpec as ui, writePersistedColumnMappingsState as un, BelongsToRelation as uo, registerPaths as ur, SchemaColumn as us, formatRelationAction as ut, getDefaultStubsPath as v, SimplePaginationMeta as va, CastDefinition as vi, ModelNotFoundException as vn, RelationColumnLookupSpec as vo, PrismaDatabaseAdapter as vr, SchemaTableCreateOperation as vs, runPrismaCommand as vt, getRuntimePrismaClient as w, ModelStatic as wa, DelegateFindManyArgs as wi, Migration as wn, RelationResultCache as wo, AdapterCapabilities as wr, toModelName as wt, getRuntimeDebugHandler as x, TransactionCapableClient as xa, CastType as xi, ArkormException as xn, RelationDefaultValue as xo, createPrismaDatabaseAdapter as xr, TimestampColumnBehavior as xs, supportsDatabaseMigrationExecution as xt, getRuntimeAdapter as y, SoftDeleteConfig as ya, CastHandler as yi, MissingDelegateException as yn, RelationConstraint as yo, PrismaDelegateNameMapping as yr, SchemaTableDropOperation as ys, stripPrismaSchemaModelsAndEnums as yt, applyMigrationRollbackToDatabase as z, ModelCreateData as za, NamingCase as zi, InitCommand as zn, DatabaseTablePersistedMetadataOptions as zo, DatabaseRows as zr, resolveMigrationStateFilePath as zt };
6280
+ export { buildUniqueConstraintLine as $, Model as $a, PrismaLikeSortOrder as $i, getRegisteredFactories as $n, MorphToRelationMetadata as $o, QueryRawCondition as $r, getPersistedEnumMap as $t, loadArkormConfig as A, AttributeQuerySchema as Aa, DelegateSelect as Ai, SeedCommand as An, ArkormCollection as Ao, AdapterModelIntrospectionOptions as Ar, deleteAppliedMigrationsStateFromStore as At, applyMigrationRollbackToDatabase as B, ModelCreateData as Ba, NamingCase as Bi, InitCommand as Bn, DatabaseTableOptions as Bo, DatabaseRows as Br, resolveMigrationStateFilePath as Bt, getRuntimePaginationCurrentPageResolver as C, TransactionContext as Ca, ClientResolver as Ci, DB as Cn, RelationDefaultValue as Co, KyselyDatabaseAdapter as Cr, SchemaUniqueConstraint as Cs, supportsDatabaseReset as Ct, isDelegateLike as D, QueryBuilder as Da, DelegateOrderBy as Di, EnumBuilder as Dn, RelationTableLookupSpec as Do, AdapterDatabaseCreationResult as Dr, buildMigrationRunId as Dt, getUserConfig as E, RelationshipModelStatic as Ea, DelegateInclude as Ei, SchemaBuilder as En, RelationResultCache as Eo, AdapterCapability as Er, buildMigrationIdentity as Et, PRISMA_ENUM_REGEX as F, DelegateForModelSchema as Fa, EagerLoadConstraint as Fi, MigrateCommand as Fn, FactoryDefinitionAttributes as Fo, AggregateSelection as Fr, markMigrationApplied as Ft, buildEnumBlock as G, ModelEventListener as Ga, PaginationURLDriverFactory as Gi, Arkorm as Gn, HasManyRelationMetadata as Go, InsertSpec as Gr, PersistedMetadataFeatures as Gt, applyMigrationToDatabase as H, ModelEventDispatcher as Ha, PaginationMeta as Hi, resolveCast as Hn, BelongsToManyRelationMetadata as Ho, DeleteManySpec as Hr, writeAppliedMigrationsState as Ht, PRISMA_MODEL_REGEX as I, GlobalScope as Ia, EagerLoadMap as Ii, MakeSeederCommand as In, FactoryModelConstructor as Io, AggregateSpec as Ir, markMigrationRun as It, buildInverseRelationLine as J, ModelRelationshipKey as Ja, PrismaFindManyArgsLike as Ji, RegisteredModel as Jn, HasOneThroughRelationMetadata as Jo, QueryCondition as Jr, PersistedTimestampColumn as Jt, buildFieldLine as K, ModelEventName as Ka, PrismaClientLike as Ki, Arkormx as Kn, HasManyThroughRelationMetadata as Ko, QueryComparisonCondition as Kr, PersistedPrimaryKeyGeneration as Kt, applyAlterTableOperation as L, ModelAttributeValue as La, GetUserConfig as Li, MakeModelCommand as Ln, FactoryRelationshipResolver as Lo, DatabaseAdapter as Lr, readAppliedMigrationsState as Lt, runArkormTransaction as M, AttributeSelect as Ma, DelegateUpdateArgs as Mi, MigrationHistoryCommand as Mn, FactoryAttributes as Mo, AdapterQueryOperation as Mr, getLastMigrationRun as Mt, PrimaryKeyGenerationPlanner as N, AttributeUpdateInput as Na, DelegateUpdateData as Ni, MigrateRollbackCommand as Nn, FactoryCallback as No, AdapterTransactionContext as Nr, getLatestAppliedMigrations as Nt, isQuerySchemaLike as O, AttributeCreateInput as Oa, DelegateRow as Oi, TableBuilder as On, LengthAwarePaginator as Oo, AdapterInspectionRequest as Or, computeMigrationChecksum as Ot, PRISMA_ENUM_MEMBER_REGEX as P, AttributeWhereInput as Pa, DelegateWhere as Pi, MigrateFreshCommand as Pn, FactoryDefinition as Po, AggregateOperation as Pr, isMigrationApplied as Pt, buildRelationLine as Q, RelatedModelClass as Qa, PrismaLikeSelect as Qi, RuntimePathMap as Qn, MorphToManyRelationMetadata as Qo, QueryOrderBy as Qr, getPersistedColumnMap as Qt, applyCreateTableOperation as R, ModelAttributes as Ra, ModelQuerySchemaLike as Ri, MakeMigrationCommand as Rn, FactoryState as Ro, DatabasePrimitive as Rr, readAppliedMigrationsStateFromStore as Rt, getRuntimeDebugHandler as S, TransactionCapableClient as Sa, CastType as Si, ArkormException as Sn, RelationDefaultResolver as So, createPrismaDatabaseAdapter as Sr, SchemaTableDropOperation as Ss, supportsDatabaseMigrationExecution as St, getRuntimePrismaClient as T, ModelStatic as Ta, DelegateFindManyArgs as Ti, Migration as Tn, RelationResult as To, AdapterCapabilities as Tr, toModelName as Tt, applyMigrationToPrismaSchema as U, ModelEventHandler as Ua, PaginationOptions as Ui, Attribute as Un, BelongsToRelationMetadata as Uo, DeleteSpec as Ur, writeAppliedMigrationsStateToStore as Ut, applyMigrationRollbackToPrismaSchema as V, ModelDeclaredAttributeKey as Va, PaginationCurrentPageResolver as Vi, CliApp as Vn, DatabaseTablePersistedMetadataOptions as Vo, DatabaseValue as Vr, supportsDatabaseMigrationState as Vt, applyOperationsToPrismaSchema as W, ModelEventHandlerConstructor as Wa, PaginationURLDriver as Wi, AttributeOptions as Wn, ColumnMap as Wo, InsertManySpec as Wr, PersistedColumnMappingsState as Wt, buildModelBlock as X, ModelUpdateData as Xa, PrismaLikeOrderBy as Xi, RuntimePathInput as Xn, MorphManyRelationMetadata as Xo, QueryLogicalOperator as Xr, createEmptyPersistedColumnMappingsState as Xt, buildMigrationSource as Y, ModelRelationshipResult as Ya, PrismaLikeInclude as Yi, RuntimeConstructor as Yn, ModelMetadata as Yo, QueryGroupCondition as Yr, applyOperationsToPersistedColumnMappingsState as Yt, buildPrimaryKeyLine as Z, QuerySchemaForModel as Za, PrismaLikeScalarFilter as Zi, RuntimePathKey as Zn, MorphOneRelationMetadata as Zo, QueryNotCondition as Zr, deletePersistedColumnMappingsState as Zt, getActiveTransactionAdapter as _, RuntimeClientLike as _a, ArkormDebugEvent as _i, QueryExecutionExceptionContext as _n, RelationAggregateConstraint as _o, SeederConstructor as _r, SchemaIndex as _s, resolvePrismaType as _t, resolveRuntimeCompatibilityQuerySchema as a, QuerySchemaCreateData as aa, RelationLoadPlan as ai, rebuildPersistedColumnMappingsState as an, MorphToManyRelation as ao, loadMigrationsFrom as ar, AppliedMigrationsState as as, deriveSingularFieldName as at, getRuntimeAdapter as b, SoftDeleteConfig as ba, CastHandler as bi, MissingDelegateException as bn, RelationColumnLookupSpec as bo, PrismaDelegateNameMapping as br, SchemaTableAlterOperation as bs, stripPrismaSchemaModelsAndEnums as bt, createPrismaAdapter as c, QuerySchemaOrderBy as ca, SoftDeleteQueryMode as ci, resolvePersistedMetadataFeatures as cn, HasOneThroughRelation as co, registerFactories as cr, MigrationClass as cs, findModelBlock as ct, awaitConfiguredModelsRegistration as d, QuerySchemaSelect as da, UpdateSpec as di, writePersistedColumnMappingsState as dn, HasManyRelation as do, registerPaths as dr, PrismaMigrationWorkflowOptions as ds, formatRelationAction as dt, PrismaLikeWhereInput as ea, QuerySelectColumn as ei, getPersistedEnumTsType as en, InlineFactory as eo, getRegisteredMigrations as er, PivotModelStatic as es, createMigrationTimestamp as et, bindAdapterToModels as f, QuerySchemaUniqueWhere as fa, UpsertSpec as fi, UnsupportedAdapterFeatureException as fn, BelongsToRelation as fo, registerSeeders as fr, PrismaSchemaSyncOptions as fs, generateMigrationFile as ft, ensureArkormConfigLoading as g, RawSelectInput as ga, ArkormConfig as gi, QueryExecutionException as gn, RelationTableLoader as go, SeederCallArgument as gr, SchemaForeignKeyAction as gs, resolveMigrationClassName as gt, emitRuntimeDebugEvent as h, QuerySchemaWhere as ha, ArkormBootContext as hi, RelationResolutionException as hn, Relation as ho, Seeder as hr, SchemaForeignKey as hs, resolveEnumName as ht, getRuntimeCompatibilityAdapter as i, PrismaTransactionOptions as ia, RelationFilterSpec as ii, readPersistedColumnMappingsState as in, MorphToRelation as io, loadFactoriesFrom as ir, AppliedMigrationRun as is, deriveRelationFieldName as it, resetArkormRuntimeForTests as j, AttributeSchemaDelegate as ja, DelegateUniqueWhere as ji, ModelsSyncCommand as jn, FactoryAttributeResolver as jo, AdapterModelStructure as jr, findAppliedMigration as jt, isTransactionCapableClient as k, AttributeOrderBy as ka, DelegateRows as ki, ForeignKeyBuilder as kn, Paginator as ko, AdapterModelFieldStructure as kr, createEmptyAppliedMigrationsState as kt, createPrismaDelegateMap as l, QuerySchemaRow as la, SortDirection as li, syncPersistedColumnMappingsFromState as ln, HasOneRelation as lo, registerMigrations as lr, MigrationInstanceLike as ls, formatDefaultValue as lt, defineConfig as m, QuerySchemaUpdateData as ma, AdapterQueryInspection as mi, ScopeNotDefinedException as mn, BelongsToManyRelation as mo, SEEDER_BRAND as mr, SchemaColumnType as ms, pad as mt, PivotModel as n, PrismaTransactionCapableClient as na, RawQuerySpec as ni, getPersistedTableMetadata as nn, defineFactory as no, getRegisteredPaths as nr, RelationMetadataType as ns, deriveInverseRelationAlias as nt, resolveRuntimeCompatibilityQuerySchemaOrThrow as o, QuerySchemaFindManyArgs as oa, RelationLoadSpec as oi, resetPersistedColumnMappingsCache as on, MorphOneRelation as oo, loadModelsFrom as or, GenerateMigrationOptions as os, escapeRegex as ot, configureArkormRuntime as p, QuerySchemaUpdateArgs as pa, AdapterBindableModel as pi, UniqueConstraintResolutionException as pn, SingleResultRelation as po, resetRuntimeRegistryForTests as pr, SchemaColumn as ps, getMigrationPlan as pt, buildIndexLine as q, ModelLifecycleState as qa, PrismaDelegateLike as qi, RegisteredFactory as qn, HasOneRelationMetadata as qo, QueryComparisonOperator as qr, PersistedTableMetadata as qt, RuntimeModuleLoader as r, PrismaTransactionContext as ra, RelationAggregateSpec as ri, getPersistedTimestampColumns as rn, SetBasedEagerLoader as ro, getRegisteredSeeders as rr, AppliedMigrationEntry as rs, deriveRelationAlias as rt, PrismaDelegateMap as s, QuerySchemaInclude as sa, SelectSpec as si, resolveColumnMappingsFilePath as sn, MorphManyRelation as so, loadSeedersFrom as sr, GeneratedMigrationFile as ss, findEnumBlock as st, URLDriver as t, PrismaTransactionCallback as ta, QueryTarget as ti, getPersistedPrimaryKeyGeneration as tn, ModelFactory as to, getRegisteredModels as tr, RelationMetadata as ts, deriveCollectionFieldName as tt, inferDelegateName as u, QuerySchemaRows as ua, UpdateManySpec as ui, validatePersistedMetadataFeaturesForMigrations as un, HasManyThroughRelation as uo, registerModels as ur, PrimaryKeyGeneration as us, formatEnumDefaultValue as ut, getActiveTransactionClient as v, Serializable as va, ArkormDebugHandler as vi, QueryConstraintException as vn, RelationAggregateInput as vo, SeederInput as vr, SchemaOperation as vs, runMigrationWithPrisma as vt, getRuntimePaginationURLDriverFactory as w, TransactionOptions as wa, DelegateCreateData as wi, MIGRATION_BRAND as wn, RelationMetadataProvider as wo, createKyselyAdapter as wr, TimestampColumnBehavior as ws, toMigrationFileSlug as wt, getRuntimeClient as x, TransactionCallback as xa, CastMap as xi, ArkormErrorContext as xn, RelationConstraint as xo, createPrismaCompatibilityAdapter as xr, SchemaTableCreateOperation as xs, supportsDatabaseCreation as xt, getDefaultStubsPath as y, SimplePaginationMeta as ya, CastDefinition as yi, ModelNotFoundException as yn, RelationAggregateType as yo, PrismaDatabaseAdapter as yr, SchemaPrimaryKey as ys, runPrismaCommand as yt, applyDropTableOperation as z, ModelAttributesOf as za, ModelTableCase as zi, MakeFactoryCommand as zn, MaybePromise as zo, DatabaseRow as zr, removeAppliedMigration as zt };
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_relationship = require('./relationship-BOPI6ila.cjs');
2
+ const require_relationship = require('./relationship-uoGA5q9a.cjs');
3
3
  let pg = require("pg");
4
4
  let node_path = require("node:path");
5
5
  let module$1 = require("module");
@@ -5458,7 +5458,8 @@ var QueryBuilder = class QueryBuilder {
5458
5458
  const toPlans = (owner, nodes) => {
5459
5459
  const plans = [];
5460
5460
  for (const [relation, node] of nodes.entries()) {
5461
- const relatedModel = owner.getRelationMetadata(relation)?.relatedModel;
5461
+ const metadata = owner.getRelationMetadata(relation);
5462
+ const relatedModel = metadata && "relatedModel" in metadata ? metadata.relatedModel : void 0;
5462
5463
  if (!relatedModel) return null;
5463
5464
  const relatedQuery = relatedModel.query();
5464
5465
  const constrained = node.constraint ? node.constraint(relatedQuery) : relatedQuery;
@@ -6060,7 +6061,8 @@ var QueryBuilder = class QueryBuilder {
6060
6061
  tryBuildRelationConstraintWhere(relation, callback) {
6061
6062
  const metadata = this.model.getRelationMetadata(relation);
6062
6063
  if (!this.isSqlRelationFeatureMetadata(metadata)) return null;
6063
- const relatedQuery = metadata?.relatedModel.query();
6064
+ if (!metadata || !("relatedModel" in metadata)) return null;
6065
+ const relatedQuery = metadata.relatedModel.query();
6064
6066
  if (!relatedQuery) return null;
6065
6067
  if (callback) {
6066
6068
  const constrained = callback(relatedQuery);
@@ -6743,7 +6745,7 @@ var Model = class Model {
6743
6745
  if (identifier == null) {
6744
6746
  await Model.dispatchEvent(constructor, "saving", this);
6745
6747
  await Model.dispatchEvent(constructor, "creating", this);
6746
- const payload = this.getRawAttributes();
6748
+ const payload = this.normalizePersistenceAttributes(this.getRawAttributes());
6747
6749
  const model = await constructor.query().create(payload);
6748
6750
  this.fill(model.getRawAttributes());
6749
6751
  this.syncChanges(previousOriginal);
@@ -6754,7 +6756,8 @@ var Model = class Model {
6754
6756
  }
6755
6757
  await Model.dispatchEvent(constructor, "saving", this);
6756
6758
  await Model.dispatchEvent(constructor, "updating", this);
6757
- const payload = this.getRawAttributes();
6759
+ const payload = this.normalizePersistenceAttributes(this.getDirtyAttributes());
6760
+ delete payload[primaryKey];
6758
6761
  const model = await constructor.query().where({ [primaryKey]: identifier }).update(payload);
6759
6762
  this.fill(model.getRawAttributes());
6760
6763
  this.syncChanges(previousOriginal);
@@ -7159,6 +7162,12 @@ var Model = class Model {
7159
7162
  const columns = this.resolveMorphColumns(morphName, idColumn, typeColumn);
7160
7163
  return new require_relationship.MorphManyRelation(this, related, morphName, columns.idColumn, columns.typeColumn, localKey ?? constructor.getPrimaryKey());
7161
7164
  }
7165
+ morphTo(morphName, typeColumnOrRelated, idColumn, ownerKey) {
7166
+ const related = typeof typeColumnOrRelated === "function" ? typeColumnOrRelated : void 0;
7167
+ const typeColumn = typeof typeColumnOrRelated === "string" ? typeColumnOrRelated : void 0;
7168
+ const columns = this.resolveMorphColumns(morphName, idColumn, typeColumn);
7169
+ return new require_relationship.MorphToRelation(this, morphName, columns.typeColumn, columns.idColumn, ownerKey, related);
7170
+ }
7162
7171
  /**
7163
7172
  * Define a polymorphic many to many relationship.
7164
7173
  *
@@ -7226,6 +7235,18 @@ var Model = class Model {
7226
7235
  }, {});
7227
7236
  }
7228
7237
  /**
7238
+ * Normalize built-in persistence casts without re-running arbitrary custom setters.
7239
+ *
7240
+ * @param attributes
7241
+ * @returns
7242
+ */
7243
+ normalizePersistenceAttributes(attributes) {
7244
+ return Object.entries(attributes).reduce((normalized, [key, value]) => {
7245
+ normalized[key] = this.casts[key] === "json" ? resolveCast("json").set(value) : value;
7246
+ return normalized;
7247
+ }, {});
7248
+ }
7249
+ /**
7229
7250
  * Normalize a key or key list for dirty/change lookups.
7230
7251
  *
7231
7252
  * @param keys
@@ -8111,6 +8132,7 @@ exports.applyMigrationToDatabase = require_relationship.applyMigrationToDatabase
8111
8132
  exports.applyMigrationToPrismaSchema = require_relationship.applyMigrationToPrismaSchema;
8112
8133
  exports.applyOperationsToPersistedColumnMappingsState = require_relationship.applyOperationsToPersistedColumnMappingsState;
8113
8134
  exports.applyOperationsToPrismaSchema = require_relationship.applyOperationsToPrismaSchema;
8135
+ exports.awaitConfiguredModelsRegistration = require_relationship.awaitConfiguredModelsRegistration;
8114
8136
  exports.bindAdapterToModels = require_relationship.bindAdapterToModels;
8115
8137
  exports.buildEnumBlock = require_relationship.buildEnumBlock;
8116
8138
  exports.buildFieldLine = require_relationship.buildFieldLine;