create-strapi-app 5.48.1 → 5.50.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 (66) hide show
  1. package/dist/create-strapi.d.ts.map +1 -1
  2. package/dist/create-strapi.js +60 -32
  3. package/dist/create-strapi.js.map +1 -1
  4. package/dist/create-strapi.mjs +22 -1
  5. package/dist/create-strapi.mjs.map +1 -1
  6. package/dist/index.js +21 -13
  7. package/dist/index.js.map +1 -1
  8. package/dist/types.d.ts +2 -0
  9. package/dist/types.d.ts.map +1 -1
  10. package/dist/types.js.map +1 -1
  11. package/dist/types.mjs.map +1 -1
  12. package/dist/utils/check-install-path.js +10 -5
  13. package/dist/utils/check-install-path.js.map +1 -1
  14. package/dist/utils/check-requirements.d.ts.map +1 -1
  15. package/dist/utils/check-requirements.js +12 -6
  16. package/dist/utils/check-requirements.js.map +1 -1
  17. package/dist/utils/check-requirements.mjs +2 -1
  18. package/dist/utils/check-requirements.mjs.map +1 -1
  19. package/dist/utils/dot-env.d.ts.map +1 -1
  20. package/dist/utils/dot-env.js +9 -2
  21. package/dist/utils/dot-env.js.map +1 -1
  22. package/dist/utils/dot-env.mjs +2 -0
  23. package/dist/utils/dot-env.mjs.map +1 -1
  24. package/dist/utils/get-package-manager-args.d.ts.map +1 -1
  25. package/dist/utils/get-package-manager-args.js +7 -2
  26. package/dist/utils/get-package-manager-args.js.map +1 -1
  27. package/dist/utils/git.js +10 -6
  28. package/dist/utils/git.js.map +1 -1
  29. package/dist/utils/install-id.js +6 -2
  30. package/dist/utils/install-id.js.map +1 -1
  31. package/dist/utils/logger.js +11 -7
  32. package/dist/utils/logger.js.map +1 -1
  33. package/dist/utils/package-json.d.ts.map +1 -1
  34. package/dist/utils/package-json.js +27 -3
  35. package/dist/utils/package-json.js.map +1 -1
  36. package/dist/utils/package-json.mjs +23 -3
  37. package/dist/utils/package-json.mjs.map +1 -1
  38. package/dist/utils/parse-to-chalk.js +11 -7
  39. package/dist/utils/parse-to-chalk.js.map +1 -1
  40. package/dist/utils/pnpm-config.d.ts +18 -0
  41. package/dist/utils/pnpm-config.d.ts.map +1 -0
  42. package/dist/utils/pnpm-config.js +113 -0
  43. package/dist/utils/pnpm-config.js.map +1 -0
  44. package/dist/utils/pnpm-config.mjs +96 -0
  45. package/dist/utils/pnpm-config.mjs.map +1 -0
  46. package/dist/utils/template.js +17 -10
  47. package/dist/utils/template.js.map +1 -1
  48. package/dist/utils/usage.js +10 -5
  49. package/dist/utils/usage.js.map +1 -1
  50. package/package.json +5 -5
  51. package/templates/example/config/admin.ts +4 -4
  52. package/templates/example/config/api.ts +4 -0
  53. package/templates/example/config/database.ts +11 -3
  54. package/templates/example/config/plugins.ts +40 -1
  55. package/templates/example/config/server.ts +4 -1
  56. package/templates/example/tsconfig.json +1 -1
  57. package/templates/example-js/config/api.js +4 -0
  58. package/templates/example-js/config/plugins.js +40 -1
  59. package/templates/vanilla/config/admin.ts +4 -4
  60. package/templates/vanilla/config/api.ts +4 -0
  61. package/templates/vanilla/config/database.ts +11 -3
  62. package/templates/vanilla/config/plugins.ts +40 -1
  63. package/templates/vanilla/config/server.ts +4 -1
  64. package/templates/vanilla/tsconfig.json +1 -1
  65. package/templates/vanilla-js/config/api.js +4 -0
  66. package/templates/vanilla-js/config/plugins.js +40 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { join, basename } from 'node:path';\nimport os from 'node:os';\nimport chalk from 'chalk';\nimport commander from 'commander';\nimport crypto from 'crypto';\nimport fse from 'fs-extra';\n\nimport * as prompts from './prompts';\nimport { handleCloudLogin } from './cloud';\nimport { createStrapi } from './create-strapi';\nimport { checkNodeRequirements } from './utils/check-requirements';\nimport { checkInstallPath } from './utils/check-install-path';\nimport { installID } from './utils/install-id';\nimport { trackError } from './utils/usage';\nimport { addDatabaseDependencies, getDatabaseInfos } from './utils/database';\n\nimport type { Options, Scope } from './types';\nimport { logger } from './utils/logger';\n\nconst { version } = fse.readJSONSync(join(__dirname, '..', 'package.json'));\n\nconst command = new commander.Command('create-strapi-app')\n .version(version)\n .arguments('[directory]')\n .usage('[directory] [options]')\n .option('--quickstart', 'Quickstart app creation (deprecated)')\n .option('--no-run', 'Do not start the application after it is created.')\n\n // setup options\n .option('--ts, --typescript', 'Initialize the project with TypeScript (default)')\n .option('--js, --javascript', 'Initialize the project with Javascript')\n\n // Package manager options\n .option('--use-npm', 'Use npm as the project package manager')\n .option('--use-yarn', 'Use yarn as the project package manager')\n .option('--use-pnpm', 'Use pnpm as the project package manager')\n\n // dependencies options\n .option('--install', 'Install dependencies')\n .option('--no-install', 'Do not install dependencies')\n\n // Cloud options\n .option('--skip-cloud', 'Skip cloud login and project creation')\n\n // Example app\n .option('--example', 'Use an example app')\n .option('--no-example', 'Do not use an example app')\n\n // git options\n .option('--git-init', 'Initialize a git repository')\n .option('--no-git-init', 'Do no initialize a git repository')\n\n // Legacy no-ops (hidden from --help): accept old flags so existing CI/scripts keep working\n .addOption(new commander.Option('--enable-ab-tests', 'ignored').hideHelp())\n .addOption(new commander.Option('--no-enable-ab-tests', 'ignored').hideHelp())\n\n // Automation\n .option('--non-interactive', 'Skip all interactive prompts and use defaults')\n\n // Database options\n .option('--dbclient <dbclient>', 'Database client')\n .option('--dbhost <dbhost>', 'Database host')\n .option('--dbport <dbport>', 'Database port')\n .option('--dbname <dbname>', 'Database name')\n .option('--dbusername <dbusername>', 'Database username')\n .option('--dbpassword <dbpassword>', 'Database password')\n .option('--dbssl <dbssl>', 'Database SSL')\n .option('--dbfile <dbfile>', 'Database file path for sqlite')\n .option('--skip-db', 'Skip database configuration')\n\n .option('--template <template>', 'Specify a Strapi template')\n .option('--template-branch <templateBranch>', 'Specify a branch for the template')\n .option('--template-path <templatePath>', 'Specify a path to the template inside the repository')\n\n .description('create a new application');\n\nasync function run(args: string[]): Promise<void> {\n const options = command.parse(args).opts<Options>();\n const directory = command.args[0];\n\n logger.title(\n 'Strapi',\n `${chalk.green(chalk.bold(`v${version}`))} ${chalk.bold(\"🚀 Let's create your new project\")}\\n`\n );\n\n if (\n (options.javascript !== undefined || options.typescript !== undefined) &&\n options.template !== undefined\n ) {\n logger.fatal(\n `You cannot use ${chalk.bold('--javascript')} or ${chalk.bold('--typescript')} with ${chalk.bold('--template')}`\n );\n }\n\n if (options.javascript === true && options.typescript === true) {\n logger.fatal(\n `You cannot use both ${chalk.bold('--typescript')} (--ts) and ${chalk.bold('--javascript')} (--js) flags together`\n );\n }\n\n // Only prompt the example app option if there is no template option\n if (options.example === true && options.template !== undefined) {\n logger.fatal(`You cannot use ${chalk.bold('--example')} with ${chalk.bold('--template')}`);\n }\n\n if (options.template !== undefined && options.template.startsWith('-')) {\n logger.fatal(`Template name ${chalk.bold(`\"${options.template}\"`)} is invalid`);\n }\n\n if ([options.useNpm, options.usePnpm, options.useYarn].filter(Boolean).length > 1) {\n logger.fatal(\n `You cannot specify multiple package managers at the same time ${chalk.bold('(--use-npm, --use-pnpm, --use-yarn)')}`\n );\n }\n\n if (options.quickstart && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--quickstart')}`\n );\n }\n\n if (options.nonInteractive && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--non-interactive')}`\n );\n }\n\n const skipPrompts = options.quickstart || options.nonInteractive;\n\n checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n let shouldCreateGrowthSsoTrial = false;\n if (!options.skipCloud && !options.nonInteractive) {\n shouldCreateGrowthSsoTrial = await handleCloudLogin();\n }\n\n const tmpPath = join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);\n\n const randomUUID = crypto.randomUUID();\n const uuid = (process.env.STRAPI_UUID_PREFIX || '') + randomUUID;\n const installId = installID(uuid);\n\n const scope: Scope = {\n rootPath,\n name: basename(rootPath),\n packageManager: getPkgManager(options),\n database: await getDatabaseInfos(options),\n template: options.template,\n templateBranch: options.templateBranch,\n templatePath: options.templatePath,\n isQuickstart: options.quickstart,\n useExample: false,\n runApp: options.quickstart === true && options.run !== false,\n strapiVersion: version,\n packageJsonStrapi: {\n template: options.template,\n },\n uuid,\n docker: process.env.DOCKER === 'true',\n installId,\n tmpPath,\n gitInit: true,\n devDependencies: {},\n dependencies: {\n '@strapi/strapi': version,\n '@strapi/plugin-users-permissions': version,\n '@strapi/plugin-cloud': version,\n // third party\n react: '^18.0.0',\n 'react-dom': '^18.0.0',\n 'react-router-dom': '^6.0.0',\n 'styled-components': '^6.0.0',\n },\n shouldCreateGrowthSsoTrial,\n };\n\n if (options.template !== undefined) {\n scope.useExample = false;\n } else if (options.example === true) {\n scope.useExample = true;\n } else if (options.example === false || skipPrompts) {\n scope.useExample = false;\n } else {\n scope.useExample = await prompts.example();\n }\n\n if (options.javascript === true) {\n scope.useTypescript = false;\n } else if (options.typescript === true || skipPrompts) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n scope.installDependencies = await resolveOption(options.install, skipPrompts, true, () =>\n prompts.installDependencies(scope.packageManager)\n );\n\n if (scope.useTypescript) {\n scope.devDependencies = {\n ...scope.devDependencies,\n typescript: '^5',\n '@types/node': '^20',\n '@types/react': '^18',\n '@types/react-dom': '^18',\n };\n }\n\n scope.gitInit = await resolveOption(options.gitInit, skipPrompts, true, prompts.gitInit);\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\n/**\n * Resolves a boolean CLI option: explicit flag wins, then non-interactive default, then interactive prompt.\n */\nasync function resolveOption(\n explicitValue: boolean | undefined,\n skipPrompts: boolean | undefined,\n defaultValue: boolean,\n promptFn: () => Promise<boolean>\n): Promise<boolean> {\n if (explicitValue !== undefined) return explicitValue;\n if (skipPrompts) return defaultValue;\n return promptFn();\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","addOption","Option","hideHelp","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","nonInteractive","skipPrompts","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","shouldCreateGrowthSsoTrial","skipCloud","handleCloudLogin","tmpPath","os","tmpdir","crypto","randomBytes","toString","randomUUID","uuid","process","env","STRAPI_UUID_PREFIX","installId","installID","scope","name","basename","packageManager","getPkgManager","database","getDatabaseInfos","templateBranch","templatePath","isQuickstart","useExample","runApp","strapiVersion","packageJsonStrapi","docker","DOCKER","gitInit","devDependencies","dependencies","react","useTypescript","installDependencies","resolveOption","install","addDatabaseDependencies","createStrapi","error","Error","trackError","message","explicitValue","defaultValue","promptFn","userAgent","npm_config_user_agent"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { join, basename } from 'node:path';\nimport os from 'node:os';\nimport chalk from 'chalk';\nimport commander from 'commander';\nimport crypto from 'crypto';\nimport fse from 'fs-extra';\n\nimport * as prompts from './prompts';\nimport { handleCloudLogin } from './cloud';\nimport { createStrapi } from './create-strapi';\nimport { checkNodeRequirements } from './utils/check-requirements';\nimport { checkInstallPath } from './utils/check-install-path';\nimport { installID } from './utils/install-id';\nimport { trackError } from './utils/usage';\nimport { addDatabaseDependencies, getDatabaseInfos } from './utils/database';\n\nimport type { Options, Scope } from './types';\nimport { logger } from './utils/logger';\n\nconst { version } = fse.readJSONSync(join(__dirname, '..', 'package.json'));\n\nconst command = new commander.Command('create-strapi-app')\n .version(version)\n .arguments('[directory]')\n .usage('[directory] [options]')\n .option('--quickstart', 'Quickstart app creation (deprecated)')\n .option('--no-run', 'Do not start the application after it is created.')\n\n // setup options\n .option('--ts, --typescript', 'Initialize the project with TypeScript (default)')\n .option('--js, --javascript', 'Initialize the project with Javascript')\n\n // Package manager options\n .option('--use-npm', 'Use npm as the project package manager')\n .option('--use-yarn', 'Use yarn as the project package manager')\n .option('--use-pnpm', 'Use pnpm as the project package manager')\n\n // dependencies options\n .option('--install', 'Install dependencies')\n .option('--no-install', 'Do not install dependencies')\n\n // Cloud options\n .option('--skip-cloud', 'Skip cloud login and project creation')\n\n // Example app\n .option('--example', 'Use an example app')\n .option('--no-example', 'Do not use an example app')\n\n // git options\n .option('--git-init', 'Initialize a git repository')\n .option('--no-git-init', 'Do no initialize a git repository')\n\n // Legacy no-ops (hidden from --help): accept old flags so existing CI/scripts keep working\n .addOption(new commander.Option('--enable-ab-tests', 'ignored').hideHelp())\n .addOption(new commander.Option('--no-enable-ab-tests', 'ignored').hideHelp())\n\n // Automation\n .option('--non-interactive', 'Skip all interactive prompts and use defaults')\n\n // Database options\n .option('--dbclient <dbclient>', 'Database client')\n .option('--dbhost <dbhost>', 'Database host')\n .option('--dbport <dbport>', 'Database port')\n .option('--dbname <dbname>', 'Database name')\n .option('--dbusername <dbusername>', 'Database username')\n .option('--dbpassword <dbpassword>', 'Database password')\n .option('--dbssl <dbssl>', 'Database SSL')\n .option('--dbfile <dbfile>', 'Database file path for sqlite')\n .option('--skip-db', 'Skip database configuration')\n\n .option('--template <template>', 'Specify a Strapi template')\n .option('--template-branch <templateBranch>', 'Specify a branch for the template')\n .option('--template-path <templatePath>', 'Specify a path to the template inside the repository')\n\n .description('create a new application');\n\nasync function run(args: string[]): Promise<void> {\n const options = command.parse(args).opts<Options>();\n const directory = command.args[0];\n\n logger.title(\n 'Strapi',\n `${chalk.green(chalk.bold(`v${version}`))} ${chalk.bold(\"🚀 Let's create your new project\")}\\n`\n );\n\n if (\n (options.javascript !== undefined || options.typescript !== undefined) &&\n options.template !== undefined\n ) {\n logger.fatal(\n `You cannot use ${chalk.bold('--javascript')} or ${chalk.bold('--typescript')} with ${chalk.bold('--template')}`\n );\n }\n\n if (options.javascript === true && options.typescript === true) {\n logger.fatal(\n `You cannot use both ${chalk.bold('--typescript')} (--ts) and ${chalk.bold('--javascript')} (--js) flags together`\n );\n }\n\n // Only prompt the example app option if there is no template option\n if (options.example === true && options.template !== undefined) {\n logger.fatal(`You cannot use ${chalk.bold('--example')} with ${chalk.bold('--template')}`);\n }\n\n if (options.template !== undefined && options.template.startsWith('-')) {\n logger.fatal(`Template name ${chalk.bold(`\"${options.template}\"`)} is invalid`);\n }\n\n if ([options.useNpm, options.usePnpm, options.useYarn].filter(Boolean).length > 1) {\n logger.fatal(\n `You cannot specify multiple package managers at the same time ${chalk.bold('(--use-npm, --use-pnpm, --use-yarn)')}`\n );\n }\n\n if (options.quickstart && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--quickstart')}`\n );\n }\n\n if (options.nonInteractive && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--non-interactive')}`\n );\n }\n\n const skipPrompts = options.quickstart || options.nonInteractive;\n\n checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n let shouldCreateGrowthSsoTrial = false;\n if (!options.skipCloud && !options.nonInteractive) {\n shouldCreateGrowthSsoTrial = await handleCloudLogin();\n }\n\n const tmpPath = join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);\n\n const randomUUID = crypto.randomUUID();\n const uuid = (process.env.STRAPI_UUID_PREFIX || '') + randomUUID;\n const installId = installID(uuid);\n\n const scope: Scope = {\n rootPath,\n name: basename(rootPath),\n packageManager: getPkgManager(options),\n database: await getDatabaseInfos(options),\n template: options.template,\n templateBranch: options.templateBranch,\n templatePath: options.templatePath,\n isQuickstart: options.quickstart,\n useExample: false,\n runApp: options.quickstart === true && options.run !== false,\n strapiVersion: version,\n packageJsonStrapi: {\n template: options.template,\n },\n uuid,\n docker: process.env.DOCKER === 'true',\n installId,\n tmpPath,\n gitInit: true,\n devDependencies: {},\n dependencies: {\n '@strapi/strapi': version,\n '@strapi/plugin-users-permissions': version,\n '@strapi/plugin-cloud': version,\n // third party\n react: '^18.0.0',\n 'react-dom': '^18.0.0',\n 'react-router-dom': '^6.0.0',\n 'styled-components': '^6.0.0',\n },\n shouldCreateGrowthSsoTrial,\n };\n\n if (options.template !== undefined) {\n scope.useExample = false;\n } else if (options.example === true) {\n scope.useExample = true;\n } else if (options.example === false || skipPrompts) {\n scope.useExample = false;\n } else {\n scope.useExample = await prompts.example();\n }\n\n if (options.javascript === true) {\n scope.useTypescript = false;\n } else if (options.typescript === true || skipPrompts) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n scope.installDependencies = await resolveOption(options.install, skipPrompts, true, () =>\n prompts.installDependencies(scope.packageManager)\n );\n\n if (scope.useTypescript) {\n scope.devDependencies = {\n ...scope.devDependencies,\n typescript: '^5',\n '@types/node': '^20',\n '@types/react': '^18',\n '@types/react-dom': '^18',\n };\n }\n\n scope.gitInit = await resolveOption(options.gitInit, skipPrompts, true, prompts.gitInit);\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\n/**\n * Resolves a boolean CLI option: explicit flag wins, then non-interactive default, then interactive prompt.\n */\nasync function resolveOption(\n explicitValue: boolean | undefined,\n skipPrompts: boolean | undefined,\n defaultValue: boolean,\n promptFn: () => Promise<boolean>\n): Promise<boolean> {\n if (explicitValue !== undefined) return explicitValue;\n if (skipPrompts) return defaultValue;\n return promptFn();\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","addOption","Option","hideHelp","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","nonInteractive","skipPrompts","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","shouldCreateGrowthSsoTrial","skipCloud","handleCloudLogin","tmpPath","os","tmpdir","crypto","randomBytes","toString","randomUUID","uuid","process","env","STRAPI_UUID_PREFIX","installId","installID","scope","name","basename","packageManager","getPkgManager","database","getDatabaseInfos","templateBranch","templatePath","isQuickstart","useExample","runApp","strapiVersion","packageJsonStrapi","docker","DOCKER","gitInit","devDependencies","dependencies","react","useTypescript","installDependencies","resolveOption","install","addDatabaseDependencies","createStrapi","error","Error","trackError","message","explicitValue","defaultValue","promptFn","userAgent","npm_config_user_agent"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -61,6 +61,8 @@ export interface Scope {
