create-strapi-app 5.49.0 → 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 (48) hide show
  1. package/dist/create-strapi.d.ts.map +1 -1
  2. package/dist/create-strapi.js +22 -1
  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/types.d.ts +2 -0
  7. package/dist/types.d.ts.map +1 -1
  8. package/dist/types.js.map +1 -1
  9. package/dist/types.mjs.map +1 -1
  10. package/dist/utils/check-requirements.d.ts.map +1 -1
  11. package/dist/utils/check-requirements.js +2 -1
  12. package/dist/utils/check-requirements.js.map +1 -1
  13. package/dist/utils/check-requirements.mjs +2 -1
  14. package/dist/utils/check-requirements.mjs.map +1 -1
  15. package/dist/utils/dot-env.d.ts.map +1 -1
  16. package/dist/utils/dot-env.js +2 -0
  17. package/dist/utils/dot-env.js.map +1 -1
  18. package/dist/utils/dot-env.mjs +2 -0
  19. package/dist/utils/dot-env.mjs.map +1 -1
  20. package/dist/utils/get-package-manager-args.d.ts.map +1 -1
  21. package/dist/utils/package-json.d.ts.map +1 -1
  22. package/dist/utils/package-json.js +5 -7
  23. package/dist/utils/package-json.js.map +1 -1
  24. package/dist/utils/package-json.mjs +5 -7
  25. package/dist/utils/package-json.mjs.map +1 -1
  26. package/dist/utils/pnpm-config.d.ts +18 -0
  27. package/dist/utils/pnpm-config.d.ts.map +1 -0
  28. package/dist/utils/pnpm-config.js +113 -0
  29. package/dist/utils/pnpm-config.js.map +1 -0
  30. package/dist/utils/pnpm-config.mjs +96 -0
  31. package/dist/utils/pnpm-config.mjs.map +1 -0
  32. package/package.json +4 -4
  33. package/templates/example/config/admin.ts +4 -4
  34. package/templates/example/config/api.ts +4 -0
  35. package/templates/example/config/database.ts +11 -3
  36. package/templates/example/config/plugins.ts +40 -1
  37. package/templates/example/config/server.ts +4 -1
  38. package/templates/example/tsconfig.json +1 -1
  39. package/templates/example-js/config/api.js +4 -0
  40. package/templates/example-js/config/plugins.js +40 -1
  41. package/templates/vanilla/config/admin.ts +4 -4
  42. package/templates/vanilla/config/api.ts +4 -0
  43. package/templates/vanilla/config/database.ts +11 -3
  44. package/templates/vanilla/config/plugins.ts +40 -1
  45. package/templates/vanilla/config/server.ts +4 -1
  46. package/templates/vanilla/tsconfig.json +1 -1
  47. package/templates/vanilla-js/config/api.js +4 -0
  48. package/templates/vanilla-js/config/plugins.js +40 -1
