@strapi/upgrade 5.48.1 → 5.49.0

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 (43) hide show
  1. package/dist/cli.js +6 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/package.json.js +1 -1
  4. package/dist/package.json.mjs +1 -1
  5. package/dist/src/cli/commands/codemods.js +5 -1
  6. package/dist/src/cli/commands/codemods.js.map +1 -1
  7. package/dist/src/cli/commands/upgrade.js +5 -1
  8. package/dist/src/cli/commands/upgrade.js.map +1 -1
  9. package/dist/src/cli/errors.js +5 -1
  10. package/dist/src/cli/errors.js.map +1 -1
  11. package/dist/src/modules/codemod/codemod.js +5 -1
  12. package/dist/src/modules/codemod/codemod.js.map +1 -1
  13. package/dist/src/modules/codemod-repository/constants.js +5 -1
  14. package/dist/src/modules/codemod-repository/constants.js.map +1 -1
  15. package/dist/src/modules/codemod-repository/repository.js +18 -11
  16. package/dist/src/modules/codemod-repository/repository.js.map +1 -1
  17. package/dist/src/modules/file-scanner/scanner.js +7 -2
  18. package/dist/src/modules/file-scanner/scanner.js.map +1 -1
  19. package/dist/src/modules/format/formats.js +38 -33
  20. package/dist/src/modules/format/formats.js.map +1 -1
  21. package/dist/src/modules/json/file.js +6 -2
  22. package/dist/src/modules/json/file.js.map +1 -1
  23. package/dist/src/modules/logger/logger.js +8 -4
  24. package/dist/src/modules/logger/logger.js.map +1 -1
  25. package/dist/src/modules/npm/package.js +12 -6
  26. package/dist/src/modules/npm/package.js.map +1 -1
  27. package/dist/src/modules/project/project.js +19 -12
  28. package/dist/src/modules/project/project.js.map +1 -1
  29. package/dist/src/modules/runner/json/transform.js +6 -2
  30. package/dist/src/modules/runner/json/transform.js.map +1 -1
  31. package/dist/src/modules/upgrader/upgrader.js +13 -7
  32. package/dist/src/modules/upgrader/upgrader.js.map +1 -1
  33. package/dist/src/modules/version/range.js +7 -3
  34. package/dist/src/modules/version/range.js.map +1 -1
  35. package/dist/src/modules/version/semver.js +7 -3
  36. package/dist/src/modules/version/semver.js.map +1 -1
  37. package/dist/src/tasks/codemods/utils.js +5 -1
  38. package/dist/src/tasks/codemods/utils.js.map +1 -1
  39. package/dist/src/tasks/upgrade/requirements/common.js +7 -3
  40. package/dist/src/tasks/upgrade/requirements/common.js.map +1 -1
  41. package/dist/src/tasks/upgrade/upgrade.js +5 -1
  42. package/dist/src/tasks/upgrade/upgrade.js.map +1 -1
  43. package/package.json +5 -5
package/dist/cli.js CHANGED
@@ -7,10 +7,15 @@ var upgrade = require('./src/cli/commands/upgrade.js');
7
7
  var codemods = require('./src/cli/commands/codemods.js');
8
8
  var _package = require('./package.json.js');
9
9
 
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var os__default = /*#__PURE__*/_interopDefault(os);
13
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
14
+
10
15
  upgrade.register(commander.program);
11
16
  codemods.register(commander.program);
12
17
  commander.program.usage('<command> [options]').on('command:*', ([invalidCmd])=>{
13
- console.error(chalk.red(`[ERROR] Invalid command: ${invalidCmd}.${os.EOL} See --help for a list of available commands.`));
18
+ console.error(chalk__default.default.red(`[ERROR] Invalid command: ${invalidCmd}.${os__default.default.EOL} See --help for a list of available commands.`));
14
19
  process.exit(1);
15
20
  }).helpOption('-h, --help', 'Print command line options').addHelpCommand('help [command]', 'Print options for a specific command').version(_package.version).parse(process.argv);
