create-payload-app 4.0.0-internal.cc18726 → 4.0.0-internal.cd47d20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/agent-config.d.ts +2 -5
- package/dist/lib/agent-config.d.ts.map +1 -1
- package/dist/lib/agent-config.js +1 -8
- package/dist/lib/agent-config.js.map +1 -1
- package/dist/lib/create-project.d.ts.map +1 -1
- package/dist/lib/create-project.js +51 -8
- package/dist/lib/create-project.js.map +1 -1
- package/dist/lib/get-package-manager.d.ts +9 -0
- package/dist/lib/get-package-manager.d.ts.map +1 -1
- package/dist/lib/get-package-manager.js +20 -0
- package/dist/lib/get-package-manager.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +0 -1
- package/dist/main.js.map +1 -1
- package/dist/template/src/app/(frontend)/styles.css +7 -0
- package/dist/template/src/app/(payload)/admin/[[...segments]]/not-found.tsx +1 -2
- package/dist/template/src/app/(payload)/admin/[[...segments]]/page.tsx +1 -2
- package/dist/template/src/app/(payload)/api/[...slug]/route.ts +1 -2
- package/dist/template/src/app/(payload)/api/graphql/route.ts +1 -2
- package/dist/template/src/app/(payload)/api/graphql-playground/route.ts +1 -2
- package/dist/template/src/app/(payload)/layout.tsx +1 -2
- package/dist/utils/messages.js +1 -1
- package/dist/utils/messages.js.map +1 -1
- package/package.json +2 -2
- package/dist/ast-integration.spec.js +0 -132
- package/dist/ast-integration.spec.js.map +0 -1
- package/dist/lib/agent-config.spec.js +0 -23
- package/dist/lib/agent-config.spec.js.map +0 -1
- package/dist/lib/ast/package-json.spec.js +0 -139
- package/dist/lib/ast/package-json.spec.js.map +0 -1
- package/dist/lib/ast/payload-config.spec.js +0 -365
- package/dist/lib/ast/payload-config.spec.js.map +0 -1
- package/dist/lib/ast/utils.spec.js +0 -226
- package/dist/lib/ast/utils.spec.js.map +0 -1
- package/dist/lib/configure-payload-tsconfig.spec.js +0 -135
- package/dist/lib/configure-payload-tsconfig.spec.js.map +0 -1
- package/dist/lib/create-project.spec.js +0 -199
- package/dist/lib/create-project.spec.js.map +0 -1
- package/dist/lib/init-tanstack-default-template.spec.js +0 -121
- package/dist/lib/init-tanstack-default-template.spec.js.map +0 -1
- package/dist/lib/init-tanstack.spec.js +0 -394
- package/dist/lib/init-tanstack.spec.js.map +0 -1
- package/dist/lib/manage-env-files.spec.js +0 -118
- package/dist/lib/manage-env-files.spec.js.map +0 -1
- package/dist/lib/tanstack/detect.spec.js +0 -227
- package/dist/lib/tanstack/detect.spec.js.map +0 -1
- package/dist/lib/tanstack/prepare.spec.js +0 -288
- package/dist/lib/tanstack/prepare.spec.js.map +0 -1
- package/dist/lib/tanstack/transform-root-route.spec.js +0 -484
- package/dist/lib/tanstack/transform-root-route.spec.js.map +0 -1
- package/dist/lib/tanstack/transform-router.spec.js +0 -264
- package/dist/lib/tanstack/transform-router.spec.js.map +0 -1
- package/dist/lib/tanstack/transform-vite-config.spec.js +0 -456
- package/dist/lib/tanstack/transform-vite-config.spec.js.map +0 -1
- package/dist/lib/update-payload-in-project.spec.js +0 -262
- package/dist/lib/update-payload-in-project.spec.js.map +0 -1
- package/dist/lib/wrap-next-config.spec.js +0 -167
- package/dist/lib/wrap-next-config.spec.js.map +0 -1
- package/dist/main.spec.js +0 -102
- package/dist/main.spec.js.map +0 -1
- package/dist/utils/resolvePackageVersion.spec.js +0 -77
- package/dist/utils/resolvePackageVersion.spec.js.map +0 -1
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
type AgentConfigFile = {
|
|
2
2
|
content: string;
|
|
3
|
-
fileName: 'AGENTS.md'
|
|
3
|
+
fileName: 'AGENTS.md';
|
|
4
4
|
};
|
|
5
5
|
/**
|
|
6
6
|
* Builds the agent config files written at project root. They point agents at the skill
|
|
7
7
|
* bundled with the installed `payload` package, so guidance always matches the installed
|
|
8
|
-
* version.
|
|
9
|
-
*
|
|
10
|
-
* `AGENTS.md` holds the instructions. Claude Code reads only `CLAUDE.md`, so that file
|
|
11
|
-
* imports `AGENTS.md` rather than duplicating it.
|
|
8
|
+
* version. `AGENTS.md` is the single source read by Claude Code, Cursor, and Copilot.
|
|
12
9
|
*/
|
|
13
10
|
export declare function buildAgentConfigFiles(): AgentConfigFile[];
|
|
14
11
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../src/lib/agent-config.ts"],"names":[],"mappings":"AAGA,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../src/lib/agent-config.ts"],"names":[],"mappings":"AAGA,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,WAAW,CAAA;CACtB,CAAA;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,EAAE,CAOzD"}
|
package/dist/lib/agent-config.js
CHANGED
|
@@ -2,19 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Builds the agent config files written at project root. They point agents at the skill
|
|
4
4
|
* bundled with the installed `payload` package, so guidance always matches the installed
|
|
5
|
-
* version.
|
|
6
|
-
*
|
|
7
|
-
* `AGENTS.md` holds the instructions. Claude Code reads only `CLAUDE.md`, so that file
|
|
8
|
-
* imports `AGENTS.md` rather than duplicating it.
|
|
5
|
+
* version. `AGENTS.md` is the single source read by Claude Code, Cursor, and Copilot.
|
|
9
6
|
*/ export function buildAgentConfigFiles() {
|
|
10
7
|
return [
|
|
11
8
|
{
|
|
12
9
|
content: `# AI Agent\n\nFor any Payload-related work, reference the skill at \`${SKILL_PATH}/SKILL.md\`.\n`,
|
|
13
10
|
fileName: 'AGENTS.md'
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
content: `@AGENTS.md\n`,
|
|
17
|
-
fileName: 'CLAUDE.md'
|
|
18
11
|
}
|
|
19
12
|
];
|
|
20
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/agent-config.ts"],"sourcesContent":["/** Where the skill ships inside a consumer's installed dependencies. */\nconst SKILL_PATH = 'node_modules/payload/skills/payload'\n\ntype AgentConfigFile = {\n content: string\n fileName: 'AGENTS.md'
|
|
1
|
+
{"version":3,"sources":["../../src/lib/agent-config.ts"],"sourcesContent":["/** Where the skill ships inside a consumer's installed dependencies. */\nconst SKILL_PATH = 'node_modules/payload/skills/payload'\n\ntype AgentConfigFile = {\n content: string\n fileName: 'AGENTS.md'\n}\n\n/**\n * Builds the agent config files written at project root. They point agents at the skill\n * bundled with the installed `payload` package, so guidance always matches the installed\n * version. `AGENTS.md` is the single source read by Claude Code, Cursor, and Copilot.\n */\nexport function buildAgentConfigFiles(): AgentConfigFile[] {\n return [\n {\n content: `# AI Agent\\n\\nFor any Payload-related work, reference the skill at \\`${SKILL_PATH}/SKILL.md\\`.\\n`,\n fileName: 'AGENTS.md',\n },\n ]\n}\n"],"names":["SKILL_PATH","buildAgentConfigFiles","content","fileName"],"mappings":"AAAA,sEAAsE,GACtE,MAAMA,aAAa;AAOnB;;;;CAIC,GACD,OAAO,SAASC;IACd,OAAO;QACL;YACEC,SAAS,CAAC,qEAAqE,EAAEF,WAAW,cAAc,CAAC;YAC3GG,UAAU;QACZ;KACD;AACH"}
|
|
@@ -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;
|
|
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;AA+GpB,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,CA4Gf;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"}
|
|
@@ -14,6 +14,7 @@ import { ensurePnpmBuildApprovals } from './configure-pnpm-builds.js';
|
|
|
14
14
|
import { downloadExample } from './download-example.js';
|
|
15
15
|
import { downloadTemplate } from './download-template.js';
|
|
16
16
|
import { generateSecret } from './generate-secret.js';
|
|
17
|
+
import { getInstallCommand, getRunCommand } from './get-package-manager.js';
|
|
17
18
|
import { manageEnvFiles } from './manage-env-files.js';
|
|
18
19
|
const filename = fileURLToPath(import.meta.url);
|
|
19
20
|
const dirname = path.dirname(filename);
|
|
@@ -28,14 +29,7 @@ async function installDeps(args) {
|
|
|
28
29
|
if (cliArgs['--no-deps']) {
|
|
29
30
|
return true;
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
if (packageManager === 'yarn') {
|
|
33
|
-
installCmd = 'yarn';
|
|
34
|
-
} else if (packageManager === 'pnpm') {
|
|
35
|
-
installCmd = 'pnpm install';
|
|
36
|
-
} else if (packageManager === 'bun') {
|
|
37
|
-
installCmd = 'bun install';
|
|
38
|
-
}
|
|
32
|
+
const installCmd = getInstallCommand(packageManager);
|
|
39
33
|
await ensurePnpmBuildApprovals({
|
|
40
34
|
packageManager,
|
|
41
35
|
projectDir
|
|
@@ -50,6 +44,50 @@ async function installDeps(args) {
|
|
|
50
44
|
return false;
|
|
51
45
|
}
|
|
52
46
|
}
|
|
47
|
+
async function runPayloadCommand(args) {
|
|
48
|
+
const { command, packageManager, projectDir } = args;
|
|
49
|
+
try {
|
|
50
|
+
await execa.command(`${getRunCommand(packageManager)} ${command}`, {
|
|
51
|
+
cwd: path.resolve(projectDir)
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
ok: true
|
|
55
|
+
};
|
|
56
|
+
} catch (err) {
|
|
57
|
+
return {
|
|
58
|
+
error: err instanceof Error ? err.message : String(err),
|
|
59
|
+
ok: false
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** Non-fatal: on failure, warn with the command to run later. */ async function runPayloadGenerate(args) {
|
|
64
|
+
const { artifact, command, packageManager, projectDir, spinner } = args;
|
|
65
|
+
spinner.start(`Generating ${artifact}...`);
|
|
66
|
+
const result = await runPayloadCommand({
|
|
67
|
+
command,
|
|
68
|
+
packageManager,
|
|
69
|
+
projectDir
|
|
70
|
+
});
|
|
71
|
+
const capitalized = artifact.charAt(0).toUpperCase() + artifact.slice(1);
|
|
72
|
+
if (result.ok) {
|
|
73
|
+
spinner.stop(`${capitalized} generated`);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
spinner.stop(`Could not generate ${artifact}`, 1);
|
|
77
|
+
warning(`Run '${getRunCommand(packageManager)} ${command}' later. ${result.error}`);
|
|
78
|
+
}
|
|
79
|
+
async function runProjectCodegen(args) {
|
|
80
|
+
await runPayloadGenerate({
|
|
81
|
+
...args,
|
|
82
|
+
artifact: 'import map',
|
|
83
|
+
command: 'generate:importmap'
|
|
84
|
+
});
|
|
85
|
+
await runPayloadGenerate({
|
|
86
|
+
...args,
|
|
87
|
+
artifact: 'types',
|
|
88
|
+
command: 'generate:types'
|
|
89
|
+
});
|
|
90
|
+
}
|
|
53
91
|
export async function createProject(args) {
|
|
54
92
|
const { cliArgs, dbDetails, packageManager, projectDir, projectName } = args;
|
|
55
93
|
if (cliArgs['--dry-run']) {
|
|
@@ -140,6 +178,11 @@ export async function createProject(args) {
|
|
|
140
178
|
});
|
|
141
179
|
if (result) {
|
|
142
180
|
spinner.stop('Successfully installed Payload and dependencies');
|
|
181
|
+
await runProjectCodegen({
|
|
182
|
+
packageManager,
|
|
183
|
+
projectDir,
|
|
184
|
+
spinner
|
|
185
|
+
});
|
|
143
186
|
} else {
|
|
144
187
|
spinner.stop('Error installing dependencies', 1);
|
|
145
188
|
}
|
|
@@ -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 {\n DEFAULT_PAYLOAD_VERSION_TAG,\n resolvePackageVersion,\n} from '../utils/resolvePackageVersion.js'\nimport { buildAgentConfigFiles } from './agent-config.js'\nimport { configurePayloadConfig } from './configure-payload-config.js'\nimport { configurePluginProject } from './configure-plugin-project.js'\nimport { ensurePnpmBuildApprovals } from './configure-pnpm-builds.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 await ensurePnpmBuildApprovals({ packageManager, projectDir })\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 versionOrTag = cliArgs['--payload-version'] ?? DEFAULT_PAYLOAD_VERSION_TAG\n\n const spinner = p.spinner()\n spinner.start(`Resolving Payload version (${versionOrTag})...`)\n\n const payloadVersion = await resolvePackageVersion({\n packageName: 'payload',\n versionOrTag,\n })\n\n spinner.stop(`Using Payload version ${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 if (!cliArgs['--no-agent']) {\n for (const { content, fileName } of buildAgentConfigFiles()) {\n await fse.writeFile(path.resolve(projectDir, fileName), content)\n }\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"],"names":["p","chalk","execa","fse","fileURLToPath","path","tryInitRepoAndCommit","debug","error","info","warning","DEFAULT_PAYLOAD_VERSION_TAG","resolvePackageVersion","buildAgentConfigFiles","configurePayloadConfig","configurePluginProject","ensurePnpmBuildApprovals","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","versionOrTag","spinner","start","payloadVersion","packageName","stop","updatePackageJSON","latestVersion","type","projectDirPath","dbType","projectDirOrConfigPath","databaseType","databaseUri","dbUri","payloadSecret","undefined","content","fileName","writeFile","result","packageJsonPath","packageObj","readJson","name","updatePackageJSONDependencies","packageJson","writeJson","spaces","updatedDependencies","Object","entries","dependencies","reduce","acc","key","value","startsWith"],"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 {\n DEFAULT_PAYLOAD_VERSION_TAG,\n resolvePackageVersion,\n} from '../utils/resolvePackageVersion.js'\nimport { buildAgentConfigFiles } from './agent-config.js'\nimport { configurePayloadConfig } from './configure-payload-config.js'\nimport { configurePluginProject } from './configure-plugin-project.js'\nimport { ensurePnpmBuildApprovals } from './configure-pnpm-builds.js'\nimport { downloadExample } from './download-example.js'\nimport { downloadTemplate } from './download-template.js'\nimport { generateSecret } from './generate-secret.js'\nimport { getInstallCommand, getRunCommand } from './get-package-manager.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 const installCmd = getInstallCommand(packageManager)\n\n await ensurePnpmBuildApprovals({ packageManager, projectDir })\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 PayloadGenerateResult = { error: string; ok: false } | { ok: true }\n\nasync function runPayloadCommand(args: {\n command: string\n packageManager: PackageManager\n projectDir: string\n}): Promise<PayloadGenerateResult> {\n const { command, packageManager, projectDir } = args\n\n try {\n await execa.command(`${getRunCommand(packageManager)} ${command}`, {\n cwd: path.resolve(projectDir),\n })\n return { ok: true }\n } catch (err: unknown) {\n return { error: err instanceof Error ? err.message : String(err), ok: false }\n }\n}\n\n/** Non-fatal: on failure, warn with the command to run later. */\nasync function runPayloadGenerate(args: {\n artifact: string\n command: string\n packageManager: PackageManager\n projectDir: string\n spinner: ReturnType<typeof p.spinner>\n}): Promise<void> {\n const { artifact, command, packageManager, projectDir, spinner } = args\n\n spinner.start(`Generating ${artifact}...`)\n const result = await runPayloadCommand({ command, packageManager, projectDir })\n const capitalized = artifact.charAt(0).toUpperCase() + artifact.slice(1)\n\n if (result.ok) {\n spinner.stop(`${capitalized} generated`)\n return\n }\n\n spinner.stop(`Could not generate ${artifact}`, 1)\n warning(`Run '${getRunCommand(packageManager)} ${command}' later. ${result.error}`)\n}\n\nasync function runProjectCodegen(args: {\n packageManager: PackageManager\n projectDir: string\n spinner: ReturnType<typeof p.spinner>\n}): Promise<void> {\n await runPayloadGenerate({\n ...args,\n artifact: 'import map',\n command: 'generate:importmap',\n })\n await runPayloadGenerate({\n ...args,\n artifact: 'types',\n command: 'generate:types',\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 versionOrTag = cliArgs['--payload-version'] ?? DEFAULT_PAYLOAD_VERSION_TAG\n\n const spinner = p.spinner()\n spinner.start(`Resolving Payload version (${versionOrTag})...`)\n\n const payloadVersion = await resolvePackageVersion({\n packageName: 'payload',\n versionOrTag,\n })\n\n spinner.stop(`Using Payload version ${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 if (!cliArgs['--no-agent']) {\n for (const { content, fileName } of buildAgentConfigFiles()) {\n await fse.writeFile(path.resolve(projectDir, fileName), content)\n }\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\n await runProjectCodegen({ packageManager, projectDir, spinner })\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"],"names":["p","chalk","execa","fse","fileURLToPath","path","tryInitRepoAndCommit","debug","error","info","warning","DEFAULT_PAYLOAD_VERSION_TAG","resolvePackageVersion","buildAgentConfigFiles","configurePayloadConfig","configurePluginProject","ensurePnpmBuildApprovals","downloadExample","downloadTemplate","generateSecret","getInstallCommand","getRunCommand","manageEnvFiles","filename","url","dirname","createOrFindProjectDir","projectDir","pathExists","mkdir","installDeps","args","cliArgs","packageManager","installCmd","command","cwd","resolve","err","Error","message","runPayloadCommand","ok","String","runPayloadGenerate","artifact","spinner","start","result","capitalized","charAt","toUpperCase","slice","stop","runProjectCodegen","createProject","dbDetails","projectName","green","localExample","copy","localTemplate","template","split","example","versionOrTag","payloadVersion","packageName","updatePackageJSON","latestVersion","type","projectDirPath","dbType","projectDirOrConfigPath","databaseType","databaseUri","dbUri","payloadSecret","undefined","content","fileName","writeFile","packageJsonPath","packageObj","readJson","name","updatePackageJSONDependencies","packageJson","writeJson","spaces","updatedDependencies","Object","entries","dependencies","reduce","acc","key","value","startsWith"],"mappings":"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"}
|
|
@@ -3,4 +3,13 @@ export declare function getPackageManager(args: {
|
|
|
3
3
|
cliArgs?: CliArgs;
|
|
4
4
|
projectDir: string;
|
|
5
5
|
}): Promise<PackageManager>;
|
|
6
|
+
/**
|
|
7
|
+
* The command that installs every dependency listed in package.json.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getInstallCommand(packageManager: PackageManager): string;
|
|
10
|
+
/**
|
|
11
|
+
* The prefix that runs a package.json script. npm needs `npm run <script>`, while
|
|
12
|
+
* pnpm, yarn, and bun run scripts directly.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getRunCommand(packageManager: PackageManager): string;
|
|
6
15
|
//# sourceMappingURL=get-package-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-package-manager.d.ts","sourceRoot":"","sources":["../../src/lib/get-package-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE1D,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,cAAc,CAAC,CA0B1B"}
|
|
1
|
+
{"version":3,"file":"get-package-manager.d.ts","sourceRoot":"","sources":["../../src/lib/get-package-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE1D,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,cAAc,CAAC,CA0B1B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAWxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAEpE"}
|
|
@@ -25,6 +25,26 @@ export async function getPackageManager(args) {
|
|
|
25
25
|
return 'npm';
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* The command that installs every dependency listed in package.json.
|
|
30
|
+
*/ export function getInstallCommand(packageManager) {
|
|
31
|
+
if (packageManager === 'yarn') {
|
|
32
|
+
return 'yarn';
|
|
33
|
+
}
|
|
34
|
+
if (packageManager === 'pnpm') {
|
|
35
|
+
return 'pnpm install';
|
|
36
|
+
}
|
|
37
|
+
if (packageManager === 'bun') {
|
|
38
|
+
return 'bun install';
|
|
39
|
+
}
|
|
40
|
+
return 'npm install --legacy-peer-deps';
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The prefix that runs a package.json script. npm needs `npm run <script>`, while
|
|
44
|
+
* pnpm, yarn, and bun run scripts directly.
|
|
45
|
+
*/ export function getRunCommand(packageManager) {
|
|
46
|
+
return packageManager === 'npm' ? 'npm run' : packageManager;
|
|
47
|
+
}
|
|
28
48
|
function getEnvironmentPackageManager() {
|
|
29
49
|
const userAgent = process.env.npm_config_user_agent || '';
|
|
30
50
|
if (userAgent.startsWith('yarn')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/get-package-manager.ts"],"sourcesContent":["import execa from 'execa'\nimport fse from 'fs-extra'\n\nimport type { CliArgs, PackageManager } from '../types.js'\n\nexport async function getPackageManager(args: {\n cliArgs?: CliArgs\n projectDir: string\n}): Promise<PackageManager> {\n const { cliArgs, projectDir } = args\n\n try {\n // Check for flag or lockfile\n let detected: PackageManager = 'npm'\n if (cliArgs?.['--use-pnpm'] || fse.existsSync(`${projectDir}/pnpm-lock.yaml`)) {\n detected = 'pnpm'\n } else if (cliArgs?.['--use-yarn'] || fse.existsSync(`${projectDir}/yarn.lock`)) {\n detected = 'yarn'\n } else if (cliArgs?.['--use-npm'] || fse.existsSync(`${projectDir}/package-lock.json`)) {\n detected = 'npm'\n } else if (cliArgs?.['--use-bun'] || fse.existsSync(`${projectDir}/bun.lockb`)) {\n detected = 'bun'\n } else if (await commandExists('pnpm')) {\n // Prefer pnpm if it's installed\n detected = 'pnpm'\n } else {\n // Otherwise check the execution environment\n detected = getEnvironmentPackageManager()\n }\n\n return detected\n } catch (ignore) {\n return 'npm'\n }\n}\n\nfunction getEnvironmentPackageManager(): PackageManager {\n const userAgent = process.env.npm_config_user_agent || ''\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn'\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm'\n }\n\n if (userAgent.startsWith('bun')) {\n return 'bun'\n }\n\n return 'npm'\n}\n\nasync function commandExists(command: string): Promise<boolean> {\n try {\n await execa.command(process.platform === 'win32' ? `where ${command}` : `command -v ${command}`)\n return true\n } catch {\n return false\n }\n}\n"],"names":["execa","fse","getPackageManager","args","cliArgs","projectDir","detected","existsSync","commandExists","getEnvironmentPackageManager","ignore","userAgent","process","env","npm_config_user_agent","startsWith","command","platform"],"mappings":"AAAA,OAAOA,WAAW,QAAO;AACzB,OAAOC,SAAS,WAAU;AAI1B,OAAO,eAAeC,kBAAkBC,IAGvC;IACC,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAE,GAAGF;IAEhC,IAAI;QACF,6BAA6B;QAC7B,IAAIG,WAA2B;QAC/B,IAAIF,SAAS,CAAC,aAAa,IAAIH,IAAIM,UAAU,CAAC,GAAGF,WAAW,eAAe,CAAC,GAAG;YAC7EC,WAAW;QACb,OAAO,IAAIF,SAAS,CAAC,aAAa,IAAIH,IAAIM,UAAU,CAAC,GAAGF,WAAW,UAAU,CAAC,GAAG;YAC/EC,WAAW;QACb,OAAO,IAAIF,SAAS,CAAC,YAAY,IAAIH,IAAIM,UAAU,CAAC,GAAGF,WAAW,kBAAkB,CAAC,GAAG;YACtFC,WAAW;QACb,OAAO,IAAIF,SAAS,CAAC,YAAY,IAAIH,IAAIM,UAAU,CAAC,GAAGF,WAAW,UAAU,CAAC,GAAG;YAC9EC,WAAW;QACb,OAAO,IAAI,MAAME,cAAc,SAAS;YACtC,gCAAgC;YAChCF,WAAW;QACb,OAAO;YACL,4CAA4C;YAC5CA,WAAWG;QACb;QAEA,OAAOH;IACT,EAAE,OAAOI,QAAQ;QACf,OAAO;IACT;AACF;AAEA,
|
|
1
|
+
{"version":3,"sources":["../../src/lib/get-package-manager.ts"],"sourcesContent":["import execa from 'execa'\nimport fse from 'fs-extra'\n\nimport type { CliArgs, PackageManager } from '../types.js'\n\nexport async function getPackageManager(args: {\n cliArgs?: CliArgs\n projectDir: string\n}): Promise<PackageManager> {\n const { cliArgs, projectDir } = args\n\n try {\n // Check for flag or lockfile\n let detected: PackageManager = 'npm'\n if (cliArgs?.['--use-pnpm'] || fse.existsSync(`${projectDir}/pnpm-lock.yaml`)) {\n detected = 'pnpm'\n } else if (cliArgs?.['--use-yarn'] || fse.existsSync(`${projectDir}/yarn.lock`)) {\n detected = 'yarn'\n } else if (cliArgs?.['--use-npm'] || fse.existsSync(`${projectDir}/package-lock.json`)) {\n detected = 'npm'\n } else if (cliArgs?.['--use-bun'] || fse.existsSync(`${projectDir}/bun.lockb`)) {\n detected = 'bun'\n } else if (await commandExists('pnpm')) {\n // Prefer pnpm if it's installed\n detected = 'pnpm'\n } else {\n // Otherwise check the execution environment\n detected = getEnvironmentPackageManager()\n }\n\n return detected\n } catch (ignore) {\n return 'npm'\n }\n}\n\n/**\n * The command that installs every dependency listed in package.json.\n */\nexport function getInstallCommand(packageManager: PackageManager): string {\n if (packageManager === 'yarn') {\n return 'yarn'\n }\n if (packageManager === 'pnpm') {\n return 'pnpm install'\n }\n if (packageManager === 'bun') {\n return 'bun install'\n }\n return 'npm install --legacy-peer-deps'\n}\n\n/**\n * The prefix that runs a package.json script. npm needs `npm run <script>`, while\n * pnpm, yarn, and bun run scripts directly.\n */\nexport function getRunCommand(packageManager: PackageManager): string {\n return packageManager === 'npm' ? 'npm run' : packageManager\n}\n\nfunction getEnvironmentPackageManager(): PackageManager {\n const userAgent = process.env.npm_config_user_agent || ''\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn'\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm'\n }\n\n if (userAgent.startsWith('bun')) {\n return 'bun'\n }\n\n return 'npm'\n}\n\nasync function commandExists(command: string): Promise<boolean> {\n try {\n await execa.command(process.platform === 'win32' ? `where ${command}` : `command -v ${command}`)\n return true\n } catch {\n return false\n }\n}\n"],"names":["execa","fse","getPackageManager","args","cliArgs","projectDir","detected","existsSync","commandExists","getEnvironmentPackageManager","ignore","getInstallCommand","packageManager","getRunCommand","userAgent","process","env","npm_config_user_agent","startsWith","command","platform"],"mappings":"AAAA,OAAOA,WAAW,QAAO;AACzB,OAAOC,SAAS,WAAU;AAI1B,OAAO,eAAeC,kBAAkBC,IAGvC;IACC,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAE,GAAGF;IAEhC,IAAI;QACF,6BAA6B;QAC7B,IAAIG,WAA2B;QAC/B,IAAIF,SAAS,CAAC,aAAa,IAAIH,IAAIM,UAAU,CAAC,GAAGF,WAAW,eAAe,CAAC,GAAG;YAC7EC,WAAW;QACb,OAAO,IAAIF,SAAS,CAAC,aAAa,IAAIH,IAAIM,UAAU,CAAC,GAAGF,WAAW,UAAU,CAAC,GAAG;YAC/EC,WAAW;QACb,OAAO,IAAIF,SAAS,CAAC,YAAY,IAAIH,IAAIM,UAAU,CAAC,GAAGF,WAAW,kBAAkB,CAAC,GAAG;YACtFC,WAAW;QACb,OAAO,IAAIF,SAAS,CAAC,YAAY,IAAIH,IAAIM,UAAU,CAAC,GAAGF,WAAW,UAAU,CAAC,GAAG;YAC9EC,WAAW;QACb,OAAO,IAAI,MAAME,cAAc,SAAS;YACtC,gCAAgC;YAChCF,WAAW;QACb,OAAO;YACL,4CAA4C;YAC5CA,WAAWG;QACb;QAEA,OAAOH;IACT,EAAE,OAAOI,QAAQ;QACf,OAAO;IACT;AACF;AAEA;;CAEC,GACD,OAAO,SAASC,kBAAkBC,cAA8B;IAC9D,IAAIA,mBAAmB,QAAQ;QAC7B,OAAO;IACT;IACA,IAAIA,mBAAmB,QAAQ;QAC7B,OAAO;IACT;IACA,IAAIA,mBAAmB,OAAO;QAC5B,OAAO;IACT;IACA,OAAO;AACT;AAEA;;;CAGC,GACD,OAAO,SAASC,cAAcD,cAA8B;IAC1D,OAAOA,mBAAmB,QAAQ,YAAYA;AAChD;AAEA,SAASH;IACP,MAAMK,YAAYC,QAAQC,GAAG,CAACC,qBAAqB,IAAI;IAEvD,IAAIH,UAAUI,UAAU,CAAC,SAAS;QAChC,OAAO;IACT;IAEA,IAAIJ,UAAUI,UAAU,CAAC,SAAS;QAChC,OAAO;IACT;IAEA,IAAIJ,UAAUI,UAAU,CAAC,QAAQ;QAC/B,OAAO;IACT;IAEA,OAAO;AACT;AAEA,eAAeV,cAAcW,OAAe;IAC1C,IAAI;QACF,MAAMnB,MAAMmB,OAAO,CAACJ,QAAQK,QAAQ,KAAK,UAAU,CAAC,MAAM,EAAED,SAAS,GAAG,CAAC,WAAW,EAAEA,SAAS;QAC/F,OAAO;IACT,EAAE,OAAM;QACN,OAAO;IACT;AACF"}
|
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,EACV,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,YAAY,CAAA;AAiCnB,qBAAa,IAAI;IACf,IAAI,EAAE,OAAO,CAAA;IAEb,
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,YAAY,CAAA;AAiCnB,qBAAa,IAAI;IACf,IAAI,EAAE,OAAO,CAAA;IAEb,cA8CC;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAwS1B;CACF;AAED,KAAK,YAAY,GACb;IAAE,UAAU,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,UAAU,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD,wBAAgB,mBAAmB,CAAC,EAClC,cAAc,EACd,iBAAiB,GAClB,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,iBAAiB,EAAE,uBAAuB,CAAA;CAC3C,GAAG,YAAY,CAkBf"}
|
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 {\n CliArgs,\n NextAppDetails,\n TanStackAppDetails,\n TanStackDetectionResult,\n} 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 { initTanStack } from './lib/init-tanstack.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 { getTanStackAppDetails } from './lib/tanstack/detect.js'\nimport { getValidTemplates, validateTemplate } from './lib/templates.js'\nimport {\n updatePayloadInNextProject,\n updatePayloadInTanStackProject,\n} 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 successfulTanStackInit,\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 '-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 const tanStackDetection = await getTanStackAppDetails({ projectDir: process.cwd() })\n const nextAppDetails = await getNextAppDetails(process.cwd())\n const appFramework = resolveAppFramework({ nextAppDetails, tanStackDetection })\n\n if (appFramework.kind === 'ambiguous') {\n p.log.warn(\n 'Both Next.js and TanStack project markers were detected. Remove one framework before installing Payload.',\n )\n p.outro(feedbackOutro())\n return\n }\n\n if (appFramework.kind === 'unsupported-tanstack') {\n p.log.warn(appFramework.reason)\n p.outro(feedbackOutro())\n return\n }\n\n if (appFramework.kind === 'next' && !appFramework.appDetails.isSupportedNextVersion) {\n p.log.warn(\n `Next.js v${appFramework.appDetails.nextVersion} is unsupported. Next.js >= 15 is required to use Payload.`,\n )\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n const hasPayload = appFramework.kind !== 'none' && appFramework.appDetails.isPayloadInstalled\n\n if (hasPayload) {\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 versionOrTag = this.args['--payload-version'] ?? DEFAULT_PAYLOAD_VERSION_TAG\n const updateResult =\n appFramework.kind === 'next'\n ? await updatePayloadInNextProject({\n appDetails: appFramework.appDetails,\n versionOrTag,\n })\n : await updatePayloadInTanStackProject({\n appDetails: appFramework.appDetails,\n versionOrTag,\n })\n\n const { message, success: updateSuccess } = updateResult\n if (updateSuccess) {\n info(message)\n } else {\n error(message)\n }\n }\n\n p.outro(feedbackOutro())\n return\n }\n\n if (appFramework.kind === 'next') {\n this.args['--name'] = slugify(\n path.basename(path.dirname(appFramework.appDetails.nextConfigPath!)),\n )\n } else if (appFramework.kind === 'tanstack') {\n this.args['--name'] = slugify(path.basename(appFramework.appDetails.projectDir))\n }\n\n const projectName = await parseProjectName(this.args)\n let projectDir: string\n if (appFramework.kind === 'next') {\n projectDir = path.dirname(appFramework.appDetails.nextConfigPath!)\n } else if (appFramework.kind === 'tanstack') {\n projectDir = appFramework.appDetails.projectDir\n } else {\n projectDir = path.resolve(process.cwd(), slugify(projectName))\n }\n\n const packageManager = await getPackageManager({ cliArgs: this.args, projectDir })\n\n if (appFramework.kind === 'next') {\n const { hasTopLevelLayout, nextAppDir } = appFramework.appDetails\n\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: appFramework.appDetails,\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 if (appFramework.kind === 'tanstack') {\n const frameworkName =\n appFramework.appDetails.kind === 'start' ? 'TanStack Start' : 'TanStack Router'\n p.log.step(chalk.bold(`${chalk.bgBlack(` ${frameworkName} `)} project detected!`))\n\n const proceed = await p.confirm({\n initialValue: true,\n message: chalk.bold(\n appFramework.appDetails.kind === 'start'\n ? 'Install Payload in this TanStack Start project?'\n : 'Convert this project to TanStack Start and install Payload?',\n ),\n })\n if (p.isCancel(proceed) || !proceed) {\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n const dbDetails = await selectDb(this.args, projectName)\n const result = await initTanStack({\n ...this.args,\n appDetails: appFramework.appDetails,\n dbType: dbDetails.type,\n packageManager,\n projectDir,\n })\n\n if (result.success === false) {\n p.log.error(result.reason)\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(successfulTanStackInit(), chalk.bgGreen(chalk.black(' TanStack Start initialized ')))\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, template)\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\ntype AppFramework =\n | { appDetails: NextAppDetails; kind: 'next' }\n | { appDetails: TanStackAppDetails; kind: 'tanstack' }\n | { kind: 'ambiguous' }\n | { kind: 'none' }\n | { kind: 'unsupported-tanstack'; reason: string }\n\nexport function resolveAppFramework({\n nextAppDetails,\n tanStackDetection,\n}: {\n nextAppDetails: NextAppDetails\n tanStackDetection: TanStackDetectionResult\n}): AppFramework {\n if (nextAppDetails.nextConfigPath && tanStackDetection.detected) {\n return { kind: 'ambiguous' }\n }\n\n if (nextAppDetails.nextConfigPath) {\n return { appDetails: nextAppDetails, kind: 'next' }\n }\n\n if (!tanStackDetection.detected) {\n return { kind: 'none' }\n }\n\n if (!tanStackDetection.compatible) {\n return { kind: 'unsupported-tanstack', reason: tanStackDetection.reason }\n }\n\n return { appDetails: tanStackDetection.details, kind: 'tanstack' }\n}\n"],"names":["p","slugify","arg","chalk","figures","path","configurePayloadConfig","createProject","parseExample","generateSecret","getPackageManager","getNextAppDetails","initNext","initTanStack","manageEnvFiles","parseProjectName","parseTemplate","selectDb","getTanStackAppDetails","getValidTemplates","validateTemplate","updatePayloadInNextProject","updatePayloadInTanStackProject","debug","error","info","feedbackOutro","helpMessage","moveMessage","successfulNextInit","successfulTanStackInit","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","tanStackDetection","projectDir","cwd","nextAppDetails","appFramework","resolveAppFramework","kind","warn","outro","reason","appDetails","isSupportedNextVersion","nextVersion","hasPayload","isPayloadInstalled","shouldUpdate","confirm","initialValue","message","bold","isCancel","updateResult","success","updateSuccess","basename","dirname","nextConfigPath","projectName","resolve","packageManager","cliArgs","hasTopLevelLayout","nextAppDir","step","bgBlack","triangleUp","proceed","green","dbDetails","result","dbType","type","projectDirOrConfigPath","payloadConfigPath","databaseType","databaseUri","dbUri","payloadSecret","bgGreen","frameworkName","templateArg","valid","templateName","exampleArg","example","name","branch","validTemplates","template","err","Error","detected","compatible","details"],"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 {\n CliArgs,\n NextAppDetails,\n TanStackAppDetails,\n TanStackDetectionResult,\n} 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 { initTanStack } from './lib/init-tanstack.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 { getTanStackAppDetails } from './lib/tanstack/detect.js'\nimport { getValidTemplates, validateTemplate } from './lib/templates.js'\nimport {\n updatePayloadInNextProject,\n updatePayloadInTanStackProject,\n} 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 successfulTanStackInit,\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 '--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 '-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 const tanStackDetection = await getTanStackAppDetails({ projectDir: process.cwd() })\n const nextAppDetails = await getNextAppDetails(process.cwd())\n const appFramework = resolveAppFramework({ nextAppDetails, tanStackDetection })\n\n if (appFramework.kind === 'ambiguous') {\n p.log.warn(\n 'Both Next.js and TanStack project markers were detected. Remove one framework before installing Payload.',\n )\n p.outro(feedbackOutro())\n return\n }\n\n if (appFramework.kind === 'unsupported-tanstack') {\n p.log.warn(appFramework.reason)\n p.outro(feedbackOutro())\n return\n }\n\n if (appFramework.kind === 'next' && !appFramework.appDetails.isSupportedNextVersion) {\n p.log.warn(\n `Next.js v${appFramework.appDetails.nextVersion} is unsupported. Next.js >= 15 is required to use Payload.`,\n )\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n const hasPayload = appFramework.kind !== 'none' && appFramework.appDetails.isPayloadInstalled\n\n if (hasPayload) {\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 versionOrTag = this.args['--payload-version'] ?? DEFAULT_PAYLOAD_VERSION_TAG\n const updateResult =\n appFramework.kind === 'next'\n ? await updatePayloadInNextProject({\n appDetails: appFramework.appDetails,\n versionOrTag,\n })\n : await updatePayloadInTanStackProject({\n appDetails: appFramework.appDetails,\n versionOrTag,\n })\n\n const { message, success: updateSuccess } = updateResult\n if (updateSuccess) {\n info(message)\n } else {\n error(message)\n }\n }\n\n p.outro(feedbackOutro())\n return\n }\n\n if (appFramework.kind === 'next') {\n this.args['--name'] = slugify(\n path.basename(path.dirname(appFramework.appDetails.nextConfigPath!)),\n )\n } else if (appFramework.kind === 'tanstack') {\n this.args['--name'] = slugify(path.basename(appFramework.appDetails.projectDir))\n }\n\n const projectName = await parseProjectName(this.args)\n let projectDir: string\n if (appFramework.kind === 'next') {\n projectDir = path.dirname(appFramework.appDetails.nextConfigPath!)\n } else if (appFramework.kind === 'tanstack') {\n projectDir = appFramework.appDetails.projectDir\n } else {\n projectDir = path.resolve(process.cwd(), slugify(projectName))\n }\n\n const packageManager = await getPackageManager({ cliArgs: this.args, projectDir })\n\n if (appFramework.kind === 'next') {\n const { hasTopLevelLayout, nextAppDir } = appFramework.appDetails\n\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: appFramework.appDetails,\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 if (appFramework.kind === 'tanstack') {\n const frameworkName =\n appFramework.appDetails.kind === 'start' ? 'TanStack Start' : 'TanStack Router'\n p.log.step(chalk.bold(`${chalk.bgBlack(` ${frameworkName} `)} project detected!`))\n\n const proceed = await p.confirm({\n initialValue: true,\n message: chalk.bold(\n appFramework.appDetails.kind === 'start'\n ? 'Install Payload in this TanStack Start project?'\n : 'Convert this project to TanStack Start and install Payload?',\n ),\n })\n if (p.isCancel(proceed) || !proceed) {\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n const dbDetails = await selectDb(this.args, projectName)\n const result = await initTanStack({\n ...this.args,\n appDetails: appFramework.appDetails,\n dbType: dbDetails.type,\n packageManager,\n projectDir,\n })\n\n if (result.success === false) {\n p.log.error(result.reason)\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(successfulTanStackInit(), chalk.bgGreen(chalk.black(' TanStack Start initialized ')))\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, template)\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\ntype AppFramework =\n | { appDetails: NextAppDetails; kind: 'next' }\n | { appDetails: TanStackAppDetails; kind: 'tanstack' }\n | { kind: 'ambiguous' }\n | { kind: 'none' }\n | { kind: 'unsupported-tanstack'; reason: string }\n\nexport function resolveAppFramework({\n nextAppDetails,\n tanStackDetection,\n}: {\n nextAppDetails: NextAppDetails\n tanStackDetection: TanStackDetectionResult\n}): AppFramework {\n if (nextAppDetails.nextConfigPath && tanStackDetection.detected) {\n return { kind: 'ambiguous' }\n }\n\n if (nextAppDetails.nextConfigPath) {\n return { appDetails: nextAppDetails, kind: 'next' }\n }\n\n if (!tanStackDetection.detected) {\n return { kind: 'none' }\n }\n\n if (!tanStackDetection.compatible) {\n return { kind: 'unsupported-tanstack', reason: tanStackDetection.reason }\n }\n\n return { appDetails: tanStackDetection.details, kind: 'tanstack' }\n}\n"],"names":["p","slugify","arg","chalk","figures","path","configurePayloadConfig","createProject","parseExample","generateSecret","getPackageManager","getNextAppDetails","initNext","initTanStack","manageEnvFiles","parseProjectName","parseTemplate","selectDb","getTanStackAppDetails","getValidTemplates","validateTemplate","updatePayloadInNextProject","updatePayloadInTanStackProject","debug","error","info","feedbackOutro","helpMessage","moveMessage","successfulNextInit","successfulTanStackInit","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","tanStackDetection","projectDir","cwd","nextAppDetails","appFramework","resolveAppFramework","kind","warn","outro","reason","appDetails","isSupportedNextVersion","nextVersion","hasPayload","isPayloadInstalled","shouldUpdate","confirm","initialValue","message","bold","isCancel","updateResult","success","updateSuccess","basename","dirname","nextConfigPath","projectName","resolve","packageManager","cliArgs","hasTopLevelLayout","nextAppDir","step","bgBlack","triangleUp","proceed","green","dbDetails","result","dbType","type","projectDirOrConfigPath","payloadConfigPath","databaseType","databaseUri","dbUri","payloadSecret","bgGreen","frameworkName","templateArg","valid","templateName","exampleArg","example","name","branch","validTemplates","template","err","Error","detected","compatible","details"],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ body {
|
|
|
28
28
|
margin: 0;
|
|
29
29
|
color: rgb(1000, 1000, 1000);
|
|
30
30
|
|
|
31
|
+
/* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
|
|
31
32
|
@media (max-width: 1024px) {
|
|
32
33
|
font-size: 15px;
|
|
33
34
|
line-height: 24px;
|
|
@@ -46,17 +47,20 @@ h1 {
|
|
|
46
47
|
line-height: 70px;
|
|
47
48
|
font-weight: bold;
|
|
48
49
|
|
|
50
|
+
/* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
|
|
49
51
|
@media (max-width: 1024px) {
|
|
50
52
|
margin: 24px 0;
|
|
51
53
|
font-size: 42px;
|
|
52
54
|
line-height: 42px;
|
|
53
55
|
}
|
|
54
56
|
|
|
57
|
+
/* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
|
|
55
58
|
@media (max-width: 768px) {
|
|
56
59
|
font-size: 38px;
|
|
57
60
|
line-height: 38px;
|
|
58
61
|
}
|
|
59
62
|
|
|
63
|
+
/* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
|
|
60
64
|
@media (max-width: 400px) {
|
|
61
65
|
font-size: 32px;
|
|
62
66
|
line-height: 32px;
|
|
@@ -66,6 +70,7 @@ h1 {
|
|
|
66
70
|
p {
|
|
67
71
|
margin: 24px 0;
|
|
68
72
|
|
|
73
|
+
/* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
|
|
69
74
|
@media (max-width: 1024px) {
|
|
70
75
|
margin: var(--spacer-3) 0;
|
|
71
76
|
}
|
|
@@ -100,6 +105,7 @@ svg {
|
|
|
100
105
|
margin: 0 auto;
|
|
101
106
|
overflow: hidden;
|
|
102
107
|
|
|
108
|
+
/* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
|
|
103
109
|
@media (max-width: 400px) {
|
|
104
110
|
padding: 24px;
|
|
105
111
|
}
|
|
@@ -145,6 +151,7 @@ svg {
|
|
|
145
151
|
align-items: center;
|
|
146
152
|
gap: 8px;
|
|
147
153
|
|
|
154
|
+
/* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
|
|
148
155
|
@media (max-width: 1024px) {
|
|
149
156
|
flex-direction: column;
|
|
150
157
|
gap: 6px;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
|
|
2
|
-
/* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */
|
|
1
|
+
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. MODIFY AT YOUR OWN RISK. */
|
|
3
2
|
import type { Metadata } from 'next'
|
|
4
3
|
|
|
5
4
|
import config from '@payload-config'
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
|
|
2
|
-
/* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */
|
|
1
|
+
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. MODIFY AT YOUR OWN RISK. */
|
|
3
2
|
import type { Metadata } from 'next'
|
|
4
3
|
|
|
5
4
|
import config from '@payload-config'
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
|
|
2
|
-
/* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */
|
|
1
|
+
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. MODIFY AT YOUR OWN RISK. */
|
|
3
2
|
import config from '@payload-config'
|
|
4
3
|
import '@payloadcms/next/css'
|
|
5
4
|
import {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
|
|
2
|
-
/* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */
|
|
1
|
+
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. MODIFY AT YOUR OWN RISK. */
|
|
3
2
|
import config from '@payload-config'
|
|
4
3
|
import { GRAPHQL_POST, REST_OPTIONS } from '@payloadcms/next/routes'
|
|
5
4
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
|
|
2
|
-
/* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */
|
|
1
|
+
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. MODIFY AT YOUR OWN RISK. */
|
|
3
2
|
import config from '@payload-config'
|
|
4
3
|
import '@payloadcms/next/css'
|
|
5
4
|
import { GRAPHQL_PLAYGROUND_GET } from '@payloadcms/next/routes'
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
|
|
2
|
-
/* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */
|
|
1
|
+
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. MODIFY AT YOUR OWN RISK. */
|
|
3
2
|
import config from '@payload-config'
|
|
4
3
|
import '@payloadcms/next/css'
|
|
5
4
|
import type { ServerFunctionClient } from 'payload'
|
package/dist/utils/messages.js
CHANGED
|
@@ -30,7 +30,7 @@ export function helpMessage() {
|
|
|
30
30
|
|
|
31
31
|
{dim Available templates: ${formatTemplates(validTemplates)}}
|
|
32
32
|
|
|
33
|
-
--no-agent Skip writing AGENTS.md
|
|
33
|
+
--no-agent Skip writing AGENTS.md
|
|
34
34
|
--use-npm Use npm to install dependencies
|
|
35
35
|
--use-yarn Use yarn to install dependencies
|
|
36
36
|
--use-pnpm Use pnpm to install dependencies
|
|
@@ -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 or TanStack 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 --no-agent Skip writing AGENTS.md
|
|
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 or TanStack 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 --no-agent Skip writing AGENTS.md\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 successfulFrameworkInit()\n}\n\nexport function successfulTanStackInit(): string {\n return successfulFrameworkInit()\n}\n\nfunction successfulFrameworkInit(): 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","successfulFrameworkInit","successfulTanStackInit","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;;;;;;;;;;AAUpE,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,OAAOC;AACT;AAEA,OAAO,SAASC;IACd,OAAOD;AACT;AAEA,SAASA;IACP,OAAO,CAAC,EAAE,EAAEF,mBACV,mBACA,+DACA;EACF,EAAEA,mBAAmB,iBAAiB,sDAAsD;AAC9F,CAAC;AACD;AAEA,OAAO,SAASI,YAAYC,IAAgD;IAC1E,MAAMC,iBAAiBlC,KAAKyB,QAAQ,CAACC,QAAQC,GAAG,IAAIM,KAAKE,UAAU;IACnE,OAAO,CAAC;AACV,EAAEhC,OAAO,eAAe;;;;AAIxB,EAAEJ,MAAMM,IAAI,CAAC,gBAAgB;;8BAEC,EAAE6B,eAAe,WAAW,EAAEA,eAAe,CAAC,EAAEnC,MAAMM,IAAI,CAAC,SAAS;wBAC1E,EAAE6B,eAAe;;;;;AAKzC,CAAC;AACD;AAEA,OAAO,SAASE;IACd,OAAO,GAAGrC,MAAMsC,MAAM,CAACtC,MAAMuC,KAAK,CAAC,qBAAqB,aAAa,EAAEV,mBAAmB,UAAU,yCAAyC,CAAC,CAAC;AACjJ;AAEA,8DAA8D;AAC9D,SAASA,mBAAmBW,IAAY,EAAEC,GAAW;IACnD,OAAOvC,aAAasC,MAAMC,KAAK;QAC7BC,UAAU,CAACF,MAAMC,MAAQ,GAAGD,KAAK,EAAE,EAAEC,KAAK;IAC5C;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-payload-app",
|
|
3
|
-
"version": "4.0.0-internal.
|
|
3
|
+
"version": "4.0.0-internal.cd47d20",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"fs-extra": "^9.0.1",
|
|
61
61
|
"globby": "11.1.0",
|
|
62
62
|
"prettier": "^3.5.0",
|
|
63
|
-
"tar": "^7.5.
|
|
63
|
+
"tar": "^7.5.22",
|
|
64
64
|
"terminal-link": "^2.1.1",
|
|
65
65
|
"ts-morph": "^21.0.1"
|
|
66
66
|
},
|