create-payload-app 3.57.0-internal.2988185 → 3.57.0-internal.36ffe2b
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":"create-project.d.ts","sourceRoot":"","sources":["../../src/lib/create-project.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,aAAa,CAAA;AAmDpB,KAAK,iBAAiB,GAClB;IACE,OAAO,EAAE,cAAc,CAAA;CACxB,GACD;IACE,QAAQ,EAAE,eAAe,CAAA;CAC1B,CAAA;AAEL,wBAAsB,aAAa,CACjC,IAAI,EAAE;IACJ,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,iBAAiB,GACpB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../src/lib/create-project.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,aAAa,CAAA;AAmDpB,KAAK,iBAAiB,GAClB;IACE,OAAO,EAAE,cAAc,CAAA;CACxB,GACD;IACE,QAAQ,EAAE,eAAe,CAAA;CAC1B,CAAA;AAEL,wBAAsB,aAAa,CACjC,IAAI,EAAE;IACJ,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,iBAAiB,GACpB,OAAO,CAAC,IAAI,CAAC,CAkHf;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,GAAG,IAAI,CAiBP"}
|
|
@@ -82,10 +82,21 @@ export async function createProject(args) {
|
|
|
82
82
|
}
|
|
83
83
|
const spinner = p.spinner();
|
|
84
84
|
spinner.start('Checking latest Payload version...');
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
// Allows overriding the installed Payload version instead of installing the latest
|
|
86
|
+
const versionFromCli = cliArgs['--version'];
|
|
87
|
+
let payloadVersion;
|
|
88
|
+
if (versionFromCli) {
|
|
89
|
+
await verifyVersionForPackage({
|
|
90
|
+
version: versionFromCli
|
|
91
|
+
});
|
|
92
|
+
payloadVersion = versionFromCli;
|
|
93
|
+
spinner.stop(`Using provided version of Payload ${payloadVersion}`);
|
|
94
|
+
} else {
|
|
95
|
+
payloadVersion = await getLatestPackageVersion({
|
|
96
|
+
packageName: 'payload'
|
|
97
|
+
});
|
|
98
|
+
spinner.stop(`Found latest version of Payload ${payloadVersion}`);
|
|
99
|
+
}
|
|
89
100
|
await updatePackageJSON({
|
|
90
101
|
latestVersion: payloadVersion,
|
|
91
102
|
projectDir,
|
|
@@ -202,5 +213,20 @@ export async function createProject(args) {
|
|
|
202
213
|
throw error;
|
|
203
214
|
}
|
|
204
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Verifies that the specified version of a package exists on the NPM registry.
|
|
218
|
+
*
|
|
219
|
+
* Throws an error if the version does not exist.
|
|
220
|
+
*/ async function verifyVersionForPackage({ packageName = 'payload', version }) {
|
|
221
|
+
try {
|
|
222
|
+
const response = await fetch(`https://registry.npmjs.org/${packageName}/${version}`);
|
|
223
|
+
if (response.status !== 200) {
|
|
224
|
+
throw new Error(`No ${version} version found for package: ${packageName}`);
|
|
225
|
+
}
|
|
226
|
+
} catch (error) {
|
|
227
|
+
console.error('Error verifying Payload version:', error);
|
|
228
|
+
throw error;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
205
231
|
|
|
206
232
|
//# sourceMappingURL=create-project.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/create-project.ts"],"sourcesContent":["import * as p from '@clack/prompts'\nimport chalk from 'chalk'\nimport execa from 'execa'\nimport fse from 'fs-extra'\nimport { fileURLToPath } from 'node:url'\nimport path from 'path'\n\nimport type {\n CliArgs,\n DbDetails,\n PackageManager,\n ProjectExample,\n ProjectTemplate,\n} from '../types.js'\n\nimport { tryInitRepoAndCommit } from '../utils/git.js'\nimport { debug, error, info, warning } from '../utils/log.js'\nimport { configurePayloadConfig } from './configure-payload-config.js'\nimport { configurePluginProject } from './configure-plugin-project.js'\nimport { downloadExample } from './download-example.js'\nimport { downloadTemplate } from './download-template.js'\nimport { generateSecret } from './generate-secret.js'\nimport { manageEnvFiles } from './manage-env-files.js'\n\nconst filename = fileURLToPath(import.meta.url)\nconst dirname = path.dirname(filename)\n\nasync function createOrFindProjectDir(projectDir: string): Promise<void> {\n const pathExists = await fse.pathExists(projectDir)\n if (!pathExists) {\n await fse.mkdir(projectDir)\n }\n}\n\nasync function installDeps(args: {\n cliArgs: CliArgs\n packageManager: PackageManager\n projectDir: string\n}): Promise<boolean> {\n const { cliArgs, packageManager, projectDir } = args\n if (cliArgs['--no-deps']) {\n return true\n }\n let installCmd = 'npm install --legacy-peer-deps'\n\n if (packageManager === 'yarn') {\n installCmd = 'yarn'\n } else if (packageManager === 'pnpm') {\n installCmd = 'pnpm install'\n } else if (packageManager === 'bun') {\n installCmd = 'bun install'\n }\n\n try {\n await execa.command(installCmd, {\n cwd: path.resolve(projectDir),\n })\n return true\n } catch (err: unknown) {\n error(`Error installing dependencies${err instanceof Error ? `: ${err.message}` : ''}.`)\n return false\n }\n}\n\ntype TemplateOrExample =\n | {\n example: ProjectExample\n }\n | {\n template: ProjectTemplate\n }\n\nexport async function createProject(\n args: {\n cliArgs: CliArgs\n dbDetails?: DbDetails\n packageManager: PackageManager\n projectDir: string\n projectName: string\n } & TemplateOrExample,\n): Promise<void> {\n const { cliArgs, dbDetails, packageManager, projectDir, projectName } = args\n\n if (cliArgs['--dry-run']) {\n debug(`Dry run: Creating project in ${chalk.green(projectDir)}`)\n return\n }\n\n await createOrFindProjectDir(projectDir)\n\n if (cliArgs['--local-example']) {\n // Copy example from local path. For development purposes.\n const localExample = path.resolve(dirname, '../../../../examples/', cliArgs['--local-example'])\n await fse.copy(localExample, projectDir)\n }\n\n if (cliArgs['--local-template']) {\n // Copy template from local path. For development purposes.\n const localTemplate = path.resolve(\n dirname,\n '../../../../templates/',\n cliArgs['--local-template'],\n )\n await fse.copy(localTemplate, projectDir)\n } else if ('template' in args && 'url' in args.template) {\n const { template } = args\n if (cliArgs['--branch']) {\n template.url = `${template.url.split('#')?.[0]}#${cliArgs['--branch']}`\n }\n\n await downloadTemplate({\n debug: cliArgs['--debug'],\n projectDir,\n template,\n })\n } else if ('example' in args && 'url' in args.example) {\n const { example } = args\n if (cliArgs['--branch']) {\n example.url = `${example.url.split('#')?.[0]}#${cliArgs['--branch']}`\n }\n\n await downloadExample({\n debug: cliArgs['--debug'],\n example,\n projectDir,\n })\n }\n\n const spinner = p.spinner()\n spinner.start('Checking latest Payload version...')\n\n const payloadVersion = await getLatestPackageVersion({ packageName: 'payload' })\n\n spinner.stop(`Found latest version of Payload ${payloadVersion}`)\n\n await updatePackageJSON({ latestVersion: payloadVersion, projectDir, projectName })\n\n if ('template' in args) {\n if (args.template.type === 'plugin') {\n spinner.message('Configuring Plugin...')\n configurePluginProject({ projectDirPath: projectDir, projectName })\n } else {\n spinner.message('Configuring Payload...')\n await configurePayloadConfig({\n dbType: dbDetails?.type,\n projectDirOrConfigPath: { projectDir },\n })\n }\n }\n\n await manageEnvFiles({\n cliArgs,\n databaseType: dbDetails?.type,\n databaseUri: dbDetails?.dbUri,\n payloadSecret: generateSecret(),\n projectDir,\n template: 'template' in args ? args.template : undefined,\n })\n\n // Remove yarn.lock file. This is only desired in Payload Cloud.\n const lockPath = path.resolve(projectDir, 'pnpm-lock.yaml')\n if (fse.existsSync(lockPath)) {\n await fse.remove(lockPath)\n }\n\n if (!cliArgs['--no-deps']) {\n info(`Using ${packageManager}.\\n`)\n spinner.message('Installing dependencies...')\n const result = await installDeps({ cliArgs, packageManager, projectDir })\n if (result) {\n spinner.stop('Successfully installed Payload and dependencies')\n } else {\n spinner.stop('Error installing dependencies', 1)\n }\n } else {\n spinner.stop('Dependency installation skipped')\n }\n\n if (!cliArgs['--no-git']) {\n tryInitRepoAndCommit({ cwd: projectDir })\n }\n}\n\n/**\n * Reads the package.json file into an object and then does the following:\n * - Sets the `name` property to the provided `projectName`.\n * - Bumps the payload packages from workspace:* to the latest version.\n * - Writes the updated object back to the package.json file.\n */\nexport async function updatePackageJSON(args: {\n /**\n * The latest version of Payload to use in the package.json.\n */\n latestVersion: string\n projectDir: string\n /**\n * The name of the project to set in package.json.\n */\n projectName: string\n}): Promise<void> {\n const { latestVersion, projectDir, projectName } = args\n const packageJsonPath = path.resolve(projectDir, 'package.json')\n try {\n const packageObj = await fse.readJson(packageJsonPath)\n packageObj.name = projectName\n\n updatePackageJSONDependencies({\n latestVersion,\n packageJson: packageObj,\n })\n\n await fse.writeJson(packageJsonPath, packageObj, { spaces: 2 })\n } catch (err: unknown) {\n warning(`Unable to update name in package.json. ${err instanceof Error ? err.message : ''}`)\n }\n}\n\n/**\n * Recursively updates a JSON object to replace all instances of `workspace:` with the latest version pinned.\n *\n * Does not return and instead modifies the `packageJson` object in place.\n */\nexport function updatePackageJSONDependencies(args: {\n latestVersion: string\n packageJson: Record<string, unknown>\n}): void {\n const { latestVersion, packageJson } = args\n\n const updatedDependencies = Object.entries(packageJson.dependencies || {}).reduce(\n (acc, [key, value]) => {\n if (typeof value === 'string' && value.startsWith('workspace:')) {\n acc[key] = `${latestVersion}`\n } else if (key === 'payload' || key.startsWith('@payloadcms')) {\n acc[key] = `${latestVersion}`\n } else {\n acc[key] = value\n }\n return acc\n },\n {} as Record<string, string>,\n )\n packageJson.dependencies = updatedDependencies\n}\n\n/**\n * Fetches the latest version of a package from the NPM registry.\n *\n * Used in determining the latest version of Payload to use in the generated templates.\n */\nasync function getLatestPackageVersion({\n packageName = 'payload',\n}: {\n /**\n * Package name to fetch the latest version for based on the NPM registry URL\n *\n * Eg. for `'payload'`, it will fetch the version from `https://registry.npmjs.org/payload`\n *\n * @default 'payload'\n */\n packageName?: string\n}): Promise<string> {\n try {\n const response = await fetch(`https://registry.npmjs.org/-/package/${packageName}/dist-tags`)\n const data = await response.json()\n\n // Monster chaining for type safety just checking for data.latest\n const latestVersion =\n data &&\n typeof data === 'object' &&\n 'latest' in data &&\n data.latest &&\n typeof data.latest === 'string'\n ? data.latest\n : null\n\n if (!latestVersion) {\n throw new Error(`No latest version found for package: ${packageName}`)\n }\n\n return latestVersion\n } catch (error) {\n console.error('Error fetching Payload version:', error)\n throw error\n }\n}\n"],"names":["p","chalk","execa","fse","fileURLToPath","path","tryInitRepoAndCommit","debug","error","info","warning","configurePayloadConfig","configurePluginProject","downloadExample","downloadTemplate","generateSecret","manageEnvFiles","filename","url","dirname","createOrFindProjectDir","projectDir","pathExists","mkdir","installDeps","args","cliArgs","packageManager","installCmd","command","cwd","resolve","err","Error","message","createProject","dbDetails","projectName","green","localExample","copy","localTemplate","template","split","example","spinner","start","payloadVersion","getLatestPackageVersion","packageName","stop","updatePackageJSON","latestVersion","type","projectDirPath","dbType","projectDirOrConfigPath","databaseType","databaseUri","dbUri","payloadSecret","undefined","lockPath","existsSync","remove","result","packageJsonPath","packageObj","readJson","name","updatePackageJSONDependencies","packageJson","writeJson","spaces","updatedDependencies","Object","entries","dependencies","reduce","acc","key","value","startsWith","response","fetch","data","json","latest","console"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/create-project.ts"],"sourcesContent":["import * as p from '@clack/prompts'\nimport chalk from 'chalk'\nimport execa from 'execa'\nimport fse from 'fs-extra'\nimport { fileURLToPath } from 'node:url'\nimport path from 'path'\n\nimport type {\n CliArgs,\n DbDetails,\n PackageManager,\n ProjectExample,\n ProjectTemplate,\n} from '../types.js'\n\nimport { tryInitRepoAndCommit } from '../utils/git.js'\nimport { debug, error, info, warning } from '../utils/log.js'\nimport { configurePayloadConfig } from './configure-payload-config.js'\nimport { configurePluginProject } from './configure-plugin-project.js'\nimport { downloadExample } from './download-example.js'\nimport { downloadTemplate } from './download-template.js'\nimport { generateSecret } from './generate-secret.js'\nimport { manageEnvFiles } from './manage-env-files.js'\n\nconst filename = fileURLToPath(import.meta.url)\nconst dirname = path.dirname(filename)\n\nasync function createOrFindProjectDir(projectDir: string): Promise<void> {\n const pathExists = await fse.pathExists(projectDir)\n if (!pathExists) {\n await fse.mkdir(projectDir)\n }\n}\n\nasync function installDeps(args: {\n cliArgs: CliArgs\n packageManager: PackageManager\n projectDir: string\n}): Promise<boolean> {\n const { cliArgs, packageManager, projectDir } = args\n if (cliArgs['--no-deps']) {\n return true\n }\n let installCmd = 'npm install --legacy-peer-deps'\n\n if (packageManager === 'yarn') {\n installCmd = 'yarn'\n } else if (packageManager === 'pnpm') {\n installCmd = 'pnpm install'\n } else if (packageManager === 'bun') {\n installCmd = 'bun install'\n }\n\n try {\n await execa.command(installCmd, {\n cwd: path.resolve(projectDir),\n })\n return true\n } catch (err: unknown) {\n error(`Error installing dependencies${err instanceof Error ? `: ${err.message}` : ''}.`)\n return false\n }\n}\n\ntype TemplateOrExample =\n | {\n example: ProjectExample\n }\n | {\n template: ProjectTemplate\n }\n\nexport async function createProject(\n args: {\n cliArgs: CliArgs\n dbDetails?: DbDetails\n packageManager: PackageManager\n projectDir: string\n projectName: string\n } & TemplateOrExample,\n): Promise<void> {\n const { cliArgs, dbDetails, packageManager, projectDir, projectName } = args\n\n if (cliArgs['--dry-run']) {\n debug(`Dry run: Creating project in ${chalk.green(projectDir)}`)\n return\n }\n\n await createOrFindProjectDir(projectDir)\n\n if (cliArgs['--local-example']) {\n // Copy example from local path. For development purposes.\n const localExample = path.resolve(dirname, '../../../../examples/', cliArgs['--local-example'])\n await fse.copy(localExample, projectDir)\n }\n\n if (cliArgs['--local-template']) {\n // Copy template from local path. For development purposes.\n const localTemplate = path.resolve(\n dirname,\n '../../../../templates/',\n cliArgs['--local-template'],\n )\n await fse.copy(localTemplate, projectDir)\n } else if ('template' in args && 'url' in args.template) {\n const { template } = args\n if (cliArgs['--branch']) {\n template.url = `${template.url.split('#')?.[0]}#${cliArgs['--branch']}`\n }\n\n await downloadTemplate({\n debug: cliArgs['--debug'],\n projectDir,\n template,\n })\n } else if ('example' in args && 'url' in args.example) {\n const { example } = args\n if (cliArgs['--branch']) {\n example.url = `${example.url.split('#')?.[0]}#${cliArgs['--branch']}`\n }\n\n await downloadExample({\n debug: cliArgs['--debug'],\n example,\n projectDir,\n })\n }\n\n const spinner = p.spinner()\n spinner.start('Checking latest Payload version...')\n\n // Allows overriding the installed Payload version instead of installing the latest\n const versionFromCli = cliArgs['--version']\n\n let payloadVersion: string\n\n if (versionFromCli) {\n await verifyVersionForPackage({ version: versionFromCli })\n\n payloadVersion = versionFromCli\n\n spinner.stop(`Using provided version of Payload ${payloadVersion}`)\n } else {\n payloadVersion = await getLatestPackageVersion({ packageName: 'payload' })\n\n spinner.stop(`Found latest version of Payload ${payloadVersion}`)\n }\n\n await updatePackageJSON({ latestVersion: payloadVersion, projectDir, projectName })\n\n if ('template' in args) {\n if (args.template.type === 'plugin') {\n spinner.message('Configuring Plugin...')\n configurePluginProject({ projectDirPath: projectDir, projectName })\n } else {\n spinner.message('Configuring Payload...')\n await configurePayloadConfig({\n dbType: dbDetails?.type,\n projectDirOrConfigPath: { projectDir },\n })\n }\n }\n\n await manageEnvFiles({\n cliArgs,\n databaseType: dbDetails?.type,\n databaseUri: dbDetails?.dbUri,\n payloadSecret: generateSecret(),\n projectDir,\n template: 'template' in args ? args.template : undefined,\n })\n\n // Remove yarn.lock file. This is only desired in Payload Cloud.\n const lockPath = path.resolve(projectDir, 'pnpm-lock.yaml')\n if (fse.existsSync(lockPath)) {\n await fse.remove(lockPath)\n }\n\n if (!cliArgs['--no-deps']) {\n info(`Using ${packageManager}.\\n`)\n spinner.message('Installing dependencies...')\n const result = await installDeps({ cliArgs, packageManager, projectDir })\n if (result) {\n spinner.stop('Successfully installed Payload and dependencies')\n } else {\n spinner.stop('Error installing dependencies', 1)\n }\n } else {\n spinner.stop('Dependency installation skipped')\n }\n\n if (!cliArgs['--no-git']) {\n tryInitRepoAndCommit({ cwd: projectDir })\n }\n}\n\n/**\n * Reads the package.json file into an object and then does the following:\n * - Sets the `name` property to the provided `projectName`.\n * - Bumps the payload packages from workspace:* to the latest version.\n * - Writes the updated object back to the package.json file.\n */\nexport async function updatePackageJSON(args: {\n /**\n * The latest version of Payload to use in the package.json.\n */\n latestVersion: string\n projectDir: string\n /**\n * The name of the project to set in package.json.\n */\n projectName: string\n}): Promise<void> {\n const { latestVersion, projectDir, projectName } = args\n const packageJsonPath = path.resolve(projectDir, 'package.json')\n try {\n const packageObj = await fse.readJson(packageJsonPath)\n packageObj.name = projectName\n\n updatePackageJSONDependencies({\n latestVersion,\n packageJson: packageObj,\n })\n\n await fse.writeJson(packageJsonPath, packageObj, { spaces: 2 })\n } catch (err: unknown) {\n warning(`Unable to update name in package.json. ${err instanceof Error ? err.message : ''}`)\n }\n}\n\n/**\n * Recursively updates a JSON object to replace all instances of `workspace:` with the latest version pinned.\n *\n * Does not return and instead modifies the `packageJson` object in place.\n */\nexport function updatePackageJSONDependencies(args: {\n latestVersion: string\n packageJson: Record<string, unknown>\n}): void {\n const { latestVersion, packageJson } = args\n\n const updatedDependencies = Object.entries(packageJson.dependencies || {}).reduce(\n (acc, [key, value]) => {\n if (typeof value === 'string' && value.startsWith('workspace:')) {\n acc[key] = `${latestVersion}`\n } else if (key === 'payload' || key.startsWith('@payloadcms')) {\n acc[key] = `${latestVersion}`\n } else {\n acc[key] = value\n }\n return acc\n },\n {} as Record<string, string>,\n )\n packageJson.dependencies = updatedDependencies\n}\n\n/**\n * Fetches the latest version of a package from the NPM registry.\n *\n * Used in determining the latest version of Payload to use in the generated templates.\n */\nasync function getLatestPackageVersion({\n packageName = 'payload',\n}: {\n /**\n * Package name to fetch the latest version for based on the NPM registry URL\n *\n * Eg. for `'payload'`, it will fetch the version from `https://registry.npmjs.org/payload`\n *\n * @default 'payload'\n */\n packageName?: string\n}): Promise<string> {\n try {\n const response = await fetch(`https://registry.npmjs.org/-/package/${packageName}/dist-tags`)\n const data = await response.json()\n\n // Monster chaining for type safety just checking for data.latest\n const latestVersion =\n data &&\n typeof data === 'object' &&\n 'latest' in data &&\n data.latest &&\n typeof data.latest === 'string'\n ? data.latest\n : null\n\n if (!latestVersion) {\n throw new Error(`No latest version found for package: ${packageName}`)\n }\n\n return latestVersion\n } catch (error) {\n console.error('Error fetching Payload version:', error)\n throw error\n }\n}\n\n/**\n * Verifies that the specified version of a package exists on the NPM registry.\n *\n * Throws an error if the version does not exist.\n */\nasync function verifyVersionForPackage({\n packageName = 'payload',\n version,\n}: {\n /**\n * Package name to fetch the latest version for based on the NPM registry URL\n *\n * Eg. for `'payload'`, it will fetch the version from `https://registry.npmjs.org/payload`\n *\n * @default 'payload'\n */\n packageName?: string\n version: string\n}): Promise<void> {\n try {\n const response = await fetch(`https://registry.npmjs.org/${packageName}/${version}`)\n\n if (response.status !== 200) {\n throw new Error(`No ${version} version found for package: ${packageName}`)\n }\n } catch (error) {\n console.error('Error verifying Payload version:', error)\n throw error\n }\n}\n"],"names":["p","chalk","execa","fse","fileURLToPath","path","tryInitRepoAndCommit","debug","error","info","warning","configurePayloadConfig","configurePluginProject","downloadExample","downloadTemplate","generateSecret","manageEnvFiles","filename","url","dirname","createOrFindProjectDir","projectDir","pathExists","mkdir","installDeps","args","cliArgs","packageManager","installCmd","command","cwd","resolve","err","Error","message","createProject","dbDetails","projectName","green","localExample","copy","localTemplate","template","split","example","spinner","start","versionFromCli","payloadVersion","verifyVersionForPackage","version","stop","getLatestPackageVersion","packageName","updatePackageJSON","latestVersion","type","projectDirPath","dbType","projectDirOrConfigPath","databaseType","databaseUri","dbUri","payloadSecret","undefined","lockPath","existsSync","remove","result","packageJsonPath","packageObj","readJson","name","updatePackageJSONDependencies","packageJson","writeJson","spaces","updatedDependencies","Object","entries","dependencies","reduce","acc","key","value","startsWith","response","fetch","data","json","latest","console","status"],"mappings":"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"}
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAwBzC,qBAAa,IAAI;IACf,IAAI,EAAE,OAAO,CAAA;;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAwBzC,qBAAa,IAAI;IACf,IAAI,EAAE,OAAO,CAAA;;IA+CP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CA+M5B"}
|
package/dist/main.js
CHANGED
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.ts"],"sourcesContent":["import * as p from '@clack/prompts'\nimport slugify from '@sindresorhus/slugify'\nimport arg from 'arg'\nimport chalk from 'chalk'\nimport figures from 'figures'\nimport path from 'path'\n\nimport type { CliArgs } from './types.js'\n\nimport { configurePayloadConfig } from './lib/configure-payload-config.js'\nimport { createProject } from './lib/create-project.js'\nimport { parseExample } from './lib/examples.js'\nimport { generateSecret } from './lib/generate-secret.js'\nimport { getPackageManager } from './lib/get-package-manager.js'\nimport { getNextAppDetails, initNext } from './lib/init-next.js'\nimport { manageEnvFiles } from './lib/manage-env-files.js'\nimport { parseProjectName } from './lib/parse-project-name.js'\nimport { parseTemplate } from './lib/parse-template.js'\nimport { selectDb } from './lib/select-db.js'\nimport { getValidTemplates, validateTemplate } from './lib/templates.js'\nimport { updatePayloadInProject } from './lib/update-payload-in-project.js'\nimport { getLatestPackageVersion } from './utils/getLatestPackageVersion.js'\nimport { debug, error, info } from './utils/log.js'\nimport {\n feedbackOutro,\n helpMessage,\n moveMessage,\n successfulNextInit,\n successMessage,\n} from './utils/messages.js'\n\nexport class Main {\n args: CliArgs\n\n constructor() {\n // @ts-expect-error bad typings\n this.args = arg(\n {\n '--branch': String,\n '--db': String,\n '--db-accept-recommended': Boolean,\n '--db-connection-string': String,\n '--example': String,\n '--help': Boolean,\n '--local-template': String,\n '--name': String,\n '--secret': String,\n '--template': String,\n\n // Next.js\n '--init-next': Boolean, // TODO: Is this needed if we detect if inside Next.js project?\n\n // Package manager\n '--no-deps': Boolean,\n '--use-bun': Boolean,\n '--use-npm': Boolean,\n '--use-pnpm': Boolean,\n '--use-yarn': Boolean,\n\n // Other\n '--no-git': Boolean,\n\n // Flags\n '--beta': Boolean,\n '--debug': Boolean,\n '--dry-run': Boolean,\n\n // Aliases\n '-d': '--db',\n '-e': '--example',\n '-h': '--help',\n '-n': '--name',\n '-t': '--template',\n },\n { permissive: true },\n )\n }\n\n async init(): Promise<void> {\n try {\n const debugFlag = this.args['--debug']\n\n const LATEST_VERSION = await getLatestPackageVersion({\n debug: debugFlag,\n packageName: 'payload',\n })\n\n if (this.args['--help']) {\n helpMessage()\n process.exit(0)\n }\n\n // eslint-disable-next-line no-console\n console.log('\\n')\n p.intro(chalk.bgCyan(chalk.black(' create-payload-app ')))\n p.note(\"Welcome to Payload. Let's create a project!\")\n\n // Detect if inside Next.js project\n const nextAppDetails = await getNextAppDetails(process.cwd())\n const {\n hasTopLevelLayout,\n isPayloadInstalled,\n isSupportedNextVersion,\n nextAppDir,\n nextConfigPath,\n nextVersion,\n } = nextAppDetails\n\n if (nextConfigPath && !isSupportedNextVersion) {\n p.log.warn(\n `Next.js v${nextVersion} is unsupported. Next.js >= 15 is required to use Payload.`,\n )\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n // Upgrade Payload in existing project\n if (isPayloadInstalled && nextConfigPath) {\n p.log.warn(`Payload installation detected in current project.`)\n const shouldUpdate = await p.confirm({\n initialValue: false,\n message: chalk.bold(`Upgrade Payload in this project?`),\n })\n\n if (!p.isCancel(shouldUpdate) && shouldUpdate) {\n const { message, success: updateSuccess } = await updatePayloadInProject(nextAppDetails)\n if (updateSuccess) {\n info(message)\n } else {\n error(message)\n }\n }\n\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n if (nextConfigPath) {\n this.args['--name'] = slugify(path.basename(path.dirname(nextConfigPath)))\n }\n\n const projectName = await parseProjectName(this.args)\n const projectDir = nextConfigPath\n ? path.dirname(nextConfigPath)\n : path.resolve(process.cwd(), slugify(projectName))\n\n const packageManager = await getPackageManager({ cliArgs: this.args, projectDir })\n\n if (nextConfigPath) {\n p.log.step(\n chalk.bold(`${chalk.bgBlack(` ${figures.triangleUp} Next.js `)} project detected!`),\n )\n\n const proceed = await p.confirm({\n initialValue: true,\n message: chalk.bold(`Install ${chalk.green('Payload')} in this project?`),\n })\n if (p.isCancel(proceed) || !proceed) {\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n // Check for top-level layout.tsx\n if (nextAppDir && hasTopLevelLayout) {\n p.log.warn(moveMessage({ nextAppDir, projectDir }))\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n const dbDetails = await selectDb(this.args, projectName)\n\n const result = await initNext({\n ...this.args,\n dbType: dbDetails.type,\n nextAppDetails,\n packageManager,\n projectDir,\n })\n\n if (result.success === false) {\n p.outro(feedbackOutro())\n process.exit(1)\n }\n\n await configurePayloadConfig({\n dbType: dbDetails?.type,\n projectDirOrConfigPath: {\n payloadConfigPath: result.payloadConfigPath,\n },\n })\n\n await manageEnvFiles({\n cliArgs: this.args,\n databaseType: dbDetails.type,\n databaseUri: dbDetails.dbUri,\n payloadSecret: generateSecret(),\n projectDir,\n })\n\n info('Payload project successfully initialized!')\n p.note(successfulNextInit(), chalk.bgGreen(chalk.black(' Documentation ')))\n p.outro(feedbackOutro())\n return\n }\n\n const templateArg = this.args['--template']\n if (templateArg) {\n const valid = validateTemplate({ templateName: templateArg })\n if (!valid) {\n helpMessage()\n process.exit(1)\n }\n }\n\n const exampleArg = this.args['--example']\n\n if (exampleArg) {\n const example = await parseExample({\n name: exampleArg,\n branch: this.args['--branch'] ?? 'main',\n })\n\n if (!example) {\n helpMessage()\n process.exit(1)\n }\n\n await createProject({\n cliArgs: this.args,\n example,\n packageManager,\n projectDir,\n projectName,\n })\n }\n\n if (debugFlag) {\n debug(`Using ${exampleArg ? 'examples' : 'templates'} from git tag: v${LATEST_VERSION}`)\n }\n\n if (!exampleArg) {\n const validTemplates = getValidTemplates()\n const template = await parseTemplate(this.args, validTemplates)\n if (!template) {\n p.log.error('Invalid template given')\n p.outro(feedbackOutro())\n process.exit(1)\n }\n\n switch (template.type) {\n case 'plugin': {\n await createProject({\n cliArgs: this.args,\n packageManager,\n projectDir,\n projectName,\n template,\n })\n break\n }\n case 'starter': {\n const dbDetails = await selectDb(this.args, projectName)\n\n await createProject({\n cliArgs: this.args,\n dbDetails,\n packageManager,\n projectDir,\n projectName,\n template,\n })\n\n break\n }\n }\n }\n\n info('Payload project successfully created!')\n p.log.step(chalk.bgGreen(chalk.black(' Next Steps ')))\n p.log.message(successMessage(projectDir, packageManager))\n p.outro(feedbackOutro())\n } catch (err: unknown) {\n error(err instanceof Error ? err.message : 'An error occurred')\n }\n }\n}\n"],"names":["p","slugify","arg","chalk","figures","path","configurePayloadConfig","createProject","parseExample","generateSecret","getPackageManager","getNextAppDetails","initNext","manageEnvFiles","parseProjectName","parseTemplate","selectDb","getValidTemplates","validateTemplate","updatePayloadInProject","getLatestPackageVersion","debug","error","info","feedbackOutro","helpMessage","moveMessage","successfulNextInit","successMessage","Main","args","constructor","String","Boolean","permissive","init","debugFlag","LATEST_VERSION","packageName","process","exit","console","log","intro","bgCyan","black","note","nextAppDetails","cwd","hasTopLevelLayout","isPayloadInstalled","isSupportedNextVersion","nextAppDir","nextConfigPath","nextVersion","warn","outro","shouldUpdate","confirm","initialValue","message","bold","isCancel","success","updateSuccess","basename","dirname","projectName","projectDir","resolve","packageManager","cliArgs","step","bgBlack","triangleUp","proceed","green","dbDetails","result","dbType","type","projectDirOrConfigPath","payloadConfigPath","databaseType","databaseUri","dbUri","payloadSecret","bgGreen","templateArg","valid","templateName","exampleArg","example","name","branch","validTemplates","template","err","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/main.ts"],"sourcesContent":["import * as p from '@clack/prompts'\nimport slugify from '@sindresorhus/slugify'\nimport arg from 'arg'\nimport chalk from 'chalk'\nimport figures from 'figures'\nimport path from 'path'\n\nimport type { CliArgs } from './types.js'\n\nimport { configurePayloadConfig } from './lib/configure-payload-config.js'\nimport { createProject } from './lib/create-project.js'\nimport { parseExample } from './lib/examples.js'\nimport { generateSecret } from './lib/generate-secret.js'\nimport { getPackageManager } from './lib/get-package-manager.js'\nimport { getNextAppDetails, initNext } from './lib/init-next.js'\nimport { manageEnvFiles } from './lib/manage-env-files.js'\nimport { parseProjectName } from './lib/parse-project-name.js'\nimport { parseTemplate } from './lib/parse-template.js'\nimport { selectDb } from './lib/select-db.js'\nimport { getValidTemplates, validateTemplate } from './lib/templates.js'\nimport { updatePayloadInProject } from './lib/update-payload-in-project.js'\nimport { getLatestPackageVersion } from './utils/getLatestPackageVersion.js'\nimport { debug, error, info } from './utils/log.js'\nimport {\n feedbackOutro,\n helpMessage,\n moveMessage,\n successfulNextInit,\n successMessage,\n} from './utils/messages.js'\n\nexport class Main {\n args: CliArgs\n\n constructor() {\n // @ts-expect-error bad typings\n this.args = arg(\n {\n '--branch': String,\n '--db': String,\n '--db-accept-recommended': Boolean,\n '--db-connection-string': String,\n '--example': String,\n '--help': Boolean,\n '--local-template': String,\n '--name': String,\n '--secret': String,\n '--template': String,\n '--version': String, // Allows overriding the installed Payload version instead of installing the latest\n\n // Next.js\n '--init-next': Boolean, // TODO: Is this needed if we detect if inside Next.js project?\n\n // Package manager\n '--no-deps': Boolean,\n '--use-bun': Boolean,\n '--use-npm': Boolean,\n '--use-pnpm': Boolean,\n '--use-yarn': Boolean,\n\n // Other\n '--no-git': Boolean,\n\n // Flags\n '--beta': Boolean,\n '--debug': Boolean,\n '--dry-run': Boolean,\n\n // Aliases\n '-d': '--db',\n '-e': '--example',\n '-h': '--help',\n '-n': '--name',\n '-t': '--template',\n },\n { permissive: true },\n )\n }\n\n async init(): Promise<void> {\n try {\n const debugFlag = this.args['--debug']\n\n const LATEST_VERSION = await getLatestPackageVersion({\n debug: debugFlag,\n packageName: 'payload',\n })\n\n if (this.args['--help']) {\n helpMessage()\n process.exit(0)\n }\n\n // eslint-disable-next-line no-console\n console.log('\\n')\n p.intro(chalk.bgCyan(chalk.black(' create-payload-app ')))\n p.note(\"Welcome to Payload. Let's create a project!\")\n\n // Detect if inside Next.js project\n const nextAppDetails = await getNextAppDetails(process.cwd())\n const {\n hasTopLevelLayout,\n isPayloadInstalled,\n isSupportedNextVersion,\n nextAppDir,\n nextConfigPath,\n nextVersion,\n } = nextAppDetails\n\n if (nextConfigPath && !isSupportedNextVersion) {\n p.log.warn(\n `Next.js v${nextVersion} is unsupported. Next.js >= 15 is required to use Payload.`,\n )\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n // Upgrade Payload in existing project\n if (isPayloadInstalled && nextConfigPath) {\n p.log.warn(`Payload installation detected in current project.`)\n const shouldUpdate = await p.confirm({\n initialValue: false,\n message: chalk.bold(`Upgrade Payload in this project?`),\n })\n\n if (!p.isCancel(shouldUpdate) && shouldUpdate) {\n const { message, success: updateSuccess } = await updatePayloadInProject(nextAppDetails)\n if (updateSuccess) {\n info(message)\n } else {\n error(message)\n }\n }\n\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n if (nextConfigPath) {\n this.args['--name'] = slugify(path.basename(path.dirname(nextConfigPath)))\n }\n\n const projectName = await parseProjectName(this.args)\n const projectDir = nextConfigPath\n ? path.dirname(nextConfigPath)\n : path.resolve(process.cwd(), slugify(projectName))\n\n const packageManager = await getPackageManager({ cliArgs: this.args, projectDir })\n\n if (nextConfigPath) {\n p.log.step(\n chalk.bold(`${chalk.bgBlack(` ${figures.triangleUp} Next.js `)} project detected!`),\n )\n\n const proceed = await p.confirm({\n initialValue: true,\n message: chalk.bold(`Install ${chalk.green('Payload')} in this project?`),\n })\n if (p.isCancel(proceed) || !proceed) {\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n // Check for top-level layout.tsx\n if (nextAppDir && hasTopLevelLayout) {\n p.log.warn(moveMessage({ nextAppDir, projectDir }))\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n const dbDetails = await selectDb(this.args, projectName)\n\n const result = await initNext({\n ...this.args,\n dbType: dbDetails.type,\n nextAppDetails,\n packageManager,\n projectDir,\n })\n\n if (result.success === false) {\n p.outro(feedbackOutro())\n process.exit(1)\n }\n\n await configurePayloadConfig({\n dbType: dbDetails?.type,\n projectDirOrConfigPath: {\n payloadConfigPath: result.payloadConfigPath,\n },\n })\n\n await manageEnvFiles({\n cliArgs: this.args,\n databaseType: dbDetails.type,\n databaseUri: dbDetails.dbUri,\n payloadSecret: generateSecret(),\n projectDir,\n })\n\n info('Payload project successfully initialized!')\n p.note(successfulNextInit(), chalk.bgGreen(chalk.black(' Documentation ')))\n p.outro(feedbackOutro())\n return\n }\n\n const templateArg = this.args['--template']\n if (templateArg) {\n const valid = validateTemplate({ templateName: templateArg })\n if (!valid) {\n helpMessage()\n process.exit(1)\n }\n }\n\n const exampleArg = this.args['--example']\n\n if (exampleArg) {\n const example = await parseExample({\n name: exampleArg,\n branch: this.args['--branch'] ?? 'main',\n })\n\n if (!example) {\n helpMessage()\n process.exit(1)\n }\n\n await createProject({\n cliArgs: this.args,\n example,\n packageManager,\n projectDir,\n projectName,\n })\n }\n\n if (debugFlag) {\n debug(`Using ${exampleArg ? 'examples' : 'templates'} from git tag: v${LATEST_VERSION}`)\n }\n\n if (!exampleArg) {\n const validTemplates = getValidTemplates()\n const template = await parseTemplate(this.args, validTemplates)\n if (!template) {\n p.log.error('Invalid template given')\n p.outro(feedbackOutro())\n process.exit(1)\n }\n\n switch (template.type) {\n case 'plugin': {\n await createProject({\n cliArgs: this.args,\n packageManager,\n projectDir,\n projectName,\n template,\n })\n break\n }\n case 'starter': {\n const dbDetails = await selectDb(this.args, projectName)\n\n await createProject({\n cliArgs: this.args,\n dbDetails,\n packageManager,\n projectDir,\n projectName,\n template,\n })\n\n break\n }\n }\n }\n\n info('Payload project successfully created!')\n p.log.step(chalk.bgGreen(chalk.black(' Next Steps ')))\n p.log.message(successMessage(projectDir, packageManager))\n p.outro(feedbackOutro())\n } catch (err: unknown) {\n error(err instanceof Error ? err.message : 'An error occurred')\n }\n }\n}\n"],"names":["p","slugify","arg","chalk","figures","path","configurePayloadConfig","createProject","parseExample","generateSecret","getPackageManager","getNextAppDetails","initNext","manageEnvFiles","parseProjectName","parseTemplate","selectDb","getValidTemplates","validateTemplate","updatePayloadInProject","getLatestPackageVersion","debug","error","info","feedbackOutro","helpMessage","moveMessage","successfulNextInit","successMessage","Main","args","constructor","String","Boolean","permissive","init","debugFlag","LATEST_VERSION","packageName","process","exit","console","log","intro","bgCyan","black","note","nextAppDetails","cwd","hasTopLevelLayout","isPayloadInstalled","isSupportedNextVersion","nextAppDir","nextConfigPath","nextVersion","warn","outro","shouldUpdate","confirm","initialValue","message","bold","isCancel","success","updateSuccess","basename","dirname","projectName","projectDir","resolve","packageManager","cliArgs","step","bgBlack","triangleUp","proceed","green","dbDetails","result","dbType","type","projectDirOrConfigPath","payloadConfigPath","databaseType","databaseUri","dbUri","payloadSecret","bgGreen","templateArg","valid","templateName","exampleArg","example","name","branch","validTemplates","template","err","Error"],"mappings":"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"}
|