@mikro-orm/cli 7.0.0-dev.32 → 7.0.0-dev.320

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.
@@ -0,0 +1,21 @@
1
+ import type { ArgumentsCamelCase, Argv } from 'yargs';
2
+ import { MetadataStorage, type Configuration } from '@mikro-orm/core';
3
+ import type { BaseArgs, BaseCommand } from '../CLIConfigurator.js';
4
+ type CompileArgs = BaseArgs & {
5
+ out?: string;
6
+ };
7
+ export declare class CompileCommand implements BaseCommand<CompileArgs> {
8
+ command: string;
9
+ describe: string;
10
+ builder: (args: Argv<BaseArgs>) => Argv<CompileArgs>;
11
+ /**
12
+ * @inheritDoc
13
+ */
14
+ handler(args: ArgumentsCamelCase<CompileArgs>): Promise<void>;
15
+ static capture(metadata: MetadataStorage, config: Configuration): {
16
+ key: string;
17
+ contextKeys: string[];
18
+ code: string;
19
+ }[];
20
+ }
21
+ export {};
@@ -0,0 +1,94 @@
1
+ import { writeFileSync, mkdirSync } from 'node:fs';
2
+ import { resolve, dirname } from 'node:path';
3
+ import { MetadataDiscovery, MetadataStorage, Utils, EntityComparator, ObjectHydrator, colors, } from '@mikro-orm/core';
4
+ import { fs } from '@mikro-orm/core/fs-utils';
5
+ import { CLIHelper } from '../CLIHelper.js';
6
+ export class CompileCommand {
7
+ command = 'compile';
8
+ describe = 'Pre-compile optimized entity functions for runtimes that prohibit eval (e.g. Cloudflare Workers)';
9
+ builder = (args) => {
10
+ args.option('out', {
11
+ type: 'string',
12
+ desc: 'Output path for the generated file (defaults to next to your ORM config)',
13
+ });
14
+ return args;
15
+ };
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ async handler(args) {
20
+ const config = await CLIHelper.getConfiguration(args.contextName, args.config);
21
+ const settings = CLIHelper.getSettings();
22
+ config.set('debug', !!settings.verbose);
23
+ const metadata = await new MetadataDiscovery(new MetadataStorage(), config.getDriver().getPlatform(), config).discover(false);
24
+ // Default output path to next to the ORM config file
25
+ if (!args.out) {
26
+ const configPaths = args.config ?? (await CLIHelper.getConfigPaths());
27
+ for (const configPath of configPaths) {
28
+ const absPath = fs.absolutePath(configPath);
29
+ if (fs.pathExists(absPath)) {
30
+ args.out = resolve(dirname(absPath), 'compiled-functions.js');
31
+ break;
32
+ }
33
+ }
34
+ }
35
+ const captured = CompileCommand.capture(metadata, config);
36
+ const entries = captured.map(({ key, contextKeys, code }) => {
37
+ const params = contextKeys.join(', ');
38
+ const indentedCode = code.replace(/\n/g, '\n ');
39
+ return ` '${key}': function(${params}) {\n ${indentedCode}\n }`;
40
+ });
41
+ const esm = CLIHelper.isESM();
42
+ const version = Utils.getORMVersion();
43
+ const output = esm
44
+ ? `export default {\n __version: '${version}',\n${entries.join(',\n')}\n};\n`
45
+ : `'use strict';\nmodule.exports = {\n __version: '${version}',\n${entries.join(',\n')}\n};\n`;
46
+ const outPath = args.out ?? resolve(process.cwd(), 'compiled-functions.js');
47
+ const dtsPath = outPath.replace(/\.js$/, '.d.ts');
48
+ const dts = esm
49
+ ? `import type { CompiledFunctions } from '@mikro-orm/core';\ndeclare const compiledFunctions: CompiledFunctions;\nexport default compiledFunctions;\n`
50
+ : `import type { CompiledFunctions } from '@mikro-orm/core';\ndeclare const compiledFunctions: CompiledFunctions;\nexport = compiledFunctions;\n`;
51
+ mkdirSync(dirname(outPath), { recursive: true });
52
+ writeFileSync(outPath, output);
53
+ writeFileSync(dtsPath, dts);
54
+ CLIHelper.dump(colors.green(`Compiled functions generated to ${outPath} (${captured.length} functions)`));
55
+ CLIHelper.dump(`\nExample usage in your ORM config:\n`);
56
+ const importPath = esm ? './compiled-functions.js' : './compiled-functions';
57
+ CLIHelper.dump(` ${esm ? 'import' : 'const'} compiledFunctions ${esm ? 'from ' : '= require('}${colors.cyan(`'${importPath}'`)}${esm ? '' : ')'};`);
58
+ CLIHelper.dump('');
59
+ CLIHelper.dump(` export default defineConfig({ compiledFunctions });\n`);
60
+ }
61
+ static capture(metadata, config) {
62
+ const captured = [];
63
+ const original = Utils.createFunction;
64
+ Utils.createFunction = (context, code, _compiledFunctions, key) => {
65
+ captured.push({ key: key, contextKeys: [...context.keys()], code });
66
+ return original.call(Utils, context, code);
67
+ };
68
+ try {
69
+ const platform = config.getDriver().getPlatform();
70
+ const hydrator = new ObjectHydrator(metadata, platform, config);
71
+ const comparator = new EntityComparator(metadata, platform, config);
72
+ for (const meta of metadata) {
73
+ hydrator.getEntityHydrator(meta, 'full', false);
74
+ hydrator.getEntityHydrator(meta, 'full', true);
75
+ comparator.getEntityComparator(meta.class);
76
+ comparator.getSnapshotGenerator(meta.class);
77
+ comparator.getResultMapper(meta);
78
+ if (!meta.embeddable && !meta.virtual) {
79
+ hydrator.getEntityHydrator(meta, 'reference', false);
80
+ hydrator.getEntityHydrator(meta, 'reference', true);
81
+ }
82
+ if (meta.primaryKeys.length > 0) {
83
+ comparator.getPkGetter(meta);
84
+ comparator.getPkGetterConverted(meta);
85
+ comparator.getPkSerializer(meta);
86
+ }
87
+ }
88
+ }
89
+ finally {
90
+ Utils.createFunction = original;
91
+ }
92
+ return captured;
93
+ }
94
+ }
@@ -7,8 +7,7 @@ export class CreateDatabaseCommand {
7
7
  */
8
8
  async handler(args) {
9
9
  const orm = await CLIHelper.getORM(args.contextName, args.config);
10
- const schemaGenerator = orm.getSchemaGenerator();
11
- await schemaGenerator.ensureDatabase();
10
+ await orm.schema.ensureDatabase();
12
11
  await orm.close(true);
13
12
  }
14
13
  }
