create-strapi-app 5.12.6 → 5.12.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAO/C,OAAO,KAAK,EAAW,KAAK,EAAE,MAAM,SAAS,CAAC;AAqD9C,iBAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmJhD;AA4BD,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;AAC7B,YAAY,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAO/C,OAAO,KAAK,EAAW,KAAK,EAAE,MAAM,SAAS,CAAC;AAqD9C,iBAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJhD;AA4BD,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;AAC7B,YAAY,EAAE,KAAK,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ var cloud = require('./cloud.js');
11
11
  var createStrapi = require('./create-strapi.js');
12
12
  var checkRequirements = require('./utils/check-requirements.js');
13
13
  var checkInstallPath = require('./utils/check-install-path.js');
14
- var machineId = require('./utils/machine-id.js');
14
+ var installId = require('./utils/install-id.js');
15
15
  var usage = require('./utils/usage.js');
16
16
  var database = require('./utils/database.js');
17
17
  var logger = require('./utils/logger.js');
@@ -59,6 +59,9 @@ async function run(args) {
59
59
  await cloud.handleCloudLogin();
60
60
  }
61
61
  const tmpPath = path.join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);
62
+ const randomUUID = crypto.randomUUID();
63
+ const uuid = (process.env.STRAPI_UUID_PREFIX || '') + randomUUID;
64
+ const installId$1 = installId.installID(uuid);
62
65
  const scope = {
63
66
  rootPath,
64
67
  name: path.basename(rootPath),
@@ -74,9 +77,9 @@ async function run(args) {
74
77
  packageJsonStrapi: {
75
78
  template: options.template
76
79
  },
77
- uuid: (process.env.STRAPI_UUID_PREFIX || '') + crypto.randomUUID(),
80
+ uuid,
78
81
  docker: process.env.DOCKER === 'true',
79
- deviceId: machineId.machineID(),
82
+ installId: installId$1,
80
83
  tmpPath,
81
84
  gitInit: true,
82
85
  devDependencies: {},
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 { machineID } from './utils/machine-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 // 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 checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n if (!options.skipCloud) {\n await handleCloudLogin();\n }\n\n const tmpPath = join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);\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: (process.env.STRAPI_UUID_PREFIX || '') + crypto.randomUUID(),\n docker: process.env.DOCKER === 'true',\n deviceId: machineID(),\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 };\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 || options.quickstart === true) {\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 || options.quickstart) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n if (options.install === true || options.quickstart) {\n scope.installDependencies = true;\n } else if (options.install === false) {\n scope.installDependencies = false;\n } else {\n scope.installDependencies = await 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 if (options.gitInit === true || options.quickstart) {\n scope.gitInit = true;\n } else if (options.gitInit === false) {\n scope.gitInit = false;\n } else {\n scope.gitInit = await prompts.gitInit();\n }\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","skipCloud","handleCloudLogin","tmpPath","os","tmpdir","crypto","randomBytes","toString","scope","name","basename","packageManager","getPkgManager","database","getDatabaseInfos","templateBranch","templatePath","isQuickstart","useExample","runApp","strapiVersion","packageJsonStrapi","uuid","process","env","STRAPI_UUID_PREFIX","randomUUID","docker","DOCKER","deviceId","machineID","gitInit","devDependencies","dependencies","react","useTypescript","install","installDependencies","addDatabaseDependencies","createStrapi","error","Error","trackError","message","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 // 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 checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n if (!options.skipCloud) {\n 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 };\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 || options.quickstart === true) {\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 || options.quickstart) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n if (options.install === true || options.quickstart) {\n scope.installDependencies = true;\n } else if (options.install === false) {\n scope.installDependencies = false;\n } else {\n scope.installDependencies = await 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 if (options.gitInit === true || options.quickstart) {\n scope.gitInit = true;\n } else if (options.gitInit === false) {\n scope.gitInit = false;\n } else {\n scope.gitInit = await prompts.gitInit();\n }\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","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","install","installDependencies","addDatabaseDependencies","createStrapi","error","Error","trackError","message","userAgent","npm_config_user_agent"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -9,7 +9,7 @@ import { handleCloudLogin } from './cloud.mjs';
9
9
  import { createStrapi } from './create-strapi.mjs';
10
10
  import { checkNodeRequirements } from './utils/check-requirements.mjs';
11
11
  import { checkInstallPath } from './utils/check-install-path.mjs';
12
- import { machineID } from './utils/machine-id.mjs';
12
+ import { installID } from './utils/install-id.mjs';
13
13
  import { trackError } from './utils/usage.mjs';
14
14
  import { getDatabaseInfos, addDatabaseDependencies } from './utils/database.mjs';
15
15
  import { logger } from './utils/logger.mjs';
@@ -57,6 +57,9 @@ async function run(args) {
57
57
  await handleCloudLogin();
58
58
  }
59
59
  const tmpPath = join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);
60
+ const randomUUID = crypto.randomUUID();
61
+ const uuid = (process.env.STRAPI_UUID_PREFIX || '') + randomUUID;
62
+ const installId = installID(uuid);
60
63
  const scope = {
61
64
  rootPath,
62
65
  name: basename(rootPath),
@@ -72,9 +75,9 @@ async function run(args) {
72
75
  packageJsonStrapi: {
73
76
  template: options.template
74
77
  },
75
- uuid: (process.env.STRAPI_UUID_PREFIX || '') + crypto.randomUUID(),
78
+ uuid,
76
79
  docker: process.env.DOCKER === 'true',
77
- deviceId: machineID(),
80
+ installId,
78
81
  tmpPath,
79
82
  gitInit: true,
80
83
  devDependencies: {},
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import { join, basename } from 'node:path';\nimport os from 'node:os';\nimport chalk from 'chalk';\nimport commander from 'commander';\nimport crypto from 'crypto';\nimport fse from 'fs-extra';\n\nimport * as prompts from './prompts';\nimport { handleCloudLogin } from './cloud';\nimport { createStrapi } from './create-strapi';\nimport { checkNodeRequirements } from './utils/check-requirements';\nimport { checkInstallPath } from './utils/check-install-path';\nimport { machineID } from './utils/machine-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 // 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 checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n if (!options.skipCloud) {\n await handleCloudLogin();\n }\n\n const tmpPath = join(os.tmpdir(), `strapi${crypto.randomBytes(6).toString('hex')}`);\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: (process.env.STRAPI_UUID_PREFIX || '') + crypto.randomUUID(),\n docker: process.env.DOCKER === 'true',\n deviceId: machineID(),\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 };\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 || options.quickstart === true) {\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 || options.quickstart) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n if (options.install === true || options.quickstart) {\n scope.installDependencies = true;\n } else if (options.install === false) {\n scope.installDependencies = false;\n } else {\n scope.installDependencies = await 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 if (options.gitInit === true || options.quickstart) {\n scope.gitInit = true;\n } else if (options.gitInit === false) {\n scope.gitInit = false;\n } else {\n scope.gitInit = await prompts.gitInit();\n }\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","skipCloud","handleCloudLogin","tmpPath","os","tmpdir","crypto","randomBytes","toString","scope","name","basename","packageManager","getPkgManager","database","getDatabaseInfos","templateBranch","templatePath","isQuickstart","useExample","runApp","strapiVersion","packageJsonStrapi","uuid","process","env","STRAPI_UUID_PREFIX","randomUUID","docker","DOCKER","deviceId","machineID","gitInit","devDependencies","dependencies","react","useTypescript","install","installDependencies","addDatabaseDependencies","createStrapi","error","Error","trackError","message","userAgent","npm_config_user_agent"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import { join, basename } from 'node:path';\nimport os from 'node:os';\nimport chalk from 'chalk';\nimport commander from 'commander';\nimport crypto from 'crypto';\nimport fse from 'fs-extra';\n\nimport * as prompts from './prompts';\nimport { handleCloudLogin } from './cloud';\nimport { createStrapi } from './create-strapi';\nimport { checkNodeRequirements } from './utils/check-requirements';\nimport { checkInstallPath } from './utils/check-install-path';\nimport { installID } from './utils/install-id';\nimport { trackError } from './utils/usage';\nimport { addDatabaseDependencies, getDatabaseInfos } from './utils/database';\n\nimport type { Options, Scope } from './types';\nimport { logger } from './utils/logger';\n\nconst { version } = fse.readJSONSync(join(__dirname, '..', 'package.json'));\n\nconst command = new commander.Command('create-strapi-app')\n .version(version)\n .arguments('[directory]')\n .usage('[directory] [options]')\n .option('--quickstart', 'Quickstart app creation (deprecated)')\n .option('--no-run', 'Do not start the application after it is created.')\n\n // setup options\n .option('--ts, --typescript', 'Initialize the project with TypeScript (default)')\n .option('--js, --javascript', 'Initialize the project with Javascript')\n\n // Package manager options\n .option('--use-npm', 'Use npm as the project package manager')\n .option('--use-yarn', 'Use yarn as the project package manager')\n .option('--use-pnpm', 'Use pnpm as the project package manager')\n\n // dependencies options\n .option('--install', 'Install dependencies')\n .option('--no-install', 'Do not install dependencies')\n\n // Cloud options\n .option('--skip-cloud', 'Skip cloud login and project creation')\n\n // Example app\n .option('--example', 'Use an example app')\n .option('--no-example', 'Do not use an example app')\n\n // git options\n .option('--git-init', 'Initialize a git repository')\n .option('--no-git-init', 'Do no initialize a git repository')\n\n // 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 checkNodeRequirements();\n\n const appDirectory = directory || (await prompts.directory());\n\n const rootPath = await checkInstallPath(appDirectory);\n\n if (!options.skipCloud) {\n 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 };\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 || options.quickstart === true) {\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 || options.quickstart) {\n scope.useTypescript = true;\n } else if (!options.template) {\n scope.useTypescript = await prompts.typescript();\n }\n\n if (options.install === true || options.quickstart) {\n scope.installDependencies = true;\n } else if (options.install === false) {\n scope.installDependencies = false;\n } else {\n scope.installDependencies = await 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 if (options.gitInit === true || options.quickstart) {\n scope.gitInit = true;\n } else if (options.gitInit === false) {\n scope.gitInit = false;\n } else {\n scope.gitInit = await prompts.gitInit();\n }\n\n addDatabaseDependencies(scope);\n\n try {\n await createStrapi(scope);\n } catch (error: unknown) {\n if (!(error instanceof Error)) {\n throw error;\n }\n\n await trackError({ scope, error });\n\n logger.fatal(error.message);\n }\n}\n\nfunction getPkgManager(options: Options) {\n if (options.useNpm === true) {\n return 'npm';\n }\n\n if (options.usePnpm === true) {\n return 'pnpm';\n }\n\n if (options.useYarn === true) {\n return 'yarn';\n }\n\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n return 'npm';\n}\n\nexport { run, createStrapi };\nexport type { Scope };\n"],"names":["version","fse","readJSONSync","join","__dirname","command","commander","Command","arguments","usage","option","description","run","args","options","parse","opts","directory","logger","title","chalk","green","bold","javascript","undefined","typescript","template","fatal","example","startsWith","useNpm","usePnpm","useYarn","filter","Boolean","length","quickstart","checkNodeRequirements","appDirectory","prompts","rootPath","checkInstallPath","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","install","installDependencies","addDatabaseDependencies","createStrapi","error","Error","trackError","message","userAgent","npm_config_user_agent"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -52,7 +52,7 @@ export interface Scope {
52
52
  runApp?: boolean;
53
53
  isQuickstart?: boolean;
54
54
  uuid?: string;
55
- deviceId?: string;
55
+ installId?: string;
56
56
  database: DatabaseInfo;
57
57
  tmpPath?: string;
58
58
  packageJsonStrapi?: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEvD,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;IACxC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAOlE"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["export interface Options {\n useNpm?: boolean;\n usePnpm?: boolean;\n useYarn?: boolean;\n quickstart?: boolean;\n run?: boolean;\n dbclient?: DBClient;\n skipCloud?: boolean;\n skipDb?: boolean;\n dbhost?: string;\n dbport?: string;\n dbname?: string;\n dbusername?: string;\n dbpassword?: string;\n dbssl?: string;\n dbfile?: string;\n template?: string;\n typescript?: boolean;\n javascript?: boolean;\n install?: boolean;\n example?: boolean;\n gitInit?: boolean;\n templateBranch?: string;\n templatePath?: string;\n}\n\nexport type DBClient = 'mysql' | 'postgres' | 'sqlite';\n\nexport type DBConfig = {\n client: DBClient;\n connection: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n};\n\nexport type PackageManager = 'npm' | 'yarn' | 'pnpm';\n\nexport interface Scope {\n name: string;\n rootPath: string;\n template?: string;\n templateBranch?: string;\n templatePath?: string;\n strapiVersion?: string;\n installDependencies?: boolean;\n devDependencies?: Record<string, string>;\n dependencies?: Record<string, string>;\n docker?: boolean;\n packageManager: PackageManager;\n runApp?: boolean;\n isQuickstart?: boolean;\n uuid?: string;\n deviceId?: string;\n database: DatabaseInfo;\n tmpPath?: string;\n packageJsonStrapi?: Record<string, unknown>;\n useTypescript?: boolean;\n useExample?: boolean;\n gitInit?: boolean;\n}\n\nexport type ClientName = 'mysql' | 'postgres' | 'sqlite';\n\nexport interface DatabaseInfo {\n client: ClientName;\n connection?: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n}\n\nexport interface StderrError extends Error {\n stderr: string;\n}\n\nexport function isStderrError(error: unknown): error is StderrError {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'stderr' in error &&\n typeof error.stderr === 'string'\n );\n}\n"],"names":["isStderrError","error","stderr"],"mappings":";;AAsFO,SAASA,cAAcC,KAAc,EAAA;IAC1C,OACE,OAAOA,KAAU,KAAA,QAAA,IACjBA,KAAU,KAAA,IAAA,IACV,YAAYA,KACZ,IAAA,OAAOA,KAAMC,CAAAA,MAAM,KAAK,QAAA;AAE5B;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["export interface Options {\n useNpm?: boolean;\n usePnpm?: boolean;\n useYarn?: boolean;\n quickstart?: boolean;\n run?: boolean;\n dbclient?: DBClient;\n skipCloud?: boolean;\n skipDb?: boolean;\n dbhost?: string;\n dbport?: string;\n dbname?: string;\n dbusername?: string;\n dbpassword?: string;\n dbssl?: string;\n dbfile?: string;\n template?: string;\n typescript?: boolean;\n javascript?: boolean;\n install?: boolean;\n example?: boolean;\n gitInit?: boolean;\n templateBranch?: string;\n templatePath?: string;\n}\n\nexport type DBClient = 'mysql' | 'postgres' | 'sqlite';\n\nexport type DBConfig = {\n client: DBClient;\n connection: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n};\n\nexport type PackageManager = 'npm' | 'yarn' | 'pnpm';\n\nexport interface Scope {\n name: string;\n rootPath: string;\n template?: string;\n templateBranch?: string;\n templatePath?: string;\n strapiVersion?: string;\n installDependencies?: boolean;\n devDependencies?: Record<string, string>;\n dependencies?: Record<string, string>;\n docker?: boolean;\n packageManager: PackageManager;\n runApp?: boolean;\n isQuickstart?: boolean;\n uuid?: string;\n installId?: string;\n database: DatabaseInfo;\n tmpPath?: string;\n packageJsonStrapi?: Record<string, unknown>;\n useTypescript?: boolean;\n useExample?: boolean;\n gitInit?: boolean;\n}\n\nexport type ClientName = 'mysql' | 'postgres' | 'sqlite';\n\nexport interface DatabaseInfo {\n client: ClientName;\n connection?: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n}\n\nexport interface StderrError extends Error {\n stderr: string;\n}\n\nexport function isStderrError(error: unknown): error is StderrError {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'stderr' in error &&\n typeof error.stderr === 'string'\n );\n}\n"],"names":["isStderrError","error","stderr"],"mappings":";;AAsFO,SAASA,cAAcC,KAAc,EAAA;IAC1C,OACE,OAAOA,KAAU,KAAA,QAAA,IACjBA,KAAU,KAAA,IAAA,IACV,YAAYA,KACZ,IAAA,OAAOA,KAAMC,CAAAA,MAAM,KAAK,QAAA;AAE5B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sources":["../src/types.ts"],"sourcesContent":["export interface Options {\n useNpm?: boolean;\n usePnpm?: boolean;\n useYarn?: boolean;\n quickstart?: boolean;\n run?: boolean;\n dbclient?: DBClient;\n skipCloud?: boolean;\n skipDb?: boolean;\n dbhost?: string;\n dbport?: string;\n dbname?: string;\n dbusername?: string;\n dbpassword?: string;\n dbssl?: string;\n dbfile?: string;\n template?: string;\n typescript?: boolean;\n javascript?: boolean;\n install?: boolean;\n example?: boolean;\n gitInit?: boolean;\n templateBranch?: string;\n templatePath?: string;\n}\n\nexport type DBClient = 'mysql' | 'postgres' | 'sqlite';\n\nexport type DBConfig = {\n client: DBClient;\n connection: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n};\n\nexport type PackageManager = 'npm' | 'yarn' | 'pnpm';\n\nexport interface Scope {\n name: string;\n rootPath: string;\n template?: string;\n templateBranch?: string;\n templatePath?: string;\n strapiVersion?: string;\n installDependencies?: boolean;\n devDependencies?: Record<string, string>;\n dependencies?: Record<string, string>;\n docker?: boolean;\n packageManager: PackageManager;\n runApp?: boolean;\n isQuickstart?: boolean;\n uuid?: string;\n deviceId?: string;\n database: DatabaseInfo;\n tmpPath?: string;\n packageJsonStrapi?: Record<string, unknown>;\n useTypescript?: boolean;\n useExample?: boolean;\n gitInit?: boolean;\n}\n\nexport type ClientName = 'mysql' | 'postgres' | 'sqlite';\n\nexport interface DatabaseInfo {\n client: ClientName;\n connection?: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n}\n\nexport interface StderrError extends Error {\n stderr: string;\n}\n\nexport function isStderrError(error: unknown): error is StderrError {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'stderr' in error &&\n typeof error.stderr === 'string'\n );\n}\n"],"names":["isStderrError","error","stderr"],"mappings":"AAsFO,SAASA,cAAcC,KAAc,EAAA;IAC1C,OACE,OAAOA,KAAU,KAAA,QAAA,IACjBA,KAAU,KAAA,IAAA,IACV,YAAYA,KACZ,IAAA,OAAOA,KAAMC,CAAAA,MAAM,KAAK,QAAA;AAE5B;;;;"}
1
+ {"version":3,"file":"types.mjs","sources":["../src/types.ts"],"sourcesContent":["export interface Options {\n useNpm?: boolean;\n usePnpm?: boolean;\n useYarn?: boolean;\n quickstart?: boolean;\n run?: boolean;\n dbclient?: DBClient;\n skipCloud?: boolean;\n skipDb?: boolean;\n dbhost?: string;\n dbport?: string;\n dbname?: string;\n dbusername?: string;\n dbpassword?: string;\n dbssl?: string;\n dbfile?: string;\n template?: string;\n typescript?: boolean;\n javascript?: boolean;\n install?: boolean;\n example?: boolean;\n gitInit?: boolean;\n templateBranch?: string;\n templatePath?: string;\n}\n\nexport type DBClient = 'mysql' | 'postgres' | 'sqlite';\n\nexport type DBConfig = {\n client: DBClient;\n connection: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n};\n\nexport type PackageManager = 'npm' | 'yarn' | 'pnpm';\n\nexport interface Scope {\n name: string;\n rootPath: string;\n template?: string;\n templateBranch?: string;\n templatePath?: string;\n strapiVersion?: string;\n installDependencies?: boolean;\n devDependencies?: Record<string, string>;\n dependencies?: Record<string, string>;\n docker?: boolean;\n packageManager: PackageManager;\n runApp?: boolean;\n isQuickstart?: boolean;\n uuid?: string;\n installId?: string;\n database: DatabaseInfo;\n tmpPath?: string;\n packageJsonStrapi?: Record<string, unknown>;\n useTypescript?: boolean;\n useExample?: boolean;\n gitInit?: boolean;\n}\n\nexport type ClientName = 'mysql' | 'postgres' | 'sqlite';\n\nexport interface DatabaseInfo {\n client: ClientName;\n connection?: {\n host?: string;\n port?: string;\n database?: string;\n username?: string;\n password?: string;\n filename?: string;\n ssl?: boolean;\n };\n}\n\nexport interface StderrError extends Error {\n stderr: string;\n}\n\nexport function isStderrError(error: unknown): error is StderrError {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'stderr' in error &&\n typeof error.stderr === 'string'\n );\n}\n"],"names":["isStderrError","error","stderr"],"mappings":"AAsFO,SAASA,cAAcC,KAAc,EAAA;IAC1C,OACE,OAAOA,KAAU,KAAA,QAAA,IACjBA,KAAU,KAAA,IAAA,IACV,YAAYA,KACZ,IAAA,OAAOA,KAAMC,CAAAA,MAAM,KAAK,QAAA;AAE5B;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare function installID(projectId?: string): string;
2
+ //# sourceMappingURL=install-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-id.d.ts","sourceRoot":"","sources":["../../src/utils/install-id.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,UAS3C"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('crypto');
4
+ var nodeMachineId = require('node-machine-id');
5
+
6
+ function installID(projectId) {
7
+ try {
8
+ const machineId = nodeMachineId.machineIdSync();
9
+ return projectId ? crypto.createHash('sha256').update(`${machineId}-${projectId}`).digest('hex') : crypto.randomUUID();
10
+ } catch {
11
+ return crypto.randomUUID();
12
+ }
13
+ }
14
+
15
+ exports.installID = installID;
16
+ //# sourceMappingURL=install-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-id.js","sources":["../../src/utils/install-id.ts"],"sourcesContent":["import crypto from 'crypto';\nimport { machineIdSync } from 'node-machine-id';\n\nexport function installID(projectId?: string) {\n try {\n const machineId = machineIdSync();\n return projectId\n ? crypto.createHash('sha256').update(`${machineId}-${projectId}`).digest('hex')\n : crypto.randomUUID();\n } catch {\n return crypto.randomUUID();\n }\n}\n"],"names":["installID","projectId","machineId","machineIdSync","crypto","createHash","update","digest","randomUUID"],"mappings":";;;;;AAGO,SAASA,UAAUC,SAAkB,EAAA;IAC1C,IAAI;AACF,QAAA,MAAMC,SAAYC,GAAAA,2BAAAA,EAAAA;AAClB,QAAA,OAAOF,YACHG,MAAOC,CAAAA,UAAU,CAAC,QAAUC,CAAAA,CAAAA,MAAM,CAAC,CAAC,EAAEJ,UAAU,CAAC,EAAED,UAAU,CAAC,CAAA,CAAEM,MAAM,CAAC,KAAA,CAAA,GACvEH,OAAOI,UAAU,EAAA;AACvB,KAAA,CAAE,OAAM;AACN,QAAA,OAAOJ,OAAOI,UAAU,EAAA;AAC1B;AACF;;;;"}
@@ -0,0 +1,14 @@
1
+ import crypto from 'crypto';
2
+ import { machineIdSync } from 'node-machine-id';
3
+
4
+ function installID(projectId) {
5
+ try {
6
+ const machineId = machineIdSync();
7
+ return projectId ? crypto.createHash('sha256').update(`${machineId}-${projectId}`).digest('hex') : crypto.randomUUID();
8
+ } catch {
9
+ return crypto.randomUUID();
10
+ }
11
+ }
12
+
13
+ export { installID };
14
+ //# sourceMappingURL=install-id.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-id.mjs","sources":["../../src/utils/install-id.ts"],"sourcesContent":["import crypto from 'crypto';\nimport { machineIdSync } from 'node-machine-id';\n\nexport function installID(projectId?: string) {\n try {\n const machineId = machineIdSync();\n return projectId\n ? crypto.createHash('sha256').update(`${machineId}-${projectId}`).digest('hex')\n : crypto.randomUUID();\n } catch {\n return crypto.randomUUID();\n }\n}\n"],"names":["installID","projectId","machineId","machineIdSync","crypto","createHash","update","digest","randomUUID"],"mappings":";;;AAGO,SAASA,UAAUC,SAAkB,EAAA;IAC1C,IAAI;AACF,QAAA,MAAMC,SAAYC,GAAAA,aAAAA,EAAAA;AAClB,QAAA,OAAOF,YACHG,MAAOC,CAAAA,UAAU,CAAC,QAAUC,CAAAA,CAAAA,MAAM,CAAC,CAAC,EAAEJ,UAAU,CAAC,EAAED,UAAU,CAAC,CAAA,CAAEM,MAAM,CAAC,KAAA,CAAA,GACvEH,OAAOI,UAAU,EAAA;AACvB,KAAA,CAAE,OAAM;AACN,QAAA,OAAOJ,OAAOI,UAAU,EAAA;AAC1B;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../src/utils/package-json.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,KAAK,iBAyBnD"}
1
+ {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../src/utils/package-json.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,KAAK,iBA0BnD"}
@@ -18,7 +18,8 @@ async function createPackageJSON(scope) {
18
18
  dependencies: scope.dependencies ?? {},
19
19
  strapi: {
20
20
  ...scope.packageJsonStrapi ?? {},
21
- uuid: scope.uuid
21
+ uuid: scope.uuid,
22
+ installId: scope.installId
22
23
  },
23
24
  engines: engines.engines
24
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.js","sources":["../../src/utils/package-json.ts"],"sourcesContent":["import { join } from 'path';\nimport { kebabCase, merge } from 'lodash';\nimport fse from 'fs-extra';\n\nimport { engines } from './engines';\nimport type { Scope } from '../types';\n\nexport async function createPackageJSON(scope: Scope) {\n const { sortPackageJson } = await import('sort-package-json');\n\n const pkgJSONPath = join(scope.rootPath, 'package.json');\n\n const existingPkg = await fse.readJSON(pkgJSONPath).catch(() => ({}));\n\n const pkg = {\n name: kebabCase(scope.name),\n private: true,\n version: '0.1.0',\n description: 'A Strapi application',\n devDependencies: scope.devDependencies ?? {},\n dependencies: scope.dependencies ?? {},\n strapi: {\n ...(scope.packageJsonStrapi ?? {}),\n uuid: scope.uuid,\n },\n engines,\n };\n\n // copy templates\n await fse.writeJSON(pkgJSONPath, sortPackageJson(merge(existingPkg, pkg)), {\n spaces: 2,\n });\n}\n"],"names":["createPackageJSON","scope","sortPackageJson","pkgJSONPath","join","rootPath","existingPkg","fse","readJSON","catch","pkg","name","kebabCase","private","version","description","devDependencies","dependencies","strapi","packageJsonStrapi","uuid","engines","writeJSON","merge","spaces"],"mappings":";;;;;;;AAOO,eAAeA,kBAAkBC,KAAY,EAAA;AAClD,IAAA,MAAM,EAAEC,eAAe,EAAE,GAAG,MAAM,OAAO,mBAAA,CAAA;AAEzC,IAAA,MAAMC,WAAcC,GAAAA,SAAAA,CAAKH,KAAMI,CAAAA,QAAQ,EAAE,cAAA,CAAA;IAEzC,MAAMC,WAAAA,GAAc,MAAMC,GAAAA,CAAIC,QAAQ,CAACL,WAAaM,CAAAA,CAAAA,KAAK,CAAC,KAAO,EAAC,CAAA,CAAA;AAElE,IAAA,MAAMC,GAAM,GAAA;QACVC,IAAMC,EAAAA,WAAAA,CAAUX,MAAMU,IAAI,CAAA;QAC1BE,OAAS,EAAA,IAAA;QACTC,OAAS,EAAA,OAAA;QACTC,WAAa,EAAA,sBAAA;QACbC,eAAiBf,EAAAA,KAAAA,CAAMe,eAAe,IAAI,EAAC;QAC3CC,YAAchB,EAAAA,KAAAA,CAAMgB,YAAY,IAAI,EAAC;QACrCC,MAAQ,EAAA;AACN,YAAA,GAAIjB,KAAMkB,CAAAA,iBAAiB,IAAI,EAAE;AACjCC,YAAAA,IAAAA,EAAMnB,MAAMmB;AACd,SAAA;AACAC,iBAAAA;AACF,KAAA;;AAGA,IAAA,MAAMd,IAAIe,SAAS,CAACnB,aAAaD,eAAgBqB,CAAAA,OAAAA,CAAMjB,aAAaI,GAAO,CAAA,CAAA,EAAA;QACzEc,MAAQ,EAAA;AACV,KAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"package-json.js","sources":["../../src/utils/package-json.ts"],"sourcesContent":["import { join } from 'path';\nimport { kebabCase, merge } from 'lodash';\nimport fse from 'fs-extra';\n\nimport { engines } from './engines';\nimport type { Scope } from '../types';\n\nexport async function createPackageJSON(scope: Scope) {\n const { sortPackageJson } = await import('sort-package-json');\n\n const pkgJSONPath = join(scope.rootPath, 'package.json');\n\n const existingPkg = await fse.readJSON(pkgJSONPath).catch(() => ({}));\n\n const pkg = {\n name: kebabCase(scope.name),\n private: true,\n version: '0.1.0',\n description: 'A Strapi application',\n devDependencies: scope.devDependencies ?? {},\n dependencies: scope.dependencies ?? {},\n strapi: {\n ...(scope.packageJsonStrapi ?? {}),\n uuid: scope.uuid,\n installId: scope.installId,\n },\n engines,\n };\n\n // copy templates\n await fse.writeJSON(pkgJSONPath, sortPackageJson(merge(existingPkg, pkg)), {\n spaces: 2,\n });\n}\n"],"names":["createPackageJSON","scope","sortPackageJson","pkgJSONPath","join","rootPath","existingPkg","fse","readJSON","catch","pkg","name","kebabCase","private","version","description","devDependencies","dependencies","strapi","packageJsonStrapi","uuid","installId","engines","writeJSON","merge","spaces"],"mappings":";;;;;;;AAOO,eAAeA,kBAAkBC,KAAY,EAAA;AAClD,IAAA,MAAM,EAAEC,eAAe,EAAE,GAAG,MAAM,OAAO,mBAAA,CAAA;AAEzC,IAAA,MAAMC,WAAcC,GAAAA,SAAAA,CAAKH,KAAMI,CAAAA,QAAQ,EAAE,cAAA,CAAA;IAEzC,MAAMC,WAAAA,GAAc,MAAMC,GAAAA,CAAIC,QAAQ,CAACL,WAAaM,CAAAA,CAAAA,KAAK,CAAC,KAAO,EAAC,CAAA,CAAA;AAElE,IAAA,MAAMC,GAAM,GAAA;QACVC,IAAMC,EAAAA,WAAAA,CAAUX,MAAMU,IAAI,CAAA;QAC1BE,OAAS,EAAA,IAAA;QACTC,OAAS,EAAA,OAAA;QACTC,WAAa,EAAA,sBAAA;QACbC,eAAiBf,EAAAA,KAAAA,CAAMe,eAAe,IAAI,EAAC;QAC3CC,YAAchB,EAAAA,KAAAA,CAAMgB,YAAY,IAAI,EAAC;QACrCC,MAAQ,EAAA;AACN,YAAA,GAAIjB,KAAMkB,CAAAA,iBAAiB,IAAI,EAAE;AACjCC,YAAAA,IAAAA,EAAMnB,MAAMmB,IAAI;AAChBC,YAAAA,SAAAA,EAAWpB,MAAMoB;AACnB,SAAA;AACAC,iBAAAA;AACF,KAAA;;AAGA,IAAA,MAAMf,IAAIgB,SAAS,CAACpB,aAAaD,eAAgBsB,CAAAA,OAAAA,CAAMlB,aAAaI,GAAO,CAAA,CAAA,EAAA;QACzEe,MAAQ,EAAA;AACV,KAAA,CAAA;AACF;;;;"}
@@ -16,7 +16,8 @@ async function createPackageJSON(scope) {
16
16
  dependencies: scope.dependencies ?? {},
17
17
  strapi: {
18
18
  ...scope.packageJsonStrapi ?? {},
19
- uuid: scope.uuid
19
+ uuid: scope.uuid,
20
+ installId: scope.installId
20
21
  },
21
22
  engines
22
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.mjs","sources":["../../src/utils/package-json.ts"],"sourcesContent":["import { join } from 'path';\nimport { kebabCase, merge } from 'lodash';\nimport fse from 'fs-extra';\n\nimport { engines } from './engines';\nimport type { Scope } from '../types';\n\nexport async function createPackageJSON(scope: Scope) {\n const { sortPackageJson } = await import('sort-package-json');\n\n const pkgJSONPath = join(scope.rootPath, 'package.json');\n\n const existingPkg = await fse.readJSON(pkgJSONPath).catch(() => ({}));\n\n const pkg = {\n name: kebabCase(scope.name),\n private: true,\n version: '0.1.0',\n description: 'A Strapi application',\n devDependencies: scope.devDependencies ?? {},\n dependencies: scope.dependencies ?? {},\n strapi: {\n ...(scope.packageJsonStrapi ?? {}),\n uuid: scope.uuid,\n },\n engines,\n };\n\n // copy templates\n await fse.writeJSON(pkgJSONPath, sortPackageJson(merge(existingPkg, pkg)), {\n spaces: 2,\n });\n}\n"],"names":["createPackageJSON","scope","sortPackageJson","pkgJSONPath","join","rootPath","existingPkg","fse","readJSON","catch","pkg","name","kebabCase","private","version","description","devDependencies","dependencies","strapi","packageJsonStrapi","uuid","engines","writeJSON","merge","spaces"],"mappings":";;;;;AAOO,eAAeA,kBAAkBC,KAAY,EAAA;AAClD,IAAA,MAAM,EAAEC,eAAe,EAAE,GAAG,MAAM,OAAO,mBAAA,CAAA;AAEzC,IAAA,MAAMC,WAAcC,GAAAA,IAAAA,CAAKH,KAAMI,CAAAA,QAAQ,EAAE,cAAA,CAAA;IAEzC,MAAMC,WAAAA,GAAc,MAAMC,GAAAA,CAAIC,QAAQ,CAACL,WAAaM,CAAAA,CAAAA,KAAK,CAAC,KAAO,EAAC,CAAA,CAAA;AAElE,IAAA,MAAMC,GAAM,GAAA;QACVC,IAAMC,EAAAA,SAAAA,CAAUX,MAAMU,IAAI,CAAA;QAC1BE,OAAS,EAAA,IAAA;QACTC,OAAS,EAAA,OAAA;QACTC,WAAa,EAAA,sBAAA;QACbC,eAAiBf,EAAAA,KAAAA,CAAMe,eAAe,IAAI,EAAC;QAC3CC,YAAchB,EAAAA,KAAAA,CAAMgB,YAAY,IAAI,EAAC;QACrCC,MAAQ,EAAA;AACN,YAAA,GAAIjB,KAAMkB,CAAAA,iBAAiB,IAAI,EAAE;AACjCC,YAAAA,IAAAA,EAAMnB,MAAMmB;AACd,SAAA;AACAC,QAAAA;AACF,KAAA;;AAGA,IAAA,MAAMd,IAAIe,SAAS,CAACnB,aAAaD,eAAgBqB,CAAAA,KAAAA,CAAMjB,aAAaI,GAAO,CAAA,CAAA,EAAA;QACzEc,MAAQ,EAAA;AACV,KAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"package-json.mjs","sources":["../../src/utils/package-json.ts"],"sourcesContent":["import { join } from 'path';\nimport { kebabCase, merge } from 'lodash';\nimport fse from 'fs-extra';\n\nimport { engines } from './engines';\nimport type { Scope } from '../types';\n\nexport async function createPackageJSON(scope: Scope) {\n const { sortPackageJson } = await import('sort-package-json');\n\n const pkgJSONPath = join(scope.rootPath, 'package.json');\n\n const existingPkg = await fse.readJSON(pkgJSONPath).catch(() => ({}));\n\n const pkg = {\n name: kebabCase(scope.name),\n private: true,\n version: '0.1.0',\n description: 'A Strapi application',\n devDependencies: scope.devDependencies ?? {},\n dependencies: scope.dependencies ?? {},\n strapi: {\n ...(scope.packageJsonStrapi ?? {}),\n uuid: scope.uuid,\n installId: scope.installId,\n },\n engines,\n };\n\n // copy templates\n await fse.writeJSON(pkgJSONPath, sortPackageJson(merge(existingPkg, pkg)), {\n spaces: 2,\n });\n}\n"],"names":["createPackageJSON","scope","sortPackageJson","pkgJSONPath","join","rootPath","existingPkg","fse","readJSON","catch","pkg","name","kebabCase","private","version","description","devDependencies","dependencies","strapi","packageJsonStrapi","uuid","installId","engines","writeJSON","merge","spaces"],"mappings":";;;;;AAOO,eAAeA,kBAAkBC,KAAY,EAAA;AAClD,IAAA,MAAM,EAAEC,eAAe,EAAE,GAAG,MAAM,OAAO,mBAAA,CAAA;AAEzC,IAAA,MAAMC,WAAcC,GAAAA,IAAAA,CAAKH,KAAMI,CAAAA,QAAQ,EAAE,cAAA,CAAA;IAEzC,MAAMC,WAAAA,GAAc,MAAMC,GAAAA,CAAIC,QAAQ,CAACL,WAAaM,CAAAA,CAAAA,KAAK,CAAC,KAAO,EAAC,CAAA,CAAA;AAElE,IAAA,MAAMC,GAAM,GAAA;QACVC,IAAMC,EAAAA,SAAAA,CAAUX,MAAMU,IAAI,CAAA;QAC1BE,OAAS,EAAA,IAAA;QACTC,OAAS,EAAA,OAAA;QACTC,WAAa,EAAA,sBAAA;QACbC,eAAiBf,EAAAA,KAAAA,CAAMe,eAAe,IAAI,EAAC;QAC3CC,YAAchB,EAAAA,KAAAA,CAAMgB,YAAY,IAAI,EAAC;QACrCC,MAAQ,EAAA;AACN,YAAA,GAAIjB,KAAMkB,CAAAA,iBAAiB,IAAI,EAAE;AACjCC,YAAAA,IAAAA,EAAMnB,MAAMmB,IAAI;AAChBC,YAAAA,SAAAA,EAAWpB,MAAMoB;AACnB,SAAA;AACAC,QAAAA;AACF,KAAA;;AAGA,IAAA,MAAMf,IAAIgB,SAAS,CAACpB,aAAaD,eAAgBsB,CAAAA,KAAAA,CAAMlB,aAAaI,GAAO,CAAA,CAAA,EAAA;QACzEe,MAAQ,EAAA;AACV,KAAA,CAAA;AACF;;;;"}
@@ -66,7 +66,7 @@ async function trackError({ scope, error }) {
66
66
  const properties = getProperties(scope, error);
67
67
  try {
68
68
  return await trackEvent('didNotCreateProject', {
69
- deviceId: scope.deviceId,
69
+ deviceId: scope.installId,
70
70
  ...properties
71
71
  });
72
72
  } catch (err) {
@@ -77,7 +77,7 @@ async function trackUsage({ event, scope, error }) {
77
77
  const properties = getProperties(scope, error);
78
78
  try {
79
79
  return await trackEvent(event, {
80
- deviceId: scope.deviceId,
80
+ deviceId: scope.installId,
81
81
  ...properties
82
82
  });
83
83
  } catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sources":["../../src/utils/usage.ts"],"sourcesContent":["import os from 'os';\nimport _ from 'lodash';\n\nimport { Scope, StderrError } from '../types';\n\ntype TrackError = Error | string | StderrError;\n\n// Add properties from the package.json strapi key in the metadata\nfunction addPackageJsonStrapiMetadata(metadata: Record<string, unknown>, scope: Scope) {\n const { packageJsonStrapi = {} } = scope;\n\n return _.defaults(metadata, packageJsonStrapi);\n}\n\nconst boolToString = (value: boolean | undefined) => (value === true).toString();\n\nconst getProperties = (scope: Scope, error?: TrackError) => {\n const eventProperties = {\n error: typeof error === 'string' ? error : error && error.message,\n };\n\n const userProperties = {\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const groupProperties = {\n version: scope.strapiVersion,\n docker: scope.docker,\n useYarn: scope.packageManager === 'yarn',\n packageManager: scope.packageManager,\n /** @deprecated */\n useTypescriptOnServer: boolToString(scope.useTypescript),\n /** @deprecated */\n useTypescriptOnAdmin: boolToString(scope.useTypescript),\n useTypescript: boolToString(scope.useTypescript),\n isHostedOnStrapiCloud: process.env.STRAPI_HOSTING === 'strapi.cloud',\n noRun: boolToString(scope.runApp),\n projectId: scope.uuid,\n useExample: boolToString(scope.useExample),\n gitInit: boolToString(scope.gitInit),\n installDependencies: boolToString(scope.installDependencies),\n };\n\n return {\n eventProperties,\n userProperties,\n groupProperties: addPackageJsonStrapiMetadata(groupProperties, scope),\n };\n};\n\nfunction trackEvent(event: string, payload: Record<string, unknown>) {\n if (process.env.NODE_ENV === 'test') {\n return;\n }\n\n try {\n return fetch('https://analytics.strapi.io/api/v2/track', {\n method: 'POST',\n body: JSON.stringify({\n event,\n ...payload,\n }),\n signal: AbortSignal.timeout(1000),\n headers: {\n 'Content-Type': 'application/json',\n 'X-Strapi-Event': event,\n },\n }).catch(() => {});\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nexport async function trackError({ scope, error }: { scope: Scope; error?: TrackError }) {\n const properties = getProperties(scope, error);\n\n try {\n return await trackEvent('didNotCreateProject', {\n deviceId: scope.deviceId,\n ...properties,\n });\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nexport async function trackUsage({\n event,\n scope,\n error,\n}: {\n event: string;\n scope: Scope;\n error?: TrackError;\n}) {\n const properties = getProperties(scope, error);\n\n try {\n return await trackEvent(event, {\n deviceId: scope.deviceId,\n ...properties,\n });\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n"],"names":["addPackageJsonStrapiMetadata","metadata","scope","packageJsonStrapi","_","defaults","boolToString","value","toString","getProperties","error","eventProperties","message","userProperties","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","groupProperties","version","strapiVersion","docker","useYarn","packageManager","useTypescriptOnServer","useTypescript","useTypescriptOnAdmin","isHostedOnStrapiCloud","env","STRAPI_HOSTING","noRun","runApp","projectId","uuid","useExample","gitInit","installDependencies","trackEvent","event","payload","NODE_ENV","fetch","method","body","JSON","stringify","signal","AbortSignal","timeout","headers","catch","err","Promise","resolve","trackError","properties","deviceId","trackUsage"],"mappings":"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"}
1
+ {"version":3,"file":"usage.js","sources":["../../src/utils/usage.ts"],"sourcesContent":["import os from 'os';\nimport _ from 'lodash';\n\nimport { Scope, StderrError } from '../types';\n\ntype TrackError = Error | string | StderrError;\n\n// Add properties from the package.json strapi key in the metadata\nfunction addPackageJsonStrapiMetadata(metadata: Record<string, unknown>, scope: Scope) {\n const { packageJsonStrapi = {} } = scope;\n\n return _.defaults(metadata, packageJsonStrapi);\n}\n\nconst boolToString = (value: boolean | undefined) => (value === true).toString();\n\nconst getProperties = (scope: Scope, error?: TrackError) => {\n const eventProperties = {\n error: typeof error === 'string' ? error : error && error.message,\n };\n\n const userProperties = {\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const groupProperties = {\n version: scope.strapiVersion,\n docker: scope.docker,\n useYarn: scope.packageManager === 'yarn',\n packageManager: scope.packageManager,\n /** @deprecated */\n useTypescriptOnServer: boolToString(scope.useTypescript),\n /** @deprecated */\n useTypescriptOnAdmin: boolToString(scope.useTypescript),\n useTypescript: boolToString(scope.useTypescript),\n isHostedOnStrapiCloud: process.env.STRAPI_HOSTING === 'strapi.cloud',\n noRun: boolToString(scope.runApp),\n projectId: scope.uuid,\n useExample: boolToString(scope.useExample),\n gitInit: boolToString(scope.gitInit),\n installDependencies: boolToString(scope.installDependencies),\n };\n\n return {\n eventProperties,\n userProperties,\n groupProperties: addPackageJsonStrapiMetadata(groupProperties, scope),\n };\n};\n\nfunction trackEvent(event: string, payload: Record<string, unknown>) {\n if (process.env.NODE_ENV === 'test') {\n return;\n }\n\n try {\n return fetch('https://analytics.strapi.io/api/v2/track', {\n method: 'POST',\n body: JSON.stringify({\n event,\n ...payload,\n }),\n signal: AbortSignal.timeout(1000),\n headers: {\n 'Content-Type': 'application/json',\n 'X-Strapi-Event': event,\n },\n }).catch(() => {});\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nexport async function trackError({ scope, error }: { scope: Scope; error?: TrackError }) {\n const properties = getProperties(scope, error);\n\n try {\n return await trackEvent('didNotCreateProject', {\n deviceId: scope.installId,\n ...properties,\n });\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nexport async function trackUsage({\n event,\n scope,\n error,\n}: {\n event: string;\n scope: Scope;\n error?: TrackError;\n}) {\n const properties = getProperties(scope, error);\n\n try {\n return await trackEvent(event, {\n deviceId: scope.installId,\n ...properties,\n });\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n"],"names":["addPackageJsonStrapiMetadata","metadata","scope","packageJsonStrapi","_","defaults","boolToString","value","toString","getProperties","error","eventProperties","message","userProperties","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","groupProperties","version","strapiVersion","docker","useYarn","packageManager","useTypescriptOnServer","useTypescript","useTypescriptOnAdmin","isHostedOnStrapiCloud","env","STRAPI_HOSTING","noRun","runApp","projectId","uuid","useExample","gitInit","installDependencies","trackEvent","event","payload","NODE_ENV","fetch","method","body","JSON","stringify","signal","AbortSignal","timeout","headers","catch","err","Promise","resolve","trackError","properties","deviceId","installId","trackUsage"],"mappings":"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"}
@@ -64,7 +64,7 @@ async function trackError({ scope, error }) {
64
64
  const properties = getProperties(scope, error);
65
65
  try {
66
66
  return await trackEvent('didNotCreateProject', {
67
- deviceId: scope.deviceId,
67
+ deviceId: scope.installId,
68
68
  ...properties
69
69
  });
70
70
  } catch (err) {
@@ -75,7 +75,7 @@ async function trackUsage({ event, scope, error }) {
75
75
  const properties = getProperties(scope, error);
76
76
  try {
77
77
  return await trackEvent(event, {
78
- deviceId: scope.deviceId,
78
+ deviceId: scope.installId,
79
79
  ...properties
80
80
  });
81
81
  } catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"usage.mjs","sources":["../../src/utils/usage.ts"],"sourcesContent":["import os from 'os';\nimport _ from 'lodash';\n\nimport { Scope, StderrError } from '../types';\n\ntype TrackError = Error | string | StderrError;\n\n// Add properties from the package.json strapi key in the metadata\nfunction addPackageJsonStrapiMetadata(metadata: Record<string, unknown>, scope: Scope) {\n const { packageJsonStrapi = {} } = scope;\n\n return _.defaults(metadata, packageJsonStrapi);\n}\n\nconst boolToString = (value: boolean | undefined) => (value === true).toString();\n\nconst getProperties = (scope: Scope, error?: TrackError) => {\n const eventProperties = {\n error: typeof error === 'string' ? error : error && error.message,\n };\n\n const userProperties = {\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const groupProperties = {\n version: scope.strapiVersion,\n docker: scope.docker,\n useYarn: scope.packageManager === 'yarn',\n packageManager: scope.packageManager,\n /** @deprecated */\n useTypescriptOnServer: boolToString(scope.useTypescript),\n /** @deprecated */\n useTypescriptOnAdmin: boolToString(scope.useTypescript),\n useTypescript: boolToString(scope.useTypescript),\n isHostedOnStrapiCloud: process.env.STRAPI_HOSTING === 'strapi.cloud',\n noRun: boolToString(scope.runApp),\n projectId: scope.uuid,\n useExample: boolToString(scope.useExample),\n gitInit: boolToString(scope.gitInit),\n installDependencies: boolToString(scope.installDependencies),\n };\n\n return {\n eventProperties,\n userProperties,\n groupProperties: addPackageJsonStrapiMetadata(groupProperties, scope),\n };\n};\n\nfunction trackEvent(event: string, payload: Record<string, unknown>) {\n if (process.env.NODE_ENV === 'test') {\n return;\n }\n\n try {\n return fetch('https://analytics.strapi.io/api/v2/track', {\n method: 'POST',\n body: JSON.stringify({\n event,\n ...payload,\n }),\n signal: AbortSignal.timeout(1000),\n headers: {\n 'Content-Type': 'application/json',\n 'X-Strapi-Event': event,\n },\n }).catch(() => {});\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nexport async function trackError({ scope, error }: { scope: Scope; error?: TrackError }) {\n const properties = getProperties(scope, error);\n\n try {\n return await trackEvent('didNotCreateProject', {\n deviceId: scope.deviceId,\n ...properties,\n });\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nexport async function trackUsage({\n event,\n scope,\n error,\n}: {\n event: string;\n scope: Scope;\n error?: TrackError;\n}) {\n const properties = getProperties(scope, error);\n\n try {\n return await trackEvent(event, {\n deviceId: scope.deviceId,\n ...properties,\n });\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n"],"names":["addPackageJsonStrapiMetadata","metadata","scope","packageJsonStrapi","_","defaults","boolToString","value","toString","getProperties","error","eventProperties","message","userProperties","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","groupProperties","version","strapiVersion","docker","useYarn","packageManager","useTypescriptOnServer","useTypescript","useTypescriptOnAdmin","isHostedOnStrapiCloud","env","STRAPI_HOSTING","noRun","runApp","projectId","uuid","useExample","gitInit","installDependencies","trackEvent","event","payload","NODE_ENV","fetch","method","body","JSON","stringify","signal","AbortSignal","timeout","headers","catch","err","Promise","resolve","trackError","properties","deviceId","trackUsage"],"mappings":"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"}
1
+ {"version":3,"file":"usage.mjs","sources":["../../src/utils/usage.ts"],"sourcesContent":["import os from 'os';\nimport _ from 'lodash';\n\nimport { Scope, StderrError } from '../types';\n\ntype TrackError = Error | string | StderrError;\n\n// Add properties from the package.json strapi key in the metadata\nfunction addPackageJsonStrapiMetadata(metadata: Record<string, unknown>, scope: Scope) {\n const { packageJsonStrapi = {} } = scope;\n\n return _.defaults(metadata, packageJsonStrapi);\n}\n\nconst boolToString = (value: boolean | undefined) => (value === true).toString();\n\nconst getProperties = (scope: Scope, error?: TrackError) => {\n const eventProperties = {\n error: typeof error === 'string' ? error : error && error.message,\n };\n\n const userProperties = {\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const groupProperties = {\n version: scope.strapiVersion,\n docker: scope.docker,\n useYarn: scope.packageManager === 'yarn',\n packageManager: scope.packageManager,\n /** @deprecated */\n useTypescriptOnServer: boolToString(scope.useTypescript),\n /** @deprecated */\n useTypescriptOnAdmin: boolToString(scope.useTypescript),\n useTypescript: boolToString(scope.useTypescript),\n isHostedOnStrapiCloud: process.env.STRAPI_HOSTING === 'strapi.cloud',\n noRun: boolToString(scope.runApp),\n projectId: scope.uuid,\n useExample: boolToString(scope.useExample),\n gitInit: boolToString(scope.gitInit),\n installDependencies: boolToString(scope.installDependencies),\n };\n\n return {\n eventProperties,\n userProperties,\n groupProperties: addPackageJsonStrapiMetadata(groupProperties, scope),\n };\n};\n\nfunction trackEvent(event: string, payload: Record<string, unknown>) {\n if (process.env.NODE_ENV === 'test') {\n return;\n }\n\n try {\n return fetch('https://analytics.strapi.io/api/v2/track', {\n method: 'POST',\n body: JSON.stringify({\n event,\n ...payload,\n }),\n signal: AbortSignal.timeout(1000),\n headers: {\n 'Content-Type': 'application/json',\n 'X-Strapi-Event': event,\n },\n }).catch(() => {});\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nexport async function trackError({ scope, error }: { scope: Scope; error?: TrackError }) {\n const properties = getProperties(scope, error);\n\n try {\n return await trackEvent('didNotCreateProject', {\n deviceId: scope.installId,\n ...properties,\n });\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n\nexport async function trackUsage({\n event,\n scope,\n error,\n}: {\n event: string;\n scope: Scope;\n error?: TrackError;\n}) {\n const properties = getProperties(scope, error);\n\n try {\n return await trackEvent(event, {\n deviceId: scope.installId,\n ...properties,\n });\n } catch (err) {\n /** ignore errors */\n return Promise.resolve();\n }\n}\n"],"names":["addPackageJsonStrapiMetadata","metadata","scope","packageJsonStrapi","_","defaults","boolToString","value","toString","getProperties","error","eventProperties","message","userProperties","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","groupProperties","version","strapiVersion","docker","useYarn","packageManager","useTypescriptOnServer","useTypescript","useTypescriptOnAdmin","isHostedOnStrapiCloud","env","STRAPI_HOSTING","noRun","runApp","projectId","uuid","useExample","gitInit","installDependencies","trackEvent","event","payload","NODE_ENV","fetch","method","body","JSON","stringify","signal","AbortSignal","timeout","headers","catch","err","Promise","resolve","trackError","properties","deviceId","installId","trackUsage"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-strapi-app",
3
- "version": "5.12.6",
3
+ "version": "5.12.7",
4
4
  "description": "Generate a new Strapi application.",
5
5
  "keywords": [
6
6
  "create-strapi-app",
@@ -50,7 +50,7 @@
50
50
  "watch": "run -T rollup -c -w"
51
51
  },
52
52
  "dependencies": {
53
- "@strapi/cloud-cli": "5.12.6",
53
+ "@strapi/cloud-cli": "5.12.7",
54
54
  "async-retry": "1.3.3",
55
55
  "chalk": "4.1.2",
56
56
  "commander": "8.3.0",
@@ -69,8 +69,8 @@
69
69
  "@types/async-retry": "^1",
70
70
  "@types/fs-extra": "11.0.4",
71
71
  "@types/inquirer": "8.2.5",
72
- "eslint-config-custom": "5.12.6",
73
- "tsconfig": "5.12.6"
72
+ "eslint-config-custom": "5.12.7",
73
+ "tsconfig": "5.12.7"
74
74
  },
75
75
  "engines": {
76
76
  "node": ">=18.0.0 <=22.x.x",
@@ -1,2 +0,0 @@
1
- export declare function machineID(): string;
2
- //# sourceMappingURL=machine-id.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"machine-id.d.ts","sourceRoot":"","sources":["../../src/utils/machine-id.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS,WAQxB"}
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- var crypto = require('crypto');
4
- var nodeMachineId = require('node-machine-id');
5
-
6
- function machineID() {
7
- try {
8
- const deviceId = nodeMachineId.machineIdSync();
9
- return deviceId;
10
- } catch (error) {
11
- const deviceId = crypto.randomUUID();
12
- return deviceId;
13
- }
14
- }
15
-
16
- exports.machineID = machineID;
17
- //# sourceMappingURL=machine-id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"machine-id.js","sources":["../../src/utils/machine-id.ts"],"sourcesContent":["import { randomUUID } from 'crypto';\nimport { machineIdSync } from 'node-machine-id';\n\nexport function machineID() {\n try {\n const deviceId = machineIdSync();\n return deviceId;\n } catch (error) {\n const deviceId = randomUUID();\n return deviceId;\n }\n}\n"],"names":["machineID","deviceId","machineIdSync","error","randomUUID"],"mappings":";;;;;AAGO,SAASA,SAAAA,GAAAA;IACd,IAAI;AACF,QAAA,MAAMC,QAAWC,GAAAA,2BAAAA,EAAAA;QACjB,OAAOD,QAAAA;AACT,KAAA,CAAE,OAAOE,KAAO,EAAA;AACd,QAAA,MAAMF,QAAWG,GAAAA,iBAAAA,EAAAA;QACjB,OAAOH,QAAAA;AACT;AACF;;;;"}
@@ -1,15 +0,0 @@
1
- import { randomUUID } from 'crypto';
2
- import { machineIdSync } from 'node-machine-id';
3
-
4
- function machineID() {
5
- try {
6
- const deviceId = machineIdSync();
7
- return deviceId;
8
- } catch (error) {
9
- const deviceId = randomUUID();
10
- return deviceId;
11
- }
12
- }
13
-
14
- export { machineID };
15
- //# sourceMappingURL=machine-id.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"machine-id.mjs","sources":["../../src/utils/machine-id.ts"],"sourcesContent":["import { randomUUID } from 'crypto';\nimport { machineIdSync } from 'node-machine-id';\n\nexport function machineID() {\n try {\n const deviceId = machineIdSync();\n return deviceId;\n } catch (error) {\n const deviceId = randomUUID();\n return deviceId;\n }\n}\n"],"names":["machineID","deviceId","machineIdSync","error","randomUUID"],"mappings":";;;AAGO,SAASA,SAAAA,GAAAA;IACd,IAAI;AACF,QAAA,MAAMC,QAAWC,GAAAA,aAAAA,EAAAA;QACjB,OAAOD,QAAAA;AACT,KAAA,CAAE,OAAOE,KAAO,EAAA;AACd,QAAA,MAAMF,QAAWG,GAAAA,UAAAA,EAAAA;QACjB,OAAOH,QAAAA;AACT;AACF;;;;"}