create-strapi-app 5.41.1 → 5.42.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.
@@ -1 +1 @@
1
- {"version":3,"file":"create-strapi.d.ts","sourceRoot":"","sources":["../src/create-strapi.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKrC,iBAAe,YAAY,CAAC,KAAK,EAAE,KAAK,iBAUvC;AAkQD,OAAO,EAAE,YAAY,EAAE,CAAC"}
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"}
@@ -4,6 +4,7 @@ var path = require('node:path');
4
4
  var chalk = require('chalk');
5
5
  var execa = require('execa');
6
6
  var fse = require('fs-extra');
7
+ var semver = require('semver');
7
8
  var cloudCli = require('@strapi/cloud-cli');
8
9
  var template = require('./utils/template.js');
9
10
  var git = require('./utils/git.js');
@@ -15,6 +16,32 @@ var logger = require('./utils/logger.js');
15
16
  var gitignore = require('./utils/gitignore.js');
16
17
  var getPackageManagerArgs = require('./utils/get-package-manager-args.js');
17
18
 
19
+ const yarnNodeModulesConfig = 'nodeLinker: node-modules\n';
20
+ const getUserAgentPackageManagerVersion = (packageManager)=>{
21
+ const userAgent = process.env.npm_config_user_agent ?? '';
22
+ const [agent] = userAgent.split(' ');
23
+ const [name, version] = agent.split('/');
24
+ if (name !== packageManager || version === undefined) {
25
+ return null;
26
+ }
27
+ return semver.coerce(version)?.version ?? null;
28
+ };
29
+ const shouldWriteYarnNodeModulesConfig = async (packageManager)=>{
30
+ if (packageManager !== 'yarn') {
31
+ return false;
32
+ }
33
+ const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);
34
+ if (userAgentVersion) {
35
+ return semver.gte(userAgentVersion, '3.0.0');
36
+ }
37
+ try {
38
+ const packageManagerVersion = await getPackageManagerArgs.getPackageManagerVersion(packageManager);
39
+ const normalizedVersion = semver.coerce(packageManagerVersion)?.version;
40
+ return normalizedVersion ? semver.gte(normalizedVersion, '3.0.0') : false;
41
+ } catch {
42
+ return false;
43
+ }
44
+ };
18
45
  async function createStrapi(scope) {
19
46
  const { rootPath } = scope;
20
47
  try {
@@ -26,7 +53,7 @@ async function createStrapi(scope) {
26
53
  }
27
54
  }
28
55
  async function createApp(scope) {
29
- const { rootPath, useTypescript, useExample, installDependencies, isQuickstart, template: template$1, packageManager, gitInit, runApp, isABTestEnabled } = scope;
56
+ const { rootPath, useTypescript, useExample, installDependencies, isQuickstart, template: template$1, packageManager, gitInit, runApp } = scope;
30
57
  const shouldRunSeed = useExample && installDependencies;
31
58
  await usage.trackUsage({
32
59
  event: 'willCreateProject',
@@ -82,6 +109,9 @@ async function createApp(scope) {
82
109
  await fse.ensureDir(path.join(rootPath, 'node_modules'));
83
110
  // create config/database
84
111
  await fse.writeFile(path.join(rootPath, '.env'), dotEnv.generateDotEnv(scope));
112
+ if (await shouldWriteYarnNodeModulesConfig(packageManager) && !await fse.pathExists(path.join(rootPath, '.yarnrc.yml'))) {
113
+ await fse.writeFile(path.join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);
114
+ }
85
115
  await usage.trackUsage({
86
116
  event: 'didCopyConfigurationFiles',
87
117
  scope
@@ -239,12 +269,6 @@ async function createApp(scope) {
239
269
  logger.logger.fatal('Failed to start your Strapi application');
240
270
  }
241
271
  }
242
- if (isABTestEnabled) {
243
- await usage.trackUsage({
244
- event: 'didEnableABTest',
245
- scope
246
- });
247
- }
248
272
  }
249
273
  async function runInstall({ rootPath, packageManager }) {
250
274
  // include same cwd and env to ensure version check returns same version we use below
@@ -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';\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 } from './utils/get-package-manager-args';\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 isABTestEnabled,\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 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 if (isABTestEnabled) {\n await trackUsage({ event: 'didEnableABTest', scope });\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":["createStrapi","scope","rootPath","fse","ensureDir","createApp","error","remove","useTypescript","useExample","installDependencies","isQuickstart","template","packageManager","gitInit","runApp","isABTestEnabled","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","err","shouldCreateGrowthSsoTrial","data","createGrowthSsoTrial","strapiVersion","license","log","runInstall","stderr","isStderrError","slice","gitIgnore","tryGitInit","execa","stdio","cwd","cmd","env","FORCE_COLOR","envArgs","cmdArgs","getInstallArgs","process","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 { 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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"}
@@ -2,6 +2,7 @@ import { join } from 'node:path';
2
2
  import chalk from 'chalk';
3
3
  import execa from 'execa';
4
4
  import fse from 'fs-extra';
5
+ import semver from 'semver';
5
6
  import { createGrowthSsoTrial } from '@strapi/cloud-cli';
6
7
  import { copyTemplate } from './utils/template.mjs';
7
8
  import { tryGitInit } from './utils/git.mjs';
@@ -11,8 +12,34 @@ import { generateDotEnv } from './utils/dot-env.mjs';
11
12
  import { isStderrError } from './types.mjs';
12
13
  import { logger } from './utils/logger.mjs';
13
14
  import { gitIgnore } from './utils/gitignore.mjs';
14
- import { getInstallArgs } from './utils/get-package-manager-args.mjs';
15
+ import { getPackageManagerVersion, getInstallArgs } from './utils/get-package-manager-args.mjs';
15
16
 
17
+ const yarnNodeModulesConfig = 'nodeLinker: node-modules\n';
18
+ const getUserAgentPackageManagerVersion = (packageManager)=>{
19
+ const userAgent = process.env.npm_config_user_agent ?? '';
20
+ const [agent] = userAgent.split(' ');
21
+ const [name, version] = agent.split('/');
22
+ if (name !== packageManager || version === undefined) {
23
+ return null;
24
+ }
25
+ return semver.coerce(version)?.version ?? null;
26
+ };
27
+ const shouldWriteYarnNodeModulesConfig = async (packageManager)=>{
28
+ if (packageManager !== 'yarn') {
29
+ return false;
30
+ }
31
+ const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);
32
+ if (userAgentVersion) {
33
+ return semver.gte(userAgentVersion, '3.0.0');
34
+ }
35
+ try {
36
+ const packageManagerVersion = await getPackageManagerVersion(packageManager);
37
+ const normalizedVersion = semver.coerce(packageManagerVersion)?.version;
38
+ return normalizedVersion ? semver.gte(normalizedVersion, '3.0.0') : false;
39
+ } catch {
40
+ return false;
41
+ }
42
+ };
16
43
  async function createStrapi(scope) {
17
44
  const { rootPath } = scope;
18
45
  try {
@@ -24,7 +51,7 @@ async function createStrapi(scope) {
24
51
  }
25
52
  }
26
53
  async function createApp(scope) {
27
- const { rootPath, useTypescript, useExample, installDependencies, isQuickstart, template, packageManager, gitInit, runApp, isABTestEnabled } = scope;
54
+ const { rootPath, useTypescript, useExample, installDependencies, isQuickstart, template, packageManager, gitInit, runApp } = scope;
28
55
  const shouldRunSeed = useExample && installDependencies;
29
56
  await trackUsage({
30
57
  event: 'willCreateProject',
@@ -80,6 +107,9 @@ async function createApp(scope) {
80
107
  await fse.ensureDir(join(rootPath, 'node_modules'));
81
108
  // create config/database
82
109
  await fse.writeFile(join(rootPath, '.env'), generateDotEnv(scope));
110
+ if (await shouldWriteYarnNodeModulesConfig(packageManager) && !await fse.pathExists(join(rootPath, '.yarnrc.yml'))) {
111
+ await fse.writeFile(join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);
112
+ }
83
113
  await trackUsage({
84
114
  event: 'didCopyConfigurationFiles',
85
115
  scope
@@ -237,12 +267,6 @@ async function createApp(scope) {
237
267
  logger.fatal('Failed to start your Strapi application');
238
268
  }
239
269
  }
240
- if (isABTestEnabled) {
241
- await trackUsage({
242
- event: 'didEnableABTest',
243
- scope
244
- });
245
- }
246
270
  }
247
271
  async function runInstall({ rootPath, packageManager }) {
248
272
  // include same cwd and env to ensure version check returns same version we use below
@@ -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';\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 } from './utils/get-package-manager-args';\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 isABTestEnabled,\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 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 if (isABTestEnabled) {\n await trackUsage({ event: 'didEnableABTest', scope });\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":["createStrapi","scope","rootPath","fse","ensureDir","createApp","error","remove","useTypescript","useExample","installDependencies","isQuickstart","template","packageManager","gitInit","runApp","isABTestEnabled","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","err","shouldCreateGrowthSsoTrial","data","createGrowthSsoTrial","strapiVersion","license","log","runInstall","stderr","isStderrError","slice","gitIgnore","tryGitInit","execa","stdio","cwd","cmd","env","FORCE_COLOR","envArgs","cmdArgs","getInstallArgs","process","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 { 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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAO/C,OAAO,KAAK,EAAW,KAAK,EAAE,MAAM,SAAS,CAAC;AA4D9C,iBAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+JhD;AA0CD,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;AAC7B,YAAY,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAO/C,OAAO,KAAK,EAAW,KAAK,EAAE,MAAM,SAAS,CAAC;AA4D9C,iBAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJhD;AA0CD,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;AAC7B,YAAY,EAAE,KAAK,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -23,8 +23,8 @@ const command = new commander.Command('create-strapi-app').version(version).argu
23
23
  .option('--install', 'Install dependencies').option('--no-install', 'Do not install dependencies')// Cloud options
24
24
  .option('--skip-cloud', 'Skip cloud login and project creation')// Example app
25
25
  .option('--example', 'Use an example app').option('--no-example', 'Do not use an example app')// git options
26
- .option('--git-init', 'Initialize a git repository').option('--no-git-init', 'Do no initialize a git repository')// A/B testing options
27
- .option('--enable-ab-tests', 'Enable anonymous A/B testing').option('--no-enable-ab-tests', 'Disable anonymous A/B testing')// Automation
26
+ .option('--git-init', 'Initialize a git repository').option('--no-git-init', 'Do no initialize a git repository')// Legacy no-ops (hidden from --help): accept old flags so existing CI/scripts keep working
27
+ .addOption(new commander.Option('--enable-ab-tests', 'ignored').hideHelp()).addOption(new commander.Option('--no-enable-ab-tests', 'ignored').hideHelp())// Automation
28
28
  .option('--non-interactive', 'Skip all interactive prompts and use defaults')// Database options
29
29
  .option('--dbclient <dbclient>', 'Database client').option('--dbhost <dbhost>', 'Database host').option('--dbport <dbport>', 'Database port').option('--dbname <dbname>', 'Database name').option('--dbusername <dbusername>', 'Database username').option('--dbpassword <dbpassword>', 'Database password').option('--dbssl <dbssl>', 'Database SSL').option('--dbfile <dbfile>', 'Database file path for sqlite').option('--skip-db', 'Skip database configuration').option('--template <template>', 'Specify a Strapi template').option('--template-branch <templateBranch>', 'Specify a branch for the template').option('--template-path <templatePath>', 'Specify a path to the template inside the repository').description('create a new application');
30
30
  async function run(args) {
@@ -100,8 +100,7 @@ async function run(args) {
100
100
  'react-router-dom': '^6.0.0',
101
101
  'styled-components': '^6.0.0'
102
102
  },
103
- shouldCreateGrowthSsoTrial,
104
- isABTestEnabled: false
103
+ shouldCreateGrowthSsoTrial
105
104
  };
106
105
  if (options.template !== undefined) {
107
106
  scope.useExample = false;
@@ -130,7 +129,6 @@ async function run(args) {
130
129
  };
131
130
  }
132
131
  scope.gitInit = await resolveOption(options.gitInit, skipPrompts, true, prompts.gitInit);
133
- scope.isABTestEnabled = await resolveOption(options.enableAbTests, skipPrompts, false, prompts.enableABTests);
134
132
  database.addDatabaseDependencies(scope);
135
133
  try {
136
134
  await createStrapi.createStrapi(scope);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { join, basename } from 'node:path';\nimport os from 'node:os';\nimport chalk from 'chalk';\nimport commander from 'commander';\nimport crypto from 'crypto';\nimport fse from 'fs-extra';\n\nimport * as prompts from './prompts';\nimport { handleCloudLogin } from './cloud';\nimport { createStrapi } from './create-strapi';\nimport { checkNodeRequirements } from './utils/check-requirements';\nimport { checkInstallPath } from './utils/check-install-path';\nimport { installID } from './utils/install-id';\nimport { trackError } from './utils/usage';\nimport { addDatabaseDependencies, getDatabaseInfos } from './utils/database';\n\nimport type { Options, Scope } from './types';\nimport { logger } from './utils/logger';\n\nconst { version } = fse.readJSONSync(join(__dirname, '..', 'package.json'));\n\nconst command = new commander.Command('create-strapi-app')\n .version(version)\n .arguments('[directory]')\n .usage('[directory] [options]')\n .option('--quickstart', 'Quickstart app creation (deprecated)')\n .option('--no-run', 'Do not start the application after it is created.')\n\n // setup options\n .option('--ts, --typescript', 'Initialize the project with TypeScript (default)')\n .option('--js, --javascript', 'Initialize the project with Javascript')\n\n // Package manager options\n .option('--use-npm', 'Use npm as the project package manager')\n .option('--use-yarn', 'Use yarn as the project package manager')\n .option('--use-pnpm', 'Use pnpm as the project package manager')\n\n // dependencies options\n .option('--install', 'Install dependencies')\n .option('--no-install', 'Do not install dependencies')\n\n // Cloud options\n .option('--skip-cloud', 'Skip cloud login and project creation')\n\n // Example app\n .option('--example', 'Use an example app')\n .option('--no-example', 'Do not use an example app')\n\n // git options\n .option('--git-init', 'Initialize a git repository')\n .option('--no-git-init', 'Do no initialize a git repository')\n\n // A/B testing options\n .option('--enable-ab-tests', 'Enable anonymous A/B testing')\n .option('--no-enable-ab-tests', 'Disable anonymous A/B testing')\n\n // Automation\n .option('--non-interactive', 'Skip all interactive prompts and use defaults')\n\n // Database options\n .option('--dbclient <dbclient>', 'Database client')\n .option('--dbhost <dbhost>', 'Database host')\n .option('--dbport <dbport>', 'Database port')\n .option('--dbname <dbname>', 'Database name')\n .option('--dbusername <dbusername>', 'Database username')\n .option('--dbpassword <dbpassword>', 'Database password')\n .option('--dbssl <dbssl>', 'Database SSL')\n .option('--dbfile <dbfile>', 'Database file path for sqlite')\n .option('--skip-db', 'Skip database configuration')\n\n .option('--template <template>', 'Specify a Strapi template')\n .option('--template-branch <templateBranch>', 'Specify a branch for the template')\n .option('--template-path <templatePath>', 'Specify a path to the template inside the repository')\n\n .description('create a new application');\n\nasync function run(args: string[]): Promise<void> {\n const options = command.parse(args).opts<Options>();\n const directory = command.args[0];\n\n logger.title(\n 'Strapi',\n `${chalk.green(chalk.bold(`v${version}`))} ${chalk.bold(\"🚀 Let's create your new project\")}\\n`\n );\n\n if (\n (options.javascript !== undefined || options.typescript !== undefined) &&\n options.template !== undefined\n ) {\n logger.fatal(\n `You cannot use ${chalk.bold('--javascript')} or ${chalk.bold('--typescript')} with ${chalk.bold('--template')}`\n );\n }\n\n if (options.javascript === true && options.typescript === true) {\n logger.fatal(\n `You cannot use both ${chalk.bold('--typescript')} (--ts) and ${chalk.bold('--javascript')} (--js) flags together`\n );\n }\n\n // Only prompt the example app option if there is no template option\n if (options.example === true && options.template !== undefined) {\n logger.fatal(`You cannot use ${chalk.bold('--example')} with ${chalk.bold('--template')}`);\n }\n\n if (options.template !== undefined && options.template.startsWith('-')) {\n logger.fatal(`Template name ${chalk.bold(`\"${options.template}\"`)} is invalid`);\n }\n\n if ([options.useNpm, options.usePnpm, options.useYarn].filter(Boolean).length > 1) {\n logger.fatal(\n `You cannot specify multiple package managers at the same time ${chalk.bold('(--use-npm, --use-pnpm, --use-yarn)')}`\n );\n }\n\n if (options.quickstart && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--quickstart')}`\n );\n }\n\n if (options.nonInteractive && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--non-interactive')}`\n );\n }\n\n const skipPrompts = options.quickstart || options.nonInteractive;\n\n checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n let shouldCreateGrowthSsoTrial = false;\n if (!options.skipCloud && !options.nonInteractive) {\n shouldCreateGrowthSsoTrial = await handleCloudLogin();\n }\n\n const tmpPath = join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);\n\n const randomUUID = crypto.randomUUID();\n const uuid = (process.env.STRAPI_UUID_PREFIX || '') + randomUUID;\n const installId = installID(uuid);\n\n const scope: Scope = {\n rootPath,\n name: basename(rootPath),\n packageManager: getPkgManager(options),\n database: await getDatabaseInfos(options),\n template: options.template,\n templateBranch: options.templateBranch,\n templatePath: options.templatePath,\n isQuickstart: options.quickstart,\n useExample: false,\n runApp: options.quickstart === true && options.run !== false,\n strapiVersion: version,\n packageJsonStrapi: {\n template: options.template,\n },\n uuid,\n docker: process.env.DOCKER === 'true',\n installId,\n tmpPath,\n gitInit: true,\n devDependencies: {},\n dependencies: {\n '@strapi/strapi': version,\n '@strapi/plugin-users-permissions': version,\n '@strapi/plugin-cloud': version,\n // third party\n react: '^18.0.0',\n 'react-dom': '^18.0.0',\n 'react-router-dom': '^6.0.0',\n 'styled-components': '^6.0.0',\n },\n shouldCreateGrowthSsoTrial,\n isABTestEnabled: false,\n };\n\n if (options.template !== undefined) {\n scope.useExample = false;\n } else if (options.example === true) {\n scope.useExample = true;\n } else if (options.example === false || skipPrompts) {\n scope.useExample = false;\n } else {\n scope.useExample = await prompts.example();\n }\n\n if (options.javascript === true) {\n scope.useTypescript = false;\n } else if (options.typescript === true || skipPrompts) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n scope.installDependencies = await resolveOption(options.install, skipPrompts, true, () =>\n prompts.installDependencies(scope.packageManager)\n );\n\n if (scope.useTypescript) {\n scope.devDependencies = {\n ...scope.devDependencies,\n typescript: '^5',\n '@types/node': '^20',\n '@types/react': '^18',\n '@types/react-dom': '^18',\n };\n }\n\n scope.gitInit = await resolveOption(options.gitInit, skipPrompts, true, prompts.gitInit);\n\n scope.isABTestEnabled = await resolveOption(\n options.enableAbTests,\n skipPrompts,\n false,\n prompts.enableABTests\n );\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\n/**\n * Resolves a boolean CLI option: explicit flag wins, then non-interactive default, then interactive prompt.\n */\nasync function resolveOption(\n explicitValue: boolean | undefined,\n skipPrompts: boolean | undefined,\n defaultValue: boolean,\n promptFn: () => Promise<boolean>\n): Promise<boolean> {\n if (explicitValue !== undefined) return explicitValue;\n if (skipPrompts) return defaultValue;\n return promptFn();\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","nonInteractive","skipPrompts","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","shouldCreateGrowthSsoTrial","skipCloud","handleCloudLogin","tmpPath","os","tmpdir","crypto","randomBytes","toString","randomUUID","uuid","process","env","STRAPI_UUID_PREFIX","installId","installID","scope","name","basename","packageManager","getPkgManager","database","getDatabaseInfos","templateBranch","templatePath","isQuickstart","useExample","runApp","strapiVersion","packageJsonStrapi","docker","DOCKER","gitInit","devDependencies","dependencies","react","isABTestEnabled","useTypescript","installDependencies","resolveOption","install","enableAbTests","addDatabaseDependencies","createStrapi","error","Error","trackError","message","explicitValue","defaultValue","promptFn","userAgent","npm_config_user_agent"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { join, basename } from 'node:path';\nimport os from 'node:os';\nimport chalk from 'chalk';\nimport commander from 'commander';\nimport crypto from 'crypto';\nimport fse from 'fs-extra';\n\nimport * as prompts from './prompts';\nimport { handleCloudLogin } from './cloud';\nimport { createStrapi } from './create-strapi';\nimport { checkNodeRequirements } from './utils/check-requirements';\nimport { checkInstallPath } from './utils/check-install-path';\nimport { installID } from './utils/install-id';\nimport { trackError } from './utils/usage';\nimport { addDatabaseDependencies, getDatabaseInfos } from './utils/database';\n\nimport type { Options, Scope } from './types';\nimport { logger } from './utils/logger';\n\nconst { version } = fse.readJSONSync(join(__dirname, '..', 'package.json'));\n\nconst command = new commander.Command('create-strapi-app')\n .version(version)\n .arguments('[directory]')\n .usage('[directory] [options]')\n .option('--quickstart', 'Quickstart app creation (deprecated)')\n .option('--no-run', 'Do not start the application after it is created.')\n\n // setup options\n .option('--ts, --typescript', 'Initialize the project with TypeScript (default)')\n .option('--js, --javascript', 'Initialize the project with Javascript')\n\n // Package manager options\n .option('--use-npm', 'Use npm as the project package manager')\n .option('--use-yarn', 'Use yarn as the project package manager')\n .option('--use-pnpm', 'Use pnpm as the project package manager')\n\n // dependencies options\n .option('--install', 'Install dependencies')\n .option('--no-install', 'Do not install dependencies')\n\n // Cloud options\n .option('--skip-cloud', 'Skip cloud login and project creation')\n\n // Example app\n .option('--example', 'Use an example app')\n .option('--no-example', 'Do not use an example app')\n\n // git options\n .option('--git-init', 'Initialize a git repository')\n .option('--no-git-init', 'Do no initialize a git repository')\n\n // Legacy no-ops (hidden from --help): accept old flags so existing CI/scripts keep working\n .addOption(new commander.Option('--enable-ab-tests', 'ignored').hideHelp())\n .addOption(new commander.Option('--no-enable-ab-tests', 'ignored').hideHelp())\n\n // Automation\n .option('--non-interactive', 'Skip all interactive prompts and use defaults')\n\n // Database options\n .option('--dbclient <dbclient>', 'Database client')\n .option('--dbhost <dbhost>', 'Database host')\n .option('--dbport <dbport>', 'Database port')\n .option('--dbname <dbname>', 'Database name')\n .option('--dbusername <dbusername>', 'Database username')\n .option('--dbpassword <dbpassword>', 'Database password')\n .option('--dbssl <dbssl>', 'Database SSL')\n .option('--dbfile <dbfile>', 'Database file path for sqlite')\n .option('--skip-db', 'Skip database configuration')\n\n .option('--template <template>', 'Specify a Strapi template')\n .option('--template-branch <templateBranch>', 'Specify a branch for the template')\n .option('--template-path <templatePath>', 'Specify a path to the template inside the repository')\n\n .description('create a new application');\n\nasync function run(args: string[]): Promise<void> {\n const options = command.parse(args).opts<Options>();\n const directory = command.args[0];\n\n logger.title(\n 'Strapi',\n `${chalk.green(chalk.bold(`v${version}`))} ${chalk.bold(\"🚀 Let's create your new project\")}\\n`\n );\n\n if (\n (options.javascript !== undefined || options.typescript !== undefined) &&\n options.template !== undefined\n ) {\n logger.fatal(\n `You cannot use ${chalk.bold('--javascript')} or ${chalk.bold('--typescript')} with ${chalk.bold('--template')}`\n );\n }\n\n if (options.javascript === true && options.typescript === true) {\n logger.fatal(\n `You cannot use both ${chalk.bold('--typescript')} (--ts) and ${chalk.bold('--javascript')} (--js) flags together`\n );\n }\n\n // Only prompt the example app option if there is no template option\n if (options.example === true && options.template !== undefined) {\n logger.fatal(`You cannot use ${chalk.bold('--example')} with ${chalk.bold('--template')}`);\n }\n\n if (options.template !== undefined && options.template.startsWith('-')) {\n logger.fatal(`Template name ${chalk.bold(`\"${options.template}\"`)} is invalid`);\n }\n\n if ([options.useNpm, options.usePnpm, options.useYarn].filter(Boolean).length > 1) {\n logger.fatal(\n `You cannot specify multiple package managers at the same time ${chalk.bold('(--use-npm, --use-pnpm, --use-yarn)')}`\n );\n }\n\n if (options.quickstart && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--quickstart')}`\n );\n }\n\n if (options.nonInteractive && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--non-interactive')}`\n );\n }\n\n const skipPrompts = options.quickstart || options.nonInteractive;\n\n checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n let shouldCreateGrowthSsoTrial = false;\n if (!options.skipCloud && !options.nonInteractive) {\n shouldCreateGrowthSsoTrial = await handleCloudLogin();\n }\n\n const tmpPath = join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);\n\n const randomUUID = crypto.randomUUID();\n const uuid = (process.env.STRAPI_UUID_PREFIX || '') + randomUUID;\n const installId = installID(uuid);\n\n const scope: Scope = {\n rootPath,\n name: basename(rootPath),\n packageManager: getPkgManager(options),\n database: await getDatabaseInfos(options),\n template: options.template,\n templateBranch: options.templateBranch,\n templatePath: options.templatePath,\n isQuickstart: options.quickstart,\n useExample: false,\n runApp: options.quickstart === true && options.run !== false,\n strapiVersion: version,\n packageJsonStrapi: {\n template: options.template,\n },\n uuid,\n docker: process.env.DOCKER === 'true',\n installId,\n tmpPath,\n gitInit: true,\n devDependencies: {},\n dependencies: {\n '@strapi/strapi': version,\n '@strapi/plugin-users-permissions': version,\n '@strapi/plugin-cloud': version,\n // third party\n react: '^18.0.0',\n 'react-dom': '^18.0.0',\n 'react-router-dom': '^6.0.0',\n 'styled-components': '^6.0.0',\n },\n shouldCreateGrowthSsoTrial,\n };\n\n if (options.template !== undefined) {\n scope.useExample = false;\n } else if (options.example === true) {\n scope.useExample = true;\n } else if (options.example === false || skipPrompts) {\n scope.useExample = false;\n } else {\n scope.useExample = await prompts.example();\n }\n\n if (options.javascript === true) {\n scope.useTypescript = false;\n } else if (options.typescript === true || skipPrompts) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n scope.installDependencies = await resolveOption(options.install, skipPrompts, true, () =>\n prompts.installDependencies(scope.packageManager)\n );\n\n if (scope.useTypescript) {\n scope.devDependencies = {\n ...scope.devDependencies,\n typescript: '^5',\n '@types/node': '^20',\n '@types/react': '^18',\n '@types/react-dom': '^18',\n };\n }\n\n scope.gitInit = await resolveOption(options.gitInit, skipPrompts, true, prompts.gitInit);\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\n/**\n * Resolves a boolean CLI option: explicit flag wins, then non-interactive default, then interactive prompt.\n */\nasync function resolveOption(\n explicitValue: boolean | undefined,\n skipPrompts: boolean | undefined,\n defaultValue: boolean,\n promptFn: () => Promise<boolean>\n): Promise<boolean> {\n if (explicitValue !== undefined) return explicitValue;\n if (skipPrompts) return defaultValue;\n return promptFn();\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","addOption","Option","hideHelp","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","nonInteractive","skipPrompts","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","shouldCreateGrowthSsoTrial","skipCloud","handleCloudLogin","tmpPath","os","tmpdir","crypto","randomBytes","toString","randomUUID","uuid","process","env","STRAPI_UUID_PREFIX","installId","installID","scope","name","basename","packageManager","getPkgManager","database","getDatabaseInfos","templateBranch","templatePath","isQuickstart","useExample","runApp","strapiVersion","packageJsonStrapi","docker","DOCKER","gitInit","devDependencies","dependencies","react","useTypescript","installDependencies","resolveOption","install","addDatabaseDependencies","createStrapi","error","Error","trackError","message","explicitValue","defaultValue","promptFn","userAgent","npm_config_user_agent"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -4,7 +4,7 @@ import chalk from 'chalk';
4
4
  import commander from 'commander';
5
5
  import crypto from 'crypto';
6
6
  import fse from 'fs-extra';
7
- import { directory, example, typescript, installDependencies, gitInit, enableABTests } from './prompts.mjs';
7
+ import { directory, example, typescript, installDependencies, gitInit } from './prompts.mjs';
8
8
  import { handleCloudLogin } from './cloud.mjs';
9
9
  import { createStrapi } from './create-strapi.mjs';
10
10
  import { checkNodeRequirements } from './utils/check-requirements.mjs';
@@ -21,8 +21,8 @@ const command = new commander.Command('create-strapi-app').version(version).argu
21
21
  .option('--install', 'Install dependencies').option('--no-install', 'Do not install dependencies')// Cloud options
22
22
  .option('--skip-cloud', 'Skip cloud login and project creation')// Example app
23
23
  .option('--example', 'Use an example app').option('--no-example', 'Do not use an example app')// git options
24
- .option('--git-init', 'Initialize a git repository').option('--no-git-init', 'Do no initialize a git repository')// A/B testing options
25
- .option('--enable-ab-tests', 'Enable anonymous A/B testing').option('--no-enable-ab-tests', 'Disable anonymous A/B testing')// Automation
24
+ .option('--git-init', 'Initialize a git repository').option('--no-git-init', 'Do no initialize a git repository')// Legacy no-ops (hidden from --help): accept old flags so existing CI/scripts keep working
25
+ .addOption(new commander.Option('--enable-ab-tests', 'ignored').hideHelp()).addOption(new commander.Option('--no-enable-ab-tests', 'ignored').hideHelp())// Automation
26
26
  .option('--non-interactive', 'Skip all interactive prompts and use defaults')// Database options
27
27
  .option('--dbclient <dbclient>', 'Database client').option('--dbhost <dbhost>', 'Database host').option('--dbport <dbport>', 'Database port').option('--dbname <dbname>', 'Database name').option('--dbusername <dbusername>', 'Database username').option('--dbpassword <dbpassword>', 'Database password').option('--dbssl <dbssl>', 'Database SSL').option('--dbfile <dbfile>', 'Database file path for sqlite').option('--skip-db', 'Skip database configuration').option('--template <template>', 'Specify a Strapi template').option('--template-branch <templateBranch>', 'Specify a branch for the template').option('--template-path <templatePath>', 'Specify a path to the template inside the repository').description('create a new application');
28
28
  async function run(args) {
@@ -98,8 +98,7 @@ async function run(args) {
98
98
  'react-router-dom': '^6.0.0',
99
99
  'styled-components': '^6.0.0'
100
100
  },
101
- shouldCreateGrowthSsoTrial,
102
- isABTestEnabled: false
101
+ shouldCreateGrowthSsoTrial
103
102
  };
104
103
  if (options.template !== undefined) {
105
104
  scope.useExample = false;
@@ -128,7 +127,6 @@ async function run(args) {
128
127
  };
129
128
  }
130
129
  scope.gitInit = await resolveOption(options.gitInit, skipPrompts, true, gitInit);
131
- scope.isABTestEnabled = await resolveOption(options.enableAbTests, skipPrompts, false, enableABTests);
132
130
  addDatabaseDependencies(scope);
133
131
  try {
134
132
  await createStrapi(scope);
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import { join, basename } from 'node:path';\nimport os from 'node:os';\nimport chalk from 'chalk';\nimport commander from 'commander';\nimport crypto from 'crypto';\nimport fse from 'fs-extra';\n\nimport * as prompts from './prompts';\nimport { handleCloudLogin } from './cloud';\nimport { createStrapi } from './create-strapi';\nimport { checkNodeRequirements } from './utils/check-requirements';\nimport { checkInstallPath } from './utils/check-install-path';\nimport { installID } from './utils/install-id';\nimport { trackError } from './utils/usage';\nimport { addDatabaseDependencies, getDatabaseInfos } from './utils/database';\n\nimport type { Options, Scope } from './types';\nimport { logger } from './utils/logger';\n\nconst { version } = fse.readJSONSync(join(__dirname, '..', 'package.json'));\n\nconst command = new commander.Command('create-strapi-app')\n .version(version)\n .arguments('[directory]')\n .usage('[directory] [options]')\n .option('--quickstart', 'Quickstart app creation (deprecated)')\n .option('--no-run', 'Do not start the application after it is created.')\n\n // setup options\n .option('--ts, --typescript', 'Initialize the project with TypeScript (default)')\n .option('--js, --javascript', 'Initialize the project with Javascript')\n\n // Package manager options\n .option('--use-npm', 'Use npm as the project package manager')\n .option('--use-yarn', 'Use yarn as the project package manager')\n .option('--use-pnpm', 'Use pnpm as the project package manager')\n\n // dependencies options\n .option('--install', 'Install dependencies')\n .option('--no-install', 'Do not install dependencies')\n\n // Cloud options\n .option('--skip-cloud', 'Skip cloud login and project creation')\n\n // Example app\n .option('--example', 'Use an example app')\n .option('--no-example', 'Do not use an example app')\n\n // git options\n .option('--git-init', 'Initialize a git repository')\n .option('--no-git-init', 'Do no initialize a git repository')\n\n // A/B testing options\n .option('--enable-ab-tests', 'Enable anonymous A/B testing')\n .option('--no-enable-ab-tests', 'Disable anonymous A/B testing')\n\n // Automation\n .option('--non-interactive', 'Skip all interactive prompts and use defaults')\n\n // Database options\n .option('--dbclient <dbclient>', 'Database client')\n .option('--dbhost <dbhost>', 'Database host')\n .option('--dbport <dbport>', 'Database port')\n .option('--dbname <dbname>', 'Database name')\n .option('--dbusername <dbusername>', 'Database username')\n .option('--dbpassword <dbpassword>', 'Database password')\n .option('--dbssl <dbssl>', 'Database SSL')\n .option('--dbfile <dbfile>', 'Database file path for sqlite')\n .option('--skip-db', 'Skip database configuration')\n\n .option('--template <template>', 'Specify a Strapi template')\n .option('--template-branch <templateBranch>', 'Specify a branch for the template')\n .option('--template-path <templatePath>', 'Specify a path to the template inside the repository')\n\n .description('create a new application');\n\nasync function run(args: string[]): Promise<void> {\n const options = command.parse(args).opts<Options>();\n const directory = command.args[0];\n\n logger.title(\n 'Strapi',\n `${chalk.green(chalk.bold(`v${version}`))} ${chalk.bold(\"🚀 Let's create your new project\")}\\n`\n );\n\n if (\n (options.javascript !== undefined || options.typescript !== undefined) &&\n options.template !== undefined\n ) {\n logger.fatal(\n `You cannot use ${chalk.bold('--javascript')} or ${chalk.bold('--typescript')} with ${chalk.bold('--template')}`\n );\n }\n\n if (options.javascript === true && options.typescript === true) {\n logger.fatal(\n `You cannot use both ${chalk.bold('--typescript')} (--ts) and ${chalk.bold('--javascript')} (--js) flags together`\n );\n }\n\n // Only prompt the example app option if there is no template option\n if (options.example === true && options.template !== undefined) {\n logger.fatal(`You cannot use ${chalk.bold('--example')} with ${chalk.bold('--template')}`);\n }\n\n if (options.template !== undefined && options.template.startsWith('-')) {\n logger.fatal(`Template name ${chalk.bold(`\"${options.template}\"`)} is invalid`);\n }\n\n if ([options.useNpm, options.usePnpm, options.useYarn].filter(Boolean).length > 1) {\n logger.fatal(\n `You cannot specify multiple package managers at the same time ${chalk.bold('(--use-npm, --use-pnpm, --use-yarn)')}`\n );\n }\n\n if (options.quickstart && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--quickstart')}`\n );\n }\n\n if (options.nonInteractive && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--non-interactive')}`\n );\n }\n\n const skipPrompts = options.quickstart || options.nonInteractive;\n\n checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n let shouldCreateGrowthSsoTrial = false;\n if (!options.skipCloud && !options.nonInteractive) {\n shouldCreateGrowthSsoTrial = await handleCloudLogin();\n }\n\n const tmpPath = join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);\n\n const randomUUID = crypto.randomUUID();\n const uuid = (process.env.STRAPI_UUID_PREFIX || '') + randomUUID;\n const installId = installID(uuid);\n\n const scope: Scope = {\n rootPath,\n name: basename(rootPath),\n packageManager: getPkgManager(options),\n database: await getDatabaseInfos(options),\n template: options.template,\n templateBranch: options.templateBranch,\n templatePath: options.templatePath,\n isQuickstart: options.quickstart,\n useExample: false,\n runApp: options.quickstart === true && options.run !== false,\n strapiVersion: version,\n packageJsonStrapi: {\n template: options.template,\n },\n uuid,\n docker: process.env.DOCKER === 'true',\n installId,\n tmpPath,\n gitInit: true,\n devDependencies: {},\n dependencies: {\n '@strapi/strapi': version,\n '@strapi/plugin-users-permissions': version,\n '@strapi/plugin-cloud': version,\n // third party\n react: '^18.0.0',\n 'react-dom': '^18.0.0',\n 'react-router-dom': '^6.0.0',\n 'styled-components': '^6.0.0',\n },\n shouldCreateGrowthSsoTrial,\n isABTestEnabled: false,\n };\n\n if (options.template !== undefined) {\n scope.useExample = false;\n } else if (options.example === true) {\n scope.useExample = true;\n } else if (options.example === false || skipPrompts) {\n scope.useExample = false;\n } else {\n scope.useExample = await prompts.example();\n }\n\n if (options.javascript === true) {\n scope.useTypescript = false;\n } else if (options.typescript === true || skipPrompts) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n scope.installDependencies = await resolveOption(options.install, skipPrompts, true, () =>\n prompts.installDependencies(scope.packageManager)\n );\n\n if (scope.useTypescript) {\n scope.devDependencies = {\n ...scope.devDependencies,\n typescript: '^5',\n '@types/node': '^20',\n '@types/react': '^18',\n '@types/react-dom': '^18',\n };\n }\n\n scope.gitInit = await resolveOption(options.gitInit, skipPrompts, true, prompts.gitInit);\n\n scope.isABTestEnabled = await resolveOption(\n options.enableAbTests,\n skipPrompts,\n false,\n prompts.enableABTests\n );\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\n/**\n * Resolves a boolean CLI option: explicit flag wins, then non-interactive default, then interactive prompt.\n */\nasync function resolveOption(\n explicitValue: boolean | undefined,\n skipPrompts: boolean | undefined,\n defaultValue: boolean,\n promptFn: () => Promise<boolean>\n): Promise<boolean> {\n if (explicitValue !== undefined) return explicitValue;\n if (skipPrompts) return defaultValue;\n return promptFn();\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","nonInteractive","skipPrompts","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","shouldCreateGrowthSsoTrial","skipCloud","handleCloudLogin","tmpPath","os","tmpdir","crypto","randomBytes","toString","randomUUID","uuid","process","env","STRAPI_UUID_PREFIX","installId","installID","scope","name","basename","packageManager","getPkgManager","database","getDatabaseInfos","templateBranch","templatePath","isQuickstart","useExample","runApp","strapiVersion","packageJsonStrapi","docker","DOCKER","gitInit","devDependencies","dependencies","react","isABTestEnabled","useTypescript","installDependencies","resolveOption","install","enableAbTests","addDatabaseDependencies","createStrapi","error","Error","trackError","message","explicitValue","defaultValue","promptFn","userAgent","npm_config_user_agent"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import { join, basename } from 'node:path';\nimport os from 'node:os';\nimport chalk from 'chalk';\nimport commander from 'commander';\nimport crypto from 'crypto';\nimport fse from 'fs-extra';\n\nimport * as prompts from './prompts';\nimport { handleCloudLogin } from './cloud';\nimport { createStrapi } from './create-strapi';\nimport { checkNodeRequirements } from './utils/check-requirements';\nimport { checkInstallPath } from './utils/check-install-path';\nimport { installID } from './utils/install-id';\nimport { trackError } from './utils/usage';\nimport { addDatabaseDependencies, getDatabaseInfos } from './utils/database';\n\nimport type { Options, Scope } from './types';\nimport { logger } from './utils/logger';\n\nconst { version } = fse.readJSONSync(join(__dirname, '..', 'package.json'));\n\nconst command = new commander.Command('create-strapi-app')\n .version(version)\n .arguments('[directory]')\n .usage('[directory] [options]')\n .option('--quickstart', 'Quickstart app creation (deprecated)')\n .option('--no-run', 'Do not start the application after it is created.')\n\n // setup options\n .option('--ts, --typescript', 'Initialize the project with TypeScript (default)')\n .option('--js, --javascript', 'Initialize the project with Javascript')\n\n // Package manager options\n .option('--use-npm', 'Use npm as the project package manager')\n .option('--use-yarn', 'Use yarn as the project package manager')\n .option('--use-pnpm', 'Use pnpm as the project package manager')\n\n // dependencies options\n .option('--install', 'Install dependencies')\n .option('--no-install', 'Do not install dependencies')\n\n // Cloud options\n .option('--skip-cloud', 'Skip cloud login and project creation')\n\n // Example app\n .option('--example', 'Use an example app')\n .option('--no-example', 'Do not use an example app')\n\n // git options\n .option('--git-init', 'Initialize a git repository')\n .option('--no-git-init', 'Do no initialize a git repository')\n\n // Legacy no-ops (hidden from --help): accept old flags so existing CI/scripts keep working\n .addOption(new commander.Option('--enable-ab-tests', 'ignored').hideHelp())\n .addOption(new commander.Option('--no-enable-ab-tests', 'ignored').hideHelp())\n\n // Automation\n .option('--non-interactive', 'Skip all interactive prompts and use defaults')\n\n // Database options\n .option('--dbclient <dbclient>', 'Database client')\n .option('--dbhost <dbhost>', 'Database host')\n .option('--dbport <dbport>', 'Database port')\n .option('--dbname <dbname>', 'Database name')\n .option('--dbusername <dbusername>', 'Database username')\n .option('--dbpassword <dbpassword>', 'Database password')\n .option('--dbssl <dbssl>', 'Database SSL')\n .option('--dbfile <dbfile>', 'Database file path for sqlite')\n .option('--skip-db', 'Skip database configuration')\n\n .option('--template <template>', 'Specify a Strapi template')\n .option('--template-branch <templateBranch>', 'Specify a branch for the template')\n .option('--template-path <templatePath>', 'Specify a path to the template inside the repository')\n\n .description('create a new application');\n\nasync function run(args: string[]): Promise<void> {\n const options = command.parse(args).opts<Options>();\n const directory = command.args[0];\n\n logger.title(\n 'Strapi',\n `${chalk.green(chalk.bold(`v${version}`))} ${chalk.bold(\"🚀 Let's create your new project\")}\\n`\n );\n\n if (\n (options.javascript !== undefined || options.typescript !== undefined) &&\n options.template !== undefined\n ) {\n logger.fatal(\n `You cannot use ${chalk.bold('--javascript')} or ${chalk.bold('--typescript')} with ${chalk.bold('--template')}`\n );\n }\n\n if (options.javascript === true && options.typescript === true) {\n logger.fatal(\n `You cannot use both ${chalk.bold('--typescript')} (--ts) and ${chalk.bold('--javascript')} (--js) flags together`\n );\n }\n\n // Only prompt the example app option if there is no template option\n if (options.example === true && options.template !== undefined) {\n logger.fatal(`You cannot use ${chalk.bold('--example')} with ${chalk.bold('--template')}`);\n }\n\n if (options.template !== undefined && options.template.startsWith('-')) {\n logger.fatal(`Template name ${chalk.bold(`\"${options.template}\"`)} is invalid`);\n }\n\n if ([options.useNpm, options.usePnpm, options.useYarn].filter(Boolean).length > 1) {\n logger.fatal(\n `You cannot specify multiple package managers at the same time ${chalk.bold('(--use-npm, --use-pnpm, --use-yarn)')}`\n );\n }\n\n if (options.quickstart && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--quickstart')}`\n );\n }\n\n if (options.nonInteractive && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--non-interactive')}`\n );\n }\n\n const skipPrompts = options.quickstart || options.nonInteractive;\n\n checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n let shouldCreateGrowthSsoTrial = false;\n if (!options.skipCloud && !options.nonInteractive) {\n shouldCreateGrowthSsoTrial = await handleCloudLogin();\n }\n\n const tmpPath = join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);\n\n const randomUUID = crypto.randomUUID();\n const uuid = (process.env.STRAPI_UUID_PREFIX || '') + randomUUID;\n const installId = installID(uuid);\n\n const scope: Scope = {\n rootPath,\n name: basename(rootPath),\n packageManager: getPkgManager(options),\n database: await getDatabaseInfos(options),\n template: options.template,\n templateBranch: options.templateBranch,\n templatePath: options.templatePath,\n isQuickstart: options.quickstart,\n useExample: false,\n runApp: options.quickstart === true && options.run !== false,\n strapiVersion: version,\n packageJsonStrapi: {\n template: options.template,\n },\n uuid,\n docker: process.env.DOCKER === 'true',\n installId,\n tmpPath,\n gitInit: true,\n devDependencies: {},\n dependencies: {\n '@strapi/strapi': version,\n '@strapi/plugin-users-permissions': version,\n '@strapi/plugin-cloud': version,\n // third party\n react: '^18.0.0',\n 'react-dom': '^18.0.0',\n 'react-router-dom': '^6.0.0',\n 'styled-components': '^6.0.0',\n },\n shouldCreateGrowthSsoTrial,\n };\n\n if (options.template !== undefined) {\n scope.useExample = false;\n } else if (options.example === true) {\n scope.useExample = true;\n } else if (options.example === false || skipPrompts) {\n scope.useExample = false;\n } else {\n scope.useExample = await prompts.example();\n }\n\n if (options.javascript === true) {\n scope.useTypescript = false;\n } else if (options.typescript === true || skipPrompts) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n scope.installDependencies = await resolveOption(options.install, skipPrompts, true, () =>\n prompts.installDependencies(scope.packageManager)\n );\n\n if (scope.useTypescript) {\n scope.devDependencies = {\n ...scope.devDependencies,\n typescript: '^5',\n '@types/node': '^20',\n '@types/react': '^18',\n '@types/react-dom': '^18',\n };\n }\n\n scope.gitInit = await resolveOption(options.gitInit, skipPrompts, true, prompts.gitInit);\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\n/**\n * Resolves a boolean CLI option: explicit flag wins, then non-interactive default, then interactive prompt.\n */\nasync function resolveOption(\n explicitValue: boolean | undefined,\n skipPrompts: boolean | undefined,\n defaultValue: boolean,\n promptFn: () => Promise<boolean>\n): Promise<boolean> {\n if (explicitValue !== undefined) return explicitValue;\n if (skipPrompts) return defaultValue;\n return promptFn();\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","addOption","Option","hideHelp","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","nonInteractive","skipPrompts","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","shouldCreateGrowthSsoTrial","skipCloud","handleCloudLogin","tmpPath","os","tmpdir","crypto","randomBytes","toString","randomUUID","uuid","process","env","STRAPI_UUID_PREFIX","installId","installID","scope","name","basename","packageManager","getPkgManager","database","getDatabaseInfos","templateBranch","templatePath","isQuickstart","useExample","runApp","strapiVersion","packageJsonStrapi","docker","DOCKER","gitInit","devDependencies","dependencies","react","useTypescript","installDependencies","resolveOption","install","addDatabaseDependencies","createStrapi","error","Error","trackError","message","explicitValue","defaultValue","promptFn","userAgent","npm_config_user_agent"],"mappings":"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"}
package/dist/prompts.d.ts CHANGED
@@ -3,6 +3,5 @@ declare function typescript(): Promise<boolean>;
3
3
  declare function example(): Promise<boolean>;
4
4
  declare function gitInit(): Promise<boolean>;
5
5
  declare function installDependencies(packageManager: string): Promise<boolean>;
6
- declare function enableABTests(): Promise<boolean>;
7
- export { directory, typescript, example, gitInit, installDependencies, enableABTests };
6
+ export { directory, typescript, example, gitInit, installDependencies };
8
7
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,iBAAe,SAAS,oBAcvB;AAED,iBAAe,UAAU,qBAcxB;AAED,iBAAe,OAAO,qBAcrB;AAED,iBAAe,OAAO,qBAcrB;AAED,iBAAe,mBAAmB,CAAC,cAAc,EAAE,MAAM,oBAcxD;AAED,iBAAe,aAAa,qBAc3B;AAED,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,iBAAe,SAAS,oBAcvB;AAED,iBAAe,UAAU,qBAcxB;AAED,iBAAe,OAAO,qBAcrB;AAED,iBAAe,OAAO,qBAcrB;AAED,iBAAe,mBAAmB,CAAC,cAAc,EAAE,MAAM,oBAcxD;AAED,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
package/dist/prompts.js CHANGED
@@ -60,21 +60,8 @@ async function installDependencies(packageManager) {
60
60
  ]);
61
61
  return installDependencies;
62
62
  }
63
- async function enableABTests() {
64
- const { default: inquirer } = await import('inquirer');
65
- const { enableABTests } = await inquirer.prompt([
66
- {
67
- type: 'confirm',
68
- name: 'enableABTests',
69
- message: `Participate in anonymous A/B testing (to improve Strapi)?`,
70
- default: false
71
- }
72
- ]);
73
- return enableABTests;
74
- }
75
63
 
76
64
  exports.directory = directory;
77
- exports.enableABTests = enableABTests;
78
65
  exports.example = example;
79
66
  exports.gitInit = gitInit;
80
67
  exports.installDependencies = installDependencies;
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sources":["../src/prompts.ts"],"sourcesContent":["async function directory() {\n const { default: inquirer } = await import('inquirer');\n const { directory } = await inquirer.prompt<{\n directory: string;\n }>([\n {\n type: 'input',\n default: 'my-strapi-project',\n name: 'directory',\n message: 'What is the name of your project?',\n },\n ]);\n\n return directory;\n}\n\nasync function typescript() {\n const { default: inquirer } = await import('inquirer');\n const { useTypescript } = await inquirer.prompt<{\n useTypescript: boolean;\n }>([\n {\n type: 'confirm',\n name: 'useTypescript',\n message: 'Start with Typescript?',\n default: true,\n },\n ]);\n\n return useTypescript;\n}\n\nasync function example() {\n const { default: inquirer } = await import('inquirer');\n const { useExample } = await inquirer.prompt<{\n useExample: boolean;\n }>([\n {\n type: 'confirm',\n name: 'useExample',\n message: 'Start with an example structure & data?',\n default: false,\n },\n ]);\n\n return useExample;\n}\n\nasync function gitInit() {\n const { default: inquirer } = await import('inquirer');\n const { gitInit } = await inquirer.prompt<{\n gitInit: boolean;\n }>([\n {\n type: 'confirm',\n name: 'gitInit',\n message: 'Initialize a git repository?',\n default: true,\n },\n ]);\n\n return gitInit;\n}\n\nasync function installDependencies(packageManager: string) {\n const { default: inquirer } = await import('inquirer');\n const { installDependencies } = await inquirer.prompt<{\n installDependencies: boolean;\n }>([\n {\n type: 'confirm',\n name: 'installDependencies',\n message: `Install dependencies with ${packageManager}?`,\n default: true,\n },\n ]);\n\n return installDependencies;\n}\n\nasync function enableABTests() {\n const { default: inquirer } = await import('inquirer');\n const { enableABTests } = await inquirer.prompt<{\n enableABTests: boolean;\n }>([\n {\n type: 'confirm',\n name: 'enableABTests',\n message: `Participate in anonymous A/B testing (to improve Strapi)?`,\n default: false,\n },\n ]);\n\n return enableABTests;\n}\n\nexport { directory, typescript, example, gitInit, installDependencies, enableABTests };\n"],"names":["directory","default","inquirer","prompt","type","name","message","typescript","useTypescript","example","useExample","gitInit","installDependencies","packageManager","enableABTests"],"mappings":";;AAAA,eAAeA,SAAAA,GAAAA;AACb,IAAA,MAAM,EAAEC,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEF,SAAS,EAAE,GAAG,MAAME,QAAAA,CAASC,MAAM,CAExC;AACD,QAAA;YACEC,IAAAA,EAAM,OAAA;YACNH,OAAAA,EAAS,mBAAA;YACTI,IAAAA,EAAM,WAAA;YACNC,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAON,SAAAA;AACT;AAEA,eAAeO,UAAAA,GAAAA;AACb,IAAA,MAAM,EAAEN,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEM,aAAa,EAAE,GAAG,MAAMN,QAAAA,CAASC,MAAM,CAE5C;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,eAAA;YACNC,OAAAA,EAAS,wBAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOO,aAAAA;AACT;AAEA,eAAeC,OAAAA,GAAAA;AACb,IAAA,MAAM,EAAER,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEQ,UAAU,EAAE,GAAG,MAAMR,QAAAA,CAASC,MAAM,CAEzC;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,YAAA;YACNC,OAAAA,EAAS,yCAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOS,UAAAA;AACT;AAEA,eAAeC,OAAAA,GAAAA;AACb,IAAA,MAAM,EAAEV,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAES,OAAO,EAAE,GAAG,MAAMT,QAAAA,CAASC,MAAM,CAEtC;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,SAAA;YACNC,OAAAA,EAAS,8BAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOU,OAAAA;AACT;AAEA,eAAeC,oBAAoBC,cAAsB,EAAA;AACvD,IAAA,MAAM,EAAEZ,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEU,mBAAmB,EAAE,GAAG,MAAMV,QAAAA,CAASC,MAAM,CAElD;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,qBAAA;AACNC,YAAAA,OAAAA,EAAS,CAAC,0BAA0B,EAAEO,cAAAA,CAAe,CAAC,CAAC;YACvDZ,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOW,mBAAAA;AACT;AAEA,eAAeE,aAAAA,GAAAA;AACb,IAAA,MAAM,EAAEb,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEY,aAAa,EAAE,GAAG,MAAMZ,QAAAA,CAASC,MAAM,CAE5C;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,eAAA;YACNC,OAAAA,EAAS,CAAC,yDAAyD,CAAC;YACpEL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOa,aAAAA;AACT;;;;;;;;;"}
1
+ {"version":3,"file":"prompts.js","sources":["../src/prompts.ts"],"sourcesContent":["async function directory() {\n const { default: inquirer } = await import('inquirer');\n const { directory } = await inquirer.prompt<{\n directory: string;\n }>([\n {\n type: 'input',\n default: 'my-strapi-project',\n name: 'directory',\n message: 'What is the name of your project?',\n },\n ]);\n\n return directory;\n}\n\nasync function typescript() {\n const { default: inquirer } = await import('inquirer');\n const { useTypescript } = await inquirer.prompt<{\n useTypescript: boolean;\n }>([\n {\n type: 'confirm',\n name: 'useTypescript',\n message: 'Start with Typescript?',\n default: true,\n },\n ]);\n\n return useTypescript;\n}\n\nasync function example() {\n const { default: inquirer } = await import('inquirer');\n const { useExample } = await inquirer.prompt<{\n useExample: boolean;\n }>([\n {\n type: 'confirm',\n name: 'useExample',\n message: 'Start with an example structure & data?',\n default: false,\n },\n ]);\n\n return useExample;\n}\n\nasync function gitInit() {\n const { default: inquirer } = await import('inquirer');\n const { gitInit } = await inquirer.prompt<{\n gitInit: boolean;\n }>([\n {\n type: 'confirm',\n name: 'gitInit',\n message: 'Initialize a git repository?',\n default: true,\n },\n ]);\n\n return gitInit;\n}\n\nasync function installDependencies(packageManager: string) {\n const { default: inquirer } = await import('inquirer');\n const { installDependencies } = await inquirer.prompt<{\n installDependencies: boolean;\n }>([\n {\n type: 'confirm',\n name: 'installDependencies',\n message: `Install dependencies with ${packageManager}?`,\n default: true,\n },\n ]);\n\n return installDependencies;\n}\n\nexport { directory, typescript, example, gitInit, installDependencies };\n"],"names":["directory","default","inquirer","prompt","type","name","message","typescript","useTypescript","example","useExample","gitInit","installDependencies","packageManager"],"mappings":";;AAAA,eAAeA,SAAAA,GAAAA;AACb,IAAA,MAAM,EAAEC,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEF,SAAS,EAAE,GAAG,MAAME,QAAAA,CAASC,MAAM,CAExC;AACD,QAAA;YACEC,IAAAA,EAAM,OAAA;YACNH,OAAAA,EAAS,mBAAA;YACTI,IAAAA,EAAM,WAAA;YACNC,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAON,SAAAA;AACT;AAEA,eAAeO,UAAAA,GAAAA;AACb,IAAA,MAAM,EAAEN,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEM,aAAa,EAAE,GAAG,MAAMN,QAAAA,CAASC,MAAM,CAE5C;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,eAAA;YACNC,OAAAA,EAAS,wBAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOO,aAAAA;AACT;AAEA,eAAeC,OAAAA,GAAAA;AACb,IAAA,MAAM,EAAER,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEQ,UAAU,EAAE,GAAG,MAAMR,QAAAA,CAASC,MAAM,CAEzC;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,YAAA;YACNC,OAAAA,EAAS,yCAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOS,UAAAA;AACT;AAEA,eAAeC,OAAAA,GAAAA;AACb,IAAA,MAAM,EAAEV,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAES,OAAO,EAAE,GAAG,MAAMT,QAAAA,CAASC,MAAM,CAEtC;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,SAAA;YACNC,OAAAA,EAAS,8BAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOU,OAAAA;AACT;AAEA,eAAeC,oBAAoBC,cAAsB,EAAA;AACvD,IAAA,MAAM,EAAEZ,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEU,mBAAmB,EAAE,GAAG,MAAMV,QAAAA,CAASC,MAAM,CAElD;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,qBAAA;AACNC,YAAAA,OAAAA,EAAS,CAAC,0BAA0B,EAAEO,cAAAA,CAAe,CAAC,CAAC;YACvDZ,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOW,mBAAAA;AACT;;;;;;;;"}
package/dist/prompts.mjs CHANGED
@@ -58,18 +58,6 @@ async function installDependencies(packageManager) {
58
58
  ]);
59
59
  return installDependencies;
60
60
  }
61
- async function enableABTests() {
62
- const { default: inquirer } = await import('inquirer');
63
- const { enableABTests } = await inquirer.prompt([
64
- {
65
- type: 'confirm',
66
- name: 'enableABTests',
67
- message: `Participate in anonymous A/B testing (to improve Strapi)?`,
68
- default: false
69
- }
70
- ]);
71
- return enableABTests;
72
- }
73
61
 
74
- export { directory, enableABTests, example, gitInit, installDependencies, typescript };
62
+ export { directory, example, gitInit, installDependencies, typescript };
75
63
  //# sourceMappingURL=prompts.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.mjs","sources":["../src/prompts.ts"],"sourcesContent":["async function directory() {\n const { default: inquirer } = await import('inquirer');\n const { directory } = await inquirer.prompt<{\n directory: string;\n }>([\n {\n type: 'input',\n default: 'my-strapi-project',\n name: 'directory',\n message: 'What is the name of your project?',\n },\n ]);\n\n return directory;\n}\n\nasync function typescript() {\n const { default: inquirer } = await import('inquirer');\n const { useTypescript } = await inquirer.prompt<{\n useTypescript: boolean;\n }>([\n {\n type: 'confirm',\n name: 'useTypescript',\n message: 'Start with Typescript?',\n default: true,\n },\n ]);\n\n return useTypescript;\n}\n\nasync function example() {\n const { default: inquirer } = await import('inquirer');\n const { useExample } = await inquirer.prompt<{\n useExample: boolean;\n }>([\n {\n type: 'confirm',\n name: 'useExample',\n message: 'Start with an example structure & data?',\n default: false,\n },\n ]);\n\n return useExample;\n}\n\nasync function gitInit() {\n const { default: inquirer } = await import('inquirer');\n const { gitInit } = await inquirer.prompt<{\n gitInit: boolean;\n }>([\n {\n type: 'confirm',\n name: 'gitInit',\n message: 'Initialize a git repository?',\n default: true,\n },\n ]);\n\n return gitInit;\n}\n\nasync function installDependencies(packageManager: string) {\n const { default: inquirer } = await import('inquirer');\n const { installDependencies } = await inquirer.prompt<{\n installDependencies: boolean;\n }>([\n {\n type: 'confirm',\n name: 'installDependencies',\n message: `Install dependencies with ${packageManager}?`,\n default: true,\n },\n ]);\n\n return installDependencies;\n}\n\nasync function enableABTests() {\n const { default: inquirer } = await import('inquirer');\n const { enableABTests } = await inquirer.prompt<{\n enableABTests: boolean;\n }>([\n {\n type: 'confirm',\n name: 'enableABTests',\n message: `Participate in anonymous A/B testing (to improve Strapi)?`,\n default: false,\n },\n ]);\n\n return enableABTests;\n}\n\nexport { directory, typescript, example, gitInit, installDependencies, enableABTests };\n"],"names":["directory","default","inquirer","prompt","type","name","message","typescript","useTypescript","example","useExample","gitInit","installDependencies","packageManager","enableABTests"],"mappings":"AAAA,eAAeA,SAAAA,GAAAA;AACb,IAAA,MAAM,EAAEC,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEF,SAAS,EAAE,GAAG,MAAME,QAAAA,CAASC,MAAM,CAExC;AACD,QAAA;YACEC,IAAAA,EAAM,OAAA;YACNH,OAAAA,EAAS,mBAAA;YACTI,IAAAA,EAAM,WAAA;YACNC,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAON,SAAAA;AACT;AAEA,eAAeO,UAAAA,GAAAA;AACb,IAAA,MAAM,EAAEN,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEM,aAAa,EAAE,GAAG,MAAMN,QAAAA,CAASC,MAAM,CAE5C;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,eAAA;YACNC,OAAAA,EAAS,wBAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOO,aAAAA;AACT;AAEA,eAAeC,OAAAA,GAAAA;AACb,IAAA,MAAM,EAAER,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEQ,UAAU,EAAE,GAAG,MAAMR,QAAAA,CAASC,MAAM,CAEzC;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,YAAA;YACNC,OAAAA,EAAS,yCAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOS,UAAAA;AACT;AAEA,eAAeC,OAAAA,GAAAA;AACb,IAAA,MAAM,EAAEV,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAES,OAAO,EAAE,GAAG,MAAMT,QAAAA,CAASC,MAAM,CAEtC;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,SAAA;YACNC,OAAAA,EAAS,8BAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOU,OAAAA;AACT;AAEA,eAAeC,oBAAoBC,cAAsB,EAAA;AACvD,IAAA,MAAM,EAAEZ,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEU,mBAAmB,EAAE,GAAG,MAAMV,QAAAA,CAASC,MAAM,CAElD;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,qBAAA;AACNC,YAAAA,OAAAA,EAAS,CAAC,0BAA0B,EAAEO,cAAAA,CAAe,CAAC,CAAC;YACvDZ,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOW,mBAAAA;AACT;AAEA,eAAeE,aAAAA,GAAAA;AACb,IAAA,MAAM,EAAEb,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEY,aAAa,EAAE,GAAG,MAAMZ,QAAAA,CAASC,MAAM,CAE5C;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,eAAA;YACNC,OAAAA,EAAS,CAAC,yDAAyD,CAAC;YACpEL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOa,aAAAA;AACT;;;;"}
1
+ {"version":3,"file":"prompts.mjs","sources":["../src/prompts.ts"],"sourcesContent":["async function directory() {\n const { default: inquirer } = await import('inquirer');\n const { directory } = await inquirer.prompt<{\n directory: string;\n }>([\n {\n type: 'input',\n default: 'my-strapi-project',\n name: 'directory',\n message: 'What is the name of your project?',\n },\n ]);\n\n return directory;\n}\n\nasync function typescript() {\n const { default: inquirer } = await import('inquirer');\n const { useTypescript } = await inquirer.prompt<{\n useTypescript: boolean;\n }>([\n {\n type: 'confirm',\n name: 'useTypescript',\n message: 'Start with Typescript?',\n default: true,\n },\n ]);\n\n return useTypescript;\n}\n\nasync function example() {\n const { default: inquirer } = await import('inquirer');\n const { useExample } = await inquirer.prompt<{\n useExample: boolean;\n }>([\n {\n type: 'confirm',\n name: 'useExample',\n message: 'Start with an example structure & data?',\n default: false,\n },\n ]);\n\n return useExample;\n}\n\nasync function gitInit() {\n const { default: inquirer } = await import('inquirer');\n const { gitInit } = await inquirer.prompt<{\n gitInit: boolean;\n }>([\n {\n type: 'confirm',\n name: 'gitInit',\n message: 'Initialize a git repository?',\n default: true,\n },\n ]);\n\n return gitInit;\n}\n\nasync function installDependencies(packageManager: string) {\n const { default: inquirer } = await import('inquirer');\n const { installDependencies } = await inquirer.prompt<{\n installDependencies: boolean;\n }>([\n {\n type: 'confirm',\n name: 'installDependencies',\n message: `Install dependencies with ${packageManager}?`,\n default: true,\n },\n ]);\n\n return installDependencies;\n}\n\nexport { directory, typescript, example, gitInit, installDependencies };\n"],"names":["directory","default","inquirer","prompt","type","name","message","typescript","useTypescript","example","useExample","gitInit","installDependencies","packageManager"],"mappings":"AAAA,eAAeA,SAAAA,GAAAA;AACb,IAAA,MAAM,EAAEC,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEF,SAAS,EAAE,GAAG,MAAME,QAAAA,CAASC,MAAM,CAExC;AACD,QAAA;YACEC,IAAAA,EAAM,OAAA;YACNH,OAAAA,EAAS,mBAAA;YACTI,IAAAA,EAAM,WAAA;YACNC,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAON,SAAAA;AACT;AAEA,eAAeO,UAAAA,GAAAA;AACb,IAAA,MAAM,EAAEN,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEM,aAAa,EAAE,GAAG,MAAMN,QAAAA,CAASC,MAAM,CAE5C;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,eAAA;YACNC,OAAAA,EAAS,wBAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOO,aAAAA;AACT;AAEA,eAAeC,OAAAA,GAAAA;AACb,IAAA,MAAM,EAAER,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEQ,UAAU,EAAE,GAAG,MAAMR,QAAAA,CAASC,MAAM,CAEzC;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,YAAA;YACNC,OAAAA,EAAS,yCAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOS,UAAAA;AACT;AAEA,eAAeC,OAAAA,GAAAA;AACb,IAAA,MAAM,EAAEV,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAES,OAAO,EAAE,GAAG,MAAMT,QAAAA,CAASC,MAAM,CAEtC;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,SAAA;YACNC,OAAAA,EAAS,8BAAA;YACTL,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOU,OAAAA;AACT;AAEA,eAAeC,oBAAoBC,cAAsB,EAAA;AACvD,IAAA,MAAM,EAAEZ,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,IAAA,MAAM,EAAEU,mBAAmB,EAAE,GAAG,MAAMV,QAAAA,CAASC,MAAM,CAElD;AACD,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,qBAAA;AACNC,YAAAA,OAAAA,EAAS,CAAC,0BAA0B,EAAEO,cAAAA,CAAe,CAAC,CAAC;YACvDZ,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;IAED,OAAOW,mBAAAA;AACT;;;;"}
package/dist/types.d.ts CHANGED
@@ -20,7 +20,6 @@ export interface Options {
20
20
  install?: boolean;
21
21
  example?: boolean;
22
22
  gitInit?: boolean;
23
- enableAbTests?: boolean;
24
23
  nonInteractive?: boolean;
25
24
  templateBranch?: string;
26
25
  templatePath?: string;
@@ -62,7 +61,6 @@ export interface Scope {
62
61
  useExample?: boolean;
63
62
  gitInit?: boolean;
64
63
  shouldCreateGrowthSsoTrial: boolean;
65
- isABTestEnabled: boolean;
66
64
  }
67
65
  export type ClientName = 'mysql' | 'postgres' | 'sqlite';
68
66
  export interface DatabaseInfo {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["export interface Options {\n useNpm?: boolean;\n usePnpm?: boolean;\n useYarn?: boolean;\n quickstart?: boolean;\n run?: boolean;\n dbclient?: DBClient;\n skipCloud?: boolean;\n skipDb?: boolean;\n dbhost?: string;\n dbport?: string;\n dbname?: string;\n dbusername?: string;\n dbpassword?: string;\n dbssl?: string;\n dbfile?: string;\n template?: string;\n typescript?: boolean;\n javascript?: boolean;\n install?: boolean;\n example?: boolean;\n gitInit?: boolean;\n enableAbTests?: 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 isABTestEnabled: 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":";;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
+ {"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 +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 enableAbTests?: 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 isABTestEnabled: 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":"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
+ {"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;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-strapi-app",
3
- "version": "5.41.1",
3
+ "version": "5.42.0",
4
4
  "description": "Generate a new Strapi application.",
5
5
  "keywords": [
6
6
  "create-strapi-app",
@@ -51,7 +51,7 @@
51
51
  "watch": "run -T rollup -c -w"
52
52
  },
53
53
  "dependencies": {
54
- "@strapi/cloud-cli": "5.41.1",
54
+ "@strapi/cloud-cli": "5.42.0",
55
55
  "async-retry": "1.3.3",
56
56
  "chalk": "4.1.2",
57
57
  "commander": "8.3.0",
@@ -70,8 +70,8 @@
70
70
  "@types/async-retry": "^1",
71
71
  "@types/fs-extra": "11.0.4",
72
72
  "@types/inquirer": "9.0.9",
73
- "eslint-config-custom": "5.41.1",
74
- "tsconfig": "5.41.1"
73
+ "eslint-config-custom": "5.42.0",
74
+ "tsconfig": "5.42.0"
75
75
  },
76
76
  "engines": {
77
77
  "node": ">=20.0.0 <=24.x.x",