arkormx 2.1.1 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.mjs CHANGED
@@ -124,6 +124,7 @@ const buildMigrationIdentity = (filePath, className) => {
124
124
  return `${fileName.slice(0, fileName.length - extname(fileName).length)}:${className}`;
125
125
  };
126
126
  const computeMigrationChecksum = (filePath) => {
127
+ if (!existsSync$1(filePath)) return createHash("sha256").update(filePath).digest("hex");
127
128
  const source = readFileSync$1(filePath, "utf-8");
128
129
  return createHash("sha256").update(source).digest("hex");
129
130
  };
@@ -1945,6 +1946,49 @@ const getPersistedEnumTsType = (values) => {
1945
1946
  return buildEnumUnionType(values);
1946
1947
  };
1947
1948
 
1949
+ //#endregion
1950
+ //#region src/helpers/runtime-registry.ts
1951
+ const createEmptyRegistry = () => ({
1952
+ paths: {
1953
+ models: [],
1954
+ seeders: [],
1955
+ migrations: [],
1956
+ factories: []
1957
+ },
1958
+ migrations: [],
1959
+ seeders: [],
1960
+ models: [],
1961
+ factories: []
1962
+ });
1963
+ const registry = createEmptyRegistry();
1964
+ /**
1965
+ * Get registered runtime discovery paths or registered constructors for a specific type.
1966
+ *
1967
+ * @param key
1968
+ * @returns
1969
+ */
1970
+ const getRegisteredPaths = (key) => {
1971
+ if (key) return [...registry.paths[key]];
1972
+ return {
1973
+ models: [...registry.paths.models],
1974
+ seeders: [...registry.paths.seeders],
1975
+ migrations: [...registry.paths.migrations],
1976
+ factories: [...registry.paths.factories]
1977
+ };
1978
+ };
1979
+ /**
1980
+ * Get registered migration constructors instances.
1981
+ *
1982
+ * @returns
1983
+ */
1984
+ const getRegisteredMigrations = () => [...registry.migrations];
1985
+ /**
1986
+ * Get registered seeder constructors instances.
1987
+ *
1988
+ * @returns
1989
+ */
1990
+ const getRegisteredSeeders = () => [...registry.seeders];
1991
+
1948
1992
  //#endregion
1949
1993
  //#region src/helpers/runtime-config.ts