61
61
  useExample?: boolean;
62
62
  gitInit?: boolean;
63
63
  shouldCreateGrowthSsoTrial: boolean;
64
+ /** Resolved at scaffold time when packageManager is pnpm (npm_config_user_agent or pnpm --version). */
65
+ pnpmVersion?: string | null;
64
66
  }
65
67
  export type ClientName = 'mysql' | 'postgres' | 'sqlite';
66
68
  export interface DatabaseInfo {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["export interface Options {\n useNpm?: boolean;\n usePnpm?: boolean;\n useYarn?: boolean;\n quickstart?: boolean;\n run?: boolean;\n dbclient?: DBClient;\n skipCloud?: boolean;\n skipDb?: boolean;\n dbhost?: string;\n dbport?: string;\n dbname?: string;\n dbusername?: string;\n dbpassword?: string;\n dbssl?: string;\n dbfile?: string;\n template?: string;\n typescript?: boolean;\n javascript?: boolean;\n install?: boolean;\n example?: boolean;\n gitInit?: boolean;\n nonInteractive?: boolean;\n templateBranch?: string;\n templatePath?: string;\n}\n\nexport type DBClient = 'mysql' | 'postgres' | 'sqlite';\n\nexport type DBConfig = {\n client: DBClient;\n connection: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n};\n\nexport type PackageManager = 'npm' | 'yarn' | 'pnpm';\n\nexport interface Scope {\n name: string;\n rootPath: string;\n template?: string;\n templateBranch?: string;\n templatePath?: string;\n strapiVersion?: string;\n installDependencies?: boolean;\n devDependencies?: Record<string, string>;\n dependencies?: Record<string, string>;\n docker?: boolean;\n packageManager: PackageManager;\n runApp?: boolean;\n isQuickstart?: boolean;\n uuid?: string;\n installId?: string;\n database: DatabaseInfo;\n tmpPath?: string;\n packageJsonStrapi?: Record<string, unknown>;\n useTypescript?: boolean;\n useExample?: boolean;\n gitInit?: boolean;\n shouldCreateGrowthSsoTrial: boolean;\n}\n\nexport type ClientName = 'mysql' | 'postgres' | 'sqlite';\n\nexport interface DatabaseInfo {\n client: ClientName;\n connection?: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n}\n\nexport interface StderrError extends Error {\n stderr: string;\n}\n\nexport function isStderrError(error: unknown): error is StderrError {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'stderr' in error &&\n typeof error.stderr === 'string'\n );\n}\n"],"names":["isStderrError","error","stderr"],"mappings":";;AAwFO,SAASA,cAAcC,KAAc,EAAA;IAC1C,OACE,OAAOA,KAAAA,KAAU,QAAA,IACjBA,KAAAA,KAAU,IAAA,IACV,YAAYA,KAAAA,IACZ,OAAOA,KAAAA,CAAMC,MAAM,KAAK,QAAA;AAE5B;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["export interface Options {\n useNpm?: boolean;\n usePnpm?: boolean;\n useYarn?: boolean;\n quickstart?: boolean;\n run?: boolean;\n dbclient?: DBClient;\n skipCloud?: boolean;\n skipDb?: boolean;\n dbhost?: string;\n dbport?: string;\n dbname?: string;\n dbusername?: string;\n dbpassword?: string;\n dbssl?: string;\n dbfile?: string;\n template?: string;\n typescript?: boolean;\n javascript?: boolean;\n install?: boolean;\n example?: boolean;\n gitInit?: boolean;\n nonInteractive?: boolean;\n templateBranch?: string;\n templatePath?: string;\n}\n\nexport type DBClient = 'mysql' | 'postgres' | 'sqlite';\n\nexport type DBConfig = {\n client: DBClient;\n connection: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n};\n\nexport type PackageManager = 'npm' | 'yarn' | 'pnpm';\n\nexport interface Scope {\n name: string;\n rootPath: string;\n template?: string;\n templateBranch?: string;\n templatePath?: string;\n strapiVersion?: string;\n installDependencies?: boolean;\n devDependencies?: Record<string, string>;\n dependencies?: Record<string, string>;\n docker?: boolean;\n packageManager: PackageManager;\n runApp?: boolean;\n isQuickstart?: boolean;\n uuid?: string;\n installId?: string;\n database: DatabaseInfo;\n tmpPath?: string;\n packageJsonStrapi?: Record<string, unknown>;\n useTypescript?: boolean;\n useExample?: boolean;\n gitInit?: boolean;\n shouldCreateGrowthSsoTrial: boolean;\n /** Resolved at scaffold time when packageManager is pnpm (npm_config_user_agent or pnpm --version). */\n pnpmVersion?: string | null;\n}\n\nexport type ClientName = 'mysql' | 'postgres' | 'sqlite';\n\nexport interface DatabaseInfo {\n client: ClientName;\n connection?: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n}\n\nexport interface StderrError extends Error {\n stderr: string;\n}\n\nexport function isStderrError(error: unknown): error is StderrError {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'stderr' in error &&\n typeof error.stderr === 'string'\n );\n}\n"],"names":["isStderrError","error","stderr"],"mappings":";;AA0FO,SAASA,cAAcC,KAAc,EAAA;IAC1C,OACE,OAAOA,KAAAA,KAAU,QAAA,IACjBA,KAAAA,KAAU,IAAA,IACV,YAAYA,KAAAA,IACZ,OAAOA,KAAAA,CAAMC,MAAM,KAAK,QAAA;AAE5B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sources":["../src/types.ts"],"sourcesContent":["export interface Options {\n useNpm?: boolean;\n usePnpm?: boolean;\n useYarn?: boolean;\n quickstart?: boolean;\n run?: boolean;\n dbclient?: DBClient;\n skipCloud?: boolean;\n skipDb?: boolean;\n dbhost?: string;\n dbport?: string;\n dbname?: string;\n dbusername?: string;\n dbpassword?: string;\n dbssl?: string;\n dbfile?: string;\n template?: string;\n typescript?: boolean;\n javascript?: boolean;\n install?: boolean;\n example?: boolean;\n gitInit?: boolean;\n nonInteractive?: boolean;\n templateBranch?: string;\n templatePath?: string;\n}\n\nexport type DBClient = 'mysql' | 'postgres' | 'sqlite';\n\nexport type DBConfig = {\n client: DBClient;\n connection: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n};\n\nexport type PackageManager = 'npm' | 'yarn' | 'pnpm';\n\nexport interface Scope {\n name: string;\n rootPath: string;\n template?: string;\n templateBranch?: string;\n templatePath?: string;\n strapiVersion?: string;\n installDependencies?: boolean;\n devDependencies?: Record<string, string>;\n dependencies?: Record<string, string>;\n docker?: boolean;\n packageManager: PackageManager;\n runApp?: boolean;\n isQuickstart?: boolean;\n uuid?: string;\n installId?: string;\n database: DatabaseInfo;\n tmpPath?: string;\n packageJsonStrapi?: Record<string, unknown>;\n useTypescript?: boolean;\n useExample?: boolean;\n gitInit?: boolean;\n shouldCreateGrowthSsoTrial: boolean;\n}\n\nexport type ClientName = 'mysql' | 'postgres' | 'sqlite';\n\nexport interface DatabaseInfo {\n client: ClientName;\n connection?: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n}\n\nexport interface StderrError extends Error {\n stderr: string;\n}\n\nexport function isStderrError(error: unknown): error is StderrError {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'stderr' in error &&\n typeof error.stderr === 'string'\n );\n}\n"],"names":["isStderrError","error","stderr"],"mappings":"AAwFO,SAASA,cAAcC,KAAc,EAAA;IAC1C,OACE,OAAOA,KAAAA,KAAU,QAAA,IACjBA,KAAAA,KAAU,IAAA,IACV,YAAYA,KAAAA,IACZ,OAAOA,KAAAA,CAAMC,MAAM,KAAK,QAAA;AAE5B;;;;"}