@@ -16,8 +16,7 @@ export class CreateSeederCommand {
16
16
  async handler(args) {
17
17
  const className = CreateSeederCommand.getSeederClassName(args.seeder);
18
18
  const orm = await CLIHelper.getORM(args.contextName, args.config);
19
- const seeder = orm.getSeeder();
20
- const path = await seeder.createSeeder(className);
19
+ const path = await orm.seeder.create(className);
21
20
  CLIHelper.dump(colors.green(`Seeder ${args.seeder} successfully created at ${path}`));
22
21
  await orm.close(true);
23
22
  }
@@ -25,7 +24,7 @@ export class CreateSeederCommand {
25
24
  * Will return a seeder name that is formatted like this EntitySeeder
26
25
  */
27
26
  static getSeederClassName(name) {
28
- name = name.match(/(.+)seeder/i)?.[1] ?? name;
27
+ name = /(.+)seeder/i.exec(name)?.[1] ?? name;
29
28
  const parts = name.split('-');
30
29
  return parts.map(name => name.charAt(0).toUpperCase() + name.slice(1)).join('') + 'Seeder';
31
30
  }
@@ -17,7 +17,7 @@ export class DatabaseSeedCommand {
17
17
  async handler(args) {
18
18
  const orm = await CLIHelper.getORM(args.contextName, args.config);
19
19
  const className = args.class ?? orm.config.get('seeder').defaultSeeder;
20
- await orm.getSeeder().seedString(className);
20
+ await orm.seeder.seedString(className);
21
21
  CLIHelper.dump(colors.green(`Seeder ${className} successfully executed`));
22
22
  await orm.close(true);
23
23
  }
@@ -1,4 +1,5 @@
1
- import { ConfigurationLoader, Utils, colors } from '@mikro-orm/core';
1
+ import { colors } from '@mikro-orm/core';
2
+ import { fs } from '@mikro-orm/core/fs-utils';
2
3
  import { CLIHelper } from '../CLIHelper.js';
3
4
  export class DebugCommand {
4
5
  command = 'debug';
@@ -8,12 +9,13 @@ export class DebugCommand {
8
9
  */
9
10
  async handler(args) {
10
11
  CLIHelper.dump(`Current ${colors.cyan('MikroORM')} CLI configuration`);
11
- await CLIHelper.dumpDependencies();
12
- const settings = ConfigurationLoader.getSettings();
12
+ CLIHelper.dumpDependencies();
13
+ const settings = CLIHelper.getSettings();
13
14
  if (!process.versions.bun && settings.preferTs !== false) {
14
- CLIHelper.dump(' - TypeScript support ' + colors.green('enabled'));
15
+ const loader = process.env.MIKRO_ORM_CLI_TS_LOADER ?? 'auto';
16
+ CLIHelper.dump(' - TypeScript support ' + colors.green(`enabled (${loader})`));
15
17
  }
16
- const configPaths = args.config ?? CLIHelper.getConfigPaths();
18
+ const configPaths = args.config ?? (await CLIHelper.getConfigPaths());
17
19
  CLIHelper.dump(' - searched config paths:');
18
20
  await DebugCommand.checkPaths(configPaths, 'yellow');
19
21
  CLIHelper.dump(` - searched for config name: ${colors.green(args.contextName)}`);
@@ -23,7 +25,7 @@ export class DebugCommand {
23
25
  const drivers = CLIHelper.getDriverDependencies(config);
24
26
  CLIHelper.dump(' - driver dependencies:');
25
27
  for (const driver of drivers) {
26
- CLIHelper.dump(` - ${driver} ${await CLIHelper.getModuleVersion(driver)}`);
28
+ CLIHelper.dump(` - ${driver} ${CLIHelper.getModuleVersion(driver)}`);
27
29
  }
28
30
  const isConnected = await CLIHelper.isDBConnected(config, true);
29
31
  if (isConnected === true) {
@@ -39,8 +41,8 @@ export class DebugCommand {
39
41
  }
40
42
  const entities = config.get('entities', []);
41
43
  if (entities.length > 0) {
42
- const refs = entities.filter(p => !Utils.isString(p));
43
- const paths = entities.filter(p => Utils.isString(p));
44
+ const refs = entities.filter(p => typeof p !== 'string');
45
+ const paths = entities.filter(p => typeof p === 'string');
44
46
  const will = !config.get('preferTs') ? 'will' : 'could';
45
47
  CLIHelper.dump(` - ${will} use \`entities\` array (contains ${refs.length} references and ${paths.length} paths)`);
46
48
  if (paths.length > 0) {
@@ -49,8 +51,8 @@ export class DebugCommand {
49
51
  }
50
52
  const entitiesTs = config.get('entitiesTs', []);
51
53
  if (entitiesTs.length > 0) {
52
- const refs = entitiesTs.filter(p => !Utils.isString(p));
53
- const paths = entitiesTs.filter(p => Utils.isString(p));
54
+ const refs = entitiesTs.filter(p => typeof p !== 'string');
55
+ const paths = entitiesTs.filter(p => typeof p === 'string');
54
56
  /* v8 ignore next */
55
57
  const will = config.get('preferTs') ? 'will' : 'could';
56
58
  CLIHelper.dump(` - ${will} use \`entitiesTs\` array (contains ${refs.length} references and ${paths.length} paths)`);
@@ -65,10 +67,9 @@ export class DebugCommand {
65
67
  }
66
68
  static async checkPaths(paths, failedColor, baseDir) {
67
69
  for (let path of paths) {
68
- path = Utils.absolutePath(path, baseDir);
69
- path = Utils.normalizePath(path);
70
- const found = await Utils.pathExists(path);
71
- if (found) {
70
+ path = fs.absolutePath(path, baseDir);
71
+ path = fs.normalizePath(path);
72
+ if (fs.pathExists(path)) {
72
73
  CLIHelper.dump(` - ${path} (${colors.green('found')})`);
73
74
  }
74
75
  else {
@@ -1,4 +1,5 @@
1
- import { MetadataDiscovery, MetadataStorage, colors, FileCacheAdapter } from '@mikro-orm/core';
1
+ import { MetadataDiscovery, MetadataStorage, colors } from '@mikro-orm/core';
2
+ import { FileCacheAdapter } from '@mikro-orm/core/fs-utils';
2
3
  import { CLIHelper } from '../CLIHelper.js';
3
4
  export class GenerateCacheCommand {
4
5
  command = 'cache:generate';
@@ -25,7 +26,7 @@ export class GenerateCacheCommand {
25
26
  await config.getMetadataCacheAdapter().clear();
26
27
  config.set('logger', CLIHelper.dump.bind(null));
27
28
  config.set('debug', true);
28
- const discovery = new MetadataDiscovery(MetadataStorage.init(), config.getDriver().getPlatform(), config);
29
+ const discovery = new MetadataDiscovery(new MetadataStorage(), config.getDriver().getPlatform(), config);
29
30
  await discovery.discover(args.ts ?? false);
30
31
  const combined = args.combined && config.get('metadataCache').combined;
31
32
  CLIHelper.dump(colors.green(`${combined ? 'Combined ' : ''}${args.ts ? 'TS' : 'JS'} metadata cache was successfully generated${combined ? ' to ' + combined : ''}`));
@@ -1,3 +1,4 @@
1
+ import { readFile } from 'node:fs/promises';
1
2
  import { colors } from '@mikro-orm/core';
2
3
  import { CLIHelper } from '../CLIHelper.js';
3
4
  export class ImportCommand {
@@ -8,7 +9,8 @@ export class ImportCommand {
8
9
  */
9
10
  async handler(args) {
10
11
  const orm = await CLIHelper.getORM(args.contextName, args.config, { multipleStatements: true });
11
- await orm.em.getConnection().loadFile(args.file);
12
+ const buf = await readFile(args.file);
13
+ await orm.em.getConnection().executeDump(buf.toString());
12
14
  CLIHelper.dump(colors.green(`File ${args.file} successfully imported`));
13
15
  await orm.close(true);
14
16
  }
@@ -1,4 +1,4 @@
1
- import { Utils, colors } from '@mikro-orm/core';
1
+ import { colors, Utils, } from '@mikro-orm/core';
2
2
  import { CLIHelper } from '../CLIHelper.js';
3
3
  export class MigrationCommandFactory {
4
4
  static DESCRIPTIONS = {
@@ -11,6 +11,7 @@ export class MigrationCommandFactory {
11
11
  fresh: 'Clear the database and rerun all migrations',
12
12
  };
13
13
  static create(command) {
14
+ // oxfmt-ignore
14
15
  return {
15
16
  command: `migration:${command}`,
16
17
  describe: MigrationCommandFactory.DESCRIPTIONS[command],
@@ -80,26 +81,25 @@ export class MigrationCommandFactory {
80
81
  // to be able to run have a master transaction, but run marked migrations outside of it, we need a second connection
81
82
  const options = { pool: { min: 1, max: 2 } };
82
83
  const orm = await CLIHelper.getORM(args.contextName, args.config, options);
83
- const migrator = orm.getMigrator();
84
84
  switch (method) {
85
85
  case 'create':
86
- await this.handleCreateCommand(migrator, args, orm.config);
86
+ await this.handleCreateCommand(orm.migrator, args, orm.config);
87
87
  break;
88
88
  case 'check':
89
- await this.handleCheckCommand(migrator, orm);
89
+ await this.handleCheckCommand(orm.migrator, orm);
90
90
  break;
91
91
  case 'list':
92
- await this.handleListCommand(migrator);
92
+ await this.handleListCommand(orm.migrator);
93
93
  break;
94
94
  case 'pending':
95
- await this.handlePendingCommand(migrator);
95
+ await this.handlePendingCommand(orm.migrator);
96
96
  break;
97
97
  case 'up':
98
98
  case 'down':
99
- await this.handleUpDownCommand(args, migrator, method);
99
+ await this.handleUpDownCommand(args, orm.migrator, method);
100
100
  break;
101
101
  case 'fresh':
102
- await this.handleFreshCommand(args, migrator, orm);
102
+ await this.handleFreshCommand(args, orm.migrator, orm);
103
103
  }
104
104
  await orm.close(true);
105
105
  }
@@ -121,7 +121,7 @@ export class MigrationCommandFactory {
121
121
  CLIHelper.dump(colors.green(message));
122
122
  }
123
123
  static async handlePendingCommand(migrator) {
124
- const pending = await migrator.getPendingMigrations();
124
+ const pending = await migrator.getPending();
125
125
  CLIHelper.dumpTable({
126
126
  columns: ['Name'],
127
127
  rows: pending.map(row => [row.name]),
@@ -129,7 +129,7 @@ export class MigrationCommandFactory {
129
129
  });
130
130
  }
131
131
  static async handleListCommand(migrator) {
132
- const executed = await migrator.getExecutedMigrations();
132
+ const executed = await migrator.getExecuted();
133
133
  CLIHelper.dumpTable({
134
134
  columns: ['Name', 'Executed at'],
135
135
  rows: executed.map(row => {
@@ -141,7 +141,7 @@ export class MigrationCommandFactory {
141
141
  });
142
142
  }
143
143
  static async handleCreateCommand(migrator, args, config) {
144
- const ret = await migrator.createMigration(args.path, args.blank, args.initial, args.name);
144
+ const ret = await migrator.create(args.path, args.blank, args.initial, args.name);
145
145
  if (ret.diff.up.length === 0) {
146
146
  return CLIHelper.dump(colors.green(`No changes required, schema is up-to-date`));
147
147
  }
@@ -149,19 +149,20 @@ export class MigrationCommandFactory {
149
149
  CLIHelper.dump(colors.green('Creating migration with following queries:'));
150
150
  CLIHelper.dump(colors.green('up:'));
151
151
  CLIHelper.dump(ret.diff.up.map(sql => ' ' + sql).join('\n'), config);
152
- /* v8 ignore next 3 */
152
+ /* v8 ignore if */
153
153
  if (config.getDriver().getPlatform().supportsDownMigrations()) {
154
154
  CLIHelper.dump(colors.green('down:'));
155
155
  CLIHelper.dump(ret.diff.down.map(sql => ' ' + sql).join('\n'), config);
156
156
  }
157
157
  else {
158
+ /* v8 ignore next */
158
159
  CLIHelper.dump(colors.yellow(`(${config.getDriver().constructor.name} does not support automatic down migrations)`));
159
160
  }
160
161
  }
161
162
  CLIHelper.dump(colors.green(`${ret.fileName} successfully created`));
162
163
  }
163
164
  static async handleCheckCommand(migrator, orm) {
164
- if (!(await migrator.checkMigrationNeeded())) {
165
+ if (!(await migrator.checkSchema())) {
165
166
  return CLIHelper.dump(colors.green(`No changes required, schema is up-to-date`));
166
167
  }
167
168
  await orm.close(true);
@@ -169,17 +170,15 @@ export class MigrationCommandFactory {
169
170
  process.exit(1);
170
171
  }
171
172
  static async handleFreshCommand(args, migrator, orm) {
172
- const generator = orm.getSchemaGenerator();
173
- await generator.dropSchema({ dropMigrationsTable: true, dropDb: args.dropDb });
173
+ await orm.schema.drop({ dropMigrationsTable: true, dropDb: args.dropDb });
174
174
  CLIHelper.dump(colors.green('Dropped schema successfully'));
175
175
  const opts = MigrationCommandFactory.getUpDownOptions(args);
176
176
  await migrator.up(opts);
177
177
  const message = this.getUpDownSuccessMessage('up', opts);
178
178
  CLIHelper.dump(colors.green(message));
179
179
  if (args.seed !== undefined) {
180
- const seeder = orm.getSeeder();
181
180
  const seederClass = args.seed || orm.config.get('seeder').defaultSeeder;
182
- await seeder.seedString(seederClass);
181
+ await orm.seeder.seedString(seederClass);
183
182
  CLIHelper.dump(colors.green(`Database seeded successfully with seeder class ${seederClass}`));
184
183
  }
185
184
  }
@@ -188,7 +187,7 @@ export class MigrationCommandFactory {
188
187
  return { migrations: flags.only.split(/[, ]+/) };
189
188
  }
190
189
  const ret = {};
191
- ['from', 'to'].filter(k => flags[k]).forEach(k => ret[k] = flags[k] === '0' ? 0 : flags[k]);
190
+ ['from', 'to'].filter(k => flags[k]).forEach(k => (ret[k] = flags[k] === '0' ? 0 : flags[k]));
192
191
  return ret;
193
192
  }
194
193
  static getUpDownSuccessMessage(method, options) {
@@ -203,10 +202,10 @@ export class MigrationCommandFactory {
203
202
  if (method === 'up' && Utils.isEmpty(options)) {
204
203
  return msg + ' to the latest version';
205
204
  }
206
- if (Utils.isString(options.to)) {
205
+ if (typeof options.to === 'string') {
207
206
  return msg + ' to version ' + options.to;
208
207
  }
209
- if (options.migrations && options.migrations.length === 1) {
208
+ if (options.migrations?.length === 1) {
210
209
  return msg + ' to version ' + options.migrations[0];
211
210
  }
212
211
  return msg;
@@ -80,12 +80,11 @@ export class SchemaCommandFactory {
80
80
  return CLIHelper.showHelp();
81
81
  }
82
82
  const orm = await CLIHelper.getORM(args.contextName, args.config);
83
- const generator = orm.getSchemaGenerator();
84
83
  const params = { wrap: args.fkChecks == null ? undefined : !args.fkChecks, ...args };
85
84
  if (args.dump) {
86
85
  const m = `get${method.substr(0, 1).toUpperCase()}${method.substr(1)}SchemaSQL`;
87
- const dump = await generator[m](params);
88
- /* v8 ignore next 3 */
86
+ const dump = await orm.schema[m](params);
87
+ /* v8 ignore if */
89
88
  if (dump) {
90
89
  CLIHelper.dump(dump, orm.config);
91
90
  successMessage = '';
@@ -95,16 +94,13 @@ export class SchemaCommandFactory {
95
94
  }
96
95
  }
97
96
  else if (method === 'fresh') {
98
- await generator.dropSchema(params);
99
- await generator.createSchema(params);
97
+ await orm.schema.refresh(params);
100
98
  }
101
99
  else {
102
- const m = method + 'Schema';
103
- await generator[m](params);
100
+ await orm.schema[method](params);
104
101
  }
105
102
  if (typeof args.seed !== 'undefined') {
106
- const seeder = orm.getSeeder();
107
- await seeder.seedString(args.seed || orm.config.get('seeder').defaultSeeder);
103
+ await orm.seeder.seedString(args.seed || orm.config.get('seeder').defaultSeeder);
108
104
  }
109
105
  CLIHelper.dump(colors.green(successMessage));
110
106
  await orm.close(true);
package/package.json CHANGED
@@ -1,65 +1,60 @@
1
1
  {
2
2
  "name": "@mikro-orm/cli",
3
- "type": "module",
4
- "version": "7.0.0-dev.32",
3
+ "version": "7.0.0-dev.320",
5
4
  "description": "TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, PostgreSQL and SQLite databases as well as usage with vanilla JavaScript.",
6
- "exports": {
7
- "./package.json": "./package.json",
8
- ".": "./index.js"
9
- },
10
- "repository": {
11
- "type": "git",
12
- "url": "git+ssh://git@github.com/mikro-orm/mikro-orm.git"
13
- },
14
5
  "keywords": [
15
- "orm",
6
+ "data-mapper",
7
+ "ddd",
8
+ "entity",
9
+ "identity-map",
10
+ "javascript",
11
+ "js",
12
+ "mariadb",
13
+ "mikro-orm",
16
14
  "mongo",
17
15
  "mongodb",
18
16
  "mysql",
19
- "mariadb",
17
+ "orm",
20
18
  "postgresql",
21
19
  "sqlite",
22
20
  "sqlite3",
23
21
  "ts",
24
22
  "typescript",
25
- "js",
26
- "javascript",
27
- "entity",
28
- "ddd",
29
- "mikro-orm",
30
- "unit-of-work",
31
- "data-mapper",
32
- "identity-map"
23
+ "unit-of-work"
33
24
  ],
34
- "author": "Martin Adámek",
35
- "license": "MIT",
25
+ "homepage": "https://mikro-orm.io",
36
26
  "bugs": {
37
27
  "url": "https://github.com/mikro-orm/mikro-orm/issues"
38
28
  },
39
- "homepage": "https://mikro-orm.io",
29
+ "license": "MIT",
30
+ "author": "Martin Adámek",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+ssh://git@github.com/mikro-orm/mikro-orm.git"
34
+ },
40
35
  "bin": {
41
36
  "mikro-orm": "./cli"
42
37
  },
43
- "engines": {
44
- "node": ">= 22.11.0"
38
+ "type": "module",
39
+ "exports": {
40
+ "./package.json": "./package.json",
41
+ ".": "./index.js"
42
+ },
43
+ "publishConfig": {
44
+ "access": "public"
45
45
  },
46
46
  "scripts": {
47
- "build": "yarn clean && yarn compile && yarn copy",
47
+ "build": "yarn compile && yarn copy",
48
48
  "clean": "yarn run -T rimraf ./dist",
49
49
  "compile": "yarn run -T tsc -p tsconfig.build.json",
50
50
  "copy": "node ../../scripts/copy.mjs"
51
51
  },
52
- "publishConfig": {
53
- "access": "public"
54
- },
55
52
  "dependencies": {
56
- "@mikro-orm/core": "7.0.0-dev.32",
57
- "@mikro-orm/knex": "7.0.0-dev.32",
53
+ "@mikro-orm/core": "7.0.0-dev.320",
54
+ "mikro-orm": "7.0.0-dev.320",
58
55
  "yargs": "17.7.2"
59
56
  },
60
- "devDependencies": {
61
- "@mikro-orm/entity-generator": "^6.5.7",
62
- "@mikro-orm/migrations": "^6.5.7",
63
- "@mikro-orm/seeder": "^6.5.7"
57
+ "engines": {
58
+ "node": ">= 22.17.0"
64
59
  }
65
60
  }