1950
1994
  const resolveDefaultStubsPath = () => {
@@ -3687,10 +3731,10 @@ var MigrateCommand = class extends Command {
3687
3731
  async handle() {
3688
3732
  this.app.command = this;
3689
3733
  const configuredMigrationsDir = this.app.getConfig("paths")?.migrations ?? join(process.cwd(), "database", "migrations");
3690
- const migrationsDir = this.app.resolveRuntimeDirectoryPath(configuredMigrationsDir);
3691
- if (!existsSync$1(migrationsDir)) return void this.error(`Error: Migrations directory not found: ${this.app.formatPathForLog(configuredMigrationsDir)}`);
3734
+ const migrationDirs = this.resolveMigrationDirectories(configuredMigrationsDir);
3735
+ if (migrationDirs.length === 0 && getRegisteredMigrations().length === 0) return void this.error(`Error: Migrations directory not found: ${this.app.formatPathForLog(configuredMigrationsDir)}`);
3692
3736
  const schemaPath = this.option("schema") ? resolve(String(this.option("schema"))) : join(process.cwd(), "prisma", "schema.prisma");
3693
- const classes = this.option("all") || !this.argument("name") ? await this.loadAllMigrations(migrationsDir) : (await this.loadNamedMigration(migrationsDir, this.argument("name"))).filter(([cls]) => cls !== void 0);
3737
+ const classes = this.option("all") || !this.argument("name") ? await this.loadAllMigrations(migrationDirs) : (await this.loadNamedMigration(migrationDirs, this.argument("name"))).filter(([cls]) => cls !== void 0);
3694
3738
  if (classes.length === 0) return void this.error("Error: No migration classes found to run.");
3695
3739
  const stateFilePath = resolveMigrationStateFilePath(process.cwd(), this.option("state-file") ? String(this.option("state-file")) : void 0);
3696
3740
  const adapter = this.app.getConfig("adapter");
@@ -3718,7 +3762,7 @@ var MigrateCommand = class extends Command {
3718
3762
  });
3719
3763
  if (pending.length === 0) {
3720
3764
  if (appliedMigrationState) try {
3721
- await syncPersistedColumnMappingsFromState(process.cwd(), appliedMigrationState, await this.loadAllMigrations(migrationsDir), persistedFeatures);
3765
+ await syncPersistedColumnMappingsFromState(process.cwd(), appliedMigrationState, await this.loadAllMigrations(migrationDirs), persistedFeatures);
3722
3766
  } catch (error) {
3723
3767
  this.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
3724
3768
  return;
@@ -3762,7 +3806,7 @@ var MigrateCommand = class extends Command {
3762
3806
  });
3763
3807
  if (!(await this.runWithDatabaseCreationRetry(adapter, () => writeAppliedMigrationsStateToStore(adapter, stateFilePath, appliedMigrationState))).ok) return;
3764
3808
  try {
3765
- await syncPersistedColumnMappingsFromState(process.cwd(), appliedMigrationState, await this.loadAllMigrations(migrationsDir), persistedFeatures);
3809
+ await syncPersistedColumnMappingsFromState(process.cwd(), appliedMigrationState, await this.loadAllMigrations(migrationDirs), persistedFeatures);
3766
3810
  } catch (error) {
3767
3811
  this.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
3768
3812
  return;
@@ -3784,9 +3828,12 @@ var MigrateCommand = class extends Command {
3784
3828
  *
3785
3829
  * @param migrationsDir The directory to load migration classes from.
3786
3830
  */
3787
- async loadAllMigrations(migrationsDir) {
3788
- const files = readdirSync$1(migrationsDir).filter((file) => /\.(ts|js|mjs|cjs)$/i.test(file)).sort((left, right) => left.localeCompare(right)).map((file) => this.app.resolveRuntimeScriptPath(join(migrationsDir, file)));
3789
- return (await Promise.all(files.map(async (file) => (await this.loadMigrationClassesFromFile(file)).map((cls) => [cls, file])))).flat();
3831
+ resolveMigrationDirectories(configuredMigrationsDir) {
3832
+ return [this.app.resolveRuntimeDirectoryPath(configuredMigrationsDir), ...getRegisteredPaths("migrations").map((directory) => this.app.resolveRuntimeDirectoryPath(directory))].filter((directory, index, all) => existsSync$1(directory) && all.indexOf(directory) === index);
3833
+ }
3834
+ async loadAllMigrations(migrationsDirs) {
3835
+ const files = migrationsDirs.flatMap((migrationsDir) => readdirSync$1(migrationsDir).filter((file) => /\.(ts|js|mjs|cjs)$/i.test(file)).sort((left, right) => left.localeCompare(right)).map((file) => this.app.resolveRuntimeScriptPath(join(migrationsDir, file))));
3836
+ return [...(await Promise.all(files.map(async (file) => (await this.loadMigrationClassesFromFile(file)).map((cls) => [cls, file])))).flat(), ...getRegisteredMigrations().map((cls) => [cls, `registered:${cls.name}`])];
3790
3837
  }
3791
3838
  /**
3792
3839
  * Load migration classes from a specific file or by class name.
@@ -3795,10 +3842,12 @@ var MigrateCommand = class extends Command {
3795
3842
  * @param name
3796
3843
  * @returns
3797
3844
  */
3798
- async loadNamedMigration(migrationsDir, name) {
3845
+ async loadNamedMigration(migrationsDirs, name) {
3799
3846
  if (!name) return [[void 0, ""]];
3800
3847
  const base = name.replace(/Migration$/, "");
3801
- const target = [
3848
+ const registered = getRegisteredMigrations().find((cls) => cls.name === name || cls.name === `${base}Migration`);
3849
+ if (registered) return [[registered, `registered:${registered.name}`]];
3850
+ const target = migrationsDirs.flatMap((migrationsDir) => [
3802
3851
  `${name}.ts`,
3803
3852
  `${name}.js`,
3804
3853
  `${name}.mjs`,
@@ -3807,7 +3856,7 @@ var MigrateCommand = class extends Command {
3807
3856
  `${base}Migration.js`,
3808
3857
  `${base}Migration.mjs`,
3809
3858
  `${base}Migration.cjs`
3810
- ].map((file) => join(migrationsDir, file)).find((file) => existsSync$1(file));
3859
+ ].map((file) => join(migrationsDir, file))).find((file) => existsSync$1(file));
3811
3860
  if (!target) return [[void 0, name]];
3812
3861
  const runtimeTarget = this.app.resolveRuntimeScriptPath(target);
3813
3862
  return (await this.loadMigrationClassesFromFile(runtimeTarget)).map((cls) => [cls, runtimeTarget]);
@@ -3891,14 +3940,14 @@ var MigrateFreshCommand = class extends Command {
3891
3940
  async handle() {
3892
3941
  this.app.command = this;
3893
3942
  const configuredMigrationsDir = this.app.getConfig("paths")?.migrations ?? join(process.cwd(), "database", "migrations");
3894
- const migrationsDir = this.app.resolveRuntimeDirectoryPath(configuredMigrationsDir);
3895
- if (!existsSync$1(migrationsDir)) return void this.error(`Error: Migrations directory not found: ${this.app.formatPathForLog(configuredMigrationsDir)}`);
3943
+ const migrationDirs = this.resolveMigrationDirectories(configuredMigrationsDir);
3944
+ if (migrationDirs.length === 0 && getRegisteredMigrations().length === 0) return void this.error(`Error: Migrations directory not found: ${this.app.formatPathForLog(configuredMigrationsDir)}`);
3896
3945
  const adapter = this.app.getConfig("adapter");
3897
3946
  const useDatabaseMigrations = supportsDatabaseMigrationExecution(adapter);
3898
3947
  const persistedFeatures = resolvePersistedMetadataFeatures(this.app.getConfig("features"));
3899
3948
  const schemaPath = this.option("schema") ? resolve(String(this.option("schema"))) : join(process.cwd(), "prisma", "schema.prisma");
3900
3949
  const stateFilePath = resolveMigrationStateFilePath(process.cwd(), this.option("state-file") ? String(this.option("state-file")) : void 0);
3901
- const migrations = await this.loadAllMigrations(migrationsDir);
3950
+ const migrations = await this.loadAllMigrations(migrationDirs);
3902
3951
  if (migrations.length === 0) return void this.error("Error: No migration classes found to run.");
3903
3952
  if (useDatabaseMigrations) try {
3904
3953
  await validatePersistedMetadataFeaturesForMigrations(migrations, persistedFeatures);
@@ -3960,9 +4009,12 @@ var MigrateFreshCommand = class extends Command {
3960
4009
  this.success(`Refreshed database with ${migrations.length} migration(s).`);
3961
4010
  migrations.forEach(([_, file]) => this.success(this.app.splitLogger("Migrated", file)));
3962
4011
  }
3963
- async loadAllMigrations(migrationsDir) {
3964
- const files = readdirSync$1(migrationsDir).filter((file) => /\.(ts|js|mjs|cjs)$/i.test(file)).sort((left, right) => left.localeCompare(right)).map((file) => this.app.resolveRuntimeScriptPath(join(migrationsDir, file)));
3965
- return (await Promise.all(files.map(async (file) => (await this.loadMigrationClassesFromFile(file)).map((cls) => [cls, file])))).flat();
4012
+ resolveMigrationDirectories(configuredMigrationsDir) {
4013
+ return [this.app.resolveRuntimeDirectoryPath(configuredMigrationsDir), ...getRegisteredPaths("migrations").map((directory) => this.app.resolveRuntimeDirectoryPath(directory))].filter((directory, index, all) => existsSync$1(directory) && all.indexOf(directory) === index);
4014
+ }
4015
+ async loadAllMigrations(migrationsDirs) {
4016
+ const files = migrationsDirs.flatMap((migrationsDir) => readdirSync$1(migrationsDir).filter((file) => /\.(ts|js|mjs|cjs)$/i.test(file)).sort((left, right) => left.localeCompare(right)).map((file) => this.app.resolveRuntimeScriptPath(join(migrationsDir, file))));
4017
+ return [...(await Promise.all(files.map(async (file) => (await this.loadMigrationClassesFromFile(file)).map((cls) => [cls, file])))).flat(), ...getRegisteredMigrations().map((cls) => [cls, `registered:${cls.name}`])];
3966
4018
  }
3967
4019
  async loadMigrationClassesFromFile(filePath) {
3968
4020
  const imported = await RuntimeModuleLoader.load(filePath);
@@ -4047,8 +4099,8 @@ var MigrateRollbackCommand = class extends Command {
4047
4099
  async handle() {
4048
4100
  this.app.command = this;
4049
4101
  const configuredMigrationsDir = this.app.getConfig("paths")?.migrations ?? join(process.cwd(), "database", "migrations");
4050
- const migrationsDir = this.app.resolveRuntimeDirectoryPath(configuredMigrationsDir);
4051
- if (!existsSync$1(migrationsDir)) return void this.error(`Error: Migrations directory not found: ${this.app.formatPathForLog(configuredMigrationsDir)}`);
4102
+ const migrationDirs = this.resolveMigrationDirectories(configuredMigrationsDir);
4103
+ if (migrationDirs.length === 0 && getRegisteredMigrations().length === 0) return void this.error(`Error: Migrations directory not found: ${this.app.formatPathForLog(configuredMigrationsDir)}`);
4052
4104
  const schemaPath = this.option("schema") ? resolve(String(this.option("schema"))) : join(process.cwd(), "prisma", "schema.prisma");
4053
4105
  const stateFilePath = resolveMigrationStateFilePath(process.cwd(), this.option("state-file") ? String(this.option("state-file")) : void 0);
4054
4106
  const adapter = this.app.getConfig("adapter");
@@ -4064,7 +4116,7 @@ var MigrateRollbackCommand = class extends Command {
4064
4116
  return lastRun.migrationIds.map((id) => appliedState.migrations.find((migration) => migration.id === id)).filter((migration) => Boolean(migration));
4065
4117
  })();
4066
4118
  if (targets.length === 0) return void this.error("Error: No tracked migrations available to rollback.");
4067
- const available = await this.loadAllMigrations(migrationsDir);
4119
+ const available = await this.loadAllMigrations(migrationDirs);
4068
4120
  const rollbackClasses = targets.map((target) => {
4069
4121
  return available.find(([migrationClass, file]) => {
4070
4122
  return buildMigrationIdentity(file, migrationClass.name) === target.id || migrationClass.name === target.className;
@@ -4108,9 +4160,12 @@ var MigrateRollbackCommand = class extends Command {
4108
4160
  this.success(`Rolled back ${rollbackClasses.length} migration(s).`);
4109
4161
  rollbackClasses.forEach(([_, file]) => this.success(this.app.splitLogger("RolledBack", file)));
4110
4162
  }
4111
- async loadAllMigrations(migrationsDir) {
4112
- const files = readdirSync$1(migrationsDir).filter((file) => /\.(ts|js|mjs|cjs)$/i.test(file)).sort((left, right) => left.localeCompare(right)).map((file) => this.app.resolveRuntimeScriptPath(join(migrationsDir, file)));
4113
- return (await Promise.all(files.map(async (file) => (await this.loadMigrationClassesFromFile(file)).map((cls) => [cls, file])))).flat();
4163
+ resolveMigrationDirectories(configuredMigrationsDir) {
4164
+ return [this.app.resolveRuntimeDirectoryPath(configuredMigrationsDir), ...getRegisteredPaths("migrations").map((directory) => this.app.resolveRuntimeDirectoryPath(directory))].filter((directory, index, all) => existsSync$1(directory) && all.indexOf(directory) === index);
4165
+ }
4166
+ async loadAllMigrations(migrationsDirs) {
4167
+ const files = migrationsDirs.flatMap((migrationsDir) => readdirSync$1(migrationsDir).filter((file) => /\.(ts|js|mjs|cjs)$/i.test(file)).sort((left, right) => left.localeCompare(right)).map((file) => this.app.resolveRuntimeScriptPath(join(migrationsDir, file))));
4168
+ return [...(await Promise.all(files.map(async (file) => (await this.loadMigrationClassesFromFile(file)).map((cls) => [cls, file])))).flat(), ...getRegisteredMigrations().map((cls) => [cls, `registered:${cls.name}`])];
4114
4169
  }
4115
4170
  async loadMigrationClassesFromFile(filePath) {
4116
4171
  const imported = await RuntimeModuleLoader.load(filePath);
@@ -4300,9 +4355,9 @@ var SeedCommand = class extends Command {
4300
4355
  async handle() {
4301
4356
  this.app.command = this;
4302
4357
  const configuredSeedersDir = this.app.getConfig("paths")?.seeders ?? join(process.cwd(), "database", "seeders");
4303
- const seedersDir = this.app.resolveRuntimeDirectoryPath(configuredSeedersDir);
4304
- if (!existsSync$1(seedersDir)) return void this.error(`ERROR: Seeders directory not found: ${this.app.formatPathForLog(configuredSeedersDir)}`);
4305
- const classes = this.option("all") ? await this.loadAllSeeders(seedersDir) : await this.loadNamedSeeder(seedersDir, this.argument("name") ?? "DatabaseSeeder");
4358
+ const seederDirs = this.resolveSeederDirectories(configuredSeedersDir);
4359
+ if (seederDirs.length === 0 && getRegisteredSeeders().length === 0) return void this.error(`ERROR: Seeders directory not found: ${this.app.formatPathForLog(configuredSeedersDir)}`);
4360
+ const classes = this.option("all") ? await this.loadAllSeeders(seederDirs) : await this.loadNamedSeeder(seederDirs, this.argument("name") ?? "DatabaseSeeder");
4306
4361
  if (classes.length === 0) return void this.error("ERROR: No seeder classes found to run.");
4307
4362
  for (const SeederClassItem of classes) await new SeederClassItem().run();
4308
4363
  this.success("Database seeding completed");
@@ -4314,9 +4369,12 @@ var SeedCommand = class extends Command {
4314
4369
  * @param seedersDir
4315
4370
  * @returns
4316
4371
  */
4317
- async loadAllSeeders(seedersDir) {
4318
- const files = readdirSync$1(seedersDir).filter((file) => /\.(ts|js|mjs|cjs)$/i.test(file)).map((file) => this.app.resolveRuntimeScriptPath(join(seedersDir, file)));
4319
- return (await Promise.all(files.map(async (file) => await this.loadSeederClassesFromFile(file)))).flat();
4372
+ resolveSeederDirectories(configuredSeedersDir) {
4373
+ return [this.app.resolveRuntimeDirectoryPath(configuredSeedersDir), ...getRegisteredPaths("seeders").map((directory) => this.app.resolveRuntimeDirectoryPath(directory))].filter((directory, index, all) => existsSync$1(directory) && all.indexOf(directory) === index);
4374
+ }
4375
+ async loadAllSeeders(seedersDirs) {
4376
+ const files = seedersDirs.flatMap((seedersDir) => readdirSync$1(seedersDir).filter((file) => /\.(ts|js|mjs|cjs)$/i.test(file)).map((file) => this.app.resolveRuntimeScriptPath(join(seedersDir, file))));
4377
+ return [...(await Promise.all(files.map(async (file) => await this.loadSeederClassesFromFile(file)))).flat(), ...getRegisteredSeeders()];
4320
4378
  }
4321
4379
  /**
4322
4380
  * Load seeder classes from a specific file or by class name.
@@ -4325,9 +4383,11 @@ var SeedCommand = class extends Command {
4325
4383
  * @param name
4326
4384
  * @returns
4327
4385
  */
4328
- async loadNamedSeeder(seedersDir, name) {
4386
+ async loadNamedSeeder(seedersDirs, name) {
4329
4387
  const base = name.replace(/Seeder$/, "");
4330
- const target = [
4388
+ const registered = getRegisteredSeeders().find((cls) => cls.name === name || cls.name === `${base}Seeder`);
4389
+ if (registered) return [registered];
4390
+ const target = seedersDirs.flatMap((seedersDir) => [
4331
4391
  `${name}.ts`,
4332
4392
  `${name}.js`,
4333
4393
  `${name}.mjs`,
@@ -4336,7 +4396,7 @@ var SeedCommand = class extends Command {
4336
4396
  `${base}Seeder.js`,
4337
4397
  `${base}Seeder.mjs`,
4338
4398
  `${base}Seeder.cjs`
4339
- ].map((file) => join(seedersDir, file)).find((file) => existsSync$1(file));
4399
+ ].map((file) => join(seedersDir, file))).find((file) => existsSync$1(file));
4340
4400
  if (!target) return [];
4341
4401
  const runtimeTarget = this.app.resolveRuntimeScriptPath(target);
4342
4402
  return await this.loadSeederClassesFromFile(runtimeTarget);
@@ -3849,6 +3849,251 @@ declare const createPrismaDatabaseAdapter: (prisma: PrismaClientLike, mapping?:
3849
3849
  */
3850
3850
  declare const createPrismaCompatibilityAdapter: (prisma: PrismaClientLike, mapping?: PrismaDelegateNameMapping) => PrismaDatabaseAdapter;
3851
3851
  //#endregion
3852
+ //#region src/database/Seeder.d.ts
3853
+ type SeederConstructor = new () => Seeder;
3854
+ type SeederInput = Seeder | SeederConstructor;
3855
+ type SeederCallArgument = SeederInput | SeederInput[];
3856
+ declare const SEEDER_BRAND: unique symbol;
3857
+ /**
3858
+ * The Seeder class serves as a base for defining database seeders, which are
3859
+ * used to populate the database with initial or test data.
3860
+ *
3861
+ * @author Legacy (3m1n3nc3)
3862
+ * @since 0.1.0
3863
+ */
3864
+ declare abstract class Seeder {
3865
+ static readonly [SEEDER_BRAND] = true;
3866
+ /**
3867
+ * Defines the operations to be performed when running the seeder.
3868
+ */
3869
+ abstract run(): Promise<void> | void;
3870
+ /**
3871
+ * Runs one or more seeders.
3872
+ *
3873
+ * @param seeders The seeders to be run.
3874
+ */
3875
+ call(...seeders: SeederCallArgument[]): Promise<void>;
3876
+ /**
3877
+ * Converts a SeederInput into a Seeder instance.
3878
+ *
3879
+ * @param input The SeederInput to convert.
3880
+ * @returns A Seeder instance.
3881
+ */
3882
+ private static toSeederInstance;
3883
+ /**
3884
+ * Runs the given seeders in sequence.
3885
+ *
3886
+ * @param seeders The seeders to be run.
3887
+ */
3888
+ private static runSeeders;
3889
+ }
3890
+ //#endregion
3891
+ //#region src/helpers/runtime-registry.d.ts
3892
+ type RuntimePathKey = 'models' | 'seeders' | 'migrations' | 'factories';
3893
+ type RuntimePathInput = string | string[];
3894
+ type RuntimePathMap = Partial<Record<RuntimePathKey, RuntimePathInput>>;
3895
+ type RuntimeConstructor = new (...args: any[]) => any;
3896
+ type RegisteredModel = RuntimeConstructor;
3897
+ type RegisteredFactory = RuntimeConstructor | object;
3898
+ /**
3899
+ * Register additional runtime discovery paths without replacing configured paths.
3900
+ *
3901
+ * @param paths
3902
+ */
3903
+ declare const registerPaths: (paths: RuntimePathMap) => void;
3904
+ /**
3905
+ * Register additional runtime discovery paths for migrations without replacing configured paths.
3906
+ *
3907
+ * @param paths
3908
+ * @returns
3909
+ */
3910
+ declare const loadMigrationsFrom: (paths: RuntimePathInput) => void;
3911
+ /**
3912
+ * Register additional runtime discovery paths for seeders without replacing configured paths.
3913
+ *
3914
+ * @param paths
3915
+ * @returns
3916
+ */
3917
+ declare const loadSeedersFrom: (paths: RuntimePathInput) => void;
3918
+ /**
3919
+ * Register additional runtime discovery paths for models without replacing configured paths.
3920
+ *
3921
+ * @param paths
3922
+ * @returns
3923
+ */
3924
+ declare const loadModelsFrom: (paths: RuntimePathInput) => void;
3925
+ /**
3926
+ * Register additional runtime discovery paths for factories without replacing configured paths.
3927
+ *
3928
+ * @param paths
3929
+ * @returns
3930
+ */
3931
+ declare const loadFactoriesFrom: (paths: RuntimePathInput) => void;
3932
+ /**
3933
+ * Register migration constructors directly without relying on runtime discovery.
3934
+ *
3935
+ * @param migrations
3936
+ */
3937
+ declare const registerMigrations: (...migrations: Array<MigrationClass | MigrationClass[]>) => void;
3938
+ /**
3939
+ * Register seeder constructors directly without relying on runtime discovery.
3940
+ *
3941
+ * @param seeders
3942
+ */
3943
+ declare const registerSeeders: (...seeders: Array<SeederConstructor | SeederConstructor[]>) => void;
3944
+ /**
3945
+ * Register model constructors directly without relying on runtime discovery.
3946
+ *
3947
+ * @param models
3948
+ */
3949
+ declare const registerModels: (...models: Array<RegisteredModel | RegisteredModel[]>) => void;
3950
+ /**
3951
+ * Register factory constructors or instances directly without relying on runtime discovery.
3952
+ *
3953
+ * @param factories
3954
+ */
3955
+ declare const registerFactories: (...factories: Array<RegisteredFactory | RegisteredFactory[]>) => void;
3956
+ /**
3957
+ * Get registered runtime discovery paths or registered constructors for a specific type.
3958
+ *
3959
+ * @param key
3960
+ * @returns
3961
+ */
3962
+ declare const getRegisteredPaths: (key?: RuntimePathKey) => string[] | Record<RuntimePathKey, string[]>;
3963
+ /**
3964
+ * Get registered migration constructors instances.
3965
+ *
3966
+ * @returns
3967
+ */
3968
+ declare const getRegisteredMigrations: () => MigrationClass[];
3969
+ /**
3970
+ * Get registered seeder constructors instances.
3971
+ *
3972
+ * @returns
3973
+ */
3974
+ declare const getRegisteredSeeders: () => SeederConstructor[];
3975
+ /**
3976
+ * Get registered model constructors instances.
3977
+ *
3978
+ * @returns
3979
+ */
3980
+ declare const getRegisteredModels: () => RegisteredModel[];
3981
+ /**
3982
+ * Get registered factory constructors or instances.
3983
+ *
3984
+ * @returns
3985
+ */
3986
+ declare const getRegisteredFactories: () => RegisteredFactory[];
3987
+ declare const resetRuntimeRegistryForTests: () => void;
3988
+ //#endregion
3989
+ //#region src/Arkorm.d.ts
3990
+ declare class Arkorm {
3991
+ /**
3992
+ * Register migration constructors directly without relying on runtime discovery.
3993
+ *
3994
+ * @param migrations
3995
+ * @returns
3996
+ */
3997
+ static registerMigrations(...migrations: (MigrationClass | MigrationClass[])[]): void;
3998
+ registerMigrations: typeof Arkorm.registerMigrations;
3999
+ /**
4000
+ * Register seeder constructors directly without relying on runtime discovery.
4001
+ *
4002
+ * @param seeders
4003
+ * @returns
4004
+ */
4005
+ static registerSeeders(...seeders: (SeederConstructor | SeederConstructor[])[]): void;
4006
+ registerSeeders: typeof Arkorm.registerSeeders;
4007
+ /**
4008
+ * Register model constructors directly without relying on runtime discovery.
4009
+ *
4010
+ * @param models
4011
+ * @returns
4012
+ */
4013
+ static registerModels(...models: (RegisteredModel | RegisteredModel[])[]): void;
4014
+ registerModels: typeof Arkorm.registerModels;
4015
+ /**
4016
+ * Register factory constructors or instances directly without relying on runtime discovery.
4017
+ *
4018
+ * @param factories
4019
+ * @returns
4020
+ */
4021
+ static registerFactories(...factories: (RegisteredFactory | RegisteredFactory[])[]): void;
4022
+ registerFactories: typeof Arkorm.registerFactories;
4023
+ /**
4024
+ * Register additional runtime discovery paths for models without replacing configured paths.
4025
+ *
4026
+ * @param paths
4027
+ * @returns
4028
+ */
4029
+ static loadModelsFrom(paths: RuntimePathInput): void;
4030
+ loadModelsFrom: typeof Arkorm.loadModelsFrom;
4031
+ /**
4032
+ * Register additional runtime discovery paths for seeders without replacing configured paths.
4033
+ *
4034
+ * @param paths
4035
+ * @returns
4036
+ */
4037
+ static loadSeedersFrom(paths: RuntimePathInput): void;
4038
+ loadSeedersFrom: typeof Arkorm.loadSeedersFrom;
4039
+ /**
4040
+ * Register additional runtime discovery paths for migrations without replacing configured paths.
4041
+ *
4042
+ * @param paths
4043
+ * @returns
4044
+ */
4045
+ static loadMigrationsFrom(paths: RuntimePathInput): void;
4046
+ loadMigrationsFrom: typeof Arkorm.loadMigrationsFrom;
4047
+ /**
4048
+ * Register additional runtime discovery paths for factories without replacing configured paths.
4049
+ *
4050
+ * @param paths
4051
+ * @returns
4052
+ */
4053
+ static loadFactoriesFrom(paths: RuntimePathInput): void;
4054
+ loadFactoriesFrom: typeof Arkorm.loadFactoriesFrom;
4055
+ /**
4056
+ * Get registered runtime discovery paths or registered constructors for a specific type.
4057
+ *
4058
+ * @param key
4059
+ * @returns
4060
+ */
4061
+ static getRegisteredPaths(key?: RuntimePathKey | undefined): string[] | Record<RuntimePathKey, string[]>;
4062
+ getRegisteredPaths: typeof Arkorm.getRegisteredPaths;
4063
+ /**
4064
+ * Get registered migration constructors instances
4065
+ *
4066
+ * @returns
4067
+ */
4068
+ static getRegisteredMigrations(): MigrationClass[];
4069
+ getRegisteredMigrations: typeof Arkorm.getRegisteredMigrations;
4070
+ /**
4071
+ * Get registered seeder constructors instances.
4072
+ *
4073
+ * @returns
4074
+ */
4075
+ static getRegisteredSeeders(): SeederConstructor[];
4076
+ getRegisteredSeeders: typeof Arkorm.getRegisteredSeeders;
4077
+ /**
4078
+ * Get registered model constructors instances.
4079
+ *
4080
+ * @returns
4081
+ */
4082
+ static getRegisteredModels(): RuntimeConstructor[];
4083
+ getRegisteredModels: typeof Arkorm.getRegisteredModels;
4084
+ /**
4085
+ * Get registered factory constructors or instances.
4086
+ *
4087
+ * @returns
4088
+ */
4089
+ static getRegisteredFactories(): RegisteredFactory[];
4090
+ getRegisteredFactories: typeof Arkorm.getRegisteredFactories;
4091
+ }
4092
+ /**
4093
+ * Arkormx is an alias for Arkorm.
4094
+ */
4095
+ declare class Arkormx extends Arkorm {}
4096
+ //#endregion
3852
4097
  //#region src/Attribute.d.ts
3853
4098
  interface AttributeOptions<TGet = unknown, TSet = unknown> {
3854
4099
  get?: (value: unknown) => TGet;
@@ -4237,6 +4482,7 @@ declare class MigrateCommand extends Command<CliApp> {
4237
4482
  *
4238
4483
  * @param migrationsDir The directory to load migration classes from.
4239
4484
  */
4485
+ private resolveMigrationDirectories;
4240
4486
  private loadAllMigrations;
4241
4487
  /**
4242
4488
  * Load migration classes from a specific file or by class name.
@@ -4263,6 +4509,7 @@ declare class MigrateFreshCommand extends Command<CliApp> {
4263
4509
  protected signature: string;
4264
4510
  protected description: string;
4265
4511
  handle(): Promise<undefined>;
4512
+ private resolveMigrationDirectories;
4266
4513
  private loadAllMigrations;
4267
4514
  private loadMigrationClassesFromFile;
4268
4515
  private runWithDatabaseCreationRetry;
@@ -4282,6 +4529,7 @@ declare class MigrateRollbackCommand extends Command<CliApp> {
4282
4529
  protected signature: string;
4283
4530
  protected description: string;
4284
4531
  handle(): Promise<undefined>;
4532
+ private resolveMigrationDirectories;
4285
4533
  private loadAllMigrations;
4286
4534
  private loadMigrationClassesFromFile;
4287
4535
  }
@@ -4328,6 +4576,7 @@ declare class SeedCommand extends Command<CliApp> {
4328
4576
  * @param seedersDir
4329
4577
  * @returns
4330
4578
  */
4579
+ private resolveSeederDirectories;
4331
4580
  private loadAllSeeders;
4332
4581
  /**
4333
4582
  * Load seeder classes from a specific file or by class name.
@@ -4793,45 +5042,6 @@ declare abstract class Migration {
4793
5042
  abstract down(schema: SchemaBuilder): Promise<void> | void;
4794
5043
  }
4795
5044
  //#endregion
4796
- //#region src/database/Seeder.d.ts
4797
- type SeederConstructor = new () => Seeder;
4798
- type SeederInput = Seeder | SeederConstructor;
4799
- type SeederCallArgument = SeederInput | SeederInput[];
4800
- declare const SEEDER_BRAND: unique symbol;
4801
- /**
4802
- * The Seeder class serves as a base for defining database seeders, which are
4803
- * used to populate the database with initial or test data.
4804
- *
4805
- * @author Legacy (3m1n3nc3)
4806
- * @since 0.1.0
4807
- */
4808
- declare abstract class Seeder {
4809
- static readonly [SEEDER_BRAND] = true;
4810
- /**
4811
- * Defines the operations to be performed when running the seeder.
4812
- */
4813
- abstract run(): Promise<void> | void;
4814
- /**
4815
- * Runs one or more seeders.
4816
- *
4817
- * @param seeders The seeders to be run.
4818
- */
4819
- call(...seeders: SeederCallArgument[]): Promise<void>;
4820
- /**
4821
- * Converts a SeederInput into a Seeder instance.
4822
- *
4823
- * @param input The SeederInput to convert.
4824
- * @returns A Seeder instance.
4825
- */
4826
- private static toSeederInstance;
4827
- /**
4828
- * Runs the given seeders in sequence.
4829
- *
4830
- * @param seeders The seeders to be run.
4831
- */
4832
- private static runSeeders;
4833
- }
4834
- //#endregion
4835
5045
  //#region src/DB.d.ts
4836
5046
  declare class DB {
4837
5047
  private static adapter?;
@@ -5491,4 +5701,4 @@ declare class URLDriver {
5491
5701
  url(page: number): string;
5492
5702
  }
5493
5703
  //#endregion
5494
- export { deriveInverseRelationAlias as $, FactoryModelConstructor as $a, QueryBuilder as $i, AdapterCapabilities as $n, DelegateFindManyArgs as $r, getPersistedTableMetadata as $t, resetArkormRuntimeForTests as A, defineFactory as Aa, PrismaTransactionContext as Ai, TableBuilder as An, SchemaForeignKeyAction as Ao, RawQuerySpec as Ar, getLatestAppliedMigrations as At, applyMigrationRollbackToPrismaSchema as B, SingleResultRelation as Ba, QuerySchemaUpdateArgs as Bi, MakeMigrationCommand as Bn, UpsertSpec as Br, writeAppliedMigrationsStateToStore as Bt, getRuntimePaginationURLDriverFactory as C, ModelRelationshipResult as Ca, PrismaLikeOrderBy as Ci, SeederCallArgument as Cn, MigrationInstanceLike as Co, QueryGroupCondition as Cr, buildMigrationIdentity as Ct, isQuerySchemaLike as D, Model as Da, PrismaLikeWhereInput as Di, Migration as Dn, SchemaColumn as Do, QueryRawCondition as Dr, deleteAppliedMigrationsStateFromStore as Dt, isDelegateLike as E, RelatedModelClass as Ea, PrismaLikeSortOrder as Ei, MIGRATION_BRAND as En, PrismaSchemaSyncOptions as Eo, QueryOrderBy as Er, createEmptyAppliedMigrationsState as Et, PRISMA_MODEL_REGEX as F, HasOneThroughRelation as Fa, QuerySchemaOrderBy as Fi, MigrateRollbackCommand as Fn, SchemaTableDropOperation as Fo, SelectSpec as Fr, readAppliedMigrationsStateFromStore as Ft, buildFieldLine as G, RelationConstraint as Ga, SimplePaginationMeta as Gi, Attribute as Gn, ArkormDebugEvent as Gr, PersistedTimestampColumn as Gt, applyMigrationToPrismaSchema as H, Relation as Ha, QuerySchemaWhere as Hi, InitCommand as Hn, AdapterQueryInspection as Hr, PersistedMetadataFeatures as Ht, applyAlterTableOperation as I, HasOneRelation as Ia, QuerySchemaRow as Ii, MigrateFreshCommand as In, TimestampColumnBehavior as Io, SoftDeleteQueryMode as Ir, removeAppliedMigration as It, buildMigrationSource as J, RelationMetadataProvider as Ja, TransactionCapableClient as Ji, PrismaDelegateNameMapping as Jn, CastHandler as Jr, deletePersistedColumnMappingsState as Jt, buildIndexLine as K, RelationDefaultResolver as Ka, SoftDeleteConfig as Ki, AttributeOptions as Kn, ArkormDebugHandler as Kr, applyOperationsToPersistedColumnMappingsState as Kt, applyCreateTableOperation as L, HasManyThroughRelation as La, QuerySchemaRows as Li, MigrateCommand as Ln, SortDirection as Lr, resolveMigrationStateFilePath as Lt, PrimaryKeyGenerationPlanner as M, MorphToManyRelation as Ma, QuerySchemaCreateData as Mi, SeedCommand as Mn, SchemaOperation as Mo, RelationFilterSpec as Mr, markMigrationApplied as Mt, PRISMA_ENUM_MEMBER_REGEX as N, MorphOneRelation as Na, QuerySchemaFindManyArgs as Ni, ModelsSyncCommand as Nn, SchemaTableAlterOperation as No, RelationLoadPlan as Nr, markMigrationRun as Nt, isTransactionCapableClient as O, InlineFactory as Oa, PrismaTransactionCallback as Oi, SchemaBuilder as On, SchemaColumnType as Oo, QuerySelectColumn as Or, findAppliedMigration as Ot, PRISMA_ENUM_REGEX as P, MorphManyRelation as Pa, QuerySchemaInclude as Pi, MigrationHistoryCommand as Pn, SchemaTableCreateOperation as Po, RelationLoadSpec as Pr, readAppliedMigrationsState as Pt, deriveCollectionFieldName as Q, FactoryDefinition as Qa, RelationshipModelStatic as Qi, createKyselyAdapter as Qn, DelegateCreateData as Qr, getPersistedPrimaryKeyGeneration as Qt, applyDropTableOperation as R, HasManyRelation as Ra, QuerySchemaSelect as Ri, MakeSeederCommand as Rn, UpdateManySpec as Rr, supportsDatabaseMigrationState as Rt, getRuntimePaginationCurrentPageResolver as S, ModelRelationshipKey as Sa, PrismaLikeInclude as Si, Seeder as Sn, MigrationClass as So, QueryCondition as Sr, toModelName as St, getUserConfig as T, QuerySchemaForModel as Ta, PrismaLikeSelect as Ti, SeederInput as Tn, PrismaMigrationWorkflowOptions as To, QueryNotCondition as Tr, computeMigrationChecksum as Tt, applyOperationsToPrismaSchema as U, RelationTableLoader as Ua, RuntimeClientLike as Ui, CliApp as Un, ArkormBootContext as Ur, PersistedPrimaryKeyGeneration as Ut, applyMigrationToDatabase as V, BelongsToManyRelation as Va, QuerySchemaUpdateData as Vi, MakeFactoryCommand as Vn, AdapterBindableModel as Vr, PersistedColumnMappingsState as Vt, buildEnumBlock as W, RelationColumnLookupSpec as Wa, Serializable as Wi, resolveCast as Wn, ArkormConfig as Wr, PersistedTableMetadata as Wt, buildRelationLine as X, ArkormCollection as Xa, TransactionOptions as Xi, createPrismaDatabaseAdapter as Xn, CastType as Xr, getPersistedEnumMap as Xt, buildModelBlock as Y, RelationTableLookupSpec as Ya, TransactionContext as Yi, createPrismaCompatibilityAdapter as Yn, CastMap as Yr, getPersistedColumnMap as Yt, createMigrationTimestamp as Z, FactoryAttributes as Za, ModelStatic as Zi, KyselyDatabaseAdapter as Zn, ClientResolver as Zr, getPersistedEnumTsType as Zt, getActiveTransactionClient as _, ModelEventHandler as _a, PaginationURLDriver as _i, MissingDelegateException as _n, AppliedMigrationEntry as _o, DeleteSpec as _r, stripPrismaSchemaModelsAndEnums as _t, resolveRuntimeCompatibilityQuerySchema as a, AttributeSchemaDelegate as aa, DelegateUniqueWhere as ai, resolvePersistedMetadataFeatures as an, ColumnMap as ao, AdapterModelStructure as ar, findModelBlock as at, getRuntimeClient as b, ModelEventName as ba, PrismaDelegateLike as bi, DB as bn, GenerateMigrationOptions as bo, QueryComparisonCondition as br, supportsDatabaseReset as bt, createPrismaAdapter as c, AttributeWhereInput as ca, DelegateWhere as ci, writePersistedColumnMappingsState as cn, HasOneRelationMetadata as co, AggregateOperation as cr, formatRelationAction as ct, bindAdapterToModels as d, ModelAttributeValue as da, GetUserConfig as di, ScopeNotDefinedException as dn, MorphManyRelationMetadata as do, DatabaseAdapter as dr, pad as dt, LengthAwarePaginator as ea, DelegateInclude as ei, getPersistedTimestampColumns as en, FactoryState as eo, AdapterCapability as er, deriveRelationAlias as et, configureArkormRuntime as f, ModelAttributes as fa, ModelQuerySchemaLike as fi, RelationResolutionException as fn, MorphOneRelationMetadata as fo, DatabasePrimitive as fr, resolveEnumName as ft, getActiveTransactionAdapter as g, ModelEventDispatcher as ga, PaginationOptions as gi, ModelNotFoundException as gn, RelationMetadataType as go, DeleteManySpec as gr, runPrismaCommand as gt, ensureArkormConfigLoading as h, ModelDeclaredAttributeKey as ha, PaginationMeta as hi, QueryConstraintException as hn, RelationMetadata as ho, DatabaseValue as hr, runMigrationWithPrisma as ht, getRuntimeCompatibilityAdapter as i, AttributeQuerySchema as ia, DelegateSelect as ii, resolveColumnMappingsFilePath as in, BelongsToRelationMetadata as io, AdapterModelIntrospectionOptions as ir, findEnumBlock as it, runArkormTransaction as j, SetBasedEagerLoader as ja, PrismaTransactionOptions as ji, ForeignKeyBuilder as jn, SchemaIndex as jo, RelationAggregateSpec as jr, isMigrationApplied as jt, loadArkormConfig as k, ModelFactory as ka, PrismaTransactionCapableClient as ki, EnumBuilder as kn, SchemaForeignKey as ko, QueryTarget as kr, getLastMigrationRun as kt, createPrismaDelegateMap as l, DelegateForModelSchema as la, EagerLoadConstraint as li, UnsupportedAdapterFeatureException as ln, HasOneThroughRelationMetadata as lo, AggregateSelection as lr, generateMigrationFile as lt, emitRuntimeDebugEvent as m, ModelCreateData as ma, PaginationCurrentPageResolver as mi, QueryExecutionExceptionContext as mn, PivotModelStatic as mo, DatabaseRows as mr, resolvePrismaType as mt, PivotModel as n, AttributeCreateInput as na, DelegateRow as ni, rebuildPersistedColumnMappingsState as nn, DatabaseTablePersistedMetadataOptions as no, AdapterInspectionRequest as nr, deriveSingularFieldName as nt, resolveRuntimeCompatibilityQuerySchemaOrThrow as o, AttributeSelect as oa, DelegateUpdateArgs as oi, syncPersistedColumnMappingsFromState as on, HasManyRelationMetadata as oo, AdapterQueryOperation as or, formatDefaultValue as ot, defineConfig as p, ModelAttributesOf as pa, ModelTableCase as pi, QueryExecutionException as pn, MorphToManyRelationMetadata as po, DatabaseRow as pr, resolveMigrationClassName as pt, buildInverseRelationLine as q, RelationDefaultValue as qa, TransactionCallback as qi, PrismaDatabaseAdapter as qn, CastDefinition as qr, createEmptyPersistedColumnMappingsState as qt, RuntimeModuleLoader as r, AttributeOrderBy as ra, DelegateRows as ri, resetPersistedColumnMappingsCache as rn, BelongsToManyRelationMetadata as ro, AdapterModelFieldStructure as rr, escapeRegex as rt, PrismaDelegateMap as s, AttributeUpdateInput as sa, DelegateUpdateData as si, validatePersistedMetadataFeaturesForMigrations as sn, HasManyThroughRelationMetadata as so, AdapterTransactionContext as sr, formatEnumDefaultValue as st, URLDriver as t, Paginator as ta, DelegateOrderBy as ti, readPersistedColumnMappingsState as tn, DatabaseTableOptions as to, AdapterDatabaseCreationResult as tr, deriveRelationFieldName as tt, inferDelegateName as u, GlobalScope as ua, EagerLoadMap as ui, UniqueConstraintResolutionException as un, ModelMetadata as uo, AggregateSpec as ur, getMigrationPlan as ut, getDefaultStubsPath as v, ModelEventHandlerConstructor as va, PaginationURLDriverFactory as vi, ArkormErrorContext as vn, AppliedMigrationRun as vo, InsertManySpec as vr, supportsDatabaseCreation as vt, getRuntimePrismaClient as w, ModelUpdateData as wa, PrismaLikeScalarFilter as wi, SeederConstructor as wn, PrimaryKeyGeneration as wo, QueryLogicalOperator as wr, buildMigrationRunId as wt, getRuntimeDebugHandler as x, ModelLifecycleState as xa, PrismaFindManyArgsLike as xi, SEEDER_BRAND as xn, GeneratedMigrationFile as xo, QueryComparisonOperator as xr, toMigrationFileSlug as xt, getRuntimeAdapter as y, ModelEventListener as ya, PrismaClientLike as yi, ArkormException as yn, AppliedMigrationsState as yo, InsertSpec as yr, supportsDatabaseMigrationExecution as yt, applyMigrationRollbackToDatabase as z, BelongsToRelation as za, QuerySchemaUniqueWhere as zi, MakeModelCommand as zn, UpdateSpec as zr, writeAppliedMigrationsState as zt };
5704
+ export { deriveInverseRelationAlias as $, defineFactory as $a, PrismaTransactionContext as $i, getRegisteredPaths as $n, SchemaForeignKeyAction as $o, RawQuerySpec as $r, getPersistedTableMetadata as $t, resetArkormRuntimeForTests as A, AttributeUpdateInput as Aa, DelegateUpdateData as Ai, MigrateRollbackCommand as An, HasManyThroughRelationMetadata as Ao, AdapterTransactionContext as Ar, getLatestAppliedMigrations as At, applyMigrationRollbackToPrismaSchema as B, ModelEventHandler as Ba, PaginationURLDriver as Bi, Attribute as Bn, AppliedMigrationEntry as Bo, DeleteSpec as Br, writeAppliedMigrationsStateToStore as Bt, getRuntimePaginationURLDriverFactory as C, LengthAwarePaginator as Ca, DelegateInclude as Ci, SchemaBuilder as Cn, FactoryState as Co, AdapterCapability as Cr, buildMigrationIdentity as Ct, isQuerySchemaLike as D, AttributeQuerySchema as Da, DelegateSelect as Di, SeedCommand as Dn, BelongsToRelationMetadata as Do, AdapterModelIntrospectionOptions as Dr, deleteAppliedMigrationsStateFromStore as Dt, isDelegateLike as E, AttributeOrderBy as Ea, DelegateRows as Ei, ForeignKeyBuilder as En, BelongsToManyRelationMetadata as Eo, AdapterModelFieldStructure as Er, createEmptyAppliedMigrationsState as Et, PRISMA_MODEL_REGEX as F, ModelAttributes as Fa, ModelQuerySchemaLike as Fi, MakeMigrationCommand as Fn, MorphOneRelationMetadata as Fo, DatabasePrimitive as Fr, readAppliedMigrationsStateFromStore as Ft, buildFieldLine as G, ModelRelationshipKey as Ga, PrismaLikeInclude as Gi, RegisteredModel as Gn, MigrationClass as Go, QueryCondition as Gr, PersistedTimestampColumn as Gt, applyMigrationToPrismaSchema as H, ModelEventListener as Ha, PrismaClientLike as Hi, Arkorm as Hn, AppliedMigrationsState as Ho, InsertSpec as Hr, PersistedMetadataFeatures as Ht, applyAlterTableOperation as I, ModelAttributesOf as Ia, ModelTableCase as Ii, MakeFactoryCommand as In, MorphToManyRelationMetadata as Io, DatabaseRow as Ir, removeAppliedMigration as It, buildMigrationSource as J, QuerySchemaForModel as Ja, PrismaLikeSelect as Ji, RuntimePathKey as Jn, PrismaMigrationWorkflowOptions as Jo, QueryNotCondition as Jr, deletePersistedColumnMappingsState as Jt, buildIndexLine as K, ModelRelationshipResult as Ka, PrismaLikeOrderBy as Ki, RuntimeConstructor as Kn, MigrationInstanceLike as Ko, QueryGroupCondition as Kr, applyOperationsToPersistedColumnMappingsState as Kt, applyCreateTableOperation as L, ModelCreateData as La, PaginationCurrentPageResolver as Li, InitCommand as Ln, PivotModelStatic as Lo, DatabaseRows as Lr, resolveMigrationStateFilePath as Lt, PrimaryKeyGenerationPlanner as M, DelegateForModelSchema as Ma, EagerLoadConstraint as Mi, MigrateCommand as Mn, HasOneThroughRelationMetadata as Mo, AggregateSelection as Mr, markMigrationApplied as Mt, PRISMA_ENUM_MEMBER_REGEX as N, GlobalScope as Na, EagerLoadMap as Ni, MakeSeederCommand as Nn, ModelMetadata as No, AggregateSpec as Nr, markMigrationRun as Nt, isTransactionCapableClient as O, AttributeSchemaDelegate as Oa, DelegateUniqueWhere as Oi, ModelsSyncCommand as On, ColumnMap as Oo, AdapterModelStructure as Or, findAppliedMigration as Ot, PRISMA_ENUM_REGEX as P, ModelAttributeValue as Pa, GetUserConfig as Pi, MakeModelCommand as Pn, MorphManyRelationMetadata as Po, DatabaseAdapter as Pr, readAppliedMigrationsState as Pt, deriveCollectionFieldName as Q, ModelFactory as Qa, PrismaTransactionCapableClient as Qi, getRegisteredModels as Qn, SchemaForeignKey as Qo, QueryTarget as Qr, getPersistedPrimaryKeyGeneration as Qt, applyDropTableOperation as R, ModelDeclaredAttributeKey as Ra, PaginationMeta as Ri, CliApp as Rn, RelationMetadata as Ro, DatabaseValue as Rr, supportsDatabaseMigrationState as Rt, getRuntimePaginationCurrentPageResolver as S, QueryBuilder as Sa, DelegateFindManyArgs as Si, Migration as Sn, FactoryModelConstructor as So, AdapterCapabilities as Sr, toModelName as St, getUserConfig as T, AttributeCreateInput as Ta, DelegateRow as Ti, TableBuilder as Tn, DatabaseTablePersistedMetadataOptions as To, AdapterInspectionRequest as Tr, computeMigrationChecksum as Tt, applyOperationsToPrismaSchema as U, ModelEventName as Ua, PrismaDelegateLike as Ui, Arkormx as Un, GenerateMigrationOptions as Uo, QueryComparisonCondition as Ur, PersistedPrimaryKeyGeneration as Ut, applyMigrationToDatabase as V, ModelEventHandlerConstructor as Va, PaginationURLDriverFactory as Vi, AttributeOptions as Vn, AppliedMigrationRun as Vo, InsertManySpec as Vr, PersistedColumnMappingsState as Vt, buildEnumBlock as W, ModelLifecycleState as Wa, PrismaFindManyArgsLike as Wi, RegisteredFactory as Wn, GeneratedMigrationFile as Wo, QueryComparisonOperator as Wr, PersistedTableMetadata as Wt, buildRelationLine as X, Model as Xa, PrismaLikeWhereInput as Xi, getRegisteredFactories as Xn, SchemaColumn as Xo, QueryRawCondition as Xr, getPersistedEnumMap as Xt, buildModelBlock as Y, RelatedModelClass as Ya, PrismaLikeSortOrder as Yi, RuntimePathMap as Yn, PrismaSchemaSyncOptions as Yo, QueryOrderBy as Yr, getPersistedColumnMap as Yt, createMigrationTimestamp as Z, InlineFactory as Za, PrismaTransactionCallback as Zi, getRegisteredMigrations as Zn, SchemaColumnType as Zo, QuerySelectColumn as Zr, getPersistedEnumTsType as Zt, getActiveTransactionClient as _, TransactionCapableClient as _a, CastHandler as _i, MissingDelegateException as _n, RelationMetadataProvider as _o, PrismaDelegateNameMapping as _r, stripPrismaSchemaModelsAndEnums as _t, resolveRuntimeCompatibilityQuerySchema as a, QuerySchemaRow as aa, SoftDeleteQueryMode as ai, resolvePersistedMetadataFeatures as an, HasOneRelation as ao, registerFactories as ar, TimestampColumnBehavior as as, findModelBlock as at, getRuntimeClient as b, ModelStatic as ba, ClientResolver as bi, DB as bn, FactoryAttributes as bo, KyselyDatabaseAdapter as br, supportsDatabaseReset as bt, createPrismaAdapter as c, QuerySchemaUniqueWhere as ca, UpdateSpec as ci, writePersistedColumnMappingsState as cn, BelongsToRelation as co, registerPaths as cr, formatRelationAction as ct, bindAdapterToModels as d, QuerySchemaWhere as da, AdapterQueryInspection as di, ScopeNotDefinedException as dn, Relation as do, SEEDER_BRAND as dr, pad as dt, PrismaTransactionOptions as ea, RelationAggregateSpec as ei, getPersistedTimestampColumns as en, SetBasedEagerLoader as eo, getRegisteredSeeders as er, SchemaIndex as es, deriveRelationAlias as et, configureArkormRuntime as f, RuntimeClientLike as fa, ArkormBootContext as fi, RelationResolutionException as fn, RelationTableLoader as fo, Seeder as fr, resolveEnumName as ft, getActiveTransactionAdapter as g, TransactionCallback as ga, CastDefinition as gi, ModelNotFoundException as gn, RelationDefaultValue as go, PrismaDatabaseAdapter as gr, runPrismaCommand as gt, ensureArkormConfigLoading as h, SoftDeleteConfig as ha, ArkormDebugHandler as hi, QueryConstraintException as hn, RelationDefaultResolver as ho, SeederInput as hr, runMigrationWithPrisma as ht, getRuntimeCompatibilityAdapter as i, QuerySchemaOrderBy as ia, SelectSpec as ii, resolveColumnMappingsFilePath as in, HasOneThroughRelation as io, loadSeedersFrom as ir, SchemaTableDropOperation as is, findEnumBlock as it, runArkormTransaction as j, AttributeWhereInput as ja, DelegateWhere as ji, MigrateFreshCommand as jn, HasOneRelationMetadata as jo, AggregateOperation as jr, isMigrationApplied as jt, loadArkormConfig as k, AttributeSelect as ka, DelegateUpdateArgs as ki, MigrationHistoryCommand as kn, HasManyRelationMetadata as ko, AdapterQueryOperation as kr, getLastMigrationRun as kt, createPrismaDelegateMap as l, QuerySchemaUpdateArgs as la, UpsertSpec as li, UnsupportedAdapterFeatureException as ln, SingleResultRelation as lo, registerSeeders as lr, generateMigrationFile as lt, emitRuntimeDebugEvent as m, SimplePaginationMeta as ma, ArkormDebugEvent as mi, QueryExecutionExceptionContext as mn, RelationConstraint as mo, SeederConstructor as mr, resolvePrismaType as mt, PivotModel as n, QuerySchemaFindManyArgs as na, RelationLoadPlan as ni, rebuildPersistedColumnMappingsState as nn, MorphOneRelation as no, loadMigrationsFrom as nr, SchemaTableAlterOperation as ns, deriveSingularFieldName as nt, resolveRuntimeCompatibilityQuerySchemaOrThrow as o, QuerySchemaRows as oa, SortDirection as oi, syncPersistedColumnMappingsFromState as on, HasManyThroughRelation as oo, registerMigrations as or, formatDefaultValue as ot, defineConfig as p, Serializable as pa, ArkormConfig as pi, QueryExecutionException as pn, RelationColumnLookupSpec as po, SeederCallArgument as pr, resolveMigrationClassName as pt, buildInverseRelationLine as q, ModelUpdateData as qa, PrismaLikeScalarFilter as qi, RuntimePathInput as qn, PrimaryKeyGeneration as qo, QueryLogicalOperator as qr, createEmptyPersistedColumnMappingsState as qt, RuntimeModuleLoader as r, QuerySchemaInclude as ra, RelationLoadSpec as ri, resetPersistedColumnMappingsCache as rn, MorphManyRelation as ro, loadModelsFrom as rr, SchemaTableCreateOperation as rs, escapeRegex as rt, PrismaDelegateMap as s, QuerySchemaSelect as sa, UpdateManySpec as si, validatePersistedMetadataFeaturesForMigrations as sn, HasManyRelation as so, registerModels as sr, formatEnumDefaultValue as st, URLDriver as t, QuerySchemaCreateData as ta, RelationFilterSpec as ti, readPersistedColumnMappingsState as tn, MorphToManyRelation as to, loadFactoriesFrom as tr, SchemaOperation as ts, deriveRelationFieldName as tt, inferDelegateName as u, QuerySchemaUpdateData as ua, AdapterBindableModel as ui, UniqueConstraintResolutionException as un, BelongsToManyRelation as uo, resetRuntimeRegistryForTests as ur, getMigrationPlan as ut, getDefaultStubsPath as v, TransactionContext as va, CastMap as vi, ArkormErrorContext as vn, RelationTableLookupSpec as vo, createPrismaCompatibilityAdapter as vr, supportsDatabaseCreation as vt, getRuntimePrismaClient as w, Paginator as wa, DelegateOrderBy as wi, EnumBuilder as wn, DatabaseTableOptions as wo, AdapterDatabaseCreationResult as wr, buildMigrationRunId as wt, getRuntimeDebugHandler as x, RelationshipModelStatic as xa, DelegateCreateData as xi, MIGRATION_BRAND as xn, FactoryDefinition as xo, createKyselyAdapter as xr, toMigrationFileSlug as xt, getRuntimeAdapter as y, TransactionOptions as ya, CastType as yi, ArkormException as yn, ArkormCollection as yo, createPrismaDatabaseAdapter as yr, supportsDatabaseMigrationExecution as yt, applyMigrationRollbackToDatabase as z, ModelEventDispatcher as za, PaginationOptions as zi, resolveCast as zn, RelationMetadataType as zo, DeleteManySpec as zr, writeAppliedMigrationsState as zt };