@@ -1 +1 @@
1
- {"version":3,"file":"create-strapi.d.ts","sourceRoot":"","sources":["../src/create-strapi.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAwCrC,iBAAe,YAAY,CAAC,KAAK,EAAE,KAAK,iBAUvC;AAoQD,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"create-strapi.d.ts","sourceRoot":"","sources":["../src/create-strapi.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA0DrC,iBAAe,YAAY,CAAC,KAAK,EAAE,KAAK,iBAUvC;AAyQD,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -10,6 +10,7 @@ var template = require('./utils/template.js');
10
10
  var git = require('./utils/git.js');
11
11
  var usage = require('./utils/usage.js');
12
12
  var packageJson = require('./utils/package-json.js');
13
+ var pnpmConfig = require('./utils/pnpm-config.js');
13
14
  var dotEnv = require('./utils/dot-env.js');
14
15
  var types = require('./types.js');
15
16
  var logger = require('./utils/logger.js');
@@ -49,6 +50,20 @@ const shouldWriteYarnNodeModulesConfig = async (packageManager)=>{
49
50
  return false;
50
51
  }
51
52
  };
53
+ const resolvePnpmVersion = async (packageManager)=>{
54
+ if (packageManager !== 'pnpm') {
55
+ return null;
56
+ }
57
+ const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);
58
+ if (userAgentVersion) {
59
+ return userAgentVersion;
60
+ }
61
+ try {
62
+ return await getPackageManagerArgs.getPackageManagerVersion(packageManager);
63
+ } catch {
64
+ return null;
65
+ }
66
+ };
52
67
  async function createStrapi(scope) {
53
68
  const { rootPath } = scope;
54
69
  try {
@@ -106,8 +121,13 @@ async function createApp(scope) {
106
121
  event: 'didCopyProjectFiles',
107
122
  scope
108
123
  });
124
+ const pnpmVersion = await resolvePnpmVersion(packageManager);
125
+ const scopeWithPnpmVersion = {
126
+ ...scope,
127
+ pnpmVersion
128
+ };
109
129
  try {
110
- await packageJson.createPackageJSON(scope);
130
+ await packageJson.createPackageJSON(scopeWithPnpmVersion);
111
131
  await usage.trackUsage({
112
132
  event: 'didWritePackageJSON',
113
133
  scope
@@ -119,6 +139,7 @@ async function createApp(scope) {
119
139
  if (await shouldWriteYarnNodeModulesConfig(packageManager) && !await fse__default.default.pathExists(path.join(rootPath, '.yarnrc.yml'))) {
120
140
  await fse__default.default.writeFile(path.join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);
121
141
  }
142
+ await pnpmConfig.writePnpmWorkspaceConfig(scopeWithPnpmVersion, pnpmVersion);
122
143
  await usage.trackUsage({
123
144
  event: 'didCopyConfigurationFiles',
124
145
  scope
@@ -1 +1 @@
1
- {"version":3,"file":"create-strapi.js","sources":["../src/create-strapi.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport chalk from 'chalk';\nimport execa from 'execa';\nimport fse from 'fs-extra';\nimport semver from 'semver';\n\nimport { createGrowthSsoTrial } from '@strapi/cloud-cli';\n\nimport { copyTemplate } from './utils/template';\nimport { tryGitInit } from './utils/git';\nimport { trackUsage } from './utils/usage';\nimport { createPackageJSON } from './utils/package-json';\nimport { generateDotEnv } from './utils/dot-env';\nimport { isStderrError } from './types';\n\nimport type { Scope } from './types';\nimport { logger } from './utils/logger';\nimport { gitIgnore } from './utils/gitignore';\nimport { getInstallArgs, getPackageManagerVersion } from './utils/get-package-manager-args';\n\nconst yarnNodeModulesConfig = 'nodeLinker: node-modules\\n';\n\nconst getUserAgentPackageManagerVersion = (packageManager: Scope['packageManager']) => {\n const userAgent = process.env.npm_config_user_agent ?? '';\n const [agent] = userAgent.split(' ');\n const [name, version] = agent.split('/');\n\n if (name !== packageManager || version === undefined) {\n return null;\n }\n\n return semver.coerce(version)?.version ?? null;\n};\n\nconst shouldWriteYarnNodeModulesConfig = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'yarn') {\n return false;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return semver.gte(userAgentVersion, '3.0.0');\n }\n\n try {\n const packageManagerVersion = await getPackageManagerVersion(packageManager);\n const normalizedVersion = semver.coerce(packageManagerVersion)?.version;\n\n return normalizedVersion ? semver.gte(normalizedVersion, '3.0.0') : false;\n } catch {\n return false;\n }\n};\n\nasync function createStrapi(scope: Scope) {\n const { rootPath } = scope;\n try {\n await fse.ensureDir(rootPath);\n await createApp(scope);\n } catch (error) {\n await fse.remove(rootPath);\n\n throw error;\n }\n}\n\nasync function createApp(scope: Scope) {\n const {\n rootPath,\n useTypescript,\n useExample,\n installDependencies,\n isQuickstart,\n template,\n packageManager,\n gitInit,\n runApp,\n } = scope;\n\n const shouldRunSeed = useExample && installDependencies;\n\n await trackUsage({ event: 'willCreateProject', scope });\n\n logger.title('Strapi', `Creating a new application at ${chalk.green(rootPath)}`);\n\n if (!isQuickstart) {\n await trackUsage({ event: 'didChooseCustomDatabase', scope });\n } else {\n await trackUsage({ event: 'didChooseQuickstart', scope });\n }\n\n if (!template) {\n let templateName = useExample ? 'example' : 'vanilla';\n\n if (!useTypescript) {\n templateName = `${templateName}-js`;\n }\n\n const internalTemplatePath = join(__dirname, '../templates', templateName);\n if (await fse.exists(internalTemplatePath)) {\n await fse.copy(internalTemplatePath, rootPath);\n }\n } else {\n try {\n logger.info(`${chalk.cyan('Installing template')} ${template}`);\n\n await copyTemplate(scope, rootPath);\n\n logger.success('Template copied successfully.');\n } catch (error) {\n if (error instanceof Error) {\n logger.fatal(`Template installation failed: ${error.message}`);\n }\n\n throw error;\n }\n\n if (!fse.existsSync(join(rootPath, 'package.json'))) {\n logger.fatal(`Missing ${chalk.bold('package.json')} in template`);\n }\n }\n\n await trackUsage({ event: 'didCopyProjectFiles', scope });\n\n try {\n await createPackageJSON(scope);\n\n await trackUsage({ event: 'didWritePackageJSON', scope });\n\n // ensure node_modules is created\n await fse.ensureDir(join(rootPath, 'node_modules'));\n\n // create config/database\n await fse.writeFile(join(rootPath, '.env'), generateDotEnv(scope));\n\n if (\n (await shouldWriteYarnNodeModulesConfig(packageManager)) &&\n !(await fse.pathExists(join(rootPath, '.yarnrc.yml')))\n ) {\n await fse.writeFile(join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);\n }\n\n await trackUsage({ event: 'didCopyConfigurationFiles', scope });\n } catch (err) {\n await fse.remove(rootPath);\n throw err;\n }\n\n // Create and save a growth sso trial license\n if (scope.shouldCreateGrowthSsoTrial) {\n try {\n const data = await createGrowthSsoTrial({ strapiVersion: scope.strapiVersion });\n\n if (data?.license) {\n fse.writeFile(join(rootPath, 'license.txt'), data.license);\n logger.log('Your 30 days trial will be applied automatically to your project. Enjoy!');\n }\n } catch (error) {\n logger.error('Error while trying to create your trial. Please try again later.');\n }\n }\n\n if (installDependencies) {\n try {\n logger.title('deps', `Installing dependencies with ${chalk.cyan(packageManager)}`);\n\n await trackUsage({ event: 'willInstallProjectDependencies', scope });\n\n await runInstall(scope);\n\n await trackUsage({ event: 'didInstallProjectDependencies', scope });\n\n logger.success(`Dependencies installed`);\n } catch (error) {\n const stderr = isStderrError(error) ? error.stderr : '';\n\n await trackUsage({\n event: 'didNotInstallProjectDependencies',\n scope,\n error: stderr.slice(-1024),\n });\n\n logger.fatal([\n chalk.bold(\n 'Oh, it seems that you encountered an error while installing dependencies in your project'\n ),\n '',\n `Don't give up, your project was created correctly`,\n '',\n `Fix the issues mentioned in the installation errors and try to run the following command:`,\n '',\n `cd ${chalk.green(rootPath)} && ${chalk.cyan(packageManager)} install`,\n ]);\n }\n }\n\n await trackUsage({ event: 'didCreateProject', scope });\n\n // make sure a gitignore file is created regardless of the user using git or not\n if (!(await fse.exists(join(rootPath, '.gitignore')))) {\n await fse.writeFile(join(rootPath, '.gitignore'), gitIgnore);\n }\n\n // Init git\n if (gitInit) {\n logger.title('git', 'Initializing git repository.');\n\n await tryGitInit(rootPath);\n\n logger.success('Initialized a git repository.');\n }\n\n if (shouldRunSeed) {\n if (await fse.exists(join(rootPath, 'scripts/seed.js'))) {\n logger.title('Seed', 'Seeding your database with sample data');\n\n try {\n await execa(packageManager, ['run', 'seed:example'], {\n stdio: 'inherit',\n cwd: rootPath,\n });\n logger.success('Sample data added to your database');\n } catch (error) {\n logger.error('Failed to seed your database. Skipping');\n }\n }\n }\n\n const cmd = chalk.cyan(`${packageManager} run`);\n\n logger.title('Strapi', `Your application was created!`);\n\n logger.log([\n 'Available commands in your project:',\n '',\n 'Start Strapi in watch mode. (Changes in Strapi project files will trigger a server restart)',\n `${cmd} develop`,\n '',\n 'Start Strapi without watch mode.',\n `${cmd} start`,\n '',\n 'Build Strapi admin panel.',\n `${cmd} build`,\n '',\n 'Deploy Strapi project.',\n `${cmd} deploy`,\n '',\n ]);\n\n if (useExample) {\n logger.log(['Seed your database with sample data.', `${cmd} seed:example`, '']);\n }\n\n logger.log(['Display all available commands.', `${cmd} strapi\\n`]);\n\n if (installDependencies) {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n } else {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n `${chalk.cyan(packageManager)} install`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n }\n\n if (runApp && installDependencies) {\n logger.title('Run', 'Running your Strapi application');\n\n try {\n await trackUsage({ event: 'willStartServer', scope });\n\n await execa(packageManager, ['run', 'develop'], {\n stdio: 'inherit',\n cwd: rootPath,\n env: {\n FORCE_COLOR: '1',\n },\n });\n } catch (error) {\n if (typeof error === 'string' || error instanceof Error) {\n await trackUsage({\n event: 'didNotStartServer',\n scope,\n error,\n });\n }\n\n logger.fatal('Failed to start your Strapi application');\n }\n }\n}\n\nasync function runInstall({ rootPath, packageManager }: Scope) {\n // include same cwd and env to ensure version check returns same version we use below\n const { envArgs, cmdArgs } = await getInstallArgs(packageManager, {\n cwd: rootPath,\n env: {\n ...process.env,\n NODE_ENV: 'development',\n },\n });\n\n const options: execa.Options = {\n cwd: rootPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n ...envArgs,\n NODE_ENV: 'development',\n },\n };\n\n const proc = execa(packageManager, cmdArgs, options);\n\n return proc;\n}\n\nexport { createStrapi };\n"],"names":["yarnNodeModulesConfig","getUserAgentPackageManagerVersion","packageManager","userAgent","process","env","npm_config_user_agent","agent","split","name","version","undefined","semver","coerce","shouldWriteYarnNodeModulesConfig","userAgentVersion","gte","packageManagerVersion","getPackageManagerVersion","normalizedVersion","createStrapi","scope","rootPath","fse","ensureDir","createApp","error","remove","useTypescript","useExample","installDependencies","isQuickstart","template","gitInit","runApp","shouldRunSeed","trackUsage","event","logger","title","chalk","green","templateName","internalTemplatePath","join","__dirname","exists","copy","info","cyan","copyTemplate","success","Error","fatal","message","existsSync","bold","createPackageJSON","writeFile","generateDotEnv","pathExists","err","shouldCreateGrowthSsoTrial","data","createGrowthSsoTrial","strapiVersion","license","log","runInstall","stderr","isStderrError","slice","gitIgnore","tryGitInit","execa","stdio","cwd","cmd","FORCE_COLOR","envArgs","cmdArgs","getInstallArgs","NODE_ENV","options","proc"],"mappings":"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"}
1
+ {"version":3,"file":"create-strapi.js","sources":["../src/create-strapi.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport chalk from 'chalk';\nimport execa from 'execa';\nimport fse from 'fs-extra';\nimport semver from 'semver';\n\nimport { createGrowthSsoTrial } from '@strapi/cloud-cli';\n\nimport { copyTemplate } from './utils/template';\nimport { tryGitInit } from './utils/git';\nimport { trackUsage } from './utils/usage';\nimport { createPackageJSON } from './utils/package-json';\nimport { writePnpmWorkspaceConfig } from './utils/pnpm-config';\nimport { generateDotEnv } from './utils/dot-env';\nimport { isStderrError } from './types';\n\nimport type { Scope } from './types';\nimport { logger } from './utils/logger';\nimport { gitIgnore } from './utils/gitignore';\nimport { getInstallArgs, getPackageManagerVersion } from './utils/get-package-manager-args';\n\nconst yarnNodeModulesConfig = 'nodeLinker: node-modules\\n';\n\nconst getUserAgentPackageManagerVersion = (packageManager: Scope['packageManager']) => {\n const userAgent = process.env.npm_config_user_agent ?? '';\n const [agent] = userAgent.split(' ');\n const [name, version] = agent.split('/');\n\n if (name !== packageManager || version === undefined) {\n return null;\n }\n\n return semver.coerce(version)?.version ?? null;\n};\n\nconst shouldWriteYarnNodeModulesConfig = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'yarn') {\n return false;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return semver.gte(userAgentVersion, '3.0.0');\n }\n\n try {\n const packageManagerVersion = await getPackageManagerVersion(packageManager);\n const normalizedVersion = semver.coerce(packageManagerVersion)?.version;\n\n return normalizedVersion ? semver.gte(normalizedVersion, '3.0.0') : false;\n } catch {\n return false;\n }\n};\n\nconst resolvePnpmVersion = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'pnpm') {\n return null;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return userAgentVersion;\n }\n\n try {\n return await getPackageManagerVersion(packageManager);\n } catch {\n return null;\n }\n};\n\nasync function createStrapi(scope: Scope) {\n const { rootPath } = scope;\n try {\n await fse.ensureDir(rootPath);\n await createApp(scope);\n } catch (error) {\n await fse.remove(rootPath);\n\n throw error;\n }\n}\n\nasync function createApp(scope: Scope) {\n const {\n rootPath,\n useTypescript,\n useExample,\n installDependencies,\n isQuickstart,\n template,\n packageManager,\n gitInit,\n runApp,\n } = scope;\n\n const shouldRunSeed = useExample && installDependencies;\n\n await trackUsage({ event: 'willCreateProject', scope });\n\n logger.title('Strapi', `Creating a new application at ${chalk.green(rootPath)}`);\n\n if (!isQuickstart) {\n await trackUsage({ event: 'didChooseCustomDatabase', scope });\n } else {\n await trackUsage({ event: 'didChooseQuickstart', scope });\n }\n\n if (!template) {\n let templateName = useExample ? 'example' : 'vanilla';\n\n if (!useTypescript) {\n templateName = `${templateName}-js`;\n }\n\n const internalTemplatePath = join(__dirname, '../templates', templateName);\n if (await fse.exists(internalTemplatePath)) {\n await fse.copy(internalTemplatePath, rootPath);\n }\n } else {\n try {\n logger.info(`${chalk.cyan('Installing template')} ${template}`);\n\n await copyTemplate(scope, rootPath);\n\n logger.success('Template copied successfully.');\n } catch (error) {\n if (error instanceof Error) {\n logger.fatal(`Template installation failed: ${error.message}`);\n }\n\n throw error;\n }\n\n if (!fse.existsSync(join(rootPath, 'package.json'))) {\n logger.fatal(`Missing ${chalk.bold('package.json')} in template`);\n }\n }\n\n await trackUsage({ event: 'didCopyProjectFiles', scope });\n\n const pnpmVersion = await resolvePnpmVersion(packageManager);\n const scopeWithPnpmVersion = { ...scope, pnpmVersion };\n\n try {\n await createPackageJSON(scopeWithPnpmVersion);\n\n await trackUsage({ event: 'didWritePackageJSON', scope });\n\n // ensure node_modules is created\n await fse.ensureDir(join(rootPath, 'node_modules'));\n\n // create config/database\n await fse.writeFile(join(rootPath, '.env'), generateDotEnv(scope));\n\n if (\n (await shouldWriteYarnNodeModulesConfig(packageManager)) &&\n !(await fse.pathExists(join(rootPath, '.yarnrc.yml')))\n ) {\n await fse.writeFile(join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);\n }\n\n await writePnpmWorkspaceConfig(scopeWithPnpmVersion, pnpmVersion);\n\n await trackUsage({ event: 'didCopyConfigurationFiles', scope });\n } catch (err) {\n await fse.remove(rootPath);\n throw err;\n }\n\n // Create and save a growth sso trial license\n if (scope.shouldCreateGrowthSsoTrial) {\n try {\n const data = await createGrowthSsoTrial({ strapiVersion: scope.strapiVersion });\n\n if (data?.license) {\n fse.writeFile(join(rootPath, 'license.txt'), data.license);\n logger.log('Your 30 days trial will be applied automatically to your project. Enjoy!');\n }\n } catch (error) {\n logger.error('Error while trying to create your trial. Please try again later.');\n }\n }\n\n if (installDependencies) {\n try {\n logger.title('deps', `Installing dependencies with ${chalk.cyan(packageManager)}`);\n\n await trackUsage({ event: 'willInstallProjectDependencies', scope });\n\n await runInstall(scope);\n\n await trackUsage({ event: 'didInstallProjectDependencies', scope });\n\n logger.success(`Dependencies installed`);\n } catch (error) {\n const stderr = isStderrError(error) ? error.stderr : '';\n\n await trackUsage({\n event: 'didNotInstallProjectDependencies',\n scope,\n error: stderr.slice(-1024),\n });\n\n logger.fatal([\n chalk.bold(\n 'Oh, it seems that you encountered an error while installing dependencies in your project'\n ),\n '',\n `Don't give up, your project was created correctly`,\n '',\n `Fix the issues mentioned in the installation errors and try to run the following command:`,\n '',\n `cd ${chalk.green(rootPath)} && ${chalk.cyan(packageManager)} install`,\n ]);\n }\n }\n\n await trackUsage({ event: 'didCreateProject', scope });\n\n // make sure a gitignore file is created regardless of the user using git or not\n if (!(await fse.exists(join(rootPath, '.gitignore')))) {\n await fse.writeFile(join(rootPath, '.gitignore'), gitIgnore);\n }\n\n // Init git\n if (gitInit) {\n logger.title('git', 'Initializing git repository.');\n\n await tryGitInit(rootPath);\n\n logger.success('Initialized a git repository.');\n }\n\n if (shouldRunSeed) {\n if (await fse.exists(join(rootPath, 'scripts/seed.js'))) {\n logger.title('Seed', 'Seeding your database with sample data');\n\n try {\n await execa(packageManager, ['run', 'seed:example'], {\n stdio: 'inherit',\n cwd: rootPath,\n });\n logger.success('Sample data added to your database');\n } catch (error) {\n logger.error('Failed to seed your database. Skipping');\n }\n }\n }\n\n const cmd = chalk.cyan(`${packageManager} run`);\n\n logger.title('Strapi', `Your application was created!`);\n\n logger.log([\n 'Available commands in your project:',\n '',\n 'Start Strapi in watch mode. (Changes in Strapi project files will trigger a server restart)',\n `${cmd} develop`,\n '',\n 'Start Strapi without watch mode.',\n `${cmd} start`,\n '',\n 'Build Strapi admin panel.',\n `${cmd} build`,\n '',\n 'Deploy Strapi project.',\n `${cmd} deploy`,\n '',\n ]);\n\n if (useExample) {\n logger.log(['Seed your database with sample data.', `${cmd} seed:example`, '']);\n }\n\n logger.log(['Display all available commands.', `${cmd} strapi\\n`]);\n\n if (installDependencies) {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n } else {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n `${chalk.cyan(packageManager)} install`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n }\n\n if (runApp && installDependencies) {\n logger.title('Run', 'Running your Strapi application');\n\n try {\n await trackUsage({ event: 'willStartServer', scope });\n\n await execa(packageManager, ['run', 'develop'], {\n stdio: 'inherit',\n cwd: rootPath,\n env: {\n FORCE_COLOR: '1',\n },\n });\n } catch (error) {\n if (typeof error === 'string' || error instanceof Error) {\n await trackUsage({\n event: 'didNotStartServer',\n scope,\n error,\n });\n }\n\n logger.fatal('Failed to start your Strapi application');\n }\n }\n}\n\nasync function runInstall({ rootPath, packageManager }: Scope) {\n // include same cwd and env to ensure version check returns same version we use below\n const { envArgs, cmdArgs } = await getInstallArgs(packageManager, {\n cwd: rootPath,\n env: {\n ...process.env,\n NODE_ENV: 'development',\n },\n });\n\n const options: execa.Options = {\n cwd: rootPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n ...envArgs,\n NODE_ENV: 'development',\n },\n };\n\n const proc = execa(packageManager, cmdArgs, options);\n\n return proc;\n}\n\nexport { createStrapi };\n"],"names":["yarnNodeModulesConfig","getUserAgentPackageManagerVersion","packageManager","userAgent","process","env","npm_config_user_agent","agent","split","name","version","undefined","semver","coerce","shouldWriteYarnNodeModulesConfig","userAgentVersion","gte","packageManagerVersion","getPackageManagerVersion","normalizedVersion","resolvePnpmVersion","createStrapi","scope","rootPath","fse","ensureDir","createApp","error","remove","useTypescript","useExample","installDependencies","isQuickstart","template","gitInit","runApp","shouldRunSeed","trackUsage","event","logger","title","chalk","green","templateName","internalTemplatePath","join","__dirname","exists","copy","info","cyan","copyTemplate","success","Error","fatal","message","existsSync","bold","pnpmVersion","scopeWithPnpmVersion","createPackageJSON","writeFile","generateDotEnv","pathExists","writePnpmWorkspaceConfig","err","shouldCreateGrowthSsoTrial","data","createGrowthSsoTrial","strapiVersion","license","log","runInstall","stderr","isStderrError","slice","gitIgnore","tryGitInit","execa","stdio","cwd","cmd","FORCE_COLOR","envArgs","cmdArgs","getInstallArgs","NODE_ENV","options","proc"],"mappings":"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"}
@@ -8,6 +8,7 @@ import { copyTemplate } from './utils/template.mjs';
8
8
  import { tryGitInit } from './utils/git.mjs';
9
9
  import { trackUsage } from './utils/usage.mjs';
10
10
  import { createPackageJSON } from './utils/package-json.mjs';
11
+ import { writePnpmWorkspaceConfig } from './utils/pnpm-config.mjs';
11
12
  import { generateDotEnv } from './utils/dot-env.mjs';
12
13
  import { isStderrError } from './types.mjs';
13
14
  import { logger } from './utils/logger.mjs';
@@ -40,6 +41,20 @@ const shouldWriteYarnNodeModulesConfig = async (packageManager)=>{
40
41
  return false;
41
42
  }
42
43
  };
44
+ const resolvePnpmVersion = async (packageManager)=>{
45
+ if (packageManager !== 'pnpm') {
46
+ return null;
47
+ }
48
+ const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);
49
+ if (userAgentVersion) {
50
+ return userAgentVersion;
51
+ }
52
+ try {
53
+ return await getPackageManagerVersion(packageManager);
54
+ } catch {
55
+ return null;
56
+ }
57
+ };
43
58
  async function createStrapi(scope) {
44
59
  const { rootPath } = scope;
45
60
  try {
@@ -97,8 +112,13 @@ async function createApp(scope) {
97
112
  event: 'didCopyProjectFiles',
98
113
  scope
99
114
  });
115
+ const pnpmVersion = await resolvePnpmVersion(packageManager);
116
+ const scopeWithPnpmVersion = {
117
+ ...scope,
118
+ pnpmVersion
119
+ };
100
120
  try {
101
- await createPackageJSON(scope);
121
+ await createPackageJSON(scopeWithPnpmVersion);
102
122
  await trackUsage({
103
123
  event: 'didWritePackageJSON',
104
124
  scope
@@ -110,6 +130,7 @@ async function createApp(scope) {
110
130
  if (await shouldWriteYarnNodeModulesConfig(packageManager) && !await fse.pathExists(join(rootPath, '.yarnrc.yml'))) {
111
131
  await fse.writeFile(join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);
112
132
  }
133
+ await writePnpmWorkspaceConfig(scopeWithPnpmVersion, pnpmVersion);
113
134
  await trackUsage({
114
135
  event: 'didCopyConfigurationFiles',
115
136
  scope
@@ -1 +1 @@
1
- {"version":3,"file":"create-strapi.mjs","sources":["../src/create-strapi.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport chalk from 'chalk';\nimport execa from 'execa';\nimport fse from 'fs-extra';\nimport semver from 'semver';\n\nimport { createGrowthSsoTrial } from '@strapi/cloud-cli';\n\nimport { copyTemplate } from './utils/template';\nimport { tryGitInit } from './utils/git';\nimport { trackUsage } from './utils/usage';\nimport { createPackageJSON } from './utils/package-json';\nimport { generateDotEnv } from './utils/dot-env';\nimport { isStderrError } from './types';\n\nimport type { Scope } from './types';\nimport { logger } from './utils/logger';\nimport { gitIgnore } from './utils/gitignore';\nimport { getInstallArgs, getPackageManagerVersion } from './utils/get-package-manager-args';\n\nconst yarnNodeModulesConfig = 'nodeLinker: node-modules\\n';\n\nconst getUserAgentPackageManagerVersion = (packageManager: Scope['packageManager']) => {\n const userAgent = process.env.npm_config_user_agent ?? '';\n const [agent] = userAgent.split(' ');\n const [name, version] = agent.split('/');\n\n if (name !== packageManager || version === undefined) {\n return null;\n }\n\n return semver.coerce(version)?.version ?? null;\n};\n\nconst shouldWriteYarnNodeModulesConfig = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'yarn') {\n return false;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return semver.gte(userAgentVersion, '3.0.0');\n }\n\n try {\n const packageManagerVersion = await getPackageManagerVersion(packageManager);\n const normalizedVersion = semver.coerce(packageManagerVersion)?.version;\n\n return normalizedVersion ? semver.gte(normalizedVersion, '3.0.0') : false;\n } catch {\n return false;\n }\n};\n\nasync function createStrapi(scope: Scope) {\n const { rootPath } = scope;\n try {\n await fse.ensureDir(rootPath);\n await createApp(scope);\n } catch (error) {\n await fse.remove(rootPath);\n\n throw error;\n }\n}\n\nasync function createApp(scope: Scope) {\n const {\n rootPath,\n useTypescript,\n useExample,\n installDependencies,\n isQuickstart,\n template,\n packageManager,\n gitInit,\n runApp,\n } = scope;\n\n const shouldRunSeed = useExample && installDependencies;\n\n await trackUsage({ event: 'willCreateProject', scope });\n\n logger.title('Strapi', `Creating a new application at ${chalk.green(rootPath)}`);\n\n if (!isQuickstart) {\n await trackUsage({ event: 'didChooseCustomDatabase', scope });\n } else {\n await trackUsage({ event: 'didChooseQuickstart', scope });\n }\n\n if (!template) {\n let templateName = useExample ? 'example' : 'vanilla';\n\n if (!useTypescript) {\n templateName = `${templateName}-js`;\n }\n\n const internalTemplatePath = join(__dirname, '../templates', templateName);\n if (await fse.exists(internalTemplatePath)) {\n await fse.copy(internalTemplatePath, rootPath);\n }\n } else {\n try {\n logger.info(`${chalk.cyan('Installing template')} ${template}`);\n\n await copyTemplate(scope, rootPath);\n\n logger.success('Template copied successfully.');\n } catch (error) {\n if (error instanceof Error) {\n logger.fatal(`Template installation failed: ${error.message}`);\n }\n\n throw error;\n }\n\n if (!fse.existsSync(join(rootPath, 'package.json'))) {\n logger.fatal(`Missing ${chalk.bold('package.json')} in template`);\n }\n }\n\n await trackUsage({ event: 'didCopyProjectFiles', scope });\n\n try {\n await createPackageJSON(scope);\n\n await trackUsage({ event: 'didWritePackageJSON', scope });\n\n // ensure node_modules is created\n await fse.ensureDir(join(rootPath, 'node_modules'));\n\n // create config/database\n await fse.writeFile(join(rootPath, '.env'), generateDotEnv(scope));\n\n if (\n (await shouldWriteYarnNodeModulesConfig(packageManager)) &&\n !(await fse.pathExists(join(rootPath, '.yarnrc.yml')))\n ) {\n await fse.writeFile(join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);\n }\n\n await trackUsage({ event: 'didCopyConfigurationFiles', scope });\n } catch (err) {\n await fse.remove(rootPath);\n throw err;\n }\n\n // Create and save a growth sso trial license\n if (scope.shouldCreateGrowthSsoTrial) {\n try {\n const data = await createGrowthSsoTrial({ strapiVersion: scope.strapiVersion });\n\n if (data?.license) {\n fse.writeFile(join(rootPath, 'license.txt'), data.license);\n logger.log('Your 30 days trial will be applied automatically to your project. Enjoy!');\n }\n } catch (error) {\n logger.error('Error while trying to create your trial. Please try again later.');\n }\n }\n\n if (installDependencies) {\n try {\n logger.title('deps', `Installing dependencies with ${chalk.cyan(packageManager)}`);\n\n await trackUsage({ event: 'willInstallProjectDependencies', scope });\n\n await runInstall(scope);\n\n await trackUsage({ event: 'didInstallProjectDependencies', scope });\n\n logger.success(`Dependencies installed`);\n } catch (error) {\n const stderr = isStderrError(error) ? error.stderr : '';\n\n await trackUsage({\n event: 'didNotInstallProjectDependencies',\n scope,\n error: stderr.slice(-1024),\n });\n\n logger.fatal([\n chalk.bold(\n 'Oh, it seems that you encountered an error while installing dependencies in your project'\n ),\n '',\n `Don't give up, your project was created correctly`,\n '',\n `Fix the issues mentioned in the installation errors and try to run the following command:`,\n '',\n `cd ${chalk.green(rootPath)} && ${chalk.cyan(packageManager)} install`,\n ]);\n }\n }\n\n await trackUsage({ event: 'didCreateProject', scope });\n\n // make sure a gitignore file is created regardless of the user using git or not\n if (!(await fse.exists(join(rootPath, '.gitignore')))) {\n await fse.writeFile(join(rootPath, '.gitignore'), gitIgnore);\n }\n\n // Init git\n if (gitInit) {\n logger.title('git', 'Initializing git repository.');\n\n await tryGitInit(rootPath);\n\n logger.success('Initialized a git repository.');\n }\n\n if (shouldRunSeed) {\n if (await fse.exists(join(rootPath, 'scripts/seed.js'))) {\n logger.title('Seed', 'Seeding your database with sample data');\n\n try {\n await execa(packageManager, ['run', 'seed:example'], {\n stdio: 'inherit',\n cwd: rootPath,\n });\n logger.success('Sample data added to your database');\n } catch (error) {\n logger.error('Failed to seed your database. Skipping');\n }\n }\n }\n\n const cmd = chalk.cyan(`${packageManager} run`);\n\n logger.title('Strapi', `Your application was created!`);\n\n logger.log([\n 'Available commands in your project:',\n '',\n 'Start Strapi in watch mode. (Changes in Strapi project files will trigger a server restart)',\n `${cmd} develop`,\n '',\n 'Start Strapi without watch mode.',\n `${cmd} start`,\n '',\n 'Build Strapi admin panel.',\n `${cmd} build`,\n '',\n 'Deploy Strapi project.',\n `${cmd} deploy`,\n '',\n ]);\n\n if (useExample) {\n logger.log(['Seed your database with sample data.', `${cmd} seed:example`, '']);\n }\n\n logger.log(['Display all available commands.', `${cmd} strapi\\n`]);\n\n if (installDependencies) {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n } else {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n `${chalk.cyan(packageManager)} install`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n }\n\n if (runApp && installDependencies) {\n logger.title('Run', 'Running your Strapi application');\n\n try {\n await trackUsage({ event: 'willStartServer', scope });\n\n await execa(packageManager, ['run', 'develop'], {\n stdio: 'inherit',\n cwd: rootPath,\n env: {\n FORCE_COLOR: '1',\n },\n });\n } catch (error) {\n if (typeof error === 'string' || error instanceof Error) {\n await trackUsage({\n event: 'didNotStartServer',\n scope,\n error,\n });\n }\n\n logger.fatal('Failed to start your Strapi application');\n }\n }\n}\n\nasync function runInstall({ rootPath, packageManager }: Scope) {\n // include same cwd and env to ensure version check returns same version we use below\n const { envArgs, cmdArgs } = await getInstallArgs(packageManager, {\n cwd: rootPath,\n env: {\n ...process.env,\n NODE_ENV: 'development',\n },\n });\n\n const options: execa.Options = {\n cwd: rootPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n ...envArgs,\n NODE_ENV: 'development',\n },\n };\n\n const proc = execa(packageManager, cmdArgs, options);\n\n return proc;\n}\n\nexport { createStrapi };\n"],"names":["yarnNodeModulesConfig","getUserAgentPackageManagerVersion","packageManager","userAgent","process","env","npm_config_user_agent","agent","split","name","version","undefined","semver","coerce","shouldWriteYarnNodeModulesConfig","userAgentVersion","gte","packageManagerVersion","getPackageManagerVersion","normalizedVersion","createStrapi","scope","rootPath","fse","ensureDir","createApp","error","remove","useTypescript","useExample","installDependencies","isQuickstart","template","gitInit","runApp","shouldRunSeed","trackUsage","event","logger","title","chalk","green","templateName","internalTemplatePath","join","__dirname","exists","copy","info","cyan","copyTemplate","success","Error","fatal","message","existsSync","bold","createPackageJSON","writeFile","generateDotEnv","pathExists","err","shouldCreateGrowthSsoTrial","data","createGrowthSsoTrial","strapiVersion","license","log","runInstall","stderr","isStderrError","slice","gitIgnore","tryGitInit","execa","stdio","cwd","cmd","FORCE_COLOR","envArgs","cmdArgs","getInstallArgs","NODE_ENV","options","proc"],"mappings":"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"}
1
+ {"version":3,"file":"create-strapi.mjs","sources":["../src/create-strapi.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport chalk from 'chalk';\nimport execa from 'execa';\nimport fse from 'fs-extra';\nimport semver from 'semver';\n\nimport { createGrowthSsoTrial } from '@strapi/cloud-cli';\n\nimport { copyTemplate } from './utils/template';\nimport { tryGitInit } from './utils/git';\nimport { trackUsage } from './utils/usage';\nimport { createPackageJSON } from './utils/package-json';\nimport { writePnpmWorkspaceConfig } from './utils/pnpm-config';\nimport { generateDotEnv } from './utils/dot-env';\nimport { isStderrError } from './types';\n\nimport type { Scope } from './types';\nimport { logger } from './utils/logger';\nimport { gitIgnore } from './utils/gitignore';\nimport { getInstallArgs, getPackageManagerVersion } from './utils/get-package-manager-args';\n\nconst yarnNodeModulesConfig = 'nodeLinker: node-modules\\n';\n\nconst getUserAgentPackageManagerVersion = (packageManager: Scope['packageManager']) => {\n const userAgent = process.env.npm_config_user_agent ?? '';\n const [agent] = userAgent.split(' ');\n const [name, version] = agent.split('/');\n\n if (name !== packageManager || version === undefined) {\n return null;\n }\n\n return semver.coerce(version)?.version ?? null;\n};\n\nconst shouldWriteYarnNodeModulesConfig = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'yarn') {\n return false;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return semver.gte(userAgentVersion, '3.0.0');\n }\n\n try {\n const packageManagerVersion = await getPackageManagerVersion(packageManager);\n const normalizedVersion = semver.coerce(packageManagerVersion)?.version;\n\n return normalizedVersion ? semver.gte(normalizedVersion, '3.0.0') : false;\n } catch {\n return false;\n }\n};\n\nconst resolvePnpmVersion = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'pnpm') {\n return null;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return userAgentVersion;\n }\n\n try {\n return await getPackageManagerVersion(packageManager);\n } catch {\n return null;\n }\n};\n\nasync function createStrapi(scope: Scope) {\n const { rootPath } = scope;\n try {\n await fse.ensureDir(rootPath);\n await createApp(scope);\n } catch (error) {\n await fse.remove(rootPath);\n\n throw error;\n }\n}\n\nasync function createApp(scope: Scope) {\n const {\n rootPath,\n useTypescript,\n useExample,\n installDependencies,\n isQuickstart,\n template,\n packageManager,\n gitInit,\n runApp,\n } = scope;\n\n const shouldRunSeed = useExample && installDependencies;\n\n await trackUsage({ event: 'willCreateProject', scope });\n\n logger.title('Strapi', `Creating a new application at ${chalk.green(rootPath)}`);\n\n if (!isQuickstart) {\n await trackUsage({ event: 'didChooseCustomDatabase', scope });\n } else {\n await trackUsage({ event: 'didChooseQuickstart', scope });\n }\n\n if (!template) {\n let templateName = useExample ? 'example' : 'vanilla';\n\n if (!useTypescript) {\n templateName = `${templateName}-js`;\n }\n\n const internalTemplatePath = join(__dirname, '../templates', templateName);\n if (await fse.exists(internalTemplatePath)) {\n await fse.copy(internalTemplatePath, rootPath);\n }\n } else {\n try {\n logger.info(`${chalk.cyan('Installing template')} ${template}`);\n\n await copyTemplate(scope, rootPath);\n\n logger.success('Template copied successfully.');\n } catch (error) {\n if (error instanceof Error) {\n logger.fatal(`Template installation failed: ${error.message}`);\n }\n\n throw error;\n }\n\n if (!fse.existsSync(join(rootPath, 'package.json'))) {\n logger.fatal(`Missing ${chalk.bold('package.json')} in template`);\n }\n }\n\n await trackUsage({ event: 'didCopyProjectFiles', scope });\n\n const pnpmVersion = await resolvePnpmVersion(packageManager);\n const scopeWithPnpmVersion = { ...scope, pnpmVersion };\n\n try {\n await createPackageJSON(scopeWithPnpmVersion);\n\n await trackUsage({ event: 'didWritePackageJSON', scope });\n\n // ensure node_modules is created\n await fse.ensureDir(join(rootPath, 'node_modules'));\n\n // create config/database\n await fse.writeFile(join(rootPath, '.env'), generateDotEnv(scope));\n\n if (\n (await shouldWriteYarnNodeModulesConfig(packageManager)) &&\n !(await fse.pathExists(join(rootPath, '.yarnrc.yml')))\n ) {\n await fse.writeFile(join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);\n }\n\n await writePnpmWorkspaceConfig(scopeWithPnpmVersion, pnpmVersion);\n\n await trackUsage({ event: 'didCopyConfigurationFiles', scope });\n } catch (err) {\n await fse.remove(rootPath);\n throw err;\n }\n\n // Create and save a growth sso trial license\n if (scope.shouldCreateGrowthSsoTrial) {\n try {\n const data = await createGrowthSsoTrial({ strapiVersion: scope.strapiVersion });\n\n if (data?.license) {\n fse.writeFile(join(rootPath, 'license.txt'), data.license);\n logger.log('Your 30 days trial will be applied automatically to your project. Enjoy!');\n }\n } catch (error) {\n logger.error('Error while trying to create your trial. Please try again later.');\n }\n }\n\n if (installDependencies) {\n try {\n logger.title('deps', `Installing dependencies with ${chalk.cyan(packageManager)}`);\n\n await trackUsage({ event: 'willInstallProjectDependencies', scope });\n\n await runInstall(scope);\n\n await trackUsage({ event: 'didInstallProjectDependencies', scope });\n\n logger.success(`Dependencies installed`);\n } catch (error) {\n const stderr = isStderrError(error) ? error.stderr : '';\n\n await trackUsage({\n event: 'didNotInstallProjectDependencies',\n scope,\n error: stderr.slice(-1024),\n });\n\n logger.fatal([\n chalk.bold(\n 'Oh, it seems that you encountered an error while installing dependencies in your project'\n ),\n '',\n `Don't give up, your project was created correctly`,\n '',\n `Fix the issues mentioned in the installation errors and try to run the following command:`,\n '',\n `cd ${chalk.green(rootPath)} && ${chalk.cyan(packageManager)} install`,\n ]);\n }\n }\n\n await trackUsage({ event: 'didCreateProject', scope });\n\n // make sure a gitignore file is created regardless of the user using git or not\n if (!(await fse.exists(join(rootPath, '.gitignore')))) {\n await fse.writeFile(join(rootPath, '.gitignore'), gitIgnore);\n }\n\n // Init git\n if (gitInit) {\n logger.title('git', 'Initializing git repository.');\n\n await tryGitInit(rootPath);\n\n logger.success('Initialized a git repository.');\n }\n\n if (shouldRunSeed) {\n if (await fse.exists(join(rootPath, 'scripts/seed.js'))) {\n logger.title('Seed', 'Seeding your database with sample data');\n\n try {\n await execa(packageManager, ['run', 'seed:example'], {\n stdio: 'inherit',\n cwd: rootPath,\n });\n logger.success('Sample data added to your database');\n } catch (error) {\n logger.error('Failed to seed your database. Skipping');\n }\n }\n }\n\n const cmd = chalk.cyan(`${packageManager} run`);\n\n logger.title('Strapi', `Your application was created!`);\n\n logger.log([\n 'Available commands in your project:',\n '',\n 'Start Strapi in watch mode. (Changes in Strapi project files will trigger a server restart)',\n `${cmd} develop`,\n '',\n 'Start Strapi without watch mode.',\n `${cmd} start`,\n '',\n 'Build Strapi admin panel.',\n `${cmd} build`,\n '',\n 'Deploy Strapi project.',\n `${cmd} deploy`,\n '',\n ]);\n\n if (useExample) {\n logger.log(['Seed your database with sample data.', `${cmd} seed:example`, '']);\n }\n\n logger.log(['Display all available commands.', `${cmd} strapi\\n`]);\n\n if (installDependencies) {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n } else {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n `${chalk.cyan(packageManager)} install`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n }\n\n if (runApp && installDependencies) {\n logger.title('Run', 'Running your Strapi application');\n\n try {\n await trackUsage({ event: 'willStartServer', scope });\n\n await execa(packageManager, ['run', 'develop'], {\n stdio: 'inherit',\n cwd: rootPath,\n env: {\n FORCE_COLOR: '1',\n },\n });\n } catch (error) {\n if (typeof error === 'string' || error instanceof Error) {\n await trackUsage({\n event: 'didNotStartServer',\n scope,\n error,\n });\n }\n\n logger.fatal('Failed to start your Strapi application');\n }\n }\n}\n\nasync function runInstall({ rootPath, packageManager }: Scope) {\n // include same cwd and env to ensure version check returns same version we use below\n const { envArgs, cmdArgs } = await getInstallArgs(packageManager, {\n cwd: rootPath,\n env: {\n ...process.env,\n NODE_ENV: 'development',\n },\n });\n\n const options: execa.Options = {\n cwd: rootPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n ...envArgs,\n NODE_ENV: 'development',\n },\n };\n\n const proc = execa(packageManager, cmdArgs, options);\n\n return proc;\n}\n\nexport { createStrapi };\n"],"names":["yarnNodeModulesConfig","getUserAgentPackageManagerVersion","packageManager","userAgent","process","env","npm_config_user_agent","agent","split","name","version","undefined","semver","coerce","shouldWriteYarnNodeModulesConfig","userAgentVersion","gte","packageManagerVersion","getPackageManagerVersion","normalizedVersion","resolvePnpmVersion","createStrapi","scope","rootPath","fse","ensureDir","createApp","error","remove","useTypescript","useExample","installDependencies","isQuickstart","template","gitInit","runApp","shouldRunSeed","trackUsage","event","logger","title","chalk","green","templateName","internalTemplatePath","join","__dirname","exists","copy","info","cyan","copyTemplate","success","Error","fatal","message","existsSync","bold","pnpmVersion","scopeWithPnpmVersion","createPackageJSON","writeFile","generateDotEnv","pathExists","writePnpmWorkspaceConfig","err","shouldCreateGrowthSsoTrial","data","createGrowthSsoTrial","strapiVersion","license","log","runInstall","stderr","isStderrError","slice","gitIgnore","tryGitInit","execa","stdio","cwd","cmd","FORCE_COLOR","envArgs","cmdArgs","getInstallArgs","NODE_ENV","options","proc"],"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":"AAAA,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEvD,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0BAA0B,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;IACxC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAOlE"}
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;;;;"}
@@ -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"}
@@ -12,6 +12,7 @@ var semver__default = /*#__PURE__*/_interopDefault(semver);
12
12
 
13
13
  function checkNodeRequirements() {
14
14
  const currentNodeVersion = process.versions.node;
15
+ const nodeMajor = semver__default.default.major(currentNodeVersion);
15
16
  // error if the node version isn't supported
16
17
  if (!semver__default.default.satisfies(currentNodeVersion, engines.engines.node)) {
17
18
  logger.logger.fatal([
@@ -19,7 +20,7 @@ function checkNodeRequirements() {
19
20
  `Strapi requires ${chalk__default.default.bold(chalk__default.default.green(`Node.js ${engines.engines.node}`))}`,
20
21
  'Please make sure to use the right version of Node.'
21
22
  ]);
22
- } else if (semver__default.default.major(currentNodeVersion) % 2 !== 0) {
23
+ } else if (nodeMajor < 26 && nodeMajor % 2 !== 0) {
23
24
  logger.logger.warn([
24
25
  chalk__default.default.yellow(`You are running ${chalk__default.default.bold(`Node.js ${currentNodeVersion}`)}`),
25
26
  `Strapi only supports ${chalk__default.default.bold(chalk__default.default.green('LTS versions of Node.js'))}, other versions may not be compatible.`
@@ -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,uBAAAA,CAAOC,SAAS,CAACL,kBAAAA,EAAoBM,eAAAA,CAAQH,IAAI,CAAA,EAAG;AACvDI,QAAAA,aAAAA,CAAOC,KAAK,CAAC;AACXC,YAAAA,sBAAAA,CAAMC,GAAG,CAAC,CAAC,gBAAgB,EAAED,sBAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEX,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;AAC1E,YAAA,CAAC,gBAAgB,EAAES,sBAAAA,CAAME,IAAI,CAACF,sBAAAA,CAAMG,KAAK,CAAC,CAAC,QAAQ,EAAEN,eAAAA,CAAQH,IAAI,EAAE,CAAA,CAAA,CAAA,CAAI;AACvE,YAAA;AACD,SAAA,CAAA;AACH,IAAA,CAAA,MAGK,IAAIC,uBAAAA,CAAOS,KAAK,CAACb,kBAAAA,CAAAA,GAAsB,MAAM,CAAA,EAAG;AACnDO,QAAAA,aAAAA,CAAOO,IAAI,CAAC;AACVL,YAAAA,sBAAAA,CAAMM,MAAM,CAAC,CAAC,gBAAgB,EAAEN,sBAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEX,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;YAC7E,CAAC,qBAAqB,EAAES,sBAAAA,CAAME,IAAI,CAACF,uBAAMG,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"}
@@ -18,6 +18,7 @@ PORT=1337
18
18
  APP_KEYS=<%= appKeys %>
19
19
  API_TOKEN_SALT=<%= apiTokenSalt %>
20
20
  ADMIN_JWT_SECRET=<%= adminJwtToken %>
21
+ JWT_SECRET=<%= jwtSecret %>
21
22
  TRANSFER_TOKEN_SALT=<%= transferTokenSalt %>
22
23
  ENCRYPTION_KEY=<%= encryptionKey %>
23
24
 
@@ -38,6 +39,7 @@ function generateDotEnv(scope) {
38
39
  apiTokenSalt: generateASecret(),
39
40
  transferTokenSalt: generateASecret(),
40
41
  adminJwtToken: generateASecret(),
42
+ jwtSecret: generateASecret(),
41
43
  encryptionKey: generateASecret(),
42
44
  database: {
43
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,uBAAAA,CAAOC,WAAW,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,QAAA,CAAA;AAE9D,MAAMC,UAAU;;;;;;;;;;;;;;;;;;;;;AAqBhB,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,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../src/utils/package-json.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAwCtC,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,KAAK,iBA2BnD"}
1
+ {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../src/utils/package-json.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAsCtC,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,KAAK,iBA2BnD"}
@@ -4,6 +4,7 @@ var path = require('path');
4
4
  var _ = require('lodash');
5
5
  var fse = require('fs-extra');
6
6
  var engines = require('./engines.js');
7
+ var pnpmConfig = require('./pnpm-config.js');
7
8
 
8
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
10
 
@@ -15,18 +16,15 @@ const mergePackageJson = (existingPkg, pkg)=>_.mergeWith({}, existingPkg, pkg, (
15
16
  }
16
17
  return undefined;
17
18
  });
18
- const getPnpmOnlyBuiltDependencies = (scope, existingPkg)=>{
19
- if (scope.packageManager !== 'pnpm' || scope.database.client !== 'sqlite') {
19
+ const getPnpmPackageJsonConfig = (scope, existingPkg)=>{
20
+ if (scope.packageManager !== 'pnpm' || !pnpmConfig.shouldUsePackageJsonPnpmConfig(scope.pnpmVersion)) {
20
21
  return {};
21
22
  }
22
23
  const existingOnlyBuiltDependencies = Array.isArray(existingPkg.pnpm?.onlyBuiltDependencies) ? existingPkg.pnpm.onlyBuiltDependencies.filter((dep)=>typeof dep === 'string') : [];
23
24
  return {
24
25
  pnpm: {
25
26
  ...existingPkg.pnpm ?? {},
26
- onlyBuiltDependencies: Array.from(new Set([
27
- ...existingOnlyBuiltDependencies,
28
- 'better-sqlite3'
29
- ])).sort()
27
+ onlyBuiltDependencies: pnpmConfig.getPnpmOnlyBuiltDependencies(scope, existingOnlyBuiltDependencies)
30
28
  }
31
29
  };
32
30
  };
@@ -47,7 +45,7 @@ async function createPackageJSON(scope) {
47
45
  installId: scope.installId
48
46
  },
49
47
  engines: engines.engines,
50
- ...getPnpmOnlyBuiltDependencies(scope, existingPkg)
48
+ ...getPnpmPackageJsonConfig(scope, existingPkg)
51
49
  };
52
50
  // copy templates
53
51
  await fse__default.default.writeJSON(pkgJSONPath, sortPackageJson(mergePackageJson(existingPkg, pkg)), {
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.js","sources":["../../src/utils/package-json.ts"],"sourcesContent":["import { join } from 'path';\nimport { kebabCase, mergeWith } from 'lodash';\nimport fse from 'fs-extra';\n\nimport { engines } from './engines';\nimport type { Scope } from '../types';\n\ntype PnpmPackageConfig = {\n onlyBuiltDependencies?: string[];\n [key: string]: unknown;\n};\n\ntype PackageJson = {\n pnpm?: PnpmPackageConfig;\n [key: string]: unknown;\n};\n\nconst mergePackageJson = (existingPkg: PackageJson, pkg: PackageJson) =>\n mergeWith({}, existingPkg, pkg, (_objValue, srcValue) => {\n if (Array.isArray(srcValue)) {\n return srcValue;\n }\n\n return undefined;\n });\n\nconst getPnpmOnlyBuiltDependencies = (scope: Scope, existingPkg: PackageJson) => {\n if (scope.packageManager !== 'pnpm' || scope.database.client !== 'sqlite') {\n return {};\n }\n\n const existingOnlyBuiltDependencies = Array.isArray(existingPkg.pnpm?.onlyBuiltDependencies)\n ? existingPkg.pnpm.onlyBuiltDependencies.filter((dep): dep is string => typeof dep === 'string')\n : [];\n\n return {\n pnpm: {\n ...(existingPkg.pnpm ?? {}),\n onlyBuiltDependencies: Array.from(\n new Set([...existingOnlyBuiltDependencies, 'better-sqlite3'])\n ).sort(),\n },\n };\n};\n\nexport async function createPackageJSON(scope: Scope) {\n const { sortPackageJson } = await import('sort-package-json');\n\n const pkgJSONPath = join(scope.rootPath, 'package.json');\n\n const existingPkg = (await fse.readJSON(pkgJSONPath).catch(() => ({}))) as PackageJson;\n\n const pkg = {\n name: kebabCase(scope.name),\n private: true,\n version: '0.1.0',\n description: 'A Strapi application',\n devDependencies: scope.devDependencies ?? {},\n dependencies: scope.dependencies ?? {},\n strapi: {\n ...(scope.packageJsonStrapi ?? {}),\n uuid: scope.uuid,\n installId: scope.installId,\n },\n engines,\n ...getPnpmOnlyBuiltDependencies(scope, existingPkg),\n };\n\n // copy templates\n await fse.writeJSON(pkgJSONPath, sortPackageJson(mergePackageJson(existingPkg, pkg)), {\n spaces: 2,\n });\n}\n"],"names":["mergePackageJson","existingPkg","pkg","mergeWith","_objValue","srcValue","Array","isArray","undefined","getPnpmOnlyBuiltDependencies","scope","packageManager","database","client","existingOnlyBuiltDependencies","pnpm","onlyBuiltDependencies","filter","dep","from","Set","sort","createPackageJSON","sortPackageJson","pkgJSONPath","join","rootPath","fse","readJSON","catch","name","kebabCase","private","version","description","devDependencies","dependencies","strapi","packageJsonStrapi","uuid","installId","engines","writeJSON","spaces"],"mappings":";;;;;;;;;;;AAiBA,MAAMA,gBAAAA,GAAmB,CAACC,WAAAA,EAA0BC,GAAAA,GAClDC,WAAAA,CAAU,EAAC,EAAGF,WAAAA,EAAaC,GAAAA,EAAK,CAACE,SAAAA,EAAWC,QAAAA,GAAAA;QAC1C,IAAIC,KAAAA,CAAMC,OAAO,CAACF,QAAAA,CAAAA,EAAW;YAC3B,OAAOA,QAAAA;AACT,QAAA;QAEA,OAAOG,SAAAA;AACT,IAAA,CAAA,CAAA;AAEF,MAAMC,4BAAAA,GAA+B,CAACC,KAAAA,EAAcT,WAAAA,GAAAA;IAClD,IAAIS,KAAAA,CAAMC,cAAc,KAAK,MAAA,IAAUD,MAAME,QAAQ,CAACC,MAAM,KAAK,QAAA,EAAU;AACzE,QAAA,OAAO,EAAC;AACV,IAAA;IAEA,MAAMC,6BAAAA,GAAgCR,MAAMC,OAAO,CAACN,YAAYc,IAAI,EAAEC,yBAClEf,WAAAA,CAAYc,IAAI,CAACC,qBAAqB,CAACC,MAAM,CAAC,CAACC,MAAuB,OAAOA,GAAAA,KAAQ,YACrF,EAAE;IAEN,OAAO;QACLH,IAAAA,EAAM;AACJ,YAAA,GAAId,WAAAA,CAAYc,IAAI,IAAI,EAAE;AAC1BC,YAAAA,qBAAAA,EAAuBV,KAAAA,CAAMa,IAAI,CAC/B,IAAIC,GAAAA,CAAI;AAAIN,gBAAAA,GAAAA,6BAAAA;AAA+B,gBAAA;AAAiB,aAAA,CAAA,CAAA,CAC5DO,IAAI;AACR;AACF,KAAA;AACF,CAAA;AAEO,eAAeC,kBAAkBZ,KAAY,EAAA;AAClD,IAAA,MAAM,EAAEa,eAAe,EAAE,GAAG,MAAM,OAAO,mBAAA,CAAA;AAEzC,IAAA,MAAMC,WAAAA,GAAcC,SAAAA,CAAKf,KAAAA,CAAMgB,QAAQ,EAAE,cAAA,CAAA;IAEzC,MAAMzB,WAAAA,GAAe,MAAM0B,oBAAAA,CAAIC,QAAQ,CAACJ,WAAAA,CAAAA,CAAaK,KAAK,CAAC,KAAO,EAAC,CAAA,CAAA;AAEnE,IAAA,MAAM3B,GAAAA,GAAM;QACV4B,IAAAA,EAAMC,WAAAA,CAAUrB,MAAMoB,IAAI,CAAA;QAC1BE,OAAAA,EAAS,IAAA;QACTC,OAAAA,EAAS,OAAA;QACTC,WAAAA,EAAa,sBAAA;QACbC,eAAAA,EAAiBzB,KAAAA,CAAMyB,eAAe,IAAI,EAAC;QAC3CC,YAAAA,EAAc1B,KAAAA,CAAM0B,YAAY,IAAI,EAAC;QACrCC,MAAAA,EAAQ;AACN,YAAA,GAAI3B,KAAAA,CAAM4B,iBAAiB,IAAI,EAAE;AACjCC,YAAAA,IAAAA,EAAM7B,MAAM6B,IAAI;AAChBC,YAAAA,SAAAA,EAAW9B,MAAM8B;AACnB,SAAA;AACAC,iBAAAA,eAAAA;QACA,GAAGhC,4BAAAA,CAA6BC,OAAOT,WAAAA;AACzC,KAAA;;AAGA,IAAA,MAAM0B,qBAAIe,SAAS,CAAClB,aAAaD,eAAAA,CAAgBvB,gBAAAA,CAAiBC,aAAaC,GAAAA,CAAAA,CAAAA,EAAO;QACpFyC,MAAAA,EAAQ;AACV,KAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"package-json.js","sources":["../../src/utils/package-json.ts"],"sourcesContent":["import { join } from 'path';\nimport { kebabCase, mergeWith } from 'lodash';\nimport fse from 'fs-extra';\n\nimport { engines } from './engines';\nimport { getPnpmOnlyBuiltDependencies, shouldUsePackageJsonPnpmConfig } from './pnpm-config';\nimport type { Scope } from '../types';\n\ntype PnpmPackageConfig = {\n onlyBuiltDependencies?: string[];\n [key: string]: unknown;\n};\n\ntype PackageJson = {\n pnpm?: PnpmPackageConfig;\n [key: string]: unknown;\n};\n\nconst mergePackageJson = (existingPkg: PackageJson, pkg: PackageJson) =>\n mergeWith({}, existingPkg, pkg, (_objValue, srcValue) => {\n if (Array.isArray(srcValue)) {\n return srcValue;\n }\n\n return undefined;\n });\n\nconst getPnpmPackageJsonConfig = (scope: Scope, existingPkg: PackageJson) => {\n if (scope.packageManager !== 'pnpm' || !shouldUsePackageJsonPnpmConfig(scope.pnpmVersion)) {\n return {};\n }\n\n const existingOnlyBuiltDependencies = Array.isArray(existingPkg.pnpm?.onlyBuiltDependencies)\n ? existingPkg.pnpm.onlyBuiltDependencies.filter((dep): dep is string => typeof dep === 'string')\n : [];\n\n return {\n pnpm: {\n ...(existingPkg.pnpm ?? {}),\n onlyBuiltDependencies: getPnpmOnlyBuiltDependencies(scope, existingOnlyBuiltDependencies),\n },\n };\n};\n\nexport async function createPackageJSON(scope: Scope) {\n const { sortPackageJson } = await import('sort-package-json');\n\n const pkgJSONPath = join(scope.rootPath, 'package.json');\n\n const existingPkg = (await fse.readJSON(pkgJSONPath).catch(() => ({}))) as PackageJson;\n\n const pkg = {\n name: kebabCase(scope.name),\n private: true,\n version: '0.1.0',\n description: 'A Strapi application',\n devDependencies: scope.devDependencies ?? {},\n dependencies: scope.dependencies ?? {},\n strapi: {\n ...(scope.packageJsonStrapi ?? {}),\n uuid: scope.uuid,\n installId: scope.installId,\n },\n engines,\n ...getPnpmPackageJsonConfig(scope, existingPkg),\n };\n\n // copy templates\n await fse.writeJSON(pkgJSONPath, sortPackageJson(mergePackageJson(existingPkg, pkg)), {\n spaces: 2,\n });\n}\n"],"names":["mergePackageJson","existingPkg","pkg","mergeWith","_objValue","srcValue","Array","isArray","undefined","getPnpmPackageJsonConfig","scope","packageManager","shouldUsePackageJsonPnpmConfig","pnpmVersion","existingOnlyBuiltDependencies","pnpm","onlyBuiltDependencies","filter","dep","getPnpmOnlyBuiltDependencies","createPackageJSON","sortPackageJson","pkgJSONPath","join","rootPath","fse","readJSON","catch","name","kebabCase","private","version","description","devDependencies","dependencies","strapi","packageJsonStrapi","uuid","installId","engines","writeJSON","spaces"],"mappings":";;;;;;;;;;;;AAkBA,MAAMA,gBAAAA,GAAmB,CAACC,WAAAA,EAA0BC,GAAAA,GAClDC,WAAAA,CAAU,EAAC,EAAGF,WAAAA,EAAaC,GAAAA,EAAK,CAACE,SAAAA,EAAWC,QAAAA,GAAAA;QAC1C,IAAIC,KAAAA,CAAMC,OAAO,CAACF,QAAAA,CAAAA,EAAW;YAC3B,OAAOA,QAAAA;AACT,QAAA;QAEA,OAAOG,SAAAA;AACT,IAAA,CAAA,CAAA;AAEF,MAAMC,wBAAAA,GAA2B,CAACC,KAAAA,EAAcT,WAAAA,GAAAA;IAC9C,IAAIS,KAAAA,CAAMC,cAAc,KAAK,MAAA,IAAU,CAACC,yCAAAA,CAA+BF,KAAAA,CAAMG,WAAW,CAAA,EAAG;AACzF,QAAA,OAAO,EAAC;AACV,IAAA;IAEA,MAAMC,6BAAAA,GAAgCR,MAAMC,OAAO,CAACN,YAAYc,IAAI,EAAEC,yBAClEf,WAAAA,CAAYc,IAAI,CAACC,qBAAqB,CAACC,MAAM,CAAC,CAACC,MAAuB,OAAOA,GAAAA,KAAQ,YACrF,EAAE;IAEN,OAAO;QACLH,IAAAA,EAAM;AACJ,YAAA,GAAId,WAAAA,CAAYc,IAAI,IAAI,EAAE;AAC1BC,YAAAA,qBAAAA,EAAuBG,wCAA6BT,KAAAA,EAAOI,6BAAAA;AAC7D;AACF,KAAA;AACF,CAAA;AAEO,eAAeM,kBAAkBV,KAAY,EAAA;AAClD,IAAA,MAAM,EAAEW,eAAe,EAAE,GAAG,MAAM,OAAO,mBAAA,CAAA;AAEzC,IAAA,MAAMC,WAAAA,GAAcC,SAAAA,CAAKb,KAAAA,CAAMc,QAAQ,EAAE,cAAA,CAAA;IAEzC,MAAMvB,WAAAA,GAAe,MAAMwB,oBAAAA,CAAIC,QAAQ,CAACJ,WAAAA,CAAAA,CAAaK,KAAK,CAAC,KAAO,EAAC,CAAA,CAAA;AAEnE,IAAA,MAAMzB,GAAAA,GAAM;QACV0B,IAAAA,EAAMC,WAAAA,CAAUnB,MAAMkB,IAAI,CAAA;QAC1BE,OAAAA,EAAS,IAAA;QACTC,OAAAA,EAAS,OAAA;QACTC,WAAAA,EAAa,sBAAA;QACbC,eAAAA,EAAiBvB,KAAAA,CAAMuB,eAAe,IAAI,EAAC;QAC3CC,YAAAA,EAAcxB,KAAAA,CAAMwB,YAAY,IAAI,EAAC;QACrCC,MAAAA,EAAQ;AACN,YAAA,GAAIzB,KAAAA,CAAM0B,iBAAiB,IAAI,EAAE;AACjCC,YAAAA,IAAAA,EAAM3B,MAAM2B,IAAI;AAChBC,YAAAA,SAAAA,EAAW5B,MAAM4B;AACnB,SAAA;AACAC,iBAAAA,eAAAA;QACA,GAAG9B,wBAAAA,CAAyBC,OAAOT,WAAAA;AACrC,KAAA;;AAGA,IAAA,MAAMwB,qBAAIe,SAAS,CAAClB,aAAaD,eAAAA,CAAgBrB,gBAAAA,CAAiBC,aAAaC,GAAAA,CAAAA,CAAAA,EAAO;QACpFuC,MAAAA,EAAQ;AACV,KAAA,CAAA;AACF;;;;"}