1
+ {"version":3,"file":"types.mjs","sources":["../src/types.ts"],"sourcesContent":["export interface Options {\n useNpm?: boolean;\n usePnpm?: boolean;\n useYarn?: boolean;\n quickstart?: boolean;\n run?: boolean;\n dbclient?: DBClient;\n skipCloud?: boolean;\n skipDb?: boolean;\n dbhost?: string;\n dbport?: string;\n dbname?: string;\n dbusername?: string;\n dbpassword?: string;\n dbssl?: string;\n dbfile?: string;\n template?: string;\n typescript?: boolean;\n javascript?: boolean;\n install?: boolean;\n example?: boolean;\n gitInit?: boolean;\n nonInteractive?: boolean;\n templateBranch?: string;\n templatePath?: string;\n}\n\nexport type DBClient = 'mysql' | 'postgres' | 'sqlite';\n\nexport type DBConfig = {\n client: DBClient;\n connection: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n};\n\nexport type PackageManager = 'npm' | 'yarn' | 'pnpm';\n\nexport interface Scope {\n name: string;\n rootPath: string;\n template?: string;\n templateBranch?: string;\n templatePath?: string;\n strapiVersion?: string;\n installDependencies?: boolean;\n devDependencies?: Record<string, string>;\n dependencies?: Record<string, string>;\n docker?: boolean;\n packageManager: PackageManager;\n runApp?: boolean;\n isQuickstart?: boolean;\n uuid?: string;\n installId?: string;\n database: DatabaseInfo;\n tmpPath?: string;\n packageJsonStrapi?: Record<string, unknown>;\n useTypescript?: boolean;\n useExample?: boolean;\n gitInit?: boolean;\n shouldCreateGrowthSsoTrial: boolean;\n /** Resolved at scaffold time when packageManager is pnpm (npm_config_user_agent or pnpm --version). */\n pnpmVersion?: string | null;\n}\n\nexport type ClientName = 'mysql' | 'postgres' | 'sqlite';\n\nexport interface DatabaseInfo {\n client: ClientName;\n connection?: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n}\n\nexport interface StderrError extends Error {\n stderr: string;\n}\n\nexport function isStderrError(error: unknown): error is StderrError {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'stderr' in error &&\n typeof error.stderr === 'string'\n );\n}\n"],"names":["isStderrError","error","stderr"],"mappings":"AA0FO,SAASA,cAAcC,KAAc,EAAA;IAC1C,OACE,OAAOA,KAAAA,KAAU,QAAA,IACjBA,KAAAA,KAAU,IAAA,IACV,YAAYA,KAAAA,IACZ,OAAOA,KAAAA,CAAMC,MAAM,KAAK,QAAA;AAE5B;;;;"}
@@ -5,19 +5,24 @@ var chalk = require('chalk');
5
5
  var fse = require('fs-extra');
6
6
  var logger = require('./logger.js');
7
7
 
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
11
+ var fse__default = /*#__PURE__*/_interopDefault(fse);
12
+
8
13
  // Checks if the an empty directory exists at rootPath
