create-strapi-app 5.48.1 → 5.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/create-strapi.d.ts.map +1 -1
  2. package/dist/create-strapi.js +60 -32
  3. package/dist/create-strapi.js.map +1 -1
  4. package/dist/create-strapi.mjs +22 -1
  5. package/dist/create-strapi.mjs.map +1 -1
  6. package/dist/index.js +21 -13
  7. package/dist/index.js.map +1 -1
  8. package/dist/types.d.ts +2 -0
  9. package/dist/types.d.ts.map +1 -1
  10. package/dist/types.js.map +1 -1
  11. package/dist/types.mjs.map +1 -1
  12. package/dist/utils/check-install-path.js +10 -5
  13. package/dist/utils/check-install-path.js.map +1 -1
  14. package/dist/utils/check-requirements.d.ts.map +1 -1
  15. package/dist/utils/check-requirements.js +12 -6
  16. package/dist/utils/check-requirements.js.map +1 -1
  17. package/dist/utils/check-requirements.mjs +2 -1
  18. package/dist/utils/check-requirements.mjs.map +1 -1
  19. package/dist/utils/dot-env.d.ts.map +1 -1
  20. package/dist/utils/dot-env.js +9 -2
  21. package/dist/utils/dot-env.js.map +1 -1
  22. package/dist/utils/dot-env.mjs +2 -0
  23. package/dist/utils/dot-env.mjs.map +1 -1
  24. package/dist/utils/get-package-manager-args.d.ts.map +1 -1
  25. package/dist/utils/get-package-manager-args.js +7 -2
  26. package/dist/utils/get-package-manager-args.js.map +1 -1
  27. package/dist/utils/git.js +10 -6
  28. package/dist/utils/git.js.map +1 -1
  29. package/dist/utils/install-id.js +6 -2
  30. package/dist/utils/install-id.js.map +1 -1
  31. package/dist/utils/logger.js +11 -7
  32. package/dist/utils/logger.js.map +1 -1
  33. package/dist/utils/package-json.d.ts.map +1 -1
  34. package/dist/utils/package-json.js +27 -3
  35. package/dist/utils/package-json.js.map +1 -1
  36. package/dist/utils/package-json.mjs +23 -3
  37. package/dist/utils/package-json.mjs.map +1 -1
  38. package/dist/utils/parse-to-chalk.js +11 -7
  39. package/dist/utils/parse-to-chalk.js.map +1 -1
  40. package/dist/utils/pnpm-config.d.ts +18 -0
  41. package/dist/utils/pnpm-config.d.ts.map +1 -0
  42. package/dist/utils/pnpm-config.js +113 -0
  43. package/dist/utils/pnpm-config.js.map +1 -0
  44. package/dist/utils/pnpm-config.mjs +96 -0
  45. package/dist/utils/pnpm-config.mjs.map +1 -0
  46. package/dist/utils/template.js +17 -10
  47. package/dist/utils/template.js.map +1 -1
  48. package/dist/utils/usage.js +10 -5
  49. package/dist/utils/usage.js.map +1 -1
  50. package/package.json +5 -5
  51. package/templates/example/config/admin.ts +4 -4
  52. package/templates/example/config/api.ts +4 -0
  53. package/templates/example/config/database.ts +11 -3
  54. package/templates/example/config/plugins.ts +40 -1
  55. package/templates/example/config/server.ts +4 -1
  56. package/templates/example/tsconfig.json +1 -1
  57. package/templates/example-js/config/api.js +4 -0
  58. package/templates/example-js/config/plugins.js +40 -1
  59. package/templates/vanilla/config/admin.ts +4 -4
  60. package/templates/vanilla/config/api.ts +4 -0
  61. package/templates/vanilla/config/database.ts +11 -3
  62. package/templates/vanilla/config/plugins.ts +40 -1
  63. package/templates/vanilla/config/server.ts +4 -1
  64. package/templates/vanilla/tsconfig.json +1 -1
  65. package/templates/vanilla-js/config/api.js +4 -0
  66. package/templates/vanilla-js/config/plugins.js +40 -1
