create-strapi-app 5.48.0 → 5.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/create-strapi.js +38 -31
- package/dist/create-strapi.js.map +1 -1
- package/dist/index.js +21 -13
- package/dist/index.js.map +1 -1
- package/dist/utils/check-install-path.js +10 -5
- package/dist/utils/check-install-path.js.map +1 -1
- package/dist/utils/check-requirements.js +11 -6
- package/dist/utils/check-requirements.js.map +1 -1
- package/dist/utils/dot-env.js +7 -2
- package/dist/utils/dot-env.js.map +1 -1
- package/dist/utils/engines.js +1 -1
- package/dist/utils/engines.js.map +1 -1
- package/dist/utils/engines.mjs +1 -1
- package/dist/utils/engines.mjs.map +1 -1
- package/dist/utils/get-package-manager-args.js +7 -2
- package/dist/utils/get-package-manager-args.js.map +1 -1
- package/dist/utils/git.js +10 -6
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/install-id.js +6 -2
- package/dist/utils/install-id.js.map +1 -1
- package/dist/utils/logger.js +11 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/package-json.d.ts.map +1 -1
- package/dist/utils/package-json.js +29 -3
- package/dist/utils/package-json.js.map +1 -1
- package/dist/utils/package-json.mjs +25 -3
- package/dist/utils/package-json.mjs.map +1 -1
- package/dist/utils/parse-to-chalk.js +11 -7
- package/dist/utils/parse-to-chalk.js.map +1 -1
- package/dist/utils/template.js +17 -10
- package/dist/utils/template.js.map +1 -1
- package/dist/utils/usage.js +10 -5
- package/dist/utils/usage.js.map +1 -1
- package/package.json +7 -7
package/dist/create-strapi.js
CHANGED
|
@@ -16,6 +16,13 @@ var logger = require('./utils/logger.js');
|
|
|
16
16
|
var gitignore = require('./utils/gitignore.js');
|
|
17
17
|
var getPackageManagerArgs = require('./utils/get-package-manager-args.js');
|
|
18
18
|
|
|
19
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
|
+
|
|
21
|
+
var chalk__default = /*#__PURE__*/_interopDefault(chalk);
|
|
22
|
+
var execa__default = /*#__PURE__*/_interopDefault(execa);
|
|
23
|
+
var fse__default = /*#__PURE__*/_interopDefault(fse);
|
|
24
|
+
var semver__default = /*#__PURE__*/_interopDefault(semver);
|
|
25
|
+
|
|
19
26
|
const yarnNodeModulesConfig = 'nodeLinker: node-modules\n';
|
|
20
27
|
const getUserAgentPackageManagerVersion = (packageManager)=>{
|
|
21
28
|
const userAgent = process.env.npm_config_user_agent ?? '';
|
|
@@ -24,7 +31,7 @@ const getUserAgentPackageManagerVersion = (packageManager)=>{
|
|
|
24
31
|
if (name !== packageManager || version === undefined) {
|
|
25
32
|
return null;
|
|
26
33
|
}
|
|
27
|
-
return
|
|
34
|
+
return semver__default.default.coerce(version)?.version ?? null;
|
|
28
35
|
};
|
|
29
36
|
const shouldWriteYarnNodeModulesConfig = async (packageManager)=>{
|
|
30
37
|
if (packageManager !== 'yarn') {
|
|
@@ -32,12 +39,12 @@ const shouldWriteYarnNodeModulesConfig = async (packageManager)=>{
|
|
|
32
39
|
}
|
|
33
40
|
const userAgentVersion = getUserAgentPackageManagerVersion(packageManager);
|
|
34
41
|
if (userAgentVersion) {
|
|
35
|
-
return
|
|
42
|
+
return semver__default.default.gte(userAgentVersion, '3.0.0');
|
|
36
43
|
}
|
|
37
44
|
try {
|
|
38
45
|
const packageManagerVersion = await getPackageManagerArgs.getPackageManagerVersion(packageManager);
|
|
39
|
-
const normalizedVersion =
|
|
40
|
-
return normalizedVersion ?
|
|
46
|
+
const normalizedVersion = semver__default.default.coerce(packageManagerVersion)?.version;
|
|
47
|
+
return normalizedVersion ? semver__default.default.gte(normalizedVersion, '3.0.0') : false;
|
|
41
48
|
} catch {
|
|
42
49
|
return false;
|
|
43
50
|
}
|
|
@@ -45,10 +52,10 @@ const shouldWriteYarnNodeModulesConfig = async (packageManager)=>{
|
|
|
45
52
|
async function createStrapi(scope) {
|
|
46
53
|
const { rootPath } = scope;
|
|
47
54
|
try {
|
|
48
|
-
await
|
|
55
|
+
await fse__default.default.ensureDir(rootPath);
|
|
49
56
|
await createApp(scope);
|
|
50
57
|
} catch (error) {
|
|
51
|
-
await
|
|
58
|
+
await fse__default.default.remove(rootPath);
|
|
52
59
|
throw error;
|
|
53
60
|
}
|
|
54
61
|
}
|
|
@@ -59,7 +66,7 @@ async function createApp(scope) {
|
|
|
59
66
|
event: 'willCreateProject',
|
|
60
67
|
scope
|
|
61
68
|
});
|
|
62
|
-
logger.logger.title('Strapi', `Creating a new application at ${
|
|
69
|
+
logger.logger.title('Strapi', `Creating a new application at ${chalk__default.default.green(rootPath)}`);
|
|
63
70
|
if (!isQuickstart) {
|
|
64
71
|
await usage.trackUsage({
|
|
65
72
|
event: 'didChooseCustomDatabase',
|
|
@@ -77,12 +84,12 @@ async function createApp(scope) {
|
|
|
77
84
|
templateName = `${templateName}-js`;
|
|
78
85
|
}
|
|
79
86
|
const internalTemplatePath = path.join(__dirname, '../templates', templateName);
|
|
80
|
-
if (await
|
|
81
|
-
await
|
|
87
|
+
if (await fse__default.default.exists(internalTemplatePath)) {
|
|
88
|
+
await fse__default.default.copy(internalTemplatePath, rootPath);
|
|
82
89
|
}
|
|
83
90
|
} else {
|
|
84
91
|
try {
|
|
85
|
-
logger.logger.info(`${
|
|
92
|
+
logger.logger.info(`${chalk__default.default.cyan('Installing template')} ${template$1}`);
|
|
86
93
|
await template.copyTemplate(scope, rootPath);
|
|
87
94
|
logger.logger.success('Template copied successfully.');
|
|
88
95
|
} catch (error) {
|
|
@@ -91,8 +98,8 @@ async function createApp(scope) {
|
|
|
91
98
|
}
|
|
92
99
|
throw error;
|
|
93
100
|
}
|
|
94
|
-
if (!
|
|
95
|
-
logger.logger.fatal(`Missing ${
|
|
101
|
+
if (!fse__default.default.existsSync(path.join(rootPath, 'package.json'))) {
|
|
102
|
+
logger.logger.fatal(`Missing ${chalk__default.default.bold('package.json')} in template`);
|
|
96
103
|
}
|
|
97
104
|
}
|
|
98
105
|
await usage.trackUsage({
|
|
@@ -106,18 +113,18 @@ async function createApp(scope) {
|
|
|
106
113
|
scope
|
|
107
114
|
});
|
|
108
115
|
// ensure node_modules is created
|
|
109
|
-
await
|
|
116
|
+
await fse__default.default.ensureDir(path.join(rootPath, 'node_modules'));
|
|
110
117
|
// create config/database
|
|
111
|
-
await
|
|
112
|
-
if (await shouldWriteYarnNodeModulesConfig(packageManager) && !await
|
|
113
|
-
await
|
|
118
|
+
await fse__default.default.writeFile(path.join(rootPath, '.env'), dotEnv.generateDotEnv(scope));
|
|
119
|
+
if (await shouldWriteYarnNodeModulesConfig(packageManager) && !await fse__default.default.pathExists(path.join(rootPath, '.yarnrc.yml'))) {
|
|
120
|
+
await fse__default.default.writeFile(path.join(rootPath, '.yarnrc.yml'), yarnNodeModulesConfig);
|
|
114
121
|
}
|
|
115
122
|
await usage.trackUsage({
|
|
116
123
|
event: 'didCopyConfigurationFiles',
|
|
117
124
|
scope
|
|
118
125
|
});
|
|
119
126
|
} catch (err) {
|
|
120
|
-
await
|
|
127
|
+
await fse__default.default.remove(rootPath);
|
|
121
128
|
throw err;
|
|
122
129
|
}
|
|
123
130
|
// Create and save a growth sso trial license
|
|
@@ -127,7 +134,7 @@ async function createApp(scope) {
|
|
|
127
134
|
strapiVersion: scope.strapiVersion
|
|
128
135
|
});
|
|
129
136
|
if (data?.license) {
|
|
130
|
-
|
|
137
|
+
fse__default.default.writeFile(path.join(rootPath, 'license.txt'), data.license);
|
|
131
138
|
logger.logger.log('Your 30 days trial will be applied automatically to your project. Enjoy!');
|
|
132
139
|
}
|
|
133
140
|
} catch (error) {
|
|
@@ -136,7 +143,7 @@ async function createApp(scope) {
|
|
|
136
143
|
}
|
|
137
144
|
if (installDependencies) {
|
|
138
145
|
try {
|
|
139
|
-
logger.logger.title('deps', `Installing dependencies with ${
|
|
146
|
+
logger.logger.title('deps', `Installing dependencies with ${chalk__default.default.cyan(packageManager)}`);
|
|
140
147
|
await usage.trackUsage({
|
|
141
148
|
event: 'willInstallProjectDependencies',
|
|
142
149
|
scope
|
|
@@ -155,13 +162,13 @@ async function createApp(scope) {
|
|
|
155
162
|
error: stderr.slice(-1024)
|
|
156
163
|
});
|
|
157
164
|
logger.logger.fatal([
|
|
158
|
-
|
|
165
|
+
chalk__default.default.bold('Oh, it seems that you encountered an error while installing dependencies in your project'),
|
|
159
166
|
'',
|
|
160
167
|
`Don't give up, your project was created correctly`,
|
|
161
168
|
'',
|
|
162
169
|
`Fix the issues mentioned in the installation errors and try to run the following command:`,
|
|
163
170
|
'',
|
|
164
|
-
`cd ${
|
|
171
|
+
`cd ${chalk__default.default.green(rootPath)} && ${chalk__default.default.cyan(packageManager)} install`
|
|
165
172
|
]);
|
|
166
173
|
}
|
|
167
174
|
}
|
|
@@ -170,8 +177,8 @@ async function createApp(scope) {
|
|
|
170
177
|
scope
|
|
171
178
|
});
|
|
172
179
|
// make sure a gitignore file is created regardless of the user using git or not
|
|
173
|
-
if (!await
|
|
174
|
-
await
|
|
180
|
+
if (!await fse__default.default.exists(path.join(rootPath, '.gitignore'))) {
|
|
181
|
+
await fse__default.default.writeFile(path.join(rootPath, '.gitignore'), gitignore.gitIgnore);
|
|
175
182
|
}
|
|
176
183
|
// Init git
|
|
177
184
|
if (gitInit) {
|
|
@@ -180,10 +187,10 @@ async function createApp(scope) {
|
|
|
180
187
|
logger.logger.success('Initialized a git repository.');
|
|
181
188
|
}
|
|
182
189
|
if (shouldRunSeed) {
|
|
183
|
-
if (await
|
|
190
|
+
if (await fse__default.default.exists(path.join(rootPath, 'scripts/seed.js'))) {
|
|
184
191
|
logger.logger.title('Seed', 'Seeding your database with sample data');
|
|
185
192
|
try {
|
|
186
|
-
await
|
|
193
|
+
await execa__default.default(packageManager, [
|
|
187
194
|
'run',
|
|
188
195
|
'seed:example'
|
|
189
196
|
], {
|
|
@@ -196,7 +203,7 @@ async function createApp(scope) {
|
|
|
196
203
|
}
|
|
197
204
|
}
|
|
198
205
|
}
|
|
199
|
-
const cmd =
|
|
206
|
+
const cmd = chalk__default.default.cyan(`${packageManager} run`);
|
|
200
207
|
logger.logger.title('Strapi', `Your application was created!`);
|
|
201
208
|
logger.logger.log([
|
|
202
209
|
'Available commands in your project:',
|
|
@@ -229,15 +236,15 @@ async function createApp(scope) {
|
|
|
229
236
|
logger.logger.log([
|
|
230
237
|
'To get started run',
|
|
231
238
|
'',
|
|
232
|
-
`${
|
|
239
|
+
`${chalk__default.default.cyan('cd')} ${rootPath}`,
|
|
233
240
|
!shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`
|
|
234
241
|
]);
|
|
235
242
|
} else {
|
|
236
243
|
logger.logger.log([
|
|
237
244
|
'To get started run',
|
|
238
245
|
'',
|
|
239
|
-
`${
|
|
240
|
-
`${
|
|
246
|
+
`${chalk__default.default.cyan('cd')} ${rootPath}`,
|
|
247
|
+
`${chalk__default.default.cyan(packageManager)} install`,
|
|
241
248
|
!shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`
|
|
242
249
|
]);
|
|
243
250
|
}
|
|
@@ -248,7 +255,7 @@ async function createApp(scope) {
|
|
|
248
255
|
event: 'willStartServer',
|
|
249
256
|
scope
|
|
250
257
|
});
|
|
251
|
-
await
|
|
258
|
+
await execa__default.default(packageManager, [
|
|
252
259
|
'run',
|
|
253
260
|
'develop'
|
|
254
261
|
], {
|
|
@@ -288,7 +295,7 @@ async function runInstall({ rootPath, packageManager }) {
|
|
|
288
295
|
NODE_ENV: 'development'
|
|
289
296
|
}
|
|
290
297
|
};
|
|
291
|
-
const proc =
|
|
298
|
+
const proc = execa__default.default(packageManager, cmdArgs, options);
|
|
292
299
|
return proc;
|
|
293
300
|
}
|
|
294
301
|
|
|
@@ -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 { 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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"}
|
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
|
-
|
|
20
|
-
|
|
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
|
|
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', `${
|
|
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 ${
|
|
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 ${
|
|
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 ${
|
|
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 ${
|
|
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 ${
|
|
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 ${
|
|
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 ${
|
|
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(
|
|
69
|
-
const 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 = {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { join, basename } from 'node:path';\nimport os from 'node:os';\nimport chalk from 'chalk';\nimport commander from 'commander';\nimport crypto from 'crypto';\nimport fse from 'fs-extra';\n\nimport * as prompts from './prompts';\nimport { handleCloudLogin } from './cloud';\nimport { createStrapi } from './create-strapi';\nimport { checkNodeRequirements } from './utils/check-requirements';\nimport { checkInstallPath } from './utils/check-install-path';\nimport { installID } from './utils/install-id';\nimport { trackError } from './utils/usage';\nimport { addDatabaseDependencies, getDatabaseInfos } from './utils/database';\n\nimport type { Options, Scope } from './types';\nimport { logger } from './utils/logger';\n\nconst { version } = fse.readJSONSync(join(__dirname, '..', 'package.json'));\n\nconst command = new commander.Command('create-strapi-app')\n .version(version)\n .arguments('[directory]')\n .usage('[directory] [options]')\n .option('--quickstart', 'Quickstart app creation (deprecated)')\n .option('--no-run', 'Do not start the application after it is created.')\n\n // setup options\n .option('--ts, --typescript', 'Initialize the project with TypeScript (default)')\n .option('--js, --javascript', 'Initialize the project with Javascript')\n\n // Package manager options\n .option('--use-npm', 'Use npm as the project package manager')\n .option('--use-yarn', 'Use yarn as the project package manager')\n .option('--use-pnpm', 'Use pnpm as the project package manager')\n\n // dependencies options\n .option('--install', 'Install dependencies')\n .option('--no-install', 'Do not install dependencies')\n\n // Cloud options\n .option('--skip-cloud', 'Skip cloud login and project creation')\n\n // Example app\n .option('--example', 'Use an example app')\n .option('--no-example', 'Do not use an example app')\n\n // git options\n .option('--git-init', 'Initialize a git repository')\n .option('--no-git-init', 'Do no initialize a git repository')\n\n // Legacy no-ops (hidden from --help): accept old flags so existing CI/scripts keep working\n .addOption(new commander.Option('--enable-ab-tests', 'ignored').hideHelp())\n .addOption(new commander.Option('--no-enable-ab-tests', 'ignored').hideHelp())\n\n // Automation\n .option('--non-interactive', 'Skip all interactive prompts and use defaults')\n\n // Database options\n .option('--dbclient <dbclient>', 'Database client')\n .option('--dbhost <dbhost>', 'Database host')\n .option('--dbport <dbport>', 'Database port')\n .option('--dbname <dbname>', 'Database name')\n .option('--dbusername <dbusername>', 'Database username')\n .option('--dbpassword <dbpassword>', 'Database password')\n .option('--dbssl <dbssl>', 'Database SSL')\n .option('--dbfile <dbfile>', 'Database file path for sqlite')\n .option('--skip-db', 'Skip database configuration')\n\n .option('--template <template>', 'Specify a Strapi template')\n .option('--template-branch <templateBranch>', 'Specify a branch for the template')\n .option('--template-path <templatePath>', 'Specify a path to the template inside the repository')\n\n .description('create a new application');\n\nasync function run(args: string[]): Promise<void> {\n const options = command.parse(args).opts<Options>();\n const directory = command.args[0];\n\n logger.title(\n 'Strapi',\n `${chalk.green(chalk.bold(`v${version}`))} ${chalk.bold(\"🚀 Let's create your new project\")}\\n`\n );\n\n if (\n (options.javascript !== undefined || options.typescript !== undefined) &&\n options.template !== undefined\n ) {\n logger.fatal(\n `You cannot use ${chalk.bold('--javascript')} or ${chalk.bold('--typescript')} with ${chalk.bold('--template')}`\n );\n }\n\n if (options.javascript === true && options.typescript === true) {\n logger.fatal(\n `You cannot use both ${chalk.bold('--typescript')} (--ts) and ${chalk.bold('--javascript')} (--js) flags together`\n );\n }\n\n // Only prompt the example app option if there is no template option\n if (options.example === true && options.template !== undefined) {\n logger.fatal(`You cannot use ${chalk.bold('--example')} with ${chalk.bold('--template')}`);\n }\n\n if (options.template !== undefined && options.template.startsWith('-')) {\n logger.fatal(`Template name ${chalk.bold(`\"${options.template}\"`)} is invalid`);\n }\n\n if ([options.useNpm, options.usePnpm, options.useYarn].filter(Boolean).length > 1) {\n logger.fatal(\n `You cannot specify multiple package managers at the same time ${chalk.bold('(--use-npm, --use-pnpm, --use-yarn)')}`\n );\n }\n\n if (options.quickstart && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--quickstart')}`\n );\n }\n\n if (options.nonInteractive && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--non-interactive')}`\n );\n }\n\n const skipPrompts = options.quickstart || options.nonInteractive;\n\n checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n let shouldCreateGrowthSsoTrial = false;\n if (!options.skipCloud && !options.nonInteractive) {\n shouldCreateGrowthSsoTrial = await handleCloudLogin();\n }\n\n const tmpPath = join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);\n\n const randomUUID = crypto.randomUUID();\n const uuid = (process.env.STRAPI_UUID_PREFIX || '') + randomUUID;\n const installId = installID(uuid);\n\n const scope: Scope = {\n rootPath,\n name: basename(rootPath),\n packageManager: getPkgManager(options),\n database: await getDatabaseInfos(options),\n template: options.template,\n templateBranch: options.templateBranch,\n templatePath: options.templatePath,\n isQuickstart: options.quickstart,\n useExample: false,\n runApp: options.quickstart === true && options.run !== false,\n strapiVersion: version,\n packageJsonStrapi: {\n template: options.template,\n },\n uuid,\n docker: process.env.DOCKER === 'true',\n installId,\n tmpPath,\n gitInit: true,\n devDependencies: {},\n dependencies: {\n '@strapi/strapi': version,\n '@strapi/plugin-users-permissions': version,\n '@strapi/plugin-cloud': version,\n // third party\n react: '^18.0.0',\n 'react-dom': '^18.0.0',\n 'react-router-dom': '^6.0.0',\n 'styled-components': '^6.0.0',\n },\n shouldCreateGrowthSsoTrial,\n };\n\n if (options.template !== undefined) {\n scope.useExample = false;\n } else if (options.example === true) {\n scope.useExample = true;\n } else if (options.example === false || skipPrompts) {\n scope.useExample = false;\n } else {\n scope.useExample = await prompts.example();\n }\n\n if (options.javascript === true) {\n scope.useTypescript = false;\n } else if (options.typescript === true || skipPrompts) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n scope.installDependencies = await resolveOption(options.install, skipPrompts, true, () =>\n prompts.installDependencies(scope.packageManager)\n );\n\n if (scope.useTypescript) {\n scope.devDependencies = {\n ...scope.devDependencies,\n typescript: '^5',\n '@types/node': '^20',\n '@types/react': '^18',\n '@types/react-dom': '^18',\n };\n }\n\n scope.gitInit = await resolveOption(options.gitInit, skipPrompts, true, prompts.gitInit);\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\n/**\n * Resolves a boolean CLI option: explicit flag wins, then non-interactive default, then interactive prompt.\n */\nasync function resolveOption(\n explicitValue: boolean | undefined,\n skipPrompts: boolean | undefined,\n defaultValue: boolean,\n promptFn: () => Promise<boolean>\n): Promise<boolean> {\n if (explicitValue !== undefined) return explicitValue;\n if (skipPrompts) return defaultValue;\n return promptFn();\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","addOption","Option","hideHelp","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","nonInteractive","skipPrompts","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","shouldCreateGrowthSsoTrial","skipCloud","handleCloudLogin","tmpPath","os","tmpdir","crypto","randomBytes","toString","randomUUID","uuid","process","env","STRAPI_UUID_PREFIX","installId","installID","scope","name","basename","packageManager","getPkgManager","database","getDatabaseInfos","templateBranch","templatePath","isQuickstart","useExample","runApp","strapiVersion","packageJsonStrapi","docker","DOCKER","gitInit","devDependencies","dependencies","react","useTypescript","installDependencies","resolveOption","install","addDatabaseDependencies","createStrapi","error","Error","trackError","message","explicitValue","defaultValue","promptFn","userAgent","npm_config_user_agent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { join, basename } from 'node:path';\nimport os from 'node:os';\nimport chalk from 'chalk';\nimport commander from 'commander';\nimport crypto from 'crypto';\nimport fse from 'fs-extra';\n\nimport * as prompts from './prompts';\nimport { handleCloudLogin } from './cloud';\nimport { createStrapi } from './create-strapi';\nimport { checkNodeRequirements } from './utils/check-requirements';\nimport { checkInstallPath } from './utils/check-install-path';\nimport { installID } from './utils/install-id';\nimport { trackError } from './utils/usage';\nimport { addDatabaseDependencies, getDatabaseInfos } from './utils/database';\n\nimport type { Options, Scope } from './types';\nimport { logger } from './utils/logger';\n\nconst { version } = fse.readJSONSync(join(__dirname, '..', 'package.json'));\n\nconst command = new commander.Command('create-strapi-app')\n .version(version)\n .arguments('[directory]')\n .usage('[directory] [options]')\n .option('--quickstart', 'Quickstart app creation (deprecated)')\n .option('--no-run', 'Do not start the application after it is created.')\n\n // setup options\n .option('--ts, --typescript', 'Initialize the project with TypeScript (default)')\n .option('--js, --javascript', 'Initialize the project with Javascript')\n\n // Package manager options\n .option('--use-npm', 'Use npm as the project package manager')\n .option('--use-yarn', 'Use yarn as the project package manager')\n .option('--use-pnpm', 'Use pnpm as the project package manager')\n\n // dependencies options\n .option('--install', 'Install dependencies')\n .option('--no-install', 'Do not install dependencies')\n\n // Cloud options\n .option('--skip-cloud', 'Skip cloud login and project creation')\n\n // Example app\n .option('--example', 'Use an example app')\n .option('--no-example', 'Do not use an example app')\n\n // git options\n .option('--git-init', 'Initialize a git repository')\n .option('--no-git-init', 'Do no initialize a git repository')\n\n // Legacy no-ops (hidden from --help): accept old flags so existing CI/scripts keep working\n .addOption(new commander.Option('--enable-ab-tests', 'ignored').hideHelp())\n .addOption(new commander.Option('--no-enable-ab-tests', 'ignored').hideHelp())\n\n // Automation\n .option('--non-interactive', 'Skip all interactive prompts and use defaults')\n\n // Database options\n .option('--dbclient <dbclient>', 'Database client')\n .option('--dbhost <dbhost>', 'Database host')\n .option('--dbport <dbport>', 'Database port')\n .option('--dbname <dbname>', 'Database name')\n .option('--dbusername <dbusername>', 'Database username')\n .option('--dbpassword <dbpassword>', 'Database password')\n .option('--dbssl <dbssl>', 'Database SSL')\n .option('--dbfile <dbfile>', 'Database file path for sqlite')\n .option('--skip-db', 'Skip database configuration')\n\n .option('--template <template>', 'Specify a Strapi template')\n .option('--template-branch <templateBranch>', 'Specify a branch for the template')\n .option('--template-path <templatePath>', 'Specify a path to the template inside the repository')\n\n .description('create a new application');\n\nasync function run(args: string[]): Promise<void> {\n const options = command.parse(args).opts<Options>();\n const directory = command.args[0];\n\n logger.title(\n 'Strapi',\n `${chalk.green(chalk.bold(`v${version}`))} ${chalk.bold(\"🚀 Let's create your new project\")}\\n`\n );\n\n if (\n (options.javascript !== undefined || options.typescript !== undefined) &&\n options.template !== undefined\n ) {\n logger.fatal(\n `You cannot use ${chalk.bold('--javascript')} or ${chalk.bold('--typescript')} with ${chalk.bold('--template')}`\n );\n }\n\n if (options.javascript === true && options.typescript === true) {\n logger.fatal(\n `You cannot use both ${chalk.bold('--typescript')} (--ts) and ${chalk.bold('--javascript')} (--js) flags together`\n );\n }\n\n // Only prompt the example app option if there is no template option\n if (options.example === true && options.template !== undefined) {\n logger.fatal(`You cannot use ${chalk.bold('--example')} with ${chalk.bold('--template')}`);\n }\n\n if (options.template !== undefined && options.template.startsWith('-')) {\n logger.fatal(`Template name ${chalk.bold(`\"${options.template}\"`)} is invalid`);\n }\n\n if ([options.useNpm, options.usePnpm, options.useYarn].filter(Boolean).length > 1) {\n logger.fatal(\n `You cannot specify multiple package managers at the same time ${chalk.bold('(--use-npm, --use-pnpm, --use-yarn)')}`\n );\n }\n\n if (options.quickstart && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--quickstart')}`\n );\n }\n\n if (options.nonInteractive && !directory) {\n logger.fatal(\n `Please specify the ${chalk.bold('<directory>')} of your project when using ${chalk.bold('--non-interactive')}`\n );\n }\n\n const skipPrompts = options.quickstart || options.nonInteractive;\n\n checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n let shouldCreateGrowthSsoTrial = false;\n if (!options.skipCloud && !options.nonInteractive) {\n shouldCreateGrowthSsoTrial = await handleCloudLogin();\n }\n\n const tmpPath = join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);\n\n const randomUUID = crypto.randomUUID();\n const uuid = (process.env.STRAPI_UUID_PREFIX || '') + randomUUID;\n const installId = installID(uuid);\n\n const scope: Scope = {\n rootPath,\n name: basename(rootPath),\n packageManager: getPkgManager(options),\n database: await getDatabaseInfos(options),\n template: options.template,\n templateBranch: options.templateBranch,\n templatePath: options.templatePath,\n isQuickstart: options.quickstart,\n useExample: false,\n runApp: options.quickstart === true && options.run !== false,\n strapiVersion: version,\n packageJsonStrapi: {\n template: options.template,\n },\n uuid,\n docker: process.env.DOCKER === 'true',\n installId,\n tmpPath,\n gitInit: true,\n devDependencies: {},\n dependencies: {\n '@strapi/strapi': version,\n '@strapi/plugin-users-permissions': version,\n '@strapi/plugin-cloud': version,\n // third party\n react: '^18.0.0',\n 'react-dom': '^18.0.0',\n 'react-router-dom': '^6.0.0',\n 'styled-components': '^6.0.0',\n },\n shouldCreateGrowthSsoTrial,\n };\n\n if (options.template !== undefined) {\n scope.useExample = false;\n } else if (options.example === true) {\n scope.useExample = true;\n } else if (options.example === false || skipPrompts) {\n scope.useExample = false;\n } else {\n scope.useExample = await prompts.example();\n }\n\n if (options.javascript === true) {\n scope.useTypescript = false;\n } else if (options.typescript === true || skipPrompts) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n scope.installDependencies = await resolveOption(options.install, skipPrompts, true, () =>\n prompts.installDependencies(scope.packageManager)\n );\n\n if (scope.useTypescript) {\n scope.devDependencies = {\n ...scope.devDependencies,\n typescript: '^5',\n '@types/node': '^20',\n '@types/react': '^18',\n '@types/react-dom': '^18',\n };\n }\n\n scope.gitInit = await resolveOption(options.gitInit, skipPrompts, true, prompts.gitInit);\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\n/**\n * Resolves a boolean CLI option: explicit flag wins, then non-interactive default, then interactive prompt.\n */\nasync function resolveOption(\n explicitValue: boolean | undefined,\n skipPrompts: boolean | undefined,\n defaultValue: boolean,\n promptFn: () => Promise<boolean>\n): Promise<boolean> {\n if (explicitValue !== undefined) return explicitValue;\n if (skipPrompts) return defaultValue;\n return promptFn();\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","addOption","Option","hideHelp","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","nonInteractive","skipPrompts","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","shouldCreateGrowthSsoTrial","skipCloud","handleCloudLogin","tmpPath","os","tmpdir","crypto","randomBytes","toString","randomUUID","uuid","process","env","STRAPI_UUID_PREFIX","installId","installID","scope","name","basename","packageManager","getPkgManager","database","getDatabaseInfos","templateBranch","templatePath","isQuickstart","useExample","runApp","strapiVersion","packageJsonStrapi","docker","DOCKER","gitInit","devDependencies","dependencies","react","useTypescript","installDependencies","resolveOption","install","addDatabaseDependencies","createStrapi","error","Error","trackError","message","explicitValue","defaultValue","promptFn","userAgent","npm_config_user_agent"],"mappings":"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"}
|
|
@@ -5,19 +5,24 @@ var chalk = require('chalk');
|
|
|
5
5
|
var fse = require('fs-extra');
|
|
6
6
|
var logger = require('./logger.js');
|
|
7
7
|
|
|
8
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
|
|
10
|
+
var chalk__default = /*#__PURE__*/_interopDefault(chalk);
|
|
11
|
+
var fse__default = /*#__PURE__*/_interopDefault(fse);
|
|
12
|
+
|
|
8
13
|
// Checks if the an empty directory exists at rootPath
|
|
9
14
|
async function checkInstallPath(directory) {
|
|
10
15
|
const rootPath = path.resolve(directory);
|
|
11
|
-
if (await
|
|
12
|
-
const stat = await
|
|
16
|
+
if (await fse__default.default.pathExists(rootPath)) {
|
|
17
|
+
const stat = await fse__default.default.stat(rootPath);
|
|
13
18
|
if (!stat.isDirectory()) {
|
|
14
|
-
logger.logger.fatal(`${
|
|
19
|
+
logger.logger.fatal(`${chalk__default.default.green(rootPath)} is not a directory. Make sure to create a Strapi application in an empty directory.`);
|
|
15
20
|
}
|
|
16
|
-
const files = await
|
|
21
|
+
const files = await fse__default.default.readdir(rootPath);
|
|
17
22
|
if (files.length > 1) {
|
|
18
23
|
logger.logger.fatal([
|
|
19
24
|
'You can only create a Strapi app in an empty directory',
|
|
20
|
-
`Make sure ${
|
|
25
|
+
`Make sure ${chalk__default.default.green(rootPath)} is empty.`
|
|
21
26
|
]);
|
|
22
27
|
}
|
|
23
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-install-path.js","sources":["../../src/utils/check-install-path.ts"],"sourcesContent":["import { resolve } from 'node:path';\nimport chalk from 'chalk';\nimport fse from 'fs-extra';\nimport { logger } from './logger';\n\n// Checks if the an empty directory exists at rootPath\nexport async function checkInstallPath(directory: string): Promise<string> {\n const rootPath = resolve(directory);\n\n if (await fse.pathExists(rootPath)) {\n const stat = await fse.stat(rootPath);\n\n if (!stat.isDirectory()) {\n logger.fatal(\n `${chalk.green(\n rootPath\n )} is not a directory. Make sure to create a Strapi application in an empty directory.`\n );\n }\n\n const files = await fse.readdir(rootPath);\n if (files.length > 1) {\n logger.fatal([\n 'You can only create a Strapi app in an empty directory',\n `Make sure ${chalk.green(rootPath)} is empty.`,\n ]);\n }\n }\n\n return rootPath;\n}\n"],"names":["checkInstallPath","directory","rootPath","resolve","fse","pathExists","stat","isDirectory","logger","fatal","chalk","green","files","readdir","length"],"mappings":"
|
|
1
|
+
{"version":3,"file":"check-install-path.js","sources":["../../src/utils/check-install-path.ts"],"sourcesContent":["import { resolve } from 'node:path';\nimport chalk from 'chalk';\nimport fse from 'fs-extra';\nimport { logger } from './logger';\n\n// Checks if the an empty directory exists at rootPath\nexport async function checkInstallPath(directory: string): Promise<string> {\n const rootPath = resolve(directory);\n\n if (await fse.pathExists(rootPath)) {\n const stat = await fse.stat(rootPath);\n\n if (!stat.isDirectory()) {\n logger.fatal(\n `${chalk.green(\n rootPath\n )} is not a directory. Make sure to create a Strapi application in an empty directory.`\n );\n }\n\n const files = await fse.readdir(rootPath);\n if (files.length > 1) {\n logger.fatal([\n 'You can only create a Strapi app in an empty directory',\n `Make sure ${chalk.green(rootPath)} is empty.`,\n ]);\n }\n }\n\n return rootPath;\n}\n"],"names":["checkInstallPath","directory","rootPath","resolve","fse","pathExists","stat","isDirectory","logger","fatal","chalk","green","files","readdir","length"],"mappings":";;;;;;;;;;;;AAKA;AACO,eAAeA,iBAAiBC,SAAiB,EAAA;AACtD,IAAA,MAAMC,WAAWC,YAAAA,CAAQF,SAAAA,CAAAA;AAEzB,IAAA,IAAI,MAAMG,oBAAAA,CAAIC,UAAU,CAACH,QAAAA,CAAAA,EAAW;AAClC,QAAA,MAAMI,IAAAA,GAAO,MAAMF,oBAAAA,CAAIE,IAAI,CAACJ,QAAAA,CAAAA;QAE5B,IAAI,CAACI,IAAAA,CAAKC,WAAW,EAAA,EAAI;YACvBC,aAAAA,CAAOC,KAAK,CACV,CAAA,EAAGC,sBAAAA,CAAMC,KAAK,CACZT,QAAAA,CAAAA,CACA,oFAAoF,CAAC,CAAA;AAE3F,QAAA;AAEA,QAAA,MAAMU,KAAAA,GAAQ,MAAMR,oBAAAA,CAAIS,OAAO,CAACX,QAAAA,CAAAA;QAChC,IAAIU,KAAAA,CAAME,MAAM,GAAG,CAAA,EAAG;AACpBN,YAAAA,aAAAA,CAAOC,KAAK,CAAC;AACX,gBAAA,wDAAA;AACA,gBAAA,CAAC,UAAU,EAAEC,sBAAAA,CAAMC,KAAK,CAACT,QAAAA,CAAAA,CAAU,UAAU;AAC9C,aAAA,CAAA;AACH,QAAA;AACF,IAAA;IAEA,OAAOA,QAAAA;AACT;;;;"}
|
|
@@ -5,19 +5,24 @@ var semver = require('semver');
|
|
|
5
5
|
var engines = require('./engines.js');
|
|
6
6
|
var logger = require('./logger.js');
|
|
7
7
|
|
|
8
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
|
|
10
|
+
var chalk__default = /*#__PURE__*/_interopDefault(chalk);
|
|
11
|
+
var semver__default = /*#__PURE__*/_interopDefault(semver);
|
|
12
|
+
|
|
8
13
|
function checkNodeRequirements() {
|
|
9
14
|
const currentNodeVersion = process.versions.node;
|
|
10
15
|
// error if the node version isn't supported
|
|
11
|
-
if (!
|
|
16
|
+
if (!semver__default.default.satisfies(currentNodeVersion, engines.engines.node)) {
|
|
12
17
|
logger.logger.fatal([
|
|
13
|
-
|
|
14
|
-
`Strapi requires ${
|
|
18
|
+
chalk__default.default.red(`You are running ${chalk__default.default.bold(`Node.js ${currentNodeVersion}`)}`),
|
|
19
|
+
`Strapi requires ${chalk__default.default.bold(chalk__default.default.green(`Node.js ${engines.engines.node}`))}`,
|
|
15
20
|
'Please make sure to use the right version of Node.'
|
|
16
21
|
]);
|
|
17
|
-
} else if (
|
|
22
|
+
} else if (semver__default.default.major(currentNodeVersion) % 2 !== 0) {
|
|
18
23
|
logger.logger.warn([
|
|
19
|
-
|
|
20
|
-
`Strapi only supports ${
|
|
24
|
+
chalk__default.default.yellow(`You are running ${chalk__default.default.bold(`Node.js ${currentNodeVersion}`)}`),
|
|
25
|
+
`Strapi only supports ${chalk__default.default.bold(chalk__default.default.green('LTS versions of Node.js'))}, other versions may not be compatible.`
|
|
21
26
|
]);
|
|
22
27
|
}
|
|
23
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-requirements.js","sources":["../../src/utils/check-requirements.ts"],"sourcesContent":["import chalk from 'chalk';\nimport semver from 'semver';\n\nimport { engines } from './engines';\nimport { logger } from './logger';\n\nexport function checkNodeRequirements() {\n const currentNodeVersion = process.versions.node;\n\n // error if the node version isn't supported\n if (!semver.satisfies(currentNodeVersion, engines.node)) {\n logger.fatal([\n chalk.red(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi requires ${chalk.bold(chalk.green(`Node.js ${engines.node}`))}`,\n 'Please make sure to use the right version of Node.',\n ]);\n }\n\n // warn if not using a LTS version\n else if (semver.major(currentNodeVersion) % 2 !== 0) {\n logger.warn([\n chalk.yellow(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi only supports ${chalk.bold(chalk.green('LTS versions of Node.js'))}, other versions may not be compatible.`,\n ]);\n }\n}\n"],"names":["checkNodeRequirements","currentNodeVersion","process","versions","node","semver","satisfies","engines","logger","fatal","chalk","red","bold","green","major","warn","yellow"],"mappings":"
|
|
1
|
+
{"version":3,"file":"check-requirements.js","sources":["../../src/utils/check-requirements.ts"],"sourcesContent":["import chalk from 'chalk';\nimport semver from 'semver';\n\nimport { engines } from './engines';\nimport { logger } from './logger';\n\nexport function checkNodeRequirements() {\n const currentNodeVersion = process.versions.node;\n\n // error if the node version isn't supported\n if (!semver.satisfies(currentNodeVersion, engines.node)) {\n logger.fatal([\n chalk.red(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi requires ${chalk.bold(chalk.green(`Node.js ${engines.node}`))}`,\n 'Please make sure to use the right version of Node.',\n ]);\n }\n\n // warn if not using a LTS version\n else if (semver.major(currentNodeVersion) % 2 !== 0) {\n logger.warn([\n chalk.yellow(`You are running ${chalk.bold(`Node.js ${currentNodeVersion}`)}`),\n `Strapi only supports ${chalk.bold(chalk.green('LTS versions of Node.js'))}, other versions may not be compatible.`,\n ]);\n }\n}\n"],"names":["checkNodeRequirements","currentNodeVersion","process","versions","node","semver","satisfies","engines","logger","fatal","chalk","red","bold","green","major","warn","yellow"],"mappings":";;;;;;;;;;;;AAMO,SAASA,qBAAAA,GAAAA;AACd,IAAA,MAAMC,kBAAAA,GAAqBC,OAAAA,CAAQC,QAAQ,CAACC,IAAI;;AAGhD,IAAA,IAAI,CAACC,uBAAAA,CAAOC,SAAS,CAACL,kBAAAA,EAAoBM,eAAAA,CAAQH,IAAI,CAAA,EAAG;AACvDI,QAAAA,aAAAA,CAAOC,KAAK,CAAC;AACXC,YAAAA,sBAAAA,CAAMC,GAAG,CAAC,CAAC,gBAAgB,EAAED,sBAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEX,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;AAC1E,YAAA,CAAC,gBAAgB,EAAES,sBAAAA,CAAME,IAAI,CAACF,sBAAAA,CAAMG,KAAK,CAAC,CAAC,QAAQ,EAAEN,eAAAA,CAAQH,IAAI,EAAE,CAAA,CAAA,CAAA,CAAI;AACvE,YAAA;AACD,SAAA,CAAA;AACH,IAAA,CAAA,MAGK,IAAIC,uBAAAA,CAAOS,KAAK,CAACb,kBAAAA,CAAAA,GAAsB,MAAM,CAAA,EAAG;AACnDO,QAAAA,aAAAA,CAAOO,IAAI,CAAC;AACVL,YAAAA,sBAAAA,CAAMM,MAAM,CAAC,CAAC,gBAAgB,EAAEN,sBAAAA,CAAME,IAAI,CAAC,CAAC,QAAQ,EAAEX,kBAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAG,CAAA;YAC7E,CAAC,qBAAqB,EAAES,sBAAAA,CAAME,IAAI,CAACF,uBAAMG,KAAK,CAAC,yBAAA,CAAA,CAAA,CAA4B,uCAAuC;AACnH,SAAA,CAAA;AACH,IAAA;AACF;;;;"}
|
package/dist/utils/dot-env.js
CHANGED
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
var crypto = require('crypto');
|
|
4
4
|
var _ = require('lodash');
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var crypto__default = /*#__PURE__*/_interopDefault(crypto);
|
|
9
|
+
var ___default = /*#__PURE__*/_interopDefault(_);
|
|
10
|
+
|
|
11
|
+
const generateASecret = ()=>crypto__default.default.randomBytes(16).toString('base64');
|
|
7
12
|
const envTmpl = `
|
|
8
13
|
# Server
|
|
9
14
|
HOST=0.0.0.0
|
|
@@ -27,7 +32,7 @@ DATABASE_SSL=<%= database.connection.ssl %>
|
|
|
27
32
|
DATABASE_FILENAME=<%= database.connection.filename %>
|
|
28
33
|
`;
|
|
29
34
|
function generateDotEnv(scope) {
|
|
30
|
-
const compile =
|
|
35
|
+
const compile = ___default.default.template(envTmpl);
|
|
31
36
|
return compile({
|
|
32
37
|
appKeys: new Array(4).fill(null).map(generateASecret).join(','),
|
|
33
38
|
apiTokenSalt: generateASecret(),
|