@contember/cli 2.0.0-alpha.39 → 2.0.0-alpha.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/development/src/commands/migrations/MigrationAmendCommand.cjs +15 -3
  2. package/dist/development/src/commands/migrations/MigrationAmendCommand.cjs.map +1 -1
  3. package/dist/development/src/commands/migrations/MigrationAmendCommand.js +15 -3
  4. package/dist/development/src/commands/migrations/MigrationAmendCommand.js.map +1 -1
  5. package/dist/development/src/commands/migrations/MigrationDiffCommand.cjs +1 -1
  6. package/dist/development/src/commands/migrations/MigrationDiffCommand.cjs.map +1 -1
  7. package/dist/development/src/commands/migrations/MigrationDiffCommand.js +1 -1
  8. package/dist/development/src/commands/migrations/MigrationDiffCommand.js.map +1 -1
  9. package/dist/development/src/consts.cjs +3 -1
  10. package/dist/development/src/consts.cjs.map +1 -1
  11. package/dist/development/src/consts.js +4 -2
  12. package/dist/development/src/consts.js.map +1 -1
  13. package/dist/development/src/dic.cjs +3 -1
  14. package/dist/development/src/dic.cjs.map +1 -1
  15. package/dist/development/src/dic.js +3 -1
  16. package/dist/development/src/dic.js.map +1 -1
  17. package/dist/development/src/lib/env.cjs +4 -1
  18. package/dist/development/src/lib/env.cjs.map +1 -1
  19. package/dist/development/src/lib/env.js +4 -1
  20. package/dist/development/src/lib/env.js.map +1 -1
  21. package/dist/development/src/lib/migrations/MigrationExecutionFacade.cjs +1 -1
  22. package/dist/development/src/lib/migrations/MigrationExecutionFacade.cjs.map +1 -1
  23. package/dist/development/src/lib/migrations/MigrationExecutionFacade.js +1 -1
  24. package/dist/development/src/lib/migrations/MigrationExecutionFacade.js.map +1 -1
  25. package/dist/production/src/commands/migrations/MigrationAmendCommand.cjs +15 -3
  26. package/dist/production/src/commands/migrations/MigrationAmendCommand.cjs.map +1 -1
  27. package/dist/production/src/commands/migrations/MigrationAmendCommand.js +15 -3
  28. package/dist/production/src/commands/migrations/MigrationAmendCommand.js.map +1 -1
  29. package/dist/production/src/commands/migrations/MigrationDiffCommand.cjs +1 -1
  30. package/dist/production/src/commands/migrations/MigrationDiffCommand.cjs.map +1 -1
  31. package/dist/production/src/commands/migrations/MigrationDiffCommand.js +1 -1
  32. package/dist/production/src/commands/migrations/MigrationDiffCommand.js.map +1 -1
  33. package/dist/production/src/consts.cjs +3 -1
  34. package/dist/production/src/consts.cjs.map +1 -1
  35. package/dist/production/src/consts.js +4 -2
  36. package/dist/production/src/consts.js.map +1 -1
  37. package/dist/production/src/dic.cjs +3 -1
  38. package/dist/production/src/dic.cjs.map +1 -1
  39. package/dist/production/src/dic.js +3 -1
  40. package/dist/production/src/dic.js.map +1 -1
  41. package/dist/production/src/lib/env.cjs +4 -1
  42. package/dist/production/src/lib/env.cjs.map +1 -1
  43. package/dist/production/src/lib/env.js +4 -1
  44. package/dist/production/src/lib/env.js.map +1 -1
  45. package/dist/production/src/lib/migrations/MigrationExecutionFacade.cjs +1 -1
  46. package/dist/production/src/lib/migrations/MigrationExecutionFacade.cjs.map +1 -1
  47. package/dist/production/src/lib/migrations/MigrationExecutionFacade.js +1 -1
  48. package/dist/production/src/lib/migrations/MigrationExecutionFacade.js.map +1 -1
  49. package/dist/types/commands/migrations/MigrationAmendCommand.d.ts +1 -0
  50. package/dist/types/commands/migrations/MigrationAmendCommand.d.ts.map +1 -1
  51. package/dist/types/consts.d.ts.map +1 -1
  52. package/dist/types/dic.d.ts.map +1 -1
  53. package/dist/types/lib/env.d.ts +3 -0
  54. package/dist/types/lib/env.d.ts.map +1 -1
  55. package/dist/types/lib/migrations/MigrationExecutionFacade.d.ts +2 -2
  56. package/dist/types/lib/migrations/MigrationExecutionFacade.d.ts.map +1 -1
  57. package/dist/types/tsconfig.tsbuildinfo +1 -1
  58. package/package.json +13 -13
  59. package/src/commands/migrations/MigrationAmendCommand.ts +16 -3
  60. package/src/commands/migrations/MigrationDiffCommand.ts +1 -1
  61. package/src/consts.ts +4 -2
  62. package/src/dic.ts +3 -1
  63. package/src/lib/env.ts +6 -0
  64. package/src/lib/migrations/MigrationExecutionFacade.ts +3 -3
