create-payload-app 4.0.0-internal.5f0cd13 → 4.0.0-internal.63f8536
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/LICENSE.md +1 -1
- package/dist/lib/configure-pnpm-builds.d.ts +20 -0
- package/dist/lib/configure-pnpm-builds.d.ts.map +1 -0
- package/dist/lib/configure-pnpm-builds.js +100 -0
- package/dist/lib/configure-pnpm-builds.js.map +1 -0
- package/dist/lib/create-project.d.ts.map +1 -1
- package/dist/lib/create-project.js +13 -50
- package/dist/lib/create-project.js.map +1 -1
- package/dist/lib/init-next.d.ts +1 -1
- package/dist/lib/init-next.d.ts.map +1 -1
- package/dist/lib/init-next.js +20 -4
- package/dist/lib/init-next.js.map +1 -1
- package/dist/lib/update-payload-in-project.d.ts +1 -1
- package/dist/lib/update-payload-in-project.d.ts.map +1 -1
- package/dist/lib/update-payload-in-project.js +6 -5
- package/dist/lib/update-payload-in-project.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +6 -5
- package/dist/main.js.map +1 -1
- package/dist/template/src/app/(frontend)/page.tsx +5 -2
- package/dist/template/src/app/(payload)/admin/importMap.js +15 -2
- package/dist/template/src/collections/Folders.ts +16 -0
- package/dist/template/src/collections/Media.ts +4 -0
- package/dist/template/src/collections/Tags.ts +16 -0
- package/dist/template/src/collections/Users.ts +1 -0
- package/dist/template/src/payload-types.ts +63 -9
- package/dist/template/src/payload.config.ts +10 -2
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/messages.d.ts.map +1 -1
- package/dist/utils/messages.js +1 -0
- package/dist/utils/messages.js.map +1 -1
- package/dist/utils/resolvePackageVersion.d.ts +29 -0
- package/dist/utils/resolvePackageVersion.d.ts.map +1 -0
- package/dist/utils/resolvePackageVersion.js +41 -0
- package/dist/utils/resolvePackageVersion.js.map +1 -0
- package/dist/utils/resolvePackageVersion.spec.js +77 -0
- package/dist/utils/resolvePackageVersion.spec.js.map +1 -0
- package/package.json +2 -2
- package/dist/utils/getLatestPackageVersion.d.ts +0 -17
- package/dist/utils/getLatestPackageVersion.d.ts.map +0 -1
- package/dist/utils/getLatestPackageVersion.js +0 -20
- package/dist/utils/getLatestPackageVersion.js.map +0 -1
package/dist/main.js
CHANGED
|
@@ -17,9 +17,9 @@ import { selectAgent } from './lib/select-agent.js';
|
|
|
17
17
|
import { selectDb } from './lib/select-db.js';
|
|
18
18
|
import { getValidTemplates, validateTemplate } from './lib/templates.js';
|
|
19
19
|
import { updatePayloadInProject } from './lib/update-payload-in-project.js';
|
|
20
|
-
import { getLatestPackageVersion } from './utils/getLatestPackageVersion.js';
|
|
21
20
|
import { debug, error, info } from './utils/log.js';
|
|
22
21
|
import { feedbackOutro, helpMessage, moveMessage, successfulNextInit, successMessage } from './utils/messages.js';
|
|
22
|
+
import { DEFAULT_PAYLOAD_VERSION_TAG, resolvePackageVersion } from './utils/resolvePackageVersion.js';
|
|
23
23
|
export class Main {
|
|
24
24
|
args;
|
|
25
25
|
constructor(){
|
|
@@ -34,9 +34,9 @@ export class Main {
|
|
|
34
34
|
'--help': Boolean,
|
|
35
35
|
'--local-template': String,
|
|
36
36
|
'--name': String,
|
|
37
|
+
'--payload-version': String,
|
|
37
38
|
'--secret': String,
|
|
38
39
|
'--template': String,
|
|
39
|
-
'--version': String,
|
|
40
40
|
// Next.js
|
|
41
41
|
'--init-next': Boolean,
|
|
42
42
|
// Agent
|
|
@@ -71,9 +71,10 @@ export class Main {
|
|
|
71
71
|
if (debugFlag) {
|
|
72
72
|
process.env.DEBUG = 'true';
|
|
73
73
|
}
|
|
74
|
-
const LATEST_VERSION = await
|
|
74
|
+
const LATEST_VERSION = await resolvePackageVersion({
|
|
75
75
|
debug: debugFlag,
|
|
76
|
-
packageName: 'payload'
|
|
76
|
+
packageName: 'payload',
|
|
77
|
+
versionOrTag: this.args['--payload-version'] ?? DEFAULT_PAYLOAD_VERSION_TAG
|
|
77
78
|
});
|
|
78
79
|
if (this.args['--help']) {
|
|
79
80
|
helpMessage();
|
|
@@ -99,7 +100,7 @@ export class Main {
|
|
|
99
100
|
message: chalk.bold(`Upgrade Payload in this project?`)
|
|
100
101
|
});
|
|
101
102
|
if (!p.isCancel(shouldUpdate) && shouldUpdate) {
|
|
102
|
-
const { message, success: updateSuccess } = await updatePayloadInProject(nextAppDetails);
|
|
103
|
+
const { message, success: updateSuccess } = await updatePayloadInProject(nextAppDetails, this.args['--payload-version'] ?? DEFAULT_PAYLOAD_VERSION_TAG);
|
|
103
104
|
if (updateSuccess) {
|
|
104
105
|
info(message);
|
|
105
106
|
} else {
|
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 { selectAgent } from './lib/select-agent.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 '--agent': String,\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 // Agent\n '--no-agent': Boolean,\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 '-a': '--agent',\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 // Set DEBUG env var for logger utility\n if (debugFlag) {\n process.env.DEBUG = 'true'\n }\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 const agentType = await selectAgent({ cliArgs: this.args })\n\n await createProject({\n agentType,\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 const agentType = await selectAgent({ cliArgs: this.args })\n await createProject({\n agentType,\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, template)\n const agentType = await selectAgent({ cliArgs: this.args })\n\n await createProject({\n agentType,\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","selectAgent","selectDb","getValidTemplates","validateTemplate","updatePayloadInProject","getLatestPackageVersion","debug","error","info","feedbackOutro","helpMessage","moveMessage","successfulNextInit","successMessage","Main","args","String","Boolean","permissive","init","debugFlag","process","env","DEBUG","LATEST_VERSION","packageName","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","agentType","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 { selectAgent } from './lib/select-agent.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 { debug, error, info } from './utils/log.js'\nimport {\n feedbackOutro,\n helpMessage,\n moveMessage,\n successfulNextInit,\n successMessage,\n} from './utils/messages.js'\nimport {\n DEFAULT_PAYLOAD_VERSION_TAG,\n resolvePackageVersion,\n} from './utils/resolvePackageVersion.js'\n\nexport class Main {\n args: CliArgs\n\n constructor() {\n // @ts-expect-error bad typings\n this.args = arg(\n {\n '--agent': String,\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 '--payload-version': String, // Install a specific Payload version or npm dist-tag (e.g. 3.40.0 or canary; default: canary)\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 // Agent\n '--no-agent': Boolean,\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 '-a': '--agent',\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 // Set DEBUG env var for logger utility\n if (debugFlag) {\n process.env.DEBUG = 'true'\n }\n\n const LATEST_VERSION = await resolvePackageVersion({\n debug: debugFlag,\n packageName: 'payload',\n versionOrTag: this.args['--payload-version'] ?? DEFAULT_PAYLOAD_VERSION_TAG,\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(\n nextAppDetails,\n this.args['--payload-version'] ?? DEFAULT_PAYLOAD_VERSION_TAG,\n )\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 const agentType = await selectAgent({ cliArgs: this.args })\n\n await createProject({\n agentType,\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 const agentType = await selectAgent({ cliArgs: this.args })\n await createProject({\n agentType,\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, template)\n const agentType = await selectAgent({ cliArgs: this.args })\n\n await createProject({\n agentType,\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","selectAgent","selectDb","getValidTemplates","validateTemplate","updatePayloadInProject","debug","error","info","feedbackOutro","helpMessage","moveMessage","successfulNextInit","successMessage","DEFAULT_PAYLOAD_VERSION_TAG","resolvePackageVersion","Main","args","String","Boolean","permissive","init","debugFlag","process","env","DEBUG","LATEST_VERSION","packageName","versionOrTag","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","agentType","validTemplates","template","err","Error"],"mappings":"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"}
|
|
@@ -27,8 +27,11 @@ export default async function HomePage() {
|
|
|
27
27
|
width={65}
|
|
28
28
|
/>
|
|
29
29
|
</picture>
|
|
30
|
-
{!user
|
|
31
|
-
|
|
30
|
+
{!user || !('email' in user) ? (
|
|
31
|
+
<h1>Welcome to your new project.</h1>
|
|
32
|
+
) : (
|
|
33
|
+
<h1>Welcome back, {user.email}</h1>
|
|
34
|
+
)}
|
|
32
35
|
<div className="links">
|
|
33
36
|
<a
|
|
34
37
|
className="admin"
|
|
@@ -1,6 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NullField as NullField_3817bf644402e67bfe6577f60ef982de } from '@payloadcms/ui'
|
|
2
|
+
import { HierarchyField as HierarchyField_ab83ff7e88da8d3530831f296ec4756a } from '@payloadcms/ui/rsc'
|
|
3
|
+
import { HierarchyButton as HierarchyButton_ab83ff7e88da8d3530831f296ec4756a } from '@payloadcms/ui/rsc'
|
|
4
|
+
import { FolderIcon as FolderIcon_3817bf644402e67bfe6577f60ef982de } from '@payloadcms/ui'
|
|
5
|
+
import { HierarchySidebarTabServer as HierarchySidebarTabServer_ab83ff7e88da8d3530831f296ec4756a } from '@payloadcms/ui/rsc'
|
|
6
|
+
import { TagIcon as TagIcon_3817bf644402e67bfe6577f60ef982de } from '@payloadcms/ui'
|
|
7
|
+
import { CollectionCards as CollectionCards_ab83ff7e88da8d3530831f296ec4756a } from '@payloadcms/ui/rsc'
|
|
2
8
|
|
|
3
9
|
/** @type import('payload').ImportMap */
|
|
4
10
|
export const importMap = {
|
|
5
|
-
'@payloadcms/
|
|
11
|
+
'@payloadcms/ui#NullField': NullField_3817bf644402e67bfe6577f60ef982de,
|
|
12
|
+
'@payloadcms/ui/rsc#HierarchyField': HierarchyField_ab83ff7e88da8d3530831f296ec4756a,
|
|
13
|
+
'@payloadcms/ui/rsc#HierarchyButton': HierarchyButton_ab83ff7e88da8d3530831f296ec4756a,
|
|
14
|
+
'@payloadcms/ui#FolderIcon': FolderIcon_3817bf644402e67bfe6577f60ef982de,
|
|
15
|
+
'@payloadcms/ui/rsc#HierarchySidebarTabServer':
|
|
16
|
+
HierarchySidebarTabServer_ab83ff7e88da8d3530831f296ec4756a,
|
|
17
|
+
'@payloadcms/ui#TagIcon': TagIcon_3817bf644402e67bfe6577f60ef982de,
|
|
18
|
+
'@payloadcms/ui/rsc#CollectionCards': CollectionCards_ab83ff7e88da8d3530831f296ec4756a,
|
|
6
19
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CollectionConfig } from 'payload'
|
|
2
|
+
|
|
3
|
+
export const Folders: CollectionConfig = {
|
|
4
|
+
slug: 'folders',
|
|
5
|
+
admin: {
|
|
6
|
+
useAsTitle: 'name',
|
|
7
|
+
},
|
|
8
|
+
folders: true,
|
|
9
|
+
fields: [
|
|
10
|
+
{
|
|
11
|
+
name: 'name',
|
|
12
|
+
type: 'text',
|
|
13
|
+
required: true,
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { CollectionConfig } from 'payload'
|
|
2
2
|
|
|
3
|
+
import { createFolderField, createTagField } from 'payload'
|
|
4
|
+
|
|
3
5
|
export const Media: CollectionConfig = {
|
|
4
6
|
slug: 'media',
|
|
5
7
|
access: {
|
|
@@ -11,6 +13,8 @@ export const Media: CollectionConfig = {
|
|
|
11
13
|
type: 'text',
|
|
12
14
|
required: true,
|
|
13
15
|
},
|
|
16
|
+
createFolderField({ relationTo: 'folders' }),
|
|
17
|
+
createTagField({ relationTo: 'tags' }),
|
|
14
18
|
],
|
|
15
19
|
upload: true,
|
|
16
20
|
}
|
|
@@ -69,6 +69,8 @@ export interface Config {
|
|
|
69
69
|
collections: {
|
|
70
70
|
users: User;
|
|
71
71
|
media: Media;
|
|
72
|
+
folders: Folder;
|
|
73
|
+
tags: Tag;
|
|
72
74
|
'payload-kv': PayloadKv;
|
|
73
75
|
'payload-locked-documents': PayloadLockedDocument;
|
|
74
76
|
'payload-preferences': PayloadPreference;
|
|
@@ -78,6 +80,8 @@ export interface Config {
|
|
|
78
80
|
collectionsSelect: {
|
|
79
81
|
users: UsersSelect<false> | UsersSelect<true>;
|
|
80
82
|
media: MediaSelect<false> | MediaSelect<true>;
|
|
83
|
+
folders: FoldersSelect<false> | FoldersSelect<true>;
|
|
84
|
+
tags: TagsSelect<false> | TagsSelect<true>;
|
|
81
85
|
'payload-kv': PayloadKvSelect<false> | PayloadKvSelect<true>;
|
|
82
86
|
'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
|
|
83
87
|
'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
|
|
@@ -86,10 +90,10 @@ export interface Config {
|
|
|
86
90
|
db: {
|
|
87
91
|
defaultIDType: string;
|
|
88
92
|
};
|
|
89
|
-
fallbackLocale: null;
|
|
93
|
+
fallbackLocale: ('false' | 'none' | 'null') | false | null | 'en' | 'en'[];
|
|
90
94
|
globals: {};
|
|
91
95
|
globalsSelect: {};
|
|
92
|
-
locale:
|
|
96
|
+
locale: 'en';
|
|
93
97
|
widgets: {
|
|
94
98
|
collections: CollectionsWidget;
|
|
95
99
|
};
|
|
@@ -117,10 +121,6 @@ export interface UserAuthOperations {
|
|
|
117
121
|
password: string;
|
|
118
122
|
};
|
|
119
123
|
}
|
|
120
|
-
/**
|
|
121
|
-
* This interface was referenced by `Config`'s JSON-Schema
|
|
122
|
-
* via the `definition` "users".
|
|
123
|
-
*/
|
|
124
124
|
export interface User {
|
|
125
125
|
id: string;
|
|
126
126
|
updatedAt: string;
|
|
@@ -149,6 +149,8 @@ export interface User {
|
|
|
149
149
|
export interface Media {
|
|
150
150
|
id: string;
|
|
151
151
|
alt: string;
|
|
152
|
+
_h_folders?: (string | null) | Folder;
|
|
153
|
+
_h_tags?: (string | Tag)[] | null;
|
|
152
154
|
updatedAt: string;
|
|
153
155
|
createdAt: string;
|
|
154
156
|
url?: string | null;
|
|
@@ -163,8 +165,30 @@ export interface Media {
|
|
|
163
165
|
}
|
|
164
166
|
/**
|
|
165
167
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
166
|
-
* via the `definition` "
|
|
168
|
+
* via the `definition` "folders".
|
|
167
169
|
*/
|
|
170
|
+
export interface Folder {
|
|
171
|
+
id: string;
|
|
172
|
+
_h_folders?: (string | null) | Folder;
|
|
173
|
+
name: string;
|
|
174
|
+
updatedAt: string;
|
|
175
|
+
createdAt: string;
|
|
176
|
+
_h_slugPath?: string | null;
|
|
177
|
+
_h_titlePath?: string | null;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* This interface was referenced by `Config`'s JSON-Schema
|
|
181
|
+
* via the `definition` "tags".
|
|
182
|
+
*/
|
|
183
|
+
export interface Tag {
|
|
184
|
+
id: string;
|
|
185
|
+
_h_tags?: (string | null) | Tag;
|
|
186
|
+
name: string;
|
|
187
|
+
updatedAt: string;
|
|
188
|
+
createdAt: string;
|
|
189
|
+
_h_slugPath?: string | null;
|
|
190
|
+
_h_titlePath?: string | null;
|
|
191
|
+
}
|
|
168
192
|
export interface PayloadKv {
|
|
169
193
|
id: string;
|
|
170
194
|
key: string;
|
|
@@ -192,6 +216,14 @@ export interface PayloadLockedDocument {
|
|
|
192
216
|
| ({
|
|
193
217
|
relationTo: 'media';
|
|
194
218
|
value: string | Media;
|
|
219
|
+
} | null)
|
|
220
|
+
| ({
|
|
221
|
+
relationTo: 'folders';
|
|
222
|
+
value: string | Folder;
|
|
223
|
+
} | null)
|
|
224
|
+
| ({
|
|
225
|
+
relationTo: 'tags';
|
|
226
|
+
value: string | Tag;
|
|
195
227
|
} | null);
|
|
196
228
|
globalSlug?: string | null;
|
|
197
229
|
user: {
|
|
@@ -263,6 +295,8 @@ export interface UsersSelect<T extends boolean = true> {
|
|
|
263
295
|
*/
|
|
264
296
|
export interface MediaSelect<T extends boolean = true> {
|
|
265
297
|
alt?: T;
|
|
298
|
+
_h_folders?: T;
|
|
299
|
+
_h_tags?: T;
|
|
266
300
|
updatedAt?: T;
|
|
267
301
|
createdAt?: T;
|
|
268
302
|
url?: T;
|
|
@@ -277,8 +311,28 @@ export interface MediaSelect<T extends boolean = true> {
|
|
|
277
311
|
}
|
|
278
312
|
/**
|
|
279
313
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
280
|
-
* via the `definition` "
|
|
314
|
+
* via the `definition` "folders_select".
|
|
281
315
|
*/
|
|
316
|
+
export interface FoldersSelect<T extends boolean = true> {
|
|
317
|
+
_h_folders?: T;
|
|
318
|
+
name?: T;
|
|
319
|
+
updatedAt?: T;
|
|
320
|
+
createdAt?: T;
|
|
321
|
+
_h_slugPath?: T;
|
|
322
|
+
_h_titlePath?: T;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* This interface was referenced by `Config`'s JSON-Schema
|
|
326
|
+
* via the `definition` "tags_select".
|
|
327
|
+
*/
|
|
328
|
+
export interface TagsSelect<T extends boolean = true> {
|
|
329
|
+
_h_tags?: T;
|
|
330
|
+
name?: T;
|
|
331
|
+
updatedAt?: T;
|
|
332
|
+
createdAt?: T;
|
|
333
|
+
_h_slugPath?: T;
|
|
334
|
+
_h_titlePath?: T;
|
|
335
|
+
}
|
|
282
336
|
export interface PayloadKvSelect<T extends boolean = true> {
|
|
283
337
|
key?: T;
|
|
284
338
|
data?: T;
|
|
@@ -336,4 +390,4 @@ export interface Auth {
|
|
|
336
390
|
|
|
337
391
|
declare module 'payload' {
|
|
338
392
|
export interface GeneratedTypes extends Config {}
|
|
339
|
-
}
|
|
393
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { mongooseAdapter } from '@payloadcms/db-mongodb'
|
|
2
|
+
import { mcpPlugin } from '@payloadcms/plugin-mcp'
|
|
2
3
|
import { lexicalEditor } from '@payloadcms/richtext-lexical'
|
|
3
4
|
import path from 'path'
|
|
4
5
|
import { buildConfig } from 'payload'
|
|
@@ -7,6 +8,8 @@ import sharp from 'sharp'
|
|
|
7
8
|
|
|
8
9
|
import { Users } from './collections/Users'
|
|
9
10
|
import { Media } from './collections/Media'
|
|
11
|
+
import { Folders } from './collections/Folders'
|
|
12
|
+
import { Tags } from './collections/Tags'
|
|
10
13
|
|
|
11
14
|
const filename = fileURLToPath(import.meta.url)
|
|
12
15
|
const dirname = path.dirname(filename)
|
|
@@ -18,7 +21,7 @@ export default buildConfig({
|
|
|
18
21
|
baseDir: path.resolve(dirname),
|
|
19
22
|
},
|
|
20
23
|
},
|
|
21
|
-
collections: [Users, Media],
|
|
24
|
+
collections: [Users, Media, Folders, Tags],
|
|
22
25
|
editor: lexicalEditor(),
|
|
23
26
|
secret: process.env.PAYLOAD_SECRET || '',
|
|
24
27
|
typescript: {
|
|
@@ -28,5 +31,10 @@ export default buildConfig({
|
|
|
28
31
|
url: process.env.DATABASE_URL || '',
|
|
29
32
|
}),
|
|
30
33
|
sharp,
|
|
31
|
-
|
|
34
|
+
localization: {
|
|
35
|
+
locales: ['en'],
|
|
36
|
+
fallback: true,
|
|
37
|
+
defaultLocale: 'en',
|
|
38
|
+
},
|
|
39
|
+
plugins: [mcpPlugin({})],
|
|
32
40
|
})
|
package/dist/types.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export interface Args extends arg.Spec {
|
|
|
18
18
|
'--no-agent': BooleanConstructor;
|
|
19
19
|
'--no-deps': BooleanConstructor;
|
|
20
20
|
'--no-git': BooleanConstructor;
|
|
21
|
+
'--payload-version': StringConstructor;
|
|
21
22
|
'--secret': StringConstructor;
|
|
22
23
|
'--template': StringConstructor;
|
|
23
24
|
'--use-bun': BooleanConstructor;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type arg from 'arg'\n\nimport type { ALL_DATABASE_ADAPTERS, ALL_STORAGE_ADAPTERS } from './lib/ast/types.js'\n\nexport interface Args extends arg.Spec {\n '--agent': StringConstructor\n '--beta': BooleanConstructor\n '--branch': StringConstructor\n '--db': StringConstructor\n '--db-accept-recommended': BooleanConstructor\n '--db-connection-string': StringConstructor\n '--debug': BooleanConstructor\n '--dry-run': BooleanConstructor\n\n '--example': StringConstructor\n '--help': BooleanConstructor\n '--init-next': BooleanConstructor\n '--local-example': StringConstructor\n '--local-template': StringConstructor\n '--name': StringConstructor\n '--no-agent': BooleanConstructor\n '--no-deps': BooleanConstructor\n '--no-git': BooleanConstructor\n '--secret': StringConstructor\n '--template': StringConstructor\n '--use-bun': BooleanConstructor\n '--use-npm': BooleanConstructor\n '--use-pnpm': BooleanConstructor\n '--use-yarn': BooleanConstructor\n\n // Aliases\n\n '-a': string\n '-e': string\n '-h': string\n '-n': string\n '-t': string\n}\n\nexport type CliArgs = arg.Result<Args>\n\nexport type ProjectTemplate = GitTemplate | PluginTemplate\n\nexport type ProjectExample = {\n name: string\n url: string\n}\n\n/**\n * Template that is cloned verbatim from a git repo\n * Performs .env manipulation based upon input\n */\nexport interface GitTemplate extends Template {\n type: 'starter'\n url: string\n}\n\n/**\n * Type specifically for the plugin template\n * No .env manipulation is done\n */\nexport interface PluginTemplate extends Template {\n type: 'plugin'\n url: string\n}\n\ninterface Template {\n dbType?: DbType\n description?: string\n name: string\n type: ProjectTemplate['type']\n}\n\nexport type PackageManager = 'bun' | 'npm' | 'pnpm' | 'yarn'\n\nexport type DbType = (typeof ALL_DATABASE_ADAPTERS)[number]\n\nexport type DbDetails = {\n dbUri?: string\n type: DbType\n}\n\nexport type NextAppDetails = {\n hasTopLevelLayout: boolean\n isPayloadInstalled?: boolean\n isSrcDir: boolean\n isSupportedNextVersion: boolean\n nextAppDir?: string\n nextConfigPath?: string\n nextConfigType?: NextConfigType\n nextVersion: null | string\n}\n\nexport type NextConfigType = 'cjs' | 'esm' | 'ts'\n\nexport type StorageAdapterType = (typeof ALL_STORAGE_ADAPTERS)[number]\n\nexport type AgentType = 'claude' | 'codex' | 'cursor'\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type arg from 'arg'\n\nimport type { ALL_DATABASE_ADAPTERS, ALL_STORAGE_ADAPTERS } from './lib/ast/types.js'\n\nexport interface Args extends arg.Spec {\n '--agent': StringConstructor\n '--beta': BooleanConstructor\n '--branch': StringConstructor\n '--db': StringConstructor\n '--db-accept-recommended': BooleanConstructor\n '--db-connection-string': StringConstructor\n '--debug': BooleanConstructor\n '--dry-run': BooleanConstructor\n\n '--example': StringConstructor\n '--help': BooleanConstructor\n '--init-next': BooleanConstructor\n '--local-example': StringConstructor\n '--local-template': StringConstructor\n '--name': StringConstructor\n '--no-agent': BooleanConstructor\n '--no-deps': BooleanConstructor\n '--no-git': BooleanConstructor\n '--payload-version': StringConstructor\n '--secret': StringConstructor\n '--template': StringConstructor\n '--use-bun': BooleanConstructor\n '--use-npm': BooleanConstructor\n '--use-pnpm': BooleanConstructor\n '--use-yarn': BooleanConstructor\n\n // Aliases\n\n '-a': string\n '-e': string\n '-h': string\n '-n': string\n '-t': string\n}\n\nexport type CliArgs = arg.Result<Args>\n\nexport type ProjectTemplate = GitTemplate | PluginTemplate\n\nexport type ProjectExample = {\n name: string\n url: string\n}\n\n/**\n * Template that is cloned verbatim from a git repo\n * Performs .env manipulation based upon input\n */\nexport interface GitTemplate extends Template {\n type: 'starter'\n url: string\n}\n\n/**\n * Type specifically for the plugin template\n * No .env manipulation is done\n */\nexport interface PluginTemplate extends Template {\n type: 'plugin'\n url: string\n}\n\ninterface Template {\n dbType?: DbType\n description?: string\n name: string\n type: ProjectTemplate['type']\n}\n\nexport type PackageManager = 'bun' | 'npm' | 'pnpm' | 'yarn'\n\nexport type DbType = (typeof ALL_DATABASE_ADAPTERS)[number]\n\nexport type DbDetails = {\n dbUri?: string\n type: DbType\n}\n\nexport type NextAppDetails = {\n hasTopLevelLayout: boolean\n isPayloadInstalled?: boolean\n isSrcDir: boolean\n isSupportedNextVersion: boolean\n nextAppDir?: string\n nextConfigPath?: string\n nextConfigType?: NextConfigType\n nextVersion: null | string\n}\n\nexport type NextConfigType = 'cjs' | 'esm' | 'ts'\n\nexport type StorageAdapterType = (typeof ALL_STORAGE_ADAPTERS)[number]\n\nexport type AgentType = 'claude' | 'codex' | 'cursor'\n"],"names":[],"mappings":"AAkGA,WAAqD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAA;AAMlE,eAAO,MAAM,cAAc,QAE1B,CAAA;AAID,wBAAgB,WAAW,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAA;AAMlE,eAAO,MAAM,cAAc,QAE1B,CAAA;AAID,wBAAgB,WAAW,IAAI,IAAI,CAoClC;AAQD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,MAAM,CAiBzF;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAO3C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAgBpF;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
package/dist/utils/messages.js
CHANGED
|
@@ -40,6 +40,7 @@ export function helpMessage() {
|
|
|
40
40
|
--use-pnpm Use pnpm to install dependencies
|
|
41
41
|
--use-bun Use bun to install dependencies (experimental)
|
|
42
42
|
--no-deps Do not install any dependencies
|
|
43
|
+
--payload-version {underline value} Install a specific Payload version or npm dist-tag (default: canary)
|
|
43
44
|
-h Show help
|
|
44
45
|
`);
|
|
45
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/messages.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport chalk from 'chalk'\nimport path from 'path'\nimport terminalLink from 'terminal-link'\n\nimport type { PackageManager, ProjectTemplate } from '../types.js'\n\nimport { getValidTemplates } from '../lib/templates.js'\n\nconst header = (message: string): string => chalk.bold(message)\n\nexport const welcomeMessage = chalk`\n {green Welcome to Payload. Let's create a project! }\n`\n\nconst spacer = ' '.repeat(8)\n\nexport function helpMessage(): void {\n const validTemplates = getValidTemplates()\n console.log(chalk`\n {bold USAGE}\n\n {dim Inside of an existing Next.js project}\n\n {dim $} {bold npx create-payload-app}\n\n {dim Create a new project from scratch}\n\n {dim $} {bold npx create-payload-app}\n {dim $} {bold npx create-payload-app} my-project\n {dim $} {bold npx create-payload-app} -n my-project -t template-name\n\n {bold OPTIONS}\n\n -n {underline my-payload-app} Set project name\n -t {underline template_name} Choose specific template\n -e {underline example_name} Choose specific example\n\n {dim Available templates: ${formatTemplates(validTemplates)}}\n\n -a {underline agent_name} Set coding agent (claude, codex, cursor)\n\n {dim Installs the Payload skill for the selected agent}\n\n --no-agent Skip agent skill installation\n --use-npm Use npm to install dependencies\n --use-yarn Use yarn to install dependencies\n --use-pnpm Use pnpm to install dependencies\n --use-bun Use bun to install dependencies (experimental)\n --no-deps Do not install any dependencies\n -h Show help\n`)\n}\n\nfunction formatTemplates(templates: ProjectTemplate[]) {\n return `\\n\\n${spacer}${templates\n .map((t) => `${t.name}${' '.repeat(28 - t.name.length)}${t.description}`)\n .join(`\\n${spacer}`)}`\n}\n\nexport function successMessage(projectDir: string, packageManager: PackageManager): string {\n const relativePath = path.relative(process.cwd(), projectDir)\n return `\n${header('Launch Application:')}\n\n - cd ./${relativePath}\n - ${packageManager === 'npm' ? 'npm run' : packageManager} dev or follow directions in README.md\n\n${header('Documentation:')}\n\n - ${createTerminalLink(\n 'Getting Started',\n 'https://payloadcms.com/docs/getting-started/what-is-payload',\n )}\n - ${createTerminalLink('Configuration', 'https://payloadcms.com/docs/configuration/overview')}\n\n`\n}\n\nexport function successfulNextInit(): string {\n return `- ${createTerminalLink(\n 'Getting Started',\n 'https://payloadcms.com/docs/getting-started/what-is-payload',\n )}\n- ${createTerminalLink('Configuration', 'https://payloadcms.com/docs/configuration/overview')}\n`\n}\n\nexport function moveMessage(args: { nextAppDir: string; projectDir: string }): string {\n const relativeAppDir = path.relative(process.cwd(), args.nextAppDir)\n return `\n${header('Next Steps:')}\n\nPayload does not support a top-level layout.tsx file in the app directory.\n\n${chalk.bold('To continue:')}\n\n- Create a new directory in ./${relativeAppDir} such as ./${relativeAppDir}/${chalk.bold('(app)')}\n- Move all files from ./${relativeAppDir} into that directory\n\nIt is recommended to do this from your IDE if your app has existing file references.\n\nOnce moved, rerun the create-payload-app command again.\n`\n}\n\nexport function feedbackOutro(): string {\n return `${chalk.bgCyan(chalk.black(' Have feedback? '))} Visit us on ${createTerminalLink('GitHub', 'https://github.com/payloadcms/payload')}.`\n}\n\n// Create terminalLink with fallback for unsupported terminals\nfunction createTerminalLink(text: string, url: string) {\n return terminalLink(text, url, {\n fallback: (text, url) => `${text}: ${url}`,\n })\n}\n"],"names":["chalk","path","terminalLink","getValidTemplates","header","message","bold","welcomeMessage","spacer","repeat","helpMessage","validTemplates","console","log","formatTemplates","templates","map","t","name","length","description","join","successMessage","projectDir","packageManager","relativePath","relative","process","cwd","createTerminalLink","successfulNextInit","moveMessage","args","relativeAppDir","nextAppDir","feedbackOutro","bgCyan","black","text","url","fallback"],"mappings":"AAAA,6BAA6B,GAC7B,OAAOA,WAAW,QAAO;AACzB,OAAOC,UAAU,OAAM;AACvB,OAAOC,kBAAkB,gBAAe;AAIxC,SAASC,iBAAiB,QAAQ,sBAAqB;AAEvD,MAAMC,SAAS,CAACC,UAA4BL,MAAMM,IAAI,CAACD;AAEvD,OAAO,MAAME,iBAAiBP,KAAK,CAAC;;AAEpC,CAAC,CAAA;AAED,MAAMQ,SAAS,IAAIC,MAAM,CAAC;AAE1B,OAAO,SAASC;IACd,MAAMC,iBAAiBR;IACvBS,QAAQC,GAAG,CAACb,KAAK,CAAC;;;;;;;;;;;;;;;;;;;kCAmBc,EAAEc,gBAAgBH,gBAAgB
|
|
1
|
+
{"version":3,"sources":["../../src/utils/messages.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport chalk from 'chalk'\nimport path from 'path'\nimport terminalLink from 'terminal-link'\n\nimport type { PackageManager, ProjectTemplate } from '../types.js'\n\nimport { getValidTemplates } from '../lib/templates.js'\n\nconst header = (message: string): string => chalk.bold(message)\n\nexport const welcomeMessage = chalk`\n {green Welcome to Payload. Let's create a project! }\n`\n\nconst spacer = ' '.repeat(8)\n\nexport function helpMessage(): void {\n const validTemplates = getValidTemplates()\n console.log(chalk`\n {bold USAGE}\n\n {dim Inside of an existing Next.js project}\n\n {dim $} {bold npx create-payload-app}\n\n {dim Create a new project from scratch}\n\n {dim $} {bold npx create-payload-app}\n {dim $} {bold npx create-payload-app} my-project\n {dim $} {bold npx create-payload-app} -n my-project -t template-name\n\n {bold OPTIONS}\n\n -n {underline my-payload-app} Set project name\n -t {underline template_name} Choose specific template\n -e {underline example_name} Choose specific example\n\n {dim Available templates: ${formatTemplates(validTemplates)}}\n\n -a {underline agent_name} Set coding agent (claude, codex, cursor)\n\n {dim Installs the Payload skill for the selected agent}\n\n --no-agent Skip agent skill installation\n --use-npm Use npm to install dependencies\n --use-yarn Use yarn to install dependencies\n --use-pnpm Use pnpm to install dependencies\n --use-bun Use bun to install dependencies (experimental)\n --no-deps Do not install any dependencies\n --payload-version {underline value} Install a specific Payload version or npm dist-tag (default: canary)\n -h Show help\n`)\n}\n\nfunction formatTemplates(templates: ProjectTemplate[]) {\n return `\\n\\n${spacer}${templates\n .map((t) => `${t.name}${' '.repeat(28 - t.name.length)}${t.description}`)\n .join(`\\n${spacer}`)}`\n}\n\nexport function successMessage(projectDir: string, packageManager: PackageManager): string {\n const relativePath = path.relative(process.cwd(), projectDir)\n return `\n${header('Launch Application:')}\n\n - cd ./${relativePath}\n - ${packageManager === 'npm' ? 'npm run' : packageManager} dev or follow directions in README.md\n\n${header('Documentation:')}\n\n - ${createTerminalLink(\n 'Getting Started',\n 'https://payloadcms.com/docs/getting-started/what-is-payload',\n )}\n - ${createTerminalLink('Configuration', 'https://payloadcms.com/docs/configuration/overview')}\n\n`\n}\n\nexport function successfulNextInit(): string {\n return `- ${createTerminalLink(\n 'Getting Started',\n 'https://payloadcms.com/docs/getting-started/what-is-payload',\n )}\n- ${createTerminalLink('Configuration', 'https://payloadcms.com/docs/configuration/overview')}\n`\n}\n\nexport function moveMessage(args: { nextAppDir: string; projectDir: string }): string {\n const relativeAppDir = path.relative(process.cwd(), args.nextAppDir)\n return `\n${header('Next Steps:')}\n\nPayload does not support a top-level layout.tsx file in the app directory.\n\n${chalk.bold('To continue:')}\n\n- Create a new directory in ./${relativeAppDir} such as ./${relativeAppDir}/${chalk.bold('(app)')}\n- Move all files from ./${relativeAppDir} into that directory\n\nIt is recommended to do this from your IDE if your app has existing file references.\n\nOnce moved, rerun the create-payload-app command again.\n`\n}\n\nexport function feedbackOutro(): string {\n return `${chalk.bgCyan(chalk.black(' Have feedback? '))} Visit us on ${createTerminalLink('GitHub', 'https://github.com/payloadcms/payload')}.`\n}\n\n// Create terminalLink with fallback for unsupported terminals\nfunction createTerminalLink(text: string, url: string) {\n return terminalLink(text, url, {\n fallback: (text, url) => `${text}: ${url}`,\n })\n}\n"],"names":["chalk","path","terminalLink","getValidTemplates","header","message","bold","welcomeMessage","spacer","repeat","helpMessage","validTemplates","console","log","formatTemplates","templates","map","t","name","length","description","join","successMessage","projectDir","packageManager","relativePath","relative","process","cwd","createTerminalLink","successfulNextInit","moveMessage","args","relativeAppDir","nextAppDir","feedbackOutro","bgCyan","black","text","url","fallback"],"mappings":"AAAA,6BAA6B,GAC7B,OAAOA,WAAW,QAAO;AACzB,OAAOC,UAAU,OAAM;AACvB,OAAOC,kBAAkB,gBAAe;AAIxC,SAASC,iBAAiB,QAAQ,sBAAqB;AAEvD,MAAMC,SAAS,CAACC,UAA4BL,MAAMM,IAAI,CAACD;AAEvD,OAAO,MAAME,iBAAiBP,KAAK,CAAC;;AAEpC,CAAC,CAAA;AAED,MAAMQ,SAAS,IAAIC,MAAM,CAAC;AAE1B,OAAO,SAASC;IACd,MAAMC,iBAAiBR;IACvBS,QAAQC,GAAG,CAACb,KAAK,CAAC;;;;;;;;;;;;;;;;;;;kCAmBc,EAAEc,gBAAgBH,gBAAgB;;;;;;;;;;;;;;AAcpE,CAAC;AACD;AAEA,SAASG,gBAAgBC,SAA4B;IACnD,OAAO,CAAC,IAAI,EAAEP,SAASO,UACpBC,GAAG,CAAC,CAACC,IAAM,GAAGA,EAAEC,IAAI,GAAG,IAAIT,MAAM,CAAC,KAAKQ,EAAEC,IAAI,CAACC,MAAM,IAAIF,EAAEG,WAAW,EAAE,EACvEC,IAAI,CAAC,CAAC,EAAE,EAAEb,QAAQ,GAAG;AAC1B;AAEA,OAAO,SAASc,eAAeC,UAAkB,EAAEC,cAA8B;IAC/E,MAAMC,eAAexB,KAAKyB,QAAQ,CAACC,QAAQC,GAAG,IAAIL;IAClD,OAAO,CAAC;AACV,EAAEnB,OAAO,uBAAuB;;SAEvB,EAAEqB,aAAa;IACpB,EAAED,mBAAmB,QAAQ,YAAYA,eAAe;;AAE5D,EAAEpB,OAAO,kBAAkB;;IAEvB,EAAEyB,mBACF,mBACA,+DACA;IACA,EAAEA,mBAAmB,iBAAiB,sDAAsD;;AAEhG,CAAC;AACD;AAEA,OAAO,SAASC;IACd,OAAO,CAAC,EAAE,EAAED,mBACV,mBACA,+DACA;EACF,EAAEA,mBAAmB,iBAAiB,sDAAsD;AAC9F,CAAC;AACD;AAEA,OAAO,SAASE,YAAYC,IAAgD;IAC1E,MAAMC,iBAAiBhC,KAAKyB,QAAQ,CAACC,QAAQC,GAAG,IAAII,KAAKE,UAAU;IACnE,OAAO,CAAC;AACV,EAAE9B,OAAO,eAAe;;;;AAIxB,EAAEJ,MAAMM,IAAI,CAAC,gBAAgB;;8BAEC,EAAE2B,eAAe,WAAW,EAAEA,eAAe,CAAC,EAAEjC,MAAMM,IAAI,CAAC,SAAS;wBAC1E,EAAE2B,eAAe;;;;;AAKzC,CAAC;AACD;AAEA,OAAO,SAASE;IACd,OAAO,GAAGnC,MAAMoC,MAAM,CAACpC,MAAMqC,KAAK,CAAC,qBAAqB,aAAa,EAAER,mBAAmB,UAAU,yCAAyC,CAAC,CAAC;AACjJ;AAEA,8DAA8D;AAC9D,SAASA,mBAAmBS,IAAY,EAAEC,GAAW;IACnD,OAAOrC,aAAaoC,MAAMC,KAAK;QAC7BC,UAAU,CAACF,MAAMC,MAAQ,GAAGD,KAAK,EAAE,EAAEC,KAAK;IAC5C;AACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default npm dist-tag used by the create-payload-app CLI when no
|
|
3
|
+
* `--payload-version` is provided. The CLI scaffolds against canary by default.
|
|
4
|
+
*/
|
|
5
|
+
export declare const DEFAULT_PAYLOAD_VERSION_TAG = "canary";
|
|
6
|
+
/**
|
|
7
|
+
* Resolves a package version from either an npm dist-tag (e.g. `canary`) or an
|
|
8
|
+
* explicit version number (e.g. `3.40.0`).
|
|
9
|
+
*
|
|
10
|
+
* A value matching a published dist-tag resolves to that tag's concrete version.
|
|
11
|
+
* Any other value is treated as an explicit version and verified to exist on the
|
|
12
|
+
* registry. Throws if neither a matching tag nor a published version is found.
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolvePackageVersion({ debug, packageName, versionOrTag, }: {
|
|
15
|
+
debug?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Package name to resolve against the npm registry.
|
|
18
|
+
*
|
|
19
|
+
* @default 'payload'
|
|
20
|
+
*/
|
|
21
|
+
packageName?: string;
|
|
22
|
+
/**
|
|
23
|
+
* An npm dist-tag (e.g. `latest`, `canary`) or an explicit version (e.g. `3.40.0`).
|
|
24
|
+
*
|
|
25
|
+
* @default 'latest'
|
|
26
|
+
*/
|
|
27
|
+
versionOrTag?: string;
|
|
28
|
+
}): Promise<string>;
|
|
29
|
+
//# sourceMappingURL=resolvePackageVersion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolvePackageVersion.d.ts","sourceRoot":"","sources":["../../src/utils/resolvePackageVersion.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,2BAA2B,WAAW,CAAA;AAEnD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,KAAa,EACb,WAAuB,EACvB,YAAuB,GACxB,EAAE;IACD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default npm dist-tag used by the create-payload-app CLI when no
|
|
3
|
+
* `--payload-version` is provided. The CLI scaffolds against canary by default.
|
|
4
|
+
*/ export const DEFAULT_PAYLOAD_VERSION_TAG = 'canary';
|
|
5
|
+
/**
|
|
6
|
+
* Resolves a package version from either an npm dist-tag (e.g. `canary`) or an
|
|
7
|
+
* explicit version number (e.g. `3.40.0`).
|
|
8
|
+
*
|
|
9
|
+
* A value matching a published dist-tag resolves to that tag's concrete version.
|
|
10
|
+
* Any other value is treated as an explicit version and verified to exist on the
|
|
11
|
+
* registry. Throws if neither a matching tag nor a published version is found.
|
|
12
|
+
*/ export async function resolvePackageVersion({ debug = false, packageName = 'payload', versionOrTag = 'latest' }) {
|
|
13
|
+
const distTags = await fetchDistTags(packageName);
|
|
14
|
+
const taggedVersion = distTags[versionOrTag];
|
|
15
|
+
if (taggedVersion) {
|
|
16
|
+
if (debug) {
|
|
17
|
+
console.log(`Resolved ${packageName}@${versionOrTag} to ${taggedVersion}`);
|
|
18
|
+
}
|
|
19
|
+
return taggedVersion;
|
|
20
|
+
}
|
|
21
|
+
await verifyVersionExists({
|
|
22
|
+
packageName,
|
|
23
|
+
version: versionOrTag
|
|
24
|
+
});
|
|
25
|
+
if (debug) {
|
|
26
|
+
console.log(`Using ${packageName}@${versionOrTag}`);
|
|
27
|
+
}
|
|
28
|
+
return versionOrTag;
|
|
29
|
+
}
|
|
30
|
+
async function fetchDistTags(packageName) {
|
|
31
|
+
const response = await fetch(`https://registry.npmjs.org/-/package/${packageName}/dist-tags`);
|
|
32
|
+
return await response.json();
|
|
33
|
+
}
|
|
34
|
+
async function verifyVersionExists({ packageName, version }) {
|
|
35
|
+
const response = await fetch(`https://registry.npmjs.org/${packageName}/${version}`);
|
|
36
|
+
if (response.status !== 200) {
|
|
37
|
+
throw new Error(`No version or tag "${version}" found for package: ${packageName}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=resolvePackageVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/resolvePackageVersion.ts"],"sourcesContent":["/**\n * Default npm dist-tag used by the create-payload-app CLI when no\n * `--payload-version` is provided. The CLI scaffolds against canary by default.\n */\nexport const DEFAULT_PAYLOAD_VERSION_TAG = 'canary'\n\n/**\n * Resolves a package version from either an npm dist-tag (e.g. `canary`) or an\n * explicit version number (e.g. `3.40.0`).\n *\n * A value matching a published dist-tag resolves to that tag's concrete version.\n * Any other value is treated as an explicit version and verified to exist on the\n * registry. Throws if neither a matching tag nor a published version is found.\n */\nexport async function resolvePackageVersion({\n debug = false,\n packageName = 'payload',\n versionOrTag = 'latest',\n}: {\n debug?: boolean\n /**\n * Package name to resolve against the npm registry.\n *\n * @default 'payload'\n */\n packageName?: string\n /**\n * An npm dist-tag (e.g. `latest`, `canary`) or an explicit version (e.g. `3.40.0`).\n *\n * @default 'latest'\n */\n versionOrTag?: string\n}): Promise<string> {\n const distTags = await fetchDistTags(packageName)\n\n const taggedVersion = distTags[versionOrTag]\n if (taggedVersion) {\n if (debug) {\n console.log(`Resolved ${packageName}@${versionOrTag} to ${taggedVersion}`)\n }\n return taggedVersion\n }\n\n await verifyVersionExists({ packageName, version: versionOrTag })\n\n if (debug) {\n console.log(`Using ${packageName}@${versionOrTag}`)\n }\n return versionOrTag\n}\n\nasync function fetchDistTags(packageName: string): Promise<Record<string, string>> {\n const response = await fetch(`https://registry.npmjs.org/-/package/${packageName}/dist-tags`)\n return (await response.json()) as Record<string, string>\n}\n\nasync function verifyVersionExists({\n packageName,\n version,\n}: {\n packageName: string\n version: string\n}): Promise<void> {\n const response = await fetch(`https://registry.npmjs.org/${packageName}/${version}`)\n if (response.status !== 200) {\n throw new Error(`No version or tag \"${version}\" found for package: ${packageName}`)\n }\n}\n"],"names":["DEFAULT_PAYLOAD_VERSION_TAG","resolvePackageVersion","debug","packageName","versionOrTag","distTags","fetchDistTags","taggedVersion","console","log","verifyVersionExists","version","response","fetch","json","status","Error"],"mappings":"AAAA;;;CAGC,GACD,OAAO,MAAMA,8BAA8B,SAAQ;AAEnD;;;;;;;CAOC,GACD,OAAO,eAAeC,sBAAsB,EAC1CC,QAAQ,KAAK,EACbC,cAAc,SAAS,EACvBC,eAAe,QAAQ,EAexB;IACC,MAAMC,WAAW,MAAMC,cAAcH;IAErC,MAAMI,gBAAgBF,QAAQ,CAACD,aAAa;IAC5C,IAAIG,eAAe;QACjB,IAAIL,OAAO;YACTM,QAAQC,GAAG,CAAC,CAAC,SAAS,EAAEN,YAAY,CAAC,EAAEC,aAAa,IAAI,EAAEG,eAAe;QAC3E;QACA,OAAOA;IACT;IAEA,MAAMG,oBAAoB;QAAEP;QAAaQ,SAASP;IAAa;IAE/D,IAAIF,OAAO;QACTM,QAAQC,GAAG,CAAC,CAAC,MAAM,EAAEN,YAAY,CAAC,EAAEC,cAAc;IACpD;IACA,OAAOA;AACT;AAEA,eAAeE,cAAcH,WAAmB;IAC9C,MAAMS,WAAW,MAAMC,MAAM,CAAC,qCAAqC,EAAEV,YAAY,UAAU,CAAC;IAC5F,OAAQ,MAAMS,SAASE,IAAI;AAC7B;AAEA,eAAeJ,oBAAoB,EACjCP,WAAW,EACXQ,OAAO,EAIR;IACC,MAAMC,WAAW,MAAMC,MAAM,CAAC,2BAA2B,EAAEV,YAAY,CAAC,EAAEQ,SAAS;IACnF,IAAIC,SAASG,MAAM,KAAK,KAAK;QAC3B,MAAM,IAAIC,MAAM,CAAC,mBAAmB,EAAEL,QAAQ,qBAAqB,EAAER,aAAa;IACpF;AACF"}
|