@@ -1 +1 @@
1
- {"version":3,"file":"create-strapi.d.ts","sourceRoot":"","sources":["../src/create-strapi.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAwCrC,iBAAe,YAAY,CAAC,KAAK,EAAE,KAAK,iBAUvC;AAoQD,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"create-strapi.d.ts","sourceRoot":"","sources":["../src/create-strapi.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA0DrC,iBAAe,YAAY,CAAC,KAAK,EAAE,KAAK,iBAUvC;AAyQD,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -10,12 +10,20 @@ var template = require('./utils/template.js');
10
10
  var git = require('./utils/git.js');
11
11
  var usage = require('./utils/usage.js');
12
12
  var packageJson = require('./utils/package-json.js');
13
+ var pnpmConfig = require('./utils/pnpm-config.js');
13
14
  var dotEnv = require('./utils/dot-env.js');
14
15
  var types = require('./types.js');
15
16
  var logger = require('./utils/logger.js');
16
17
  var gitignore = require('./utils/gitignore.js');
17
18
  var getPackageManagerArgs = require('./utils/get-package-manager-args.js');
18
19
 
20
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
21
+
22
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
23
+ var execa__default = /*#__PURE__*/_interopDefault(execa);
24
+ var fse__default = /*#__PURE__*/_interopDefault(fse);
25
+ var semver__default = /*#__PURE__*/_interopDefault(semver);
26
+
19
27
  const yarnNodeModulesConfig = 'nodeLinker: node-modules\n';
20
28
  const getUserAgentPackageManagerVersion = (packageManager)=>{
21
29
  const userAgent = process.env.npm_config_user_agent ?? '';
@@ -24,7 +32,7 @@ const getUserAgentPackageManagerVersion = (packageManager)=>{
24
32
  if (name !== packageManager || version === undefined) {
25
33
  return null;
26
34
  }
27
- return semver.coerce(version)?.version ?? null;
35
+ return semver__default.default.coerce(version)?.version ?? null;
28
36
  };
29
37
  const shouldWriteYarnNodeModulesConfig = async (packageManager)=>{
30
38
  if (packageManager !== 'yarn') {
@@ -32,23 +40,37 @@ const shouldWriteYarnNodeModulesConfig = async (packageManager)=>{
32
40
  }
33
41
  const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);
34
42
  if (userAgentVersion) {
35
- return semver.gte(userAgentVersion, '3.0.0');
43
+ return semver__default.default.gte(userAgentVersion, '3.0.0');
36
44
  }
37
45
  try {
38
46
  const packageManagerVersion = await getPackageManagerArgs.getPackageManagerVersion(packageManager);
39
- const normalizedVersion = semver.coerce(packageManagerVersion)?.version;
40
- return normalizedVersion ? semver.gte(normalizedVersion, '3.0.0') : false;
47
+ const normalizedVersion = semver__default.default.coerce(packageManagerVersion)?.version;
48
+ return normalizedVersion ? semver__default.default.gte(normalizedVersion, '3.0.0') : false;
41
49
  } catch {
42
50
  return false;
43
51
  }
44
52
  };
53
+ const resolvePnpmVersion = async (packageManager)=>{
54
+ if (packageManager !== 'pnpm') {
55
+ return null;
56
+ }
57
+ const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);
58
+ if (userAgentVersion) {
59
+ return userAgentVersion;
60
+ }
61
+ try {
62
+ return await getPackageManagerArgs.getPackageManagerVersion(packageManager);
63
+ } catch {
64
+ return null;
65
+ }
66
+ };
45
67
  async function createStrapi(scope) {
46
68
  const { rootPath } = scope;
47
69
  try {
48
- await fse.ensureDir(rootPath);
70
+ await fse__default.default.ensureDir(rootPath);
49
71
  await createApp(scope);
50
72
  } catch (error) {
51
- await fse.remove(rootPath);
73
+ await fse__default.default.remove(rootPath);
52
74
  throw error;
53
75
  }
54
76
  }
@@ -59,7 +81,7 @@ async function createApp(scope) {
59
81
  event: 'willCreateProject',
60
82
  scope
61
83
  });
62
- logger.logger.title('Strapi', `Creating a new application at ${chalk.green(rootPath)}`);
84
+ logger.logger.title('Strapi', `Creating a new application at ${chalk__default.default.green(rootPath)}`);
63
85
  if (!isQuickstart) {
64
86
  await usage.trackUsage({
65
87
  event: 'didChooseCustomDatabase',
@@ -77,12 +99,12 @@ async function createApp(scope) {
77
99
  templateName = `${templateName}-js`;
78
100
  }
79
101
  const internalTemplatePath = path.join(__dirname, '../templates', templateName);
80
- if (await fse.exists(internalTemplatePath)) {
81
- await fse.copy(internalTemplatePath, rootPath);
102
+ if (await fse__default.default.exists(internalTemplatePath)) {
103
+ await fse__default.default.copy(internalTemplatePath, rootPath);
82
104
  }
83
105
  } else {
84
106
  try {
85
- logger.logger.info(`${chalk.cyan('Installing template')} ${template$1}`);
107
+ logger.logger.info(`${chalk__default.default.cyan('Installing template')} ${template$1}`);
86
108
  await template.copyTemplate(scope, rootPath);
87
109
  logger.logger.success('Template copied successfully.');
88
110
  } catch (error) {
@@ -91,33 +113,39 @@ async function createApp(scope) {
91
113
  }
92
114
  throw error;
93
115
  }
94
- if (!fse.existsSync(path.join(rootPath, 'package.json'))) {
95
- logger.logger.fatal(`Missing ${chalk.bold('package.json')} in template`);
116
+ if (!fse__default.default.existsSync(path.join(rootPath, 'package.json'))) {
117
+ logger.logger.fatal(`Missing ${chalk__default.default.bold('package.json')} in template`);
96
118
  }
97
119
  }
98
120
  await usage.trackUsage({
99
121
  event: 'didCopyProjectFiles',
100
122
  scope
101
123
  });
124
+ const pnpmVersion = await resolvePnpmVersion(packageManager);
125
+ const scopeWithPnpmVersion = {
126
+ ...scope,
127
+ pnpmVersion
128
+ };
102
129
  try {
103
- await packageJson.createPackageJSON(scope);
130
+ await packageJson.createPackageJSON(scopeWithPnpmVersion);
104
131
  await usage.trackUsage({
105
132
  event: 'didWritePackageJSON',
106
133
  scope
107
134
  });
108
135
  // ensure node_modules is created
109
- await fse.ensureDir(path.join(rootPath, 'node_modules'));
136
+ await fse__default.default.ensureDir(path.join(rootPath, 'node_modules'));
110
137
  // create config/database
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);
138
+ await fse__default.default.writeFile(path.join(rootPath, '.env'), dotEnv.generateDotEnv(scope));
139
+ if (await shouldWriteYarnNodeModulesConfig(packageManager) && !await fse__default.default.pathExists(path.join(rootPath, '.yarnrc.yml'))) {
140
+ await fse__default.default.writeFile(path.join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);
114
141
  }
142
+ await pnpmConfig.writePnpmWorkspaceConfig(scopeWithPnpmVersion, pnpmVersion);
115
143
  await usage.trackUsage({
116
144
  event: 'didCopyConfigurationFiles',
117
145
  scope
118
146
  });
119
147
  } catch (err) {
120
- await fse.remove(rootPath);
148
+ await fse__default.default.remove(rootPath);
121
149
  throw err;
122
150
  }
123
151
  // Create and save a growth sso trial license
@@ -127,7 +155,7 @@ async function createApp(scope) {
127
155
  strapiVersion: scope.strapiVersion
128
156
  });
129
157
  if (data?.license) {
130
- fse.writeFile(path.join(rootPath, 'license.txt'), data.license);
158
+ fse__default.default.writeFile(path.join(rootPath, 'license.txt'), data.license);
131
159
  logger.logger.log('Your 30 days trial will be applied automatically to your project. Enjoy!');
132
160
  }
133
161
  } catch (error) {
@@ -136,7 +164,7 @@ async function createApp(scope) {
136
164
  }
137
165
  if (installDependencies) {
138
166
  try {
139
- logger.logger.title('deps', `Installing dependencies with ${chalk.cyan(packageManager)}`);
167
+ logger.logger.title('deps', `Installing dependencies with ${chalk__default.default.cyan(packageManager)}`);
140
168
  await usage.trackUsage({
141
169
  event: 'willInstallProjectDependencies',
142
170
  scope
@@ -155,13 +183,13 @@ async function createApp(scope) {
155
183
  error: stderr.slice(-1024)
156
184
  });
157
185
  logger.logger.fatal([
158
- chalk.bold('Oh, it seems that you encountered an error while installing dependencies in your project'),
186
+ chalk__default.default.bold('Oh, it seems that you encountered an error while installing dependencies in your project'),
159
187
  '',
160
188
  `Don't give up, your project was created correctly`,
161
189
  '',
162
190
  `Fix the issues mentioned in the installation errors and try to run the following command:`,
163
191
  '',
164
- `cd ${chalk.green(rootPath)} && ${chalk.cyan(packageManager)} install`
192
+ `cd ${chalk__default.default.green(rootPath)} && ${chalk__default.default.cyan(packageManager)} install`
165
193
  ]);
166
194
  }
167
195
  }
@@ -170,8 +198,8 @@ async function createApp(scope) {
170
198
  scope
171
199
  });
172
200
  // make sure a gitignore file is created regardless of the user using git or not
173
- if (!await fse.exists(path.join(rootPath, '.gitignore'))) {
174
- await fse.writeFile(path.join(rootPath, '.gitignore'), gitignore.gitIgnore);
201
+ if (!await fse__default.default.exists(path.join(rootPath, '.gitignore'))) {
202
+ await fse__default.default.writeFile(path.join(rootPath, '.gitignore'), gitignore.gitIgnore);
175
203
  }
176
204
  // Init git
177
205
  if (gitInit) {
@@ -180,10 +208,10 @@ async function createApp(scope) {
180
208
  logger.logger.success('Initialized a git repository.');
181
209
  }
182
210
  if (shouldRunSeed) {
183
- if (await fse.exists(path.join(rootPath, 'scripts/seed.js'))) {
211
+ if (await fse__default.default.exists(path.join(rootPath, 'scripts/seed.js'))) {
184
212
  logger.logger.title('Seed', 'Seeding your database with sample data');
185
213
  try {
186
- await execa(packageManager, [
214
+ await execa__default.default(packageManager, [
187
215
  'run',
188
216
  'seed:example'
189
217
  ], {
@@ -196,7 +224,7 @@ async function createApp(scope) {
196
224
  }
197
225
  }
198
226
  }
199
- const cmd = chalk.cyan(`${packageManager} run`);
227
+ const cmd = chalk__default.default.cyan(`${packageManager} run`);
200
228
  logger.logger.title('Strapi', `Your application was created!`);
201
229
  logger.logger.log([
202
230
  'Available commands in your project:',
@@ -229,15 +257,15 @@ async function createApp(scope) {
229
257
  logger.logger.log([
230
258
  'To get started run',
231
259
  '',
232
- `${chalk.cyan('cd')} ${rootPath}`,
260
+ `${chalk__default.default.cyan('cd')} ${rootPath}`,
233
261
  !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`
234
262
  ]);
235
263
  } else {
236
264
  logger.logger.log([
237
265
  'To get started run',
238
266
  '',
239
- `${chalk.cyan('cd')} ${rootPath}`,
240
- `${chalk.cyan(packageManager)} install`,
267
+ `${chalk__default.default.cyan('cd')} ${rootPath}`,
268
+ `${chalk__default.default.cyan(packageManager)} install`,
241
269
  !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`
242
270
  ]);
243
271
  }
@@ -248,7 +276,7 @@ async function createApp(scope) {
248
276
  event: 'willStartServer',
249
277
  scope
250
278
  });
251
- await execa(packageManager, [
279
+ await execa__default.default(packageManager, [
252
280
  'run',
253
281
  'develop'
254
282
  ], {
@@ -288,7 +316,7 @@ async function runInstall({ rootPath, packageManager }) {
288
316
  NODE_ENV: 'development'
289
317
  }
290
318
  };
291
- const proc = execa(packageManager, cmdArgs, options);
319
+ const proc = execa__default.default(packageManager, cmdArgs, options);
292
320
  return proc;
293
321
  }
294
322
 
@@ -1 +1 @@
1
- {"version":3,"file":"create-strapi.js","sources":["../src/create-strapi.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport chalk from 'chalk';\nimport execa from 'execa';\nimport fse from 'fs-extra';\nimport semver from 'semver';\n\nimport { createGrowthSsoTrial } from '@strapi/cloud-cli';\n\nimport { copyTemplate } from './utils/template';\nimport { tryGitInit } from './utils/git';\nimport { trackUsage } from './utils/usage';\nimport { createPackageJSON } from './utils/package-json';\nimport { generateDotEnv } from './utils/dot-env';\nimport { isStderrError } from './types';\n\nimport type { Scope } from './types';\nimport { logger } from './utils/logger';\nimport { gitIgnore } from './utils/gitignore';\nimport { getInstallArgs, getPackageManagerVersion } from './utils/get-package-manager-args';\n\nconst yarnNodeModulesConfig = 'nodeLinker: node-modules\\n';\n\nconst getUserAgentPackageManagerVersion = (packageManager: Scope['packageManager']) => {\n const userAgent = process.env.npm_config_user_agent ?? '';\n const [agent] = userAgent.split(' ');\n const [name, version] = agent.split('/');\n\n if (name !== packageManager || version === undefined) {\n return null;\n }\n\n return semver.coerce(version)?.version ?? null;\n};\n\nconst shouldWriteYarnNodeModulesConfig = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'yarn') {\n return false;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return semver.gte(userAgentVersion, '3.0.0');\n }\n\n try {\n const packageManagerVersion = await getPackageManagerVersion(packageManager);\n const normalizedVersion = semver.coerce(packageManagerVersion)?.version;\n\n return normalizedVersion ? semver.gte(normalizedVersion, '3.0.0') : false;\n } catch {\n return false;\n }\n};\n\nasync function createStrapi(scope: Scope) {\n const { rootPath } = scope;\n try {\n await fse.ensureDir(rootPath);\n await createApp(scope);\n } catch (error) {\n await fse.remove(rootPath);\n\n throw error;\n }\n}\n\nasync function createApp(scope: Scope) {\n const {\n rootPath,\n useTypescript,\n useExample,\n installDependencies,\n isQuickstart,\n template,\n packageManager,\n gitInit,\n runApp,\n } = scope;\n\n const shouldRunSeed = useExample && installDependencies;\n\n await trackUsage({ event: 'willCreateProject', scope });\n\n logger.title('Strapi', `Creating a new application at ${chalk.green(rootPath)}`);\n\n if (!isQuickstart) {\n await trackUsage({ event: 'didChooseCustomDatabase', scope });\n } else {\n await trackUsage({ event: 'didChooseQuickstart', scope });\n }\n\n if (!template) {\n let templateName = useExample ? 'example' : 'vanilla';\n\n if (!useTypescript) {\n templateName = `${templateName}-js`;\n }\n\n const internalTemplatePath = join(__dirname, '../templates', templateName);\n if (await fse.exists(internalTemplatePath)) {\n await fse.copy(internalTemplatePath, rootPath);\n }\n } else {\n try {\n logger.info(`${chalk.cyan('Installing template')} ${template}`);\n\n await copyTemplate(scope, rootPath);\n\n logger.success('Template copied successfully.');\n } catch (error) {\n if (error instanceof Error) {\n logger.fatal(`Template installation failed: ${error.message}`);\n }\n\n throw error;\n }\n\n if (!fse.existsSync(join(rootPath, 'package.json'))) {\n logger.fatal(`Missing ${chalk.bold('package.json')} in template`);\n }\n }\n\n await trackUsage({ event: 'didCopyProjectFiles', scope });\n\n try {\n await createPackageJSON(scope);\n\n await trackUsage({ event: 'didWritePackageJSON', scope });\n\n // ensure node_modules is created\n await fse.ensureDir(join(rootPath, 'node_modules'));\n\n // create config/database\n await fse.writeFile(join(rootPath, '.env'), generateDotEnv(scope));\n\n if (\n (await shouldWriteYarnNodeModulesConfig(packageManager)) &&\n !(await fse.pathExists(join(rootPath, '.yarnrc.yml')))\n ) {\n await fse.writeFile(join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);\n }\n\n await trackUsage({ event: 'didCopyConfigurationFiles', scope });\n } catch (err) {\n await fse.remove(rootPath);\n throw err;\n }\n\n // Create and save a growth sso trial license\n if (scope.shouldCreateGrowthSsoTrial) {\n try {\n const data = await createGrowthSsoTrial({ strapiVersion: scope.strapiVersion });\n\n if (data?.license) {\n fse.writeFile(join(rootPath, 'license.txt'), data.license);\n logger.log('Your 30 days trial will be applied automatically to your project. Enjoy!');\n }\n } catch (error) {\n logger.error('Error while trying to create your trial. Please try again later.');\n }\n }\n\n if (installDependencies) {\n try {\n logger.title('deps', `Installing dependencies with ${chalk.cyan(packageManager)}`);\n\n await trackUsage({ event: 'willInstallProjectDependencies', scope });\n\n await runInstall(scope);\n\n await trackUsage({ event: 'didInstallProjectDependencies', scope });\n\n logger.success(`Dependencies installed`);\n } catch (error) {\n const stderr = isStderrError(error) ? error.stderr : '';\n\n await trackUsage({\n event: 'didNotInstallProjectDependencies',\n scope,\n error: stderr.slice(-1024),\n });\n\n logger.fatal([\n chalk.bold(\n 'Oh, it seems that you encountered an error while installing dependencies in your project'\n ),\n '',\n `Don't give up, your project was created correctly`,\n '',\n `Fix the issues mentioned in the installation errors and try to run the following command:`,\n '',\n `cd ${chalk.green(rootPath)} && ${chalk.cyan(packageManager)} install`,\n ]);\n }\n }\n\n await trackUsage({ event: 'didCreateProject', scope });\n\n // make sure a gitignore file is created regardless of the user using git or not\n if (!(await fse.exists(join(rootPath, '.gitignore')))) {\n await fse.writeFile(join(rootPath, '.gitignore'), gitIgnore);\n }\n\n // Init git\n if (gitInit) {\n logger.title('git', 'Initializing git repository.');\n\n await tryGitInit(rootPath);\n\n logger.success('Initialized a git repository.');\n }\n\n if (shouldRunSeed) {\n if (await fse.exists(join(rootPath, 'scripts/seed.js'))) {\n logger.title('Seed', 'Seeding your database with sample data');\n\n try {\n await execa(packageManager, ['run', 'seed:example'], {\n stdio: 'inherit',\n cwd: rootPath,\n });\n logger.success('Sample data added to your database');\n } catch (error) {\n logger.error('Failed to seed your database. Skipping');\n }\n }\n }\n\n const cmd = chalk.cyan(`${packageManager} run`);\n\n logger.title('Strapi', `Your application was created!`);\n\n logger.log([\n 'Available commands in your project:',\n '',\n 'Start Strapi in watch mode. (Changes in Strapi project files will trigger a server restart)',\n `${cmd} develop`,\n '',\n 'Start Strapi without watch mode.',\n `${cmd} start`,\n '',\n 'Build Strapi admin panel.',\n `${cmd} build`,\n '',\n 'Deploy Strapi project.',\n `${cmd} deploy`,\n '',\n ]);\n\n if (useExample) {\n logger.log(['Seed your database with sample data.', `${cmd} seed:example`, '']);\n }\n\n logger.log(['Display all available commands.', `${cmd} strapi\\n`]);\n\n if (installDependencies) {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n } else {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n `${chalk.cyan(packageManager)} install`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n }\n\n if (runApp && installDependencies) {\n logger.title('Run', 'Running your Strapi application');\n\n try {\n await trackUsage({ event: 'willStartServer', scope });\n\n await execa(packageManager, ['run', 'develop'], {\n stdio: 'inherit',\n cwd: rootPath,\n env: {\n FORCE_COLOR: '1',\n },\n });\n } catch (error) {\n if (typeof error === 'string' || error instanceof Error) {\n await trackUsage({\n event: 'didNotStartServer',\n scope,\n error,\n });\n }\n\n logger.fatal('Failed to start your Strapi application');\n }\n }\n}\n\nasync function runInstall({ rootPath, packageManager }: Scope) {\n // include same cwd and env to ensure version check returns same version we use below\n const { envArgs, cmdArgs } = await getInstallArgs(packageManager, {\n cwd: rootPath,\n env: {\n ...process.env,\n NODE_ENV: 'development',\n },\n });\n\n const options: execa.Options = {\n cwd: rootPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n ...envArgs,\n NODE_ENV: 'development',\n },\n };\n\n const proc = execa(packageManager, cmdArgs, options);\n\n return proc;\n}\n\nexport { createStrapi };\n"],"names":["yarnNodeModulesConfig","getUserAgentPackageManagerVersion","packageManager","userAgent","process","env","npm_config_user_agent","agent","split","name","version","undefined","semver","coerce","shouldWriteYarnNodeModulesConfig","userAgentVersion","gte","packageManagerVersion","getPackageManagerVersion","normalizedVersion","createStrapi","scope","rootPath","fse","ensureDir","createApp","error","remove","useTypescript","useExample","installDependencies","isQuickstart","template","gitInit","runApp","shouldRunSeed","trackUsage","event","logger","title","chalk","green","templateName","internalTemplatePath","join","__dirname","exists","copy","info","cyan","copyTemplate","success","Error","fatal","message","existsSync","bold","createPackageJSON","writeFile","generateDotEnv","pathExists","err","shouldCreateGrowthSsoTrial","data","createGrowthSsoTrial","strapiVersion","license","log","runInstall","stderr","isStderrError","slice","gitIgnore","tryGitInit","execa","stdio","cwd","cmd","FORCE_COLOR","envArgs","cmdArgs","getInstallArgs","NODE_ENV","options","proc"],"mappings":"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"}
1
+ {"version":3,"file":"create-strapi.js","sources":["../src/create-strapi.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport chalk from 'chalk';\nimport execa from 'execa';\nimport fse from 'fs-extra';\nimport semver from 'semver';\n\nimport { createGrowthSsoTrial } from '@strapi/cloud-cli';\n\nimport { copyTemplate } from './utils/template';\nimport { tryGitInit } from './utils/git';\nimport { trackUsage } from './utils/usage';\nimport { createPackageJSON } from './utils/package-json';\nimport { writePnpmWorkspaceConfig } from './utils/pnpm-config';\nimport { generateDotEnv } from './utils/dot-env';\nimport { isStderrError } from './types';\n\nimport type { Scope } from './types';\nimport { logger } from './utils/logger';\nimport { gitIgnore } from './utils/gitignore';\nimport { getInstallArgs, getPackageManagerVersion } from './utils/get-package-manager-args';\n\nconst yarnNodeModulesConfig = 'nodeLinker: node-modules\\n';\n\nconst getUserAgentPackageManagerVersion = (packageManager: Scope['packageManager']) => {\n const userAgent = process.env.npm_config_user_agent ?? '';\n const [agent] = userAgent.split(' ');\n const [name, version] = agent.split('/');\n\n if (name !== packageManager || version === undefined) {\n return null;\n }\n\n return semver.coerce(version)?.version ?? null;\n};\n\nconst shouldWriteYarnNodeModulesConfig = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'yarn') {\n return false;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return semver.gte(userAgentVersion, '3.0.0');\n }\n\n try {\n const packageManagerVersion = await getPackageManagerVersion(packageManager);\n const normalizedVersion = semver.coerce(packageManagerVersion)?.version;\n\n return normalizedVersion ? semver.gte(normalizedVersion, '3.0.0') : false;\n } catch {\n return false;\n }\n};\n\nconst resolvePnpmVersion = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'pnpm') {\n return null;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return userAgentVersion;\n }\n\n try {\n return await getPackageManagerVersion(packageManager);\n } catch {\n return null;\n }\n};\n\nasync function createStrapi(scope: Scope) {\n const { rootPath } = scope;\n try {\n await fse.ensureDir(rootPath);\n await createApp(scope);\n } catch (error) {\n await fse.remove(rootPath);\n\n throw error;\n }\n}\n\nasync function createApp(scope: Scope) {\n const {\n rootPath,\n useTypescript,\n useExample,\n installDependencies,\n isQuickstart,\n template,\n packageManager,\n gitInit,\n runApp,\n } = scope;\n\n const shouldRunSeed = useExample && installDependencies;\n\n await trackUsage({ event: 'willCreateProject', scope });\n\n logger.title('Strapi', `Creating a new application at ${chalk.green(rootPath)}`);\n\n if (!isQuickstart) {\n await trackUsage({ event: 'didChooseCustomDatabase', scope });\n } else {\n await trackUsage({ event: 'didChooseQuickstart', scope });\n }\n\n if (!template) {\n let templateName = useExample ? 'example' : 'vanilla';\n\n if (!useTypescript) {\n templateName = `${templateName}-js`;\n }\n\n const internalTemplatePath = join(__dirname, '../templates', templateName);\n if (await fse.exists(internalTemplatePath)) {\n await fse.copy(internalTemplatePath, rootPath);\n }\n } else {\n try {\n logger.info(`${chalk.cyan('Installing template')} ${template}`);\n\n await copyTemplate(scope, rootPath);\n\n logger.success('Template copied successfully.');\n } catch (error) {\n if (error instanceof Error) {\n logger.fatal(`Template installation failed: ${error.message}`);\n }\n\n throw error;\n }\n\n if (!fse.existsSync(join(rootPath, 'package.json'))) {\n logger.fatal(`Missing ${chalk.bold('package.json')} in template`);\n }\n }\n\n await trackUsage({ event: 'didCopyProjectFiles', scope });\n\n const pnpmVersion = await resolvePnpmVersion(packageManager);\n const scopeWithPnpmVersion = { ...scope, pnpmVersion };\n\n try {\n await createPackageJSON(scopeWithPnpmVersion);\n\n await trackUsage({ event: 'didWritePackageJSON', scope });\n\n // ensure node_modules is created\n await fse.ensureDir(join(rootPath, 'node_modules'));\n\n // create config/database\n await fse.writeFile(join(rootPath, '.env'), generateDotEnv(scope));\n\n if (\n (await shouldWriteYarnNodeModulesConfig(packageManager)) &&\n !(await fse.pathExists(join(rootPath, '.yarnrc.yml')))\n ) {\n await fse.writeFile(join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);\n }\n\n await writePnpmWorkspaceConfig(scopeWithPnpmVersion, pnpmVersion);\n\n await trackUsage({ event: 'didCopyConfigurationFiles', scope });\n } catch (err) {\n await fse.remove(rootPath);\n throw err;\n }\n\n // Create and save a growth sso trial license\n if (scope.shouldCreateGrowthSsoTrial) {\n try {\n const data = await createGrowthSsoTrial({ strapiVersion: scope.strapiVersion });\n\n if (data?.license) {\n fse.writeFile(join(rootPath, 'license.txt'), data.license);\n logger.log('Your 30 days trial will be applied automatically to your project. Enjoy!');\n }\n } catch (error) {\n logger.error('Error while trying to create your trial. Please try again later.');\n }\n }\n\n if (installDependencies) {\n try {\n logger.title('deps', `Installing dependencies with ${chalk.cyan(packageManager)}`);\n\n await trackUsage({ event: 'willInstallProjectDependencies', scope });\n\n await runInstall(scope);\n\n await trackUsage({ event: 'didInstallProjectDependencies', scope });\n\n logger.success(`Dependencies installed`);\n } catch (error) {\n const stderr = isStderrError(error) ? error.stderr : '';\n\n await trackUsage({\n event: 'didNotInstallProjectDependencies',\n scope,\n error: stderr.slice(-1024),\n });\n\n logger.fatal([\n chalk.bold(\n 'Oh, it seems that you encountered an error while installing dependencies in your project'\n ),\n '',\n `Don't give up, your project was created correctly`,\n '',\n `Fix the issues mentioned in the installation errors and try to run the following command:`,\n '',\n `cd ${chalk.green(rootPath)} && ${chalk.cyan(packageManager)} install`,\n ]);\n }\n }\n\n await trackUsage({ event: 'didCreateProject', scope });\n\n // make sure a gitignore file is created regardless of the user using git or not\n if (!(await fse.exists(join(rootPath, '.gitignore')))) {\n await fse.writeFile(join(rootPath, '.gitignore'), gitIgnore);\n }\n\n // Init git\n if (gitInit) {\n logger.title('git', 'Initializing git repository.');\n\n await tryGitInit(rootPath);\n\n logger.success('Initialized a git repository.');\n }\n\n if (shouldRunSeed) {\n if (await fse.exists(join(rootPath, 'scripts/seed.js'))) {\n logger.title('Seed', 'Seeding your database with sample data');\n\n try {\n await execa(packageManager, ['run', 'seed:example'], {\n stdio: 'inherit',\n cwd: rootPath,\n });\n logger.success('Sample data added to your database');\n } catch (error) {\n logger.error('Failed to seed your database. Skipping');\n }\n }\n }\n\n const cmd = chalk.cyan(`${packageManager} run`);\n\n logger.title('Strapi', `Your application was created!`);\n\n logger.log([\n 'Available commands in your project:',\n '',\n 'Start Strapi in watch mode. (Changes in Strapi project files will trigger a server restart)',\n `${cmd} develop`,\n '',\n 'Start Strapi without watch mode.',\n `${cmd} start`,\n '',\n 'Build Strapi admin panel.',\n `${cmd} build`,\n '',\n 'Deploy Strapi project.',\n `${cmd} deploy`,\n '',\n ]);\n\n if (useExample) {\n logger.log(['Seed your database with sample data.', `${cmd} seed:example`, '']);\n }\n\n logger.log(['Display all available commands.', `${cmd} strapi\\n`]);\n\n if (installDependencies) {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n } else {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n `${chalk.cyan(packageManager)} install`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n }\n\n if (runApp && installDependencies) {\n logger.title('Run', 'Running your Strapi application');\n\n try {\n await trackUsage({ event: 'willStartServer', scope });\n\n await execa(packageManager, ['run', 'develop'], {\n stdio: 'inherit',\n cwd: rootPath,\n env: {\n FORCE_COLOR: '1',\n },\n });\n } catch (error) {\n if (typeof error === 'string' || error instanceof Error) {\n await trackUsage({\n event: 'didNotStartServer',\n scope,\n error,\n });\n }\n\n logger.fatal('Failed to start your Strapi application');\n }\n }\n}\n\nasync function runInstall({ rootPath, packageManager }: Scope) {\n // include same cwd and env to ensure version check returns same version we use below\n const { envArgs, cmdArgs } = await getInstallArgs(packageManager, {\n cwd: rootPath,\n env: {\n ...process.env,\n NODE_ENV: 'development',\n },\n });\n\n const options: execa.Options = {\n cwd: rootPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n ...envArgs,\n NODE_ENV: 'development',\n },\n };\n\n const proc = execa(packageManager, cmdArgs, options);\n\n return proc;\n}\n\nexport { createStrapi };\n"],"names":["yarnNodeModulesConfig","getUserAgentPackageManagerVersion","packageManager","userAgent","process","env","npm_config_user_agent","agent","split","name","version","undefined","semver","coerce","shouldWriteYarnNodeModulesConfig","userAgentVersion","gte","packageManagerVersion","getPackageManagerVersion","normalizedVersion","resolvePnpmVersion","createStrapi","scope","rootPath","fse","ensureDir","createApp","error","remove","useTypescript","useExample","installDependencies","isQuickstart","template","gitInit","runApp","shouldRunSeed","trackUsage","event","logger","title","chalk","green","templateName","internalTemplatePath","join","__dirname","exists","copy","info","cyan","copyTemplate","success","Error","fatal","message","existsSync","bold","pnpmVersion","scopeWithPnpmVersion","createPackageJSON","writeFile","generateDotEnv","pathExists","writePnpmWorkspaceConfig","err","shouldCreateGrowthSsoTrial","data","createGrowthSsoTrial","strapiVersion","license","log","runInstall","stderr","isStderrError","slice","gitIgnore","tryGitInit","execa","stdio","cwd","cmd","FORCE_COLOR","envArgs","cmdArgs","getInstallArgs","NODE_ENV","options","proc"],"mappings":"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"}
@@ -8,6 +8,7 @@ import { copyTemplate } from './utils/template.mjs';
8
8
  import { tryGitInit } from './utils/git.mjs';
9
9
  import { trackUsage } from './utils/usage.mjs';
10
10
  import { createPackageJSON } from './utils/package-json.mjs';
11
+ import { writePnpmWorkspaceConfig } from './utils/pnpm-config.mjs';
11
12
  import { generateDotEnv } from './utils/dot-env.mjs';
12
13
  import { isStderrError } from './types.mjs';
13
14
  import { logger } from './utils/logger.mjs';
@@ -40,6 +41,20 @@ const shouldWriteYarnNodeModulesConfig = async (packageManager)=>{
40
41
  return false;
41
42
  }
42
43
  };
44
+ const resolvePnpmVersion = async (packageManager)=>{
45
+ if (packageManager !== 'pnpm') {
46
+ return null;
47
+ }
48
+ const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);
49
+ if (userAgentVersion) {
50
+ return userAgentVersion;
51
+ }
52
+ try {
53
+ return await getPackageManagerVersion(packageManager);
54
+ } catch {
55
+ return null;
56
+ }
57
+ };
43
58
  async function createStrapi(scope) {
44
59
  const { rootPath } = scope;
45
60
  try {
@@ -97,8 +112,13 @@ async function createApp(scope) {
97
112
  event: 'didCopyProjectFiles',
98
113
  scope
99
114
  });
115
+ const pnpmVersion = await resolvePnpmVersion(packageManager);
116
+ const scopeWithPnpmVersion = {
117
+ ...scope,
118
+ pnpmVersion
119
+ };
100
120
  try {
101
- await createPackageJSON(scope);
121
+ await createPackageJSON(scopeWithPnpmVersion);
102
122
  await trackUsage({
103
123
  event: 'didWritePackageJSON',
104
124
  scope
@@ -110,6 +130,7 @@ async function createApp(scope) {
110
130
  if (await shouldWriteYarnNodeModulesConfig(packageManager) && !await fse.pathExists(join(rootPath, '.yarnrc.yml'))) {
111
131
  await fse.writeFile(join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);
112
132
  }
133
+ await writePnpmWorkspaceConfig(scopeWithPnpmVersion, pnpmVersion);
113
134
  await trackUsage({
114
135
  event: 'didCopyConfigurationFiles',
115
136
  scope
@@ -1 +1 @@
1
- {"version":3,"file":"create-strapi.mjs","sources":["../src/create-strapi.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport chalk from 'chalk';\nimport execa from 'execa';\nimport fse from 'fs-extra';\nimport semver from 'semver';\n\nimport { createGrowthSsoTrial } from '@strapi/cloud-cli';\n\nimport { copyTemplate } from './utils/template';\nimport { tryGitInit } from './utils/git';\nimport { trackUsage } from './utils/usage';\nimport { createPackageJSON } from './utils/package-json';\nimport { generateDotEnv } from './utils/dot-env';\nimport { isStderrError } from './types';\n\nimport type { Scope } from './types';\nimport { logger } from './utils/logger';\nimport { gitIgnore } from './utils/gitignore';\nimport { getInstallArgs, getPackageManagerVersion } from './utils/get-package-manager-args';\n\nconst yarnNodeModulesConfig = 'nodeLinker: node-modules\\n';\n\nconst getUserAgentPackageManagerVersion = (packageManager: Scope['packageManager']) => {\n const userAgent = process.env.npm_config_user_agent ?? '';\n const [agent] = userAgent.split(' ');\n const [name, version] = agent.split('/');\n\n if (name !== packageManager || version === undefined) {\n return null;\n }\n\n return semver.coerce(version)?.version ?? null;\n};\n\nconst shouldWriteYarnNodeModulesConfig = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'yarn') {\n return false;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return semver.gte(userAgentVersion, '3.0.0');\n }\n\n try {\n const packageManagerVersion = await getPackageManagerVersion(packageManager);\n const normalizedVersion = semver.coerce(packageManagerVersion)?.version;\n\n return normalizedVersion ? semver.gte(normalizedVersion, '3.0.0') : false;\n } catch {\n return false;\n }\n};\n\nasync function createStrapi(scope: Scope) {\n const { rootPath } = scope;\n try {\n await fse.ensureDir(rootPath);\n await createApp(scope);\n } catch (error) {\n await fse.remove(rootPath);\n\n throw error;\n }\n}\n\nasync function createApp(scope: Scope) {\n const {\n rootPath,\n useTypescript,\n useExample,\n installDependencies,\n isQuickstart,\n template,\n packageManager,\n gitInit,\n runApp,\n } = scope;\n\n const shouldRunSeed = useExample && installDependencies;\n\n await trackUsage({ event: 'willCreateProject', scope });\n\n logger.title('Strapi', `Creating a new application at ${chalk.green(rootPath)}`);\n\n if (!isQuickstart) {\n await trackUsage({ event: 'didChooseCustomDatabase', scope });\n } else {\n await trackUsage({ event: 'didChooseQuickstart', scope });\n }\n\n if (!template) {\n let templateName = useExample ? 'example' : 'vanilla';\n\n if (!useTypescript) {\n templateName = `${templateName}-js`;\n }\n\n const internalTemplatePath = join(__dirname, '../templates', templateName);\n if (await fse.exists(internalTemplatePath)) {\n await fse.copy(internalTemplatePath, rootPath);\n }\n } else {\n try {\n logger.info(`${chalk.cyan('Installing template')} ${template}`);\n\n await copyTemplate(scope, rootPath);\n\n logger.success('Template copied successfully.');\n } catch (error) {\n if (error instanceof Error) {\n logger.fatal(`Template installation failed: ${error.message}`);\n }\n\n throw error;\n }\n\n if (!fse.existsSync(join(rootPath, 'package.json'))) {\n logger.fatal(`Missing ${chalk.bold('package.json')} in template`);\n }\n }\n\n await trackUsage({ event: 'didCopyProjectFiles', scope });\n\n try {\n await createPackageJSON(scope);\n\n await trackUsage({ event: 'didWritePackageJSON', scope });\n\n // ensure node_modules is created\n await fse.ensureDir(join(rootPath, 'node_modules'));\n\n // create config/database\n await fse.writeFile(join(rootPath, '.env'), generateDotEnv(scope));\n\n if (\n (await shouldWriteYarnNodeModulesConfig(packageManager)) &&\n !(await fse.pathExists(join(rootPath, '.yarnrc.yml')))\n ) {\n await fse.writeFile(join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);\n }\n\n await trackUsage({ event: 'didCopyConfigurationFiles', scope });\n } catch (err) {\n await fse.remove(rootPath);\n throw err;\n }\n\n // Create and save a growth sso trial license\n if (scope.shouldCreateGrowthSsoTrial) {\n try {\n const data = await createGrowthSsoTrial({ strapiVersion: scope.strapiVersion });\n\n if (data?.license) {\n fse.writeFile(join(rootPath, 'license.txt'), data.license);\n logger.log('Your 30 days trial will be applied automatically to your project. Enjoy!');\n }\n } catch (error) {\n logger.error('Error while trying to create your trial. Please try again later.');\n }\n }\n\n if (installDependencies) {\n try {\n logger.title('deps', `Installing dependencies with ${chalk.cyan(packageManager)}`);\n\n await trackUsage({ event: 'willInstallProjectDependencies', scope });\n\n await runInstall(scope);\n\n await trackUsage({ event: 'didInstallProjectDependencies', scope });\n\n logger.success(`Dependencies installed`);\n } catch (error) {\n const stderr = isStderrError(error) ? error.stderr : '';\n\n await trackUsage({\n event: 'didNotInstallProjectDependencies',\n scope,\n error: stderr.slice(-1024),\n });\n\n logger.fatal([\n chalk.bold(\n 'Oh, it seems that you encountered an error while installing dependencies in your project'\n ),\n '',\n `Don't give up, your project was created correctly`,\n '',\n `Fix the issues mentioned in the installation errors and try to run the following command:`,\n '',\n `cd ${chalk.green(rootPath)} && ${chalk.cyan(packageManager)} install`,\n ]);\n }\n }\n\n await trackUsage({ event: 'didCreateProject', scope });\n\n // make sure a gitignore file is created regardless of the user using git or not\n if (!(await fse.exists(join(rootPath, '.gitignore')))) {\n await fse.writeFile(join(rootPath, '.gitignore'), gitIgnore);\n }\n\n // Init git\n if (gitInit) {\n logger.title('git', 'Initializing git repository.');\n\n await tryGitInit(rootPath);\n\n logger.success('Initialized a git repository.');\n }\n\n if (shouldRunSeed) {\n if (await fse.exists(join(rootPath, 'scripts/seed.js'))) {\n logger.title('Seed', 'Seeding your database with sample data');\n\n try {\n await execa(packageManager, ['run', 'seed:example'], {\n stdio: 'inherit',\n cwd: rootPath,\n });\n logger.success('Sample data added to your database');\n } catch (error) {\n logger.error('Failed to seed your database. Skipping');\n }\n }\n }\n\n const cmd = chalk.cyan(`${packageManager} run`);\n\n logger.title('Strapi', `Your application was created!`);\n\n logger.log([\n 'Available commands in your project:',\n '',\n 'Start Strapi in watch mode. (Changes in Strapi project files will trigger a server restart)',\n `${cmd} develop`,\n '',\n 'Start Strapi without watch mode.',\n `${cmd} start`,\n '',\n 'Build Strapi admin panel.',\n `${cmd} build`,\n '',\n 'Deploy Strapi project.',\n `${cmd} deploy`,\n '',\n ]);\n\n if (useExample) {\n logger.log(['Seed your database with sample data.', `${cmd} seed:example`, '']);\n }\n\n logger.log(['Display all available commands.', `${cmd} strapi\\n`]);\n\n if (installDependencies) {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n } else {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n `${chalk.cyan(packageManager)} install`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n }\n\n if (runApp && installDependencies) {\n logger.title('Run', 'Running your Strapi application');\n\n try {\n await trackUsage({ event: 'willStartServer', scope });\n\n await execa(packageManager, ['run', 'develop'], {\n stdio: 'inherit',\n cwd: rootPath,\n env: {\n FORCE_COLOR: '1',\n },\n });\n } catch (error) {\n if (typeof error === 'string' || error instanceof Error) {\n await trackUsage({\n event: 'didNotStartServer',\n scope,\n error,\n });\n }\n\n logger.fatal('Failed to start your Strapi application');\n }\n }\n}\n\nasync function runInstall({ rootPath, packageManager }: Scope) {\n // include same cwd and env to ensure version check returns same version we use below\n const { envArgs, cmdArgs } = await getInstallArgs(packageManager, {\n cwd: rootPath,\n env: {\n ...process.env,\n NODE_ENV: 'development',\n },\n });\n\n const options: execa.Options = {\n cwd: rootPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n ...envArgs,\n NODE_ENV: 'development',\n },\n };\n\n const proc = execa(packageManager, cmdArgs, options);\n\n return proc;\n}\n\nexport { createStrapi };\n"],"names":["yarnNodeModulesConfig","getUserAgentPackageManagerVersion","packageManager","userAgent","process","env","npm_config_user_agent","agent","split","name","version","undefined","semver","coerce","shouldWriteYarnNodeModulesConfig","userAgentVersion","gte","packageManagerVersion","getPackageManagerVersion","normalizedVersion","createStrapi","scope","rootPath","fse","ensureDir","createApp","error","remove","useTypescript","useExample","installDependencies","isQuickstart","template","gitInit","runApp","shouldRunSeed","trackUsage","event","logger","title","chalk","green","templateName","internalTemplatePath","join","__dirname","exists","copy","info","cyan","copyTemplate","success","Error","fatal","message","existsSync","bold","createPackageJSON","writeFile","generateDotEnv","pathExists","err","shouldCreateGrowthSsoTrial","data","createGrowthSsoTrial","strapiVersion","license","log","runInstall","stderr","isStderrError","slice","gitIgnore","tryGitInit","execa","stdio","cwd","cmd","FORCE_COLOR","envArgs","cmdArgs","getInstallArgs","NODE_ENV","options","proc"],"mappings":"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"}
1
+ {"version":3,"file":"create-strapi.mjs","sources":["../src/create-strapi.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport chalk from 'chalk';\nimport execa from 'execa';\nimport fse from 'fs-extra';\nimport semver from 'semver';\n\nimport { createGrowthSsoTrial } from '@strapi/cloud-cli';\n\nimport { copyTemplate } from './utils/template';\nimport { tryGitInit } from './utils/git';\nimport { trackUsage } from './utils/usage';\nimport { createPackageJSON } from './utils/package-json';\nimport { writePnpmWorkspaceConfig } from './utils/pnpm-config';\nimport { generateDotEnv } from './utils/dot-env';\nimport { isStderrError } from './types';\n\nimport type { Scope } from './types';\nimport { logger } from './utils/logger';\nimport { gitIgnore } from './utils/gitignore';\nimport { getInstallArgs, getPackageManagerVersion } from './utils/get-package-manager-args';\n\nconst yarnNodeModulesConfig = 'nodeLinker: node-modules\\n';\n\nconst getUserAgentPackageManagerVersion = (packageManager: Scope['packageManager']) => {\n const userAgent = process.env.npm_config_user_agent ?? '';\n const [agent] = userAgent.split(' ');\n const [name, version] = agent.split('/');\n\n if (name !== packageManager || version === undefined) {\n return null;\n }\n\n return semver.coerce(version)?.version ?? null;\n};\n\nconst shouldWriteYarnNodeModulesConfig = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'yarn') {\n return false;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return semver.gte(userAgentVersion, '3.0.0');\n }\n\n try {\n const packageManagerVersion = await getPackageManagerVersion(packageManager);\n const normalizedVersion = semver.coerce(packageManagerVersion)?.version;\n\n return normalizedVersion ? semver.gte(normalizedVersion, '3.0.0') : false;\n } catch {\n return false;\n }\n};\n\nconst resolvePnpmVersion = async (packageManager: Scope['packageManager']) => {\n if (packageManager !== 'pnpm') {\n return null;\n }\n\n const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);\n\n if (userAgentVersion) {\n return userAgentVersion;\n }\n\n try {\n return await getPackageManagerVersion(packageManager);\n } catch {\n return null;\n }\n};\n\nasync function createStrapi(scope: Scope) {\n const { rootPath } = scope;\n try {\n await fse.ensureDir(rootPath);\n await createApp(scope);\n } catch (error) {\n await fse.remove(rootPath);\n\n throw error;\n }\n}\n\nasync function createApp(scope: Scope) {\n const {\n rootPath,\n useTypescript,\n useExample,\n installDependencies,\n isQuickstart,\n template,\n packageManager,\n gitInit,\n runApp,\n } = scope;\n\n const shouldRunSeed = useExample && installDependencies;\n\n await trackUsage({ event: 'willCreateProject', scope });\n\n logger.title('Strapi', `Creating a new application at ${chalk.green(rootPath)}`);\n\n if (!isQuickstart) {\n await trackUsage({ event: 'didChooseCustomDatabase', scope });\n } else {\n await trackUsage({ event: 'didChooseQuickstart', scope });\n }\n\n if (!template) {\n let templateName = useExample ? 'example' : 'vanilla';\n\n if (!useTypescript) {\n templateName = `${templateName}-js`;\n }\n\n const internalTemplatePath = join(__dirname, '../templates', templateName);\n if (await fse.exists(internalTemplatePath)) {\n await fse.copy(internalTemplatePath, rootPath);\n }\n } else {\n try {\n logger.info(`${chalk.cyan('Installing template')} ${template}`);\n\n await copyTemplate(scope, rootPath);\n\n logger.success('Template copied successfully.');\n } catch (error) {\n if (error instanceof Error) {\n logger.fatal(`Template installation failed: ${error.message}`);\n }\n\n throw error;\n }\n\n if (!fse.existsSync(join(rootPath, 'package.json'))) {\n logger.fatal(`Missing ${chalk.bold('package.json')} in template`);\n }\n }\n\n await trackUsage({ event: 'didCopyProjectFiles', scope });\n\n const pnpmVersion = await resolvePnpmVersion(packageManager);\n const scopeWithPnpmVersion = { ...scope, pnpmVersion };\n\n try {\n await createPackageJSON(scopeWithPnpmVersion);\n\n await trackUsage({ event: 'didWritePackageJSON', scope });\n\n // ensure node_modules is created\n await fse.ensureDir(join(rootPath, 'node_modules'));\n\n // create config/database\n await fse.writeFile(join(rootPath, '.env'), generateDotEnv(scope));\n\n if (\n (await shouldWriteYarnNodeModulesConfig(packageManager)) &&\n !(await fse.pathExists(join(rootPath, '.yarnrc.yml')))\n ) {\n await fse.writeFile(join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);\n }\n\n await writePnpmWorkspaceConfig(scopeWithPnpmVersion, pnpmVersion);\n\n await trackUsage({ event: 'didCopyConfigurationFiles', scope });\n } catch (err) {\n await fse.remove(rootPath);\n throw err;\n }\n\n // Create and save a growth sso trial license\n if (scope.shouldCreateGrowthSsoTrial) {\n try {\n const data = await createGrowthSsoTrial({ strapiVersion: scope.strapiVersion });\n\n if (data?.license) {\n fse.writeFile(join(rootPath, 'license.txt'), data.license);\n logger.log('Your 30 days trial will be applied automatically to your project. Enjoy!');\n }\n } catch (error) {\n logger.error('Error while trying to create your trial. Please try again later.');\n }\n }\n\n if (installDependencies) {\n try {\n logger.title('deps', `Installing dependencies with ${chalk.cyan(packageManager)}`);\n\n await trackUsage({ event: 'willInstallProjectDependencies', scope });\n\n await runInstall(scope);\n\n await trackUsage({ event: 'didInstallProjectDependencies', scope });\n\n logger.success(`Dependencies installed`);\n } catch (error) {\n const stderr = isStderrError(error) ? error.stderr : '';\n\n await trackUsage({\n event: 'didNotInstallProjectDependencies',\n scope,\n error: stderr.slice(-1024),\n });\n\n logger.fatal([\n chalk.bold(\n 'Oh, it seems that you encountered an error while installing dependencies in your project'\n ),\n '',\n `Don't give up, your project was created correctly`,\n '',\n `Fix the issues mentioned in the installation errors and try to run the following command:`,\n '',\n `cd ${chalk.green(rootPath)} && ${chalk.cyan(packageManager)} install`,\n ]);\n }\n }\n\n await trackUsage({ event: 'didCreateProject', scope });\n\n // make sure a gitignore file is created regardless of the user using git or not\n if (!(await fse.exists(join(rootPath, '.gitignore')))) {\n await fse.writeFile(join(rootPath, '.gitignore'), gitIgnore);\n }\n\n // Init git\n if (gitInit) {\n logger.title('git', 'Initializing git repository.');\n\n await tryGitInit(rootPath);\n\n logger.success('Initialized a git repository.');\n }\n\n if (shouldRunSeed) {\n if (await fse.exists(join(rootPath, 'scripts/seed.js'))) {\n logger.title('Seed', 'Seeding your database with sample data');\n\n try {\n await execa(packageManager, ['run', 'seed:example'], {\n stdio: 'inherit',\n cwd: rootPath,\n });\n logger.success('Sample data added to your database');\n } catch (error) {\n logger.error('Failed to seed your database. Skipping');\n }\n }\n }\n\n const cmd = chalk.cyan(`${packageManager} run`);\n\n logger.title('Strapi', `Your application was created!`);\n\n logger.log([\n 'Available commands in your project:',\n '',\n 'Start Strapi in watch mode. (Changes in Strapi project files will trigger a server restart)',\n `${cmd} develop`,\n '',\n 'Start Strapi without watch mode.',\n `${cmd} start`,\n '',\n 'Build Strapi admin panel.',\n `${cmd} build`,\n '',\n 'Deploy Strapi project.',\n `${cmd} deploy`,\n '',\n ]);\n\n if (useExample) {\n logger.log(['Seed your database with sample data.', `${cmd} seed:example`, '']);\n }\n\n logger.log(['Display all available commands.', `${cmd} strapi\\n`]);\n\n if (installDependencies) {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n } else {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${rootPath}`,\n `${chalk.cyan(packageManager)} install`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n }\n\n if (runApp && installDependencies) {\n logger.title('Run', 'Running your Strapi application');\n\n try {\n await trackUsage({ event: 'willStartServer', scope });\n\n await execa(packageManager, ['run', 'develop'], {\n stdio: 'inherit',\n cwd: rootPath,\n env: {\n FORCE_COLOR: '1',\n },\n });\n } catch (error) {\n if (typeof error === 'string' || error instanceof Error) {\n await trackUsage({\n event: 'didNotStartServer',\n scope,\n error,\n });\n }\n\n logger.fatal('Failed to start your Strapi application');\n }\n }\n}\n\nasync function runInstall({ rootPath, packageManager }: Scope) {\n // include same cwd and env to ensure version check returns same version we use below\n const { envArgs, cmdArgs } = await getInstallArgs(packageManager, {\n cwd: rootPath,\n env: {\n ...process.env,\n NODE_ENV: 'development',\n },\n });\n\n const options: execa.Options = {\n cwd: rootPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n ...envArgs,\n NODE_ENV: 'development',\n },\n };\n\n const proc = execa(packageManager, cmdArgs, options);\n\n return proc;\n}\n\nexport { createStrapi };\n"],"names":["yarnNodeModulesConfig","getUserAgentPackageManagerVersion","packageManager","userAgent","process","env","npm_config_user_agent","agent","split","name","version","undefined","semver","coerce","shouldWriteYarnNodeModulesConfig","userAgentVersion","gte","packageManagerVersion","getPackageManagerVersion","normalizedVersion","resolvePnpmVersion","createStrapi","scope","rootPath","fse","ensureDir","createApp","error","remove","useTypescript","useExample","installDependencies","isQuickstart","template","gitInit","runApp","shouldRunSeed","trackUsage","event","logger","title","chalk","green","templateName","internalTemplatePath","join","__dirname","exists","copy","info","cyan","copyTemplate","success","Error","fatal","message","existsSync","bold","pnpmVersion","scopeWithPnpmVersion","createPackageJSON","writeFile","generateDotEnv","pathExists","writePnpmWorkspaceConfig","err","shouldCreateGrowthSsoTrial","data","createGrowthSsoTrial","strapiVersion","license","log","runInstall","stderr","isStderrError","slice","gitIgnore","tryGitInit","execa","stdio","cwd","cmd","FORCE_COLOR","envArgs","cmdArgs","getInstallArgs","NODE_ENV","options","proc"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,46 +16,54 @@ var usage = require('./utils/usage.js');
16
16
  var database = require('./utils/database.js');
17
17
  var logger = require('./utils/logger.js');
18
18
 
19
- const { version } = fse.readJSONSync(path.join(__dirname, '..', 'package.json'));
20
- const command = new commander.Command('create-strapi-app').version(version).arguments('[directory]').usage('[directory] [options]').option('--quickstart', 'Quickstart app creation (deprecated)').option('--no-run', 'Do not start the application after it is created.')// setup options
19
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
20
+
21
+ var os__default = /*#__PURE__*/_interopDefault(os);
22
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
23
+ var commander__default = /*#__PURE__*/_interopDefault(commander);
24
+ var crypto__default = /*#__PURE__*/_interopDefault(crypto);
25
+ var fse__default = /*#__PURE__*/_interopDefault(fse);
26
+
27
+ const { version } = fse__default.default.readJSONSync(path.join(__dirname, '..', 'package.json'));
28
+ const command = new commander__default.default.Command('create-strapi-app').version(version).arguments('[directory]').usage('[directory] [options]').option('--quickstart', 'Quickstart app creation (deprecated)').option('--no-run', 'Do not start the application after it is created.')// setup options
21
29
  .option('--ts, --typescript', 'Initialize the project with TypeScript (default)').option('--js, --javascript', 'Initialize the project with Javascript')// Package manager options
22
30
  .option('--use-npm', 'Use npm as the project package manager').option('--use-yarn', 'Use yarn as the project package manager').option('--use-pnpm', 'Use pnpm as the project package manager')// dependencies options
23
31
  .option('--install', 'Install dependencies').option('--no-install', 'Do not install dependencies')// Cloud options
24
32
  .option('--skip-cloud', 'Skip cloud login and project creation')// Example app
25
33
  .option('--example', 'Use an example app').option('--no-example', 'Do not use an example app')// git options
26
34
  .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
35
+ .addOption(new commander__default.default.Option('--enable-ab-tests', 'ignored').hideHelp()).addOption(new commander__default.default.Option('--no-enable-ab-tests', 'ignored').hideHelp())// Automation
28
36
  .option('--non-interactive', 'Skip all interactive prompts and use defaults')// Database options
29
37
  .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
38
  async function run(args) {
31
39
  const options = command.parse(args).opts();
32
40
  const directory = command.args[0];
33
- logger.logger.title('Strapi', `${chalk.green(chalk.bold(`v${version}`))} ${chalk.bold("🚀 Let's create your new project")}\n`);
41
+ logger.logger.title('Strapi', `${chalk__default.default.green(chalk__default.default.bold(`v${version}`))} ${chalk__default.default.bold("🚀 Let's create your new project")}\n`);
34
42
  if ((options.javascript !== undefined || options.typescript !== undefined) && options.template !== undefined) {
35
- logger.logger.fatal(`You cannot use ${chalk.bold('--javascript')} or ${chalk.bold('--typescript')} with ${chalk.bold('--template')}`);
43
+ logger.logger.fatal(`You cannot use ${chalk__default.default.bold('--javascript')} or ${chalk__default.default.bold('--typescript')} with ${chalk__default.default.bold('--template')}`);
36
44
  }
37
45
  if (options.javascript === true && options.typescript === true) {
38
- logger.logger.fatal(`You cannot use both ${chalk.bold('--typescript')} (--ts) and ${chalk.bold('--javascript')} (--js) flags together`);
46
+ logger.logger.fatal(`You cannot use both ${chalk__default.default.bold('--typescript')} (--ts) and ${chalk__default.default.bold('--javascript')} (--js) flags together`);
39
47
  }
40
48
  // Only prompt the example app option if there is no template option
41
49
  if (options.example === true && options.template !== undefined) {
42
- logger.logger.fatal(`You cannot use ${chalk.bold('--example')} with ${chalk.bold('--template')}`);
50
+ logger.logger.fatal(`You cannot use ${chalk__default.default.bold('--example')} with ${chalk__default.default.bold('--template')}`);
43
51
  }
44
52
  if (options.template !== undefined && options.template.startsWith('-')) {
45
- logger.logger.fatal(`Template name ${chalk.bold(`"${options.template}"`)} is invalid`);
53
+ logger.logger.fatal(`Template name ${chalk__default.default.bold(`"${options.template}"`)} is invalid`);
46
54
  }
47
55
  if ([
48
56
  options.useNpm,
49
57
  options.usePnpm,
50
58
  options.useYarn
51
59
  ].filter(Boolean).length > 1) {
52
- logger.logger.fatal(`You cannot specify multiple package managers at the same time ${chalk.bold('(--use-npm, --use-pnpm, --use-yarn)')}`);
60
+ logger.logger.fatal(`You cannot specify multiple package managers at the same time ${chalk__default.default.bold('(--use-npm, --use-pnpm, --use-yarn)')}`);
53
61
  }
54
62
  if (options.quickstart && !directory) {
55
- logger.logger.fatal(`Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--quickstart')}`);
63
+ logger.logger.fatal(`Please specify the ${chalk__default.default.bold('<directory>')} of your project when using ${chalk__default.default.bold('--quickstart')}`);
56
64
  }
57
65
  if (options.nonInteractive && !directory) {
58
- logger.logger.fatal(`Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--non-interactive')}`);
66
+ logger.logger.fatal(`Please specify the ${chalk__default.default.bold('<directory>')} of your project when using ${chalk__default.default.bold('--non-interactive')}`);
59
67
  }
60
68
  const skipPrompts = options.quickstart || options.nonInteractive;
61
69
  checkRequirements.checkNodeRequirements();
@@ -65,8 +73,8 @@ async function run(args) {
65
73
  if (!options.skipCloud && !options.nonInteractive) {
66
74
  shouldCreateGrowthSsoTrial = await cloud.handleCloudLogin();
67
75
  }
68
- const tmpPath = path.join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);
69
- const randomUUID = crypto.randomUUID();
76
+ const tmpPath = path.join(os__default.default.tmpdir(), `strapi${crypto__default.default.randomBytes(6).toString('hex')}`);
77
+ const randomUUID = crypto__default.default.randomUUID();
70
78
  const uuid = (process.env.STRAPI_UUID_PREFIX || '') + randomUUID;
71
79
  const installId$1 = installId.installID(uuid);
72
80
  const scope = {