create-strapi-app 5.58.0 → 5.60.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.d.ts.map +1 -1
- package/dist/create-strapi.js +19 -22
- package/dist/create-strapi.js.map +1 -1
- package/dist/create-strapi.mjs +20 -23
- package/dist/create-strapi.mjs.map +1 -1
- package/dist/utils/database.js +1 -1
- package/dist/utils/database.js.map +1 -1
- package/dist/utils/database.mjs +1 -1
- package/dist/utils/database.mjs.map +1 -1
- package/package.json +6 -6
- package/templates/example/scripts/seed.js +3 -3
- package/templates/example-js/scripts/seed.js +3 -3
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AA4QD,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/create-strapi.js
CHANGED
|
@@ -226,22 +226,6 @@ async function createApp(scope) {
|
|
|
226
226
|
}
|
|
227
227
|
const cmd = chalk__default.default.cyan(`${packageManager} run`);
|
|
228
228
|
logger.logger.title('Strapi', `Your application was created!`);
|
|
229
|
-
logger.logger.log([
|
|
230
|
-
'Available commands in your project:',
|
|
231
|
-
'',
|
|
232
|
-
'Start Strapi in watch mode. (Changes in Strapi project files will trigger a server restart)',
|
|
233
|
-
`${cmd} develop`,
|
|
234
|
-
'',
|
|
235
|
-
'Start Strapi without watch mode.',
|
|
236
|
-
`${cmd} start`,
|
|
237
|
-
'',
|
|
238
|
-
'Build Strapi admin panel.',
|
|
239
|
-
`${cmd} build`,
|
|
240
|
-
'',
|
|
241
|
-
'Deploy Strapi project.',
|
|
242
|
-
`${cmd} deploy`,
|
|
243
|
-
''
|
|
244
|
-
]);
|
|
245
229
|
if (useExample) {
|
|
246
230
|
logger.logger.log([
|
|
247
231
|
'Seed your database with sample data.',
|
|
@@ -249,26 +233,29 @@ async function createApp(scope) {
|
|
|
249
233
|
''
|
|
250
234
|
]);
|
|
251
235
|
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
`${cmd} strapi\n`
|
|
255
|
-
]);
|
|
236
|
+
// show the folder relative to where the command ran, not the absolute path
|
|
237
|
+
const projectFolder = getDisplayFolder(path.relative(process.cwd(), rootPath));
|
|
256
238
|
if (installDependencies) {
|
|
257
239
|
logger.logger.log([
|
|
258
240
|
'To get started run',
|
|
259
241
|
'',
|
|
260
|
-
`${chalk__default.default.cyan('cd')} ${
|
|
242
|
+
`${chalk__default.default.cyan('cd')} ${projectFolder}`,
|
|
261
243
|
!shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`
|
|
262
244
|
]);
|
|
263
245
|
} else {
|
|
264
246
|
logger.logger.log([
|
|
265
247
|
'To get started run',
|
|
266
248
|
'',
|
|
267
|
-
`${chalk__default.default.cyan('cd')} ${
|
|
249
|
+
`${chalk__default.default.cyan('cd')} ${projectFolder}`,
|
|
268
250
|
`${chalk__default.default.cyan(packageManager)} install`,
|
|
269
251
|
!shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`
|
|
270
252
|
]);
|
|
271
253
|
}
|
|
254
|
+
logger.logger.log([
|
|
255
|
+
'',
|
|
256
|
+
'Documentation:',
|
|
257
|
+
'Quick Start Guide : https://docs.strapi.io/cms/quick-start'
|
|
258
|
+
]);
|
|
272
259
|
if (runApp && installDependencies) {
|
|
273
260
|
logger.logger.title('Run', 'Running your Strapi application');
|
|
274
261
|
try {
|
|
@@ -298,6 +285,16 @@ async function createApp(scope) {
|
|
|
298
285
|
}
|
|
299
286
|
}
|
|
300
287
|
}
|
|
288
|
+
// prefix child folders with ./ so names like -site or ~site are not read as an option or a home path
|
|
289
|
+
function getDisplayFolder(relativeFolder) {
|
|
290
|
+
if (!relativeFolder) {
|
|
291
|
+
return '.';
|
|
292
|
+
}
|
|
293
|
+
if (path.isAbsolute(relativeFolder) || relativeFolder === '..' || relativeFolder.startsWith(`..${path.sep}`)) {
|
|
294
|
+
return relativeFolder;
|
|
295
|
+
}
|
|
296
|
+
return `.${path.sep}${relativeFolder}`;
|
|
297
|
+
}
|
|
301
298
|
async function runInstall({ rootPath, packageManager }) {
|
|
302
299
|
// include same cwd and env to ensure version check returns same version we use below
|
|
303
300
|
const { envArgs, cmdArgs } = await getPackageManagerArgs.getInstallArgs(packageManager, {
|
|
@@ -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 { 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 {\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 {\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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"}
|
|
1
|
+
{"version":3,"file":"create-strapi.js","sources":["../src/create-strapi.ts"],"sourcesContent":["import { isAbsolute, join, relative, sep } 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 {\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 {\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 if (useExample) {\n logger.log(['Seed your database with sample data.', `${cmd} seed:example`, '']);\n }\n\n // show the folder relative to where the command ran, not the absolute path\n const projectFolder = getDisplayFolder(relative(process.cwd(), rootPath));\n\n if (installDependencies) {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${projectFolder}`,\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')} ${projectFolder}`,\n `${chalk.cyan(packageManager)} install`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n }\n\n logger.log(['', 'Documentation:', 'Quick Start Guide : https://docs.strapi.io/cms/quick-start']);\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\n// prefix child folders with ./ so names like -site or ~site are not read as an option or a home path\nfunction getDisplayFolder(relativeFolder: string) {\n if (!relativeFolder) {\n return '.';\n }\n\n if (\n isAbsolute(relativeFolder) ||\n relativeFolder === '..' ||\n relativeFolder.startsWith(`..${sep}`)\n ) {\n return relativeFolder;\n }\n\n return `.${sep}${relativeFolder}`;\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","projectFolder","getDisplayFolder","relative","FORCE_COLOR","relativeFolder","isAbsolute","startsWith","sep","envArgs","cmdArgs","getInstallArgs","NODE_ENV","options","proc"],"mappings":"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"}
|
package/dist/create-strapi.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
1
|
+
import { join, relative, isAbsolute, sep } from 'node:path';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import execa from 'execa';
|
|
4
4
|
import fse from 'fs-extra';
|
|
@@ -217,22 +217,6 @@ async function createApp(scope) {
|
|
|
217
217
|
}
|
|
218
218
|
const cmd = chalk.cyan(`${packageManager} run`);
|
|
219
219
|
logger.title('Strapi', `Your application was created!`);
|
|
220
|
-
logger.log([
|
|
221
|
-
'Available commands in your project:',
|
|
222
|
-
'',
|
|
223
|
-
'Start Strapi in watch mode. (Changes in Strapi project files will trigger a server restart)',
|
|
224
|
-
`${cmd} develop`,
|
|
225
|
-
'',
|
|
226
|
-
'Start Strapi without watch mode.',
|
|
227
|
-
`${cmd} start`,
|
|
228
|
-
'',
|
|
229
|
-
'Build Strapi admin panel.',
|
|
230
|
-
`${cmd} build`,
|
|
231
|
-
'',
|
|
232
|
-
'Deploy Strapi project.',
|
|
233
|
-
`${cmd} deploy`,
|
|
234
|
-
''
|
|
235
|
-
]);
|
|
236
220
|
if (useExample) {
|
|
237
221
|
logger.log([
|
|
238
222
|
'Seed your database with sample data.',
|
|
@@ -240,26 +224,29 @@ async function createApp(scope) {
|
|
|
240
224
|
''
|
|
241
225
|
]);
|
|
242
226
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
`${cmd} strapi\n`
|
|
246
|
-
]);
|
|
227
|
+
// show the folder relative to where the command ran, not the absolute path
|
|
228
|
+
const projectFolder = getDisplayFolder(relative(process.cwd(), rootPath));
|
|
247
229
|
if (installDependencies) {
|
|
248
230
|
logger.log([
|
|
249
231
|
'To get started run',
|
|
250
232
|
'',
|
|
251
|
-
`${chalk.cyan('cd')} ${
|
|
233
|
+
`${chalk.cyan('cd')} ${projectFolder}`,
|
|
252
234
|
!shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`
|
|
253
235
|
]);
|
|
254
236
|
} else {
|
|
255
237
|
logger.log([
|
|
256
238
|
'To get started run',
|
|
257
239
|
'',
|
|
258
|
-
`${chalk.cyan('cd')} ${
|
|
240
|
+
`${chalk.cyan('cd')} ${projectFolder}`,
|
|
259
241
|
`${chalk.cyan(packageManager)} install`,
|
|
260
242
|
!shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`
|
|
261
243
|
]);
|
|
262
244
|
}
|
|
245
|
+
logger.log([
|
|
246
|
+
'',
|
|
247
|
+
'Documentation:',
|
|
248
|
+
'Quick Start Guide : https://docs.strapi.io/cms/quick-start'
|
|
249
|
+
]);
|
|
263
250
|
if (runApp && installDependencies) {
|
|
264
251
|
logger.title('Run', 'Running your Strapi application');
|
|
265
252
|
try {
|
|
@@ -289,6 +276,16 @@ async function createApp(scope) {
|
|
|
289
276
|
}
|
|
290
277
|
}
|
|
291
278
|
}
|
|
279
|
+
// prefix child folders with ./ so names like -site or ~site are not read as an option or a home path
|
|
280
|
+
function getDisplayFolder(relativeFolder) {
|
|
281
|
+
if (!relativeFolder) {
|
|
282
|
+
return '.';
|
|
283
|
+
}
|
|
284
|
+
if (isAbsolute(relativeFolder) || relativeFolder === '..' || relativeFolder.startsWith(`..${sep}`)) {
|
|
285
|
+
return relativeFolder;
|
|
286
|
+
}
|
|
287
|
+
return `.${sep}${relativeFolder}`;
|
|
288
|
+
}
|
|
292
289
|
async function runInstall({ rootPath, packageManager }) {
|
|
293
290
|
// include same cwd and env to ensure version check returns same version we use below
|
|
294
291
|
const { envArgs, cmdArgs } = await getInstallArgs(packageManager, {
|
|
@@ -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 { 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 {\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 {\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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"}
|
|
1
|
+
{"version":3,"file":"create-strapi.mjs","sources":["../src/create-strapi.ts"],"sourcesContent":["import { isAbsolute, join, relative, sep } 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 {\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 {\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 if (useExample) {\n logger.log(['Seed your database with sample data.', `${cmd} seed:example`, '']);\n }\n\n // show the folder relative to where the command ran, not the absolute path\n const projectFolder = getDisplayFolder(relative(process.cwd(), rootPath));\n\n if (installDependencies) {\n logger.log([\n 'To get started run',\n '',\n `${chalk.cyan('cd')} ${projectFolder}`,\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')} ${projectFolder}`,\n `${chalk.cyan(packageManager)} install`,\n !shouldRunSeed && useExample ? `${cmd} seed:example && ${cmd} develop` : `${cmd} develop`,\n ]);\n }\n\n logger.log(['', 'Documentation:', 'Quick Start Guide : https://docs.strapi.io/cms/quick-start']);\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\n// prefix child folders with ./ so names like -site or ~site are not read as an option or a home path\nfunction getDisplayFolder(relativeFolder: string) {\n if (!relativeFolder) {\n return '.';\n }\n\n if (\n isAbsolute(relativeFolder) ||\n relativeFolder === '..' ||\n relativeFolder.startsWith(`..${sep}`)\n ) {\n return relativeFolder;\n }\n\n return `.${sep}${relativeFolder}`;\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","projectFolder","getDisplayFolder","relative","FORCE_COLOR","relativeFolder","isAbsolute","startsWith","sep","envArgs","cmdArgs","getInstallArgs","NODE_ENV","options","proc"],"mappings":"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"}
|
package/dist/utils/database.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sources":["../../src/utils/database.ts"],"sourcesContent":["import type { Question } from 'inquirer';\n\nimport type { Scope, Options, DBClient, DBConfig } from '../types';\nimport { logger } from './logger';\n\nconst DBOptions = ['dbclient', 'dbhost', 'dbport', 'dbname', 'dbusername', 'dbpassword'];\n\nconst VALID_CLIENTS = ['sqlite', 'mysql', 'postgres'] as const;\n\nconst DEFAULT_CONFIG: DBConfig = {\n client: 'sqlite',\n connection: {\n filename: '.tmp/data.db',\n },\n};\n\nasync function dbPrompt() {\n const { default: inquirer } = await import('inquirer');\n const { useDefault } = await inquirer.prompt<{ useDefault: boolean }>([\n {\n type: 'confirm',\n name: 'useDefault',\n message: 'Do you want to use the default database (sqlite) ?',\n default: true,\n },\n ]);\n\n if (useDefault) {\n return DEFAULT_CONFIG;\n }\n\n const { client } = await inquirer.prompt<{ client: DBClient }>([\n {\n type: 'list',\n name: 'client',\n message: 'Choose your default database client',\n choices: ['sqlite', 'postgres', 'mysql'],\n default: 'sqlite',\n },\n ]);\n\n const questions = dbQuestions[client].map((q) => q({ client }));\n\n const responses = await inquirer.prompt(questions);\n\n return {\n client,\n connection: responses,\n };\n}\n\nexport async function getDatabaseInfos(options: Options): Promise<DBConfig> {\n if (options.skipDb) {\n return DEFAULT_CONFIG;\n }\n\n if (options.dbclient && !VALID_CLIENTS.includes(options.dbclient)) {\n logger.fatal(\n `Invalid --dbclient: ${options.dbclient}, expected one of ${VALID_CLIENTS.join(', ')}`\n );\n }\n\n const matchingArgs = DBOptions.filter((key) => key in options);\n const missingArgs = DBOptions.filter((key) => !(key in options));\n\n if (\n matchingArgs.length > 0 &&\n matchingArgs.length !== DBOptions.length &&\n options.dbclient !== 'sqlite'\n ) {\n logger.fatal(`Required database arguments are missing: ${missingArgs.join(', ')}.`);\n }\n\n const hasDBOptions = DBOptions.some((key) => key in options);\n\n if (!hasDBOptions) {\n if (options.quickstart || options.nonInteractive) {\n return DEFAULT_CONFIG;\n }\n\n return dbPrompt();\n }\n\n if (!options.dbclient) {\n return logger.fatal('Please specify the database client');\n }\n\n const database: DBConfig = {\n client: options.dbclient,\n connection: {\n host: options.dbhost,\n port: options.dbport,\n database: options.dbname,\n username: options.dbusername,\n password: options.dbpassword,\n filename: options.dbfile,\n },\n };\n\n if (options.dbssl !== undefined) {\n database.connection.ssl = options.dbssl === 'true';\n }\n\n return database;\n}\n\nconst sqlClientModule = {\n mysql: { mysql2: '3.20.0' },\n postgres: { pg: '8.20.0' },\n sqlite: { 'better-sqlite3': '12.
|
|
1
|
+
{"version":3,"file":"database.js","sources":["../../src/utils/database.ts"],"sourcesContent":["import type { Question } from 'inquirer';\n\nimport type { Scope, Options, DBClient, DBConfig } from '../types';\nimport { logger } from './logger';\n\nconst DBOptions = ['dbclient', 'dbhost', 'dbport', 'dbname', 'dbusername', 'dbpassword'];\n\nconst VALID_CLIENTS = ['sqlite', 'mysql', 'postgres'] as const;\n\nconst DEFAULT_CONFIG: DBConfig = {\n client: 'sqlite',\n connection: {\n filename: '.tmp/data.db',\n },\n};\n\nasync function dbPrompt() {\n const { default: inquirer } = await import('inquirer');\n const { useDefault } = await inquirer.prompt<{ useDefault: boolean }>([\n {\n type: 'confirm',\n name: 'useDefault',\n message: 'Do you want to use the default database (sqlite) ?',\n default: true,\n },\n ]);\n\n if (useDefault) {\n return DEFAULT_CONFIG;\n }\n\n const { client } = await inquirer.prompt<{ client: DBClient }>([\n {\n type: 'list',\n name: 'client',\n message: 'Choose your default database client',\n choices: ['sqlite', 'postgres', 'mysql'],\n default: 'sqlite',\n },\n ]);\n\n const questions = dbQuestions[client].map((q) => q({ client }));\n\n const responses = await inquirer.prompt(questions);\n\n return {\n client,\n connection: responses,\n };\n}\n\nexport async function getDatabaseInfos(options: Options): Promise<DBConfig> {\n if (options.skipDb) {\n return DEFAULT_CONFIG;\n }\n\n if (options.dbclient && !VALID_CLIENTS.includes(options.dbclient)) {\n logger.fatal(\n `Invalid --dbclient: ${options.dbclient}, expected one of ${VALID_CLIENTS.join(', ')}`\n );\n }\n\n const matchingArgs = DBOptions.filter((key) => key in options);\n const missingArgs = DBOptions.filter((key) => !(key in options));\n\n if (\n matchingArgs.length > 0 &&\n matchingArgs.length !== DBOptions.length &&\n options.dbclient !== 'sqlite'\n ) {\n logger.fatal(`Required database arguments are missing: ${missingArgs.join(', ')}.`);\n }\n\n const hasDBOptions = DBOptions.some((key) => key in options);\n\n if (!hasDBOptions) {\n if (options.quickstart || options.nonInteractive) {\n return DEFAULT_CONFIG;\n }\n\n return dbPrompt();\n }\n\n if (!options.dbclient) {\n return logger.fatal('Please specify the database client');\n }\n\n const database: DBConfig = {\n client: options.dbclient,\n connection: {\n host: options.dbhost,\n port: options.dbport,\n database: options.dbname,\n username: options.dbusername,\n password: options.dbpassword,\n filename: options.dbfile,\n },\n };\n\n if (options.dbssl !== undefined) {\n database.connection.ssl = options.dbssl === 'true';\n }\n\n return database;\n}\n\nconst sqlClientModule = {\n mysql: { mysql2: '3.20.0' },\n postgres: { pg: '8.20.0' },\n sqlite: { 'better-sqlite3': '12.11.1' },\n};\n\nexport function addDatabaseDependencies(scope: Scope) {\n scope.dependencies = {\n ...scope.dependencies,\n ...sqlClientModule[scope.database.client],\n };\n}\n\ninterface QuestionFactory {\n (options: { client: DBClient }): Question;\n}\n\nconst DEFAULT_PORTS = {\n postgres: 5432,\n mysql: 3306,\n sqlite: undefined,\n};\n\nconst database: QuestionFactory = () => ({\n type: 'input',\n name: 'database',\n message: 'Database name:',\n default: 'strapi',\n validate(value: string) {\n if (value.includes('.')) {\n return `The database name can't contain a \".\"`;\n }\n\n return true;\n },\n});\n\nconst host: QuestionFactory = () => ({\n type: 'input',\n name: 'host',\n message: 'Host:',\n default: '127.0.0.1',\n});\n\nconst port: QuestionFactory = ({ client }) => ({\n type: 'input',\n name: 'port',\n message: 'Port:',\n default: DEFAULT_PORTS[client],\n});\n\nconst username: QuestionFactory = () => ({\n type: 'input',\n name: 'username',\n message: 'Username:',\n});\n\nconst password: QuestionFactory = () => ({\n type: 'password',\n name: 'password',\n message: 'Password:',\n mask: '*',\n});\n\nconst ssl: QuestionFactory = () => ({\n type: 'confirm',\n name: 'ssl',\n message: 'Enable SSL connection:',\n default: false,\n});\n\nconst filename: QuestionFactory = () => ({\n type: 'input',\n name: 'filename',\n message: 'Filename:',\n default: '.tmp/data.db',\n});\n\nconst dbQuestions = {\n sqlite: [filename],\n postgres: [database, host, port, username, password, ssl],\n mysql: [database, host, port, username, password, ssl],\n};\n"],"names":["DBOptions","VALID_CLIENTS","DEFAULT_CONFIG","client","connection","filename","dbPrompt","default","inquirer","useDefault","prompt","type","name","message","choices","questions","dbQuestions","map","q","responses","getDatabaseInfos","options","skipDb","dbclient","includes","logger","fatal","join","matchingArgs","filter","key","missingArgs","length","hasDBOptions","some","quickstart","nonInteractive","database","host","dbhost","port","dbport","dbname","username","dbusername","password","dbpassword","dbfile","dbssl","undefined","ssl","sqlClientModule","mysql","mysql2","postgres","pg","sqlite","addDatabaseDependencies","scope","dependencies","DEFAULT_PORTS","validate","value","mask"],"mappings":"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"}
|
package/dist/utils/database.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.mjs","sources":["../../src/utils/database.ts"],"sourcesContent":["import type { Question } from 'inquirer';\n\nimport type { Scope, Options, DBClient, DBConfig } from '../types';\nimport { logger } from './logger';\n\nconst DBOptions = ['dbclient', 'dbhost', 'dbport', 'dbname', 'dbusername', 'dbpassword'];\n\nconst VALID_CLIENTS = ['sqlite', 'mysql', 'postgres'] as const;\n\nconst DEFAULT_CONFIG: DBConfig = {\n client: 'sqlite',\n connection: {\n filename: '.tmp/data.db',\n },\n};\n\nasync function dbPrompt() {\n const { default: inquirer } = await import('inquirer');\n const { useDefault } = await inquirer.prompt<{ useDefault: boolean }>([\n {\n type: 'confirm',\n name: 'useDefault',\n message: 'Do you want to use the default database (sqlite) ?',\n default: true,\n },\n ]);\n\n if (useDefault) {\n return DEFAULT_CONFIG;\n }\n\n const { client } = await inquirer.prompt<{ client: DBClient }>([\n {\n type: 'list',\n name: 'client',\n message: 'Choose your default database client',\n choices: ['sqlite', 'postgres', 'mysql'],\n default: 'sqlite',\n },\n ]);\n\n const questions = dbQuestions[client].map((q) => q({ client }));\n\n const responses = await inquirer.prompt(questions);\n\n return {\n client,\n connection: responses,\n };\n}\n\nexport async function getDatabaseInfos(options: Options): Promise<DBConfig> {\n if (options.skipDb) {\n return DEFAULT_CONFIG;\n }\n\n if (options.dbclient && !VALID_CLIENTS.includes(options.dbclient)) {\n logger.fatal(\n `Invalid --dbclient: ${options.dbclient}, expected one of ${VALID_CLIENTS.join(', ')}`\n );\n }\n\n const matchingArgs = DBOptions.filter((key) => key in options);\n const missingArgs = DBOptions.filter((key) => !(key in options));\n\n if (\n matchingArgs.length > 0 &&\n matchingArgs.length !== DBOptions.length &&\n options.dbclient !== 'sqlite'\n ) {\n logger.fatal(`Required database arguments are missing: ${missingArgs.join(', ')}.`);\n }\n\n const hasDBOptions = DBOptions.some((key) => key in options);\n\n if (!hasDBOptions) {\n if (options.quickstart || options.nonInteractive) {\n return DEFAULT_CONFIG;\n }\n\n return dbPrompt();\n }\n\n if (!options.dbclient) {\n return logger.fatal('Please specify the database client');\n }\n\n const database: DBConfig = {\n client: options.dbclient,\n connection: {\n host: options.dbhost,\n port: options.dbport,\n database: options.dbname,\n username: options.dbusername,\n password: options.dbpassword,\n filename: options.dbfile,\n },\n };\n\n if (options.dbssl !== undefined) {\n database.connection.ssl = options.dbssl === 'true';\n }\n\n return database;\n}\n\nconst sqlClientModule = {\n mysql: { mysql2: '3.20.0' },\n postgres: { pg: '8.20.0' },\n sqlite: { 'better-sqlite3': '12.
|
|
1
|
+
{"version":3,"file":"database.mjs","sources":["../../src/utils/database.ts"],"sourcesContent":["import type { Question } from 'inquirer';\n\nimport type { Scope, Options, DBClient, DBConfig } from '../types';\nimport { logger } from './logger';\n\nconst DBOptions = ['dbclient', 'dbhost', 'dbport', 'dbname', 'dbusername', 'dbpassword'];\n\nconst VALID_CLIENTS = ['sqlite', 'mysql', 'postgres'] as const;\n\nconst DEFAULT_CONFIG: DBConfig = {\n client: 'sqlite',\n connection: {\n filename: '.tmp/data.db',\n },\n};\n\nasync function dbPrompt() {\n const { default: inquirer } = await import('inquirer');\n const { useDefault } = await inquirer.prompt<{ useDefault: boolean }>([\n {\n type: 'confirm',\n name: 'useDefault',\n message: 'Do you want to use the default database (sqlite) ?',\n default: true,\n },\n ]);\n\n if (useDefault) {\n return DEFAULT_CONFIG;\n }\n\n const { client } = await inquirer.prompt<{ client: DBClient }>([\n {\n type: 'list',\n name: 'client',\n message: 'Choose your default database client',\n choices: ['sqlite', 'postgres', 'mysql'],\n default: 'sqlite',\n },\n ]);\n\n const questions = dbQuestions[client].map((q) => q({ client }));\n\n const responses = await inquirer.prompt(questions);\n\n return {\n client,\n connection: responses,\n };\n}\n\nexport async function getDatabaseInfos(options: Options): Promise<DBConfig> {\n if (options.skipDb) {\n return DEFAULT_CONFIG;\n }\n\n if (options.dbclient && !VALID_CLIENTS.includes(options.dbclient)) {\n logger.fatal(\n `Invalid --dbclient: ${options.dbclient}, expected one of ${VALID_CLIENTS.join(', ')}`\n );\n }\n\n const matchingArgs = DBOptions.filter((key) => key in options);\n const missingArgs = DBOptions.filter((key) => !(key in options));\n\n if (\n matchingArgs.length > 0 &&\n matchingArgs.length !== DBOptions.length &&\n options.dbclient !== 'sqlite'\n ) {\n logger.fatal(`Required database arguments are missing: ${missingArgs.join(', ')}.`);\n }\n\n const hasDBOptions = DBOptions.some((key) => key in options);\n\n if (!hasDBOptions) {\n if (options.quickstart || options.nonInteractive) {\n return DEFAULT_CONFIG;\n }\n\n return dbPrompt();\n }\n\n if (!options.dbclient) {\n return logger.fatal('Please specify the database client');\n }\n\n const database: DBConfig = {\n client: options.dbclient,\n connection: {\n host: options.dbhost,\n port: options.dbport,\n database: options.dbname,\n username: options.dbusername,\n password: options.dbpassword,\n filename: options.dbfile,\n },\n };\n\n if (options.dbssl !== undefined) {\n database.connection.ssl = options.dbssl === 'true';\n }\n\n return database;\n}\n\nconst sqlClientModule = {\n mysql: { mysql2: '3.20.0' },\n postgres: { pg: '8.20.0' },\n sqlite: { 'better-sqlite3': '12.11.1' },\n};\n\nexport function addDatabaseDependencies(scope: Scope) {\n scope.dependencies = {\n ...scope.dependencies,\n ...sqlClientModule[scope.database.client],\n };\n}\n\ninterface QuestionFactory {\n (options: { client: DBClient }): Question;\n}\n\nconst DEFAULT_PORTS = {\n postgres: 5432,\n mysql: 3306,\n sqlite: undefined,\n};\n\nconst database: QuestionFactory = () => ({\n type: 'input',\n name: 'database',\n message: 'Database name:',\n default: 'strapi',\n validate(value: string) {\n if (value.includes('.')) {\n return `The database name can't contain a \".\"`;\n }\n\n return true;\n },\n});\n\nconst host: QuestionFactory = () => ({\n type: 'input',\n name: 'host',\n message: 'Host:',\n default: '127.0.0.1',\n});\n\nconst port: QuestionFactory = ({ client }) => ({\n type: 'input',\n name: 'port',\n message: 'Port:',\n default: DEFAULT_PORTS[client],\n});\n\nconst username: QuestionFactory = () => ({\n type: 'input',\n name: 'username',\n message: 'Username:',\n});\n\nconst password: QuestionFactory = () => ({\n type: 'password',\n name: 'password',\n message: 'Password:',\n mask: '*',\n});\n\nconst ssl: QuestionFactory = () => ({\n type: 'confirm',\n name: 'ssl',\n message: 'Enable SSL connection:',\n default: false,\n});\n\nconst filename: QuestionFactory = () => ({\n type: 'input',\n name: 'filename',\n message: 'Filename:',\n default: '.tmp/data.db',\n});\n\nconst dbQuestions = {\n sqlite: [filename],\n postgres: [database, host, port, username, password, ssl],\n mysql: [database, host, port, username, password, ssl],\n};\n"],"names":["DBOptions","VALID_CLIENTS","DEFAULT_CONFIG","client","connection","filename","dbPrompt","default","inquirer","useDefault","prompt","type","name","message","choices","questions","dbQuestions","map","q","responses","getDatabaseInfos","options","skipDb","dbclient","includes","logger","fatal","join","matchingArgs","filter","key","missingArgs","length","hasDBOptions","some","quickstart","nonInteractive","database","host","dbhost","port","dbport","dbname","username","dbusername","password","dbpassword","dbfile","dbssl","undefined","ssl","sqlClientModule","mysql","mysql2","postgres","pg","sqlite","addDatabaseDependencies","scope","dependencies","DEFAULT_PORTS","validate","value","mask"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-strapi-app",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.60.0",
|
|
4
4
|
"description": "Generate a new Strapi application.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"create-strapi-app",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"watch": "run -T rollup -c -w"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@strapi/cloud-cli": "5.
|
|
55
|
+
"@strapi/cloud-cli": "5.60.0",
|
|
56
56
|
"async-retry": "1.3.3",
|
|
57
57
|
"chalk": "4.1.2",
|
|
58
58
|
"commander": "8.3.0",
|
|
@@ -68,14 +68,14 @@
|
|
|
68
68
|
"tar": "7.5.22"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@strapi/database": "5.
|
|
72
|
-
"@strapi/utils": "5.
|
|
71
|
+
"@strapi/database": "5.60.0",
|
|
72
|
+
"@strapi/utils": "5.60.0",
|
|
73
73
|
"@types/async-retry": "^1",
|
|
74
74
|
"@types/fs-extra": "11.0.4",
|
|
75
75
|
"@types/inquirer": "9.0.9",
|
|
76
76
|
"@types/node": "20.19.41",
|
|
77
|
-
"eslint-config-custom": "5.
|
|
78
|
-
"tsconfig": "5.
|
|
77
|
+
"eslint-config-custom": "5.60.0",
|
|
78
|
+
"tsconfig": "5.60.0"
|
|
79
79
|
},
|
|
80
80
|
"engines": {
|
|
81
81
|
"node": ">=20.0.0 <=26.x.x",
|
|
@@ -37,7 +37,7 @@ async function isFirstRun() {
|
|
|
37
37
|
|
|
38
38
|
async function setPublicPermissions(newPermissions) {
|
|
39
39
|
// Find the ID of the public role
|
|
40
|
-
const publicRole = await strapi.query('plugin::users-permissions.role').findOne({
|
|
40
|
+
const publicRole = await strapi.db.query('plugin::users-permissions.role').findOne({
|
|
41
41
|
where: {
|
|
42
42
|
type: 'public',
|
|
43
43
|
},
|
|
@@ -48,7 +48,7 @@ async function setPublicPermissions(newPermissions) {
|
|
|
48
48
|
Object.keys(newPermissions).map((controller) => {
|
|
49
49
|
const actions = newPermissions[controller];
|
|
50
50
|
const permissionsToCreate = actions.map((action) => {
|
|
51
|
-
return strapi.query('plugin::users-permissions.permission').create({
|
|
51
|
+
return strapi.db.query('plugin::users-permissions.permission').create({
|
|
52
52
|
data: {
|
|
53
53
|
action: `api::${controller}.${controller}.${action}`,
|
|
54
54
|
role: publicRole.id,
|
|
@@ -116,7 +116,7 @@ async function checkFileExistsBeforeUpload(files) {
|
|
|
116
116
|
|
|
117
117
|
for (const fileName of filesCopy) {
|
|
118
118
|
// Check if the file already exists in Strapi
|
|
119
|
-
const fileWhereName = await strapi.query('plugin::upload.file').findOne({
|
|
119
|
+
const fileWhereName = await strapi.db.query('plugin::upload.file').findOne({
|
|
120
120
|
where: {
|
|
121
121
|
name: fileName.replace(/\..*$/, ''),
|
|
122
122
|
},
|
|
@@ -37,7 +37,7 @@ async function isFirstRun() {
|
|
|
37
37
|
|
|
38
38
|
async function setPublicPermissions(newPermissions) {
|
|
39
39
|
// Find the ID of the public role
|
|
40
|
-
const publicRole = await strapi.query('plugin::users-permissions.role').findOne({
|
|
40
|
+
const publicRole = await strapi.db.query('plugin::users-permissions.role').findOne({
|
|
41
41
|
where: {
|
|
42
42
|
type: 'public',
|
|
43
43
|
},
|
|
@@ -48,7 +48,7 @@ async function setPublicPermissions(newPermissions) {
|
|
|
48
48
|
Object.keys(newPermissions).map((controller) => {
|
|
49
49
|
const actions = newPermissions[controller];
|
|
50
50
|
const permissionsToCreate = actions.map((action) => {
|
|
51
|
-
return strapi.query('plugin::users-permissions.permission').create({
|
|
51
|
+
return strapi.db.query('plugin::users-permissions.permission').create({
|
|
52
52
|
data: {
|
|
53
53
|
action: `api::${controller}.${controller}.${action}`,
|
|
54
54
|
role: publicRole.id,
|
|
@@ -116,7 +116,7 @@ async function checkFileExistsBeforeUpload(files) {
|
|
|
116
116
|
|
|
117
117
|
for (const fileName of filesCopy) {
|
|
118
118
|
// Check if the file already exists in Strapi
|
|
119
|
-
const fileWhereName = await strapi.query('plugin::upload.file').findOne({
|
|
119
|
+
const fileWhereName = await strapi.db.query('plugin::upload.file').findOne({
|
|
120
120
|
where: {
|
|
121
121
|
name: fileName.replace(/\..*$/, ''),
|
|
122
122
|
},
|