9
14
  async function checkInstallPath(directory) {
10
15
  const rootPath = path.resolve(directory);
11
- if (await fse.pathExists(rootPath)) {
12
- const stat = await fse.stat(rootPath);
16
+ if (await fse__default.default.pathExists(rootPath)) {
17
+ const stat = await fse__default.default.stat(rootPath);
13
18
  if (!stat.isDirectory()) {
14
- logger.logger.fatal(`${chalk.green(rootPath)} is not a directory. Make sure to create a Strapi application in an empty directory.`);
19
+ logger.logger.fatal(`${chalk__default.default.green(rootPath)} is not a directory. Make sure to create a Strapi application in an empty directory.`);
15
20
  }
16
- const files = await fse.readdir(rootPath);
21
+ const files = await fse__default.default.readdir(rootPath);
17
22
  if (files.length > 1) {
18
23
  logger.logger.fatal([
19
24
  'You can only create a Strapi app in an empty directory',
20
- `Make sure ${chalk.green(rootPath)} is empty.`
25
+ `Make sure ${chalk__default.default.green(rootPath)} is empty.`
21
26
  ]);
22
27
  }
23
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check-install-path.js","sources":["../../src/utils/check-install-path.ts"],"sourcesContent":["import { resolve } from 'node:path';\nimport chalk from 'chalk';\nimport fse from 'fs-extra';\nimport { logger } from './logger';\n\n// Checks if the an empty directory exists at rootPath\nexport async function checkInstallPath(directory: string): Promise<string> {\n const rootPath = resolve(directory);\n\n if (await fse.pathExists(rootPath)) {\n const stat = await fse.stat(rootPath);\n\n if (!stat.isDirectory()) {\n logger.fatal(\n `${chalk.green(\n rootPath\n )} is not a directory. Make sure to create a Strapi application in an empty directory.`\n );\n }\n\n const files = await fse.readdir(rootPath);\n if (files.length > 1) {\n logger.fatal([\n 'You can only create a Strapi app in an empty directory',\n `Make sure ${chalk.green(rootPath)} is empty.`,\n ]);\n }\n }\n\n return rootPath;\n}\n"],"names":["checkInstallPath","directory","rootPath","resolve","fse","pathExists","stat","isDirectory","logger","fatal","chalk","green","files","readdir","length"],"mappings":";;;;;;;AAKA;AACO,eAAeA,iBAAiBC,SAAiB,EAAA;AACtD,IAAA,MAAMC,WAAWC,YAAAA,CAAQF,SAAAA,CAAAA;AAEzB,IAAA,IAAI,MAAMG,GAAAA,CAAIC,UAAU,CAACH,QAAAA,CAAAA,EAAW;AAClC,QAAA,MAAMI,IAAAA,GAAO,MAAMF,GAAAA,CAAIE,IAAI,CAACJ,QAAAA,CAAAA;QAE5B,IAAI,CAACI,IAAAA,CAAKC,WAAW,EAAA,EAAI;YACvBC,aAAAA,CAAOC,KAAK,CACV,CAAA,EAAGC,KAAAA,CAAMC,KAAK,CACZT,QAAAA,CAAAA,CACA,oFAAoF,CAAC,CAAA;AAE3F,QAAA;AAEA,QAAA,MAAMU,KAAAA,GAAQ,MAAMR,GAAAA,CAAIS,OAAO,CAACX,QAAAA,CAAAA;QAChC,IAAIU,KAAAA,CAAME,MAAM,GAAG,CAAA,EAAG;AACpBN,YAAAA,aAAAA,CAAOC,KAAK,CAAC;AACX,gBAAA,wDAAA;AACA,gBAAA,CAAC,UAAU,EAAEC,KAAAA,CAAMC,KAAK,CAACT,QAAAA,CAAAA,CAAU,UAAU;AAC9C,aAAA,CAAA;AACH,QAAA;AACF,IAAA;IAEA,OAAOA,QAAAA;AACT;;;;"}
1
+ {"version":3,"file":"check-install-path.js","sources":["../../src/utils/check-install-path.ts"],"sourcesContent":["import { resolve } from 'node:path';\nimport chalk from 'chalk';\nimport fse from 'fs-extra';\nimport { logger } from './logger';\n\n// Checks if the an empty directory exists at rootPath\nexport async function checkInstallPath(directory: string): Promise<string> {\n const rootPath = resolve(directory);\n\n if (await fse.pathExists(rootPath)) {\n const stat = await fse.stat(rootPath);\n\n if (!stat.isDirectory()) {\n logger.fatal(\n `${chalk.green(\n rootPath\n )} is not a directory. Make sure to create a Strapi application in an empty directory.`\n );\n }\n\n const files = await fse.readdir(rootPath);\n if (files.length > 1) {\n logger.fatal([\n 'You can only create a Strapi app in an empty directory',\n `Make sure ${chalk.green(rootPath)} is empty.`,\n ]);\n }\n }\n\n return rootPath;\n}\n"],"names":["checkInstallPath","directory","rootPath","resolve","fse","pathExists","stat","isDirectory","logger","fatal","chalk","green","files","readdir","length"],"mappings":";;;;;;;;;;;;AAKA;AACO,eAAeA,iBAAiBC,SAAiB,EAAA;AACtD,IAAA,MAAMC,WAAWC,YAAAA,CAAQF,SAAAA,CAAAA;AAEzB,IAAA,IAAI,MAAMG,oBAAAA,CAAIC,UAAU,CAACH,QAAAA,CAAAA,EAAW;AAClC,QAAA,MAAMI,IAAAA,GAAO,MAAMF,oBAAAA,CAAIE,IAAI,CAACJ,QAAAA,CAAAA;QAE5B,IAAI,CAACI,IAAAA,CAAKC,WAAW,EAAA,EAAI;YACvBC,aAAAA,CAAOC,KAAK,CACV,CAAA,EAAGC,sBAAAA,CAAMC,KAAK,CACZT,QAAAA,CAAAA,CACA,oFAAoF,CAAC,CAAA;AAE3F,QAAA;AAEA,QAAA,MAAMU,KAAAA,GAAQ,MAAMR,oBAAAA,CAAIS,OAAO,CAACX,QAAAA,CAAAA;QAChC,IAAIU,KAAAA,CAAME,MAAM,GAAG,CAAA,EAAG;AACpBN,YAAAA,aAAAA,CAAOC,KAAK,CAAC;AACX,gBAAA,wDAAA;AACA,gBAAA,CAAC,UAAU,EAAEC,sBAAAA,CAAMC,KAAK,CAACT,QAAAA,CAAAA,CAAU,UAAU;AAC9C,aAAA,CAAA;AACH,QAAA;AACF,IAAA;IAEA,OAAOA,QAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"check-requirements.d.ts","sourceRoot":"","sources":["../../src/utils/check-requirements.ts"],"names":[],"mappings":"AAMA,wBAAgB,qBAAqB,SAmBpC"}
1
+ {"version":3,"file":"check-requirements.d.ts","sourceRoot":"","sources":["../../src/utils/check-requirements.ts"],"names":[],"mappings":"AAMA,wBAAgB,qBAAqB,SAoBpC"}
@@ -5,19 +5,25 @@ var semver = require('semver');
5
5
  var engines = require('./engines.js');
6
6
  var logger = require('./logger.js');
7
7
 
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
11
+ var semver__default = /*#__PURE__*/_interopDefault(semver);
12
+
8
13
  function checkNodeRequirements() {
9
14
  const currentNodeVersion = process.versions.node;
15
+ const nodeMajor = semver__default.default.major(currentNodeVersion);
10
16
  // error if the node version isn't supported
11
- if (!semver.satisfies(currentNodeVersion, engines.engines.node)) {
17
+ if (!semver__default.default.satisfies(currentNodeVersion, engines.engines.node)) {
12
18
  logger.logger.fatal([
13
- chalk.red(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),
14
- `Strapi requires ${chalk.bold(chalk.green(`Node.js ${engines.engines.node}`))}`,
19
+ chalk__default.default.red(`You are running ${chalk__default.default.bold(`Node.js ${currentNodeVersion}`)}`),
20
+ `Strapi requires ${chalk__default.default.bold(chalk__default.default.green(`Node.js ${engines.engines.node}`))}`,
15
21
  'Please make sure to use the right version of Node.'
16
22
  ]);
17
- } else if (semver.major(currentNodeVersion) % 2 !== 0) {
23
+ } else if (nodeMajor < 26 && nodeMajor % 2 !== 0) {
18
24
  logger.logger.warn([
19
- chalk.yellow(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),
20
- `Strapi only supports ${chalk.bold(chalk.green('LTS versions of Node.js'))}, other versions may not be compatible.`
25
+ chalk__default.default.yellow(`You are running ${chalk__default.default.bold(`Node.js ${currentNodeVersion}`)}`),
26
+ `Strapi only supports ${chalk__default.default.bold(chalk__default.default.green('LTS versions of Node.js'))}, other versions may not be compatible.`
21
27
  ]);
22
28
  }
23
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check-requirements.js","sources":["../../src/utils/check-requirements.ts"],"sourcesContent":["import chalk from 'chalk';\nimport semver from 'semver';\n\nimport { engines } from './engines';\nimport { logger } from './logger';\n\nexport function checkNodeRequirements() {\n const currentNodeVersion = process.versions.node;\n\n // error if the node version isn't supported\n if (!semver.satisfies(currentNodeVersion, engines.node)) {\n logger.fatal([\n chalk.red(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi requires ${chalk.bold(chalk.green(`Node.js ${engines.node}`))}`,\n 'Please make sure to use the right version of Node.',\n ]);\n }\n\n // warn if not using a LTS version\n else if (semver.major(currentNodeVersion) % 2 !== 0) {\n logger.warn([\n chalk.yellow(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi only supports ${chalk.bold(chalk.green('LTS versions of Node.js'))}, other versions may not be compatible.`,\n ]);\n }\n}\n"],"names":["checkNodeRequirements","currentNodeVersion","process","versions","node","semver","satisfies","engines","logger","fatal","chalk","red","bold","green","major","warn","yellow"],"mappings":";;;;;;;AAMO,SAASA,qBAAAA,GAAAA;AACd,IAAA,MAAMC,kBAAAA,GAAqBC,OAAAA,CAAQC,QAAQ,CAACC,IAAI;;AAGhD,IAAA,IAAI,CAACC,MAAAA,CAAOC,SAAS,CAACL,kBAAAA,EAAoBM,eAAAA,CAAQH,IAAI,CAAA,EAAG;AACvDI,QAAAA,aAAAA,CAAOC,KAAK,CAAC;AACXC,YAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAC,gBAAgB,EAAED,KAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEX,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;AAC1E,YAAA,CAAC,gBAAgB,EAAES,KAAAA,CAAME,IAAI,CAACF,KAAAA,CAAMG,KAAK,CAAC,CAAC,QAAQ,EAAEN,eAAAA,CAAQH,IAAI,EAAE,CAAA,CAAA,CAAA,CAAI;AACvE,YAAA;AACD,SAAA,CAAA;AACH,IAAA,CAAA,MAGK,IAAIC,MAAAA,CAAOS,KAAK,CAACb,kBAAAA,CAAAA,GAAsB,MAAM,CAAA,EAAG;AACnDO,QAAAA,aAAAA,CAAOO,IAAI,CAAC;AACVL,YAAAA,KAAAA,CAAMM,MAAM,CAAC,CAAC,gBAAgB,EAAEN,KAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEX,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;YAC7E,CAAC,qBAAqB,EAAES,KAAAA,CAAME,IAAI,CAACF,MAAMG,KAAK,CAAC,yBAAA,CAAA,CAAA,CAA4B,uCAAuC;AACnH,SAAA,CAAA;AACH,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"check-requirements.js","sources":["../../src/utils/check-requirements.ts"],"sourcesContent":["import chalk from 'chalk';\nimport semver from 'semver';\n\nimport { engines } from './engines';\nimport { logger } from './logger';\n\nexport function checkNodeRequirements() {\n const currentNodeVersion = process.versions.node;\n const nodeMajor = semver.major(currentNodeVersion);\n\n // error if the node version isn't supported\n if (!semver.satisfies(currentNodeVersion, engines.node)) {\n logger.fatal([\n chalk.red(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi requires ${chalk.bold(chalk.green(`Node.js ${engines.node}`))}`,\n 'Please make sure to use the right version of Node.',\n ]);\n }\n\n // warn if not using a LTS version (odd majors are non-LTS before Node 26)\n else if (nodeMajor < 26 && nodeMajor % 2 !== 0) {\n logger.warn([\n chalk.yellow(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi only supports ${chalk.bold(chalk.green('LTS versions of Node.js'))}, other versions may not be compatible.`,\n ]);\n }\n}\n"],"names":["checkNodeRequirements","currentNodeVersion","process","versions","node","nodeMajor","semver","major","satisfies","engines","logger","fatal","chalk","red","bold","green","warn","yellow"],"mappings":";;;;;;;;;;;;AAMO,SAASA,qBAAAA,GAAAA;AACd,IAAA,MAAMC,kBAAAA,GAAqBC,OAAAA,CAAQC,QAAQ,CAACC,IAAI;IAChD,MAAMC,SAAAA,GAAYC,uBAAAA,CAAOC,KAAK,CAACN,kBAAAA,CAAAA;;AAG/B,IAAA,IAAI,CAACK,uBAAAA,CAAOE,SAAS,CAACP,kBAAAA,EAAoBQ,eAAAA,CAAQL,IAAI,CAAA,EAAG;AACvDM,QAAAA,aAAAA,CAAOC,KAAK,CAAC;AACXC,YAAAA,sBAAAA,CAAMC,GAAG,CAAC,CAAC,gBAAgB,EAAED,sBAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEb,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;AAC1E,YAAA,CAAC,gBAAgB,EAAEW,sBAAAA,CAAME,IAAI,CAACF,sBAAAA,CAAMG,KAAK,CAAC,CAAC,QAAQ,EAAEN,eAAAA,CAAQL,IAAI,EAAE,CAAA,CAAA,CAAA,CAAI;AACvE,YAAA;AACD,SAAA,CAAA;AACH,IAAA,CAAA,MAGK,IAAIC,SAAAA,GAAY,EAAA,IAAMA,SAAAA,GAAY,MAAM,CAAA,EAAG;AAC9CK,QAAAA,aAAAA,CAAOM,IAAI,CAAC;AACVJ,YAAAA,sBAAAA,CAAMK,MAAM,CAAC,CAAC,gBAAgB,EAAEL,sBAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEb,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;YAC7E,CAAC,qBAAqB,EAAEW,sBAAAA,CAAME,IAAI,CAACF,uBAAMG,KAAK,CAAC,yBAAA,CAAA,CAAA,CAA4B,uCAAuC;AACnH,SAAA,CAAA;AACH,IAAA;AACF;;;;"}
@@ -5,6 +5,7 @@ import { logger } from './logger.mjs';
5
5
 
6
6
  function checkNodeRequirements() {
7
7
  const currentNodeVersion = process.versions.node;
8
+ const nodeMajor = semver.major(currentNodeVersion);
8
9
  // error if the node version isn't supported
9
10
  if (!semver.satisfies(currentNodeVersion, engines.node)) {
10
11
  logger.fatal([
@@ -12,7 +13,7 @@ function checkNodeRequirements() {
12
13
  `Strapi requires ${chalk.bold(chalk.green(`Node.js ${engines.node}`))}`,
13
14
  'Please make sure to use the right version of Node.'
14
15
  ]);
15
- } else if (semver.major(currentNodeVersion) % 2 !== 0) {
16
+ } else if (nodeMajor < 26 && nodeMajor % 2 !== 0) {
16
17
  logger.warn([
17
18
  chalk.yellow(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),
18
19
  `Strapi only supports ${chalk.bold(chalk.green('LTS versions of Node.js'))}, other versions may not be compatible.`
@@ -1 +1 @@
1
- {"version":3,"file":"check-requirements.mjs","sources":["../../src/utils/check-requirements.ts"],"sourcesContent":["import chalk from 'chalk';\nimport semver from 'semver';\n\nimport { engines } from './engines';\nimport { logger } from './logger';\n\nexport function checkNodeRequirements() {\n const currentNodeVersion = process.versions.node;\n\n // error if the node version isn't supported\n if (!semver.satisfies(currentNodeVersion, engines.node)) {\n logger.fatal([\n chalk.red(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi requires ${chalk.bold(chalk.green(`Node.js ${engines.node}`))}`,\n 'Please make sure to use the right version of Node.',\n ]);\n }\n\n // warn if not using a LTS version\n else if (semver.major(currentNodeVersion) % 2 !== 0) {\n logger.warn([\n chalk.yellow(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi only supports ${chalk.bold(chalk.green('LTS versions of Node.js'))}, other versions may not be compatible.`,\n ]);\n }\n}\n"],"names":["checkNodeRequirements","currentNodeVersion","process","versions","node","semver","satisfies","engines","logger","fatal","chalk","red","bold","green","major","warn","yellow"],"mappings":";;;;;AAMO,SAASA,qBAAAA,GAAAA;AACd,IAAA,MAAMC,kBAAAA,GAAqBC,OAAAA,CAAQC,QAAQ,CAACC,IAAI;;AAGhD,IAAA,IAAI,CAACC,MAAAA,CAAOC,SAAS,CAACL,kBAAAA,EAAoBM,OAAAA,CAAQH,IAAI,CAAA,EAAG;AACvDI,QAAAA,MAAAA,CAAOC,KAAK,CAAC;AACXC,YAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAC,gBAAgB,EAAED,KAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEX,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;AAC1E,YAAA,CAAC,gBAAgB,EAAES,KAAAA,CAAME,IAAI,CAACF,KAAAA,CAAMG,KAAK,CAAC,CAAC,QAAQ,EAAEN,OAAAA,CAAQH,IAAI,EAAE,CAAA,CAAA,CAAA,CAAI;AACvE,YAAA;AACD,SAAA,CAAA;AACH,IAAA,CAAA,MAGK,IAAIC,MAAAA,CAAOS,KAAK,CAACb,kBAAAA,CAAAA,GAAsB,MAAM,CAAA,EAAG;AACnDO,QAAAA,MAAAA,CAAOO,IAAI,CAAC;AACVL,YAAAA,KAAAA,CAAMM,MAAM,CAAC,CAAC,gBAAgB,EAAEN,KAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEX,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;YAC7E,CAAC,qBAAqB,EAAES,KAAAA,CAAME,IAAI,CAACF,MAAMG,KAAK,CAAC,yBAAA,CAAA,CAAA,CAA4B,uCAAuC;AACnH,SAAA,CAAA;AACH,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"check-requirements.mjs","sources":["../../src/utils/check-requirements.ts"],"sourcesContent":["import chalk from 'chalk';\nimport semver from 'semver';\n\nimport { engines } from './engines';\nimport { logger } from './logger';\n\nexport function checkNodeRequirements() {\n const currentNodeVersion = process.versions.node;\n const nodeMajor = semver.major(currentNodeVersion);\n\n // error if the node version isn't supported\n if (!semver.satisfies(currentNodeVersion, engines.node)) {\n logger.fatal([\n chalk.red(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi requires ${chalk.bold(chalk.green(`Node.js ${engines.node}`))}`,\n 'Please make sure to use the right version of Node.',\n ]);\n }\n\n // warn if not using a LTS version (odd majors are non-LTS before Node 26)\n else if (nodeMajor < 26 && nodeMajor % 2 !== 0) {\n logger.warn([\n chalk.yellow(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi only supports ${chalk.bold(chalk.green('LTS versions of Node.js'))}, other versions may not be compatible.`,\n ]);\n }\n}\n"],"names":["checkNodeRequirements","currentNodeVersion","process","versions","node","nodeMajor","semver","major","satisfies","engines","logger","fatal","chalk","red","bold","green","warn","yellow"],"mappings":";;;;;AAMO,SAASA,qBAAAA,GAAAA;AACd,IAAA,MAAMC,kBAAAA,GAAqBC,OAAAA,CAAQC,QAAQ,CAACC,IAAI;IAChD,MAAMC,SAAAA,GAAYC,MAAAA,CAAOC,KAAK,CAACN,kBAAAA,CAAAA;;AAG/B,IAAA,IAAI,CAACK,MAAAA,CAAOE,SAAS,CAACP,kBAAAA,EAAoBQ,OAAAA,CAAQL,IAAI,CAAA,EAAG;AACvDM,QAAAA,MAAAA,CAAOC,KAAK,CAAC;AACXC,YAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAC,gBAAgB,EAAED,KAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEb,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;AAC1E,YAAA,CAAC,gBAAgB,EAAEW,KAAAA,CAAME,IAAI,CAACF,KAAAA,CAAMG,KAAK,CAAC,CAAC,QAAQ,EAAEN,OAAAA,CAAQL,IAAI,EAAE,CAAA,CAAA,CAAA,CAAI;AACvE,YAAA;AACD,SAAA,CAAA;AACH,IAAA,CAAA,MAGK,IAAIC,SAAAA,GAAY,EAAA,IAAMA,SAAAA,GAAY,MAAM,CAAA,EAAG;AAC9CK,QAAAA,MAAAA,CAAOM,IAAI,CAAC;AACVJ,YAAAA,KAAAA,CAAMK,MAAM,CAAC,CAAC,gBAAgB,EAAEL,KAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEb,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;YAC7E,CAAC,qBAAqB,EAAEW,KAAAA,CAAME,IAAI,CAACF,MAAMG,KAAK,CAAC,yBAAA,CAAA,CAAA,CAA4B,uCAAuC;AACnH,SAAA,CAAA;AACH,IAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dot-env.d.ts","sourceRoot":"","sources":["../../src/utils/dot-env.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AA2BtC,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,UAiB1C"}
1
+ {"version":3,"file":"dot-env.d.ts","sourceRoot":"","sources":["../../src/utils/dot-env.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AA4BtC,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,UAkB1C"}
@@ -3,7 +3,12 @@
3
3
  var crypto = require('crypto');
4
4
  var _ = require('lodash');
5
5
 
6
- const generateASecret = ()=>crypto.randomBytes(16).toString('base64');
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var crypto__default = /*#__PURE__*/_interopDefault(crypto);
9
+ var ___default = /*#__PURE__*/_interopDefault(_);
10
+
11
+ const generateASecret = ()=>crypto__default.default.randomBytes(16).toString('base64');
7
12
  const envTmpl = `
8
13
  # Server
9
14
  HOST=0.0.0.0
@@ -13,6 +18,7 @@ PORT=1337
13
18
  APP_KEYS=<%= appKeys %>
14
19
  API_TOKEN_SALT=<%= apiTokenSalt %>
15
20
  ADMIN_JWT_SECRET=<%= adminJwtToken %>
21
+ JWT_SECRET=<%= jwtSecret %>
16
22
  TRANSFER_TOKEN_SALT=<%= transferTokenSalt %>
17
23
  ENCRYPTION_KEY=<%= encryptionKey %>
18
24
 
@@ -27,12 +33,13 @@ DATABASE_SSL=<%= database.connection.ssl %>
27
33
  DATABASE_FILENAME=<%= database.connection.filename %>
28
34
  `;
29
35
  function generateDotEnv(scope) {
30
- const compile = _.template(envTmpl);
36
+ const compile = ___default.default.template(envTmpl);
31
37
  return compile({
32
38
  appKeys: new Array(4).fill(null).map(generateASecret).join(','),
33
39
  apiTokenSalt: generateASecret(),
34
40
  transferTokenSalt: generateASecret(),
35
41
  adminJwtToken: generateASecret(),
42
+ jwtSecret: generateASecret(),
36
43
  encryptionKey: generateASecret(),
37
44
  database: {
38
45
  client: scope.database.client,
@@ -1 +1 @@
1
- {"version":3,"file":"dot-env.js","sources":["../../src/utils/dot-env.ts"],"sourcesContent":["import crypto from 'crypto';\nimport _ from 'lodash';\n\nimport type { Scope } from '../types';\n\nconst generateASecret = () => crypto.randomBytes(16).toString('base64');\n\nconst envTmpl = `\n# Server\nHOST=0.0.0.0\nPORT=1337\n\n# Secrets\nAPP_KEYS=<%= appKeys %>\nAPI_TOKEN_SALT=<%= apiTokenSalt %>\nADMIN_JWT_SECRET=<%= adminJwtToken %>\nTRANSFER_TOKEN_SALT=<%= transferTokenSalt %>\nENCRYPTION_KEY=<%= encryptionKey %>\n\n# Database\nDATABASE_CLIENT=<%= database.client %>\nDATABASE_HOST=<%= database.connection.host %>\nDATABASE_PORT=<%= database.connection.port %>\nDATABASE_NAME=<%= database.connection.database %>\nDATABASE_USERNAME=<%= database.connection.username %>\nDATABASE_PASSWORD=<%= database.connection.password %>\nDATABASE_SSL=<%= database.connection.ssl %>\nDATABASE_FILENAME=<%= database.connection.filename %>\n`;\n\nexport function generateDotEnv(scope: Scope) {\n const compile = _.template(envTmpl);\n\n return compile({\n appKeys: new Array(4).fill(null).map(generateASecret).join(','),\n apiTokenSalt: generateASecret(),\n transferTokenSalt: generateASecret(),\n adminJwtToken: generateASecret(),\n encryptionKey: generateASecret(),\n database: {\n client: scope.database.client,\n connection: {\n ...scope.database.connection,\n ssl: scope.database.connection?.ssl || false,\n },\n },\n });\n}\n"],"names":["generateASecret","crypto","randomBytes","toString","envTmpl","generateDotEnv","scope","compile","_","template","appKeys","Array","fill","map","join","apiTokenSalt","transferTokenSalt","adminJwtToken","encryptionKey","database","client","connection","ssl"],"mappings":";;;;;AAKA,MAAMA,kBAAkB,IAAMC,MAAAA,CAAOC,WAAW,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,QAAA,CAAA;AAE9D,MAAMC,UAAU;;;;;;;;;;;;;;;;;;;;;AAqBhB,CAAC;AAEM,SAASC,eAAeC,KAAY,EAAA;IACzC,MAAMC,OAAAA,GAAUC,CAAAA,CAAEC,QAAQ,CAACL,OAAAA,CAAAA;AAE3B,IAAA,OAAOG,OAAAA,CAAQ;QACbG,OAAAA,EAAS,IAAIC,KAAAA,CAAM,CAAA,CAAA,CAAGC,IAAI,CAAC,MAAMC,GAAG,CAACb,eAAAA,CAAAA,CAAiBc,IAAI,CAAC,GAAA,CAAA;QAC3DC,YAAAA,EAAcf,eAAAA,EAAAA;QACdgB,iBAAAA,EAAmBhB,eAAAA,EAAAA;QACnBiB,aAAAA,EAAejB,eAAAA,EAAAA;QACfkB,aAAAA,EAAelB,eAAAA,EAAAA;QACfmB,QAAAA,EAAU;YACRC,MAAAA,EAAQd,KAAAA,CAAMa,QAAQ,CAACC,MAAM;YAC7BC,UAAAA,EAAY;gBACV,GAAGf,KAAAA,CAAMa,QAAQ,CAACE,UAAU;AAC5BC,gBAAAA,GAAAA,EAAKhB,KAAAA,CAAMa,QAAQ,CAACE,UAAU,EAAEC,GAAAA,IAAO;AACzC;AACF;AACF,KAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"dot-env.js","sources":["../../src/utils/dot-env.ts"],"sourcesContent":["import crypto from 'crypto';\nimport _ from 'lodash';\n\nimport type { Scope } from '../types';\n\nconst generateASecret = () => crypto.randomBytes(16).toString('base64');\n\nconst envTmpl = `\n# Server\nHOST=0.0.0.0\nPORT=1337\n\n# Secrets\nAPP_KEYS=<%= appKeys %>\nAPI_TOKEN_SALT=<%= apiTokenSalt %>\nADMIN_JWT_SECRET=<%= adminJwtToken %>\nJWT_SECRET=<%= jwtSecret %>\nTRANSFER_TOKEN_SALT=<%= transferTokenSalt %>\nENCRYPTION_KEY=<%= encryptionKey %>\n\n# Database\nDATABASE_CLIENT=<%= database.client %>\nDATABASE_HOST=<%= database.connection.host %>\nDATABASE_PORT=<%= database.connection.port %>\nDATABASE_NAME=<%= database.connection.database %>\nDATABASE_USERNAME=<%= database.connection.username %>\nDATABASE_PASSWORD=<%= database.connection.password %>\nDATABASE_SSL=<%= database.connection.ssl %>\nDATABASE_FILENAME=<%= database.connection.filename %>\n`;\n\nexport function generateDotEnv(scope: Scope) {\n const compile = _.template(envTmpl);\n\n return compile({\n appKeys: new Array(4).fill(null).map(generateASecret).join(','),\n apiTokenSalt: generateASecret(),\n transferTokenSalt: generateASecret(),\n adminJwtToken: generateASecret(),\n jwtSecret: generateASecret(),\n encryptionKey: generateASecret(),\n database: {\n client: scope.database.client,\n connection: {\n ...scope.database.connection,\n ssl: scope.database.connection?.ssl || false,\n },\n },\n });\n}\n"],"names":["generateASecret","crypto","randomBytes","toString","envTmpl","generateDotEnv","scope","compile","_","template","appKeys","Array","fill","map","join","apiTokenSalt","transferTokenSalt","adminJwtToken","jwtSecret","encryptionKey","database","client","connection","ssl"],"mappings":";;;;;;;;;;AAKA,MAAMA,kBAAkB,IAAMC,uBAAAA,CAAOC,WAAW,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,QAAA,CAAA;AAE9D,MAAMC,UAAU;;;;;;;;;;;;;;;;;;;;;;AAsBhB,CAAC;AAEM,SAASC,eAAeC,KAAY,EAAA;IACzC,MAAMC,OAAAA,GAAUC,kBAAAA,CAAEC,QAAQ,CAACL,OAAAA,CAAAA;AAE3B,IAAA,OAAOG,OAAAA,CAAQ;QACbG,OAAAA,EAAS,IAAIC,KAAAA,CAAM,CAAA,CAAA,CAAGC,IAAI,CAAC,MAAMC,GAAG,CAACb,eAAAA,CAAAA,CAAiBc,IAAI,CAAC,GAAA,CAAA;QAC3DC,YAAAA,EAAcf,eAAAA,EAAAA;QACdgB,iBAAAA,EAAmBhB,eAAAA,EAAAA;QACnBiB,aAAAA,EAAejB,eAAAA,EAAAA;QACfkB,SAAAA,EAAWlB,eAAAA,EAAAA;QACXmB,aAAAA,EAAenB,eAAAA,EAAAA;QACfoB,QAAAA,EAAU;YACRC,MAAAA,EAAQf,KAAAA,CAAMc,QAAQ,CAACC,MAAM;YAC7BC,UAAAA,EAAY;gBACV,GAAGhB,KAAAA,CAAMc,QAAQ,CAACE,UAAU;AAC5BC,gBAAAA,GAAAA,EAAKjB,KAAAA,CAAMc,QAAQ,CAACE,UAAU,EAAEC,GAAAA,IAAO;AACzC;AACF;AACF,KAAA,CAAA;AACF;;;;"}
@@ -11,6 +11,7 @@ PORT=1337
11
11
  APP_KEYS=<%= appKeys %>
12
12
  API_TOKEN_SALT=<%= apiTokenSalt %>
13
13
  ADMIN_JWT_SECRET=<%= adminJwtToken %>
14
+ JWT_SECRET=<%= jwtSecret %>
14
15
  TRANSFER_TOKEN_SALT=<%= transferTokenSalt %>
15
16
  ENCRYPTION_KEY=<%= encryptionKey %>
16
17
 
@@ -31,6 +32,7 @@ function generateDotEnv(scope) {
31
32
  apiTokenSalt: generateASecret(),
32
33
  transferTokenSalt: generateASecret(),
33
34
  adminJwtToken: generateASecret(),
35
+ jwtSecret: generateASecret(),
34
36
  encryptionKey: generateASecret(),
35
37
  database: {
36
38
  client: scope.database.client,
@@ -1 +1 @@
1
- {"version":3,"file":"dot-env.mjs","sources":["../../src/utils/dot-env.ts"],"sourcesContent":["import crypto from 'crypto';\nimport _ from 'lodash';\n\nimport type { Scope } from '../types';\n\nconst generateASecret = () => crypto.randomBytes(16).toString('base64');\n\nconst envTmpl = `\n# Server\nHOST=0.0.0.0\nPORT=1337\n\n# Secrets\nAPP_KEYS=<%= appKeys %>\nAPI_TOKEN_SALT=<%= apiTokenSalt %>\nADMIN_JWT_SECRET=<%= adminJwtToken %>\nTRANSFER_TOKEN_SALT=<%= transferTokenSalt %>\nENCRYPTION_KEY=<%= encryptionKey %>\n\n# Database\nDATABASE_CLIENT=<%= database.client %>\nDATABASE_HOST=<%= database.connection.host %>\nDATABASE_PORT=<%= database.connection.port %>\nDATABASE_NAME=<%= database.connection.database %>\nDATABASE_USERNAME=<%= database.connection.username %>\nDATABASE_PASSWORD=<%= database.connection.password %>\nDATABASE_SSL=<%= database.connection.ssl %>\nDATABASE_FILENAME=<%= database.connection.filename %>\n`;\n\nexport function generateDotEnv(scope: Scope) {\n const compile = _.template(envTmpl);\n\n return compile({\n appKeys: new Array(4).fill(null).map(generateASecret).join(','),\n apiTokenSalt: generateASecret(),\n transferTokenSalt: generateASecret(),\n adminJwtToken: generateASecret(),\n encryptionKey: generateASecret(),\n database: {\n client: scope.database.client,\n connection: {\n ...scope.database.connection,\n ssl: scope.database.connection?.ssl || false,\n },\n },\n });\n}\n"],"names":["generateASecret","crypto","randomBytes","toString","envTmpl","generateDotEnv","scope","compile","_","template","appKeys","Array","fill","map","join","apiTokenSalt","transferTokenSalt","adminJwtToken","encryptionKey","database","client","connection","ssl"],"mappings":";;;AAKA,MAAMA,kBAAkB,IAAMC,MAAAA,CAAOC,WAAW,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,QAAA,CAAA;AAE9D,MAAMC,UAAU;;;;;;;;;;;;;;;;;;;;;AAqBhB,CAAC;AAEM,SAASC,eAAeC,KAAY,EAAA;IACzC,MAAMC,OAAAA,GAAUC,CAAAA,CAAEC,QAAQ,CAACL,OAAAA,CAAAA;AAE3B,IAAA,OAAOG,OAAAA,CAAQ;QACbG,OAAAA,EAAS,IAAIC,KAAAA,CAAM,CAAA,CAAA,CAAGC,IAAI,CAAC,MAAMC,GAAG,CAACb,eAAAA,CAAAA,CAAiBc,IAAI,CAAC,GAAA,CAAA;QAC3DC,YAAAA,EAAcf,eAAAA,EAAAA;QACdgB,iBAAAA,EAAmBhB,eAAAA,EAAAA;QACnBiB,aAAAA,EAAejB,eAAAA,EAAAA;QACfkB,aAAAA,EAAelB,eAAAA,EAAAA;QACfmB,QAAAA,EAAU;YACRC,MAAAA,EAAQd,KAAAA,CAAMa,QAAQ,CAACC,MAAM;YAC7BC,UAAAA,EAAY;gBACV,GAAGf,KAAAA,CAAMa,QAAQ,CAACE,UAAU;AAC5BC,gBAAAA,GAAAA,EAAKhB,KAAAA,CAAMa,QAAQ,CAACE,UAAU,EAAEC,GAAAA,IAAO;AACzC;AACF;AACF,KAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"dot-env.mjs","sources":["../../src/utils/dot-env.ts"],"sourcesContent":["import crypto from 'crypto';\nimport _ from 'lodash';\n\nimport type { Scope } from '../types';\n\nconst generateASecret = () => crypto.randomBytes(16).toString('base64');\n\nconst envTmpl = `\n# Server\nHOST=0.0.0.0\nPORT=1337\n\n# Secrets\nAPP_KEYS=<%= appKeys %>\nAPI_TOKEN_SALT=<%= apiTokenSalt %>\nADMIN_JWT_SECRET=<%= adminJwtToken %>\nJWT_SECRET=<%= jwtSecret %>\nTRANSFER_TOKEN_SALT=<%= transferTokenSalt %>\nENCRYPTION_KEY=<%= encryptionKey %>\n\n# Database\nDATABASE_CLIENT=<%= database.client %>\nDATABASE_HOST=<%= database.connection.host %>\nDATABASE_PORT=<%= database.connection.port %>\nDATABASE_NAME=<%= database.connection.database %>\nDATABASE_USERNAME=<%= database.connection.username %>\nDATABASE_PASSWORD=<%= database.connection.password %>\nDATABASE_SSL=<%= database.connection.ssl %>\nDATABASE_FILENAME=<%= database.connection.filename %>\n`;\n\nexport function generateDotEnv(scope: Scope) {\n const compile = _.template(envTmpl);\n\n return compile({\n appKeys: new Array(4).fill(null).map(generateASecret).join(','),\n apiTokenSalt: generateASecret(),\n transferTokenSalt: generateASecret(),\n adminJwtToken: generateASecret(),\n jwtSecret: generateASecret(),\n encryptionKey: generateASecret(),\n database: {\n client: scope.database.client,\n connection: {\n ...scope.database.connection,\n ssl: scope.database.connection?.ssl || false,\n },\n },\n });\n}\n"],"names":["generateASecret","crypto","randomBytes","toString","envTmpl","generateDotEnv","scope","compile","_","template","appKeys","Array","fill","map","join","apiTokenSalt","transferTokenSalt","adminJwtToken","jwtSecret","encryptionKey","database","client","connection","ssl"],"mappings":";;;AAKA,MAAMA,kBAAkB,IAAMC,MAAAA,CAAOC,WAAW,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,QAAA,CAAA;AAE9D,MAAMC,UAAU;;;;;;;;;;;;;;;;;;;;;;AAsBhB,CAAC;AAEM,SAASC,eAAeC,KAAY,EAAA;IACzC,MAAMC,OAAAA,GAAUC,CAAAA,CAAEC,QAAQ,CAACL,OAAAA,CAAAA;AAE3B,IAAA,OAAOG,OAAAA,CAAQ;QACbG,OAAAA,EAAS,IAAIC,KAAAA,CAAM,CAAA,CAAA,CAAGC,IAAI,CAAC,MAAMC,GAAG,CAACb,eAAAA,CAAAA,CAAiBc,IAAI,CAAC,GAAA,CAAA;QAC3DC,YAAAA,EAAcf,eAAAA,EAAAA;QACdgB,iBAAAA,EAAmBhB,eAAAA,EAAAA;QACnBiB,aAAAA,EAAejB,eAAAA,EAAAA;QACfkB,SAAAA,EAAWlB,eAAAA,EAAAA;QACXmB,aAAAA,EAAenB,eAAAA,EAAAA;QACfoB,QAAAA,EAAU;YACRC,MAAAA,EAAQf,KAAAA,CAAMc,QAAQ,CAACC,MAAM;YAC7BC,UAAAA,EAAY;gBACV,GAAGhB,KAAAA,CAAMc,QAAQ,CAACE,UAAU;AAC5BC,gBAAAA,GAAAA,EAAKjB,KAAAA,CAAMc,QAAQ,CAACE,UAAU,EAAEC,GAAAA,IAAO;AACzC;AACF;AACF,KAAA,CAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-package-manager-args.d.ts","sourceRoot":"","sources":["../../src/utils/get-package-manager-args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA6C1B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,mBACnB,MAAM,YACZ,MAAM,OAAO,KACtB,QAAQ,MAAM,CAOhB,CAAC;AAsCF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,cAAc,mBAA0B,MAAM,YAAY,MAAM,OAAO;;;;EAgBnF,CAAC"}
1
+ {"version":3,"file":"get-package-manager-args.d.ts","sourceRoot":"","sources":["../../src/utils/get-package-manager-args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA6C1B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GACnC,gBAAgB,MAAM,EACtB,UAAU,KAAK,CAAC,OAAO,KACtB,OAAO,CAAC,MAAM,CAOhB,CAAC;AAsCF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,cAAc,GAAU,gBAAgB,MAAM,EAAE,UAAU,KAAK,CAAC,OAAO;;;;EAgBnF,CAAC"}
@@ -3,6 +3,11 @@
3
3
  var execa = require('execa');
4
4
  var semver = require('semver');
5
5
 
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var execa__default = /*#__PURE__*/_interopDefault(execa);
9
+ var semver__default = /*#__PURE__*/_interopDefault(semver);
10
+
6
11
  const installArguments = [
7
12
  'install'
8
13
  ];
@@ -51,7 +56,7 @@ const installEnvMap = {
51
56
  * @throws Will throw an error if the package manager's version cannot be determined.
52
57
  */ const getPackageManagerVersion = async (packageManager, options)=>{
53
58
  try {
54
- const { stdout } = await execa(packageManager, [
59
+ const { stdout } = await execa__default.default(packageManager, [
55
60
  '--version'
56
61
  ], options);
57
62
  return stdout.trim();
@@ -72,7 +77,7 @@ const installEnvMap = {
72
77
  * @returns The merged result of all matching ranges.
73
78
  */ function mergeMatchingVersionRanges(version, versionMap, mergeFn) {
74
79
  return Object.keys(versionMap).reduce((acc, range)=>{
75
- if (semver.satisfies(version, range) || range === '*') {
80
+ if (semver__default.default.satisfies(version, range) || range === '*') {
76
81
  return mergeFn(acc, versionMap[range]);
77
82
  }
78
83
  return acc;
@@ -1 +1 @@
1
- {"version":3,"file":"get-package-manager-args.js","sources":["../../src/utils/get-package-manager-args.ts"],"sourcesContent":["import execa from 'execa';\nimport semver from 'semver';\n\nconst installArguments = ['install'];\n\ntype VersionedArgumentsMap = {\n [key: string]: string[]; // Maps semver ranges to argument arrays\n};\n\ntype VersionedEnvMap = {\n [key: string]: Record<string, string>; // Maps semver ranges to environment variables\n};\n\n// Set command line options for specific package managers, with full semver ranges\nconst installArgumentsMap: {\n [key: string]: VersionedArgumentsMap;\n} = {\n npm: {\n '*': ['--legacy-peer-deps'],\n },\n yarn: {\n '<4': ['--network-timeout', '1000000'],\n '*': [],\n },\n pnpm: {\n '*': [],\n },\n};\n\n// Set environment variables for specific package managers, with full semver ranges\nconst installEnvMap: {\n [key: string]: VersionedEnvMap;\n} = {\n yarn: {\n '>=4': { YARN_HTTP_TIMEOUT: '1000000' },\n '*': {},\n },\n npm: {\n '*': {},\n },\n pnpm: {\n '*': {},\n },\n};\n\n/**\n * Retrieves the version of the specified package manager.\n *\n * Executes the package manager's `--version` command to determine its version.\n *\n * @param packageManager - The name of the package manager (e.g., 'npm', 'yarn', 'pnpm').\n * @param options - Optional execution options to pass to `execa`.\n * @returns A promise that resolves to the trimmed version string of the package manager.\n *\n * @throws Will throw an error if the package manager's version cannot be determined.\n */\nexport const getPackageManagerVersion = async (\n packageManager: string,\n options?: execa.Options\n): Promise<string> => {\n try {\n const { stdout } = await execa(packageManager, ['--version'], options);\n return stdout.trim();\n } catch (err) {\n throw new Error(`Error detecting ${packageManager} version: ${err}`);\n }\n};\n\n/**\n * Merges all matching semver ranges using a custom merge function.\n *\n * Iterates over the `versionMap`, checking if the provided `version` satisfies each semver range.\n * If it does, the corresponding value is merged using the provided `mergeFn`.\n * The merging starts with the value associated with the wildcard '*' key.\n *\n * @param version - The package manager version to check against the ranges.\n * @param versionMap - A map of semver ranges to corresponding values (arguments or environment variables).\n * @param mergeFn - A function that defines how to merge two values (accumulated and current).\n * @returns The merged result of all matching ranges.\n */\nfunction mergeMatchingVersionRanges<T>(\n version: string,\n versionMap: { [key: string]: T },\n mergeFn: (acc: T, curr: T) => T\n): T {\n return Object.keys(versionMap).reduce((acc, range) => {\n if (semver.satisfies(version, range) || range === '*') {\n return mergeFn(acc, versionMap[range]);\n }\n return acc;\n }, versionMap['*']); // Start with the wildcard entry\n}\n\nfunction mergeArguments(acc: string[], curr: string[]): string[] {\n return [...acc, ...curr];\n}\n\nfunction mergeEnvVars(\n acc: Record<string, string>,\n curr: Record<string, string>\n): Record<string, string> {\n return { ...acc, ...curr };\n}\n\n/**\n * Retrieves the install arguments and environment variables for a given package manager.\n *\n * This function determines the correct command line arguments and environment variables\n * based on the package manager's version. It uses predefined semver ranges to match\n * the package manager's version and merges all applicable settings.\n *\n * The arguments and environment variables are sourced from:\n * - `installArgumentsMap` for command line arguments.\n * - `installEnvMap` for environment variables.\n *\n * The function ensures that all matching semver ranges are considered and merged appropriately.\n * It always includes the base `installArguments` (e.g., `['install']`) and applies any additional\n * arguments or environment variables as defined by the matched version ranges.\n *\n * @param packageManager - The name of the package manager (e.g., 'npm', 'yarn', 'pnpm').\n * @param options - Optional execution options to pass to `execa`.\n * @returns An object containing:\n * - `cmdArgs`: The full array of install arguments for the given package manager and version.\n * - `envArgs`: The merged environment variables applicable to the package manager and version.\n *\n * @throws Will throw an error if the package manager version cannot be determined.\n */\nexport const getInstallArgs = async (packageManager: string, options?: execa.Options) => {\n const packageManagerVersion = await getPackageManagerVersion(packageManager, options);\n\n // Get environment variables\n const envMap = installEnvMap[packageManager];\n const envArgs = packageManagerVersion\n ? mergeMatchingVersionRanges(packageManagerVersion, envMap, mergeEnvVars)\n : envMap['*'];\n\n // Get install arguments\n const argsMap = installArgumentsMap[packageManager];\n const cmdArgs = packageManagerVersion\n ? mergeMatchingVersionRanges(packageManagerVersion, argsMap, mergeArguments)\n : argsMap['*'];\n\n return { envArgs, cmdArgs: [...installArguments, ...cmdArgs], version: packageManagerVersion };\n};\n"],"names":["installArguments","installArgumentsMap","npm","yarn","pnpm","installEnvMap","YARN_HTTP_TIMEOUT","getPackageManagerVersion","packageManager","options","stdout","execa","trim","err","Error","mergeMatchingVersionRanges","version","versionMap","mergeFn","Object","keys","reduce","acc","range","semver","satisfies","mergeArguments","curr","mergeEnvVars","getInstallArgs","packageManagerVersion","envMap","envArgs","argsMap","cmdArgs"],"mappings":"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"}
1
+ {"version":3,"file":"get-package-manager-args.js","sources":["../../src/utils/get-package-manager-args.ts"],"sourcesContent":["import execa from 'execa';\nimport semver from 'semver';\n\nconst installArguments = ['install'];\n\ntype VersionedArgumentsMap = {\n [key: string]: string[]; // Maps semver ranges to argument arrays\n};\n\ntype VersionedEnvMap = {\n [key: string]: Record<string, string>; // Maps semver ranges to environment variables\n};\n\n// Set command line options for specific package managers, with full semver ranges\nconst installArgumentsMap: {\n [key: string]: VersionedArgumentsMap;\n} = {\n npm: {\n '*': ['--legacy-peer-deps'],\n },\n yarn: {\n '<4': ['--network-timeout', '1000000'],\n '*': [],\n },\n pnpm: {\n '*': [],\n },\n};\n\n// Set environment variables for specific package managers, with full semver ranges\nconst installEnvMap: {\n [key: string]: VersionedEnvMap;\n} = {\n yarn: {\n '>=4': { YARN_HTTP_TIMEOUT: '1000000' },\n '*': {},\n },\n npm: {\n '*': {},\n },\n pnpm: {\n '*': {},\n },\n};\n\n/**\n * Retrieves the version of the specified package manager.\n *\n * Executes the package manager's `--version` command to determine its version.\n *\n * @param packageManager - The name of the package manager (e.g., 'npm', 'yarn', 'pnpm').\n * @param options - Optional execution options to pass to `execa`.\n * @returns A promise that resolves to the trimmed version string of the package manager.\n *\n * @throws Will throw an error if the package manager's version cannot be determined.\n */\nexport const getPackageManagerVersion = async (\n packageManager: string,\n options?: execa.Options\n): Promise<string> => {\n try {\n const { stdout } = await execa(packageManager, ['--version'], options);\n return stdout.trim();\n } catch (err) {\n throw new Error(`Error detecting ${packageManager} version: ${err}`);\n }\n};\n\n/**\n * Merges all matching semver ranges using a custom merge function.\n *\n * Iterates over the `versionMap`, checking if the provided `version` satisfies each semver range.\n * If it does, the corresponding value is merged using the provided `mergeFn`.\n * The merging starts with the value associated with the wildcard '*' key.\n *\n * @param version - The package manager version to check against the ranges.\n * @param versionMap - A map of semver ranges to corresponding values (arguments or environment variables).\n * @param mergeFn - A function that defines how to merge two values (accumulated and current).\n * @returns The merged result of all matching ranges.\n */\nfunction mergeMatchingVersionRanges<T>(\n version: string,\n versionMap: { [key: string]: T },\n mergeFn: (acc: T, curr: T) => T\n): T {\n return Object.keys(versionMap).reduce((acc, range) => {\n if (semver.satisfies(version, range) || range === '*') {\n return mergeFn(acc, versionMap[range]);\n }\n return acc;\n }, versionMap['*']); // Start with the wildcard entry\n}\n\nfunction mergeArguments(acc: string[], curr: string[]): string[] {\n return [...acc, ...curr];\n}\n\nfunction mergeEnvVars(\n acc: Record<string, string>,\n curr: Record<string, string>\n): Record<string, string> {\n return { ...acc, ...curr };\n}\n\n/**\n * Retrieves the install arguments and environment variables for a given package manager.\n *\n * This function determines the correct command line arguments and environment variables\n * based on the package manager's version. It uses predefined semver ranges to match\n * the package manager's version and merges all applicable settings.\n *\n * The arguments and environment variables are sourced from:\n * - `installArgumentsMap` for command line arguments.\n * - `installEnvMap` for environment variables.\n *\n * The function ensures that all matching semver ranges are considered and merged appropriately.\n * It always includes the base `installArguments` (e.g., `['install']`) and applies any additional\n * arguments or environment variables as defined by the matched version ranges.\n *\n * @param packageManager - The name of the package manager (e.g., 'npm', 'yarn', 'pnpm').\n * @param options - Optional execution options to pass to `execa`.\n * @returns An object containing:\n * - `cmdArgs`: The full array of install arguments for the given package manager and version.\n * - `envArgs`: The merged environment variables applicable to the package manager and version.\n *\n * @throws Will throw an error if the package manager version cannot be determined.\n */\nexport const getInstallArgs = async (packageManager: string, options?: execa.Options) => {\n const packageManagerVersion = await getPackageManagerVersion(packageManager, options);\n\n // Get environment variables\n const envMap = installEnvMap[packageManager];\n const envArgs = packageManagerVersion\n ? mergeMatchingVersionRanges(packageManagerVersion, envMap, mergeEnvVars)\n : envMap['*'];\n\n // Get install arguments\n const argsMap = installArgumentsMap[packageManager];\n const cmdArgs = packageManagerVersion\n ? mergeMatchingVersionRanges(packageManagerVersion, argsMap, mergeArguments)\n : argsMap['*'];\n\n return { envArgs, cmdArgs: [...installArguments, ...cmdArgs], version: packageManagerVersion };\n};\n"],"names":["installArguments","installArgumentsMap","npm","yarn","pnpm","installEnvMap","YARN_HTTP_TIMEOUT","getPackageManagerVersion","packageManager","options","stdout","execa","trim","err","Error","mergeMatchingVersionRanges","version","versionMap","mergeFn","Object","keys","reduce","acc","range","semver","satisfies","mergeArguments","curr","mergeEnvVars","getInstallArgs","packageManagerVersion","envMap","envArgs","argsMap","cmdArgs"],"mappings":"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"}
package/dist/utils/git.js CHANGED
@@ -2,9 +2,13 @@
2
2
 
3
3
  var execa = require('execa');
4
4
 
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var execa__default = /*#__PURE__*/_interopDefault(execa);
8
+
5
9
  async function isInGitRepository(rootDir) {
6
10
  try {
7
- await execa('git', [
11
+ await execa__default.default('git', [
8
12
  'rev-parse',
9
13
  '--is-inside-work-tree'
10
14
  ], {
@@ -18,7 +22,7 @@ async function isInGitRepository(rootDir) {
18
22
  }
19
23
  async function isInMercurialRepository(rootDir) {
20
24
  try {
21
- await execa('hg', [
25
+ await execa__default.default('hg', [
22
26
  '-cwd',
23
27
  '.',
24
28
  'root'
@@ -33,7 +37,7 @@ async function isInMercurialRepository(rootDir) {
33
37
  }
34
38
  async function tryGitInit(rootDir) {
35
39
  try {
36
- await execa('git', [
40
+ await execa__default.default('git', [
37
41
  '--version'
38
42
  ], {
39
43
  stdio: 'ignore'
@@ -41,20 +45,20 @@ async function tryGitInit(rootDir) {
41
45
  if (await isInGitRepository(rootDir) || await isInMercurialRepository(rootDir)) {
42
46
  return false;
43
47
  }
44
- await execa('git', [
48
+ await execa__default.default('git', [
45
49
  'init'
46
50
  ], {
47
51
  stdio: 'ignore',
48
52
  cwd: rootDir
49
53
  });
50
- await execa('git', [
54
+ await execa__default.default('git', [
51
55
  'add',
52
56
  '.'
53
57
  ], {
54
58
  stdio: 'ignore',
55
59
  cwd: rootDir
56
60
  });
57
- await execa('git', [
61
+ await execa__default.default('git', [
58
62
  'commit',
59
63
  '-m',
60
64
  'Initial commit from Strapi'
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sources":["../../src/utils/git.ts"],"sourcesContent":["import execa from 'execa';\n\nasync function isInGitRepository(rootDir: string) {\n try {\n await execa('git', ['rev-parse', '--is-inside-work-tree'], { stdio: 'ignore', cwd: rootDir });\n return true;\n } catch (_) {\n return false;\n }\n}\n\nasync function isInMercurialRepository(rootDir: string) {\n try {\n await execa('hg', ['-cwd', '.', 'root'], { stdio: 'ignore', cwd: rootDir });\n return true;\n } catch (_) {\n return false;\n }\n}\n\nexport async function tryGitInit(rootDir: string) {\n try {\n await execa('git', ['--version'], { stdio: 'ignore' });\n if ((await isInGitRepository(rootDir)) || (await isInMercurialRepository(rootDir))) {\n return false;\n }\n\n await execa('git', ['init'], { stdio: 'ignore', cwd: rootDir });\n\n await execa('git', ['add', '.'], { stdio: 'ignore', cwd: rootDir });\n await execa('git', ['commit', '-m', 'Initial commit from Strapi'], {\n stdio: 'ignore',\n cwd: rootDir,\n });\n\n return true;\n } catch (e) {\n console.error('Error while trying to initialize git:', e);\n return false;\n }\n}\n"],"names":["isInGitRepository","rootDir","execa","stdio","cwd","_","isInMercurialRepository","tryGitInit","e","console","error"],"mappings":";;;;AAEA,eAAeA,kBAAkBC,OAAe,EAAA;IAC9C,IAAI;AACF,QAAA,MAAMC,MAAM,KAAA,EAAO;AAAC,YAAA,WAAA;AAAa,YAAA;SAAwB,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;QAC3F,OAAO,IAAA;AACT,IAAA,CAAA,CAAE,OAAOI,CAAAA,EAAG;QACV,OAAO,KAAA;AACT,IAAA;AACF;AAEA,eAAeC,wBAAwBL,OAAe,EAAA;IACpD,IAAI;AACF,QAAA,MAAMC,MAAM,IAAA,EAAM;AAAC,YAAA,MAAA;AAAQ,YAAA,GAAA;AAAK,YAAA;SAAO,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;QACzE,OAAO,IAAA;AACT,IAAA,CAAA,CAAE,OAAOI,CAAAA,EAAG;QACV,OAAO,KAAA;AACT,IAAA;AACF;AAEO,eAAeE,WAAWN,OAAe,EAAA;IAC9C,IAAI;AACF,QAAA,MAAMC,MAAM,KAAA,EAAO;AAAC,YAAA;SAAY,EAAE;YAAEC,KAAAA,EAAO;AAAS,SAAA,CAAA;AACpD,QAAA,IAAI,MAAOH,iBAAAA,CAAkBC,OAAAA,CAAAA,IAAc,MAAMK,wBAAwBL,OAAAA,CAAAA,EAAW;YAClF,OAAO,KAAA;AACT,QAAA;AAEA,QAAA,MAAMC,MAAM,KAAA,EAAO;AAAC,YAAA;SAAO,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;AAE7D,QAAA,MAAMC,MAAM,KAAA,EAAO;AAAC,YAAA,KAAA;AAAO,YAAA;SAAI,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;AACjE,QAAA,MAAMC,MAAM,KAAA,EAAO;AAAC,YAAA,QAAA;AAAU,YAAA,IAAA;AAAM,YAAA;SAA6B,EAAE;YACjEC,KAAAA,EAAO,QAAA;YACPC,GAAAA,EAAKH;AACP,SAAA,CAAA;QAEA,OAAO,IAAA;AACT,IAAA,CAAA,CAAE,OAAOO,CAAAA,EAAG;QACVC,OAAAA,CAAQC,KAAK,CAAC,uCAAA,EAAyCF,CAAAA,CAAAA;QACvD,OAAO,KAAA;AACT,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"git.js","sources":["../../src/utils/git.ts"],"sourcesContent":["import execa from 'execa';\n\nasync function isInGitRepository(rootDir: string) {\n try {\n await execa('git', ['rev-parse', '--is-inside-work-tree'], { stdio: 'ignore', cwd: rootDir });\n return true;\n } catch (_) {\n return false;\n }\n}\n\nasync function isInMercurialRepository(rootDir: string) {\n try {\n await execa('hg', ['-cwd', '.', 'root'], { stdio: 'ignore', cwd: rootDir });\n return true;\n } catch (_) {\n return false;\n }\n}\n\nexport async function tryGitInit(rootDir: string) {\n try {\n await execa('git', ['--version'], { stdio: 'ignore' });\n if ((await isInGitRepository(rootDir)) || (await isInMercurialRepository(rootDir))) {\n return false;\n }\n\n await execa('git', ['init'], { stdio: 'ignore', cwd: rootDir });\n\n await execa('git', ['add', '.'], { stdio: 'ignore', cwd: rootDir });\n await execa('git', ['commit', '-m', 'Initial commit from Strapi'], {\n stdio: 'ignore',\n cwd: rootDir,\n });\n\n return true;\n } catch (e) {\n console.error('Error while trying to initialize git:', e);\n return false;\n }\n}\n"],"names":["isInGitRepository","rootDir","execa","stdio","cwd","_","isInMercurialRepository","tryGitInit","e","console","error"],"mappings":";;;;;;;;AAEA,eAAeA,kBAAkBC,OAAe,EAAA;IAC9C,IAAI;AACF,QAAA,MAAMC,uBAAM,KAAA,EAAO;AAAC,YAAA,WAAA;AAAa,YAAA;SAAwB,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;QAC3F,OAAO,IAAA;AACT,IAAA,CAAA,CAAE,OAAOI,CAAAA,EAAG;QACV,OAAO,KAAA;AACT,IAAA;AACF;AAEA,eAAeC,wBAAwBL,OAAe,EAAA;IACpD,IAAI;AACF,QAAA,MAAMC,uBAAM,IAAA,EAAM;AAAC,YAAA,MAAA;AAAQ,YAAA,GAAA;AAAK,YAAA;SAAO,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;QACzE,OAAO,IAAA;AACT,IAAA,CAAA,CAAE,OAAOI,CAAAA,EAAG;QACV,OAAO,KAAA;AACT,IAAA;AACF;AAEO,eAAeE,WAAWN,OAAe,EAAA;IAC9C,IAAI;AACF,QAAA,MAAMC,uBAAM,KAAA,EAAO;AAAC,YAAA;SAAY,EAAE;YAAEC,KAAAA,EAAO;AAAS,SAAA,CAAA;AACpD,QAAA,IAAI,MAAOH,iBAAAA,CAAkBC,OAAAA,CAAAA,IAAc,MAAMK,wBAAwBL,OAAAA,CAAAA,EAAW;YAClF,OAAO,KAAA;AACT,QAAA;AAEA,QAAA,MAAMC,uBAAM,KAAA,EAAO;AAAC,YAAA;SAAO,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;AAE7D,QAAA,MAAMC,uBAAM,KAAA,EAAO;AAAC,YAAA,KAAA;AAAO,YAAA;SAAI,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;AACjE,QAAA,MAAMC,uBAAM,KAAA,EAAO;AAAC,YAAA,QAAA;AAAU,YAAA,IAAA;AAAM,YAAA;SAA6B,EAAE;YACjEC,KAAAA,EAAO,QAAA;YACPC,GAAAA,EAAKH;AACP,SAAA,CAAA;QAEA,OAAO,IAAA;AACT,IAAA,CAAA,CAAE,OAAOO,CAAAA,EAAG;QACVC,OAAAA,CAAQC,KAAK,CAAC,uCAAA,EAAyCF,CAAAA,CAAAA;QACvD,OAAO,KAAA;AACT,IAAA;AACF;;;;"}
@@ -3,12 +3,16 @@
3
3
  var crypto = require('crypto');
4
4
  var nodeMachineId = require('node-machine-id');
5
5
 
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var crypto__default = /*#__PURE__*/_interopDefault(crypto);
9
+
6
10
  function installID(projectId) {
7
11
  try {
8
12
  const machineId = nodeMachineId.machineIdSync();
9
- return projectId ? crypto.createHash('sha256').update(`${machineId}-${projectId}`).digest('hex') : crypto.randomUUID();
13
+ return projectId ? crypto__default.default.createHash('sha256').update(`${machineId}-${projectId}`).digest('hex') : crypto__default.default.randomUUID();
10
14
  } catch {
11
- return crypto.randomUUID();
15
+ return crypto__default.default.randomUUID();
12
16
  }
13
17
  }
14
18
 
@@ -1 +1 @@
1
- {"version":3,"file":"install-id.js","sources":["../../src/utils/install-id.ts"],"sourcesContent":["import crypto from 'crypto';\nimport { machineIdSync } from 'node-machine-id';\n\nexport function installID(projectId?: string) {\n try {\n const machineId = machineIdSync();\n return projectId\n ? crypto.createHash('sha256').update(`${machineId}-${projectId}`).digest('hex')\n : crypto.randomUUID();\n } catch {\n return crypto.randomUUID();\n }\n}\n"],"names":["installID","projectId","machineId","machineIdSync","crypto","createHash","update","digest","randomUUID"],"mappings":";;;;;AAGO,SAASA,UAAUC,SAAkB,EAAA;IAC1C,IAAI;AACF,QAAA,MAAMC,SAAAA,GAAYC,2BAAAA,EAAAA;AAClB,QAAA,OAAOF,YACHG,MAAAA,CAAOC,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAAC,CAAA,EAAGJ,SAAAA,CAAU,CAAC,EAAED,SAAAA,CAAAA,CAAW,CAAA,CAAEM,MAAM,CAAC,KAAA,CAAA,GACvEH,OAAOI,UAAU,EAAA;AACvB,IAAA,CAAA,CAAE,OAAM;AACN,QAAA,OAAOJ,OAAOI,UAAU,EAAA;AAC1B,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"install-id.js","sources":["../../src/utils/install-id.ts"],"sourcesContent":["import crypto from 'crypto';\nimport { machineIdSync } from 'node-machine-id';\n\nexport function installID(projectId?: string) {\n try {\n const machineId = machineIdSync();\n return projectId\n ? crypto.createHash('sha256').update(`${machineId}-${projectId}`).digest('hex')\n : crypto.randomUUID();\n } catch {\n return crypto.randomUUID();\n }\n}\n"],"names":["installID","projectId","machineId","machineIdSync","crypto","createHash","update","digest","randomUUID"],"mappings":";;;;;;;;;AAGO,SAASA,UAAUC,SAAkB,EAAA;IAC1C,IAAI;AACF,QAAA,MAAMC,SAAAA,GAAYC,2BAAAA,EAAAA;AAClB,QAAA,OAAOF,YACHG,uBAAAA,CAAOC,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAAC,CAAA,EAAGJ,SAAAA,CAAU,CAAC,EAAED,SAAAA,CAAAA,CAAW,CAAA,CAAEM,MAAM,CAAC,KAAA,CAAA,GACvEH,wBAAOI,UAAU,EAAA;AACvB,IAAA,CAAA,CAAE,OAAM;AACN,QAAA,OAAOJ,wBAAOI,UAAU,EAAA;AAC1B,IAAA;AACF;;;;"}