create-strapi-app 5.48.0 → 5.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/create-strapi.js +38 -31
- package/dist/create-strapi.js.map +1 -1
- package/dist/index.js +21 -13
- package/dist/index.js.map +1 -1
- package/dist/utils/check-install-path.js +10 -5
- package/dist/utils/check-install-path.js.map +1 -1
- package/dist/utils/check-requirements.js +11 -6
- package/dist/utils/check-requirements.js.map +1 -1
- package/dist/utils/dot-env.js +7 -2
- package/dist/utils/dot-env.js.map +1 -1
- package/dist/utils/engines.js +1 -1
- package/dist/utils/engines.js.map +1 -1
- package/dist/utils/engines.mjs +1 -1
- package/dist/utils/engines.mjs.map +1 -1
- package/dist/utils/get-package-manager-args.js +7 -2
- package/dist/utils/get-package-manager-args.js.map +1 -1
- package/dist/utils/git.js +10 -6
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/install-id.js +6 -2
- package/dist/utils/install-id.js.map +1 -1
- package/dist/utils/logger.js +11 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/package-json.d.ts.map +1 -1
- package/dist/utils/package-json.js +29 -3
- package/dist/utils/package-json.js.map +1 -1
- package/dist/utils/package-json.mjs +25 -3
- package/dist/utils/package-json.mjs.map +1 -1
- package/dist/utils/parse-to-chalk.js +11 -7
- package/dist/utils/parse-to-chalk.js.map +1 -1
- package/dist/utils/template.js +17 -10
- package/dist/utils/template.js.map +1 -1
- package/dist/utils/usage.js +10 -5
- package/dist/utils/usage.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dot-env.js","sources":["../../src/utils/dot-env.ts"],"sourcesContent":["import crypto from 'crypto';\nimport _ from 'lodash';\n\nimport type { Scope } from '../types';\n\nconst generateASecret = () => crypto.randomBytes(16).toString('base64');\n\nconst envTmpl = `\n# Server\nHOST=0.0.0.0\nPORT=1337\n\n# Secrets\nAPP_KEYS=<%= appKeys %>\nAPI_TOKEN_SALT=<%= apiTokenSalt %>\nADMIN_JWT_SECRET=<%= adminJwtToken %>\nTRANSFER_TOKEN_SALT=<%= transferTokenSalt %>\nENCRYPTION_KEY=<%= encryptionKey %>\n\n# Database\nDATABASE_CLIENT=<%= database.client %>\nDATABASE_HOST=<%= database.connection.host %>\nDATABASE_PORT=<%= database.connection.port %>\nDATABASE_NAME=<%= database.connection.database %>\nDATABASE_USERNAME=<%= database.connection.username %>\nDATABASE_PASSWORD=<%= database.connection.password %>\nDATABASE_SSL=<%= database.connection.ssl %>\nDATABASE_FILENAME=<%= database.connection.filename %>\n`;\n\nexport function generateDotEnv(scope: Scope) {\n const compile = _.template(envTmpl);\n\n return compile({\n appKeys: new Array(4).fill(null).map(generateASecret).join(','),\n apiTokenSalt: generateASecret(),\n transferTokenSalt: generateASecret(),\n adminJwtToken: generateASecret(),\n encryptionKey: generateASecret(),\n database: {\n client: scope.database.client,\n connection: {\n ...scope.database.connection,\n ssl: scope.database.connection?.ssl || false,\n },\n },\n });\n}\n"],"names":["generateASecret","crypto","randomBytes","toString","envTmpl","generateDotEnv","scope","compile","_","template","appKeys","Array","fill","map","join","apiTokenSalt","transferTokenSalt","adminJwtToken","encryptionKey","database","client","connection","ssl"],"mappings":"
|
|
1
|
+
{"version":3,"file":"dot-env.js","sources":["../../src/utils/dot-env.ts"],"sourcesContent":["import crypto from 'crypto';\nimport _ from 'lodash';\n\nimport type { Scope } from '../types';\n\nconst generateASecret = () => crypto.randomBytes(16).toString('base64');\n\nconst envTmpl = `\n# Server\nHOST=0.0.0.0\nPORT=1337\n\n# Secrets\nAPP_KEYS=<%= appKeys %>\nAPI_TOKEN_SALT=<%= apiTokenSalt %>\nADMIN_JWT_SECRET=<%= adminJwtToken %>\nTRANSFER_TOKEN_SALT=<%= transferTokenSalt %>\nENCRYPTION_KEY=<%= encryptionKey %>\n\n# Database\nDATABASE_CLIENT=<%= database.client %>\nDATABASE_HOST=<%= database.connection.host %>\nDATABASE_PORT=<%= database.connection.port %>\nDATABASE_NAME=<%= database.connection.database %>\nDATABASE_USERNAME=<%= database.connection.username %>\nDATABASE_PASSWORD=<%= database.connection.password %>\nDATABASE_SSL=<%= database.connection.ssl %>\nDATABASE_FILENAME=<%= database.connection.filename %>\n`;\n\nexport function generateDotEnv(scope: Scope) {\n const compile = _.template(envTmpl);\n\n return compile({\n appKeys: new Array(4).fill(null).map(generateASecret).join(','),\n apiTokenSalt: generateASecret(),\n transferTokenSalt: generateASecret(),\n adminJwtToken: generateASecret(),\n encryptionKey: generateASecret(),\n database: {\n client: scope.database.client,\n connection: {\n ...scope.database.connection,\n ssl: scope.database.connection?.ssl || false,\n },\n },\n });\n}\n"],"names":["generateASecret","crypto","randomBytes","toString","envTmpl","generateDotEnv","scope","compile","_","template","appKeys","Array","fill","map","join","apiTokenSalt","transferTokenSalt","adminJwtToken","encryptionKey","database","client","connection","ssl"],"mappings":";;;;;;;;;;AAKA,MAAMA,kBAAkB,IAAMC,uBAAAA,CAAOC,WAAW,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,QAAA,CAAA;AAE9D,MAAMC,UAAU;;;;;;;;;;;;;;;;;;;;;AAqBhB,CAAC;AAEM,SAASC,eAAeC,KAAY,EAAA;IACzC,MAAMC,OAAAA,GAAUC,kBAAAA,CAAEC,QAAQ,CAACL,OAAAA,CAAAA;AAE3B,IAAA,OAAOG,OAAAA,CAAQ;QACbG,OAAAA,EAAS,IAAIC,KAAAA,CAAM,CAAA,CAAA,CAAGC,IAAI,CAAC,MAAMC,GAAG,CAACb,eAAAA,CAAAA,CAAiBc,IAAI,CAAC,GAAA,CAAA;QAC3DC,YAAAA,EAAcf,eAAAA,EAAAA;QACdgB,iBAAAA,EAAmBhB,eAAAA,EAAAA;QACnBiB,aAAAA,EAAejB,eAAAA,EAAAA;QACfkB,aAAAA,EAAelB,eAAAA,EAAAA;QACfmB,QAAAA,EAAU;YACRC,MAAAA,EAAQd,KAAAA,CAAMa,QAAQ,CAACC,MAAM;YAC7BC,UAAAA,EAAY;gBACV,GAAGf,KAAAA,CAAMa,QAAQ,CAACE,UAAU;AAC5BC,gBAAAA,GAAAA,EAAKhB,KAAAA,CAAMa,QAAQ,CAACE,UAAU,EAAEC,GAAAA,IAAO;AACzC;AACF;AACF,KAAA,CAAA;AACF;;;;"}
|
package/dist/utils/engines.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engines.js","sources":["../../src/utils/engines.ts"],"sourcesContent":["export const engines = {\n node: '>=20.0.0 <=
|
|
1
|
+
{"version":3,"file":"engines.js","sources":["../../src/utils/engines.ts"],"sourcesContent":["export const engines = {\n node: '>=20.0.0 <=26.x.x',\n npm: '>=6.0.0',\n};\n"],"names":["engines","node","npm"],"mappings":";;MAAaA,OAAAA,GAAU;IACrBC,IAAAA,EAAM,mBAAA;IACNC,GAAAA,EAAK;AACP;;;;"}
|
package/dist/utils/engines.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engines.mjs","sources":["../../src/utils/engines.ts"],"sourcesContent":["export const engines = {\n node: '>=20.0.0 <=
|
|
1
|
+
{"version":3,"file":"engines.mjs","sources":["../../src/utils/engines.ts"],"sourcesContent":["export const engines = {\n node: '>=20.0.0 <=26.x.x',\n npm: '>=6.0.0',\n};\n"],"names":["engines","node","npm"],"mappings":"MAAaA,OAAAA,GAAU;IACrBC,IAAAA,EAAM,mBAAA;IACNC,GAAAA,EAAK;AACP;;;;"}
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
var execa = require('execa');
|
|
4
4
|
var semver = require('semver');
|
|
5
5
|
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var execa__default = /*#__PURE__*/_interopDefault(execa);
|
|
9
|
+
var semver__default = /*#__PURE__*/_interopDefault(semver);
|
|
10
|
+
|
|
6
11
|
const installArguments = [
|
|
7
12
|
'install'
|
|
8
13
|
];
|
|
@@ -51,7 +56,7 @@ const installEnvMap = {
|
|
|
51
56
|
* @throws Will throw an error if the package manager's version cannot be determined.
|
|
52
57
|
*/ const getPackageManagerVersion = async (packageManager, options)=>{
|
|
53
58
|
try {
|
|
54
|
-
const { stdout } = await
|
|
59
|
+
const { stdout } = await execa__default.default(packageManager, [
|
|
55
60
|
'--version'
|
|
56
61
|
], options);
|
|
57
62
|
return stdout.trim();
|
|
@@ -72,7 +77,7 @@ const installEnvMap = {
|
|
|
72
77
|
* @returns The merged result of all matching ranges.
|
|
73
78
|
*/ function mergeMatchingVersionRanges(version, versionMap, mergeFn) {
|
|
74
79
|
return Object.keys(versionMap).reduce((acc, range)=>{
|
|
75
|
-
if (
|
|
80
|
+
if (semver__default.default.satisfies(version, range) || range === '*') {
|
|
76
81
|
return mergeFn(acc, versionMap[range]);
|
|
77
82
|
}
|
|
78
83
|
return acc;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-package-manager-args.js","sources":["../../src/utils/get-package-manager-args.ts"],"sourcesContent":["import execa from 'execa';\nimport semver from 'semver';\n\nconst installArguments = ['install'];\n\ntype VersionedArgumentsMap = {\n [key: string]: string[]; // Maps semver ranges to argument arrays\n};\n\ntype VersionedEnvMap = {\n [key: string]: Record<string, string>; // Maps semver ranges to environment variables\n};\n\n// Set command line options for specific package managers, with full semver ranges\nconst installArgumentsMap: {\n [key: string]: VersionedArgumentsMap;\n} = {\n npm: {\n '*': ['--legacy-peer-deps'],\n },\n yarn: {\n '<4': ['--network-timeout', '1000000'],\n '*': [],\n },\n pnpm: {\n '*': [],\n },\n};\n\n// Set environment variables for specific package managers, with full semver ranges\nconst installEnvMap: {\n [key: string]: VersionedEnvMap;\n} = {\n yarn: {\n '>=4': { YARN_HTTP_TIMEOUT: '1000000' },\n '*': {},\n },\n npm: {\n '*': {},\n },\n pnpm: {\n '*': {},\n },\n};\n\n/**\n * Retrieves the version of the specified package manager.\n *\n * Executes the package manager's `--version` command to determine its version.\n *\n * @param packageManager - The name of the package manager (e.g., 'npm', 'yarn', 'pnpm').\n * @param options - Optional execution options to pass to `execa`.\n * @returns A promise that resolves to the trimmed version string of the package manager.\n *\n * @throws Will throw an error if the package manager's version cannot be determined.\n */\nexport const getPackageManagerVersion = async (\n packageManager: string,\n options?: execa.Options\n): Promise<string> => {\n try {\n const { stdout } = await execa(packageManager, ['--version'], options);\n return stdout.trim();\n } catch (err) {\n throw new Error(`Error detecting ${packageManager} version: ${err}`);\n }\n};\n\n/**\n * Merges all matching semver ranges using a custom merge function.\n *\n * Iterates over the `versionMap`, checking if the provided `version` satisfies each semver range.\n * If it does, the corresponding value is merged using the provided `mergeFn`.\n * The merging starts with the value associated with the wildcard '*' key.\n *\n * @param version - The package manager version to check against the ranges.\n * @param versionMap - A map of semver ranges to corresponding values (arguments or environment variables).\n * @param mergeFn - A function that defines how to merge two values (accumulated and current).\n * @returns The merged result of all matching ranges.\n */\nfunction mergeMatchingVersionRanges<T>(\n version: string,\n versionMap: { [key: string]: T },\n mergeFn: (acc: T, curr: T) => T\n): T {\n return Object.keys(versionMap).reduce((acc, range) => {\n if (semver.satisfies(version, range) || range === '*') {\n return mergeFn(acc, versionMap[range]);\n }\n return acc;\n }, versionMap['*']); // Start with the wildcard entry\n}\n\nfunction mergeArguments(acc: string[], curr: string[]): string[] {\n return [...acc, ...curr];\n}\n\nfunction mergeEnvVars(\n acc: Record<string, string>,\n curr: Record<string, string>\n): Record<string, string> {\n return { ...acc, ...curr };\n}\n\n/**\n * Retrieves the install arguments and environment variables for a given package manager.\n *\n * This function determines the correct command line arguments and environment variables\n * based on the package manager's version. It uses predefined semver ranges to match\n * the package manager's version and merges all applicable settings.\n *\n * The arguments and environment variables are sourced from:\n * - `installArgumentsMap` for command line arguments.\n * - `installEnvMap` for environment variables.\n *\n * The function ensures that all matching semver ranges are considered and merged appropriately.\n * It always includes the base `installArguments` (e.g., `['install']`) and applies any additional\n * arguments or environment variables as defined by the matched version ranges.\n *\n * @param packageManager - The name of the package manager (e.g., 'npm', 'yarn', 'pnpm').\n * @param options - Optional execution options to pass to `execa`.\n * @returns An object containing:\n * - `cmdArgs`: The full array of install arguments for the given package manager and version.\n * - `envArgs`: The merged environment variables applicable to the package manager and version.\n *\n * @throws Will throw an error if the package manager version cannot be determined.\n */\nexport const getInstallArgs = async (packageManager: string, options?: execa.Options) => {\n const packageManagerVersion = await getPackageManagerVersion(packageManager, options);\n\n // Get environment variables\n const envMap = installEnvMap[packageManager];\n const envArgs = packageManagerVersion\n ? mergeMatchingVersionRanges(packageManagerVersion, envMap, mergeEnvVars)\n : envMap['*'];\n\n // Get install arguments\n const argsMap = installArgumentsMap[packageManager];\n const cmdArgs = packageManagerVersion\n ? mergeMatchingVersionRanges(packageManagerVersion, argsMap, mergeArguments)\n : argsMap['*'];\n\n return { envArgs, cmdArgs: [...installArguments, ...cmdArgs], version: packageManagerVersion };\n};\n"],"names":["installArguments","installArgumentsMap","npm","yarn","pnpm","installEnvMap","YARN_HTTP_TIMEOUT","getPackageManagerVersion","packageManager","options","stdout","execa","trim","err","Error","mergeMatchingVersionRanges","version","versionMap","mergeFn","Object","keys","reduce","acc","range","semver","satisfies","mergeArguments","curr","mergeEnvVars","getInstallArgs","packageManagerVersion","envMap","envArgs","argsMap","cmdArgs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-package-manager-args.js","sources":["../../src/utils/get-package-manager-args.ts"],"sourcesContent":["import execa from 'execa';\nimport semver from 'semver';\n\nconst installArguments = ['install'];\n\ntype VersionedArgumentsMap = {\n [key: string]: string[]; // Maps semver ranges to argument arrays\n};\n\ntype VersionedEnvMap = {\n [key: string]: Record<string, string>; // Maps semver ranges to environment variables\n};\n\n// Set command line options for specific package managers, with full semver ranges\nconst installArgumentsMap: {\n [key: string]: VersionedArgumentsMap;\n} = {\n npm: {\n '*': ['--legacy-peer-deps'],\n },\n yarn: {\n '<4': ['--network-timeout', '1000000'],\n '*': [],\n },\n pnpm: {\n '*': [],\n },\n};\n\n// Set environment variables for specific package managers, with full semver ranges\nconst installEnvMap: {\n [key: string]: VersionedEnvMap;\n} = {\n yarn: {\n '>=4': { YARN_HTTP_TIMEOUT: '1000000' },\n '*': {},\n },\n npm: {\n '*': {},\n },\n pnpm: {\n '*': {},\n },\n};\n\n/**\n * Retrieves the version of the specified package manager.\n *\n * Executes the package manager's `--version` command to determine its version.\n *\n * @param packageManager - The name of the package manager (e.g., 'npm', 'yarn', 'pnpm').\n * @param options - Optional execution options to pass to `execa`.\n * @returns A promise that resolves to the trimmed version string of the package manager.\n *\n * @throws Will throw an error if the package manager's version cannot be determined.\n */\nexport const getPackageManagerVersion = async (\n packageManager: string,\n options?: execa.Options\n): Promise<string> => {\n try {\n const { stdout } = await execa(packageManager, ['--version'], options);\n return stdout.trim();\n } catch (err) {\n throw new Error(`Error detecting ${packageManager} version: ${err}`);\n }\n};\n\n/**\n * Merges all matching semver ranges using a custom merge function.\n *\n * Iterates over the `versionMap`, checking if the provided `version` satisfies each semver range.\n * If it does, the corresponding value is merged using the provided `mergeFn`.\n * The merging starts with the value associated with the wildcard '*' key.\n *\n * @param version - The package manager version to check against the ranges.\n * @param versionMap - A map of semver ranges to corresponding values (arguments or environment variables).\n * @param mergeFn - A function that defines how to merge two values (accumulated and current).\n * @returns The merged result of all matching ranges.\n */\nfunction mergeMatchingVersionRanges<T>(\n version: string,\n versionMap: { [key: string]: T },\n mergeFn: (acc: T, curr: T) => T\n): T {\n return Object.keys(versionMap).reduce((acc, range) => {\n if (semver.satisfies(version, range) || range === '*') {\n return mergeFn(acc, versionMap[range]);\n }\n return acc;\n }, versionMap['*']); // Start with the wildcard entry\n}\n\nfunction mergeArguments(acc: string[], curr: string[]): string[] {\n return [...acc, ...curr];\n}\n\nfunction mergeEnvVars(\n acc: Record<string, string>,\n curr: Record<string, string>\n): Record<string, string> {\n return { ...acc, ...curr };\n}\n\n/**\n * Retrieves the install arguments and environment variables for a given package manager.\n *\n * This function determines the correct command line arguments and environment variables\n * based on the package manager's version. It uses predefined semver ranges to match\n * the package manager's version and merges all applicable settings.\n *\n * The arguments and environment variables are sourced from:\n * - `installArgumentsMap` for command line arguments.\n * - `installEnvMap` for environment variables.\n *\n * The function ensures that all matching semver ranges are considered and merged appropriately.\n * It always includes the base `installArguments` (e.g., `['install']`) and applies any additional\n * arguments or environment variables as defined by the matched version ranges.\n *\n * @param packageManager - The name of the package manager (e.g., 'npm', 'yarn', 'pnpm').\n * @param options - Optional execution options to pass to `execa`.\n * @returns An object containing:\n * - `cmdArgs`: The full array of install arguments for the given package manager and version.\n * - `envArgs`: The merged environment variables applicable to the package manager and version.\n *\n * @throws Will throw an error if the package manager version cannot be determined.\n */\nexport const getInstallArgs = async (packageManager: string, options?: execa.Options) => {\n const packageManagerVersion = await getPackageManagerVersion(packageManager, options);\n\n // Get environment variables\n const envMap = installEnvMap[packageManager];\n const envArgs = packageManagerVersion\n ? mergeMatchingVersionRanges(packageManagerVersion, envMap, mergeEnvVars)\n : envMap['*'];\n\n // Get install arguments\n const argsMap = installArgumentsMap[packageManager];\n const cmdArgs = packageManagerVersion\n ? mergeMatchingVersionRanges(packageManagerVersion, argsMap, mergeArguments)\n : argsMap['*'];\n\n return { envArgs, cmdArgs: [...installArguments, ...cmdArgs], version: packageManagerVersion };\n};\n"],"names":["installArguments","installArgumentsMap","npm","yarn","pnpm","installEnvMap","YARN_HTTP_TIMEOUT","getPackageManagerVersion","packageManager","options","stdout","execa","trim","err","Error","mergeMatchingVersionRanges","version","versionMap","mergeFn","Object","keys","reduce","acc","range","semver","satisfies","mergeArguments","curr","mergeEnvVars","getInstallArgs","packageManagerVersion","envMap","envArgs","argsMap","cmdArgs"],"mappings":"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"}
|
package/dist/utils/git.js
CHANGED
|
@@ -2,9 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
var execa = require('execa');
|
|
4
4
|
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var execa__default = /*#__PURE__*/_interopDefault(execa);
|
|
8
|
+
|
|
5
9
|
async function isInGitRepository(rootDir) {
|
|
6
10
|
try {
|
|
7
|
-
await
|
|
11
|
+
await execa__default.default('git', [
|
|
8
12
|
'rev-parse',
|
|
9
13
|
'--is-inside-work-tree'
|
|
10
14
|
], {
|
|
@@ -18,7 +22,7 @@ async function isInGitRepository(rootDir) {
|
|
|
18
22
|
}
|
|
19
23
|
async function isInMercurialRepository(rootDir) {
|
|
20
24
|
try {
|
|
21
|
-
await
|
|
25
|
+
await execa__default.default('hg', [
|
|
22
26
|
'-cwd',
|
|
23
27
|
'.',
|
|
24
28
|
'root'
|
|
@@ -33,7 +37,7 @@ async function isInMercurialRepository(rootDir) {
|
|
|
33
37
|
}
|
|
34
38
|
async function tryGitInit(rootDir) {
|
|
35
39
|
try {
|
|
36
|
-
await
|
|
40
|
+
await execa__default.default('git', [
|
|
37
41
|
'--version'
|
|
38
42
|
], {
|
|
39
43
|
stdio: 'ignore'
|
|
@@ -41,20 +45,20 @@ async function tryGitInit(rootDir) {
|
|
|
41
45
|
if (await isInGitRepository(rootDir) || await isInMercurialRepository(rootDir)) {
|
|
42
46
|
return false;
|
|
43
47
|
}
|
|
44
|
-
await
|
|
48
|
+
await execa__default.default('git', [
|
|
45
49
|
'init'
|
|
46
50
|
], {
|
|
47
51
|
stdio: 'ignore',
|
|
48
52
|
cwd: rootDir
|
|
49
53
|
});
|
|
50
|
-
await
|
|
54
|
+
await execa__default.default('git', [
|
|
51
55
|
'add',
|
|
52
56
|
'.'
|
|
53
57
|
], {
|
|
54
58
|
stdio: 'ignore',
|
|
55
59
|
cwd: rootDir
|
|
56
60
|
});
|
|
57
|
-
await
|
|
61
|
+
await execa__default.default('git', [
|
|
58
62
|
'commit',
|
|
59
63
|
'-m',
|
|
60
64
|
'Initial commit from Strapi'
|
package/dist/utils/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sources":["../../src/utils/git.ts"],"sourcesContent":["import execa from 'execa';\n\nasync function isInGitRepository(rootDir: string) {\n try {\n await execa('git', ['rev-parse', '--is-inside-work-tree'], { stdio: 'ignore', cwd: rootDir });\n return true;\n } catch (_) {\n return false;\n }\n}\n\nasync function isInMercurialRepository(rootDir: string) {\n try {\n await execa('hg', ['-cwd', '.', 'root'], { stdio: 'ignore', cwd: rootDir });\n return true;\n } catch (_) {\n return false;\n }\n}\n\nexport async function tryGitInit(rootDir: string) {\n try {\n await execa('git', ['--version'], { stdio: 'ignore' });\n if ((await isInGitRepository(rootDir)) || (await isInMercurialRepository(rootDir))) {\n return false;\n }\n\n await execa('git', ['init'], { stdio: 'ignore', cwd: rootDir });\n\n await execa('git', ['add', '.'], { stdio: 'ignore', cwd: rootDir });\n await execa('git', ['commit', '-m', 'Initial commit from Strapi'], {\n stdio: 'ignore',\n cwd: rootDir,\n });\n\n return true;\n } catch (e) {\n console.error('Error while trying to initialize git:', e);\n return false;\n }\n}\n"],"names":["isInGitRepository","rootDir","execa","stdio","cwd","_","isInMercurialRepository","tryGitInit","e","console","error"],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.js","sources":["../../src/utils/git.ts"],"sourcesContent":["import execa from 'execa';\n\nasync function isInGitRepository(rootDir: string) {\n try {\n await execa('git', ['rev-parse', '--is-inside-work-tree'], { stdio: 'ignore', cwd: rootDir });\n return true;\n } catch (_) {\n return false;\n }\n}\n\nasync function isInMercurialRepository(rootDir: string) {\n try {\n await execa('hg', ['-cwd', '.', 'root'], { stdio: 'ignore', cwd: rootDir });\n return true;\n } catch (_) {\n return false;\n }\n}\n\nexport async function tryGitInit(rootDir: string) {\n try {\n await execa('git', ['--version'], { stdio: 'ignore' });\n if ((await isInGitRepository(rootDir)) || (await isInMercurialRepository(rootDir))) {\n return false;\n }\n\n await execa('git', ['init'], { stdio: 'ignore', cwd: rootDir });\n\n await execa('git', ['add', '.'], { stdio: 'ignore', cwd: rootDir });\n await execa('git', ['commit', '-m', 'Initial commit from Strapi'], {\n stdio: 'ignore',\n cwd: rootDir,\n });\n\n return true;\n } catch (e) {\n console.error('Error while trying to initialize git:', e);\n return false;\n }\n}\n"],"names":["isInGitRepository","rootDir","execa","stdio","cwd","_","isInMercurialRepository","tryGitInit","e","console","error"],"mappings":";;;;;;;;AAEA,eAAeA,kBAAkBC,OAAe,EAAA;IAC9C,IAAI;AACF,QAAA,MAAMC,uBAAM,KAAA,EAAO;AAAC,YAAA,WAAA;AAAa,YAAA;SAAwB,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;QAC3F,OAAO,IAAA;AACT,IAAA,CAAA,CAAE,OAAOI,CAAAA,EAAG;QACV,OAAO,KAAA;AACT,IAAA;AACF;AAEA,eAAeC,wBAAwBL,OAAe,EAAA;IACpD,IAAI;AACF,QAAA,MAAMC,uBAAM,IAAA,EAAM;AAAC,YAAA,MAAA;AAAQ,YAAA,GAAA;AAAK,YAAA;SAAO,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;QACzE,OAAO,IAAA;AACT,IAAA,CAAA,CAAE,OAAOI,CAAAA,EAAG;QACV,OAAO,KAAA;AACT,IAAA;AACF;AAEO,eAAeE,WAAWN,OAAe,EAAA;IAC9C,IAAI;AACF,QAAA,MAAMC,uBAAM,KAAA,EAAO;AAAC,YAAA;SAAY,EAAE;YAAEC,KAAAA,EAAO;AAAS,SAAA,CAAA;AACpD,QAAA,IAAI,MAAOH,iBAAAA,CAAkBC,OAAAA,CAAAA,IAAc,MAAMK,wBAAwBL,OAAAA,CAAAA,EAAW;YAClF,OAAO,KAAA;AACT,QAAA;AAEA,QAAA,MAAMC,uBAAM,KAAA,EAAO;AAAC,YAAA;SAAO,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;AAE7D,QAAA,MAAMC,uBAAM,KAAA,EAAO;AAAC,YAAA,KAAA;AAAO,YAAA;SAAI,EAAE;YAAEC,KAAAA,EAAO,QAAA;YAAUC,GAAAA,EAAKH;AAAQ,SAAA,CAAA;AACjE,QAAA,MAAMC,uBAAM,KAAA,EAAO;AAAC,YAAA,QAAA;AAAU,YAAA,IAAA;AAAM,YAAA;SAA6B,EAAE;YACjEC,KAAAA,EAAO,QAAA;YACPC,GAAAA,EAAKH;AACP,SAAA,CAAA;QAEA,OAAO,IAAA;AACT,IAAA,CAAA,CAAE,OAAOO,CAAAA,EAAG;QACVC,OAAAA,CAAQC,KAAK,CAAC,uCAAA,EAAyCF,CAAAA,CAAAA;QACvD,OAAO,KAAA;AACT,IAAA;AACF;;;;"}
|
package/dist/utils/install-id.js
CHANGED
|
@@ -3,12 +3,16 @@
|
|
|
3
3
|
var crypto = require('crypto');
|
|
4
4
|
var nodeMachineId = require('node-machine-id');
|
|
5
5
|
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var crypto__default = /*#__PURE__*/_interopDefault(crypto);
|
|
9
|
+
|
|
6
10
|
function installID(projectId) {
|
|
7
11
|
try {
|
|
8
12
|
const machineId = nodeMachineId.machineIdSync();
|
|
9
|
-
return projectId ?
|
|
13
|
+
return projectId ? crypto__default.default.createHash('sha256').update(`${machineId}-${projectId}`).digest('hex') : crypto__default.default.randomUUID();
|
|
10
14
|
} catch {
|
|
11
|
-
return
|
|
15
|
+
return crypto__default.default.randomUUID();
|
|
12
16
|
}
|
|
13
17
|
}
|
|
14
18
|
|
|
@@ -1 +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":"
|
|
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,SAAAA,GAAYC,2BAAAA,EAAAA;AAClB,QAAA,OAAOF,YACHG,uBAAAA,CAAOC,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAAC,CAAA,EAAGJ,SAAAA,CAAU,CAAC,EAAED,SAAAA,CAAAA,CAAW,CAAA,CAAEM,MAAM,CAAC,KAAA,CAAA,GACvEH,wBAAOI,UAAU,EAAA;AACvB,IAAA,CAAA,CAAE,OAAM;AACN,QAAA,OAAOJ,wBAAOI,UAAU,EAAA;AAC1B,IAAA;AACF;;;;"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var chalk__default = /*#__PURE__*/_interopDefault(chalk);
|
|
8
|
+
|
|
5
9
|
const MAX_PREFIX_LENGTH = 8;
|
|
6
|
-
const badge = (text, bgColor, textColor =
|
|
10
|
+
const badge = (text, bgColor, textColor = chalk__default.default.black)=>{
|
|
7
11
|
const wrappedText = ` ${text} `;
|
|
8
12
|
const repeat = Math.max(0, MAX_PREFIX_LENGTH - wrappedText.length);
|
|
9
13
|
return ' '.repeat(repeat) + bgColor(textColor(wrappedText));
|
|
@@ -24,28 +28,28 @@ const logger = {
|
|
|
24
28
|
console.log(textIndent(message));
|
|
25
29
|
},
|
|
26
30
|
title (title, message) {
|
|
27
|
-
const prefix = badge(title,
|
|
31
|
+
const prefix = badge(title, chalk__default.default.bgBlueBright);
|
|
28
32
|
console.log(`\n${prefix} ${message}`);
|
|
29
33
|
},
|
|
30
34
|
info (message) {
|
|
31
|
-
console.log(`${' '.repeat(7)}${
|
|
35
|
+
console.log(`${' '.repeat(7)}${chalk__default.default.cyan('●')} ${message}`);
|
|
32
36
|
},
|
|
33
37
|
success (message) {
|
|
34
|
-
console.log(`\n${' '.repeat(7)}${
|
|
38
|
+
console.log(`\n${' '.repeat(7)}${chalk__default.default.green('✓')} ${chalk__default.default.green(message)}`);
|
|
35
39
|
},
|
|
36
40
|
fatal (message) {
|
|
37
|
-
const prefix = badge('Error',
|
|
41
|
+
const prefix = badge('Error', chalk__default.default.bgRed);
|
|
38
42
|
if (message) {
|
|
39
43
|
console.error(`\n${prefix} ${textIndent(message, false)}\n`);
|
|
40
44
|
}
|
|
41
45
|
process.exit(1);
|
|
42
46
|
},
|
|
43
47
|
error (message) {
|
|
44
|
-
const prefix = badge('Error',
|
|
48
|
+
const prefix = badge('Error', chalk__default.default.bgRed);
|
|
45
49
|
console.error(`\n${prefix} ${textIndent(message, false)}\n`);
|
|
46
50
|
},
|
|
47
51
|
warn (message) {
|
|
48
|
-
const prefix = badge('Warn',
|
|
52
|
+
const prefix = badge('Warn', chalk__default.default.bgYellow);
|
|
49
53
|
console.warn(`\n${prefix} ${textIndent(message, false)}\n`);
|
|
50
54
|
}
|
|
51
55
|
};
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sources":["../../src/utils/logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { ChalkFunction } from 'chalk';\n\nconst MAX_PREFIX_LENGTH = 8;\n\nconst badge = (text: string, bgColor: ChalkFunction, textColor: ChalkFunction = chalk.black) => {\n const wrappedText = ` ${text} `;\n\n const repeat = Math.max(0, MAX_PREFIX_LENGTH - wrappedText.length);\n\n return ' '.repeat(repeat) + bgColor(textColor(wrappedText));\n};\n\nconst textIndent = (\n text: string | string[],\n indentFirst = true,\n indent: number = MAX_PREFIX_LENGTH + 2\n) => {\n const parts = Array.isArray(text) ? text : [text];\n\n return parts\n .map((part, i) => {\n if (i === 0 && !indentFirst) {\n return part;\n }\n\n return ' '.repeat(indent) + part;\n })\n .join('\\n');\n};\n\nexport const logger = {\n log(message: string | string[]): void {\n console.log(textIndent(message));\n },\n title(title: string, message: string): void {\n const prefix = badge(title, chalk.bgBlueBright);\n console.log(`\\n${prefix} ${message}`);\n },\n info(message: string): void {\n console.log(`${' '.repeat(7)}${chalk.cyan('●')} ${message}`);\n },\n success(message: string): void {\n console.log(`\\n${' '.repeat(7)}${chalk.green('✓')} ${chalk.green(message)}`);\n },\n fatal(message?: string | string[]): never {\n const prefix = badge('Error', chalk.bgRed);\n\n if (message) {\n console.error(`\\n${prefix} ${textIndent(message, false)}\\n`);\n }\n\n process.exit(1);\n },\n error(message: string | string[]): void {\n const prefix = badge('Error', chalk.bgRed);\n console.error(`\\n${prefix} ${textIndent(message, false)}\\n`);\n },\n warn(message: string | string[]): void {\n const prefix = badge('Warn', chalk.bgYellow);\n console.warn(`\\n${prefix} ${textIndent(message, false)}\\n`);\n },\n};\n"],"names":["MAX_PREFIX_LENGTH","badge","text","bgColor","textColor","chalk","black","wrappedText","repeat","Math","max","length","textIndent","indentFirst","indent","parts","Array","isArray","map","part","i","join","logger","log","message","console","title","prefix","bgBlueBright","info","cyan","success","green","fatal","bgRed","error","process","exit","warn","bgYellow"],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.js","sources":["../../src/utils/logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { ChalkFunction } from 'chalk';\n\nconst MAX_PREFIX_LENGTH = 8;\n\nconst badge = (text: string, bgColor: ChalkFunction, textColor: ChalkFunction = chalk.black) => {\n const wrappedText = ` ${text} `;\n\n const repeat = Math.max(0, MAX_PREFIX_LENGTH - wrappedText.length);\n\n return ' '.repeat(repeat) + bgColor(textColor(wrappedText));\n};\n\nconst textIndent = (\n text: string | string[],\n indentFirst = true,\n indent: number = MAX_PREFIX_LENGTH + 2\n) => {\n const parts = Array.isArray(text) ? text : [text];\n\n return parts\n .map((part, i) => {\n if (i === 0 && !indentFirst) {\n return part;\n }\n\n return ' '.repeat(indent) + part;\n })\n .join('\\n');\n};\n\nexport const logger = {\n log(message: string | string[]): void {\n console.log(textIndent(message));\n },\n title(title: string, message: string): void {\n const prefix = badge(title, chalk.bgBlueBright);\n console.log(`\\n${prefix} ${message}`);\n },\n info(message: string): void {\n console.log(`${' '.repeat(7)}${chalk.cyan('●')} ${message}`);\n },\n success(message: string): void {\n console.log(`\\n${' '.repeat(7)}${chalk.green('✓')} ${chalk.green(message)}`);\n },\n fatal(message?: string | string[]): never {\n const prefix = badge('Error', chalk.bgRed);\n\n if (message) {\n console.error(`\\n${prefix} ${textIndent(message, false)}\\n`);\n }\n\n process.exit(1);\n },\n error(message: string | string[]): void {\n const prefix = badge('Error', chalk.bgRed);\n console.error(`\\n${prefix} ${textIndent(message, false)}\\n`);\n },\n warn(message: string | string[]): void {\n const prefix = badge('Warn', chalk.bgYellow);\n console.warn(`\\n${prefix} ${textIndent(message, false)}\\n`);\n },\n};\n"],"names":["MAX_PREFIX_LENGTH","badge","text","bgColor","textColor","chalk","black","wrappedText","repeat","Math","max","length","textIndent","indentFirst","indent","parts","Array","isArray","map","part","i","join","logger","log","message","console","title","prefix","bgBlueBright","info","cyan","success","green","fatal","bgRed","error","process","exit","warn","bgYellow"],"mappings":"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"}
|
|
@@ -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;
|
|
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;AAwCtC,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,KAAK,iBA2BnD"}
|
|
@@ -5,10 +5,35 @@ var _ = require('lodash');
|
|
|
5
5
|
var fse = require('fs-extra');
|
|
6
6
|
var engines = require('./engines.js');
|
|
7
7
|
|
|
8
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
|
|
10
|
+
var fse__default = /*#__PURE__*/_interopDefault(fse);
|
|
11
|
+
|
|
12
|
+
const mergePackageJson = (existingPkg, pkg)=>_.mergeWith({}, existingPkg, pkg, (_objValue, srcValue)=>{
|
|
13
|
+
if (Array.isArray(srcValue)) {
|
|
14
|
+
return srcValue;
|
|
15
|
+
}
|
|
16
|
+
return undefined;
|
|
17
|
+
});
|
|
18
|
+
const getPnpmOnlyBuiltDependencies = (scope, existingPkg)=>{
|
|
19
|
+
if (scope.packageManager !== 'pnpm' || scope.database.client !== 'sqlite') {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
const existingOnlyBuiltDependencies = Array.isArray(existingPkg.pnpm?.onlyBuiltDependencies) ? existingPkg.pnpm.onlyBuiltDependencies.filter((dep)=>typeof dep === 'string') : [];
|
|
23
|
+
return {
|
|
24
|
+
pnpm: {
|
|
25
|
+
...existingPkg.pnpm ?? {},
|
|
26
|
+
onlyBuiltDependencies: Array.from(new Set([
|
|
27
|
+
...existingOnlyBuiltDependencies,
|
|
28
|
+
'better-sqlite3'
|
|
29
|
+
])).sort()
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
};
|
|
8
33
|
async function createPackageJSON(scope) {
|
|
9
34
|
const { sortPackageJson } = await import('sort-package-json');
|
|
10
35
|
const pkgJSONPath = path.join(scope.rootPath, 'package.json');
|
|
11
|
-
const existingPkg = await
|
|
36
|
+
const existingPkg = await fse__default.default.readJSON(pkgJSONPath).catch(()=>({}));
|
|
12
37
|
const pkg = {
|
|
13
38
|
name: _.kebabCase(scope.name),
|
|
14
39
|
private: true,
|
|
@@ -21,10 +46,11 @@ async function createPackageJSON(scope) {
|
|
|
21
46
|
uuid: scope.uuid,
|
|
22
47
|
installId: scope.installId
|
|
23
48
|
},
|
|
24
|
-
engines: engines.engines
|
|
49
|
+
engines: engines.engines,
|
|
50
|
+
...getPnpmOnlyBuiltDependencies(scope, existingPkg)
|
|
25
51
|
};
|
|
26
52
|
// copy templates
|
|
27
|
-
await
|
|
53
|
+
await fse__default.default.writeJSON(pkgJSONPath, sortPackageJson(mergePackageJson(existingPkg, pkg)), {
|
|
28
54
|
spaces: 2
|
|
29
55
|
});
|
|
30
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-json.js","sources":["../../src/utils/package-json.ts"],"sourcesContent":["import { join } from 'path';\nimport { kebabCase,
|
|
1
|
+
{"version":3,"file":"package-json.js","sources":["../../src/utils/package-json.ts"],"sourcesContent":["import { join } from 'path';\nimport { kebabCase, mergeWith } from 'lodash';\nimport fse from 'fs-extra';\n\nimport { engines } from './engines';\nimport type { Scope } from '../types';\n\ntype PnpmPackageConfig = {\n onlyBuiltDependencies?: string[];\n [key: string]: unknown;\n};\n\ntype PackageJson = {\n pnpm?: PnpmPackageConfig;\n [key: string]: unknown;\n};\n\nconst mergePackageJson = (existingPkg: PackageJson, pkg: PackageJson) =>\n mergeWith({}, existingPkg, pkg, (_objValue, srcValue) => {\n if (Array.isArray(srcValue)) {\n return srcValue;\n }\n\n return undefined;\n });\n\nconst getPnpmOnlyBuiltDependencies = (scope: Scope, existingPkg: PackageJson) => {\n if (scope.packageManager !== 'pnpm' || scope.database.client !== 'sqlite') {\n return {};\n }\n\n const existingOnlyBuiltDependencies = Array.isArray(existingPkg.pnpm?.onlyBuiltDependencies)\n ? existingPkg.pnpm.onlyBuiltDependencies.filter((dep): dep is string => typeof dep === 'string')\n : [];\n\n return {\n pnpm: {\n ...(existingPkg.pnpm ?? {}),\n onlyBuiltDependencies: Array.from(\n new Set([...existingOnlyBuiltDependencies, 'better-sqlite3'])\n ).sort(),\n },\n };\n};\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(() => ({}))) as PackageJson;\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 ...getPnpmOnlyBuiltDependencies(scope, existingPkg),\n };\n\n // copy templates\n await fse.writeJSON(pkgJSONPath, sortPackageJson(mergePackageJson(existingPkg, pkg)), {\n spaces: 2,\n });\n}\n"],"names":["mergePackageJson","existingPkg","pkg","mergeWith","_objValue","srcValue","Array","isArray","undefined","getPnpmOnlyBuiltDependencies","scope","packageManager","database","client","existingOnlyBuiltDependencies","pnpm","onlyBuiltDependencies","filter","dep","from","Set","sort","createPackageJSON","sortPackageJson","pkgJSONPath","join","rootPath","fse","readJSON","catch","name","kebabCase","private","version","description","devDependencies","dependencies","strapi","packageJsonStrapi","uuid","installId","engines","writeJSON","spaces"],"mappings":";;;;;;;;;;;AAiBA,MAAMA,gBAAAA,GAAmB,CAACC,WAAAA,EAA0BC,GAAAA,GAClDC,WAAAA,CAAU,EAAC,EAAGF,WAAAA,EAAaC,GAAAA,EAAK,CAACE,SAAAA,EAAWC,QAAAA,GAAAA;QAC1C,IAAIC,KAAAA,CAAMC,OAAO,CAACF,QAAAA,CAAAA,EAAW;YAC3B,OAAOA,QAAAA;AACT,QAAA;QAEA,OAAOG,SAAAA;AACT,IAAA,CAAA,CAAA;AAEF,MAAMC,4BAAAA,GAA+B,CAACC,KAAAA,EAAcT,WAAAA,GAAAA;IAClD,IAAIS,KAAAA,CAAMC,cAAc,KAAK,MAAA,IAAUD,MAAME,QAAQ,CAACC,MAAM,KAAK,QAAA,EAAU;AACzE,QAAA,OAAO,EAAC;AACV,IAAA;IAEA,MAAMC,6BAAAA,GAAgCR,MAAMC,OAAO,CAACN,YAAYc,IAAI,EAAEC,yBAClEf,WAAAA,CAAYc,IAAI,CAACC,qBAAqB,CAACC,MAAM,CAAC,CAACC,MAAuB,OAAOA,GAAAA,KAAQ,YACrF,EAAE;IAEN,OAAO;QACLH,IAAAA,EAAM;AACJ,YAAA,GAAId,WAAAA,CAAYc,IAAI,IAAI,EAAE;AAC1BC,YAAAA,qBAAAA,EAAuBV,KAAAA,CAAMa,IAAI,CAC/B,IAAIC,GAAAA,CAAI;AAAIN,gBAAAA,GAAAA,6BAAAA;AAA+B,gBAAA;AAAiB,aAAA,CAAA,CAAA,CAC5DO,IAAI;AACR;AACF,KAAA;AACF,CAAA;AAEO,eAAeC,kBAAkBZ,KAAY,EAAA;AAClD,IAAA,MAAM,EAAEa,eAAe,EAAE,GAAG,MAAM,OAAO,mBAAA,CAAA;AAEzC,IAAA,MAAMC,WAAAA,GAAcC,SAAAA,CAAKf,KAAAA,CAAMgB,QAAQ,EAAE,cAAA,CAAA;IAEzC,MAAMzB,WAAAA,GAAe,MAAM0B,oBAAAA,CAAIC,QAAQ,CAACJ,WAAAA,CAAAA,CAAaK,KAAK,CAAC,KAAO,EAAC,CAAA,CAAA;AAEnE,IAAA,MAAM3B,GAAAA,GAAM;QACV4B,IAAAA,EAAMC,WAAAA,CAAUrB,MAAMoB,IAAI,CAAA;QAC1BE,OAAAA,EAAS,IAAA;QACTC,OAAAA,EAAS,OAAA;QACTC,WAAAA,EAAa,sBAAA;QACbC,eAAAA,EAAiBzB,KAAAA,CAAMyB,eAAe,IAAI,EAAC;QAC3CC,YAAAA,EAAc1B,KAAAA,CAAM0B,YAAY,IAAI,EAAC;QACrCC,MAAAA,EAAQ;AACN,YAAA,GAAI3B,KAAAA,CAAM4B,iBAAiB,IAAI,EAAE;AACjCC,YAAAA,IAAAA,EAAM7B,MAAM6B,IAAI;AAChBC,YAAAA,SAAAA,EAAW9B,MAAM8B;AACnB,SAAA;AACAC,iBAAAA,eAAAA;QACA,GAAGhC,4BAAAA,CAA6BC,OAAOT,WAAAA;AACzC,KAAA;;AAGA,IAAA,MAAM0B,qBAAIe,SAAS,CAAClB,aAAaD,eAAAA,CAAgBvB,gBAAAA,CAAiBC,aAAaC,GAAAA,CAAAA,CAAAA,EAAO;QACpFyC,MAAAA,EAAQ;AACV,KAAA,CAAA;AACF;;;;"}
|
|
@@ -1,8 +1,29 @@
|
|
|
1
1
|
import { join } from 'path';
|
|
2
|
-
import { kebabCase,
|
|
2
|
+
import { kebabCase, mergeWith } from 'lodash';
|
|
3
3
|
import fse from 'fs-extra';
|
|
4
4
|
import { engines } from './engines.mjs';
|
|
5
5
|
|
|
6
|
+
const mergePackageJson = (existingPkg, pkg)=>mergeWith({}, existingPkg, pkg, (_objValue, srcValue)=>{
|
|
7
|
+
if (Array.isArray(srcValue)) {
|
|
8
|
+
return srcValue;
|
|
9
|
+
}
|
|
10
|
+
return undefined;
|
|
11
|
+
});
|
|
12
|
+
const getPnpmOnlyBuiltDependencies = (scope, existingPkg)=>{
|
|
13
|
+
if (scope.packageManager !== 'pnpm' || scope.database.client !== 'sqlite') {
|
|
14
|
+
return {};
|
|
15
|
+
}
|
|
16
|
+
const existingOnlyBuiltDependencies = Array.isArray(existingPkg.pnpm?.onlyBuiltDependencies) ? existingPkg.pnpm.onlyBuiltDependencies.filter((dep)=>typeof dep === 'string') : [];
|
|
17
|
+
return {
|
|
18
|
+
pnpm: {
|
|
19
|
+
...existingPkg.pnpm ?? {},
|
|
20
|
+
onlyBuiltDependencies: Array.from(new Set([
|
|
21
|
+
...existingOnlyBuiltDependencies,
|
|
22
|
+
'better-sqlite3'
|
|
23
|
+
])).sort()
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
};
|
|
6
27
|
async function createPackageJSON(scope) {
|
|
7
28
|
const { sortPackageJson } = await import('sort-package-json');
|
|
8
29
|
const pkgJSONPath = join(scope.rootPath, 'package.json');
|
|
@@ -19,10 +40,11 @@ async function createPackageJSON(scope) {
|
|
|
19
40
|
uuid: scope.uuid,
|
|
20
41
|
installId: scope.installId
|
|
21
42
|
},
|
|
22
|
-
engines
|
|
43
|
+
engines,
|
|
44
|
+
...getPnpmOnlyBuiltDependencies(scope, existingPkg)
|
|
23
45
|
};
|
|
24
46
|
// copy templates
|
|
25
|
-
await fse.writeJSON(pkgJSONPath, sortPackageJson(
|
|
47
|
+
await fse.writeJSON(pkgJSONPath, sortPackageJson(mergePackageJson(existingPkg, pkg)), {
|
|
26
48
|
spaces: 2
|
|
27
49
|
});
|
|
28
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-json.mjs","sources":["../../src/utils/package-json.ts"],"sourcesContent":["import { join } from 'path';\nimport { kebabCase,
|
|
1
|
+
{"version":3,"file":"package-json.mjs","sources":["../../src/utils/package-json.ts"],"sourcesContent":["import { join } from 'path';\nimport { kebabCase, mergeWith } from 'lodash';\nimport fse from 'fs-extra';\n\nimport { engines } from './engines';\nimport type { Scope } from '../types';\n\ntype PnpmPackageConfig = {\n onlyBuiltDependencies?: string[];\n [key: string]: unknown;\n};\n\ntype PackageJson = {\n pnpm?: PnpmPackageConfig;\n [key: string]: unknown;\n};\n\nconst mergePackageJson = (existingPkg: PackageJson, pkg: PackageJson) =>\n mergeWith({}, existingPkg, pkg, (_objValue, srcValue) => {\n if (Array.isArray(srcValue)) {\n return srcValue;\n }\n\n return undefined;\n });\n\nconst getPnpmOnlyBuiltDependencies = (scope: Scope, existingPkg: PackageJson) => {\n if (scope.packageManager !== 'pnpm' || scope.database.client !== 'sqlite') {\n return {};\n }\n\n const existingOnlyBuiltDependencies = Array.isArray(existingPkg.pnpm?.onlyBuiltDependencies)\n ? existingPkg.pnpm.onlyBuiltDependencies.filter((dep): dep is string => typeof dep === 'string')\n : [];\n\n return {\n pnpm: {\n ...(existingPkg.pnpm ?? {}),\n onlyBuiltDependencies: Array.from(\n new Set([...existingOnlyBuiltDependencies, 'better-sqlite3'])\n ).sort(),\n },\n };\n};\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(() => ({}))) as PackageJson;\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 ...getPnpmOnlyBuiltDependencies(scope, existingPkg),\n };\n\n // copy templates\n await fse.writeJSON(pkgJSONPath, sortPackageJson(mergePackageJson(existingPkg, pkg)), {\n spaces: 2,\n });\n}\n"],"names":["mergePackageJson","existingPkg","pkg","mergeWith","_objValue","srcValue","Array","isArray","undefined","getPnpmOnlyBuiltDependencies","scope","packageManager","database","client","existingOnlyBuiltDependencies","pnpm","onlyBuiltDependencies","filter","dep","from","Set","sort","createPackageJSON","sortPackageJson","pkgJSONPath","join","rootPath","fse","readJSON","catch","name","kebabCase","private","version","description","devDependencies","dependencies","strapi","packageJsonStrapi","uuid","installId","engines","writeJSON","spaces"],"mappings":";;;;;AAiBA,MAAMA,gBAAAA,GAAmB,CAACC,WAAAA,EAA0BC,GAAAA,GAClDC,SAAAA,CAAU,EAAC,EAAGF,WAAAA,EAAaC,GAAAA,EAAK,CAACE,SAAAA,EAAWC,QAAAA,GAAAA;QAC1C,IAAIC,KAAAA,CAAMC,OAAO,CAACF,QAAAA,CAAAA,EAAW;YAC3B,OAAOA,QAAAA;AACT,QAAA;QAEA,OAAOG,SAAAA;AACT,IAAA,CAAA,CAAA;AAEF,MAAMC,4BAAAA,GAA+B,CAACC,KAAAA,EAAcT,WAAAA,GAAAA;IAClD,IAAIS,KAAAA,CAAMC,cAAc,KAAK,MAAA,IAAUD,MAAME,QAAQ,CAACC,MAAM,KAAK,QAAA,EAAU;AACzE,QAAA,OAAO,EAAC;AACV,IAAA;IAEA,MAAMC,6BAAAA,GAAgCR,MAAMC,OAAO,CAACN,YAAYc,IAAI,EAAEC,yBAClEf,WAAAA,CAAYc,IAAI,CAACC,qBAAqB,CAACC,MAAM,CAAC,CAACC,MAAuB,OAAOA,GAAAA,KAAQ,YACrF,EAAE;IAEN,OAAO;QACLH,IAAAA,EAAM;AACJ,YAAA,GAAId,WAAAA,CAAYc,IAAI,IAAI,EAAE;AAC1BC,YAAAA,qBAAAA,EAAuBV,KAAAA,CAAMa,IAAI,CAC/B,IAAIC,GAAAA,CAAI;AAAIN,gBAAAA,GAAAA,6BAAAA;AAA+B,gBAAA;AAAiB,aAAA,CAAA,CAAA,CAC5DO,IAAI;AACR;AACF,KAAA;AACF,CAAA;AAEO,eAAeC,kBAAkBZ,KAAY,EAAA;AAClD,IAAA,MAAM,EAAEa,eAAe,EAAE,GAAG,MAAM,OAAO,mBAAA,CAAA;AAEzC,IAAA,MAAMC,WAAAA,GAAcC,IAAAA,CAAKf,KAAAA,CAAMgB,QAAQ,EAAE,cAAA,CAAA;IAEzC,MAAMzB,WAAAA,GAAe,MAAM0B,GAAAA,CAAIC,QAAQ,CAACJ,WAAAA,CAAAA,CAAaK,KAAK,CAAC,KAAO,EAAC,CAAA,CAAA;AAEnE,IAAA,MAAM3B,GAAAA,GAAM;QACV4B,IAAAA,EAAMC,SAAAA,CAAUrB,MAAMoB,IAAI,CAAA;QAC1BE,OAAAA,EAAS,IAAA;QACTC,OAAAA,EAAS,OAAA;QACTC,WAAAA,EAAa,sBAAA;QACbC,eAAAA,EAAiBzB,KAAAA,CAAMyB,eAAe,IAAI,EAAC;QAC3CC,YAAAA,EAAc1B,KAAAA,CAAM0B,YAAY,IAAI,EAAC;QACrCC,MAAAA,EAAQ;AACN,YAAA,GAAI3B,KAAAA,CAAM4B,iBAAiB,IAAI,EAAE;AACjCC,YAAAA,IAAAA,EAAM7B,MAAM6B,IAAI;AAChBC,YAAAA,SAAAA,EAAW9B,MAAM8B;AACnB,SAAA;AACAC,QAAAA,OAAAA;QACA,GAAGhC,4BAAAA,CAA6BC,OAAOT,WAAAA;AACzC,KAAA;;AAGA,IAAA,MAAM0B,IAAIe,SAAS,CAAClB,aAAaD,eAAAA,CAAgBvB,gBAAAA,CAAiBC,aAAaC,GAAAA,CAAAA,CAAAA,EAAO;QACpFyC,MAAAA,EAAQ;AACV,KAAA,CAAA;AACF;;;;"}
|
|
@@ -2,15 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var chalk__default = /*#__PURE__*/_interopDefault(chalk);
|
|
8
|
+
|
|
5
9
|
// TODO: move styles to API
|
|
6
10
|
const supportedStyles = {
|
|
7
|
-
magentaBright:
|
|
8
|
-
blueBright:
|
|
9
|
-
yellowBright:
|
|
10
|
-
green:
|
|
11
|
-
red:
|
|
12
|
-
bold:
|
|
13
|
-
italic:
|
|
11
|
+
magentaBright: chalk__default.default.magentaBright,
|
|
12
|
+
blueBright: chalk__default.default.blueBright,
|
|
13
|
+
yellowBright: chalk__default.default.yellowBright,
|
|
14
|
+
green: chalk__default.default.green,
|
|
15
|
+
red: chalk__default.default.red,
|
|
16
|
+
bold: chalk__default.default.bold,
|
|
17
|
+
italic: chalk__default.default.italic
|
|
14
18
|
};
|
|
15
19
|
function parseToChalk(template) {
|
|
16
20
|
let result = template;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-to-chalk.js","sources":["../../src/utils/parse-to-chalk.ts"],"sourcesContent":["import chalk from 'chalk';\n\n// TODO: move styles to API\n\nconst supportedStyles = {\n magentaBright: chalk.magentaBright,\n blueBright: chalk.blueBright,\n yellowBright: chalk.yellowBright,\n green: chalk.green,\n red: chalk.red,\n bold: chalk.bold,\n italic: chalk.italic,\n};\n\nexport default function parseToChalk(template: string) {\n let result = template;\n\n for (const [color, chalkFunction] of Object.entries(supportedStyles)) {\n const regex = new RegExp(`{${color}}(.*?){/${color}}`, 'g');\n result = result.replace(regex, (_, p1) => chalkFunction(p1.trim()));\n }\n\n return result;\n}\n"],"names":["supportedStyles","magentaBright","chalk","blueBright","yellowBright","green","red","bold","italic","parseToChalk","template","result","color","chalkFunction","Object","entries","regex","RegExp","replace","_","p1","trim"],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse-to-chalk.js","sources":["../../src/utils/parse-to-chalk.ts"],"sourcesContent":["import chalk from 'chalk';\n\n// TODO: move styles to API\n\nconst supportedStyles = {\n magentaBright: chalk.magentaBright,\n blueBright: chalk.blueBright,\n yellowBright: chalk.yellowBright,\n green: chalk.green,\n red: chalk.red,\n bold: chalk.bold,\n italic: chalk.italic,\n};\n\nexport default function parseToChalk(template: string) {\n let result = template;\n\n for (const [color, chalkFunction] of Object.entries(supportedStyles)) {\n const regex = new RegExp(`{${color}}(.*?){/${color}}`, 'g');\n result = result.replace(regex, (_, p1) => chalkFunction(p1.trim()));\n }\n\n return result;\n}\n"],"names":["supportedStyles","magentaBright","chalk","blueBright","yellowBright","green","red","bold","italic","parseToChalk","template","result","color","chalkFunction","Object","entries","regex","RegExp","replace","_","p1","trim"],"mappings":";;;;;;;;AAEA;AAEA,MAAMA,eAAAA,GAAkB;AACtBC,IAAAA,aAAAA,EAAeC,uBAAMD,aAAa;AAClCE,IAAAA,UAAAA,EAAYD,uBAAMC,UAAU;AAC5BC,IAAAA,YAAAA,EAAcF,uBAAME,YAAY;AAChCC,IAAAA,KAAAA,EAAOH,uBAAMG,KAAK;AAClBC,IAAAA,GAAAA,EAAKJ,uBAAMI,GAAG;AACdC,IAAAA,IAAAA,EAAML,uBAAMK,IAAI;AAChBC,IAAAA,MAAAA,EAAQN,uBAAMM;AAChB,CAAA;AAEe,SAASC,aAAaC,QAAgB,EAAA;AACnD,IAAA,IAAIC,MAAAA,GAASD,QAAAA;IAEb,KAAK,MAAM,CAACE,KAAAA,EAAOC,aAAAA,CAAc,IAAIC,MAAAA,CAAOC,OAAO,CAACf,eAAAA,CAAAA,CAAkB;AACpE,QAAA,MAAMgB,KAAAA,GAAQ,IAAIC,MAAAA,CAAO,CAAC,CAAC,EAAEL,KAAAA,CAAM,QAAQ,EAAEA,KAAAA,CAAM,CAAC,CAAC,EAAE,GAAA,CAAA;QACvDD,MAAAA,GAASA,MAAAA,CAAOO,OAAO,CAACF,KAAAA,EAAO,CAACG,CAAAA,EAAGC,EAAAA,GAAOP,aAAAA,CAAcO,EAAAA,CAAGC,IAAI,EAAA,CAAA,CAAA;AACjE,IAAA;IAEA,OAAOV,MAAAA;AACT;;;;"}
|
package/dist/utils/template.js
CHANGED
|
@@ -8,7 +8,10 @@ var tar = require('tar');
|
|
|
8
8
|
var retry = require('async-retry');
|
|
9
9
|
var fse = require('fs-extra');
|
|
10
10
|
|
|
11
|
-
function
|
|
11
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
|
|
13
|
+
function _interopNamespace(e) {
|
|
14
|
+
if (e && e.__esModule) return e;
|
|
12
15
|
var n = Object.create(null);
|
|
13
16
|
if (e) {
|
|
14
17
|
Object.keys(e).forEach(function (k) {
|
|
@@ -25,7 +28,11 @@ function _interopNamespaceDefault(e) {
|
|
|
25
28
|
return Object.freeze(n);
|
|
26
29
|
}
|
|
27
30
|
|
|
28
|
-
var
|
|
31
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
32
|
+
var url__default = /*#__PURE__*/_interopDefault(url);
|
|
33
|
+
var tar__namespace = /*#__PURE__*/_interopNamespace(tar);
|
|
34
|
+
var retry__default = /*#__PURE__*/_interopDefault(retry);
|
|
35
|
+
var fse__default = /*#__PURE__*/_interopDefault(fse);
|
|
29
36
|
|
|
30
37
|
const stripTrailingSlash = (str)=>{
|
|
31
38
|
return str.endsWith('/') ? str.slice(0, -1) : str;
|
|
@@ -37,7 +44,7 @@ async function copyTemplate(scope, rootPath) {
|
|
|
37
44
|
throw new Error('Missing template or example app option');
|
|
38
45
|
}
|
|
39
46
|
if (await isOfficialTemplate(template, scope.templateBranch)) {
|
|
40
|
-
await
|
|
47
|
+
await retry__default.default(()=>downloadGithubRepo(rootPath, {
|
|
41
48
|
owner: 'strapi',
|
|
42
49
|
repo: 'strapi',
|
|
43
50
|
branch: scope.templateBranch,
|
|
@@ -51,13 +58,13 @@ async function copyTemplate(scope, rootPath) {
|
|
|
51
58
|
return;
|
|
52
59
|
}
|
|
53
60
|
if (isLocalTemplate(template)) {
|
|
54
|
-
const filePath = template.startsWith('file://') ?
|
|
55
|
-
await
|
|
61
|
+
const filePath = template.startsWith('file://') ? url__default.default.fileURLToPath(template) : template;
|
|
62
|
+
await fse__default.default.copy(filePath, rootPath);
|
|
56
63
|
}
|
|
57
64
|
if (isGithubShorthand(template)) {
|
|
58
65
|
const [owner, repo, ...pathSegments] = template.split('/');
|
|
59
66
|
const subPath = pathSegments.length ? pathSegments.join('/') : scope.templatePath;
|
|
60
|
-
await
|
|
67
|
+
await retry__default.default(()=>downloadGithubRepo(rootPath, {
|
|
61
68
|
owner,
|
|
62
69
|
repo,
|
|
63
70
|
branch: scope.templateBranch,
|
|
@@ -77,7 +84,7 @@ async function copyTemplate(scope, rootPath) {
|
|
|
77
84
|
throw new Error(`Invalid GitHub template URL: ${template}`);
|
|
78
85
|
}
|
|
79
86
|
if (scope.templateBranch) {
|
|
80
|
-
await
|
|
87
|
+
await retry__default.default(()=>downloadGithubRepo(rootPath, {
|
|
81
88
|
owner,
|
|
82
89
|
repo,
|
|
83
90
|
branch: scope.templateBranch,
|
|
@@ -90,7 +97,7 @@ async function copyTemplate(scope, rootPath) {
|
|
|
90
97
|
});
|
|
91
98
|
return;
|
|
92
99
|
}
|
|
93
|
-
await
|
|
100
|
+
await retry__default.default(()=>downloadGithubRepo(rootPath, {
|
|
94
101
|
owner,
|
|
95
102
|
repo,
|
|
96
103
|
branch: decodeURIComponent(branch) ?? scope.templateBranch,
|
|
@@ -105,7 +112,7 @@ async function copyTemplate(scope, rootPath) {
|
|
|
105
112
|
}
|
|
106
113
|
}
|
|
107
114
|
async function downloadGithubRepo(rootPath, { owner, repo, branch, subPath }) {
|
|
108
|
-
const filePath = subPath ? subPath.split('/').join(
|
|
115
|
+
const filePath = subPath ? subPath.split('/').join(path__default.default.posix.sep) : null;
|
|
109
116
|
let checkContentUrl = `https://api.github.com/repos/${owner}/${repo}/contents`;
|
|
110
117
|
if (filePath) {
|
|
111
118
|
checkContentUrl = `${checkContentUrl}/${filePath}`;
|
|
@@ -140,7 +147,7 @@ async function downloadGithubRepo(rootPath, { owner, repo, branch, subPath }) {
|
|
|
140
147
|
}));
|
|
141
148
|
}
|
|
142
149
|
function isLocalTemplate(template) {
|
|
143
|
-
return template.startsWith('file://') ||
|
|
150
|
+
return template.startsWith('file://') || fse__default.default.existsSync(path__default.default.isAbsolute(template) ? template : path__default.default.resolve(process.cwd(), template));
|
|
144
151
|
}
|
|
145
152
|
function isGithubShorthand(value) {
|
|
146
153
|
if (isValidUrl(value)) {
|