@@ -79,7 +79,7 @@ class MigrationAmendCommand extends cliCommon.Command {
79
79
  const systemClient = this.systemApiClientProvider.get();
80
80
  await systemClient.migrate([intermediateResult.migration], force);
81
81
  await systemClient.migrationDelete(intermediateResult.migration.version);
82
- if (!newMigrationResult) {
82
+ if (!newMigrationResult && await this.shouldRemove()) {
83
83
  await this.migrationCreator.removeMigration(amendMigration.name);
84
84
  await systemClient.migrationDelete(amendMigration.version);
85
85
  console.log("Latest migration was removed");
@@ -88,8 +88,8 @@ class MigrationAmendCommand extends cliCommon.Command {
88
88
  const newMigration = {
89
89
  name: amendMigration.name,
90
90
  version: amendMigration.version,
91
- formatVersion: newMigrationResult.migration.formatVersion,
92
- modifications: newMigrationResult.migration.modifications
91
+ formatVersion: newMigrationResult?.migration.formatVersion ?? amendMigration.formatVersion,
92
+ modifications: newMigrationResult?.migration.modifications ?? []
93
93
  };
94
94
  await this.migrationCreator.saveMigration(newMigration);
95
95
  await systemClient.migrationModify(amendMigration.version, newMigration);
@@ -118,6 +118,18 @@ class MigrationAmendCommand extends cliCommon.Command {
118
118
  });
119
119
  return action === "yes";
120
120
  }
121
+ async shouldRemove() {
122
+ const { action } = await prompts({
123
+ type: "select",
124
+ name: "action",
125
+ message: "The amendment results in a no-op migration because the changes introduced by the latest migration were reverted.\nYou can choose to remove the latest migration or to modify it so it is empty.",
126
+ choices: [
127
+ { value: "remove", title: "Remove latest migration" },
128
+ { value: "keep", title: "Keep latest migration and make it empty" }
129
+ ]
130
+ });
131
+ return action === "remove";
132
+ }
121
133
  }
122
134
  exports.MigrationAmendCommand = MigrationAmendCommand;
123
135
  //# sourceMappingURL=MigrationAmendCommand.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationAmendCommand.cjs","sources":["../../../../../../packages/cli/src/commands/migrations/MigrationAmendCommand.ts"],"sourcesContent":["import { Command, CommandConfiguration, Input } from '@contember/cli-common'\nimport { InvalidSchemaException, SchemaMigrator } from '@contember/schema-migrations'\nimport prompts from 'prompts'\nimport { emptySchema } from '@contember/schema-utils'\nimport { MigrationCreator, MigrationsResolver, SchemaVersionBuilder, SystemClient } from '@contember/migrations-client'\nimport { MigrationsStatusFacade } from '../../lib/migrations/MigrationsStatusFacade'\nimport { SchemaLoader } from '../../lib/schema/SchemaLoader'\nimport { MigrationsValidator } from '../../lib/migrations/MigrationsValidator'\nimport { MigrationPrinter } from '../../lib/migrations/MigrationPrinter'\nimport { printValidationErrors } from '../../lib/schema/SchemaValidationPrinter'\nimport { SystemClientProvider } from '../../lib/SystemClientProvider'\n\ntype Args = {\n\tmigration?: string\n}\n\ntype Options = {\n\tyes?: true\n\tforce: boolean\n}\n\nexport class MigrationAmendCommand extends Command<Args, Options> {\n\tconstructor(\n\t\tprivate readonly migrationsResolver: MigrationsResolver,\n\t\tprivate readonly systemApiClientProvider: SystemClientProvider,\n\t\tprivate readonly migrationsStatusFacade: MigrationsStatusFacade,\n\t\tprivate readonly schemaLoader: SchemaLoader,\n\t\tprivate readonly schemaVersionBuilder: SchemaVersionBuilder,\n\t\tprivate readonly migrationCreator: MigrationCreator,\n\t\tprivate readonly migrationsValidator: MigrationsValidator,\n\t\tprivate readonly migrationPrinter: MigrationPrinter,\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t) {\n\t\tsuper()\n\t}\n\n\tprotected configure(configuration: CommandConfiguration<Args, Options>): void {\n\t\tconfiguration.description('Amends latest migration')\n\t\tconfiguration.argument('migration').optional()\n\t\tconfiguration.option('force').description('Ignore migrations order and missing migrations (dev only)')\n\t\tconfiguration //\n\t\t\t.option('yes')\n\t\t\t.valueNone()\n\t\t\t.description('Do not ask for confirmation.')\n\t}\n\n\tprotected async execute(input: Input<Args, Options>): Promise<number> {\n\t\tconst migrationName = input.getArgument('migration')\n\t\tconst amendMigration = migrationName\n\t\t\t? await this.migrationsResolver.findSchemaMigrationByVersion(migrationName)\n\t\t\t: await this.migrationsResolver.findLatestSchemaMigration()\n\t\tif (!amendMigration) {\n\t\t\tthrow 'No migration to amend'\n\t\t}\n\t\tconst force = input.getOption('force')\n\t\tconst status = await this.migrationsStatusFacade.resolveMigrationsStatus({ force })\n\t\tif (status.migrationsToExecute.length > 0) {\n\t\t\tthrow `Some migrations are not executed. Unable to amend.`\n\t\t}\n\n\n\t\tconst schema = await this.schemaLoader.loadSchema()\n\t\ttry {\n\t\t\tconst initialSchema = await this.schemaVersionBuilder.buildSchema()\n\t\t\tconst intermediateResult = await this.migrationCreator.prepareMigration(initialSchema, schema, '')\n\t\t\tif (intermediateResult === null) {\n\t\t\t\tconsole.log('Nothing to do')\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tif (amendMigration.formatVersion !== intermediateResult.migration.formatVersion) {\n\t\t\t\tthrow 'Incompatible migration format version'\n\t\t\t}\n\t\t\tconst prevSchema = await this.schemaVersionBuilder.buildSchemaAdvanced(\n\t\t\t\temptySchema,\n\t\t\t\tversion => version < amendMigration.version,\n\t\t\t)\n\t\t\tconst newSchema = await this.schemaMigrator.applyModifications(\n\t\t\t\tprevSchema,\n\t\t\t\t[...amendMigration.modifications, ...intermediateResult.migration.modifications],\n\t\t\t\tamendMigration.formatVersion,\n\t\t\t)\n\t\t\tconst newMigrationResult = await this.migrationCreator.prepareMigration(prevSchema, newSchema, '')\n\t\t\tconst followingMigrations = (await this.migrationsResolver.getSchemaMigrations()).filter(\n\t\t\t\tit => it.version > amendMigration.version,\n\t\t\t)\n\n\t\t\tconst valid = await this.migrationsValidator.validate(\n\t\t\t\tprevSchema,\n\t\t\t\t[...(newMigrationResult ? [newMigrationResult.migration] : []), ...followingMigrations],\n\t\t\t)\n\t\t\tif (!valid) {\n\t\t\t\tthrow `Cannot amend migration`\n\t\t\t}\n\n\t\t\tthis.migrationPrinter.printMigrationDescription(\n\t\t\t\tintermediateResult.initialSchema,\n\t\t\t\tintermediateResult.migration,\n\t\t\t\t{ noSql: true },\n\t\t\t)\n\t\t\tconsole.log(`Amending ${amendMigration.name}`)\n\t\t\tif (!(await this.shouldContinue(input))) {\n\t\t\t\tconsole.log('Aborting')\n\t\t\t\treturn 1\n\t\t\t}\n\t\t\tconst systemClient = this.systemApiClientProvider.get()\n\t\t\tawait systemClient.migrate([intermediateResult.migration], force)\n\t\t\tawait systemClient.migrationDelete(intermediateResult.migration.version)\n\n\t\t\tif (!newMigrationResult) {\n\t\t\t\tawait this.migrationCreator.removeMigration(amendMigration.name)\n\t\t\t\tawait systemClient.migrationDelete(amendMigration.version)\n\t\t\t\tconsole.log('Latest migration was removed')\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tconst newMigration = {\n\t\t\t\tname: amendMigration.name,\n\t\t\t\tversion: amendMigration.version,\n\t\t\t\tformatVersion: newMigrationResult.migration.formatVersion,\n\t\t\t\tmodifications: newMigrationResult.migration.modifications,\n\t\t\t}\n\t\t\tawait this.migrationCreator.saveMigration(newMigration)\n\t\t\tawait systemClient.migrationModify(amendMigration.version, newMigration)\n\n\t\t\treturn 0\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidSchemaException) {\n\t\t\t\tprintValidationErrors(e.validationErrors, e.message)\n\t\t\t\treturn 1\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n\n\tprivate async shouldContinue(input: Input<{}, { yes?: true }>): Promise<boolean> {\n\t\tconst yes = input.getOption('yes')\n\t\tif (yes) {\n\t\t\treturn true\n\t\t}\n\t\tconst { action } = await prompts({\n\t\t\ttype: 'select',\n\t\t\tname: 'action',\n\t\t\tmessage: 'Do you want to continue?',\n\t\t\tchoices: [\n\t\t\t\t{ value: 'yes', title: 'Yes' },\n\t\t\t\t{ value: 'no', title: 'Abort' },\n\t\t\t],\n\t\t})\n\t\treturn action === 'yes'\n\t}\n}\n"],"names":["Command","emptySchema","InvalidSchemaException","printValidationErrors"],"mappings":"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"}
1
+ {"version":3,"file":"MigrationAmendCommand.cjs","sources":["../../../../../../packages/cli/src/commands/migrations/MigrationAmendCommand.ts"],"sourcesContent":["import { Command, CommandConfiguration, Input } from '@contember/cli-common'\nimport { InvalidSchemaException, SchemaMigrator } from '@contember/schema-migrations'\nimport prompts from 'prompts'\nimport { emptySchema } from '@contember/schema-utils'\nimport { MigrationCreator, MigrationsResolver, SchemaVersionBuilder, SystemClient } from '@contember/migrations-client'\nimport { MigrationsStatusFacade } from '../../lib/migrations/MigrationsStatusFacade'\nimport { SchemaLoader } from '../../lib/schema/SchemaLoader'\nimport { MigrationsValidator } from '../../lib/migrations/MigrationsValidator'\nimport { MigrationPrinter } from '../../lib/migrations/MigrationPrinter'\nimport { printValidationErrors } from '../../lib/schema/SchemaValidationPrinter'\nimport { SystemClientProvider } from '../../lib/SystemClientProvider'\n\ntype Args = {\n\tmigration?: string\n}\n\ntype Options = {\n\tyes?: true\n\tforce: boolean\n}\n\nexport class MigrationAmendCommand extends Command<Args, Options> {\n\tconstructor(\n\t\tprivate readonly migrationsResolver: MigrationsResolver,\n\t\tprivate readonly systemApiClientProvider: SystemClientProvider,\n\t\tprivate readonly migrationsStatusFacade: MigrationsStatusFacade,\n\t\tprivate readonly schemaLoader: SchemaLoader,\n\t\tprivate readonly schemaVersionBuilder: SchemaVersionBuilder,\n\t\tprivate readonly migrationCreator: MigrationCreator,\n\t\tprivate readonly migrationsValidator: MigrationsValidator,\n\t\tprivate readonly migrationPrinter: MigrationPrinter,\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t) {\n\t\tsuper()\n\t}\n\n\tprotected configure(configuration: CommandConfiguration<Args, Options>): void {\n\t\tconfiguration.description('Amends latest migration')\n\t\tconfiguration.argument('migration').optional()\n\t\tconfiguration.option('force').description('Ignore migrations order and missing migrations (dev only)')\n\t\tconfiguration //\n\t\t\t.option('yes')\n\t\t\t.valueNone()\n\t\t\t.description('Do not ask for confirmation.')\n\t}\n\n\tprotected async execute(input: Input<Args, Options>): Promise<number> {\n\t\tconst migrationName = input.getArgument('migration')\n\t\tconst amendMigration = migrationName\n\t\t\t? await this.migrationsResolver.findSchemaMigrationByVersion(migrationName)\n\t\t\t: await this.migrationsResolver.findLatestSchemaMigration()\n\t\tif (!amendMigration) {\n\t\t\tthrow 'No migration to amend'\n\t\t}\n\t\tconst force = input.getOption('force')\n\t\tconst status = await this.migrationsStatusFacade.resolveMigrationsStatus({ force })\n\t\tif (status.migrationsToExecute.length > 0) {\n\t\t\tthrow `Some migrations are not executed. Unable to amend.`\n\t\t}\n\n\n\t\tconst schema = await this.schemaLoader.loadSchema()\n\t\ttry {\n\t\t\tconst initialSchema = await this.schemaVersionBuilder.buildSchema()\n\t\t\tconst intermediateResult = await this.migrationCreator.prepareMigration(initialSchema, schema, '')\n\t\t\tif (intermediateResult === null) {\n\t\t\t\tconsole.log('Nothing to do')\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tif (amendMigration.formatVersion !== intermediateResult.migration.formatVersion) {\n\t\t\t\tthrow 'Incompatible migration format version'\n\t\t\t}\n\t\t\tconst prevSchema = await this.schemaVersionBuilder.buildSchemaAdvanced(\n\t\t\t\temptySchema,\n\t\t\t\tversion => version < amendMigration.version,\n\t\t\t)\n\t\t\tconst newSchema = await this.schemaMigrator.applyModifications(\n\t\t\t\tprevSchema,\n\t\t\t\t[...amendMigration.modifications, ...intermediateResult.migration.modifications],\n\t\t\t\tamendMigration.formatVersion,\n\t\t\t)\n\t\t\tconst newMigrationResult = await this.migrationCreator.prepareMigration(prevSchema, newSchema, '')\n\t\t\tconst followingMigrations = (await this.migrationsResolver.getSchemaMigrations()).filter(\n\t\t\t\tit => it.version > amendMigration.version,\n\t\t\t)\n\n\t\t\tconst valid = await this.migrationsValidator.validate(\n\t\t\t\tprevSchema,\n\t\t\t\t[...(newMigrationResult ? [newMigrationResult.migration] : []), ...followingMigrations],\n\t\t\t)\n\t\t\tif (!valid) {\n\t\t\t\tthrow `Cannot amend migration`\n\t\t\t}\n\n\t\t\tthis.migrationPrinter.printMigrationDescription(\n\t\t\t\tintermediateResult.initialSchema,\n\t\t\t\tintermediateResult.migration,\n\t\t\t\t{ noSql: true },\n\t\t\t)\n\t\t\tconsole.log(`Amending ${amendMigration.name}`)\n\t\t\tif (!(await this.shouldContinue(input))) {\n\t\t\t\tconsole.log('Aborting')\n\t\t\t\treturn 1\n\t\t\t}\n\t\t\tconst systemClient = this.systemApiClientProvider.get()\n\t\t\tawait systemClient.migrate([intermediateResult.migration], force)\n\t\t\tawait systemClient.migrationDelete(intermediateResult.migration.version)\n\n\t\t\tif (!newMigrationResult && await this.shouldRemove()) {\n\t\t\t\tawait this.migrationCreator.removeMigration(amendMigration.name)\n\t\t\t\tawait systemClient.migrationDelete(amendMigration.version)\n\t\t\t\tconsole.log('Latest migration was removed')\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tconst newMigration = {\n\t\t\t\tname: amendMigration.name,\n\t\t\t\tversion: amendMigration.version,\n\t\t\t\tformatVersion: newMigrationResult?.migration.formatVersion ?? amendMigration.formatVersion,\n\t\t\t\tmodifications: newMigrationResult?.migration.modifications ?? [],\n\t\t\t}\n\t\t\tawait this.migrationCreator.saveMigration(newMigration)\n\t\t\tawait systemClient.migrationModify(amendMigration.version, newMigration)\n\n\t\t\treturn 0\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidSchemaException) {\n\t\t\t\tprintValidationErrors(e.validationErrors, e.message)\n\t\t\t\treturn 1\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n\n\tprivate async shouldContinue(input: Input<{}, { yes?: true }>): Promise<boolean> {\n\t\tconst yes = input.getOption('yes')\n\t\tif (yes) {\n\t\t\treturn true\n\t\t}\n\t\tconst { action } = await prompts({\n\t\t\ttype: 'select',\n\t\t\tname: 'action',\n\t\t\tmessage: 'Do you want to continue?',\n\t\t\tchoices: [\n\t\t\t\t{ value: 'yes', title: 'Yes' },\n\t\t\t\t{ value: 'no', title: 'Abort' },\n\t\t\t],\n\t\t})\n\t\treturn action === 'yes'\n\t}\n\n\tprivate async shouldRemove(): Promise<boolean> {\n\t\tconst { action } = await prompts({\n\t\t\ttype: 'select',\n\t\t\tname: 'action',\n\t\t\tmessage: 'The amendment results in a no-op migration because the changes introduced by the latest migration were reverted.\\nYou can choose to remove the latest migration or to modify it so it is empty.',\n\t\t\tchoices: [\n\t\t\t\t{ value: 'remove', title: 'Remove latest migration' },\n\t\t\t\t{ value: 'keep', title: 'Keep latest migration and make it empty' },\n\t\t\t],\n\t\t})\n\t\treturn action === 'remove'\n\t}\n}\n"],"names":["Command","emptySchema","InvalidSchemaException","printValidationErrors"],"mappings":"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"}
@@ -77,7 +77,7 @@ class MigrationAmendCommand extends Command {
77
77
  const systemClient = this.systemApiClientProvider.get();
78
78
  await systemClient.migrate([intermediateResult.migration], force);
79
79
  await systemClient.migrationDelete(intermediateResult.migration.version);
80
- if (!newMigrationResult) {
80
+ if (!newMigrationResult && await this.shouldRemove()) {
81
81
  await this.migrationCreator.removeMigration(amendMigration.name);
82
82
  await systemClient.migrationDelete(amendMigration.version);
83
83
  console.log("Latest migration was removed");
@@ -86,8 +86,8 @@ class MigrationAmendCommand extends Command {
86
86
  const newMigration = {
87
87
  name: amendMigration.name,
88
88
  version: amendMigration.version,
89
- formatVersion: newMigrationResult.migration.formatVersion,
90
- modifications: newMigrationResult.migration.modifications
89
+ formatVersion: newMigrationResult?.migration.formatVersion ?? amendMigration.formatVersion,
90
+ modifications: newMigrationResult?.migration.modifications ?? []
91
91
  };
92
92
  await this.migrationCreator.saveMigration(newMigration);
93
93
  await systemClient.migrationModify(amendMigration.version, newMigration);
@@ -116,6 +116,18 @@ class MigrationAmendCommand extends Command {
116
116
  });
117
117
  return action === "yes";
118
118
  }
119
+ async shouldRemove() {
120
+ const { action } = await prompts({
121
+ type: "select",
122
+ name: "action",
123
+ message: "The amendment results in a no-op migration because the changes introduced by the latest migration were reverted.\nYou can choose to remove the latest migration or to modify it so it is empty.",
124
+ choices: [
125
+ { value: "remove", title: "Remove latest migration" },
126
+ { value: "keep", title: "Keep latest migration and make it empty" }
127
+ ]
128
+ });
129
+ return action === "remove";
130
+ }
119
131
  }
120
132
  export {
121
133
  MigrationAmendCommand
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationAmendCommand.js","sources":["../../../../../../packages/cli/src/commands/migrations/MigrationAmendCommand.ts"],"sourcesContent":["import { Command, CommandConfiguration, Input } from '@contember/cli-common'\nimport { InvalidSchemaException, SchemaMigrator } from '@contember/schema-migrations'\nimport prompts from 'prompts'\nimport { emptySchema } from '@contember/schema-utils'\nimport { MigrationCreator, MigrationsResolver, SchemaVersionBuilder, SystemClient } from '@contember/migrations-client'\nimport { MigrationsStatusFacade } from '../../lib/migrations/MigrationsStatusFacade'\nimport { SchemaLoader } from '../../lib/schema/SchemaLoader'\nimport { MigrationsValidator } from '../../lib/migrations/MigrationsValidator'\nimport { MigrationPrinter } from '../../lib/migrations/MigrationPrinter'\nimport { printValidationErrors } from '../../lib/schema/SchemaValidationPrinter'\nimport { SystemClientProvider } from '../../lib/SystemClientProvider'\n\ntype Args = {\n\tmigration?: string\n}\n\ntype Options = {\n\tyes?: true\n\tforce: boolean\n}\n\nexport class MigrationAmendCommand extends Command<Args, Options> {\n\tconstructor(\n\t\tprivate readonly migrationsResolver: MigrationsResolver,\n\t\tprivate readonly systemApiClientProvider: SystemClientProvider,\n\t\tprivate readonly migrationsStatusFacade: MigrationsStatusFacade,\n\t\tprivate readonly schemaLoader: SchemaLoader,\n\t\tprivate readonly schemaVersionBuilder: SchemaVersionBuilder,\n\t\tprivate readonly migrationCreator: MigrationCreator,\n\t\tprivate readonly migrationsValidator: MigrationsValidator,\n\t\tprivate readonly migrationPrinter: MigrationPrinter,\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t) {\n\t\tsuper()\n\t}\n\n\tprotected configure(configuration: CommandConfiguration<Args, Options>): void {\n\t\tconfiguration.description('Amends latest migration')\n\t\tconfiguration.argument('migration').optional()\n\t\tconfiguration.option('force').description('Ignore migrations order and missing migrations (dev only)')\n\t\tconfiguration //\n\t\t\t.option('yes')\n\t\t\t.valueNone()\n\t\t\t.description('Do not ask for confirmation.')\n\t}\n\n\tprotected async execute(input: Input<Args, Options>): Promise<number> {\n\t\tconst migrationName = input.getArgument('migration')\n\t\tconst amendMigration = migrationName\n\t\t\t? await this.migrationsResolver.findSchemaMigrationByVersion(migrationName)\n\t\t\t: await this.migrationsResolver.findLatestSchemaMigration()\n\t\tif (!amendMigration) {\n\t\t\tthrow 'No migration to amend'\n\t\t}\n\t\tconst force = input.getOption('force')\n\t\tconst status = await this.migrationsStatusFacade.resolveMigrationsStatus({ force })\n\t\tif (status.migrationsToExecute.length > 0) {\n\t\t\tthrow `Some migrations are not executed. Unable to amend.`\n\t\t}\n\n\n\t\tconst schema = await this.schemaLoader.loadSchema()\n\t\ttry {\n\t\t\tconst initialSchema = await this.schemaVersionBuilder.buildSchema()\n\t\t\tconst intermediateResult = await this.migrationCreator.prepareMigration(initialSchema, schema, '')\n\t\t\tif (intermediateResult === null) {\n\t\t\t\tconsole.log('Nothing to do')\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tif (amendMigration.formatVersion !== intermediateResult.migration.formatVersion) {\n\t\t\t\tthrow 'Incompatible migration format version'\n\t\t\t}\n\t\t\tconst prevSchema = await this.schemaVersionBuilder.buildSchemaAdvanced(\n\t\t\t\temptySchema,\n\t\t\t\tversion => version < amendMigration.version,\n\t\t\t)\n\t\t\tconst newSchema = await this.schemaMigrator.applyModifications(\n\t\t\t\tprevSchema,\n\t\t\t\t[...amendMigration.modifications, ...intermediateResult.migration.modifications],\n\t\t\t\tamendMigration.formatVersion,\n\t\t\t)\n\t\t\tconst newMigrationResult = await this.migrationCreator.prepareMigration(prevSchema, newSchema, '')\n\t\t\tconst followingMigrations = (await this.migrationsResolver.getSchemaMigrations()).filter(\n\t\t\t\tit => it.version > amendMigration.version,\n\t\t\t)\n\n\t\t\tconst valid = await this.migrationsValidator.validate(\n\t\t\t\tprevSchema,\n\t\t\t\t[...(newMigrationResult ? [newMigrationResult.migration] : []), ...followingMigrations],\n\t\t\t)\n\t\t\tif (!valid) {\n\t\t\t\tthrow `Cannot amend migration`\n\t\t\t}\n\n\t\t\tthis.migrationPrinter.printMigrationDescription(\n\t\t\t\tintermediateResult.initialSchema,\n\t\t\t\tintermediateResult.migration,\n\t\t\t\t{ noSql: true },\n\t\t\t)\n\t\t\tconsole.log(`Amending ${amendMigration.name}`)\n\t\t\tif (!(await this.shouldContinue(input))) {\n\t\t\t\tconsole.log('Aborting')\n\t\t\t\treturn 1\n\t\t\t}\n\t\t\tconst systemClient = this.systemApiClientProvider.get()\n\t\t\tawait systemClient.migrate([intermediateResult.migration], force)\n\t\t\tawait systemClient.migrationDelete(intermediateResult.migration.version)\n\n\t\t\tif (!newMigrationResult) {\n\t\t\t\tawait this.migrationCreator.removeMigration(amendMigration.name)\n\t\t\t\tawait systemClient.migrationDelete(amendMigration.version)\n\t\t\t\tconsole.log('Latest migration was removed')\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tconst newMigration = {\n\t\t\t\tname: amendMigration.name,\n\t\t\t\tversion: amendMigration.version,\n\t\t\t\tformatVersion: newMigrationResult.migration.formatVersion,\n\t\t\t\tmodifications: newMigrationResult.migration.modifications,\n\t\t\t}\n\t\t\tawait this.migrationCreator.saveMigration(newMigration)\n\t\t\tawait systemClient.migrationModify(amendMigration.version, newMigration)\n\n\t\t\treturn 0\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidSchemaException) {\n\t\t\t\tprintValidationErrors(e.validationErrors, e.message)\n\t\t\t\treturn 1\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n\n\tprivate async shouldContinue(input: Input<{}, { yes?: true }>): Promise<boolean> {\n\t\tconst yes = input.getOption('yes')\n\t\tif (yes) {\n\t\t\treturn true\n\t\t}\n\t\tconst { action } = await prompts({\n\t\t\ttype: 'select',\n\t\t\tname: 'action',\n\t\t\tmessage: 'Do you want to continue?',\n\t\t\tchoices: [\n\t\t\t\t{ value: 'yes', title: 'Yes' },\n\t\t\t\t{ value: 'no', title: 'Abort' },\n\t\t\t],\n\t\t})\n\t\treturn action === 'yes'\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MigrationAmendCommand.js","sources":["../../../../../../packages/cli/src/commands/migrations/MigrationAmendCommand.ts"],"sourcesContent":["import { Command, CommandConfiguration, Input } from '@contember/cli-common'\nimport { InvalidSchemaException, SchemaMigrator } from '@contember/schema-migrations'\nimport prompts from 'prompts'\nimport { emptySchema } from '@contember/schema-utils'\nimport { MigrationCreator, MigrationsResolver, SchemaVersionBuilder, SystemClient } from '@contember/migrations-client'\nimport { MigrationsStatusFacade } from '../../lib/migrations/MigrationsStatusFacade'\nimport { SchemaLoader } from '../../lib/schema/SchemaLoader'\nimport { MigrationsValidator } from '../../lib/migrations/MigrationsValidator'\nimport { MigrationPrinter } from '../../lib/migrations/MigrationPrinter'\nimport { printValidationErrors } from '../../lib/schema/SchemaValidationPrinter'\nimport { SystemClientProvider } from '../../lib/SystemClientProvider'\n\ntype Args = {\n\tmigration?: string\n}\n\ntype Options = {\n\tyes?: true\n\tforce: boolean\n}\n\nexport class MigrationAmendCommand extends Command<Args, Options> {\n\tconstructor(\n\t\tprivate readonly migrationsResolver: MigrationsResolver,\n\t\tprivate readonly systemApiClientProvider: SystemClientProvider,\n\t\tprivate readonly migrationsStatusFacade: MigrationsStatusFacade,\n\t\tprivate readonly schemaLoader: SchemaLoader,\n\t\tprivate readonly schemaVersionBuilder: SchemaVersionBuilder,\n\t\tprivate readonly migrationCreator: MigrationCreator,\n\t\tprivate readonly migrationsValidator: MigrationsValidator,\n\t\tprivate readonly migrationPrinter: MigrationPrinter,\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t) {\n\t\tsuper()\n\t}\n\n\tprotected configure(configuration: CommandConfiguration<Args, Options>): void {\n\t\tconfiguration.description('Amends latest migration')\n\t\tconfiguration.argument('migration').optional()\n\t\tconfiguration.option('force').description('Ignore migrations order and missing migrations (dev only)')\n\t\tconfiguration //\n\t\t\t.option('yes')\n\t\t\t.valueNone()\n\t\t\t.description('Do not ask for confirmation.')\n\t}\n\n\tprotected async execute(input: Input<Args, Options>): Promise<number> {\n\t\tconst migrationName = input.getArgument('migration')\n\t\tconst amendMigration = migrationName\n\t\t\t? await this.migrationsResolver.findSchemaMigrationByVersion(migrationName)\n\t\t\t: await this.migrationsResolver.findLatestSchemaMigration()\n\t\tif (!amendMigration) {\n\t\t\tthrow 'No migration to amend'\n\t\t}\n\t\tconst force = input.getOption('force')\n\t\tconst status = await this.migrationsStatusFacade.resolveMigrationsStatus({ force })\n\t\tif (status.migrationsToExecute.length > 0) {\n\t\t\tthrow `Some migrations are not executed. Unable to amend.`\n\t\t}\n\n\n\t\tconst schema = await this.schemaLoader.loadSchema()\n\t\ttry {\n\t\t\tconst initialSchema = await this.schemaVersionBuilder.buildSchema()\n\t\t\tconst intermediateResult = await this.migrationCreator.prepareMigration(initialSchema, schema, '')\n\t\t\tif (intermediateResult === null) {\n\t\t\t\tconsole.log('Nothing to do')\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tif (amendMigration.formatVersion !== intermediateResult.migration.formatVersion) {\n\t\t\t\tthrow 'Incompatible migration format version'\n\t\t\t}\n\t\t\tconst prevSchema = await this.schemaVersionBuilder.buildSchemaAdvanced(\n\t\t\t\temptySchema,\n\t\t\t\tversion => version < amendMigration.version,\n\t\t\t)\n\t\t\tconst newSchema = await this.schemaMigrator.applyModifications(\n\t\t\t\tprevSchema,\n\t\t\t\t[...amendMigration.modifications, ...intermediateResult.migration.modifications],\n\t\t\t\tamendMigration.formatVersion,\n\t\t\t)\n\t\t\tconst newMigrationResult = await this.migrationCreator.prepareMigration(prevSchema, newSchema, '')\n\t\t\tconst followingMigrations = (await this.migrationsResolver.getSchemaMigrations()).filter(\n\t\t\t\tit => it.version > amendMigration.version,\n\t\t\t)\n\n\t\t\tconst valid = await this.migrationsValidator.validate(\n\t\t\t\tprevSchema,\n\t\t\t\t[...(newMigrationResult ? [newMigrationResult.migration] : []), ...followingMigrations],\n\t\t\t)\n\t\t\tif (!valid) {\n\t\t\t\tthrow `Cannot amend migration`\n\t\t\t}\n\n\t\t\tthis.migrationPrinter.printMigrationDescription(\n\t\t\t\tintermediateResult.initialSchema,\n\t\t\t\tintermediateResult.migration,\n\t\t\t\t{ noSql: true },\n\t\t\t)\n\t\t\tconsole.log(`Amending ${amendMigration.name}`)\n\t\t\tif (!(await this.shouldContinue(input))) {\n\t\t\t\tconsole.log('Aborting')\n\t\t\t\treturn 1\n\t\t\t}\n\t\t\tconst systemClient = this.systemApiClientProvider.get()\n\t\t\tawait systemClient.migrate([intermediateResult.migration], force)\n\t\t\tawait systemClient.migrationDelete(intermediateResult.migration.version)\n\n\t\t\tif (!newMigrationResult && await this.shouldRemove()) {\n\t\t\t\tawait this.migrationCreator.removeMigration(amendMigration.name)\n\t\t\t\tawait systemClient.migrationDelete(amendMigration.version)\n\t\t\t\tconsole.log('Latest migration was removed')\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tconst newMigration = {\n\t\t\t\tname: amendMigration.name,\n\t\t\t\tversion: amendMigration.version,\n\t\t\t\tformatVersion: newMigrationResult?.migration.formatVersion ?? amendMigration.formatVersion,\n\t\t\t\tmodifications: newMigrationResult?.migration.modifications ?? [],\n\t\t\t}\n\t\t\tawait this.migrationCreator.saveMigration(newMigration)\n\t\t\tawait systemClient.migrationModify(amendMigration.version, newMigration)\n\n\t\t\treturn 0\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidSchemaException) {\n\t\t\t\tprintValidationErrors(e.validationErrors, e.message)\n\t\t\t\treturn 1\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n\n\tprivate async shouldContinue(input: Input<{}, { yes?: true }>): Promise<boolean> {\n\t\tconst yes = input.getOption('yes')\n\t\tif (yes) {\n\t\t\treturn true\n\t\t}\n\t\tconst { action } = await prompts({\n\t\t\ttype: 'select',\n\t\t\tname: 'action',\n\t\t\tmessage: 'Do you want to continue?',\n\t\t\tchoices: [\n\t\t\t\t{ value: 'yes', title: 'Yes' },\n\t\t\t\t{ value: 'no', title: 'Abort' },\n\t\t\t],\n\t\t})\n\t\treturn action === 'yes'\n\t}\n\n\tprivate async shouldRemove(): Promise<boolean> {\n\t\tconst { action } = await prompts({\n\t\t\ttype: 'select',\n\t\t\tname: 'action',\n\t\t\tmessage: 'The amendment results in a no-op migration because the changes introduced by the latest migration were reverted.\\nYou can choose to remove the latest migration or to modify it so it is empty.',\n\t\t\tchoices: [\n\t\t\t\t{ value: 'remove', title: 'Remove latest migration' },\n\t\t\t\t{ value: 'keep', title: 'Keep latest migration and make it empty' },\n\t\t\t],\n\t\t})\n\t\treturn action === 'remove'\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -67,7 +67,7 @@ class MigrationDiffCommand extends cliCommon.Command {
67
67
  if (shouldExecute) {
68
68
  await this.migrationExecutorFacade.execute({
69
69
  force: false,
70
- requireConfirmation: !yes
70
+ requireConfirmation: (migrations) => migrations.length !== 1 && !yes
71
71
  });
72
72
  }
73
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationDiffCommand.cjs","sources":["../../../../../../packages/cli/src/commands/migrations/MigrationDiffCommand.ts"],"sourcesContent":["import { Command, CommandConfiguration, Input } from '@contember/cli-common'\nimport { InvalidSchemaException } from '@contember/schema-migrations'\nimport prompts from 'prompts'\nimport { MigrationCreator, SchemaVersionBuilder } from '@contember/migrations-client'\nimport { SchemaLoader } from '../../lib/schema/SchemaLoader'\nimport { MigrationPrinter } from '../../lib/migrations/MigrationPrinter'\nimport { MigrationExecutionFacade } from '../../lib/migrations/MigrationExecutionFacade'\nimport { printValidationErrors } from '../../lib/schema/SchemaValidationPrinter'\n\ntype Args = {\n\tmigrationName: string\n}\n\ntype Options = {\n\texecute?: true\n\tyes?: true\n\t'skip-initial-schema-validation'?: true\n}\n\nexport class MigrationDiffCommand extends Command<Args, Options> {\n\tconstructor(\n\t\tprivate readonly schemaLoader: SchemaLoader,\n\t\tprivate readonly schemaVersionBuilder: SchemaVersionBuilder,\n\t\tprivate readonly migrationCreator: MigrationCreator,\n\t\tprivate readonly migrationPrinter: MigrationPrinter,\n\t\tprivate readonly migrationExecutorFacade: MigrationExecutionFacade,\n\t) {\n\t\tsuper()\n\t}\n\n\tprotected configure(configuration: CommandConfiguration<Args, Options>): void {\n\t\tconfiguration.description('Creates schema migration diff')\n\t\tconfiguration.argument('migrationName')\n\t\tconfiguration.option('execute').valueNone()\n\t\tconfiguration //\n\t\t\t.option('yes')\n\t\t\t.valueNone()\n\t\t\t.description('Do not ask for confirmation.')\n\n\t\tconfiguration.option('skip-initial-schema-validation')\n\t}\n\n\tprotected async execute(input: Input<Args, Options>): Promise<void> {\n\t\tconst migrationName = input.getArgument('migrationName')\n\t\tlet shouldExecute = input.getOption('execute')\n\t\tconst yes = input.getOption('yes')\n\t\tconst skipInitialSchemaValidation = input.getOption('skip-initial-schema-validation') === true\n\n\t\tconst schema = await this.schemaLoader.loadSchema()\n\t\ttry {\n\t\t\tconst initialSchema = await this.schemaVersionBuilder.buildSchema()\n\t\t\tconst result = await this.migrationCreator.prepareMigration(initialSchema, schema, migrationName, {\n\t\t\t\tskipInitialSchemaValidation: skipInitialSchemaValidation,\n\t\t\t})\n\t\t\tif (result === null) {\n\t\t\t\tconsole.log('Nothing to do')\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.migrationPrinter.printMigrationDescription(result.initialSchema, result.migration, { noSql: true })\n\n\n\t\t\tif (!yes) {\n\t\t\t\tconst { action } = await prompts({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tname: 'action',\n\t\t\t\t\tmessage: 'Do you want to continue?',\n\t\t\t\t\tchoices: [\n\t\t\t\t\t\t{ value: 'yes', title: 'Yes' },\n\t\t\t\t\t\t...(!shouldExecute ? [{ value: 'execute', title: 'Yes and execute immediately' }] : []),\n\t\t\t\t\t\t{ value: 'no', title: 'Abort' },\n\t\t\t\t\t],\n\t\t\t\t})\n\t\t\t\tif (!action || action === 'no') {\n\t\t\t\t\tconsole.log('Aborting')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (action === 'execute') {\n\t\t\t\t\tshouldExecute = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst filename = await this.migrationCreator.saveMigration(result.migration)\n\n\t\t\tconsole.log(`${filename} created`)\n\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidSchemaException) {\n\t\t\t\tprintValidationErrors(e.validationErrors, e.message)\n\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\n\t\tif (shouldExecute) {\n\t\t\tawait this.migrationExecutorFacade.execute({\n\t\t\t\tforce: false,\n\t\t\t\trequireConfirmation: !yes,\n\t\t\t})\n\t\t}\n\t}\n}\n"],"names":["Command","InvalidSchemaException","printValidationErrors"],"mappings":";;;;;;AAmBO,MAAM,6BAA6BA,UAAAA,QAAuB;AAAA,EAChE,YACkB,cACA,sBACA,kBACA,kBACA,yBAChB;AACK,UAAA;AANW,SAAA,eAAA;AACA,SAAA,uBAAA;AACA,SAAA,mBAAA;AACA,SAAA,mBAAA;AACA,SAAA,0BAAA;AAAA,EAAA;AAAA,EAKR,UAAU,eAA0D;AAC7E,kBAAc,YAAY,+BAA+B;AACzD,kBAAc,SAAS,eAAe;AACxB,kBAAA,OAAO,SAAS,EAAE,UAAU;AAC1C,kBACE,OAAO,KAAK,EACZ,UAAU,EACV,YAAY,8BAA8B;AAE5C,kBAAc,OAAO,gCAAgC;AAAA,EAAA;AAAA,EAGtD,MAAgB,QAAQ,OAA4C;AAC7D,UAAA,gBAAgB,MAAM,YAAY,eAAe;AACnD,QAAA,gBAAgB,MAAM,UAAU,SAAS;AACvC,UAAA,MAAM,MAAM,UAAU,KAAK;AACjC,UAAM,8BAA8B,MAAM,UAAU,gCAAgC,MAAM;AAE1F,UAAM,SAAS,MAAM,KAAK,aAAa,WAAW;AAC9C,QAAA;AACH,YAAM,gBAAgB,MAAM,KAAK,qBAAqB,YAAY;AAClE,YAAM,SAAS,MAAM,KAAK,iBAAiB,iBAAiB,eAAe,QAAQ,eAAe;AAAA,QACjG;AAAA,MAAA,CACA;AACD,UAAI,WAAW,MAAM;AACpB,gBAAQ,IAAI,eAAe;AAC3B;AAAA,MAAA;AAEI,WAAA,iBAAiB,0BAA0B,OAAO,eAAe,OAAO,WAAW,EAAE,OAAO,MAAM;AAGvG,UAAI,CAAC,KAAK;AACT,cAAM,EAAE,WAAW,MAAM,QAAQ;AAAA,UAChC,MAAM;AAAA,UACN,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SAAS;AAAA,YACR,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,YAC7B,GAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,WAAW,OAAO,8BAA+B,CAAA,IAAI,CAAC;AAAA,YACrF,EAAE,OAAO,MAAM,OAAO,QAAQ;AAAA,UAAA;AAAA,QAC/B,CACA;AACG,YAAA,CAAC,UAAU,WAAW,MAAM;AAC/B,kBAAQ,IAAI,UAAU;AACtB;AAAA,QAAA;AAED,YAAI,WAAW,WAAW;AACT,0BAAA;AAAA,QAAA;AAAA,MACjB;AAGD,YAAM,WAAW,MAAM,KAAK,iBAAiB,cAAc,OAAO,SAAS;AAEnE,cAAA,IAAI,GAAG,QAAQ,UAAU;AAAA,aAEzB,GAAG;AACX,UAAI,aAAaC,iBAAAA,wBAAwB;AAClBC,gCAAAA,sBAAA,EAAE,kBAAkB,EAAE,OAAO;AAEnD;AAAA,MAAA;AAEK,YAAA;AAAA,IAAA;AAGP,QAAI,eAAe;AACZ,YAAA,KAAK,wBAAwB,QAAQ;AAAA,QAC1C,OAAO;AAAA,QACP,qBAAqB,CAAC;AAAA,MAAA,CACtB;AAAA,IAAA;AAAA,EACF;AAEF;;"}
1
+ {"version":3,"file":"MigrationDiffCommand.cjs","sources":["../../../../../../packages/cli/src/commands/migrations/MigrationDiffCommand.ts"],"sourcesContent":["import { Command, CommandConfiguration, Input } from '@contember/cli-common'\nimport { InvalidSchemaException } from '@contember/schema-migrations'\nimport prompts from 'prompts'\nimport { MigrationCreator, SchemaVersionBuilder } from '@contember/migrations-client'\nimport { SchemaLoader } from '../../lib/schema/SchemaLoader'\nimport { MigrationPrinter } from '../../lib/migrations/MigrationPrinter'\nimport { MigrationExecutionFacade } from '../../lib/migrations/MigrationExecutionFacade'\nimport { printValidationErrors } from '../../lib/schema/SchemaValidationPrinter'\n\ntype Args = {\n\tmigrationName: string\n}\n\ntype Options = {\n\texecute?: true\n\tyes?: true\n\t'skip-initial-schema-validation'?: true\n}\n\nexport class MigrationDiffCommand extends Command<Args, Options> {\n\tconstructor(\n\t\tprivate readonly schemaLoader: SchemaLoader,\n\t\tprivate readonly schemaVersionBuilder: SchemaVersionBuilder,\n\t\tprivate readonly migrationCreator: MigrationCreator,\n\t\tprivate readonly migrationPrinter: MigrationPrinter,\n\t\tprivate readonly migrationExecutorFacade: MigrationExecutionFacade,\n\t) {\n\t\tsuper()\n\t}\n\n\tprotected configure(configuration: CommandConfiguration<Args, Options>): void {\n\t\tconfiguration.description('Creates schema migration diff')\n\t\tconfiguration.argument('migrationName')\n\t\tconfiguration.option('execute').valueNone()\n\t\tconfiguration //\n\t\t\t.option('yes')\n\t\t\t.valueNone()\n\t\t\t.description('Do not ask for confirmation.')\n\n\t\tconfiguration.option('skip-initial-schema-validation')\n\t}\n\n\tprotected async execute(input: Input<Args, Options>): Promise<void> {\n\t\tconst migrationName = input.getArgument('migrationName')\n\t\tlet shouldExecute = input.getOption('execute')\n\t\tconst yes = input.getOption('yes')\n\t\tconst skipInitialSchemaValidation = input.getOption('skip-initial-schema-validation') === true\n\n\t\tconst schema = await this.schemaLoader.loadSchema()\n\t\ttry {\n\t\t\tconst initialSchema = await this.schemaVersionBuilder.buildSchema()\n\t\t\tconst result = await this.migrationCreator.prepareMigration(initialSchema, schema, migrationName, {\n\t\t\t\tskipInitialSchemaValidation: skipInitialSchemaValidation,\n\t\t\t})\n\t\t\tif (result === null) {\n\t\t\t\tconsole.log('Nothing to do')\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.migrationPrinter.printMigrationDescription(result.initialSchema, result.migration, { noSql: true })\n\n\n\t\t\tif (!yes) {\n\t\t\t\tconst { action } = await prompts({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tname: 'action',\n\t\t\t\t\tmessage: 'Do you want to continue?',\n\t\t\t\t\tchoices: [\n\t\t\t\t\t\t{ value: 'yes', title: 'Yes' },\n\t\t\t\t\t\t...(!shouldExecute ? [{ value: 'execute', title: 'Yes and execute immediately' }] : []),\n\t\t\t\t\t\t{ value: 'no', title: 'Abort' },\n\t\t\t\t\t],\n\t\t\t\t})\n\t\t\t\tif (!action || action === 'no') {\n\t\t\t\t\tconsole.log('Aborting')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (action === 'execute') {\n\t\t\t\t\tshouldExecute = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst filename = await this.migrationCreator.saveMigration(result.migration)\n\n\t\t\tconsole.log(`${filename} created`)\n\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidSchemaException) {\n\t\t\t\tprintValidationErrors(e.validationErrors, e.message)\n\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\n\t\tif (shouldExecute) {\n\t\t\tawait this.migrationExecutorFacade.execute({\n\t\t\t\tforce: false,\n\t\t\t\trequireConfirmation: migrations => migrations.length !== 1 && !yes,\n\t\t\t})\n\t\t}\n\t}\n}\n"],"names":["Command","InvalidSchemaException","printValidationErrors"],"mappings":";;;;;;AAmBO,MAAM,6BAA6BA,UAAAA,QAAuB;AAAA,EAChE,YACkB,cACA,sBACA,kBACA,kBACA,yBAChB;AACK,UAAA;AANW,SAAA,eAAA;AACA,SAAA,uBAAA;AACA,SAAA,mBAAA;AACA,SAAA,mBAAA;AACA,SAAA,0BAAA;AAAA,EAAA;AAAA,EAKR,UAAU,eAA0D;AAC7E,kBAAc,YAAY,+BAA+B;AACzD,kBAAc,SAAS,eAAe;AACxB,kBAAA,OAAO,SAAS,EAAE,UAAU;AAC1C,kBACE,OAAO,KAAK,EACZ,UAAU,EACV,YAAY,8BAA8B;AAE5C,kBAAc,OAAO,gCAAgC;AAAA,EAAA;AAAA,EAGtD,MAAgB,QAAQ,OAA4C;AAC7D,UAAA,gBAAgB,MAAM,YAAY,eAAe;AACnD,QAAA,gBAAgB,MAAM,UAAU,SAAS;AACvC,UAAA,MAAM,MAAM,UAAU,KAAK;AACjC,UAAM,8BAA8B,MAAM,UAAU,gCAAgC,MAAM;AAE1F,UAAM,SAAS,MAAM,KAAK,aAAa,WAAW;AAC9C,QAAA;AACH,YAAM,gBAAgB,MAAM,KAAK,qBAAqB,YAAY;AAClE,YAAM,SAAS,MAAM,KAAK,iBAAiB,iBAAiB,eAAe,QAAQ,eAAe;AAAA,QACjG;AAAA,MAAA,CACA;AACD,UAAI,WAAW,MAAM;AACpB,gBAAQ,IAAI,eAAe;AAC3B;AAAA,MAAA;AAEI,WAAA,iBAAiB,0BAA0B,OAAO,eAAe,OAAO,WAAW,EAAE,OAAO,MAAM;AAGvG,UAAI,CAAC,KAAK;AACT,cAAM,EAAE,WAAW,MAAM,QAAQ;AAAA,UAChC,MAAM;AAAA,UACN,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SAAS;AAAA,YACR,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,YAC7B,GAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,WAAW,OAAO,8BAA+B,CAAA,IAAI,CAAC;AAAA,YACrF,EAAE,OAAO,MAAM,OAAO,QAAQ;AAAA,UAAA;AAAA,QAC/B,CACA;AACG,YAAA,CAAC,UAAU,WAAW,MAAM;AAC/B,kBAAQ,IAAI,UAAU;AACtB;AAAA,QAAA;AAED,YAAI,WAAW,WAAW;AACT,0BAAA;AAAA,QAAA;AAAA,MACjB;AAGD,YAAM,WAAW,MAAM,KAAK,iBAAiB,cAAc,OAAO,SAAS;AAEnE,cAAA,IAAI,GAAG,QAAQ,UAAU;AAAA,aAEzB,GAAG;AACX,UAAI,aAAaC,iBAAAA,wBAAwB;AAClBC,gCAAAA,sBAAA,EAAE,kBAAkB,EAAE,OAAO;AAEnD;AAAA,MAAA;AAEK,YAAA;AAAA,IAAA;AAGP,QAAI,eAAe;AACZ,YAAA,KAAK,wBAAwB,QAAQ;AAAA,QAC1C,OAAO;AAAA,QACP,qBAAqB,CAAA,eAAc,WAAW,WAAW,KAAK,CAAC;AAAA,MAAA,CAC/D;AAAA,IAAA;AAAA,EACF;AAEF;;"}
@@ -65,7 +65,7 @@ class MigrationDiffCommand extends Command {
65
65
  if (shouldExecute) {
66
66
  await this.migrationExecutorFacade.execute({
67
67
  force: false,
68
- requireConfirmation: !yes
68
+ requireConfirmation: (migrations) => migrations.length !== 1 && !yes
69
69
  });
70
70
  }
71
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationDiffCommand.js","sources":["../../../../../../packages/cli/src/commands/migrations/MigrationDiffCommand.ts"],"sourcesContent":["import { Command, CommandConfiguration, Input } from '@contember/cli-common'\nimport { InvalidSchemaException } from '@contember/schema-migrations'\nimport prompts from 'prompts'\nimport { MigrationCreator, SchemaVersionBuilder } from '@contember/migrations-client'\nimport { SchemaLoader } from '../../lib/schema/SchemaLoader'\nimport { MigrationPrinter } from '../../lib/migrations/MigrationPrinter'\nimport { MigrationExecutionFacade } from '../../lib/migrations/MigrationExecutionFacade'\nimport { printValidationErrors } from '../../lib/schema/SchemaValidationPrinter'\n\ntype Args = {\n\tmigrationName: string\n}\n\ntype Options = {\n\texecute?: true\n\tyes?: true\n\t'skip-initial-schema-validation'?: true\n}\n\nexport class MigrationDiffCommand extends Command<Args, Options> {\n\tconstructor(\n\t\tprivate readonly schemaLoader: SchemaLoader,\n\t\tprivate readonly schemaVersionBuilder: SchemaVersionBuilder,\n\t\tprivate readonly migrationCreator: MigrationCreator,\n\t\tprivate readonly migrationPrinter: MigrationPrinter,\n\t\tprivate readonly migrationExecutorFacade: MigrationExecutionFacade,\n\t) {\n\t\tsuper()\n\t}\n\n\tprotected configure(configuration: CommandConfiguration<Args, Options>): void {\n\t\tconfiguration.description('Creates schema migration diff')\n\t\tconfiguration.argument('migrationName')\n\t\tconfiguration.option('execute').valueNone()\n\t\tconfiguration //\n\t\t\t.option('yes')\n\t\t\t.valueNone()\n\t\t\t.description('Do not ask for confirmation.')\n\n\t\tconfiguration.option('skip-initial-schema-validation')\n\t}\n\n\tprotected async execute(input: Input<Args, Options>): Promise<void> {\n\t\tconst migrationName = input.getArgument('migrationName')\n\t\tlet shouldExecute = input.getOption('execute')\n\t\tconst yes = input.getOption('yes')\n\t\tconst skipInitialSchemaValidation = input.getOption('skip-initial-schema-validation') === true\n\n\t\tconst schema = await this.schemaLoader.loadSchema()\n\t\ttry {\n\t\t\tconst initialSchema = await this.schemaVersionBuilder.buildSchema()\n\t\t\tconst result = await this.migrationCreator.prepareMigration(initialSchema, schema, migrationName, {\n\t\t\t\tskipInitialSchemaValidation: skipInitialSchemaValidation,\n\t\t\t})\n\t\t\tif (result === null) {\n\t\t\t\tconsole.log('Nothing to do')\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.migrationPrinter.printMigrationDescription(result.initialSchema, result.migration, { noSql: true })\n\n\n\t\t\tif (!yes) {\n\t\t\t\tconst { action } = await prompts({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tname: 'action',\n\t\t\t\t\tmessage: 'Do you want to continue?',\n\t\t\t\t\tchoices: [\n\t\t\t\t\t\t{ value: 'yes', title: 'Yes' },\n\t\t\t\t\t\t...(!shouldExecute ? [{ value: 'execute', title: 'Yes and execute immediately' }] : []),\n\t\t\t\t\t\t{ value: 'no', title: 'Abort' },\n\t\t\t\t\t],\n\t\t\t\t})\n\t\t\t\tif (!action || action === 'no') {\n\t\t\t\t\tconsole.log('Aborting')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (action === 'execute') {\n\t\t\t\t\tshouldExecute = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst filename = await this.migrationCreator.saveMigration(result.migration)\n\n\t\t\tconsole.log(`${filename} created`)\n\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidSchemaException) {\n\t\t\t\tprintValidationErrors(e.validationErrors, e.message)\n\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\n\t\tif (shouldExecute) {\n\t\t\tawait this.migrationExecutorFacade.execute({\n\t\t\t\tforce: false,\n\t\t\t\trequireConfirmation: !yes,\n\t\t\t})\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;AAmBO,MAAM,6BAA6B,QAAuB;AAAA,EAChE,YACkB,cACA,sBACA,kBACA,kBACA,yBAChB;AACK,UAAA;AANW,SAAA,eAAA;AACA,SAAA,uBAAA;AACA,SAAA,mBAAA;AACA,SAAA,mBAAA;AACA,SAAA,0BAAA;AAAA,EAAA;AAAA,EAKR,UAAU,eAA0D;AAC7E,kBAAc,YAAY,+BAA+B;AACzD,kBAAc,SAAS,eAAe;AACxB,kBAAA,OAAO,SAAS,EAAE,UAAU;AAC1C,kBACE,OAAO,KAAK,EACZ,UAAU,EACV,YAAY,8BAA8B;AAE5C,kBAAc,OAAO,gCAAgC;AAAA,EAAA;AAAA,EAGtD,MAAgB,QAAQ,OAA4C;AAC7D,UAAA,gBAAgB,MAAM,YAAY,eAAe;AACnD,QAAA,gBAAgB,MAAM,UAAU,SAAS;AACvC,UAAA,MAAM,MAAM,UAAU,KAAK;AACjC,UAAM,8BAA8B,MAAM,UAAU,gCAAgC,MAAM;AAE1F,UAAM,SAAS,MAAM,KAAK,aAAa,WAAW;AAC9C,QAAA;AACH,YAAM,gBAAgB,MAAM,KAAK,qBAAqB,YAAY;AAClE,YAAM,SAAS,MAAM,KAAK,iBAAiB,iBAAiB,eAAe,QAAQ,eAAe;AAAA,QACjG;AAAA,MAAA,CACA;AACD,UAAI,WAAW,MAAM;AACpB,gBAAQ,IAAI,eAAe;AAC3B;AAAA,MAAA;AAEI,WAAA,iBAAiB,0BAA0B,OAAO,eAAe,OAAO,WAAW,EAAE,OAAO,MAAM;AAGvG,UAAI,CAAC,KAAK;AACT,cAAM,EAAE,WAAW,MAAM,QAAQ;AAAA,UAChC,MAAM;AAAA,UACN,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SAAS;AAAA,YACR,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,YAC7B,GAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,WAAW,OAAO,8BAA+B,CAAA,IAAI,CAAC;AAAA,YACrF,EAAE,OAAO,MAAM,OAAO,QAAQ;AAAA,UAAA;AAAA,QAC/B,CACA;AACG,YAAA,CAAC,UAAU,WAAW,MAAM;AAC/B,kBAAQ,IAAI,UAAU;AACtB;AAAA,QAAA;AAED,YAAI,WAAW,WAAW;AACT,0BAAA;AAAA,QAAA;AAAA,MACjB;AAGD,YAAM,WAAW,MAAM,KAAK,iBAAiB,cAAc,OAAO,SAAS;AAEnE,cAAA,IAAI,GAAG,QAAQ,UAAU;AAAA,aAEzB,GAAG;AACX,UAAI,aAAa,wBAAwB;AAClB,8BAAA,EAAE,kBAAkB,EAAE,OAAO;AAEnD;AAAA,MAAA;AAEK,YAAA;AAAA,IAAA;AAGP,QAAI,eAAe;AACZ,YAAA,KAAK,wBAAwB,QAAQ;AAAA,QAC1C,OAAO;AAAA,QACP,qBAAqB,CAAC;AAAA,MAAA,CACtB;AAAA,IAAA;AAAA,EACF;AAEF;"}
1
+ {"version":3,"file":"MigrationDiffCommand.js","sources":["../../../../../../packages/cli/src/commands/migrations/MigrationDiffCommand.ts"],"sourcesContent":["import { Command, CommandConfiguration, Input } from '@contember/cli-common'\nimport { InvalidSchemaException } from '@contember/schema-migrations'\nimport prompts from 'prompts'\nimport { MigrationCreator, SchemaVersionBuilder } from '@contember/migrations-client'\nimport { SchemaLoader } from '../../lib/schema/SchemaLoader'\nimport { MigrationPrinter } from '../../lib/migrations/MigrationPrinter'\nimport { MigrationExecutionFacade } from '../../lib/migrations/MigrationExecutionFacade'\nimport { printValidationErrors } from '../../lib/schema/SchemaValidationPrinter'\n\ntype Args = {\n\tmigrationName: string\n}\n\ntype Options = {\n\texecute?: true\n\tyes?: true\n\t'skip-initial-schema-validation'?: true\n}\n\nexport class MigrationDiffCommand extends Command<Args, Options> {\n\tconstructor(\n\t\tprivate readonly schemaLoader: SchemaLoader,\n\t\tprivate readonly schemaVersionBuilder: SchemaVersionBuilder,\n\t\tprivate readonly migrationCreator: MigrationCreator,\n\t\tprivate readonly migrationPrinter: MigrationPrinter,\n\t\tprivate readonly migrationExecutorFacade: MigrationExecutionFacade,\n\t) {\n\t\tsuper()\n\t}\n\n\tprotected configure(configuration: CommandConfiguration<Args, Options>): void {\n\t\tconfiguration.description('Creates schema migration diff')\n\t\tconfiguration.argument('migrationName')\n\t\tconfiguration.option('execute').valueNone()\n\t\tconfiguration //\n\t\t\t.option('yes')\n\t\t\t.valueNone()\n\t\t\t.description('Do not ask for confirmation.')\n\n\t\tconfiguration.option('skip-initial-schema-validation')\n\t}\n\n\tprotected async execute(input: Input<Args, Options>): Promise<void> {\n\t\tconst migrationName = input.getArgument('migrationName')\n\t\tlet shouldExecute = input.getOption('execute')\n\t\tconst yes = input.getOption('yes')\n\t\tconst skipInitialSchemaValidation = input.getOption('skip-initial-schema-validation') === true\n\n\t\tconst schema = await this.schemaLoader.loadSchema()\n\t\ttry {\n\t\t\tconst initialSchema = await this.schemaVersionBuilder.buildSchema()\n\t\t\tconst result = await this.migrationCreator.prepareMigration(initialSchema, schema, migrationName, {\n\t\t\t\tskipInitialSchemaValidation: skipInitialSchemaValidation,\n\t\t\t})\n\t\t\tif (result === null) {\n\t\t\t\tconsole.log('Nothing to do')\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.migrationPrinter.printMigrationDescription(result.initialSchema, result.migration, { noSql: true })\n\n\n\t\t\tif (!yes) {\n\t\t\t\tconst { action } = await prompts({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tname: 'action',\n\t\t\t\t\tmessage: 'Do you want to continue?',\n\t\t\t\t\tchoices: [\n\t\t\t\t\t\t{ value: 'yes', title: 'Yes' },\n\t\t\t\t\t\t...(!shouldExecute ? [{ value: 'execute', title: 'Yes and execute immediately' }] : []),\n\t\t\t\t\t\t{ value: 'no', title: 'Abort' },\n\t\t\t\t\t],\n\t\t\t\t})\n\t\t\t\tif (!action || action === 'no') {\n\t\t\t\t\tconsole.log('Aborting')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (action === 'execute') {\n\t\t\t\t\tshouldExecute = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst filename = await this.migrationCreator.saveMigration(result.migration)\n\n\t\t\tconsole.log(`${filename} created`)\n\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidSchemaException) {\n\t\t\t\tprintValidationErrors(e.validationErrors, e.message)\n\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\n\t\tif (shouldExecute) {\n\t\t\tawait this.migrationExecutorFacade.execute({\n\t\t\t\tforce: false,\n\t\t\t\trequireConfirmation: migrations => migrations.length !== 1 && !yes,\n\t\t\t})\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;AAmBO,MAAM,6BAA6B,QAAuB;AAAA,EAChE,YACkB,cACA,sBACA,kBACA,kBACA,yBAChB;AACK,UAAA;AANW,SAAA,eAAA;AACA,SAAA,uBAAA;AACA,SAAA,mBAAA;AACA,SAAA,mBAAA;AACA,SAAA,0BAAA;AAAA,EAAA;AAAA,EAKR,UAAU,eAA0D;AAC7E,kBAAc,YAAY,+BAA+B;AACzD,kBAAc,SAAS,eAAe;AACxB,kBAAA,OAAO,SAAS,EAAE,UAAU;AAC1C,kBACE,OAAO,KAAK,EACZ,UAAU,EACV,YAAY,8BAA8B;AAE5C,kBAAc,OAAO,gCAAgC;AAAA,EAAA;AAAA,EAGtD,MAAgB,QAAQ,OAA4C;AAC7D,UAAA,gBAAgB,MAAM,YAAY,eAAe;AACnD,QAAA,gBAAgB,MAAM,UAAU,SAAS;AACvC,UAAA,MAAM,MAAM,UAAU,KAAK;AACjC,UAAM,8BAA8B,MAAM,UAAU,gCAAgC,MAAM;AAE1F,UAAM,SAAS,MAAM,KAAK,aAAa,WAAW;AAC9C,QAAA;AACH,YAAM,gBAAgB,MAAM,KAAK,qBAAqB,YAAY;AAClE,YAAM,SAAS,MAAM,KAAK,iBAAiB,iBAAiB,eAAe,QAAQ,eAAe;AAAA,QACjG;AAAA,MAAA,CACA;AACD,UAAI,WAAW,MAAM;AACpB,gBAAQ,IAAI,eAAe;AAC3B;AAAA,MAAA;AAEI,WAAA,iBAAiB,0BAA0B,OAAO,eAAe,OAAO,WAAW,EAAE,OAAO,MAAM;AAGvG,UAAI,CAAC,KAAK;AACT,cAAM,EAAE,WAAW,MAAM,QAAQ;AAAA,UAChC,MAAM;AAAA,UACN,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SAAS;AAAA,YACR,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,YAC7B,GAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,WAAW,OAAO,8BAA+B,CAAA,IAAI,CAAC;AAAA,YACrF,EAAE,OAAO,MAAM,OAAO,QAAQ;AAAA,UAAA;AAAA,QAC/B,CACA;AACG,YAAA,CAAC,UAAU,WAAW,MAAM;AAC/B,kBAAQ,IAAI,UAAU;AACtB;AAAA,QAAA;AAED,YAAI,WAAW,WAAW;AACT,0BAAA;AAAA,QAAA;AAAA,MACjB;AAGD,YAAM,WAAW,MAAM,KAAK,iBAAiB,cAAc,OAAO,SAAS;AAEnE,cAAA,IAAI,GAAG,QAAQ,UAAU;AAAA,aAEzB,GAAG;AACX,UAAI,aAAa,wBAAwB;AAClB,8BAAA,EAAE,kBAAkB,EAAE,OAAO;AAEnD;AAAA,MAAA;AAEK,YAAA;AAAA,IAAA;AAGP,QAAI,eAAe;AACZ,YAAA,KAAK,wBAAwB,QAAQ;AAAA,QAC1C,OAAO;AAAA,QACP,qBAAqB,CAAA,eAAc,WAAW,WAAW,KAAK,CAAC;AAAA,MAAA,CAC/D;AAAA,IAAA;AAAA,EACF;AAEF;"}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const cliCommon = require("@contember/cli-common");
3
4
  const node_path = require("node:path");
4
5
  const node_url = require("node:url");
5
6
  var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
6
- const packageRoot = process.env.CONTEMBER_CLI_PACKAGE_ROOT || node_path.join(node_path.dirname(node_url.fileURLToPath(typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("cli/src/consts.cjs", document.baseURI).href)), "../");
7
+ const currentFilePath = node_path.dirname(node_url.fileURLToPath(typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("cli/src/consts.cjs", document.baseURI).href));
8
+ const packageRoot = process.env.CONTEMBER_CLI_PACKAGE_ROOT || cliCommon.findPackageRoot(currentFilePath);
7
9
  const contemberDockerImages = ["contember/engine", "contember/engine-ee", "contember/cli"];
8
10
  exports.contemberDockerImages = contemberDockerImages;
9
11
  exports.packageRoot = packageRoot;
@@ -1 +1 @@
1
- {"version":3,"file":"consts.cjs","sources":["../../../../packages/cli/src/consts.ts"],"sourcesContent":["import { join } from 'node:path'\nimport { dirname } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nexport const packageRoot = process.env.CONTEMBER_CLI_PACKAGE_ROOT || join(dirname(fileURLToPath(import.meta.url)), '../')\nexport const contemberDockerImages = ['contember/engine', 'contember/engine-ee', 'contember/cli']\n"],"names":["join","dirname","fileURLToPath"],"mappings":";;;;;AAGa,MAAA,cAAc,QAAQ,IAAI,8BAA8BA,UAAAA,KAAKC,UAAAA,QAAQC,SAAA,yQAA6B,CAAC,GAAG,KAAK;AACjH,MAAM,wBAAwB,CAAC,oBAAoB,uBAAuB,eAAe;;;"}
1
+ {"version":3,"file":"consts.cjs","sources":["../../../../packages/cli/src/consts.ts"],"sourcesContent":["import { findPackageRoot } from '@contember/cli-common'\nimport { dirname } from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst currentFilePath = dirname(fileURLToPath(import.meta.url))\nexport const packageRoot = process.env.CONTEMBER_CLI_PACKAGE_ROOT || findPackageRoot(currentFilePath)\nexport const contemberDockerImages = ['contember/engine', 'contember/engine-ee', 'contember/cli']\n"],"names":["dirname","fileURLToPath","findPackageRoot"],"mappings":";;;;;;AAIA,MAAM,kBAAkBA,UAAA,QAAQC,uBAAc,OAAA,aAAA,cAAA,QAAA,KAAA,EAAA,cAAA,UAAA,EAAA,OAAA,0BAAA,uBAAA,QAAA,YAAA,MAAA,YAAA,uBAAA,OAAA,IAAA,IAAA,sBAAA,SAAA,OAAA,EAAA,IAAe,CAAC;AACvD,MAAM,cAAc,QAAQ,IAAI,8BAA8BC,0BAAgB,eAAe;AAC7F,MAAM,wBAAwB,CAAC,oBAAoB,uBAAuB,eAAe;;;"}
@@ -1,6 +1,8 @@
1
- import { join, dirname } from "node:path";
1
+ import { findPackageRoot } from "@contember/cli-common";
2
+ import { dirname } from "node:path";
2
3
  import { fileURLToPath } from "node:url";
3
- const packageRoot = process.env.CONTEMBER_CLI_PACKAGE_ROOT || join(dirname(fileURLToPath(import.meta.url)), "../");
4
+ const currentFilePath = dirname(fileURLToPath(import.meta.url));
5
+ const packageRoot = process.env.CONTEMBER_CLI_PACKAGE_ROOT || findPackageRoot(currentFilePath);
4
6
  const contemberDockerImages = ["contember/engine", "contember/engine-ee", "contember/cli"];
5
7
  export {
6
8
  contemberDockerImages,
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sources":["../../../../packages/cli/src/consts.ts"],"sourcesContent":["import { join } from 'node:path'\nimport { dirname } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nexport const packageRoot = process.env.CONTEMBER_CLI_PACKAGE_ROOT || join(dirname(fileURLToPath(import.meta.url)), '../')\nexport const contemberDockerImages = ['contember/engine', 'contember/engine-ee', 'contember/cli']\n"],"names":[],"mappings":";;AAGa,MAAA,cAAc,QAAQ,IAAI,8BAA8B,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC,GAAG,KAAK;AACjH,MAAM,wBAAwB,CAAC,oBAAoB,uBAAuB,eAAe;"}
1
+ {"version":3,"file":"consts.js","sources":["../../../../packages/cli/src/consts.ts"],"sourcesContent":["import { findPackageRoot } from '@contember/cli-common'\nimport { dirname } from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst currentFilePath = dirname(fileURLToPath(import.meta.url))\nexport const packageRoot = process.env.CONTEMBER_CLI_PACKAGE_ROOT || findPackageRoot(currentFilePath)\nexport const contemberDockerImages = ['contember/engine', 'contember/engine-ee', 'contember/cli']\n"],"names":[],"mappings":";;;AAIA,MAAM,kBAAkB,QAAQ,cAAc,YAAY,GAAG,CAAC;AACvD,MAAM,cAAc,QAAQ,IAAI,8BAA8B,gBAAgB,eAAe;AAC7F,MAAM,wBAAwB,CAAC,oBAAoB,uBAAuB,eAAe;"}
@@ -73,7 +73,9 @@ const createContainer = ({ env, version, runtime, workspace }) => {
73
73
  new cliCommon.Pnpm(fs, commandRunner),
74
74
  new cliCommon.Npm(fs, commandRunner)
75
75
  ]);
76
- }).addService("dockerComposeManager", ({ workspace: workspace2, env: env2, fs, yamlHandler }) => new DockerComposeManager.DockerComposeManager(workspace2.baseDir, env2.dockerComposeFile, fs, yamlHandler)).addService("modificationHandlerFactory", () => new migrationsClient.ModificationHandlerFactory(migrationsClient.ModificationHandlerFactory.defaultFactoryMap)).addService("schemaMigrator", ({ modificationHandlerFactory }) => new migrationsClient.SchemaMigrator(modificationHandlerFactory)).addService("migrationsResolver", ({ migrationFilesManager }) => new migrationsClient.MigrationsResolver(migrationFilesManager)).addService("schemaVersionBuilder", ({ migrationsResolver, schemaMigrator }) => new migrationsClient.SchemaVersionBuilder(migrationsResolver, schemaMigrator)).addService("schemaDiffer", ({ schemaMigrator }) => new migrationsClient.SchemaDiffer(schemaMigrator)).addService("migrationCreator", ({ migrationFilesManager, schemaDiffer }) => new migrationsClient.MigrationCreator(migrationFilesManager, schemaDiffer, {
76
+ }).addService("dockerComposeManager", ({ workspace: workspace2, env: env2, fs, yamlHandler }) => new DockerComposeManager.DockerComposeManager(workspace2.baseDir, env2.dockerComposeFile, fs, yamlHandler)).addService("modificationHandlerFactory", () => new migrationsClient.ModificationHandlerFactory(migrationsClient.ModificationHandlerFactory.defaultFactoryMap)).addService("schemaMigrator", ({ modificationHandlerFactory }) => new migrationsClient.SchemaMigrator(modificationHandlerFactory)).addService("migrationsResolver", ({ migrationFilesManager }) => new migrationsClient.MigrationsResolver(migrationFilesManager)).addService("schemaVersionBuilder", ({ migrationsResolver, schemaMigrator }) => new migrationsClient.SchemaVersionBuilder(migrationsResolver, schemaMigrator)).addService("schemaDiffer", ({ schemaMigrator }) => new migrationsClient.SchemaDiffer(schemaMigrator, {
77
+ maxPatchSize: env.migrationsOptions?.maxPatchSize
78
+ })).addService("migrationCreator", ({ migrationFilesManager, schemaDiffer }) => new migrationsClient.MigrationCreator(migrationFilesManager, schemaDiffer, {
77
79
  json: JSON.stringify({ formatVersion: migrationsClient.VERSION_LATEST, modifications: [] }, void 0, " ") + "\n",
78
80
  ts: jsSample,
79
81
  js: jsSample
@@ -1 +1 @@
1
- {"version":3,"file":"dic.cjs","sources":["../../../../packages/cli/src/dic.ts"],"sourcesContent":["import { Builder } from '@contember/dic'\nimport {\n\tJsLoader,\n\tJsonLoader,\n\tMigrationCreator,\n\tMigrationDescriber,\n\tMigrationExecutor,\n\tMigrationFilesManager,\n\tMigrationParser,\n\tMigrationsResolver,\n\tMigrationsStatusResolver,\n\tModificationHandlerFactory,\n\tSchemaDiffer,\n\tSchemaMigrator,\n\tSchemaVersionBuilder,\n\tVERSION_LATEST,\n} from '@contember/migrations-client'\nimport { JsCodeRunner } from './lib/js/JsCodeRunner'\nimport { EsBuildBuilder } from './lib/js/EsBuildBuilder'\nimport { EvalExecutor } from './lib/js/EvalExecutor'\nimport { AdminDeployer } from './lib/admin/AdminDeployer'\nimport { RemoteProjectResolver } from './lib/project/RemoteProjectResolver'\nimport { CliEnv } from './lib/env'\nimport { AdminClient } from './lib/admin/AdminClient'\nimport { FileSystem } from './lib/fs/FileSystem'\nimport { WorkspaceResolver } from './lib/workspace/WorkspaceResolver'\nimport { YamlHandler } from './lib/fs/YamlHandler'\nimport {\n\tDeployCommand,\n\tMigrationAmendCommand,\n\tMigrationBlankCommand,\n\tMigrationDescribeCommand,\n\tMigrationDiffCommand,\n\tMigrationExecuteCommand,\n\tMigrationRebaseCommand,\n\tMigrationStatusCommand,\n\tProjectGenerateDocumentationCommand,\n\tProjectPrintSchemaCommand,\n\tProjectValidateCommand,\n\tVersionCommand,\n\tWorkspaceUpdateApiCommand,\n} from './commands'\nimport { MigrationExecutionFacade } from './lib/migrations/MigrationExecutionFacade'\nimport { MigrationPrinter } from './lib/migrations/MigrationPrinter'\nimport { MigrationsStatusFacade } from './lib/migrations/MigrationsStatusFacade'\nimport { ImportSchemaLoader, SchemaLoader, TranspilingSchemaLoader } from './lib/schema/SchemaLoader'\nimport { MigrationsValidator } from './lib/migrations/MigrationsValidator'\nimport { MigrationRebaseFacade } from './lib/migrations/MigrationRebaseFacade'\nimport { DataTransferClient } from './lib/transfer/DataTransferClient'\nimport { ExportCommand, ImportCommand, TransferCommand } from './commands/transfer'\nimport {\n\tApplication,\n\tCommandFactoryList,\n\tCommandManager,\n\tCommandRunner,\n\tNpm,\n\tPackageWorkspaceResolver,\n\tPnpm,\n\tYarn,\n\tYarnClassic,\n} from '@contember/cli-common'\nimport { VersionChecker } from './lib/VersionChecker'\nimport { DockerComposeManager } from './lib/fs/DockerComposeManager'\nimport { RemoteProjectProvider } from './lib/project/RemoteProjectProvider'\nimport { SystemClientProvider } from './lib/SystemClientProvider'\nimport { TenantClientProvider } from './lib/TenantClientProvider'\nimport { Workspace } from './lib/workspace/Workspace'\n\nconst jsSample = `\nexport const query = \\`\\`\nexport const variables = {}\n\n// or multiple queries\n// export const queries = []\n\n// or a factory\n// export default async () => ({ queries: [] })\n`\n\nexport const createContainer = ({ env, version, runtime, workspace }: {\n\tworkspace: Workspace\n\tenv: CliEnv\n\tversion: string\n\truntime: 'node' | 'bun'\n}) => {\n\treturn new Builder({})\n\t\t.addService('env', () =>\n\t\t\tenv)\n\t\t.addService('version', () =>\n\t\t\tversion)\n\t\t.addService('runtime', () =>\n\t\t\truntime)\n\t\t.addService('workspace', () =>\n\t\t\tworkspace)\n\t\t.addService('fs', () =>\n\t\t\tnew FileSystem())\n\t\t.addService('yamlHandler', ({ fs }) =>\n\t\t\tnew YamlHandler(fs))\n\t\t.addService('jsExecutor', () =>\n\t\t\tnew EvalExecutor())\n\t\t.addService('jsBuilder', () =>\n\t\t\tnew EsBuildBuilder())\n\t\t.addService('jsCodeRunner', ({ jsExecutor, jsBuilder }) =>\n\t\t\tnew JsCodeRunner(jsBuilder, jsExecutor))\n\n\t\t.addService('workspaceResolver', ({ yamlHandler }) =>\n\t\t\tnew WorkspaceResolver(yamlHandler))\n\n\t\t.addService('remoteProjectResolver', ({ env }) =>\n\t\t\tnew RemoteProjectResolver(env))\n\t\t.addService('remoteProjectProvider', ({ remoteProjectResolver }) => {\n\t\t\tconst provider = new RemoteProjectProvider()\n\t\t\tconst remoteProject = remoteProjectResolver.resolve()\n\t\t\tif (remoteProject) {\n\t\t\t\tprovider.setRemoteProject(remoteProject)\n\t\t\t}\n\t\t\treturn provider\n\t\t})\n\t\t.addService('systemClientProvider', ({ remoteProjectProvider }) =>\n\t\t\tnew SystemClientProvider(remoteProjectProvider))\n\t\t.addService('tenantClientProvider', ({ remoteProjectProvider }) =>\n\t\t\tnew TenantClientProvider(remoteProjectProvider))\n\t\t.addService('adminClient', ({ remoteProjectProvider }) =>\n\t\t\tnew AdminClient(remoteProjectProvider))\n\t\t.addService('migrationFilesManager', ({ jsCodeRunner, workspace }) => {\n\t\t\tconst runJs = runtime === 'bun' ? (file: string) => import(file) : jsCodeRunner.run\n\t\t\treturn new MigrationFilesManager(workspace.migrationsDir, {\n\t\t\t\tjson: new JsonLoader(new MigrationParser()),\n\t\t\t\tts: new JsLoader(new MigrationParser(), runJs),\n\t\t\t\tjs: new JsLoader(new MigrationParser(), runJs),\n\t\t\t})\n\t\t})\n\t\t.addService('packageWorkspaceResolver', ({ workspace, fs }) => {\n\t\t\tconst commandRunner = new CommandRunner()\n\t\t\treturn new PackageWorkspaceResolver(workspace.baseDir, fs, [\n\t\t\t\tnew Yarn(fs, commandRunner),\n\t\t\t\tnew YarnClassic(fs, commandRunner),\n\t\t\t\tnew Pnpm(fs, commandRunner),\n\t\t\t\tnew Npm(fs, commandRunner),\n\t\t\t])\n\t\t})\n\t\t.addService('dockerComposeManager', ({ workspace, env, fs, yamlHandler }) =>\n\t\t\tnew DockerComposeManager(workspace.baseDir, env.dockerComposeFile, fs, yamlHandler))\n\t\t.addService('modificationHandlerFactory', () =>\n\t\t\tnew ModificationHandlerFactory(ModificationHandlerFactory.defaultFactoryMap))\n\t\t.addService('schemaMigrator', ({ modificationHandlerFactory }) =>\n\t\t\tnew SchemaMigrator(modificationHandlerFactory))\n\t\t.addService('migrationsResolver', ({ migrationFilesManager }) =>\n\t\t\tnew MigrationsResolver(migrationFilesManager))\n\t\t.addService('schemaVersionBuilder', ({ migrationsResolver, schemaMigrator }) =>\n\t\t\tnew SchemaVersionBuilder(migrationsResolver, schemaMigrator))\n\t\t.addService('schemaDiffer', ({ schemaMigrator }) =>\n\t\t\tnew SchemaDiffer(schemaMigrator))\n\t\t.addService('migrationCreator', ({ migrationFilesManager, schemaDiffer }) =>\n\t\t\tnew MigrationCreator(migrationFilesManager, schemaDiffer, {\n\t\t\t\tjson: JSON.stringify({ formatVersion: VERSION_LATEST, modifications: [] }, undefined, '\\t') + '\\n',\n\t\t\t\tts: jsSample,\n\t\t\t\tjs: jsSample,\n\t\t\t}))\n\t\t.addService('migrationDescriber', ({ modificationHandlerFactory }) =>\n\t\t\tnew MigrationDescriber(modificationHandlerFactory))\n\t\t.addService('migrationPrinter', ({ migrationDescriber }) =>\n\t\t\tnew MigrationPrinter(migrationDescriber))\n\t\t.addService('migrationsExecutor', () =>\n\t\t\tnew MigrationExecutor())\n\t\t.addService('migrationsStatusResolver', () =>\n\t\t\tnew MigrationsStatusResolver())\n\t\t.addService('migrationsStatusFacade', ({ systemClientProvider, migrationsResolver, migrationsStatusResolver }) =>\n\t\t\tnew MigrationsStatusFacade(systemClientProvider, migrationsResolver, migrationsStatusResolver))\n\t\t.addService('migrationExecutionFacade', ({ systemClientProvider, tenantClientProvider, remoteProjectProvider, schemaVersionBuilder, migrationPrinter, migrationsExecutor, migrationsStatusFacade }) =>\n\t\t\tnew MigrationExecutionFacade(systemClientProvider, tenantClientProvider, remoteProjectProvider, schemaVersionBuilder, migrationPrinter, migrationsExecutor, migrationsStatusFacade))\n\t\t.addService('migrationsValidator', ({ migrationDescriber, schemaMigrator }) =>\n\t\t\tnew MigrationsValidator(migrationDescriber, schemaMigrator))\n\t\t.addService('migrationRebaseFacade', ({ schemaVersionBuilder, migrationsValidator, systemClientProvider, migrationFilesManager }) =>\n\t\t\tnew MigrationRebaseFacade(schemaVersionBuilder, migrationsValidator, systemClientProvider, migrationFilesManager))\n\t\t.addService('schemaLoader', ({ workspace, jsCodeRunner, runtime }) =>\n\t\t\truntime === 'bun' ? new ImportSchemaLoader(workspace) : new TranspilingSchemaLoader(workspace, jsCodeRunner))\n\n\t\t.addService('adminDeployer', ({ remoteProjectProvider, adminClient, fs }) =>\n\t\t\tnew AdminDeployer(remoteProjectProvider, adminClient, fs))\n\t\t.addService('dataTransferClient', () =>\n\t\t\tnew DataTransferClient())\n\n\n\t\t.addService('deployCommand', ({ adminDeployer, migrationExecutionFacade, fs, remoteProjectProvider, remoteProjectResolver, workspace }) =>\n\t\t \tnew DeployCommand(adminDeployer, migrationExecutionFacade, fs, remoteProjectProvider, remoteProjectResolver, workspace))\n\t\t.addService('migrationAmendCommand', ({ migrationsResolver, systemClientProvider, migrationsStatusFacade, schemaLoader, schemaVersionBuilder, migrationCreator, migrationsValidator, migrationPrinter, schemaMigrator }) =>\n\t\t\tnew MigrationAmendCommand(migrationsResolver, systemClientProvider, migrationsStatusFacade, schemaLoader, schemaVersionBuilder, migrationCreator, migrationsValidator, migrationPrinter, schemaMigrator))\n\t\t.addService('migrationBlankCommand', ({ migrationCreator }) =>\n\t\t\tnew MigrationBlankCommand(migrationCreator))\n\t\t.addService('migrationDescribeCommand', ({ migrationPrinter, schemaVersionBuilder, migrationsResolver }) =>\n\t\t\tnew MigrationDescribeCommand(migrationPrinter, schemaVersionBuilder, migrationsResolver))\n\t\t.addService('migrationDiffCommand', ({ schemaLoader, schemaVersionBuilder, migrationCreator, migrationPrinter, migrationExecutionFacade }) =>\n\t\t\tnew MigrationDiffCommand(schemaLoader, schemaVersionBuilder, migrationCreator, migrationPrinter, migrationExecutionFacade))\n\t\t.addService('migrationExecuteCommand', ({ migrationExecutionFacade }) =>\n\t\t\tnew MigrationExecuteCommand(migrationExecutionFacade))\n\t\t.addService('migrationRebaseCommand', ({ migrationsResolver, migrationRebaseFacade }) =>\n\t\t\tnew MigrationRebaseCommand(migrationsResolver, migrationRebaseFacade))\n\t\t.addService('migrationStatusCommand', ({ migrationsStatusFacade, migrationFilesManager, systemClientProvider, migrationPrinter }) =>\n\t\t\tnew MigrationStatusCommand(migrationsStatusFacade, migrationFilesManager, systemClientProvider, migrationPrinter))\n\t\t.addService('versionCommand', ({ version }) =>\n\t\t\tnew VersionCommand(version))\n\t\t.addService('projectGenerateDocumentationCommand', ({ schemaLoader }) =>\n\t\t\tnew ProjectGenerateDocumentationCommand(schemaLoader))\n\t\t.addService('projectPrintSchemaCommand', ({ schemaLoader, schemaVersionBuilder }) =>\n\t\t\tnew ProjectPrintSchemaCommand(schemaLoader, schemaVersionBuilder))\n\t\t.addService('projectValidateCommand', ({ schemaLoader, migrationsValidator, migrationsResolver, schemaDiffer, schemaVersionBuilder }) =>\n\t\t\tnew ProjectValidateCommand(schemaLoader, migrationsValidator, migrationsResolver, schemaDiffer, schemaVersionBuilder))\n\t\t.addService('exportCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew ExportCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('importCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew ImportCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('transferCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew TransferCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('workspaceUpdateCommand', ({ packageWorkspaceResolver, dockerComposeManager }) =>\n\t\t\tnew WorkspaceUpdateApiCommand(packageWorkspaceResolver, dockerComposeManager))\n\t\t.addService('commandList', dic => {\n\t\t\tconst commands: CommandFactoryList = {\n\t\t\t\t['deploy']: () => dic.deployCommand,\n\t\t\t\t['version']: () => dic.versionCommand,\n\t\t\t\t['data:export']: () => dic.exportCommand,\n\t\t\t\t['data:import']: () => dic.importCommand,\n\t\t\t\t['data:transfer']: () => dic.transferCommand,\n\t\t\t\t['migrations:diff']: () => dic.migrationDiffCommand,\n\t\t\t\t['migrations:amend']: () => dic.migrationAmendCommand,\n\t\t\t\t['migrations:blank']: () => dic.migrationBlankCommand,\n\t\t\t\t['migrations:describe']: () => dic.migrationDescribeCommand,\n\t\t\t\t['migrations:execute']: () => dic.migrationExecuteCommand,\n\t\t\t\t['migrations:rebase']: () => dic.migrationRebaseCommand,\n\t\t\t\t['migrations:status']: () => dic.migrationStatusCommand,\n\t\t\t\t['workspace:update:api']: () => dic.workspaceUpdateCommand,\n\t\t\t\t['project:validate']: () => dic.projectValidateCommand,\n\t\t\t\t['project:print-schema']: () => dic.projectPrintSchemaCommand,\n\t\t\t\t['project:generate-doc']: () => dic.projectGenerateDocumentationCommand,\n\t\t\t}\n\t\t\treturn commands\n\t\t})\n\t\t.addService('commandManager', ({ commandList }) =>\n\t\t\tnew CommandManager(commandList))\n\n\t\t.addService('versionChecker', ({ version, workspace, packageWorkspaceResolver, dockerComposeManager }) =>\n\t\t\tnew VersionChecker(version, workspace.baseDir, packageWorkspaceResolver, dockerComposeManager))\n\t\t.addService('application', ({ commandManager, versionChecker }) => {\n\t\t\tconst app = new Application(\n\t\t\t\tcommandManager,\n\t\t\t\t`Contember CLI version ${version}`,\n\t\t\t\t{\n\t\t\t\t\tbeforeRun: async ({ name }) => {\n\t\t\t\t\t\tif (!process.env.CONTEMBER_SKIP_VERSION_CHECK && !['deploy', 'version', 'data:export', 'data:import', 'data:transfer'].includes(name)) {\n\t\t\t\t\t\t\tawait versionChecker.checkVersions()\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t\treturn app\n\t\t})\n\t\t.build()\n}\n"],"names":["Builder","FileSystem","YamlHandler","EvalExecutor","EsBuildBuilder","JsCodeRunner","WorkspaceResolver","env","RemoteProjectResolver","RemoteProjectProvider","SystemClientProvider","TenantClientProvider","AdminClient","workspace","MigrationFilesManager","JsonLoader","MigrationParser","JsLoader","CommandRunner","PackageWorkspaceResolver","Yarn","YarnClassic","Pnpm","Npm","DockerComposeManager","ModificationHandlerFactory","SchemaMigrator","MigrationsResolver","SchemaVersionBuilder","SchemaDiffer","MigrationCreator","VERSION_LATEST","MigrationDescriber","MigrationPrinter","MigrationExecutor","MigrationsStatusResolver","MigrationsStatusFacade","MigrationExecutionFacade","MigrationsValidator","MigrationRebaseFacade","runtime","ImportSchemaLoader","TranspilingSchemaLoader","AdminDeployer","DataTransferClient","DeployCommand","MigrationAmendCommand","MigrationBlankCommand","MigrationDescribeCommand","MigrationDiffCommand","MigrationExecuteCommand","MigrationRebaseCommand","MigrationStatusCommand","version","VersionCommand","ProjectGenerateDocumentationCommand","ProjectPrintSchemaCommand","ProjectValidateCommand","ExportCommand","ImportCommand","TransferCommand","WorkspaceUpdateApiCommand","dic","CommandManager","VersionChecker","Application"],"mappings":"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"}
1
+ {"version":3,"file":"dic.cjs","sources":["../../../../packages/cli/src/dic.ts"],"sourcesContent":["import { Builder } from '@contember/dic'\nimport {\n\tJsLoader,\n\tJsonLoader,\n\tMigrationCreator,\n\tMigrationDescriber,\n\tMigrationExecutor,\n\tMigrationFilesManager,\n\tMigrationParser,\n\tMigrationsResolver,\n\tMigrationsStatusResolver,\n\tModificationHandlerFactory,\n\tSchemaDiffer,\n\tSchemaMigrator,\n\tSchemaVersionBuilder,\n\tVERSION_LATEST,\n} from '@contember/migrations-client'\nimport { JsCodeRunner } from './lib/js/JsCodeRunner'\nimport { EsBuildBuilder } from './lib/js/EsBuildBuilder'\nimport { EvalExecutor } from './lib/js/EvalExecutor'\nimport { AdminDeployer } from './lib/admin/AdminDeployer'\nimport { RemoteProjectResolver } from './lib/project/RemoteProjectResolver'\nimport { CliEnv } from './lib/env'\nimport { AdminClient } from './lib/admin/AdminClient'\nimport { FileSystem } from './lib/fs/FileSystem'\nimport { WorkspaceResolver } from './lib/workspace/WorkspaceResolver'\nimport { YamlHandler } from './lib/fs/YamlHandler'\nimport {\n\tDeployCommand,\n\tMigrationAmendCommand,\n\tMigrationBlankCommand,\n\tMigrationDescribeCommand,\n\tMigrationDiffCommand,\n\tMigrationExecuteCommand,\n\tMigrationRebaseCommand,\n\tMigrationStatusCommand,\n\tProjectGenerateDocumentationCommand,\n\tProjectPrintSchemaCommand,\n\tProjectValidateCommand,\n\tVersionCommand,\n\tWorkspaceUpdateApiCommand,\n} from './commands'\nimport { MigrationExecutionFacade } from './lib/migrations/MigrationExecutionFacade'\nimport { MigrationPrinter } from './lib/migrations/MigrationPrinter'\nimport { MigrationsStatusFacade } from './lib/migrations/MigrationsStatusFacade'\nimport { ImportSchemaLoader, SchemaLoader, TranspilingSchemaLoader } from './lib/schema/SchemaLoader'\nimport { MigrationsValidator } from './lib/migrations/MigrationsValidator'\nimport { MigrationRebaseFacade } from './lib/migrations/MigrationRebaseFacade'\nimport { DataTransferClient } from './lib/transfer/DataTransferClient'\nimport { ExportCommand, ImportCommand, TransferCommand } from './commands/transfer'\nimport {\n\tApplication,\n\tCommandFactoryList,\n\tCommandManager,\n\tCommandRunner,\n\tNpm,\n\tPackageWorkspaceResolver,\n\tPnpm,\n\tYarn,\n\tYarnClassic,\n} from '@contember/cli-common'\nimport { VersionChecker } from './lib/VersionChecker'\nimport { DockerComposeManager } from './lib/fs/DockerComposeManager'\nimport { RemoteProjectProvider } from './lib/project/RemoteProjectProvider'\nimport { SystemClientProvider } from './lib/SystemClientProvider'\nimport { TenantClientProvider } from './lib/TenantClientProvider'\nimport { Workspace } from './lib/workspace/Workspace'\n\nconst jsSample = `\nexport const query = \\`\\`\nexport const variables = {}\n\n// or multiple queries\n// export const queries = []\n\n// or a factory\n// export default async () => ({ queries: [] })\n`\n\nexport const createContainer = ({ env, version, runtime, workspace }: {\n\tworkspace: Workspace\n\tenv: CliEnv\n\tversion: string\n\truntime: 'node' | 'bun'\n}) => {\n\treturn new Builder({})\n\t\t.addService('env', () =>\n\t\t\tenv)\n\t\t.addService('version', () =>\n\t\t\tversion)\n\t\t.addService('runtime', () =>\n\t\t\truntime)\n\t\t.addService('workspace', () =>\n\t\t\tworkspace)\n\t\t.addService('fs', () =>\n\t\t\tnew FileSystem())\n\t\t.addService('yamlHandler', ({ fs }) =>\n\t\t\tnew YamlHandler(fs))\n\t\t.addService('jsExecutor', () =>\n\t\t\tnew EvalExecutor())\n\t\t.addService('jsBuilder', () =>\n\t\t\tnew EsBuildBuilder())\n\t\t.addService('jsCodeRunner', ({ jsExecutor, jsBuilder }) =>\n\t\t\tnew JsCodeRunner(jsBuilder, jsExecutor))\n\n\t\t.addService('workspaceResolver', ({ yamlHandler }) =>\n\t\t\tnew WorkspaceResolver(yamlHandler))\n\n\t\t.addService('remoteProjectResolver', ({ env }) =>\n\t\t\tnew RemoteProjectResolver(env))\n\t\t.addService('remoteProjectProvider', ({ remoteProjectResolver }) => {\n\t\t\tconst provider = new RemoteProjectProvider()\n\t\t\tconst remoteProject = remoteProjectResolver.resolve()\n\t\t\tif (remoteProject) {\n\t\t\t\tprovider.setRemoteProject(remoteProject)\n\t\t\t}\n\t\t\treturn provider\n\t\t})\n\t\t.addService('systemClientProvider', ({ remoteProjectProvider }) =>\n\t\t\tnew SystemClientProvider(remoteProjectProvider))\n\t\t.addService('tenantClientProvider', ({ remoteProjectProvider }) =>\n\t\t\tnew TenantClientProvider(remoteProjectProvider))\n\t\t.addService('adminClient', ({ remoteProjectProvider }) =>\n\t\t\tnew AdminClient(remoteProjectProvider))\n\t\t.addService('migrationFilesManager', ({ jsCodeRunner, workspace }) => {\n\t\t\tconst runJs = runtime === 'bun' ? (file: string) => import(file) : jsCodeRunner.run\n\t\t\treturn new MigrationFilesManager(workspace.migrationsDir, {\n\t\t\t\tjson: new JsonLoader(new MigrationParser()),\n\t\t\t\tts: new JsLoader(new MigrationParser(), runJs),\n\t\t\t\tjs: new JsLoader(new MigrationParser(), runJs),\n\t\t\t})\n\t\t})\n\t\t.addService('packageWorkspaceResolver', ({ workspace, fs }) => {\n\t\t\tconst commandRunner = new CommandRunner()\n\t\t\treturn new PackageWorkspaceResolver(workspace.baseDir, fs, [\n\t\t\t\tnew Yarn(fs, commandRunner),\n\t\t\t\tnew YarnClassic(fs, commandRunner),\n\t\t\t\tnew Pnpm(fs, commandRunner),\n\t\t\t\tnew Npm(fs, commandRunner),\n\t\t\t])\n\t\t})\n\t\t.addService('dockerComposeManager', ({ workspace, env, fs, yamlHandler }) =>\n\t\t\tnew DockerComposeManager(workspace.baseDir, env.dockerComposeFile, fs, yamlHandler))\n\t\t.addService('modificationHandlerFactory', () =>\n\t\t\tnew ModificationHandlerFactory(ModificationHandlerFactory.defaultFactoryMap))\n\t\t.addService('schemaMigrator', ({ modificationHandlerFactory }) =>\n\t\t\tnew SchemaMigrator(modificationHandlerFactory))\n\t\t.addService('migrationsResolver', ({ migrationFilesManager }) =>\n\t\t\tnew MigrationsResolver(migrationFilesManager))\n\t\t.addService('schemaVersionBuilder', ({ migrationsResolver, schemaMigrator }) =>\n\t\t\tnew SchemaVersionBuilder(migrationsResolver, schemaMigrator))\n\t\t.addService('schemaDiffer', ({ schemaMigrator }) =>\n\t\t\tnew SchemaDiffer(schemaMigrator, {\n\t\t\t\tmaxPatchSize: env.migrationsOptions?.maxPatchSize,\n\t\t\t}))\n\t\t.addService('migrationCreator', ({ migrationFilesManager, schemaDiffer }) =>\n\t\t\tnew MigrationCreator(migrationFilesManager, schemaDiffer, {\n\t\t\t\tjson: JSON.stringify({ formatVersion: VERSION_LATEST, modifications: [] }, undefined, '\\t') + '\\n',\n\t\t\t\tts: jsSample,\n\t\t\t\tjs: jsSample,\n\t\t\t}))\n\t\t.addService('migrationDescriber', ({ modificationHandlerFactory }) =>\n\t\t\tnew MigrationDescriber(modificationHandlerFactory))\n\t\t.addService('migrationPrinter', ({ migrationDescriber }) =>\n\t\t\tnew MigrationPrinter(migrationDescriber))\n\t\t.addService('migrationsExecutor', () =>\n\t\t\tnew MigrationExecutor())\n\t\t.addService('migrationsStatusResolver', () =>\n\t\t\tnew MigrationsStatusResolver())\n\t\t.addService('migrationsStatusFacade', ({ systemClientProvider, migrationsResolver, migrationsStatusResolver }) =>\n\t\t\tnew MigrationsStatusFacade(systemClientProvider, migrationsResolver, migrationsStatusResolver))\n\t\t.addService('migrationExecutionFacade', ({ systemClientProvider, tenantClientProvider, remoteProjectProvider, schemaVersionBuilder, migrationPrinter, migrationsExecutor, migrationsStatusFacade }) =>\n\t\t\tnew MigrationExecutionFacade(systemClientProvider, tenantClientProvider, remoteProjectProvider, schemaVersionBuilder, migrationPrinter, migrationsExecutor, migrationsStatusFacade))\n\t\t.addService('migrationsValidator', ({ migrationDescriber, schemaMigrator }) =>\n\t\t\tnew MigrationsValidator(migrationDescriber, schemaMigrator))\n\t\t.addService('migrationRebaseFacade', ({ schemaVersionBuilder, migrationsValidator, systemClientProvider, migrationFilesManager }) =>\n\t\t\tnew MigrationRebaseFacade(schemaVersionBuilder, migrationsValidator, systemClientProvider, migrationFilesManager))\n\t\t.addService('schemaLoader', ({ workspace, jsCodeRunner, runtime }) =>\n\t\t\truntime === 'bun' ? new ImportSchemaLoader(workspace) : new TranspilingSchemaLoader(workspace, jsCodeRunner))\n\n\t\t.addService('adminDeployer', ({ remoteProjectProvider, adminClient, fs }) =>\n\t\t\tnew AdminDeployer(remoteProjectProvider, adminClient, fs))\n\t\t.addService('dataTransferClient', () =>\n\t\t\tnew DataTransferClient())\n\n\n\t\t.addService('deployCommand', ({ adminDeployer, migrationExecutionFacade, fs, remoteProjectProvider, remoteProjectResolver, workspace }) =>\n\t\t \tnew DeployCommand(adminDeployer, migrationExecutionFacade, fs, remoteProjectProvider, remoteProjectResolver, workspace))\n\t\t.addService('migrationAmendCommand', ({ migrationsResolver, systemClientProvider, migrationsStatusFacade, schemaLoader, schemaVersionBuilder, migrationCreator, migrationsValidator, migrationPrinter, schemaMigrator }) =>\n\t\t\tnew MigrationAmendCommand(migrationsResolver, systemClientProvider, migrationsStatusFacade, schemaLoader, schemaVersionBuilder, migrationCreator, migrationsValidator, migrationPrinter, schemaMigrator))\n\t\t.addService('migrationBlankCommand', ({ migrationCreator }) =>\n\t\t\tnew MigrationBlankCommand(migrationCreator))\n\t\t.addService('migrationDescribeCommand', ({ migrationPrinter, schemaVersionBuilder, migrationsResolver }) =>\n\t\t\tnew MigrationDescribeCommand(migrationPrinter, schemaVersionBuilder, migrationsResolver))\n\t\t.addService('migrationDiffCommand', ({ schemaLoader, schemaVersionBuilder, migrationCreator, migrationPrinter, migrationExecutionFacade }) =>\n\t\t\tnew MigrationDiffCommand(schemaLoader, schemaVersionBuilder, migrationCreator, migrationPrinter, migrationExecutionFacade))\n\t\t.addService('migrationExecuteCommand', ({ migrationExecutionFacade }) =>\n\t\t\tnew MigrationExecuteCommand(migrationExecutionFacade))\n\t\t.addService('migrationRebaseCommand', ({ migrationsResolver, migrationRebaseFacade }) =>\n\t\t\tnew MigrationRebaseCommand(migrationsResolver, migrationRebaseFacade))\n\t\t.addService('migrationStatusCommand', ({ migrationsStatusFacade, migrationFilesManager, systemClientProvider, migrationPrinter }) =>\n\t\t\tnew MigrationStatusCommand(migrationsStatusFacade, migrationFilesManager, systemClientProvider, migrationPrinter))\n\t\t.addService('versionCommand', ({ version }) =>\n\t\t\tnew VersionCommand(version))\n\t\t.addService('projectGenerateDocumentationCommand', ({ schemaLoader }) =>\n\t\t\tnew ProjectGenerateDocumentationCommand(schemaLoader))\n\t\t.addService('projectPrintSchemaCommand', ({ schemaLoader, schemaVersionBuilder }) =>\n\t\t\tnew ProjectPrintSchemaCommand(schemaLoader, schemaVersionBuilder))\n\t\t.addService('projectValidateCommand', ({ schemaLoader, migrationsValidator, migrationsResolver, schemaDiffer, schemaVersionBuilder }) =>\n\t\t\tnew ProjectValidateCommand(schemaLoader, migrationsValidator, migrationsResolver, schemaDiffer, schemaVersionBuilder))\n\t\t.addService('exportCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew ExportCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('importCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew ImportCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('transferCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew TransferCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('workspaceUpdateCommand', ({ packageWorkspaceResolver, dockerComposeManager }) =>\n\t\t\tnew WorkspaceUpdateApiCommand(packageWorkspaceResolver, dockerComposeManager))\n\t\t.addService('commandList', dic => {\n\t\t\tconst commands: CommandFactoryList = {\n\t\t\t\t['deploy']: () => dic.deployCommand,\n\t\t\t\t['version']: () => dic.versionCommand,\n\t\t\t\t['data:export']: () => dic.exportCommand,\n\t\t\t\t['data:import']: () => dic.importCommand,\n\t\t\t\t['data:transfer']: () => dic.transferCommand,\n\t\t\t\t['migrations:diff']: () => dic.migrationDiffCommand,\n\t\t\t\t['migrations:amend']: () => dic.migrationAmendCommand,\n\t\t\t\t['migrations:blank']: () => dic.migrationBlankCommand,\n\t\t\t\t['migrations:describe']: () => dic.migrationDescribeCommand,\n\t\t\t\t['migrations:execute']: () => dic.migrationExecuteCommand,\n\t\t\t\t['migrations:rebase']: () => dic.migrationRebaseCommand,\n\t\t\t\t['migrations:status']: () => dic.migrationStatusCommand,\n\t\t\t\t['workspace:update:api']: () => dic.workspaceUpdateCommand,\n\t\t\t\t['project:validate']: () => dic.projectValidateCommand,\n\t\t\t\t['project:print-schema']: () => dic.projectPrintSchemaCommand,\n\t\t\t\t['project:generate-doc']: () => dic.projectGenerateDocumentationCommand,\n\t\t\t}\n\t\t\treturn commands\n\t\t})\n\t\t.addService('commandManager', ({ commandList }) =>\n\t\t\tnew CommandManager(commandList))\n\n\t\t.addService('versionChecker', ({ version, workspace, packageWorkspaceResolver, dockerComposeManager }) =>\n\t\t\tnew VersionChecker(version, workspace.baseDir, packageWorkspaceResolver, dockerComposeManager))\n\t\t.addService('application', ({ commandManager, versionChecker }) => {\n\t\t\tconst app = new Application(\n\t\t\t\tcommandManager,\n\t\t\t\t`Contember CLI version ${version}`,\n\t\t\t\t{\n\t\t\t\t\tbeforeRun: async ({ name }) => {\n\t\t\t\t\t\tif (!process.env.CONTEMBER_SKIP_VERSION_CHECK && !['deploy', 'version', 'data:export', 'data:import', 'data:transfer'].includes(name)) {\n\t\t\t\t\t\t\tawait versionChecker.checkVersions()\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t\treturn app\n\t\t})\n\t\t.build()\n}\n"],"names":["Builder","FileSystem","YamlHandler","EvalExecutor","EsBuildBuilder","JsCodeRunner","WorkspaceResolver","env","RemoteProjectResolver","RemoteProjectProvider","SystemClientProvider","TenantClientProvider","AdminClient","workspace","MigrationFilesManager","JsonLoader","MigrationParser","JsLoader","CommandRunner","PackageWorkspaceResolver","Yarn","YarnClassic","Pnpm","Npm","DockerComposeManager","ModificationHandlerFactory","SchemaMigrator","MigrationsResolver","SchemaVersionBuilder","SchemaDiffer","MigrationCreator","VERSION_LATEST","MigrationDescriber","MigrationPrinter","MigrationExecutor","MigrationsStatusResolver","MigrationsStatusFacade","MigrationExecutionFacade","MigrationsValidator","MigrationRebaseFacade","runtime","ImportSchemaLoader","TranspilingSchemaLoader","AdminDeployer","DataTransferClient","DeployCommand","MigrationAmendCommand","MigrationBlankCommand","MigrationDescribeCommand","MigrationDiffCommand","MigrationExecuteCommand","MigrationRebaseCommand","MigrationStatusCommand","version","VersionCommand","ProjectGenerateDocumentationCommand","ProjectPrintSchemaCommand","ProjectValidateCommand","ExportCommand","ImportCommand","TransferCommand","WorkspaceUpdateApiCommand","dic","CommandManager","VersionChecker","Application"],"mappings":"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"}
@@ -71,7 +71,9 @@ const createContainer = ({ env, version, runtime, workspace }) => {
71
71
  new Pnpm(fs, commandRunner),
72
72
  new Npm(fs, commandRunner)
73
73
  ]);
74
- }).addService("dockerComposeManager", ({ workspace: workspace2, env: env2, fs, yamlHandler }) => new DockerComposeManager(workspace2.baseDir, env2.dockerComposeFile, fs, yamlHandler)).addService("modificationHandlerFactory", () => new ModificationHandlerFactory(ModificationHandlerFactory.defaultFactoryMap)).addService("schemaMigrator", ({ modificationHandlerFactory }) => new SchemaMigrator(modificationHandlerFactory)).addService("migrationsResolver", ({ migrationFilesManager }) => new MigrationsResolver(migrationFilesManager)).addService("schemaVersionBuilder", ({ migrationsResolver, schemaMigrator }) => new SchemaVersionBuilder(migrationsResolver, schemaMigrator)).addService("schemaDiffer", ({ schemaMigrator }) => new SchemaDiffer(schemaMigrator)).addService("migrationCreator", ({ migrationFilesManager, schemaDiffer }) => new MigrationCreator(migrationFilesManager, schemaDiffer, {
74
+ }).addService("dockerComposeManager", ({ workspace: workspace2, env: env2, fs, yamlHandler }) => new DockerComposeManager(workspace2.baseDir, env2.dockerComposeFile, fs, yamlHandler)).addService("modificationHandlerFactory", () => new ModificationHandlerFactory(ModificationHandlerFactory.defaultFactoryMap)).addService("schemaMigrator", ({ modificationHandlerFactory }) => new SchemaMigrator(modificationHandlerFactory)).addService("migrationsResolver", ({ migrationFilesManager }) => new MigrationsResolver(migrationFilesManager)).addService("schemaVersionBuilder", ({ migrationsResolver, schemaMigrator }) => new SchemaVersionBuilder(migrationsResolver, schemaMigrator)).addService("schemaDiffer", ({ schemaMigrator }) => new SchemaDiffer(schemaMigrator, {
75
+ maxPatchSize: env.migrationsOptions?.maxPatchSize
76
+ })).addService("migrationCreator", ({ migrationFilesManager, schemaDiffer }) => new MigrationCreator(migrationFilesManager, schemaDiffer, {
75
77
  json: JSON.stringify({ formatVersion: VERSION_LATEST, modifications: [] }, void 0, " ") + "\n",
76
78
  ts: jsSample,
77
79
  js: jsSample
@@ -1 +1 @@
1
- {"version":3,"file":"dic.js","sources":["../../../../packages/cli/src/dic.ts"],"sourcesContent":["import { Builder } from '@contember/dic'\nimport {\n\tJsLoader,\n\tJsonLoader,\n\tMigrationCreator,\n\tMigrationDescriber,\n\tMigrationExecutor,\n\tMigrationFilesManager,\n\tMigrationParser,\n\tMigrationsResolver,\n\tMigrationsStatusResolver,\n\tModificationHandlerFactory,\n\tSchemaDiffer,\n\tSchemaMigrator,\n\tSchemaVersionBuilder,\n\tVERSION_LATEST,\n} from '@contember/migrations-client'\nimport { JsCodeRunner } from './lib/js/JsCodeRunner'\nimport { EsBuildBuilder } from './lib/js/EsBuildBuilder'\nimport { EvalExecutor } from './lib/js/EvalExecutor'\nimport { AdminDeployer } from './lib/admin/AdminDeployer'\nimport { RemoteProjectResolver } from './lib/project/RemoteProjectResolver'\nimport { CliEnv } from './lib/env'\nimport { AdminClient } from './lib/admin/AdminClient'\nimport { FileSystem } from './lib/fs/FileSystem'\nimport { WorkspaceResolver } from './lib/workspace/WorkspaceResolver'\nimport { YamlHandler } from './lib/fs/YamlHandler'\nimport {\n\tDeployCommand,\n\tMigrationAmendCommand,\n\tMigrationBlankCommand,\n\tMigrationDescribeCommand,\n\tMigrationDiffCommand,\n\tMigrationExecuteCommand,\n\tMigrationRebaseCommand,\n\tMigrationStatusCommand,\n\tProjectGenerateDocumentationCommand,\n\tProjectPrintSchemaCommand,\n\tProjectValidateCommand,\n\tVersionCommand,\n\tWorkspaceUpdateApiCommand,\n} from './commands'\nimport { MigrationExecutionFacade } from './lib/migrations/MigrationExecutionFacade'\nimport { MigrationPrinter } from './lib/migrations/MigrationPrinter'\nimport { MigrationsStatusFacade } from './lib/migrations/MigrationsStatusFacade'\nimport { ImportSchemaLoader, SchemaLoader, TranspilingSchemaLoader } from './lib/schema/SchemaLoader'\nimport { MigrationsValidator } from './lib/migrations/MigrationsValidator'\nimport { MigrationRebaseFacade } from './lib/migrations/MigrationRebaseFacade'\nimport { DataTransferClient } from './lib/transfer/DataTransferClient'\nimport { ExportCommand, ImportCommand, TransferCommand } from './commands/transfer'\nimport {\n\tApplication,\n\tCommandFactoryList,\n\tCommandManager,\n\tCommandRunner,\n\tNpm,\n\tPackageWorkspaceResolver,\n\tPnpm,\n\tYarn,\n\tYarnClassic,\n} from '@contember/cli-common'\nimport { VersionChecker } from './lib/VersionChecker'\nimport { DockerComposeManager } from './lib/fs/DockerComposeManager'\nimport { RemoteProjectProvider } from './lib/project/RemoteProjectProvider'\nimport { SystemClientProvider } from './lib/SystemClientProvider'\nimport { TenantClientProvider } from './lib/TenantClientProvider'\nimport { Workspace } from './lib/workspace/Workspace'\n\nconst jsSample = `\nexport const query = \\`\\`\nexport const variables = {}\n\n// or multiple queries\n// export const queries = []\n\n// or a factory\n// export default async () => ({ queries: [] })\n`\n\nexport const createContainer = ({ env, version, runtime, workspace }: {\n\tworkspace: Workspace\n\tenv: CliEnv\n\tversion: string\n\truntime: 'node' | 'bun'\n}) => {\n\treturn new Builder({})\n\t\t.addService('env', () =>\n\t\t\tenv)\n\t\t.addService('version', () =>\n\t\t\tversion)\n\t\t.addService('runtime', () =>\n\t\t\truntime)\n\t\t.addService('workspace', () =>\n\t\t\tworkspace)\n\t\t.addService('fs', () =>\n\t\t\tnew FileSystem())\n\t\t.addService('yamlHandler', ({ fs }) =>\n\t\t\tnew YamlHandler(fs))\n\t\t.addService('jsExecutor', () =>\n\t\t\tnew EvalExecutor())\n\t\t.addService('jsBuilder', () =>\n\t\t\tnew EsBuildBuilder())\n\t\t.addService('jsCodeRunner', ({ jsExecutor, jsBuilder }) =>\n\t\t\tnew JsCodeRunner(jsBuilder, jsExecutor))\n\n\t\t.addService('workspaceResolver', ({ yamlHandler }) =>\n\t\t\tnew WorkspaceResolver(yamlHandler))\n\n\t\t.addService('remoteProjectResolver', ({ env }) =>\n\t\t\tnew RemoteProjectResolver(env))\n\t\t.addService('remoteProjectProvider', ({ remoteProjectResolver }) => {\n\t\t\tconst provider = new RemoteProjectProvider()\n\t\t\tconst remoteProject = remoteProjectResolver.resolve()\n\t\t\tif (remoteProject) {\n\t\t\t\tprovider.setRemoteProject(remoteProject)\n\t\t\t}\n\t\t\treturn provider\n\t\t})\n\t\t.addService('systemClientProvider', ({ remoteProjectProvider }) =>\n\t\t\tnew SystemClientProvider(remoteProjectProvider))\n\t\t.addService('tenantClientProvider', ({ remoteProjectProvider }) =>\n\t\t\tnew TenantClientProvider(remoteProjectProvider))\n\t\t.addService('adminClient', ({ remoteProjectProvider }) =>\n\t\t\tnew AdminClient(remoteProjectProvider))\n\t\t.addService('migrationFilesManager', ({ jsCodeRunner, workspace }) => {\n\t\t\tconst runJs = runtime === 'bun' ? (file: string) => import(file) : jsCodeRunner.run\n\t\t\treturn new MigrationFilesManager(workspace.migrationsDir, {\n\t\t\t\tjson: new JsonLoader(new MigrationParser()),\n\t\t\t\tts: new JsLoader(new MigrationParser(), runJs),\n\t\t\t\tjs: new JsLoader(new MigrationParser(), runJs),\n\t\t\t})\n\t\t})\n\t\t.addService('packageWorkspaceResolver', ({ workspace, fs }) => {\n\t\t\tconst commandRunner = new CommandRunner()\n\t\t\treturn new PackageWorkspaceResolver(workspace.baseDir, fs, [\n\t\t\t\tnew Yarn(fs, commandRunner),\n\t\t\t\tnew YarnClassic(fs, commandRunner),\n\t\t\t\tnew Pnpm(fs, commandRunner),\n\t\t\t\tnew Npm(fs, commandRunner),\n\t\t\t])\n\t\t})\n\t\t.addService('dockerComposeManager', ({ workspace, env, fs, yamlHandler }) =>\n\t\t\tnew DockerComposeManager(workspace.baseDir, env.dockerComposeFile, fs, yamlHandler))\n\t\t.addService('modificationHandlerFactory', () =>\n\t\t\tnew ModificationHandlerFactory(ModificationHandlerFactory.defaultFactoryMap))\n\t\t.addService('schemaMigrator', ({ modificationHandlerFactory }) =>\n\t\t\tnew SchemaMigrator(modificationHandlerFactory))\n\t\t.addService('migrationsResolver', ({ migrationFilesManager }) =>\n\t\t\tnew MigrationsResolver(migrationFilesManager))\n\t\t.addService('schemaVersionBuilder', ({ migrationsResolver, schemaMigrator }) =>\n\t\t\tnew SchemaVersionBuilder(migrationsResolver, schemaMigrator))\n\t\t.addService('schemaDiffer', ({ schemaMigrator }) =>\n\t\t\tnew SchemaDiffer(schemaMigrator))\n\t\t.addService('migrationCreator', ({ migrationFilesManager, schemaDiffer }) =>\n\t\t\tnew MigrationCreator(migrationFilesManager, schemaDiffer, {\n\t\t\t\tjson: JSON.stringify({ formatVersion: VERSION_LATEST, modifications: [] }, undefined, '\\t') + '\\n',\n\t\t\t\tts: jsSample,\n\t\t\t\tjs: jsSample,\n\t\t\t}))\n\t\t.addService('migrationDescriber', ({ modificationHandlerFactory }) =>\n\t\t\tnew MigrationDescriber(modificationHandlerFactory))\n\t\t.addService('migrationPrinter', ({ migrationDescriber }) =>\n\t\t\tnew MigrationPrinter(migrationDescriber))\n\t\t.addService('migrationsExecutor', () =>\n\t\t\tnew MigrationExecutor())\n\t\t.addService('migrationsStatusResolver', () =>\n\t\t\tnew MigrationsStatusResolver())\n\t\t.addService('migrationsStatusFacade', ({ systemClientProvider, migrationsResolver, migrationsStatusResolver }) =>\n\t\t\tnew MigrationsStatusFacade(systemClientProvider, migrationsResolver, migrationsStatusResolver))\n\t\t.addService('migrationExecutionFacade', ({ systemClientProvider, tenantClientProvider, remoteProjectProvider, schemaVersionBuilder, migrationPrinter, migrationsExecutor, migrationsStatusFacade }) =>\n\t\t\tnew MigrationExecutionFacade(systemClientProvider, tenantClientProvider, remoteProjectProvider, schemaVersionBuilder, migrationPrinter, migrationsExecutor, migrationsStatusFacade))\n\t\t.addService('migrationsValidator', ({ migrationDescriber, schemaMigrator }) =>\n\t\t\tnew MigrationsValidator(migrationDescriber, schemaMigrator))\n\t\t.addService('migrationRebaseFacade', ({ schemaVersionBuilder, migrationsValidator, systemClientProvider, migrationFilesManager }) =>\n\t\t\tnew MigrationRebaseFacade(schemaVersionBuilder, migrationsValidator, systemClientProvider, migrationFilesManager))\n\t\t.addService('schemaLoader', ({ workspace, jsCodeRunner, runtime }) =>\n\t\t\truntime === 'bun' ? new ImportSchemaLoader(workspace) : new TranspilingSchemaLoader(workspace, jsCodeRunner))\n\n\t\t.addService('adminDeployer', ({ remoteProjectProvider, adminClient, fs }) =>\n\t\t\tnew AdminDeployer(remoteProjectProvider, adminClient, fs))\n\t\t.addService('dataTransferClient', () =>\n\t\t\tnew DataTransferClient())\n\n\n\t\t.addService('deployCommand', ({ adminDeployer, migrationExecutionFacade, fs, remoteProjectProvider, remoteProjectResolver, workspace }) =>\n\t\t \tnew DeployCommand(adminDeployer, migrationExecutionFacade, fs, remoteProjectProvider, remoteProjectResolver, workspace))\n\t\t.addService('migrationAmendCommand', ({ migrationsResolver, systemClientProvider, migrationsStatusFacade, schemaLoader, schemaVersionBuilder, migrationCreator, migrationsValidator, migrationPrinter, schemaMigrator }) =>\n\t\t\tnew MigrationAmendCommand(migrationsResolver, systemClientProvider, migrationsStatusFacade, schemaLoader, schemaVersionBuilder, migrationCreator, migrationsValidator, migrationPrinter, schemaMigrator))\n\t\t.addService('migrationBlankCommand', ({ migrationCreator }) =>\n\t\t\tnew MigrationBlankCommand(migrationCreator))\n\t\t.addService('migrationDescribeCommand', ({ migrationPrinter, schemaVersionBuilder, migrationsResolver }) =>\n\t\t\tnew MigrationDescribeCommand(migrationPrinter, schemaVersionBuilder, migrationsResolver))\n\t\t.addService('migrationDiffCommand', ({ schemaLoader, schemaVersionBuilder, migrationCreator, migrationPrinter, migrationExecutionFacade }) =>\n\t\t\tnew MigrationDiffCommand(schemaLoader, schemaVersionBuilder, migrationCreator, migrationPrinter, migrationExecutionFacade))\n\t\t.addService('migrationExecuteCommand', ({ migrationExecutionFacade }) =>\n\t\t\tnew MigrationExecuteCommand(migrationExecutionFacade))\n\t\t.addService('migrationRebaseCommand', ({ migrationsResolver, migrationRebaseFacade }) =>\n\t\t\tnew MigrationRebaseCommand(migrationsResolver, migrationRebaseFacade))\n\t\t.addService('migrationStatusCommand', ({ migrationsStatusFacade, migrationFilesManager, systemClientProvider, migrationPrinter }) =>\n\t\t\tnew MigrationStatusCommand(migrationsStatusFacade, migrationFilesManager, systemClientProvider, migrationPrinter))\n\t\t.addService('versionCommand', ({ version }) =>\n\t\t\tnew VersionCommand(version))\n\t\t.addService('projectGenerateDocumentationCommand', ({ schemaLoader }) =>\n\t\t\tnew ProjectGenerateDocumentationCommand(schemaLoader))\n\t\t.addService('projectPrintSchemaCommand', ({ schemaLoader, schemaVersionBuilder }) =>\n\t\t\tnew ProjectPrintSchemaCommand(schemaLoader, schemaVersionBuilder))\n\t\t.addService('projectValidateCommand', ({ schemaLoader, migrationsValidator, migrationsResolver, schemaDiffer, schemaVersionBuilder }) =>\n\t\t\tnew ProjectValidateCommand(schemaLoader, migrationsValidator, migrationsResolver, schemaDiffer, schemaVersionBuilder))\n\t\t.addService('exportCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew ExportCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('importCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew ImportCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('transferCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew TransferCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('workspaceUpdateCommand', ({ packageWorkspaceResolver, dockerComposeManager }) =>\n\t\t\tnew WorkspaceUpdateApiCommand(packageWorkspaceResolver, dockerComposeManager))\n\t\t.addService('commandList', dic => {\n\t\t\tconst commands: CommandFactoryList = {\n\t\t\t\t['deploy']: () => dic.deployCommand,\n\t\t\t\t['version']: () => dic.versionCommand,\n\t\t\t\t['data:export']: () => dic.exportCommand,\n\t\t\t\t['data:import']: () => dic.importCommand,\n\t\t\t\t['data:transfer']: () => dic.transferCommand,\n\t\t\t\t['migrations:diff']: () => dic.migrationDiffCommand,\n\t\t\t\t['migrations:amend']: () => dic.migrationAmendCommand,\n\t\t\t\t['migrations:blank']: () => dic.migrationBlankCommand,\n\t\t\t\t['migrations:describe']: () => dic.migrationDescribeCommand,\n\t\t\t\t['migrations:execute']: () => dic.migrationExecuteCommand,\n\t\t\t\t['migrations:rebase']: () => dic.migrationRebaseCommand,\n\t\t\t\t['migrations:status']: () => dic.migrationStatusCommand,\n\t\t\t\t['workspace:update:api']: () => dic.workspaceUpdateCommand,\n\t\t\t\t['project:validate']: () => dic.projectValidateCommand,\n\t\t\t\t['project:print-schema']: () => dic.projectPrintSchemaCommand,\n\t\t\t\t['project:generate-doc']: () => dic.projectGenerateDocumentationCommand,\n\t\t\t}\n\t\t\treturn commands\n\t\t})\n\t\t.addService('commandManager', ({ commandList }) =>\n\t\t\tnew CommandManager(commandList))\n\n\t\t.addService('versionChecker', ({ version, workspace, packageWorkspaceResolver, dockerComposeManager }) =>\n\t\t\tnew VersionChecker(version, workspace.baseDir, packageWorkspaceResolver, dockerComposeManager))\n\t\t.addService('application', ({ commandManager, versionChecker }) => {\n\t\t\tconst app = new Application(\n\t\t\t\tcommandManager,\n\t\t\t\t`Contember CLI version ${version}`,\n\t\t\t\t{\n\t\t\t\t\tbeforeRun: async ({ name }) => {\n\t\t\t\t\t\tif (!process.env.CONTEMBER_SKIP_VERSION_CHECK && !['deploy', 'version', 'data:export', 'data:import', 'data:transfer'].includes(name)) {\n\t\t\t\t\t\t\tawait versionChecker.checkVersions()\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t\treturn app\n\t\t})\n\t\t.build()\n}\n"],"names":["env","workspace","runtime","version"],"mappings":"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"}
1
+ {"version":3,"file":"dic.js","sources":["../../../../packages/cli/src/dic.ts"],"sourcesContent":["import { Builder } from '@contember/dic'\nimport {\n\tJsLoader,\n\tJsonLoader,\n\tMigrationCreator,\n\tMigrationDescriber,\n\tMigrationExecutor,\n\tMigrationFilesManager,\n\tMigrationParser,\n\tMigrationsResolver,\n\tMigrationsStatusResolver,\n\tModificationHandlerFactory,\n\tSchemaDiffer,\n\tSchemaMigrator,\n\tSchemaVersionBuilder,\n\tVERSION_LATEST,\n} from '@contember/migrations-client'\nimport { JsCodeRunner } from './lib/js/JsCodeRunner'\nimport { EsBuildBuilder } from './lib/js/EsBuildBuilder'\nimport { EvalExecutor } from './lib/js/EvalExecutor'\nimport { AdminDeployer } from './lib/admin/AdminDeployer'\nimport { RemoteProjectResolver } from './lib/project/RemoteProjectResolver'\nimport { CliEnv } from './lib/env'\nimport { AdminClient } from './lib/admin/AdminClient'\nimport { FileSystem } from './lib/fs/FileSystem'\nimport { WorkspaceResolver } from './lib/workspace/WorkspaceResolver'\nimport { YamlHandler } from './lib/fs/YamlHandler'\nimport {\n\tDeployCommand,\n\tMigrationAmendCommand,\n\tMigrationBlankCommand,\n\tMigrationDescribeCommand,\n\tMigrationDiffCommand,\n\tMigrationExecuteCommand,\n\tMigrationRebaseCommand,\n\tMigrationStatusCommand,\n\tProjectGenerateDocumentationCommand,\n\tProjectPrintSchemaCommand,\n\tProjectValidateCommand,\n\tVersionCommand,\n\tWorkspaceUpdateApiCommand,\n} from './commands'\nimport { MigrationExecutionFacade } from './lib/migrations/MigrationExecutionFacade'\nimport { MigrationPrinter } from './lib/migrations/MigrationPrinter'\nimport { MigrationsStatusFacade } from './lib/migrations/MigrationsStatusFacade'\nimport { ImportSchemaLoader, SchemaLoader, TranspilingSchemaLoader } from './lib/schema/SchemaLoader'\nimport { MigrationsValidator } from './lib/migrations/MigrationsValidator'\nimport { MigrationRebaseFacade } from './lib/migrations/MigrationRebaseFacade'\nimport { DataTransferClient } from './lib/transfer/DataTransferClient'\nimport { ExportCommand, ImportCommand, TransferCommand } from './commands/transfer'\nimport {\n\tApplication,\n\tCommandFactoryList,\n\tCommandManager,\n\tCommandRunner,\n\tNpm,\n\tPackageWorkspaceResolver,\n\tPnpm,\n\tYarn,\n\tYarnClassic,\n} from '@contember/cli-common'\nimport { VersionChecker } from './lib/VersionChecker'\nimport { DockerComposeManager } from './lib/fs/DockerComposeManager'\nimport { RemoteProjectProvider } from './lib/project/RemoteProjectProvider'\nimport { SystemClientProvider } from './lib/SystemClientProvider'\nimport { TenantClientProvider } from './lib/TenantClientProvider'\nimport { Workspace } from './lib/workspace/Workspace'\n\nconst jsSample = `\nexport const query = \\`\\`\nexport const variables = {}\n\n// or multiple queries\n// export const queries = []\n\n// or a factory\n// export default async () => ({ queries: [] })\n`\n\nexport const createContainer = ({ env, version, runtime, workspace }: {\n\tworkspace: Workspace\n\tenv: CliEnv\n\tversion: string\n\truntime: 'node' | 'bun'\n}) => {\n\treturn new Builder({})\n\t\t.addService('env', () =>\n\t\t\tenv)\n\t\t.addService('version', () =>\n\t\t\tversion)\n\t\t.addService('runtime', () =>\n\t\t\truntime)\n\t\t.addService('workspace', () =>\n\t\t\tworkspace)\n\t\t.addService('fs', () =>\n\t\t\tnew FileSystem())\n\t\t.addService('yamlHandler', ({ fs }) =>\n\t\t\tnew YamlHandler(fs))\n\t\t.addService('jsExecutor', () =>\n\t\t\tnew EvalExecutor())\n\t\t.addService('jsBuilder', () =>\n\t\t\tnew EsBuildBuilder())\n\t\t.addService('jsCodeRunner', ({ jsExecutor, jsBuilder }) =>\n\t\t\tnew JsCodeRunner(jsBuilder, jsExecutor))\n\n\t\t.addService('workspaceResolver', ({ yamlHandler }) =>\n\t\t\tnew WorkspaceResolver(yamlHandler))\n\n\t\t.addService('remoteProjectResolver', ({ env }) =>\n\t\t\tnew RemoteProjectResolver(env))\n\t\t.addService('remoteProjectProvider', ({ remoteProjectResolver }) => {\n\t\t\tconst provider = new RemoteProjectProvider()\n\t\t\tconst remoteProject = remoteProjectResolver.resolve()\n\t\t\tif (remoteProject) {\n\t\t\t\tprovider.setRemoteProject(remoteProject)\n\t\t\t}\n\t\t\treturn provider\n\t\t})\n\t\t.addService('systemClientProvider', ({ remoteProjectProvider }) =>\n\t\t\tnew SystemClientProvider(remoteProjectProvider))\n\t\t.addService('tenantClientProvider', ({ remoteProjectProvider }) =>\n\t\t\tnew TenantClientProvider(remoteProjectProvider))\n\t\t.addService('adminClient', ({ remoteProjectProvider }) =>\n\t\t\tnew AdminClient(remoteProjectProvider))\n\t\t.addService('migrationFilesManager', ({ jsCodeRunner, workspace }) => {\n\t\t\tconst runJs = runtime === 'bun' ? (file: string) => import(file) : jsCodeRunner.run\n\t\t\treturn new MigrationFilesManager(workspace.migrationsDir, {\n\t\t\t\tjson: new JsonLoader(new MigrationParser()),\n\t\t\t\tts: new JsLoader(new MigrationParser(), runJs),\n\t\t\t\tjs: new JsLoader(new MigrationParser(), runJs),\n\t\t\t})\n\t\t})\n\t\t.addService('packageWorkspaceResolver', ({ workspace, fs }) => {\n\t\t\tconst commandRunner = new CommandRunner()\n\t\t\treturn new PackageWorkspaceResolver(workspace.baseDir, fs, [\n\t\t\t\tnew Yarn(fs, commandRunner),\n\t\t\t\tnew YarnClassic(fs, commandRunner),\n\t\t\t\tnew Pnpm(fs, commandRunner),\n\t\t\t\tnew Npm(fs, commandRunner),\n\t\t\t])\n\t\t})\n\t\t.addService('dockerComposeManager', ({ workspace, env, fs, yamlHandler }) =>\n\t\t\tnew DockerComposeManager(workspace.baseDir, env.dockerComposeFile, fs, yamlHandler))\n\t\t.addService('modificationHandlerFactory', () =>\n\t\t\tnew ModificationHandlerFactory(ModificationHandlerFactory.defaultFactoryMap))\n\t\t.addService('schemaMigrator', ({ modificationHandlerFactory }) =>\n\t\t\tnew SchemaMigrator(modificationHandlerFactory))\n\t\t.addService('migrationsResolver', ({ migrationFilesManager }) =>\n\t\t\tnew MigrationsResolver(migrationFilesManager))\n\t\t.addService('schemaVersionBuilder', ({ migrationsResolver, schemaMigrator }) =>\n\t\t\tnew SchemaVersionBuilder(migrationsResolver, schemaMigrator))\n\t\t.addService('schemaDiffer', ({ schemaMigrator }) =>\n\t\t\tnew SchemaDiffer(schemaMigrator, {\n\t\t\t\tmaxPatchSize: env.migrationsOptions?.maxPatchSize,\n\t\t\t}))\n\t\t.addService('migrationCreator', ({ migrationFilesManager, schemaDiffer }) =>\n\t\t\tnew MigrationCreator(migrationFilesManager, schemaDiffer, {\n\t\t\t\tjson: JSON.stringify({ formatVersion: VERSION_LATEST, modifications: [] }, undefined, '\\t') + '\\n',\n\t\t\t\tts: jsSample,\n\t\t\t\tjs: jsSample,\n\t\t\t}))\n\t\t.addService('migrationDescriber', ({ modificationHandlerFactory }) =>\n\t\t\tnew MigrationDescriber(modificationHandlerFactory))\n\t\t.addService('migrationPrinter', ({ migrationDescriber }) =>\n\t\t\tnew MigrationPrinter(migrationDescriber))\n\t\t.addService('migrationsExecutor', () =>\n\t\t\tnew MigrationExecutor())\n\t\t.addService('migrationsStatusResolver', () =>\n\t\t\tnew MigrationsStatusResolver())\n\t\t.addService('migrationsStatusFacade', ({ systemClientProvider, migrationsResolver, migrationsStatusResolver }) =>\n\t\t\tnew MigrationsStatusFacade(systemClientProvider, migrationsResolver, migrationsStatusResolver))\n\t\t.addService('migrationExecutionFacade', ({ systemClientProvider, tenantClientProvider, remoteProjectProvider, schemaVersionBuilder, migrationPrinter, migrationsExecutor, migrationsStatusFacade }) =>\n\t\t\tnew MigrationExecutionFacade(systemClientProvider, tenantClientProvider, remoteProjectProvider, schemaVersionBuilder, migrationPrinter, migrationsExecutor, migrationsStatusFacade))\n\t\t.addService('migrationsValidator', ({ migrationDescriber, schemaMigrator }) =>\n\t\t\tnew MigrationsValidator(migrationDescriber, schemaMigrator))\n\t\t.addService('migrationRebaseFacade', ({ schemaVersionBuilder, migrationsValidator, systemClientProvider, migrationFilesManager }) =>\n\t\t\tnew MigrationRebaseFacade(schemaVersionBuilder, migrationsValidator, systemClientProvider, migrationFilesManager))\n\t\t.addService('schemaLoader', ({ workspace, jsCodeRunner, runtime }) =>\n\t\t\truntime === 'bun' ? new ImportSchemaLoader(workspace) : new TranspilingSchemaLoader(workspace, jsCodeRunner))\n\n\t\t.addService('adminDeployer', ({ remoteProjectProvider, adminClient, fs }) =>\n\t\t\tnew AdminDeployer(remoteProjectProvider, adminClient, fs))\n\t\t.addService('dataTransferClient', () =>\n\t\t\tnew DataTransferClient())\n\n\n\t\t.addService('deployCommand', ({ adminDeployer, migrationExecutionFacade, fs, remoteProjectProvider, remoteProjectResolver, workspace }) =>\n\t\t \tnew DeployCommand(adminDeployer, migrationExecutionFacade, fs, remoteProjectProvider, remoteProjectResolver, workspace))\n\t\t.addService('migrationAmendCommand', ({ migrationsResolver, systemClientProvider, migrationsStatusFacade, schemaLoader, schemaVersionBuilder, migrationCreator, migrationsValidator, migrationPrinter, schemaMigrator }) =>\n\t\t\tnew MigrationAmendCommand(migrationsResolver, systemClientProvider, migrationsStatusFacade, schemaLoader, schemaVersionBuilder, migrationCreator, migrationsValidator, migrationPrinter, schemaMigrator))\n\t\t.addService('migrationBlankCommand', ({ migrationCreator }) =>\n\t\t\tnew MigrationBlankCommand(migrationCreator))\n\t\t.addService('migrationDescribeCommand', ({ migrationPrinter, schemaVersionBuilder, migrationsResolver }) =>\n\t\t\tnew MigrationDescribeCommand(migrationPrinter, schemaVersionBuilder, migrationsResolver))\n\t\t.addService('migrationDiffCommand', ({ schemaLoader, schemaVersionBuilder, migrationCreator, migrationPrinter, migrationExecutionFacade }) =>\n\t\t\tnew MigrationDiffCommand(schemaLoader, schemaVersionBuilder, migrationCreator, migrationPrinter, migrationExecutionFacade))\n\t\t.addService('migrationExecuteCommand', ({ migrationExecutionFacade }) =>\n\t\t\tnew MigrationExecuteCommand(migrationExecutionFacade))\n\t\t.addService('migrationRebaseCommand', ({ migrationsResolver, migrationRebaseFacade }) =>\n\t\t\tnew MigrationRebaseCommand(migrationsResolver, migrationRebaseFacade))\n\t\t.addService('migrationStatusCommand', ({ migrationsStatusFacade, migrationFilesManager, systemClientProvider, migrationPrinter }) =>\n\t\t\tnew MigrationStatusCommand(migrationsStatusFacade, migrationFilesManager, systemClientProvider, migrationPrinter))\n\t\t.addService('versionCommand', ({ version }) =>\n\t\t\tnew VersionCommand(version))\n\t\t.addService('projectGenerateDocumentationCommand', ({ schemaLoader }) =>\n\t\t\tnew ProjectGenerateDocumentationCommand(schemaLoader))\n\t\t.addService('projectPrintSchemaCommand', ({ schemaLoader, schemaVersionBuilder }) =>\n\t\t\tnew ProjectPrintSchemaCommand(schemaLoader, schemaVersionBuilder))\n\t\t.addService('projectValidateCommand', ({ schemaLoader, migrationsValidator, migrationsResolver, schemaDiffer, schemaVersionBuilder }) =>\n\t\t\tnew ProjectValidateCommand(schemaLoader, migrationsValidator, migrationsResolver, schemaDiffer, schemaVersionBuilder))\n\t\t.addService('exportCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew ExportCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('importCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew ImportCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('transferCommand', ({ dataTransferClient, remoteProjectResolver }) =>\n\t\t\tnew TransferCommand(remoteProjectResolver, dataTransferClient))\n\t\t.addService('workspaceUpdateCommand', ({ packageWorkspaceResolver, dockerComposeManager }) =>\n\t\t\tnew WorkspaceUpdateApiCommand(packageWorkspaceResolver, dockerComposeManager))\n\t\t.addService('commandList', dic => {\n\t\t\tconst commands: CommandFactoryList = {\n\t\t\t\t['deploy']: () => dic.deployCommand,\n\t\t\t\t['version']: () => dic.versionCommand,\n\t\t\t\t['data:export']: () => dic.exportCommand,\n\t\t\t\t['data:import']: () => dic.importCommand,\n\t\t\t\t['data:transfer']: () => dic.transferCommand,\n\t\t\t\t['migrations:diff']: () => dic.migrationDiffCommand,\n\t\t\t\t['migrations:amend']: () => dic.migrationAmendCommand,\n\t\t\t\t['migrations:blank']: () => dic.migrationBlankCommand,\n\t\t\t\t['migrations:describe']: () => dic.migrationDescribeCommand,\n\t\t\t\t['migrations:execute']: () => dic.migrationExecuteCommand,\n\t\t\t\t['migrations:rebase']: () => dic.migrationRebaseCommand,\n\t\t\t\t['migrations:status']: () => dic.migrationStatusCommand,\n\t\t\t\t['workspace:update:api']: () => dic.workspaceUpdateCommand,\n\t\t\t\t['project:validate']: () => dic.projectValidateCommand,\n\t\t\t\t['project:print-schema']: () => dic.projectPrintSchemaCommand,\n\t\t\t\t['project:generate-doc']: () => dic.projectGenerateDocumentationCommand,\n\t\t\t}\n\t\t\treturn commands\n\t\t})\n\t\t.addService('commandManager', ({ commandList }) =>\n\t\t\tnew CommandManager(commandList))\n\n\t\t.addService('versionChecker', ({ version, workspace, packageWorkspaceResolver, dockerComposeManager }) =>\n\t\t\tnew VersionChecker(version, workspace.baseDir, packageWorkspaceResolver, dockerComposeManager))\n\t\t.addService('application', ({ commandManager, versionChecker }) => {\n\t\t\tconst app = new Application(\n\t\t\t\tcommandManager,\n\t\t\t\t`Contember CLI version ${version}`,\n\t\t\t\t{\n\t\t\t\t\tbeforeRun: async ({ name }) => {\n\t\t\t\t\t\tif (!process.env.CONTEMBER_SKIP_VERSION_CHECK && !['deploy', 'version', 'data:export', 'data:import', 'data:transfer'].includes(name)) {\n\t\t\t\t\t\t\tawait versionChecker.checkVersions()\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t\treturn app\n\t\t})\n\t\t.build()\n}\n"],"names":["env","workspace","runtime","version"],"mappings":"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"}
@@ -8,7 +8,10 @@ const readCliEnv = () => {
8
8
  apiUrl: process.env.CONTEMBER_API_URL ?? process.env.CONTEMBER_INSTANCE,
9
9
  projectName: process.env.CONTEMBER_PROJECT_NAME,
10
10
  dockerComposeFile: process.env.COMPOSE_FILE,
11
- dsn: process.env.CONTEMBER_DSN
11
+ dsn: process.env.CONTEMBER_DSN,
12
+ migrationsOptions: {
13
+ maxPatchSize: process.env.CONTEMBER_MIGRATIONS_MAX_PATCH_SIZE ? parseInt(process.env.CONTEMBER_MIGRATIONS_MAX_PATCH_SIZE) : void 0
14
+ }
12
15
  };
13
16
  };
14
17
  exports.readCliEnv = readCliEnv;
@@ -1 +1 @@
1
- {"version":3,"file":"env.cjs","sources":["../../../../../packages/cli/src/lib/env.ts"],"sourcesContent":["export interface CliEnv {\n\tapiToken?: string\n\tloginToken?: string\n\tapiUrl?: string\n\tprojectName?: string\n\tdockerComposeFile?: string\n\tdsn?: string\n\tdir?: string\n}\n\nexport const readCliEnv = (): CliEnv => {\n\treturn {\n\t\tdir: process.env.CONTEMBER_DIR,\n\t\tapiToken: process.env.CONTEMBER_API_TOKEN,\n\t\tloginToken: process.env.CONTEMBER_LOGIN_TOKEN,\n\t\tapiUrl: process.env.CONTEMBER_API_URL ?? process.env.CONTEMBER_INSTANCE,\n\t\tprojectName: process.env.CONTEMBER_PROJECT_NAME,\n\t\tdockerComposeFile: process.env.COMPOSE_FILE,\n\t\tdsn: process.env.CONTEMBER_DSN,\n\t}\n}\n"],"names":[],"mappings":";;AAUO,MAAM,aAAa,MAAc;AAChC,SAAA;AAAA,IACN,KAAK,QAAQ,IAAI;AAAA,IACjB,UAAU,QAAQ,IAAI;AAAA,IACtB,YAAY,QAAQ,IAAI;AAAA,IACxB,QAAQ,QAAQ,IAAI,qBAAqB,QAAQ,IAAI;AAAA,IACrD,aAAa,QAAQ,IAAI;AAAA,IACzB,mBAAmB,QAAQ,IAAI;AAAA,IAC/B,KAAK,QAAQ,IAAI;AAAA,EAClB;AACD;;"}
1
+ {"version":3,"file":"env.cjs","sources":["../../../../../packages/cli/src/lib/env.ts"],"sourcesContent":["export interface CliEnv {\n\tapiToken?: string\n\tloginToken?: string\n\tapiUrl?: string\n\tprojectName?: string\n\tdockerComposeFile?: string\n\tdsn?: string\n\tdir?: string\n\tmigrationsOptions?: {\n\t\tmaxPatchSize?: number\n\t}\n}\n\nexport const readCliEnv = (): CliEnv => {\n\treturn {\n\t\tdir: process.env.CONTEMBER_DIR,\n\t\tapiToken: process.env.CONTEMBER_API_TOKEN,\n\t\tloginToken: process.env.CONTEMBER_LOGIN_TOKEN,\n\t\tapiUrl: process.env.CONTEMBER_API_URL ?? process.env.CONTEMBER_INSTANCE,\n\t\tprojectName: process.env.CONTEMBER_PROJECT_NAME,\n\t\tdockerComposeFile: process.env.COMPOSE_FILE,\n\t\tdsn: process.env.CONTEMBER_DSN,\n\t\tmigrationsOptions: {\n\t\t\tmaxPatchSize: process.env.CONTEMBER_MIGRATIONS_MAX_PATCH_SIZE ? parseInt(process.env.CONTEMBER_MIGRATIONS_MAX_PATCH_SIZE) : undefined,\n\t\t},\n\t}\n}\n"],"names":[],"mappings":";;AAaO,MAAM,aAAa,MAAc;AAChC,SAAA;AAAA,IACN,KAAK,QAAQ,IAAI;AAAA,IACjB,UAAU,QAAQ,IAAI;AAAA,IACtB,YAAY,QAAQ,IAAI;AAAA,IACxB,QAAQ,QAAQ,IAAI,qBAAqB,QAAQ,IAAI;AAAA,IACrD,aAAa,QAAQ,IAAI;AAAA,IACzB,mBAAmB,QAAQ,IAAI;AAAA,IAC/B,KAAK,QAAQ,IAAI;AAAA,IACjB,mBAAmB;AAAA,MAClB,cAAc,QAAQ,IAAI,sCAAsC,SAAS,QAAQ,IAAI,mCAAmC,IAAI;AAAA,IAAA;AAAA,EAE9H;AACD;;"}
@@ -6,7 +6,10 @@ const readCliEnv = () => {
6
6
  apiUrl: process.env.CONTEMBER_API_URL ?? process.env.CONTEMBER_INSTANCE,
7
7
  projectName: process.env.CONTEMBER_PROJECT_NAME,
8
8
  dockerComposeFile: process.env.COMPOSE_FILE,
9
- dsn: process.env.CONTEMBER_DSN
9
+ dsn: process.env.CONTEMBER_DSN,
10
+ migrationsOptions: {
11
+ maxPatchSize: process.env.CONTEMBER_MIGRATIONS_MAX_PATCH_SIZE ? parseInt(process.env.CONTEMBER_MIGRATIONS_MAX_PATCH_SIZE) : void 0
12
+ }
10
13
  };
11
14
  };
12
15
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sources":["../../../../../packages/cli/src/lib/env.ts"],"sourcesContent":["export interface CliEnv {\n\tapiToken?: string\n\tloginToken?: string\n\tapiUrl?: string\n\tprojectName?: string\n\tdockerComposeFile?: string\n\tdsn?: string\n\tdir?: string\n}\n\nexport const readCliEnv = (): CliEnv => {\n\treturn {\n\t\tdir: process.env.CONTEMBER_DIR,\n\t\tapiToken: process.env.CONTEMBER_API_TOKEN,\n\t\tloginToken: process.env.CONTEMBER_LOGIN_TOKEN,\n\t\tapiUrl: process.env.CONTEMBER_API_URL ?? process.env.CONTEMBER_INSTANCE,\n\t\tprojectName: process.env.CONTEMBER_PROJECT_NAME,\n\t\tdockerComposeFile: process.env.COMPOSE_FILE,\n\t\tdsn: process.env.CONTEMBER_DSN,\n\t}\n}\n"],"names":[],"mappings":"AAUO,MAAM,aAAa,MAAc;AAChC,SAAA;AAAA,IACN,KAAK,QAAQ,IAAI;AAAA,IACjB,UAAU,QAAQ,IAAI;AAAA,IACtB,YAAY,QAAQ,IAAI;AAAA,IACxB,QAAQ,QAAQ,IAAI,qBAAqB,QAAQ,IAAI;AAAA,IACrD,aAAa,QAAQ,IAAI;AAAA,IACzB,mBAAmB,QAAQ,IAAI;AAAA,IAC/B,KAAK,QAAQ,IAAI;AAAA,EAClB;AACD;"}
1
+ {"version":3,"file":"env.js","sources":["../../../../../packages/cli/src/lib/env.ts"],"sourcesContent":["export interface CliEnv {\n\tapiToken?: string\n\tloginToken?: string\n\tapiUrl?: string\n\tprojectName?: string\n\tdockerComposeFile?: string\n\tdsn?: string\n\tdir?: string\n\tmigrationsOptions?: {\n\t\tmaxPatchSize?: number\n\t}\n}\n\nexport const readCliEnv = (): CliEnv => {\n\treturn {\n\t\tdir: process.env.CONTEMBER_DIR,\n\t\tapiToken: process.env.CONTEMBER_API_TOKEN,\n\t\tloginToken: process.env.CONTEMBER_LOGIN_TOKEN,\n\t\tapiUrl: process.env.CONTEMBER_API_URL ?? process.env.CONTEMBER_INSTANCE,\n\t\tprojectName: process.env.CONTEMBER_PROJECT_NAME,\n\t\tdockerComposeFile: process.env.COMPOSE_FILE,\n\t\tdsn: process.env.CONTEMBER_DSN,\n\t\tmigrationsOptions: {\n\t\t\tmaxPatchSize: process.env.CONTEMBER_MIGRATIONS_MAX_PATCH_SIZE ? parseInt(process.env.CONTEMBER_MIGRATIONS_MAX_PATCH_SIZE) : undefined,\n\t\t},\n\t}\n}\n"],"names":[],"mappings":"AAaO,MAAM,aAAa,MAAc;AAChC,SAAA;AAAA,IACN,KAAK,QAAQ,IAAI;AAAA,IACjB,UAAU,QAAQ,IAAI;AAAA,IACtB,YAAY,QAAQ,IAAI;AAAA,IACxB,QAAQ,QAAQ,IAAI,qBAAqB,QAAQ,IAAI;AAAA,IACrD,aAAa,QAAQ,IAAI;AAAA,IACzB,mBAAmB,QAAQ,IAAI;AAAA,IAC/B,KAAK,QAAQ,IAAI;AAAA,IACjB,mBAAmB;AAAA,MAClB,cAAc,QAAQ,IAAI,sCAAsC,SAAS,QAAQ,IAAI,mCAAmC,IAAI;AAAA,IAAA;AAAA,EAE9H;AACD;"}