16
21
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sources":["../src/cli/index.ts"],"sourcesContent":["import os from 'os';\nimport chalk from 'chalk';\nimport { program } from 'commander';\n\nimport { register as registerUpgradeCommands } from './commands/upgrade';\nimport { register as registerCodemodsCommands } from './commands/codemods';\n\nimport { version as packageJSONVersion } from '../../package.json';\n\nregisterUpgradeCommands(program);\nregisterCodemodsCommands(program);\n\nprogram\n .usage('<command> [options]')\n .on('command:*', ([invalidCmd]) => {\n console.error(\n chalk.red(\n `[ERROR] Invalid command: ${invalidCmd}.${os.EOL} See --help for a list of available commands.`\n )\n );\n\n process.exit(1);\n })\n .helpOption('-h, --help', 'Print command line options')\n .addHelpCommand('help [command]', 'Print options for a specific command')\n .version(packageJSONVersion)\n .parse(process.argv);\n"],"names":["registerUpgradeCommands","program","registerCodemodsCommands","usage","on","invalidCmd","console","error","chalk","red","os","EOL","process","exit","helpOption","addHelpCommand","version","packageJSONVersion","parse","argv"],"mappings":";;;;;;;;;AASAA,gBAAAA,CAAwBC,iBAAAA,CAAAA;AACxBC,iBAAAA,CAAyBD,iBAAAA,CAAAA;AAEzBA,iBAAAA,CACGE,KAAK,CAAC,qBAAA,CAAA,CACNC,EAAE,CAAC,WAAA,EAAa,CAAC,CAACC,UAAAA,CAAW,GAAA;AAC5BC,IAAAA,OAAAA,CAAQC,KAAK,CACXC,KAAAA,CAAMC,GAAG,CACP,CAAC,yBAAyB,EAAEJ,UAAAA,CAAW,CAAC,EAAEK,EAAAA,CAAGC,GAAG,CAAC,6CAA6C,CAAC,CAAA,CAAA;AAInGC,IAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,CAAA,CAAA,CACCC,UAAU,CAAC,YAAA,EAAc,4BAAA,CAAA,CACzBC,cAAc,CAAC,gBAAA,EAAkB,sCAAA,CAAA,CACjCC,OAAO,CAACC,gBAAAA,CAAAA,CACRC,KAAK,CAACN,QAAQO,IAAI,CAAA;;"}
1
+ {"version":3,"file":"cli.js","sources":["../src/cli/index.ts"],"sourcesContent":["import os from 'os';\nimport chalk from 'chalk';\nimport { program } from 'commander';\n\nimport { register as registerUpgradeCommands } from './commands/upgrade';\nimport { register as registerCodemodsCommands } from './commands/codemods';\n\nimport { version as packageJSONVersion } from '../../package.json';\n\nregisterUpgradeCommands(program);\nregisterCodemodsCommands(program);\n\nprogram\n .usage('<command> [options]')\n .on('command:*', ([invalidCmd]) => {\n console.error(\n chalk.red(\n `[ERROR] Invalid command: ${invalidCmd}.${os.EOL} See --help for a list of available commands.`\n )\n );\n\n process.exit(1);\n })\n .helpOption('-h, --help', 'Print command line options')\n .addHelpCommand('help [command]', 'Print options for a specific command')\n .version(packageJSONVersion)\n .parse(process.argv);\n"],"names":["registerUpgradeCommands","program","registerCodemodsCommands","usage","on","invalidCmd","console","error","chalk","red","os","EOL","process","exit","helpOption","addHelpCommand","version","packageJSONVersion","parse","argv"],"mappings":";;;;;;;;;;;;;;AASAA,gBAAAA,CAAwBC,iBAAAA,CAAAA;AACxBC,iBAAAA,CAAyBD,iBAAAA,CAAAA;AAEzBA,iBAAAA,CACGE,KAAK,CAAC,qBAAA,CAAA,CACNC,EAAE,CAAC,WAAA,EAAa,CAAC,CAACC,UAAAA,CAAW,GAAA;AAC5BC,IAAAA,OAAAA,CAAQC,KAAK,CACXC,sBAAAA,CAAMC,GAAG,CACP,CAAC,yBAAyB,EAAEJ,UAAAA,CAAW,CAAC,EAAEK,mBAAAA,CAAGC,GAAG,CAAC,6CAA6C,CAAC,CAAA,CAAA;AAInGC,IAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,CAAA,CAAA,CACCC,UAAU,CAAC,YAAA,EAAc,4BAAA,CAAA,CACzBC,cAAc,CAAC,gBAAA,EAAkB,sCAAA,CAAA,CACjCC,OAAO,CAACC,gBAAAA,CAAAA,CACRC,KAAK,CAACN,QAAQO,IAAI,CAAA;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var version = "5.48.1";
3
+ var version = "5.49.0";
4
4
 
5
5
  exports.version = version;
6
6
  //# sourceMappingURL=package.json.js.map
@@ -1,4 +1,4 @@
1
- var version = "5.48.1";
1
+ var version = "5.49.0";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=package.json.mjs.map
@@ -25,6 +25,10 @@ var runCodemods$1 = require('../../tasks/codemods/run-codemods.js');
25
25
  var listCodemods$1 = require('../../tasks/codemods/list-codemods.js');
26
26
  var options = require('../options.js');
27
27
 
28
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
29
+
30
+ var prompts__default = /*#__PURE__*/_interopDefault(prompts);
31
+
28
32
  const DEFAULT_TARGET = types.ReleaseType.Major;
29
33
  const runCodemods = async (options)=>{
30
34
  const { silent, debug } = options;
@@ -43,7 +47,7 @@ const runCodemods = async (options)=>{
43
47
  logger$1.info('No codemods to run');
44
48
  return [];
45
49
  }
46
- const { selectedCodemods } = await prompts({
50
+ const { selectedCodemods } = await prompts__default.default({
47
51
  type: 'autocompleteMultiselect',
48
52
  name: 'selectedCodemods',
49
53
  message: 'Choose the codemods you would like to run:',
@@ -1 +1 @@
1
- {"version":3,"file":"codemods.js","sources":["../../../../src/cli/commands/codemods.ts"],"sourcesContent":["import prompts from 'prompts';\n\nimport type { Command } from 'commander';\nimport { loggerFactory } from '../../modules/logger';\nimport { Version } from '../../modules/version';\nimport { handleError } from '../errors';\nimport * as tasks from '../../tasks';\nimport { debugOption, dryOption, projectPathOption, rangeOption, silentOption } from '../options';\n\nimport type {\n CLIListCodemodsOptions,\n CLIRunCodemodsOptions,\n ListCodemodsCommand,\n RunCodemodsCommand,\n} from '../types';\nimport type { Codemod } from '../../modules/codemod';\n\nconst DEFAULT_TARGET = Version.ReleaseType.Major;\n\nexport const runCodemods: RunCodemodsCommand = async (options) => {\n const { silent, debug } = options;\n const logger = loggerFactory({ silent, debug });\n\n logger.warn(\n \"Please make sure you've created a backup of your codebase and files before running the codemods\"\n );\n\n const confirm = async (message: string) => {\n const { confirm } = await prompts({\n name: 'confirm',\n type: 'confirm',\n message,\n });\n\n // If confirm is undefined (Ctrl + C), default to false\n return confirm ?? false;\n };\n\n const selectCodemods = async (codemods: Codemod.VersionedCollection[]) => {\n const selectableCodemods = codemods\n .map(({ version, codemods }) =>\n codemods.map((codemod) => ({\n title: `(${version}) ${codemod.format()}`,\n value: codemod,\n selected: true,\n }))\n )\n .flat();\n\n if (selectableCodemods.length === 0) {\n logger.info('No codemods to run');\n return [];\n }\n\n const { selectedCodemods }: { selectedCodemods: Codemod.Codemod[] } = await prompts({\n type: 'autocompleteMultiselect',\n name: 'selectedCodemods',\n message: 'Choose the codemods you would like to run:',\n choices: selectableCodemods,\n });\n\n if (!selectedCodemods || selectedCodemods.length === 0) {\n logger.info('No codemods selected');\n return [];\n }\n\n return selectedCodemods.map<Codemod.VersionedCollection>((codemod) => ({\n version: codemod.version,\n codemods: [codemod],\n }));\n };\n\n return tasks\n .runCodemods({\n logger,\n confirm,\n selectCodemods,\n dry: options.dry,\n cwd: options.projectPath,\n target: options.range ?? DEFAULT_TARGET,\n uid: options.uid,\n })\n .catch((err) => handleError(err, options.silent));\n};\n\nexport const listCodemods: ListCodemodsCommand = async (options) => {\n const { silent, debug } = options;\n const logger = loggerFactory({ silent, debug });\n\n return tasks\n .listCodemods({\n cwd: options.projectPath,\n target: options.range ?? DEFAULT_TARGET,\n logger,\n })\n .catch((err) => handleError(err, options.silent));\n};\n\n/**\n * Registers codemods related commands.\n */\nexport const register = (program: Command) => {\n const codemodsCommand = program.command('codemods');\n\n // upgrade codemods run [options] [uid]\n codemodsCommand\n .command('run [uid]')\n .description(\n `\nExecutes a set of codemods on the current project.\n\nIf the optional UID argument is provided, the command specifically runs the codemod associated with that UID.\nWithout the UID, the command produces a list of all available codemods for your project.\n\nBy default, when executed on a Strapi application project, it offers codemods matching the current major version of the app.\nWhen executed on a Strapi plugin project, it shows every codemods.\n`\n )\n .addOption(projectPathOption)\n .addOption(dryOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(rangeOption)\n .action(async (uid: string | undefined, options: CLIRunCodemodsOptions) => {\n return runCodemods({ ...options, uid });\n });\n\n // upgrade codemods ls [options]\n codemodsCommand\n .command('ls')\n .description(`List available codemods`)\n .addOption(projectPathOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(rangeOption)\n .action(async (options: CLIListCodemodsOptions) => {\n return listCodemods(options);\n });\n};\n"],"names":["DEFAULT_TARGET","Version","Major","runCodemods","options","silent","debug","logger","loggerFactory","warn","selectCodemods","codemods","selectableCodemods","map","version","codemod","title","format","value","selected","flat","length","info","selectedCodemods","prompts","type","name","message","choices","tasks","confirm","dry","cwd","projectPath","target","range","uid","catch","err","handleError","listCodemods","register","program","codemodsCommand","command","description","addOption","projectPathOption","dryOption","debugOption","silentOption","rangeOption","action"],"mappings":"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"}
1
+ {"version":3,"file":"codemods.js","sources":["../../../../src/cli/commands/codemods.ts"],"sourcesContent":["import prompts from 'prompts';\n\nimport type { Command } from 'commander';\nimport { loggerFactory } from '../../modules/logger';\nimport { Version } from '../../modules/version';\nimport { handleError } from '../errors';\nimport * as tasks from '../../tasks';\nimport { debugOption, dryOption, projectPathOption, rangeOption, silentOption } from '../options';\n\nimport type {\n CLIListCodemodsOptions,\n CLIRunCodemodsOptions,\n ListCodemodsCommand,\n RunCodemodsCommand,\n} from '../types';\nimport type { Codemod } from '../../modules/codemod';\n\nconst DEFAULT_TARGET = Version.ReleaseType.Major;\n\nexport const runCodemods: RunCodemodsCommand = async (options) => {\n const { silent, debug } = options;\n const logger = loggerFactory({ silent, debug });\n\n logger.warn(\n \"Please make sure you've created a backup of your codebase and files before running the codemods\"\n );\n\n const confirm = async (message: string) => {\n const { confirm } = await prompts({\n name: 'confirm',\n type: 'confirm',\n message,\n });\n\n // If confirm is undefined (Ctrl + C), default to false\n return confirm ?? false;\n };\n\n const selectCodemods = async (codemods: Codemod.VersionedCollection[]) => {\n const selectableCodemods = codemods\n .map(({ version, codemods }) =>\n codemods.map((codemod) => ({\n title: `(${version}) ${codemod.format()}`,\n value: codemod,\n selected: true,\n }))\n )\n .flat();\n\n if (selectableCodemods.length === 0) {\n logger.info('No codemods to run');\n return [];\n }\n\n const { selectedCodemods }: { selectedCodemods: Codemod.Codemod[] } = await prompts({\n type: 'autocompleteMultiselect',\n name: 'selectedCodemods',\n message: 'Choose the codemods you would like to run:',\n choices: selectableCodemods,\n });\n\n if (!selectedCodemods || selectedCodemods.length === 0) {\n logger.info('No codemods selected');\n return [];\n }\n\n return selectedCodemods.map<Codemod.VersionedCollection>((codemod) => ({\n version: codemod.version,\n codemods: [codemod],\n }));\n };\n\n return tasks\n .runCodemods({\n logger,\n confirm,\n selectCodemods,\n dry: options.dry,\n cwd: options.projectPath,\n target: options.range ?? DEFAULT_TARGET,\n uid: options.uid,\n })\n .catch((err) => handleError(err, options.silent));\n};\n\nexport const listCodemods: ListCodemodsCommand = async (options) => {\n const { silent, debug } = options;\n const logger = loggerFactory({ silent, debug });\n\n return tasks\n .listCodemods({\n cwd: options.projectPath,\n target: options.range ?? DEFAULT_TARGET,\n logger,\n })\n .catch((err) => handleError(err, options.silent));\n};\n\n/**\n * Registers codemods related commands.\n */\nexport const register = (program: Command) => {\n const codemodsCommand = program.command('codemods');\n\n // upgrade codemods run [options] [uid]\n codemodsCommand\n .command('run [uid]')\n .description(\n `\nExecutes a set of codemods on the current project.\n\nIf the optional UID argument is provided, the command specifically runs the codemod associated with that UID.\nWithout the UID, the command produces a list of all available codemods for your project.\n\nBy default, when executed on a Strapi application project, it offers codemods matching the current major version of the app.\nWhen executed on a Strapi plugin project, it shows every codemods.\n`\n )\n .addOption(projectPathOption)\n .addOption(dryOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(rangeOption)\n .action(async (uid: string | undefined, options: CLIRunCodemodsOptions) => {\n return runCodemods({ ...options, uid });\n });\n\n // upgrade codemods ls [options]\n codemodsCommand\n .command('ls')\n .description(`List available codemods`)\n .addOption(projectPathOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(rangeOption)\n .action(async (options: CLIListCodemodsOptions) => {\n return listCodemods(options);\n });\n};\n"],"names":["DEFAULT_TARGET","Version","Major","runCodemods","options","silent","debug","logger","loggerFactory","warn","selectCodemods","codemods","selectableCodemods","map","version","codemod","title","format","value","selected","flat","length","info","selectedCodemods","prompts","type","name","message","choices","tasks","confirm","dry","cwd","projectPath","target","range","uid","catch","err","handleError","listCodemods","register","program","codemodsCommand","command","description","addOption","projectPathOption","dryOption","debugOption","silentOption","rangeOption","action"],"mappings":"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"}
@@ -23,6 +23,10 @@ require('../../modules/codemod/constants.js');
23
23
  require('../../modules/codemod-repository/constants.js');
24
24
  var options = require('../options.js');
25
25
 
26
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
27
+
28
+ var prompts__default = /*#__PURE__*/_interopDefault(prompts);
29
+
26
30
  const upgrade = async (options)=>{
27
31
  try {
28
32
  const { silent, debug, yes } = options;
@@ -35,7 +39,7 @@ const upgrade = async (options)=>{
35
39
  if (yes) {
36
40
  return true;
37
41
  }
38
- const { confirm } = await prompts({
42
+ const { confirm } = await prompts__default.default({
39
43
  name: 'confirm',
40
44
  type: 'confirm',
41
45
  message
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sources":["../../../../src/cli/commands/upgrade.ts"],"sourcesContent":["import prompts from 'prompts';\nimport { InvalidArgumentError, Option } from 'commander';\n\nimport type { Command } from 'commander';\n\nimport { loggerFactory } from '../../modules/logger';\nimport { Version, isLiteralSemVer, isValidSemVer, semVerFactory } from '../../modules/version';\nimport { handleError } from '../errors';\nimport * as tasks from '../../tasks';\nimport {\n autoConfirmOption,\n debugOption,\n dryOption,\n projectPathOption,\n silentOption,\n} from '../options';\n\nimport type { CLIUpgradeOptions, CLIUpgradeToOptions, UpgradeCommand } from '../types';\n\nexport const upgrade: UpgradeCommand = async (options) => {\n try {\n const { silent, debug, yes } = options;\n const logger = loggerFactory({ silent, debug });\n\n logger.warn(\n \"Please make sure you've created a backup of your codebase and files before upgrading\"\n );\n\n const confirm = async (message: string) => {\n if (yes) {\n return true;\n }\n\n const { confirm } = await prompts({\n name: 'confirm',\n type: 'confirm',\n message,\n });\n\n // If confirm is undefined (Ctrl + C), default to false\n return confirm ?? false;\n };\n\n await tasks.upgrade({\n logger,\n confirm,\n dry: options.dry,\n cwd: options.projectPath,\n target: options.target,\n codemodsTarget: options.codemodsTarget,\n });\n } catch (err) {\n handleError(err, options.silent);\n }\n};\n\n/**\n * Registers upgrade related codemods.\n */\nexport const register = (program: Command) => {\n const addReleaseUpgradeCommand = (releaseType: Version.ReleaseType, description: string) => {\n program\n .command(releaseType)\n .description(description)\n .addOption(projectPathOption)\n .addOption(dryOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(autoConfirmOption)\n .action(async (options: CLIUpgradeOptions) => {\n return upgrade({ ...options, target: releaseType });\n });\n };\n\n // upgrade latest\n addReleaseUpgradeCommand(\n Version.ReleaseType.Latest,\n 'Upgrade to the latest available version of Strapi'\n );\n\n // upgrade major\n addReleaseUpgradeCommand(\n Version.ReleaseType.Major,\n 'Upgrade to the next available major version of Strapi'\n );\n\n // upgrade minor\n addReleaseUpgradeCommand(\n Version.ReleaseType.Minor,\n 'Upgrade to the latest minor and patch version of Strapi for the current major'\n );\n\n // upgrade patch\n addReleaseUpgradeCommand(\n Version.ReleaseType.Patch,\n 'Upgrade to latest patch version of Strapi for the current major and minor'\n );\n\n // upgrade to <target>\n program\n .command('to')\n .description('Upgrade to a specific version of Strapi')\n .argument('<target>', 'Target version', (target) => {\n if (!isValidSemVer(target)) {\n throw new InvalidArgumentError(\n `Invalid target supplied, expected a valid semver but got \"${target}\"`\n );\n }\n\n return semVerFactory(target);\n })\n .addOption(projectPathOption)\n .addOption(dryOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(autoConfirmOption)\n .addOption(\n new Option(\n '-c, --codemods-target <codemodsTarget>',\n 'Use a custom target for the codemods execution. Useful when targeting pre-releases'\n ).argParser((codemodsTarget) => {\n if (!isLiteralSemVer(codemodsTarget)) {\n throw new InvalidArgumentError(\n `Expected a version with the following format: \"<number>.<number>.<number>\"`\n );\n }\n\n return semVerFactory(codemodsTarget);\n })\n )\n .action(async (target: Version.SemVer, options: CLIUpgradeToOptions) => {\n return upgrade({ ...options, target });\n });\n};\n"],"names":["upgrade","options","silent","debug","yes","logger","loggerFactory","warn","confirm","message","prompts","name","type","tasks","dry","cwd","projectPath","target","codemodsTarget","err","handleError","register","program","addReleaseUpgradeCommand","releaseType","description","command","addOption","projectPathOption","dryOption","debugOption","silentOption","autoConfirmOption","action","Version","Latest","Major","Minor","Patch","argument","isValidSemVer","InvalidArgumentError","semVerFactory","Option","argParser","isLiteralSemVer"],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sources":["../../../../src/cli/commands/upgrade.ts"],"sourcesContent":["import prompts from 'prompts';\nimport { InvalidArgumentError, Option } from 'commander';\n\nimport type { Command } from 'commander';\n\nimport { loggerFactory } from '../../modules/logger';\nimport { Version, isLiteralSemVer, isValidSemVer, semVerFactory } from '../../modules/version';\nimport { handleError } from '../errors';\nimport * as tasks from '../../tasks';\nimport {\n autoConfirmOption,\n debugOption,\n dryOption,\n projectPathOption,\n silentOption,\n} from '../options';\n\nimport type { CLIUpgradeOptions, CLIUpgradeToOptions, UpgradeCommand } from '../types';\n\nexport const upgrade: UpgradeCommand = async (options) => {\n try {\n const { silent, debug, yes } = options;\n const logger = loggerFactory({ silent, debug });\n\n logger.warn(\n \"Please make sure you've created a backup of your codebase and files before upgrading\"\n );\n\n const confirm = async (message: string) => {\n if (yes) {\n return true;\n }\n\n const { confirm } = await prompts({\n name: 'confirm',\n type: 'confirm',\n message,\n });\n\n // If confirm is undefined (Ctrl + C), default to false\n return confirm ?? false;\n };\n\n await tasks.upgrade({\n logger,\n confirm,\n dry: options.dry,\n cwd: options.projectPath,\n target: options.target,\n codemodsTarget: options.codemodsTarget,\n });\n } catch (err) {\n handleError(err, options.silent);\n }\n};\n\n/**\n * Registers upgrade related codemods.\n */\nexport const register = (program: Command) => {\n const addReleaseUpgradeCommand = (releaseType: Version.ReleaseType, description: string) => {\n program\n .command(releaseType)\n .description(description)\n .addOption(projectPathOption)\n .addOption(dryOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(autoConfirmOption)\n .action(async (options: CLIUpgradeOptions) => {\n return upgrade({ ...options, target: releaseType });\n });\n };\n\n // upgrade latest\n addReleaseUpgradeCommand(\n Version.ReleaseType.Latest,\n 'Upgrade to the latest available version of Strapi'\n );\n\n // upgrade major\n addReleaseUpgradeCommand(\n Version.ReleaseType.Major,\n 'Upgrade to the next available major version of Strapi'\n );\n\n // upgrade minor\n addReleaseUpgradeCommand(\n Version.ReleaseType.Minor,\n 'Upgrade to the latest minor and patch version of Strapi for the current major'\n );\n\n // upgrade patch\n addReleaseUpgradeCommand(\n Version.ReleaseType.Patch,\n 'Upgrade to latest patch version of Strapi for the current major and minor'\n );\n\n // upgrade to <target>\n program\n .command('to')\n .description('Upgrade to a specific version of Strapi')\n .argument('<target>', 'Target version', (target) => {\n if (!isValidSemVer(target)) {\n throw new InvalidArgumentError(\n `Invalid target supplied, expected a valid semver but got \"${target}\"`\n );\n }\n\n return semVerFactory(target);\n })\n .addOption(projectPathOption)\n .addOption(dryOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(autoConfirmOption)\n .addOption(\n new Option(\n '-c, --codemods-target <codemodsTarget>',\n 'Use a custom target for the codemods execution. Useful when targeting pre-releases'\n ).argParser((codemodsTarget) => {\n if (!isLiteralSemVer(codemodsTarget)) {\n throw new InvalidArgumentError(\n `Expected a version with the following format: \"<number>.<number>.<number>\"`\n );\n }\n\n return semVerFactory(codemodsTarget);\n })\n )\n .action(async (target: Version.SemVer, options: CLIUpgradeToOptions) => {\n return upgrade({ ...options, target });\n });\n};\n"],"names":["upgrade","options","silent","debug","yes","logger","loggerFactory","warn","confirm","message","prompts","name","type","tasks","dry","cwd","projectPath","target","codemodsTarget","err","handleError","register","program","addReleaseUpgradeCommand","releaseType","description","command","addOption","projectPathOption","dryOption","debugOption","silentOption","autoConfirmOption","action","Version","Latest","Major","Minor","Patch","argument","isValidSemVer","InvalidArgumentError","semVerFactory","Option","argParser","isLiteralSemVer"],"mappings":"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"}
@@ -3,13 +3,17 @@
3
3
  var chalk = require('chalk');
4
4
  var utils = require('../modules/error/utils.js');
5
5
 
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
9
+
6
10
  const handleError = (err, isSilent)=>{
7
11
  // If the upgrade process has been aborted, exit silently
8
12
  if (err instanceof utils.AbortedError) {
9
13
  process.exit(0);
10
14
  }
11
15
  if (!isSilent) {
12
- console.error(chalk.red(`[ERROR]\t[${new Date().toISOString()}]`), err instanceof Error ? err.message : err);
16
+ console.error(chalk__default.default.red(`[ERROR]\t[${new Date().toISOString()}]`), err instanceof Error ? err.message : err);
13
17
  }
14
18
  process.exit(1);
15
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sources":["../../../src/cli/errors.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport { AbortedError } from '../modules/error';\n\nexport const handleError = (err: unknown, isSilent: boolean) => {\n // If the upgrade process has been aborted, exit silently\n if (err instanceof AbortedError) {\n process.exit(0);\n }\n\n if (!isSilent) {\n console.error(\n chalk.red(`[ERROR]\\t[${new Date().toISOString()}]`),\n err instanceof Error ? err.message : err\n );\n }\n\n process.exit(1);\n};\n"],"names":["handleError","err","isSilent","AbortedError","process","exit","console","error","chalk","red","Date","toISOString","Error","message"],"mappings":";;;;;AAIO,MAAMA,WAAAA,GAAc,CAACC,GAAAA,EAAcC,QAAAA,GAAAA;;AAExC,IAAA,IAAID,eAAeE,kBAAAA,EAAc;AAC/BC,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,IAAA;AAEA,IAAA,IAAI,CAACH,QAAAA,EAAU;AACbI,QAAAA,OAAAA,CAAQC,KAAK,CACXC,KAAAA,CAAMC,GAAG,CAAC,CAAC,UAAU,EAAE,IAAIC,OAAOC,WAAW,EAAA,CAAG,CAAC,CAAC,CAAA,EAClDV,eAAeW,KAAAA,GAAQX,GAAAA,CAAIY,OAAO,GAAGZ,GAAAA,CAAAA;AAEzC,IAAA;AAEAG,IAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf;;;;"}
1
+ {"version":3,"file":"errors.js","sources":["../../../src/cli/errors.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport { AbortedError } from '../modules/error';\n\nexport const handleError = (err: unknown, isSilent: boolean) => {\n // If the upgrade process has been aborted, exit silently\n if (err instanceof AbortedError) {\n process.exit(0);\n }\n\n if (!isSilent) {\n console.error(\n chalk.red(`[ERROR]\\t[${new Date().toISOString()}]`),\n err instanceof Error ? err.message : err\n );\n }\n\n process.exit(1);\n};\n"],"names":["handleError","err","isSilent","AbortedError","process","exit","console","error","chalk","red","Date","toISOString","Error","message"],"mappings":";;;;;;;;;AAIO,MAAMA,WAAAA,GAAc,CAACC,GAAAA,EAAcC,QAAAA,GAAAA;;AAExC,IAAA,IAAID,eAAeE,kBAAAA,EAAc;AAC/BC,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,IAAA;AAEA,IAAA,IAAI,CAACH,QAAAA,EAAU;AACbI,QAAAA,OAAAA,CAAQC,KAAK,CACXC,sBAAAA,CAAMC,GAAG,CAAC,CAAC,UAAU,EAAE,IAAIC,OAAOC,WAAW,EAAA,CAAG,CAAC,CAAC,CAAA,EAClDV,eAAeW,KAAAA,GAAQX,GAAAA,CAAIY,OAAO,GAAGZ,GAAAA,CAAAA;AAEzC,IAAA;AAEAG,IAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf;;;;"}
@@ -3,6 +3,10 @@
3
3
  var path = require('node:path');
4
4
  var constants = require('./constants.js');
5
5
 
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var path__default = /*#__PURE__*/_interopDefault(path);
9
+
6
10
  class Codemod {
7
11
  createUID() {
8
12
  const name = this.format({
@@ -33,7 +37,7 @@ class Codemod {
33
37
  this.version = options.version;
34
38
  this.baseDirectory = options.baseDirectory;
35
39
  this.filename = options.filename;
36
- this.path = path.join(this.baseDirectory, this.version.raw, this.filename);
40
+ this.path = path__default.default.join(this.baseDirectory, this.version.raw, this.filename);
37
41
  this.uid = this.createUID();
38
42
  }
39
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codemod.js","sources":["../../../../src/modules/codemod/codemod.ts"],"sourcesContent":["import path from 'node:path';\n\nimport * as constants from './constants';\n\nimport type { Codemod as CodemodInterface, FormatOptions, Kind, UID } from './types';\nimport type { Version } from '../version';\n\ntype CreateCodemodPayload = Pick<\n CodemodInterface,\n 'kind' | 'version' | 'baseDirectory' | 'filename'\n>;\n\nexport class Codemod implements CodemodInterface {\n uid: UID;\n\n kind: Kind;\n\n version: Version.SemVer;\n\n baseDirectory: string;\n\n filename: string;\n\n path: string;\n\n constructor(options: CreateCodemodPayload) {\n this.kind = options.kind;\n this.version = options.version;\n this.baseDirectory = options.baseDirectory;\n this.filename = options.filename;\n\n this.path = path.join(this.baseDirectory, this.version.raw, this.filename);\n this.uid = this.createUID();\n }\n\n private createUID(): UID {\n const name = this.format({ stripExtension: true, stripKind: true, stripHyphens: false });\n const kind = this.kind;\n const version = this.version.raw as Version.LiteralSemVer;\n\n return `${version}-${name}-${kind}`;\n }\n\n format(options?: FormatOptions) {\n const { stripExtension = true, stripKind = true, stripHyphens = true } = options ?? {};\n\n let formatted = this.filename;\n\n if (stripExtension) {\n formatted = formatted.replace(new RegExp(`\\\\.${constants.CODEMOD_EXTENSION}$`, 'i'), '');\n }\n\n if (stripKind) {\n formatted = formatted\n .replace(`.${constants.CODEMOD_CODE_SUFFIX}`, '')\n .replace(`.${constants.CODEMOD_JSON_SUFFIX}`, '');\n }\n\n if (stripHyphens) {\n formatted = formatted.replaceAll('-', ' ');\n }\n\n return formatted;\n }\n}\n\nexport const codemodFactory = (options: CreateCodemodPayload) => new Codemod(options);\n"],"names":["Codemod","createUID","name","format","stripExtension","stripKind","stripHyphens","kind","version","raw","options","formatted","filename","replace","RegExp","constants","replaceAll","baseDirectory","path","join","uid","codemodFactory"],"mappings":";;;;;AAYO,MAAMA,OAAAA,CAAAA;IAuBHC,SAAAA,GAAiB;AACvB,QAAA,MAAMC,IAAAA,GAAO,IAAI,CAACC,MAAM,CAAC;YAAEC,cAAAA,EAAgB,IAAA;YAAMC,SAAAA,EAAW,IAAA;YAAMC,YAAAA,EAAc;AAAM,SAAA,CAAA;QACtF,MAAMC,IAAAA,GAAO,IAAI,CAACA,IAAI;AACtB,QAAA,MAAMC,OAAAA,GAAU,IAAI,CAACA,OAAO,CAACC,GAAG;AAEhC,QAAA,OAAO,GAAGD,OAAAA,CAAQ,CAAC,EAAEN,IAAAA,CAAK,CAAC,EAAEK,IAAAA,CAAAA,CAAM;AACrC,IAAA;AAEAJ,IAAAA,MAAAA,CAAOO,OAAuB,EAAE;AAC9B,QAAA,MAAM,EAAEN,cAAAA,GAAiB,IAAI,EAAEC,SAAAA,GAAY,IAAI,EAAEC,YAAAA,GAAe,IAAI,EAAE,GAAGI,OAAAA,IAAW,EAAC;QAErF,IAAIC,SAAAA,GAAY,IAAI,CAACC,QAAQ;AAE7B,QAAA,IAAIR,cAAAA,EAAgB;AAClBO,YAAAA,SAAAA,GAAYA,SAAAA,CAAUE,OAAO,CAAC,IAAIC,OAAO,CAAC,GAAG,EAAEC,2BAA2B,CAAC,CAAC,CAAC,EAAE,GAAA,CAAA,EAAM,EAAA,CAAA;AACvF,QAAA;AAEA,QAAA,IAAIV,SAAAA,EAAW;AACbM,YAAAA,SAAAA,GAAYA,UACTE,OAAO,CAAC,CAAC,CAAC,EAAEE,6BAA6B,CAAA,CAAE,EAAE,EAAA,CAAA,CAC7CF,OAAO,CAAC,CAAC,CAAC,EAAEE,6BAA6B,EAAE,EAAE,EAAA,CAAA;AAClD,QAAA;AAEA,QAAA,IAAIT,YAAAA,EAAc;YAChBK,SAAAA,GAAYA,SAAAA,CAAUK,UAAU,CAAC,GAAA,EAAK,GAAA,CAAA;AACxC,QAAA;QAEA,OAAOL,SAAAA;AACT,IAAA;AAtCA,IAAA,WAAA,CAAYD,OAA6B,CAAE;AACzC,QAAA,IAAI,CAACH,IAAI,GAAGG,OAAAA,CAAQH,IAAI;AACxB,QAAA,IAAI,CAACC,OAAO,GAAGE,OAAAA,CAAQF,OAAO;AAC9B,QAAA,IAAI,CAACS,aAAa,GAAGP,OAAAA,CAAQO,aAAa;AAC1C,QAAA,IAAI,CAACL,QAAQ,GAAGF,OAAAA,CAAQE,QAAQ;AAEhC,QAAA,IAAI,CAACM,IAAI,GAAGA,KAAKC,IAAI,CAAC,IAAI,CAACF,aAAa,EAAE,IAAI,CAACT,OAAO,CAACC,GAAG,EAAE,IAAI,CAACG,QAAQ,CAAA;AACzE,QAAA,IAAI,CAACQ,GAAG,GAAG,IAAI,CAACnB,SAAS,EAAA;AAC3B,IAAA;AA+BF;MAEaoB,cAAAA,GAAiB,CAACX,OAAAA,GAAkC,IAAIV,QAAQU,OAAAA;;;;;"}
1
+ {"version":3,"file":"codemod.js","sources":["../../../../src/modules/codemod/codemod.ts"],"sourcesContent":["import path from 'node:path';\n\nimport * as constants from './constants';\n\nimport type { Codemod as CodemodInterface, FormatOptions, Kind, UID } from './types';\nimport type { Version } from '../version';\n\ntype CreateCodemodPayload = Pick<\n CodemodInterface,\n 'kind' | 'version' | 'baseDirectory' | 'filename'\n>;\n\nexport class Codemod implements CodemodInterface {\n uid: UID;\n\n kind: Kind;\n\n version: Version.SemVer;\n\n baseDirectory: string;\n\n filename: string;\n\n path: string;\n\n constructor(options: CreateCodemodPayload) {\n this.kind = options.kind;\n this.version = options.version;\n this.baseDirectory = options.baseDirectory;\n this.filename = options.filename;\n\n this.path = path.join(this.baseDirectory, this.version.raw, this.filename);\n this.uid = this.createUID();\n }\n\n private createUID(): UID {\n const name = this.format({ stripExtension: true, stripKind: true, stripHyphens: false });\n const kind = this.kind;\n const version = this.version.raw as Version.LiteralSemVer;\n\n return `${version}-${name}-${kind}`;\n }\n\n format(options?: FormatOptions) {\n const { stripExtension = true, stripKind = true, stripHyphens = true } = options ?? {};\n\n let formatted = this.filename;\n\n if (stripExtension) {\n formatted = formatted.replace(new RegExp(`\\\\.${constants.CODEMOD_EXTENSION}$`, 'i'), '');\n }\n\n if (stripKind) {\n formatted = formatted\n .replace(`.${constants.CODEMOD_CODE_SUFFIX}`, '')\n .replace(`.${constants.CODEMOD_JSON_SUFFIX}`, '');\n }\n\n if (stripHyphens) {\n formatted = formatted.replaceAll('-', ' ');\n }\n\n return formatted;\n }\n}\n\nexport const codemodFactory = (options: CreateCodemodPayload) => new Codemod(options);\n"],"names":["Codemod","createUID","name","format","stripExtension","stripKind","stripHyphens","kind","version","raw","options","formatted","filename","replace","RegExp","constants","replaceAll","baseDirectory","path","join","uid","codemodFactory"],"mappings":";;;;;;;;;AAYO,MAAMA,OAAAA,CAAAA;IAuBHC,SAAAA,GAAiB;AACvB,QAAA,MAAMC,IAAAA,GAAO,IAAI,CAACC,MAAM,CAAC;YAAEC,cAAAA,EAAgB,IAAA;YAAMC,SAAAA,EAAW,IAAA;YAAMC,YAAAA,EAAc;AAAM,SAAA,CAAA;QACtF,MAAMC,IAAAA,GAAO,IAAI,CAACA,IAAI;AACtB,QAAA,MAAMC,OAAAA,GAAU,IAAI,CAACA,OAAO,CAACC,GAAG;AAEhC,QAAA,OAAO,GAAGD,OAAAA,CAAQ,CAAC,EAAEN,IAAAA,CAAK,CAAC,EAAEK,IAAAA,CAAAA,CAAM;AACrC,IAAA;AAEAJ,IAAAA,MAAAA,CAAOO,OAAuB,EAAE;AAC9B,QAAA,MAAM,EAAEN,cAAAA,GAAiB,IAAI,EAAEC,SAAAA,GAAY,IAAI,EAAEC,YAAAA,GAAe,IAAI,EAAE,GAAGI,OAAAA,IAAW,EAAC;QAErF,IAAIC,SAAAA,GAAY,IAAI,CAACC,QAAQ;AAE7B,QAAA,IAAIR,cAAAA,EAAgB;AAClBO,YAAAA,SAAAA,GAAYA,SAAAA,CAAUE,OAAO,CAAC,IAAIC,OAAO,CAAC,GAAG,EAAEC,2BAA2B,CAAC,CAAC,CAAC,EAAE,GAAA,CAAA,EAAM,EAAA,CAAA;AACvF,QAAA;AAEA,QAAA,IAAIV,SAAAA,EAAW;AACbM,YAAAA,SAAAA,GAAYA,UACTE,OAAO,CAAC,CAAC,CAAC,EAAEE,6BAA6B,CAAA,CAAE,EAAE,EAAA,CAAA,CAC7CF,OAAO,CAAC,CAAC,CAAC,EAAEE,6BAA6B,EAAE,EAAE,EAAA,CAAA;AAClD,QAAA;AAEA,QAAA,IAAIT,YAAAA,EAAc;YAChBK,SAAAA,GAAYA,SAAAA,CAAUK,UAAU,CAAC,GAAA,EAAK,GAAA,CAAA;AACxC,QAAA;QAEA,OAAOL,SAAAA;AACT,IAAA;AAtCA,IAAA,WAAA,CAAYD,OAA6B,CAAE;AACzC,QAAA,IAAI,CAACH,IAAI,GAAGG,OAAAA,CAAQH,IAAI;AACxB,QAAA,IAAI,CAACC,OAAO,GAAGE,OAAAA,CAAQF,OAAO;AAC9B,QAAA,IAAI,CAACS,aAAa,GAAGP,OAAAA,CAAQO,aAAa;AAC1C,QAAA,IAAI,CAACL,QAAQ,GAAGF,OAAAA,CAAQE,QAAQ;AAEhC,QAAA,IAAI,CAACM,IAAI,GAAGA,sBAAKC,IAAI,CAAC,IAAI,CAACF,aAAa,EAAE,IAAI,CAACT,OAAO,CAACC,GAAG,EAAE,IAAI,CAACG,QAAQ,CAAA;AACzE,QAAA,IAAI,CAACQ,GAAG,GAAG,IAAI,CAACnB,SAAS,EAAA;AAC3B,IAAA;AA+BF;MAEaoB,cAAAA,GAAiB,CAACX,OAAAA,GAAkC,IAAIV,QAAQU,OAAAA;;;;;"}
@@ -2,7 +2,11 @@
2
2
 
3
3
  var path = require('node:path');
4
4
 
5
- const INTERNAL_CODEMODS_DIRECTORY = path.join(__dirname, '..', '..', '..', '..', 'resources', 'codemods' // resources/codemods
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var path__default = /*#__PURE__*/_interopDefault(path);
8
+
9
+ const INTERNAL_CODEMODS_DIRECTORY = path__default.default.join(__dirname, '..', '..', '..', '..', 'resources', 'codemods' // resources/codemods
6
10
  );
7
11
 
8
12
  exports.INTERNAL_CODEMODS_DIRECTORY = INTERNAL_CODEMODS_DIRECTORY;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../src/modules/codemod-repository/constants.ts"],"sourcesContent":["import path from 'node:path';\n\nexport const INTERNAL_CODEMODS_DIRECTORY = path.join(\n __dirname, // upgrade/dist/src/modules/codemod-repository\n '..', // upgrade/dist/src/modules\n '..', // upgrade/dist/src\n '..', // upgrade/dist\n '..', // upgrade\n 'resources', // resources\n 'codemods' // resources/codemods\n);\n"],"names":["INTERNAL_CODEMODS_DIRECTORY","path","join","__dirname"],"mappings":";;;;AAEO,MAAMA,2BAAAA,GAA8BC,IAAAA,CAAKC,IAAI,CAClDC,SAAAA,EACA,IAAA,EACA,IAAA,EACA,IAAA,EACA,IAAA,EACA,WAAA,EACA,UAAA;AACA;;;;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/modules/codemod-repository/constants.ts"],"sourcesContent":["import path from 'node:path';\n\nexport const INTERNAL_CODEMODS_DIRECTORY = path.join(\n __dirname, // upgrade/dist/src/modules/codemod-repository\n '..', // upgrade/dist/src/modules\n '..', // upgrade/dist/src\n '..', // upgrade/dist\n '..', // upgrade\n 'resources', // resources\n 'codemods' // resources/codemods\n);\n"],"names":["INTERNAL_CODEMODS_DIRECTORY","path","join","__dirname"],"mappings":";;;;;;;;AAEO,MAAMA,2BAAAA,GAA8BC,qBAAAA,CAAKC,IAAI,CAClDC,SAAAA,EACA,IAAA,EACA,IAAA,EACA,IAAA,EACA,IAAA,EACA,WAAA,EACA,UAAA;AACA;;;;"}
@@ -10,6 +10,13 @@ var semver = require('../version/semver.js');
10
10
  var range = require('../version/range.js');
11
11
  var constants = require('./constants.js');
12
12
 
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ var assert__default = /*#__PURE__*/_interopDefault(assert);
16
+ var fse__default = /*#__PURE__*/_interopDefault(fse);
17
+ var semver__default = /*#__PURE__*/_interopDefault(semver$1);
18
+ var path__default = /*#__PURE__*/_interopDefault(path);
19
+
13
20
  class CodemodRepository {
14
21
  refresh() {
15
22
  this.refreshAvailableVersions();
@@ -70,11 +77,11 @@ class CodemodRepository {
70
77
  }));
71
78
  }
72
79
  refreshAvailableVersions() {
73
- this.versions = fse.readdirSync(this.cwd) // Only keep root directories
74
- .filter((filename)=>fse.statSync(path.join(this.cwd, filename)).isDirectory())// Paths should be valid semver
75
- .filter((filename)=>semver$1.valid(filename) !== null)// Transform files names to SemVer instances
80
+ this.versions = fse__default.default.readdirSync(this.cwd) // Only keep root directories
81
+ .filter((filename)=>fse__default.default.statSync(path__default.default.join(this.cwd, filename)).isDirectory())// Paths should be valid semver
82
+ .filter((filename)=>semver__default.default.valid(filename) !== null)// Transform files names to SemVer instances
76
83
  .map((version)=>semver.semVerFactory(version))// Sort versions in ascending order
77
- .sort(semver$1.compare);
84
+ .sort(semver__default.default.compare);
78
85
  return this;
79
86
  }
80
87
  refreshAvailableFiles() {
@@ -85,13 +92,13 @@ class CodemodRepository {
85
92
  }
86
93
  refreshAvailableFilesForVersion(version) {
87
94
  const literalVersion = version.raw;
88
- const versionDirectory = path.join(this.cwd, literalVersion);
95
+ const versionDirectory = path__default.default.join(this.cwd, literalVersion);
89
96
  // Ignore obsolete versions
90
- if (!fse.existsSync(versionDirectory)) {
97
+ if (!fse__default.default.existsSync(versionDirectory)) {
91
98
  return;
92
99
  }
93
- this.groups[literalVersion] = fse.readdirSync(versionDirectory)// Make sure the filenames are valid codemod files
94
- .filter((filename)=>fse.statSync(path.join(versionDirectory, filename)).isFile()).filter((filename)=>constants$1.CODEMOD_FILE_REGEXP.test(filename))// Transform the filenames into Codemod instances
100
+ this.groups[literalVersion] = fse__default.default.readdirSync(versionDirectory)// Make sure the filenames are valid codemod files
101
+ .filter((filename)=>fse__default.default.statSync(path__default.default.join(versionDirectory, filename)).isFile()).filter((filename)=>constants$1.CODEMOD_FILE_REGEXP.test(filename))// Transform the filenames into Codemod instances
95
102
  .map((filename)=>{
96
103
  const kind = parseCodemodKindFromFilename(filename);
97
104
  const baseDirectory = this.cwd;
@@ -104,7 +111,7 @@ class CodemodRepository {
104
111
  });
105
112
  }
106
113
  constructor(cwd){
107
- assert(fse.existsSync(cwd), `Invalid codemods directory provided "${cwd}"`);
114
+ assert__default.default(fse__default.default.existsSync(cwd), `Invalid codemods directory provided "${cwd}"`);
108
115
  this.cwd = cwd;
109
116
  this.groups = {};
110
117
  this.versions = [];
@@ -112,8 +119,8 @@ class CodemodRepository {
112
119
  }
113
120
  const parseCodemodKindFromFilename = (filename)=>{
114
121
  const kind = filename.split('.').at(-2);
115
- assert(kind !== undefined);
116
- assert(constants$1.CODEMOD_ALLOWED_SUFFIXES.includes(kind));
122
+ assert__default.default(kind !== undefined);
123
+ assert__default.default(constants$1.CODEMOD_ALLOWED_SUFFIXES.includes(kind));
117
124
  return kind;
118
125
  };
119
126
  const codemodRepositoryFactory = (cwd = constants.INTERNAL_CODEMODS_DIRECTORY)=>{
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sources":["../../../../src/modules/codemod-repository/repository.ts"],"sourcesContent":["import assert from 'node:assert';\nimport fse from 'fs-extra';\nimport semver from 'semver';\nimport path from 'node:path';\n\nimport { codemodFactory, constants } from '../codemod';\nimport { isRangeInstance, semVerFactory } from '../version';\n\nimport { INTERNAL_CODEMODS_DIRECTORY } from './constants';\n\nimport type { Codemod } from '../codemod';\nimport type { Version } from '../version';\n\nimport type { CodemodRepository as CodemodRepositoryInterface, FindQuery } from './types';\n\nexport class CodemodRepository implements CodemodRepositoryInterface {\n private groups: Record<Version.LiteralSemVer, Codemod.Codemod[]>;\n\n private versions: Version.SemVer[];\n\n public cwd: string;\n\n constructor(cwd: string) {\n assert(fse.existsSync(cwd), `Invalid codemods directory provided \"${cwd}\"`);\n\n this.cwd = cwd;\n\n this.groups = {};\n this.versions = [];\n }\n\n refresh() {\n this.refreshAvailableVersions();\n this.refreshAvailableFiles();\n\n return this;\n }\n\n count(version: Version.SemVer) {\n return this.findByVersion(version).length;\n }\n\n versionExists(version: Version.SemVer) {\n return version.raw in this.groups;\n }\n\n has(uid: string) {\n const result = this.find({ uids: [uid] });\n\n if (result.length !== 1) {\n return false;\n }\n\n const { codemods } = result[0];\n\n return codemods.length === 1 && codemods[0].uid === uid;\n }\n\n find(q: FindQuery) {\n const entries = Object.entries(this.groups) as Array<[Version.LiteralSemVer, Codemod.List]>;\n\n return (\n entries\n // Filter by range if provided in the query\n .filter(maybeFilterByRange)\n // Transform version/codemods tuples into regular objects\n .map<Codemod.VersionedCollection>(([version, codemods]) => ({\n version: semVerFactory(version),\n // Filter by UID if provided in the query\n codemods: codemods.filter(maybeFilterByUIDs),\n }))\n // Only return groups with at least 1 codemod\n .filter(({ codemods }) => codemods.length > 0)\n );\n\n function maybeFilterByRange([version]: [Version.LiteralSemVer, Codemod.List]) {\n if (!isRangeInstance(q.range)) {\n return true;\n }\n\n return q.range.test(version);\n }\n\n function maybeFilterByUIDs(codemod: Codemod.Codemod) {\n if (q.uids === undefined) {\n return true;\n }\n\n return q.uids.includes(codemod.uid);\n }\n }\n\n findByVersion(version: Version.SemVer) {\n const literalVersion = version.raw as Version.LiteralSemVer;\n const codemods = this.groups[literalVersion];\n\n return codemods ?? [];\n }\n\n findAll() {\n const entries = Object.entries(this.groups);\n\n return entries.map<Codemod.VersionedCollection>(([version, codemods]) => ({\n version: semVerFactory(version),\n codemods,\n }));\n }\n\n private refreshAvailableVersions() {\n this.versions = fse\n .readdirSync(this.cwd) // Only keep root directories\n .filter((filename) => fse.statSync(path.join(this.cwd, filename)).isDirectory())\n // Paths should be valid semver\n .filter((filename): filename is Version.LiteralSemVer => semver.valid(filename) !== null)\n // Transform files names to SemVer instances\n .map<Version.SemVer>((version) => semVerFactory(version))\n // Sort versions in ascending order\n .sort(semver.compare);\n\n return this;\n }\n\n private refreshAvailableFiles() {\n this.groups = {};\n\n for (const version of this.versions) {\n this.refreshAvailableFilesForVersion(version);\n }\n }\n\n private refreshAvailableFilesForVersion(version: Version.SemVer) {\n const literalVersion = version.raw as Version.LiteralSemVer;\n const versionDirectory = path.join(this.cwd, literalVersion);\n\n // Ignore obsolete versions\n if (!fse.existsSync(versionDirectory)) {\n return;\n }\n\n this.groups[literalVersion] = fse\n .readdirSync(versionDirectory)\n // Make sure the filenames are valid codemod files\n .filter((filename) => fse.statSync(path.join(versionDirectory, filename)).isFile())\n .filter((filename) => constants.CODEMOD_FILE_REGEXP.test(filename))\n // Transform the filenames into Codemod instances\n .map((filename) => {\n const kind = parseCodemodKindFromFilename(filename);\n const baseDirectory = this.cwd;\n\n return codemodFactory({ kind, baseDirectory, version, filename });\n });\n }\n}\n\nexport const parseCodemodKindFromFilename = (filename: string): Codemod.Kind => {\n const kind = filename.split('.').at(-2) as Codemod.Kind | undefined;\n\n assert(kind !== undefined);\n assert(constants.CODEMOD_ALLOWED_SUFFIXES.includes(kind));\n\n return kind;\n};\n\nexport const codemodRepositoryFactory = (cwd: string = INTERNAL_CODEMODS_DIRECTORY) => {\n return new CodemodRepository(cwd);\n};\n"],"names":["CodemodRepository","refresh","refreshAvailableVersions","refreshAvailableFiles","count","version","findByVersion","length","versionExists","raw","groups","has","uid","result","find","uids","codemods","q","entries","Object","filter","maybeFilterByRange","map","semVerFactory","maybeFilterByUIDs","isRangeInstance","range","test","codemod","undefined","includes","literalVersion","findAll","versions","fse","readdirSync","cwd","filename","statSync","path","join","isDirectory","semver","valid","sort","compare","refreshAvailableFilesForVersion","versionDirectory","existsSync","isFile","constants","kind","parseCodemodKindFromFilename","baseDirectory","codemodFactory","assert","split","at","codemodRepositoryFactory","INTERNAL_CODEMODS_DIRECTORY"],"mappings":";;;;;;;;;;;;AAeO,MAAMA,iBAAAA,CAAAA;IAgBXC,OAAAA,GAAU;AACR,QAAA,IAAI,CAACC,wBAAwB,EAAA;AAC7B,QAAA,IAAI,CAACC,qBAAqB,EAAA;AAE1B,QAAA,OAAO,IAAI;AACb,IAAA;AAEAC,IAAAA,KAAAA,CAAMC,OAAuB,EAAE;AAC7B,QAAA,OAAO,IAAI,CAACC,aAAa,CAACD,SAASE,MAAM;AAC3C,IAAA;AAEAC,IAAAA,aAAAA,CAAcH,OAAuB,EAAE;AACrC,QAAA,OAAOA,OAAAA,CAAQI,GAAG,IAAI,IAAI,CAACC,MAAM;AACnC,IAAA;AAEAC,IAAAA,GAAAA,CAAIC,GAAW,EAAE;AACf,QAAA,MAAMC,MAAAA,GAAS,IAAI,CAACC,IAAI,CAAC;YAAEC,IAAAA,EAAM;AAACH,gBAAAA;AAAI;AAAC,SAAA,CAAA;QAEvC,IAAIC,MAAAA,CAAON,MAAM,KAAK,CAAA,EAAG;YACvB,OAAO,KAAA;AACT,QAAA;AAEA,QAAA,MAAM,EAAES,QAAQ,EAAE,GAAGH,MAAM,CAAC,CAAA,CAAE;QAE9B,OAAOG,QAAAA,CAAST,MAAM,KAAK,CAAA,IAAKS,QAAQ,CAAC,CAAA,CAAE,CAACJ,GAAG,KAAKA,GAAAA;AACtD,IAAA;AAEAE,IAAAA,IAAAA,CAAKG,CAAY,EAAE;AACjB,QAAA,MAAMC,UAAUC,MAAAA,CAAOD,OAAO,CAAC,IAAI,CAACR,MAAM,CAAA;AAE1C,QAAA,OACEQ,OACE;SACCE,MAAM,CAACC,mBACR;AACCC,SAAAA,GAAG,CAA8B,CAAC,CAACjB,OAAAA,EAASW,QAAAA,CAAS,IAAM;AAC1DX,gBAAAA,OAAAA,EAASkB,oBAAAA,CAAclB,OAAAA,CAAAA;;gBAEvBW,QAAAA,EAAUA,QAAAA,CAASI,MAAM,CAACI,iBAAAA;AAC5B,aAAA,EACA;SACCJ,MAAM,CAAC,CAAC,EAAEJ,QAAQ,EAAE,GAAKA,QAAAA,CAAST,MAAM,GAAG,CAAA,CAAA;QAGhD,SAASc,kBAAAA,CAAmB,CAAChB,OAAAA,CAA+C,EAAA;AAC1E,YAAA,IAAI,CAACoB,qBAAAA,CAAgBR,CAAAA,CAAES,KAAK,CAAA,EAAG;gBAC7B,OAAO,IAAA;AACT,YAAA;AAEA,YAAA,OAAOT,CAAAA,CAAES,KAAK,CAACC,IAAI,CAACtB,OAAAA,CAAAA;AACtB,QAAA;AAEA,QAAA,SAASmB,kBAAkBI,OAAwB,EAAA;YACjD,IAAIX,CAAAA,CAAEF,IAAI,KAAKc,SAAAA,EAAW;gBACxB,OAAO,IAAA;AACT,YAAA;AAEA,YAAA,OAAOZ,EAAEF,IAAI,CAACe,QAAQ,CAACF,QAAQhB,GAAG,CAAA;AACpC,QAAA;AACF,IAAA;AAEAN,IAAAA,aAAAA,CAAcD,OAAuB,EAAE;QACrC,MAAM0B,cAAAA,GAAiB1B,QAAQI,GAAG;AAClC,QAAA,MAAMO,QAAAA,GAAW,IAAI,CAACN,MAAM,CAACqB,cAAAA,CAAe;AAE5C,QAAA,OAAOf,YAAY,EAAE;AACvB,IAAA;IAEAgB,OAAAA,GAAU;AACR,QAAA,MAAMd,UAAUC,MAAAA,CAAOD,OAAO,CAAC,IAAI,CAACR,MAAM,CAAA;QAE1C,OAAOQ,OAAAA,CAAQI,GAAG,CAA8B,CAAC,CAACjB,OAAAA,EAASW,QAAAA,CAAS,IAAM;AACxEX,gBAAAA,OAAAA,EAASkB,oBAAAA,CAAclB,OAAAA,CAAAA;AACvBW,gBAAAA;aACF,CAAA,CAAA;AACF,IAAA;IAEQd,wBAAAA,GAA2B;QACjC,IAAI,CAAC+B,QAAQ,GAAGC,GAAAA,CACbC,WAAW,CAAC,IAAI,CAACC,GAAG,CAAA;AACpBhB,SAAAA,MAAM,CAAC,CAACiB,QAAAA,GAAaH,GAAAA,CAAII,QAAQ,CAACC,IAAAA,CAAKC,IAAI,CAAC,IAAI,CAACJ,GAAG,EAAEC,QAAAA,CAAAA,CAAAA,CAAWI,WAAW,GAC7E;SACCrB,MAAM,CAAC,CAACiB,QAAAA,GAAgDK,QAAAA,CAAOC,KAAK,CAACN,QAAAA,CAAAA,KAAc,KACpF;AACCf,SAAAA,GAAG,CAAiB,CAACjB,OAAAA,GAAYkB,oBAAAA,CAAclB,SAChD;SACCuC,IAAI,CAACF,SAAOG,OAAO,CAAA;AAEtB,QAAA,OAAO,IAAI;AACb,IAAA;IAEQ1C,qBAAAA,GAAwB;QAC9B,IAAI,CAACO,MAAM,GAAG,EAAC;AAEf,QAAA,KAAK,MAAML,OAAAA,IAAW,IAAI,CAAC4B,QAAQ,CAAE;YACnC,IAAI,CAACa,+BAA+B,CAACzC,OAAAA,CAAAA;AACvC,QAAA;AACF,IAAA;AAEQyC,IAAAA,+BAAAA,CAAgCzC,OAAuB,EAAE;QAC/D,MAAM0B,cAAAA,GAAiB1B,QAAQI,GAAG;AAClC,QAAA,MAAMsC,mBAAmBR,IAAAA,CAAKC,IAAI,CAAC,IAAI,CAACJ,GAAG,EAAEL,cAAAA,CAAAA;;AAG7C,QAAA,IAAI,CAACG,GAAAA,CAAIc,UAAU,CAACD,gBAAAA,CAAAA,EAAmB;AACrC,YAAA;AACF,QAAA;QAEA,IAAI,CAACrC,MAAM,CAACqB,cAAAA,CAAe,GAAGG,GAAAA,CAC3BC,WAAW,CAACY,gBAAAA,CACb;SACC3B,MAAM,CAAC,CAACiB,QAAAA,GAAaH,GAAAA,CAAII,QAAQ,CAACC,IAAAA,CAAKC,IAAI,CAACO,gBAAAA,EAAkBV,QAAAA,CAAAA,CAAAA,CAAWY,MAAM,EAAA,CAAA,CAC/E7B,MAAM,CAAC,CAACiB,QAAAA,GAAaa,+BAA6B,CAACvB,IAAI,CAACU,QAAAA,CAAAA,CACzD;AACCf,SAAAA,GAAG,CAAC,CAACe,QAAAA,GAAAA;AACJ,YAAA,MAAMc,OAAOC,4BAAAA,CAA6Bf,QAAAA,CAAAA;YAC1C,MAAMgB,aAAAA,GAAgB,IAAI,CAACjB,GAAG;AAE9B,YAAA,OAAOkB,sBAAAA,CAAe;AAAEH,gBAAAA,IAAAA;AAAME,gBAAAA,aAAAA;AAAehD,gBAAAA,OAAAA;AAASgC,gBAAAA;AAAS,aAAA,CAAA;AACjE,QAAA,CAAA,CAAA;AACJ,IAAA;AAjIA,IAAA,WAAA,CAAYD,GAAW,CAAE;QACvBmB,MAAAA,CAAOrB,GAAAA,CAAIc,UAAU,CAACZ,GAAAA,CAAAA,EAAM,CAAC,qCAAqC,EAAEA,GAAAA,CAAI,CAAC,CAAC,CAAA;QAE1E,IAAI,CAACA,GAAG,GAAGA,GAAAA;QAEX,IAAI,CAAC1B,MAAM,GAAG,EAAC;QACf,IAAI,CAACuB,QAAQ,GAAG,EAAE;AACpB,IAAA;AA2HF;AAEO,MAAMmB,+BAA+B,CAACf,QAAAA,GAAAA;AAC3C,IAAA,MAAMc,OAAOd,QAAAA,CAASmB,KAAK,CAAC,GAAA,CAAA,CAAKC,EAAE,CAAC,EAAC,CAAA;AAErCF,IAAAA,MAAAA,CAAOJ,IAAAA,KAAStB,SAAAA,CAAAA;AAChB0B,IAAAA,MAAAA,CAAOL,oCAAkC,CAACpB,QAAQ,CAACqB,IAAAA,CAAAA,CAAAA;IAEnD,OAAOA,IAAAA;AACT;AAEO,MAAMO,wBAAAA,GAA2B,CAACtB,GAAAA,GAAcuB,qCAA2B,GAAA;AAChF,IAAA,OAAO,IAAI3D,iBAAAA,CAAkBoC,GAAAA,CAAAA;AAC/B;;;;;;"}
1
+ {"version":3,"file":"repository.js","sources":["../../../../src/modules/codemod-repository/repository.ts"],"sourcesContent":["import assert from 'node:assert';\nimport fse from 'fs-extra';\nimport semver from 'semver';\nimport path from 'node:path';\n\nimport { codemodFactory, constants } from '../codemod';\nimport { isRangeInstance, semVerFactory } from '../version';\n\nimport { INTERNAL_CODEMODS_DIRECTORY } from './constants';\n\nimport type { Codemod } from '../codemod';\nimport type { Version } from '../version';\n\nimport type { CodemodRepository as CodemodRepositoryInterface, FindQuery } from './types';\n\nexport class CodemodRepository implements CodemodRepositoryInterface {\n private groups: Record<Version.LiteralSemVer, Codemod.Codemod[]>;\n\n private versions: Version.SemVer[];\n\n public cwd: string;\n\n constructor(cwd: string) {\n assert(fse.existsSync(cwd), `Invalid codemods directory provided \"${cwd}\"`);\n\n this.cwd = cwd;\n\n this.groups = {};\n this.versions = [];\n }\n\n refresh() {\n this.refreshAvailableVersions();\n this.refreshAvailableFiles();\n\n return this;\n }\n\n count(version: Version.SemVer) {\n return this.findByVersion(version).length;\n }\n\n versionExists(version: Version.SemVer) {\n return version.raw in this.groups;\n }\n\n has(uid: string) {\n const result = this.find({ uids: [uid] });\n\n if (result.length !== 1) {\n return false;\n }\n\n const { codemods } = result[0];\n\n return codemods.length === 1 && codemods[0].uid === uid;\n }\n\n find(q: FindQuery) {\n const entries = Object.entries(this.groups) as Array<[Version.LiteralSemVer, Codemod.List]>;\n\n return (\n entries\n // Filter by range if provided in the query\n .filter(maybeFilterByRange)\n // Transform version/codemods tuples into regular objects\n .map<Codemod.VersionedCollection>(([version, codemods]) => ({\n version: semVerFactory(version),\n // Filter by UID if provided in the query\n codemods: codemods.filter(maybeFilterByUIDs),\n }))\n // Only return groups with at least 1 codemod\n .filter(({ codemods }) => codemods.length > 0)\n );\n\n function maybeFilterByRange([version]: [Version.LiteralSemVer, Codemod.List]) {\n if (!isRangeInstance(q.range)) {\n return true;\n }\n\n return q.range.test(version);\n }\n\n function maybeFilterByUIDs(codemod: Codemod.Codemod) {\n if (q.uids === undefined) {\n return true;\n }\n\n return q.uids.includes(codemod.uid);\n }\n }\n\n findByVersion(version: Version.SemVer) {\n const literalVersion = version.raw as Version.LiteralSemVer;\n const codemods = this.groups[literalVersion];\n\n return codemods ?? [];\n }\n\n findAll() {\n const entries = Object.entries(this.groups);\n\n return entries.map<Codemod.VersionedCollection>(([version, codemods]) => ({\n version: semVerFactory(version),\n codemods,\n }));\n }\n\n private refreshAvailableVersions() {\n this.versions = fse\n .readdirSync(this.cwd) // Only keep root directories\n .filter((filename) => fse.statSync(path.join(this.cwd, filename)).isDirectory())\n // Paths should be valid semver\n .filter((filename): filename is Version.LiteralSemVer => semver.valid(filename) !== null)\n // Transform files names to SemVer instances\n .map<Version.SemVer>((version) => semVerFactory(version))\n // Sort versions in ascending order\n .sort(semver.compare);\n\n return this;\n }\n\n private refreshAvailableFiles() {\n this.groups = {};\n\n for (const version of this.versions) {\n this.refreshAvailableFilesForVersion(version);\n }\n }\n\n private refreshAvailableFilesForVersion(version: Version.SemVer) {\n const literalVersion = version.raw as Version.LiteralSemVer;\n const versionDirectory = path.join(this.cwd, literalVersion);\n\n // Ignore obsolete versions\n if (!fse.existsSync(versionDirectory)) {\n return;\n }\n\n this.groups[literalVersion] = fse\n .readdirSync(versionDirectory)\n // Make sure the filenames are valid codemod files\n .filter((filename) => fse.statSync(path.join(versionDirectory, filename)).isFile())\n .filter((filename) => constants.CODEMOD_FILE_REGEXP.test(filename))\n // Transform the filenames into Codemod instances\n .map((filename) => {\n const kind = parseCodemodKindFromFilename(filename);\n const baseDirectory = this.cwd;\n\n return codemodFactory({ kind, baseDirectory, version, filename });\n });\n }\n}\n\nexport const parseCodemodKindFromFilename = (filename: string): Codemod.Kind => {\n const kind = filename.split('.').at(-2) as Codemod.Kind | undefined;\n\n assert(kind !== undefined);\n assert(constants.CODEMOD_ALLOWED_SUFFIXES.includes(kind));\n\n return kind;\n};\n\nexport const codemodRepositoryFactory = (cwd: string = INTERNAL_CODEMODS_DIRECTORY) => {\n return new CodemodRepository(cwd);\n};\n"],"names":["CodemodRepository","refresh","refreshAvailableVersions","refreshAvailableFiles","count","version","findByVersion","length","versionExists","raw","groups","has","uid","result","find","uids","codemods","q","entries","Object","filter","maybeFilterByRange","map","semVerFactory","maybeFilterByUIDs","isRangeInstance","range","test","codemod","undefined","includes","literalVersion","findAll","versions","fse","readdirSync","cwd","filename","statSync","path","join","isDirectory","semver","valid","sort","compare","refreshAvailableFilesForVersion","versionDirectory","existsSync","isFile","constants","kind","parseCodemodKindFromFilename","baseDirectory","codemodFactory","assert","split","at","codemodRepositoryFactory","INTERNAL_CODEMODS_DIRECTORY"],"mappings":"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"}
@@ -3,14 +3,19 @@
3
3
  var path = require('node:path');
4
4
  var fastglob = require('fast-glob');
5
5
 
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var path__default = /*#__PURE__*/_interopDefault(path);
9
+ var fastglob__default = /*#__PURE__*/_interopDefault(fastglob);
10
+
6
11
  class FileScanner {
7
12
  scan(patterns) {
8
13
  // we use fastglob instead of glob because it supports negation patterns
9
- const filenames = fastglob.sync(patterns, {
14
+ const filenames = fastglob__default.default.sync(patterns, {
10
15
  cwd: this.cwd
11
16
  });
12
17
  // Resolve the full paths for every filename
13
- return filenames.map((filename)=>path.join(this.cwd, filename));
18
+ return filenames.map((filename)=>path__default.default.join(this.cwd, filename));
14
19
  }
15
20
  constructor(cwd){
16
21
  this.cwd = cwd;
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sources":["../../../../src/modules/file-scanner/scanner.ts"],"sourcesContent":["import path from 'node:path';\nimport fastglob from 'fast-glob';\n\nimport type { FileScanner as FileScannerInterface } from './types';\n\nexport class FileScanner implements FileScannerInterface {\n public cwd: string;\n\n constructor(cwd: string) {\n this.cwd = cwd;\n }\n\n scan(patterns: string[]) {\n // we use fastglob instead of glob because it supports negation patterns\n const filenames = fastglob.sync(patterns, {\n cwd: this.cwd,\n });\n\n // Resolve the full paths for every filename\n return filenames.map((filename) => path.join(this.cwd, filename));\n }\n}\n\nexport const fileScannerFactory = (cwd: string) => new FileScanner(cwd);\n"],"names":["FileScanner","scan","patterns","filenames","fastglob","sync","cwd","map","filename","path","join","fileScannerFactory"],"mappings":";;;;;AAKO,MAAMA,WAAAA,CAAAA;AAOXC,IAAAA,IAAAA,CAAKC,QAAkB,EAAE;;AAEvB,QAAA,MAAMC,SAAAA,GAAYC,QAAAA,CAASC,IAAI,CAACH,QAAAA,EAAU;YACxCI,GAAAA,EAAK,IAAI,CAACA;AACZ,SAAA,CAAA;;QAGA,OAAOH,SAAAA,CAAUI,GAAG,CAAC,CAACC,QAAAA,GAAaC,IAAAA,CAAKC,IAAI,CAAC,IAAI,CAACJ,GAAG,EAAEE,QAAAA,CAAAA,CAAAA;AACzD,IAAA;AAZA,IAAA,WAAA,CAAYF,GAAW,CAAE;QACvB,IAAI,CAACA,GAAG,GAAGA,GAAAA;AACb,IAAA;AAWF;MAEaK,kBAAAA,GAAqB,CAACL,GAAAA,GAAgB,IAAIN,YAAYM,GAAAA;;;;;"}
1
+ {"version":3,"file":"scanner.js","sources":["../../../../src/modules/file-scanner/scanner.ts"],"sourcesContent":["import path from 'node:path';\nimport fastglob from 'fast-glob';\n\nimport type { FileScanner as FileScannerInterface } from './types';\n\nexport class FileScanner implements FileScannerInterface {\n public cwd: string;\n\n constructor(cwd: string) {\n this.cwd = cwd;\n }\n\n scan(patterns: string[]) {\n // we use fastglob instead of glob because it supports negation patterns\n const filenames = fastglob.sync(patterns, {\n cwd: this.cwd,\n });\n\n // Resolve the full paths for every filename\n return filenames.map((filename) => path.join(this.cwd, filename));\n }\n}\n\nexport const fileScannerFactory = (cwd: string) => new FileScanner(cwd);\n"],"names":["FileScanner","scan","patterns","filenames","fastglob","sync","cwd","map","filename","path","join","fileScannerFactory"],"mappings":";;;;;;;;;;AAKO,MAAMA,WAAAA,CAAAA;AAOXC,IAAAA,IAAAA,CAAKC,QAAkB,EAAE;;AAEvB,QAAA,MAAMC,SAAAA,GAAYC,yBAAAA,CAASC,IAAI,CAACH,QAAAA,EAAU;YACxCI,GAAAA,EAAK,IAAI,CAACA;AACZ,SAAA,CAAA;;QAGA,OAAOH,SAAAA,CAAUI,GAAG,CAAC,CAACC,QAAAA,GAAaC,qBAAAA,CAAKC,IAAI,CAAC,IAAI,CAACJ,GAAG,EAAEE,QAAAA,CAAAA,CAAAA;AACzD,IAAA;AAZA,IAAA,WAAA,CAAYF,GAAW,CAAE;QACvB,IAAI,CAACA,GAAG,GAAGA,GAAAA;AACb,IAAA;AAWF;MAEaK,kBAAAA,GAAqB,CAACL,GAAAA,GAAgB,IAAIN,YAAYM,GAAAA;;;;;"}
@@ -4,32 +4,37 @@ var CliTable3 = require('cli-table3');
4
4
  var chalk = require('chalk');
5
5
  var constants = require('../timer/constants.js');
6
6
 
7
- const path = (path)=>chalk.blue(path);
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var CliTable3__default = /*#__PURE__*/_interopDefault(CliTable3);
10
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
11
+
12
+ const path = (path)=>chalk__default.default.blue(path);
8
13
  const version = (version)=>{
9
- return chalk.italic.yellow(`v${version}`);
14
+ return chalk__default.default.italic.yellow(`v${version}`);
10
15
  };
11
16
  const codemodUID = (uid)=>{
12
- return chalk.bold.cyan(uid);
17
+ return chalk__default.default.bold.cyan(uid);
13
18
  };
14
19
  const projectDetails = (project)=>{
15
20
  return `Project: TYPE=${projectType(project.type)}; CWD=${path(project.cwd)}; PATHS=${project.paths.map(path)}`;
16
21
  };
17
- const projectType = (type)=>chalk.cyan(type);
18
- const versionRange = (range)=>chalk.italic.yellow(range.raw);
19
- const transform = (transformFilePath)=>chalk.cyan(transformFilePath);
20
- const highlight = (arg)=>chalk.bold.underline(arg);
22
+ const projectType = (type)=>chalk__default.default.cyan(type);
23
+ const versionRange = (range)=>chalk__default.default.italic.yellow(range.raw);
24
+ const transform = (transformFilePath)=>chalk__default.default.cyan(transformFilePath);
25
+ const highlight = (arg)=>chalk__default.default.bold.underline(arg);
21
26
  const upgradeStep = (text, step)=>{
22
- return chalk.bold(`(${step[0]}/${step[1]}) ${text}...`);
27
+ return chalk__default.default.bold(`(${step[0]}/${step[1]}) ${text}...`);
23
28
  };
24
29
  const reports = (reports)=>{
25
30
  const rows = reports.map(({ codemod, report }, i)=>{
26
- const fIndex = chalk.grey(i);
27
- const fVersion = chalk.magenta(codemod.version);
28
- const fKind = chalk.yellow(codemod.kind);
29
- const fFormattedTransformPath = chalk.cyan(codemod.format());
30
- const fTimeElapsed = i === 0 ? `${report.timeElapsed}s ${chalk.dim.italic('(cold start)')}` : `${report.timeElapsed}s`;
31
- const fAffected = report.ok > 0 ? chalk.green(report.ok) : chalk.grey(0);
32
- const fUnchanged = report.ok === 0 ? chalk.red(report.nochange) : chalk.grey(report.nochange);
31
+ const fIndex = chalk__default.default.grey(i);
32
+ const fVersion = chalk__default.default.magenta(codemod.version);
33
+ const fKind = chalk__default.default.yellow(codemod.kind);
34
+ const fFormattedTransformPath = chalk__default.default.cyan(codemod.format());
35
+ const fTimeElapsed = i === 0 ? `${report.timeElapsed}s ${chalk__default.default.dim.italic('(cold start)')}` : `${report.timeElapsed}s`;
36
+ const fAffected = report.ok > 0 ? chalk__default.default.green(report.ok) : chalk__default.default.grey(0);
37
+ const fUnchanged = report.ok === 0 ? chalk__default.default.red(report.nochange) : chalk__default.default.grey(report.nochange);
33
38
  return [
34
39
  fIndex,
35
40
  fVersion,
@@ -40,18 +45,18 @@ const reports = (reports)=>{
40
45
  fTimeElapsed
41
46
  ];
42
47
  });
43
- const table = new CliTable3({
48
+ const table = new CliTable3__default.default({
44
49
  style: {
45
50
  compact: true
46
51
  },
47
52
  head: [
48
- chalk.bold.grey('N°'),
49
- chalk.bold.magenta('Version'),
50
- chalk.bold.yellow('Kind'),
51
- chalk.bold.cyan('Name'),
52
- chalk.bold.green('Affected'),
53
- chalk.bold.red('Unchanged'),
54
- chalk.bold.blue('Duration')
53
+ chalk__default.default.bold.grey('N°'),
54
+ chalk__default.default.bold.magenta('Version'),
55
+ chalk__default.default.bold.yellow('Kind'),
56
+ chalk__default.default.bold.cyan('Name'),
57
+ chalk__default.default.bold.green('Affected'),
58
+ chalk__default.default.bold.red('Unchanged'),
59
+ chalk__default.default.bold.blue('Duration')
55
60
  ]
56
61
  });
57
62
  table.push(...rows);
@@ -59,10 +64,10 @@ const reports = (reports)=>{
59
64
  };
60
65
  const codemodList = (codemods)=>{
61
66
  const rows = codemods.map((codemod, index)=>{
62
- const fIndex = chalk.grey(index);
63
- const fVersion = chalk.magenta(codemod.version);
64
- const fKind = chalk.yellow(codemod.kind);
65
- const fName = chalk.blue(codemod.format());
67
+ const fIndex = chalk__default.default.grey(index);
68
+ const fVersion = chalk__default.default.magenta(codemod.version);
69
+ const fKind = chalk__default.default.yellow(codemod.kind);
70
+ const fName = chalk__default.default.blue(codemod.format());
66
71
  const fUID = codemodUID(codemod.uid);
67
72
  return [
68
73
  fIndex,
@@ -72,16 +77,16 @@ const codemodList = (codemods)=>{
72
77
  fUID
73
78
  ];
74
79
  });
75
- const table = new CliTable3({
80
+ const table = new CliTable3__default.default({
76
81
  style: {
77
82
  compact: true
78
83
  },
79
84
  head: [
80
- chalk.bold.grey('N°'),
81
- chalk.bold.magenta('Version'),
82
- chalk.bold.yellow('Kind'),
83
- chalk.bold.blue('Name'),
84
- chalk.bold.cyan('UID')
85
+ chalk__default.default.bold.grey('N°'),
86
+ chalk__default.default.bold.magenta('Version'),
87
+ chalk__default.default.bold.yellow('Kind'),
88
+ chalk__default.default.bold.blue('Name'),
89
+ chalk__default.default.bold.cyan('UID')
85
90
  ]
86
91
  });
87
92
  table.push(...rows);
@@ -1 +1 @@
1
- {"version":3,"file":"formats.js","sources":["../../../../src/modules/format/formats.ts"],"sourcesContent":["import CliTable3 from 'cli-table3';\nimport chalk from 'chalk';\n\nimport { constants as timerConstants } from '../timer';\n\nimport type { AppProject, PluginProject, ProjectType } from '../project';\nimport type { Codemod } from '../codemod';\nimport type { Version } from '../version';\nimport type { Report } from '../report';\n\nexport const path = (path: string) => chalk.blue(path);\n\nexport const version = (version: Version.LiteralVersion | Version.SemVer) => {\n return chalk.italic.yellow(`v${version}`);\n};\n\nexport const codemodUID = (uid: string) => {\n return chalk.bold.cyan(uid);\n};\n\nexport const projectDetails = (project: AppProject | PluginProject) => {\n return `Project: TYPE=${projectType(project.type)}; CWD=${path(project.cwd)}; PATHS=${project.paths.map(path)}`;\n};\n\nexport const projectType = (type: ProjectType) => chalk.cyan(type);\n\nexport const versionRange = (range: Version.Range) => chalk.italic.yellow(range.raw);\n\nexport const transform = (transformFilePath: string) => chalk.cyan(transformFilePath);\n\nexport const highlight = (arg: unknown) => chalk.bold.underline(arg);\n\nexport const upgradeStep = (text: string, step: [current: number, total: number]) => {\n return chalk.bold(`(${step[0]}/${step[1]}) ${text}...`);\n};\n\nexport const reports = (reports: Report.CodemodReport[]) => {\n const rows = reports.map(({ codemod, report }, i) => {\n const fIndex = chalk.grey(i);\n const fVersion = chalk.magenta(codemod.version);\n const fKind = chalk.yellow(codemod.kind);\n const fFormattedTransformPath = chalk.cyan(codemod.format());\n const fTimeElapsed =\n i === 0\n ? `${report.timeElapsed}s ${chalk.dim.italic('(cold start)')}`\n : `${report.timeElapsed}s`;\n const fAffected = report.ok > 0 ? chalk.green(report.ok) : chalk.grey(0);\n const fUnchanged = report.ok === 0 ? chalk.red(report.nochange) : chalk.grey(report.nochange);\n\n return [fIndex, fVersion, fKind, fFormattedTransformPath, fAffected, fUnchanged, fTimeElapsed];\n });\n\n const table = new CliTable3({\n style: { compact: true },\n head: [\n chalk.bold.grey('N°'),\n chalk.bold.magenta('Version'),\n chalk.bold.yellow('Kind'),\n chalk.bold.cyan('Name'),\n chalk.bold.green('Affected'),\n chalk.bold.red('Unchanged'),\n chalk.bold.blue('Duration'),\n ],\n });\n\n table.push(...rows);\n\n return table.toString();\n};\n\nexport const codemodList = (codemods: Codemod.List) => {\n type Row = [index: string, version: string, kind: string, name: string, uid: string];\n\n const rows = codemods.map<Row>((codemod, index) => {\n const fIndex = chalk.grey(index);\n const fVersion = chalk.magenta(codemod.version);\n const fKind = chalk.yellow(codemod.kind);\n const fName = chalk.blue(codemod.format());\n const fUID = codemodUID(codemod.uid);\n\n return [fIndex, fVersion, fKind, fName, fUID] satisfies Row;\n });\n\n const table = new CliTable3({\n style: { compact: true },\n head: [\n chalk.bold.grey('N°'),\n chalk.bold.magenta('Version'),\n chalk.bold.yellow('Kind'),\n chalk.bold.blue('Name'),\n chalk.bold.cyan('UID'),\n ],\n });\n\n table.push(...rows);\n\n return table.toString();\n};\n\nexport const durationMs = (elapsedMs: number) => {\n const elapsedSeconds = (elapsedMs / timerConstants.ONE_SECOND_MS).toFixed(3);\n\n return `${elapsedSeconds}s`;\n};\n"],"names":["path","chalk","blue","version","italic","yellow","codemodUID","uid","bold","cyan","projectDetails","project","projectType","type","cwd","paths","map","versionRange","range","raw","transform","transformFilePath","highlight","arg","underline","upgradeStep","text","step","reports","rows","codemod","report","i","fIndex","grey","fVersion","magenta","fKind","kind","fFormattedTransformPath","format","fTimeElapsed","timeElapsed","dim","fAffected","ok","green","fUnchanged","red","nochange","table","CliTable3","style","compact","head","push","toString","codemodList","codemods","index","fName","fUID","durationMs","elapsedMs","elapsedSeconds","timerConstants","toFixed"],"mappings":"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"}
1
+ {"version":3,"file":"formats.js","sources":["../../../../src/modules/format/formats.ts"],"sourcesContent":["import CliTable3 from 'cli-table3';\nimport chalk from 'chalk';\n\nimport { constants as timerConstants } from '../timer';\n\nimport type { AppProject, PluginProject, ProjectType } from '../project';\nimport type { Codemod } from '../codemod';\nimport type { Version } from '../version';\nimport type { Report } from '../report';\n\nexport const path = (path: string) => chalk.blue(path);\n\nexport const version = (version: Version.LiteralVersion | Version.SemVer) => {\n return chalk.italic.yellow(`v${version}`);\n};\n\nexport const codemodUID = (uid: string) => {\n return chalk.bold.cyan(uid);\n};\n\nexport const projectDetails = (project: AppProject | PluginProject) => {\n return `Project: TYPE=${projectType(project.type)}; CWD=${path(project.cwd)}; PATHS=${project.paths.map(path)}`;\n};\n\nexport const projectType = (type: ProjectType) => chalk.cyan(type);\n\nexport const versionRange = (range: Version.Range) => chalk.italic.yellow(range.raw);\n\nexport const transform = (transformFilePath: string) => chalk.cyan(transformFilePath);\n\nexport const highlight = (arg: unknown) => chalk.bold.underline(arg);\n\nexport const upgradeStep = (text: string, step: [current: number, total: number]) => {\n return chalk.bold(`(${step[0]}/${step[1]}) ${text}...`);\n};\n\nexport const reports = (reports: Report.CodemodReport[]) => {\n const rows = reports.map(({ codemod, report }, i) => {\n const fIndex = chalk.grey(i);\n const fVersion = chalk.magenta(codemod.version);\n const fKind = chalk.yellow(codemod.kind);\n const fFormattedTransformPath = chalk.cyan(codemod.format());\n const fTimeElapsed =\n i === 0\n ? `${report.timeElapsed}s ${chalk.dim.italic('(cold start)')}`\n : `${report.timeElapsed}s`;\n const fAffected = report.ok > 0 ? chalk.green(report.ok) : chalk.grey(0);\n const fUnchanged = report.ok === 0 ? chalk.red(report.nochange) : chalk.grey(report.nochange);\n\n return [fIndex, fVersion, fKind, fFormattedTransformPath, fAffected, fUnchanged, fTimeElapsed];\n });\n\n const table = new CliTable3({\n style: { compact: true },\n head: [\n chalk.bold.grey('N°'),\n chalk.bold.magenta('Version'),\n chalk.bold.yellow('Kind'),\n chalk.bold.cyan('Name'),\n chalk.bold.green('Affected'),\n chalk.bold.red('Unchanged'),\n chalk.bold.blue('Duration'),\n ],\n });\n\n table.push(...rows);\n\n return table.toString();\n};\n\nexport const codemodList = (codemods: Codemod.List) => {\n type Row = [index: string, version: string, kind: string, name: string, uid: string];\n\n const rows = codemods.map<Row>((codemod, index) => {\n const fIndex = chalk.grey(index);\n const fVersion = chalk.magenta(codemod.version);\n const fKind = chalk.yellow(codemod.kind);\n const fName = chalk.blue(codemod.format());\n const fUID = codemodUID(codemod.uid);\n\n return [fIndex, fVersion, fKind, fName, fUID] satisfies Row;\n });\n\n const table = new CliTable3({\n style: { compact: true },\n head: [\n chalk.bold.grey('N°'),\n chalk.bold.magenta('Version'),\n chalk.bold.yellow('Kind'),\n chalk.bold.blue('Name'),\n chalk.bold.cyan('UID'),\n ],\n });\n\n table.push(...rows);\n\n return table.toString();\n};\n\nexport const durationMs = (elapsedMs: number) => {\n const elapsedSeconds = (elapsedMs / timerConstants.ONE_SECOND_MS).toFixed(3);\n\n return `${elapsedSeconds}s`;\n};\n"],"names":["path","chalk","blue","version","italic","yellow","codemodUID","uid","bold","cyan","projectDetails","project","projectType","type","cwd","paths","map","versionRange","range","raw","transform","transformFilePath","highlight","arg","underline","upgradeStep","text","step","reports","rows","codemod","report","i","fIndex","grey","fVersion","magenta","fKind","kind","fFormattedTransformPath","format","fTimeElapsed","timeElapsed","dim","fAffected","ok","green","fUnchanged","red","nochange","table","CliTable3","style","compact","head","push","toString","codemodList","codemods","index","fName","fUID","durationMs","elapsedMs","elapsedSeconds","timerConstants","toFixed"],"mappings":"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"}
@@ -2,13 +2,17 @@
2
2
 
3
3
  var fse = require('fs-extra');
4
4
 
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var fse__default = /*#__PURE__*/_interopDefault(fse);
8
+
5
9
  const readJSON = async (path)=>{
6
- const buffer = await fse.readFile(path);
10
+ const buffer = await fse__default.default.readFile(path);
7
11
  return JSON.parse(buffer.toString());
8
12
  };
9
13
  const saveJSON = async (path, json)=>{
10
14
  const jsonAsString = `${JSON.stringify(json, null, 2)}\n`;
11
- await fse.writeFile(path, jsonAsString);
15
+ await fse__default.default.writeFile(path, jsonAsString);
12
16
  };
13
17
 
14
18
  exports.readJSON = readJSON;