create-payload-app 3.91.0-internal.c1569dc → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +5 -0
  3. package/dist/commands.d.ts +4 -0
  4. package/dist/commands.d.ts.map +1 -0
  5. package/dist/commands.js +5 -0
  6. package/dist/commands.js.map +1 -0
  7. package/dist/lib/agent-config.d.ts +12 -0
  8. package/dist/lib/agent-config.d.ts.map +1 -0
  9. package/dist/lib/agent-config.js +15 -0
  10. package/dist/lib/agent-config.js.map +1 -0
  11. package/dist/lib/ast/adapter-config.d.ts.map +1 -1
  12. package/dist/lib/ast/adapter-config.js +0 -10
  13. package/dist/lib/ast/adapter-config.js.map +1 -1
  14. package/dist/lib/ast/package-json.d.ts +9 -0
  15. package/dist/lib/ast/package-json.d.ts.map +1 -1
  16. package/dist/lib/ast/package-json.js +34 -8
  17. package/dist/lib/ast/package-json.js.map +1 -1
  18. package/dist/lib/ast/payload-config.js +1 -1
  19. package/dist/lib/ast/payload-config.js.map +1 -1
  20. package/dist/lib/ast/types.d.ts +3 -3
  21. package/dist/lib/ast/types.d.ts.map +1 -1
  22. package/dist/lib/ast/types.js +0 -1
  23. package/dist/lib/ast/types.js.map +1 -1
  24. package/dist/lib/configure-payload-tsconfig.d.ts +5 -0
  25. package/dist/lib/configure-payload-tsconfig.d.ts.map +1 -0
  26. package/dist/lib/configure-payload-tsconfig.js +26 -0
  27. package/dist/lib/configure-payload-tsconfig.js.map +1 -0
  28. package/dist/lib/create-project.d.ts +1 -2
  29. package/dist/lib/create-project.d.ts.map +1 -1
  30. package/dist/lib/create-project.js +64 -79
  31. package/dist/lib/create-project.js.map +1 -1
  32. package/dist/lib/generate-secret.js +1 -1
  33. package/dist/lib/generate-secret.js.map +1 -1
  34. package/dist/lib/get-package-manager.d.ts +9 -0
  35. package/dist/lib/get-package-manager.d.ts.map +1 -1
  36. package/dist/lib/get-package-manager.js +20 -0
  37. package/dist/lib/get-package-manager.js.map +1 -1
  38. package/dist/lib/init-next.d.ts +6 -1
  39. package/dist/lib/init-next.d.ts.map +1 -1
  40. package/dist/lib/init-next.js +34 -41
  41. package/dist/lib/init-next.js.map +1 -1
  42. package/dist/lib/init-tanstack.d.ts +18 -0
  43. package/dist/lib/init-tanstack.d.ts.map +1 -0
  44. package/dist/lib/init-tanstack.js +149 -0
  45. package/dist/lib/init-tanstack.js.map +1 -0
  46. package/dist/lib/tanstack/detect.d.ts +5 -0
  47. package/dist/lib/tanstack/detect.d.ts.map +1 -0
  48. package/dist/lib/tanstack/detect.js +131 -0
  49. package/dist/lib/tanstack/detect.js.map +1 -0
  50. package/dist/lib/tanstack/prepare.d.ts +23 -0
  51. package/dist/lib/tanstack/prepare.d.ts.map +1 -0
  52. package/dist/lib/tanstack/prepare.js +114 -0
  53. package/dist/lib/tanstack/prepare.js.map +1 -0
  54. package/dist/lib/tanstack/template-files.d.ts +50 -0
  55. package/dist/lib/tanstack/template-files.d.ts.map +1 -0
  56. package/dist/lib/tanstack/template-files.js +64 -0
  57. package/dist/lib/tanstack/template-files.js.map +1 -0
  58. package/dist/lib/tanstack/transform-root-route.d.ts +7 -0
  59. package/dist/lib/tanstack/transform-root-route.d.ts.map +1 -0
  60. package/dist/lib/tanstack/transform-root-route.js +747 -0
  61. package/dist/lib/tanstack/transform-root-route.js.map +1 -0
  62. package/dist/lib/tanstack/transform-router.d.ts +5 -0
  63. package/dist/lib/tanstack/transform-router.d.ts.map +1 -0
  64. package/dist/lib/tanstack/transform-router.js +301 -0
  65. package/dist/lib/tanstack/transform-router.js.map +1 -0
  66. package/dist/lib/tanstack/transform-vite-config.d.ts +14 -0
  67. package/dist/lib/tanstack/transform-vite-config.d.ts.map +1 -0
  68. package/dist/lib/tanstack/transform-vite-config.js +576 -0
  69. package/dist/lib/tanstack/transform-vite-config.js.map +1 -0
  70. package/dist/lib/templates.d.ts.map +1 -1
  71. package/dist/lib/templates.js +11 -5
  72. package/dist/lib/templates.js.map +1 -1
  73. package/dist/lib/update-payload-in-project.d.ts +18 -3
  74. package/dist/lib/update-payload-in-project.d.ts.map +1 -1
  75. package/dist/lib/update-payload-in-project.js +102 -21
  76. package/dist/lib/update-payload-in-project.js.map +1 -1
  77. package/dist/lib/wrap-next-config.d.ts.map +1 -1
  78. package/dist/main.d.ts +20 -1
  79. package/dist/main.d.ts.map +1 -1
  80. package/dist/main.js +127 -36
  81. package/dist/main.js.map +1 -1
  82. package/dist/scripts/pack-template-files.js +18 -0
  83. package/dist/scripts/pack-template-files.js.map +1 -1
  84. package/dist/template/src/app/(frontend)/page.tsx +7 -4
  85. package/dist/template/src/app/(frontend)/styles.css +8 -1
  86. package/dist/template/src/app/(payload)/admin/[[...segments]]/not-found.tsx +1 -2
  87. package/dist/template/src/app/(payload)/admin/[[...segments]]/page.tsx +1 -2
  88. package/dist/template/src/app/(payload)/admin/importMap.js +30 -2
  89. package/dist/template/src/app/(payload)/api/[...slug]/route.ts +1 -2
  90. package/dist/template/src/app/(payload)/api/graphql/route.ts +1 -2
  91. package/dist/template/src/app/(payload)/api/graphql-playground/route.ts +1 -2
  92. package/dist/template/src/app/(payload)/custom.css +0 -0
  93. package/dist/template/src/app/(payload)/layout.tsx +9 -4
  94. package/dist/template/src/collections/Folders.ts +16 -0
  95. package/dist/template/src/collections/Media.ts +4 -0
  96. package/dist/template/src/collections/Tags.ts +16 -0
  97. package/dist/template/src/collections/Users.ts +1 -0
  98. package/dist/template/src/payload-types.ts +63 -9
  99. package/dist/template/src/payload.config.ts +14 -4
  100. package/dist/template-tanstack/routes/_payload/admin.$.tsx +25 -0
  101. package/dist/template-tanstack/routes/_payload/admin.index.tsx +25 -0
  102. package/dist/template-tanstack/routes/_payload/api.$.ts +11 -0
  103. package/dist/template-tanstack/routes/_payload/importMap.js +32 -0
  104. package/dist/template-tanstack/routes/_payload/server.functions.ts +50 -0
  105. package/dist/template-tanstack/routes/_payload.tsx +29 -0
  106. package/dist/template-tanstack/src/collections/Folders.ts +16 -0
  107. package/dist/template-tanstack/src/collections/Media.ts +20 -0
  108. package/dist/template-tanstack/src/collections/Tags.ts +16 -0
  109. package/dist/template-tanstack/src/collections/Users.ts +14 -0
  110. package/dist/template-tanstack/src/payload.config.ts +38 -0
  111. package/dist/types.d.ts +23 -4
  112. package/dist/types.d.ts.map +1 -1
  113. package/dist/types.js.map +1 -1
  114. package/dist/utils/messages.d.ts +1 -0
  115. package/dist/utils/messages.d.ts.map +1 -1
  116. package/dist/utils/messages.js +10 -6
  117. package/dist/utils/messages.js.map +1 -1
  118. package/dist/utils/resolvePackageVersion.d.ts +35 -0
  119. package/dist/utils/resolvePackageVersion.d.ts.map +1 -0
  120. package/dist/utils/resolvePackageVersion.js +62 -0
  121. package/dist/utils/resolvePackageVersion.js.map +1 -0
  122. package/package.json +8 -8
  123. package/dist/ast-integration.spec.js +0 -132
  124. package/dist/ast-integration.spec.js.map +0 -1
  125. package/dist/lib/ast/package-json.spec.js +0 -67
  126. package/dist/lib/ast/package-json.spec.js.map +0 -1
  127. package/dist/lib/ast/payload-config.spec.js +0 -365
  128. package/dist/lib/ast/payload-config.spec.js.map +0 -1
  129. package/dist/lib/ast/utils.spec.js +0 -226
  130. package/dist/lib/ast/utils.spec.js.map +0 -1
  131. package/dist/lib/create-project.spec.js +0 -190
  132. package/dist/lib/create-project.spec.js.map +0 -1
  133. package/dist/lib/download-skill.d.ts +0 -8
  134. package/dist/lib/download-skill.d.ts.map +0 -1
  135. package/dist/lib/download-skill.js +0 -35
  136. package/dist/lib/download-skill.js.map +0 -1
  137. package/dist/lib/manage-env-files.spec.js +0 -118
  138. package/dist/lib/manage-env-files.spec.js.map +0 -1
  139. package/dist/lib/select-agent.d.ts +0 -16
  140. package/dist/lib/select-agent.d.ts.map +0 -1
  141. package/dist/lib/select-agent.js +0 -67
  142. package/dist/lib/select-agent.js.map +0 -1
  143. package/dist/lib/wrap-next-config.spec.js +0 -167
  144. package/dist/lib/wrap-next-config.spec.js.map +0 -1
  145. package/dist/utils/getLatestPackageVersion.d.ts +0 -17
  146. package/dist/utils/getLatestPackageVersion.d.ts.map +0 -1
  147. package/dist/utils/getLatestPackageVersion.js +0 -20
  148. package/dist/utils/getLatestPackageVersion.js.map +0 -1
  149. /package/dist/{template/src/app/(payload)/custom.scss → template-tanstack/routes/_payload/custom.css} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/manage-env-files.spec.ts"],"sourcesContent":["import fs from 'fs'\nimport fse from 'fs-extra'\nimport * as os from 'node:os'\nimport path from 'path'\nimport { afterEach, beforeAll, beforeEach, describe, expect, it, vitest } from 'vitest'\n\nimport type { CliArgs } from '../types.js'\n\nimport { manageEnvFiles } from './manage-env-files.js'\n\ndescribe('createProject', () => {\n let projectDir: string\n let envFilePath = ''\n let envExampleFilePath = ''\n\n beforeAll(() => {\n // eslint-disable-next-line no-console\n console.log = vitest.fn()\n })\n\n beforeEach(() => {\n const tempDirectory = fs.realpathSync(os.tmpdir())\n projectDir = `${tempDirectory}/${Math.random().toString(36).substring(7)}`\n\n envFilePath = path.join(projectDir, '.env')\n envExampleFilePath = path.join(projectDir, '.env.example')\n\n if (fse.existsSync(envFilePath)) {\n fse.removeSync(envFilePath)\n }\n\n fse.ensureDirSync(projectDir)\n })\n\n afterEach(() => {\n if (fse.existsSync(projectDir)) {\n fse.rmSync(projectDir, { recursive: true })\n }\n })\n\n it('generates .env using defaults (not from .env.example)', async () => {\n // ensure no .env.example exists so that the default values are used\n // the `manageEnvFiles` function will look for .env.example in the file system\n if (fse.existsSync(envExampleFilePath)) {\n fse.removeSync(envExampleFilePath)\n }\n\n await manageEnvFiles({\n cliArgs: {\n '--debug': true,\n } as CliArgs,\n databaseUri: '', // omitting this will ensure the default vars are used\n payloadSecret: '', // omitting this will ensure the default vars are used\n projectDir,\n template: undefined,\n })\n\n expect(fse.existsSync(envFilePath)).toBe(true)\n\n const updatedEnvContent = fse.readFileSync(envFilePath, 'utf-8')\n\n expect(updatedEnvContent).toBe(\n `# Added by Payload\\nPAYLOAD_SECRET=YOUR_SECRET_HERE\\nDATABASE_URL=your-connection-string-here`,\n )\n })\n\n it('generates .env from .env.example', async () => {\n // create or override the .env.example file with a connection string that will NOT be overridden\n fse.ensureFileSync(envExampleFilePath)\n fse.writeFileSync(\n envExampleFilePath,\n `DATABASE_URL=example-connection-string\\nCUSTOM_VAR=custom-value\\n`,\n )\n\n await manageEnvFiles({\n cliArgs: {\n '--debug': true,\n } as CliArgs,\n databaseUri: '', // omitting this will ensure the `.env.example` vars are used\n payloadSecret: '', // omitting this will ensure the `.env.example` vars are used\n projectDir,\n template: undefined,\n })\n\n expect(fse.existsSync(envFilePath)).toBe(true)\n\n const updatedEnvContent = fse.readFileSync(envFilePath, 'utf-8')\n\n expect(updatedEnvContent).toBe(\n `DATABASE_URL=example-connection-string\\nCUSTOM_VAR=custom-value\\nPAYLOAD_SECRET=YOUR_SECRET_HERE\\n# Added by Payload`,\n )\n })\n\n it('updates existing .env without overriding vars', async () => {\n // create an existing .env file with some custom variables that should NOT be overridden\n fse.ensureFileSync(envFilePath)\n fse.writeFileSync(\n envFilePath,\n `CUSTOM_VAR=custom-value\\nDATABASE_URL=example-connection-string\\n`,\n )\n\n // create an .env.example file to ensure that its contents DO NOT override existing .env vars\n fse.ensureFileSync(envExampleFilePath)\n fse.writeFileSync(\n envExampleFilePath,\n `CUSTOM_VAR=custom-value-2\\nDATABASE_URL=example-connection-string-2\\n`,\n )\n\n await manageEnvFiles({\n cliArgs: {\n '--debug': true,\n } as CliArgs,\n databaseUri: '', // omitting this will ensure the `.env` vars are kept\n payloadSecret: '', // omitting this will ensure the `.env` vars are kept\n projectDir,\n template: undefined,\n })\n\n expect(fse.existsSync(envFilePath)).toBe(true)\n\n const updatedEnvContent = fse.readFileSync(envFilePath, 'utf-8')\n\n expect(updatedEnvContent).toBe(\n `# Added by Payload\\nPAYLOAD_SECRET=YOUR_SECRET_HERE\\nDATABASE_URL=example-connection-string\\nCUSTOM_VAR=custom-value`,\n )\n })\n\n it('sanitizes .env based on selected database type', async () => {\n await manageEnvFiles({\n cliArgs: {\n '--debug': true,\n } as CliArgs,\n databaseType: 'mongodb', // this mimics the CLI selection and will be used as the DATABASE_URL\n databaseUri: 'mongodb://localhost:27017/test', // this mimics the CLI selection and will be used as the DATABASE_URL\n payloadSecret: 'test-secret', // this mimics the CLI selection and will be used as the PAYLOAD_SECRET\n projectDir,\n template: undefined,\n })\n\n const updatedEnvContent = fse.readFileSync(envFilePath, 'utf-8')\n\n expect(updatedEnvContent).toBe(\n `# Added by Payload\\nPAYLOAD_SECRET=test-secret\\nDATABASE_URL=mongodb://localhost:27017/test`,\n )\n\n // delete the generated .env file and do it again, but this time, omit the databaseUri to ensure the default is generated\n fse.removeSync(envFilePath)\n\n await manageEnvFiles({\n cliArgs: {\n '--debug': true,\n } as CliArgs,\n databaseType: 'mongodb', // this mimics the CLI selection and will be used as the DATABASE_URL\n databaseUri: '', // omit this to ensure the default is generated based on the selected database type\n payloadSecret: 'test-secret',\n projectDir,\n template: undefined,\n })\n\n const updatedEnvContentWithDefault = fse.readFileSync(envFilePath, 'utf-8')\n expect(updatedEnvContentWithDefault).toBe(\n `# Added by Payload\\nPAYLOAD_SECRET=test-secret\\nDATABASE_URL=mongodb://127.0.0.1/your-database-name`,\n )\n })\n})\n"],"names":["fs","fse","os","path","afterEach","beforeAll","beforeEach","describe","expect","it","vitest","manageEnvFiles","projectDir","envFilePath","envExampleFilePath","console","log","fn","tempDirectory","realpathSync","tmpdir","Math","random","toString","substring","join","existsSync","removeSync","ensureDirSync","rmSync","recursive","cliArgs","databaseUri","payloadSecret","template","undefined","toBe","updatedEnvContent","readFileSync","ensureFileSync","writeFileSync","databaseType","updatedEnvContentWithDefault"],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import type { AgentType, CliArgs } from '../types.js';
2
- type AgentChoice = {
3
- /** File to write at project root pointing agents to the skill */
4
- configFile: 'AGENTS.md' | 'CLAUDE.md';
5
- label: string;
6
- skillsDir: string;
7
- value: AgentType;
8
- };
9
- export declare const agentChoices: AgentChoice[];
10
- export declare function getAgentChoice(agentType: AgentType): AgentChoice;
11
- export declare function getSkillsDir(agentType: AgentType): string;
12
- export declare function selectAgent(args: {
13
- cliArgs: CliArgs;
14
- }): Promise<AgentType | undefined>;
15
- export {};
16
- //# sourceMappingURL=select-agent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-agent.d.ts","sourceRoot":"","sources":["../../src/lib/select-agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErD,KAAK,WAAW,GAAG;IACjB,iEAAiE;IACjE,UAAU,EAAE,WAAW,GAAG,WAAW,CAAA;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,WAAW,EAIrC,CAAA;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,CAMhE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEzD;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAwC5F"}
@@ -1,67 +0,0 @@
1
- import * as p from '@clack/prompts';
2
- export const agentChoices = [
3
- {
4
- configFile: 'CLAUDE.md',
5
- label: 'Claude Code',
6
- skillsDir: '.claude/skills',
7
- value: 'claude'
8
- },
9
- {
10
- configFile: 'AGENTS.md',
11
- label: 'Codex',
12
- skillsDir: '.agents/skills',
13
- value: 'codex'
14
- },
15
- {
16
- configFile: 'AGENTS.md',
17
- label: 'Cursor',
18
- skillsDir: '.agents/skills',
19
- value: 'cursor'
20
- }
21
- ];
22
- const validAgentValues = agentChoices.map((c)=>c.value);
23
- export function getAgentChoice(agentType) {
24
- const choice = agentChoices.find((c)=>c.value === agentType);
25
- if (!choice) {
26
- throw new Error(`Unknown agent type: ${agentType}`);
27
- }
28
- return choice;
29
- }
30
- export function getSkillsDir(agentType) {
31
- return getAgentChoice(agentType).skillsDir;
32
- }
33
- export async function selectAgent(args) {
34
- const { cliArgs } = args;
35
- if (cliArgs['--no-agent']) {
36
- return undefined;
37
- }
38
- if (cliArgs['--agent']) {
39
- const value = cliArgs['--agent'];
40
- if (!validAgentValues.includes(value)) {
41
- throw new Error(`Invalid agent type: ${cliArgs['--agent']}. Valid types are: ${validAgentValues.join(', ')}`);
42
- }
43
- return value;
44
- }
45
- const selected = await p.select({
46
- message: 'Select a coding agent to install the Payload skill for',
47
- options: [
48
- ...agentChoices.map((choice)=>({
49
- label: choice.label,
50
- value: choice.value
51
- })),
52
- {
53
- label: 'None',
54
- value: 'none'
55
- }
56
- ]
57
- });
58
- if (p.isCancel(selected)) {
59
- process.exit(0);
60
- }
61
- if (selected === 'none') {
62
- return undefined;
63
- }
64
- return selected;
65
- }
66
-
67
- //# sourceMappingURL=select-agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/select-agent.ts"],"sourcesContent":["import * as p from '@clack/prompts'\n\nimport type { AgentType, CliArgs } from '../types.js'\n\ntype AgentChoice = {\n /** File to write at project root pointing agents to the skill */\n configFile: 'AGENTS.md' | 'CLAUDE.md'\n label: string\n skillsDir: string\n value: AgentType\n}\n\nexport const agentChoices: AgentChoice[] = [\n { configFile: 'CLAUDE.md', label: 'Claude Code', skillsDir: '.claude/skills', value: 'claude' },\n { configFile: 'AGENTS.md', label: 'Codex', skillsDir: '.agents/skills', value: 'codex' },\n { configFile: 'AGENTS.md', label: 'Cursor', skillsDir: '.agents/skills', value: 'cursor' },\n]\n\nconst validAgentValues = agentChoices.map((c) => c.value)\n\nexport function getAgentChoice(agentType: AgentType): AgentChoice {\n const choice = agentChoices.find((c) => c.value === agentType)\n if (!choice) {\n throw new Error(`Unknown agent type: ${agentType}`)\n }\n return choice\n}\n\nexport function getSkillsDir(agentType: AgentType): string {\n return getAgentChoice(agentType).skillsDir\n}\n\nexport async function selectAgent(args: { cliArgs: CliArgs }): Promise<AgentType | undefined> {\n const { cliArgs } = args\n\n if (cliArgs['--no-agent']) {\n return undefined\n }\n\n if (cliArgs['--agent']) {\n const value = cliArgs['--agent'] as AgentType\n if (!validAgentValues.includes(value)) {\n throw new Error(\n `Invalid agent type: ${cliArgs['--agent']}. Valid types are: ${validAgentValues.join(', ')}`,\n )\n }\n return value\n }\n\n const selected = await p.select<\n { label: string; value: 'none' | AgentType }[],\n 'none' | AgentType\n >({\n message: 'Select a coding agent to install the Payload skill for',\n options: [\n ...agentChoices.map((choice) => ({\n label: choice.label,\n value: choice.value,\n })),\n { label: 'None', value: 'none' as const },\n ],\n })\n\n if (p.isCancel(selected)) {\n process.exit(0)\n }\n\n if (selected === 'none') {\n return undefined\n }\n\n return selected\n}\n"],"names":["p","agentChoices","configFile","label","skillsDir","value","validAgentValues","map","c","getAgentChoice","agentType","choice","find","Error","getSkillsDir","selectAgent","args","cliArgs","undefined","includes","join","selected","select","message","options","isCancel","process","exit"],"mappings":"AAAA,YAAYA,OAAO,iBAAgB;AAYnC,OAAO,MAAMC,eAA8B;IACzC;QAAEC,YAAY;QAAaC,OAAO;QAAeC,WAAW;QAAkBC,OAAO;IAAS;IAC9F;QAAEH,YAAY;QAAaC,OAAO;QAASC,WAAW;QAAkBC,OAAO;IAAQ;IACvF;QAAEH,YAAY;QAAaC,OAAO;QAAUC,WAAW;QAAkBC,OAAO;IAAS;CAC1F,CAAA;AAED,MAAMC,mBAAmBL,aAAaM,GAAG,CAAC,CAACC,IAAMA,EAAEH,KAAK;AAExD,OAAO,SAASI,eAAeC,SAAoB;IACjD,MAAMC,SAASV,aAAaW,IAAI,CAAC,CAACJ,IAAMA,EAAEH,KAAK,KAAKK;IACpD,IAAI,CAACC,QAAQ;QACX,MAAM,IAAIE,MAAM,CAAC,oBAAoB,EAAEH,WAAW;IACpD;IACA,OAAOC;AACT;AAEA,OAAO,SAASG,aAAaJ,SAAoB;IAC/C,OAAOD,eAAeC,WAAWN,SAAS;AAC5C;AAEA,OAAO,eAAeW,YAAYC,IAA0B;IAC1D,MAAM,EAAEC,OAAO,EAAE,GAAGD;IAEpB,IAAIC,OAAO,CAAC,aAAa,EAAE;QACzB,OAAOC;IACT;IAEA,IAAID,OAAO,CAAC,UAAU,EAAE;QACtB,MAAMZ,QAAQY,OAAO,CAAC,UAAU;QAChC,IAAI,CAACX,iBAAiBa,QAAQ,CAACd,QAAQ;YACrC,MAAM,IAAIQ,MACR,CAAC,oBAAoB,EAAEI,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAEX,iBAAiBc,IAAI,CAAC,OAAO;QAEhG;QACA,OAAOf;IACT;IAEA,MAAMgB,WAAW,MAAMrB,EAAEsB,MAAM,CAG7B;QACAC,SAAS;QACTC,SAAS;eACJvB,aAAaM,GAAG,CAAC,CAACI,SAAY,CAAA;oBAC/BR,OAAOQ,OAAOR,KAAK;oBACnBE,OAAOM,OAAON,KAAK;gBACrB,CAAA;YACA;gBAAEF,OAAO;gBAAQE,OAAO;YAAgB;SACzC;IACH;IAEA,IAAIL,EAAEyB,QAAQ,CAACJ,WAAW;QACxBK,QAAQC,IAAI,CAAC;IACf;IAEA,IAAIN,aAAa,QAAQ;QACvB,OAAOH;IACT;IAEA,OAAOG;AACT"}
@@ -1,167 +0,0 @@
1
- import * as p from '@clack/prompts';
2
- import { describe, it, expect, vitest } from 'vitest';
3
- import { parseAndModifyConfigContent, withPayloadStatement } from './wrap-next-config.js';
4
- const tsConfigs = {
5
- defaultNextConfig: `import type { NextConfig } from "next";
6
-
7
- const nextConfig: NextConfig = {};
8
- export default nextConfig;`,
9
- nextConfigExportNamedDefault: `import type { NextConfig } from "next";
10
- const nextConfig: NextConfig = {};
11
- const wrapped = someFunc(asdf);
12
- export { wrapped as default };
13
- `,
14
- nextConfigWithFunc: `import type { NextConfig } from "next";
15
- const nextConfig: NextConfig = {};
16
- export default someFunc(nextConfig);
17
- `,
18
- nextConfigWithFuncMultiline: `import type { NextConfig } from "next";
19
- const nextConfig: NextConfig = {};
20
- export default someFunc(
21
- nextConfig
22
- );
23
- `,
24
- nextConfigWithSpread: `import type { NextConfig } from "next";
25
- const nextConfig: NextConfig = {
26
- ...someConfig,
27
- };
28
- export default nextConfig;
29
- `
30
- };
31
- const esmConfigs = {
32
- defaultNextConfig: `/** @type {import('next').NextConfig} */
33
- const nextConfig = {};
34
- export default nextConfig;
35
- `,
36
- nextConfigExportNamedDefault: `const nextConfig = {};
37
- const wrapped = someFunc(asdf);
38
- export { wrapped as default };
39
- `,
40
- nextConfigWithFunc: `const nextConfig = {};
41
- export default someFunc(nextConfig);
42
- `,
43
- nextConfigWithFuncMultiline: `const nextConfig = {};;
44
- export default someFunc(
45
- nextConfig
46
- );
47
- `,
48
- nextConfigWithSpread: `const nextConfig = {
49
- ...someConfig,
50
- };
51
- export default nextConfig;
52
- `
53
- };
54
- const cjsConfigs = {
55
- anonConfig: `module.exports = {};`,
56
- defaultNextConfig: `
57
- /** @type {import('next').NextConfig} */
58
- const nextConfig = {};
59
- module.exports = nextConfig;
60
- `,
61
- nextConfigExportNamedDefault: `const nextConfig = {};
62
- const wrapped = someFunc(asdf);
63
- module.exports = wrapped;
64
- `,
65
- nextConfigWithFunc: `const nextConfig = {};
66
- module.exports = someFunc(nextConfig);
67
- `,
68
- nextConfigWithFuncMultiline: `const nextConfig = {};
69
- module.exports = someFunc(
70
- nextConfig
71
- );
72
- `,
73
- nextConfigWithSpread: `const nextConfig = { ...someConfig };
74
- module.exports = nextConfig;
75
- `
76
- };
77
- describe('parseAndInsertWithPayload', ()=>{
78
- describe('ts', ()=>{
79
- const configType = 'ts';
80
- const importStatement = withPayloadStatement[configType];
81
- it('should parse the default next config', async ()=>{
82
- const { modifiedConfigContent } = await parseAndModifyConfigContent(tsConfigs.defaultNextConfig, configType);
83
- expect(modifiedConfigContent).toContain(importStatement);
84
- expect(modifiedConfigContent).toContain('withPayload(nextConfig)');
85
- });
86
- it('should parse the config with a function', async ()=>{
87
- const { modifiedConfigContent: modifiedConfigContent2 } = await parseAndModifyConfigContent(tsConfigs.nextConfigWithFunc, configType);
88
- expect(modifiedConfigContent2).toContain('withPayload(someFunc(nextConfig))');
89
- });
90
- it('should parse the config with a multi-lined function', async ()=>{
91
- const { modifiedConfigContent } = await parseAndModifyConfigContent(tsConfigs.nextConfigWithFuncMultiline, configType);
92
- expect(modifiedConfigContent).toContain(importStatement);
93
- expect(modifiedConfigContent).toMatch(/withPayload\(someFunc\(\n {2}nextConfig\n\)\)/);
94
- });
95
- it('should parse the config with a spread', async ()=>{
96
- const { modifiedConfigContent } = await parseAndModifyConfigContent(tsConfigs.nextConfigWithSpread, configType);
97
- expect(modifiedConfigContent).toContain(importStatement);
98
- expect(modifiedConfigContent).toContain('withPayload(nextConfig)');
99
- });
100
- });
101
- describe('esm', ()=>{
102
- const configType = 'esm';
103
- const importStatement = withPayloadStatement[configType];
104
- it('should parse the default next config', async ()=>{
105
- const { modifiedConfigContent } = await parseAndModifyConfigContent(esmConfigs.defaultNextConfig, configType);
106
- expect(modifiedConfigContent).toContain(importStatement);
107
- expect(modifiedConfigContent).toContain('withPayload(nextConfig)');
108
- });
109
- it('should parse the config with a function', async ()=>{
110
- const { modifiedConfigContent } = await parseAndModifyConfigContent(esmConfigs.nextConfigWithFunc, configType);
111
- expect(modifiedConfigContent).toContain('withPayload(someFunc(nextConfig))');
112
- });
113
- it('should parse the config with a multi-lined function', async ()=>{
114
- const { modifiedConfigContent } = await parseAndModifyConfigContent(esmConfigs.nextConfigWithFuncMultiline, configType);
115
- expect(modifiedConfigContent).toContain(importStatement);
116
- expect(modifiedConfigContent).toMatch(/withPayload\(someFunc\(\n {2}nextConfig\n\)\)/);
117
- });
118
- it('should parse the config with a spread', async ()=>{
119
- const { modifiedConfigContent } = await parseAndModifyConfigContent(esmConfigs.nextConfigWithSpread, configType);
120
- expect(modifiedConfigContent).toContain(importStatement);
121
- expect(modifiedConfigContent).toContain('withPayload(nextConfig)');
122
- });
123
- // Unsupported: export { wrapped as default }
124
- it('should give warning with a named export as default', async ()=>{
125
- const warnLogSpy = vitest.spyOn(p.log, 'warn').mockImplementation(()=>{});
126
- const { modifiedConfigContent, success } = await parseAndModifyConfigContent(esmConfigs.nextConfigExportNamedDefault, configType);
127
- expect(modifiedConfigContent).toContain(importStatement);
128
- expect(success).toBe(false);
129
- expect(warnLogSpy).toHaveBeenCalledWith(expect.stringContaining('Could not automatically wrap'));
130
- });
131
- });
132
- describe('cjs', ()=>{
133
- const configType = 'cjs';
134
- const requireStatement = withPayloadStatement[configType];
135
- it('should parse the default next config', async ()=>{
136
- const { modifiedConfigContent } = await parseAndModifyConfigContent(cjsConfigs.defaultNextConfig, configType);
137
- expect(modifiedConfigContent).toContain(requireStatement);
138
- expect(modifiedConfigContent).toContain('withPayload(nextConfig)');
139
- });
140
- it('should parse anonymous default config', async ()=>{
141
- const { modifiedConfigContent } = await parseAndModifyConfigContent(cjsConfigs.anonConfig, configType);
142
- expect(modifiedConfigContent).toContain(requireStatement);
143
- expect(modifiedConfigContent).toContain('withPayload({})');
144
- });
145
- it('should parse the config with a function', async ()=>{
146
- const { modifiedConfigContent } = await parseAndModifyConfigContent(cjsConfigs.nextConfigWithFunc, configType);
147
- expect(modifiedConfigContent).toContain('withPayload(someFunc(nextConfig))');
148
- });
149
- it('should parse the config with a multi-lined function', async ()=>{
150
- const { modifiedConfigContent } = await parseAndModifyConfigContent(cjsConfigs.nextConfigWithFuncMultiline, configType);
151
- expect(modifiedConfigContent).toContain(requireStatement);
152
- expect(modifiedConfigContent).toMatch(/withPayload\(someFunc\(\n {2}nextConfig\n\)\)/);
153
- });
154
- it('should parse the config with a named export as default', async ()=>{
155
- const { modifiedConfigContent } = await parseAndModifyConfigContent(cjsConfigs.nextConfigExportNamedDefault, configType);
156
- expect(modifiedConfigContent).toContain(requireStatement);
157
- expect(modifiedConfigContent).toContain('withPayload(wrapped)');
158
- });
159
- it('should parse the config with a spread', async ()=>{
160
- const { modifiedConfigContent } = await parseAndModifyConfigContent(cjsConfigs.nextConfigWithSpread, configType);
161
- expect(modifiedConfigContent).toContain(requireStatement);
162
- expect(modifiedConfigContent).toContain('withPayload(nextConfig)');
163
- });
164
- });
165
- });
166
-
167
- //# sourceMappingURL=wrap-next-config.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/wrap-next-config.spec.ts"],"sourcesContent":["import * as p from '@clack/prompts'\nimport { describe, it, expect, vitest } from 'vitest'\n\nimport { parseAndModifyConfigContent, withPayloadStatement } from './wrap-next-config.js'\n\nconst tsConfigs = {\n defaultNextConfig: `import type { NextConfig } from \"next\";\n\nconst nextConfig: NextConfig = {};\nexport default nextConfig;`,\n\n nextConfigExportNamedDefault: `import type { NextConfig } from \"next\";\nconst nextConfig: NextConfig = {};\nconst wrapped = someFunc(asdf);\nexport { wrapped as default };\n`,\n nextConfigWithFunc: `import type { NextConfig } from \"next\";\nconst nextConfig: NextConfig = {};\nexport default someFunc(nextConfig);\n`,\n nextConfigWithFuncMultiline: `import type { NextConfig } from \"next\";\nconst nextConfig: NextConfig = {};\nexport default someFunc(\n nextConfig\n);\n`,\n nextConfigWithSpread: `import type { NextConfig } from \"next\";\nconst nextConfig: NextConfig = {\n ...someConfig,\n};\nexport default nextConfig;\n`,\n}\n\nconst esmConfigs = {\n defaultNextConfig: `/** @type {import('next').NextConfig} */\nconst nextConfig = {};\nexport default nextConfig;\n`,\n nextConfigExportNamedDefault: `const nextConfig = {};\nconst wrapped = someFunc(asdf);\nexport { wrapped as default };\n`,\n nextConfigWithFunc: `const nextConfig = {};\nexport default someFunc(nextConfig);\n`,\n nextConfigWithFuncMultiline: `const nextConfig = {};;\nexport default someFunc(\n nextConfig\n);\n`,\n nextConfigWithSpread: `const nextConfig = {\n ...someConfig,\n};\nexport default nextConfig;\n`,\n}\n\nconst cjsConfigs = {\n anonConfig: `module.exports = {};`,\n defaultNextConfig: `\n /** @type {import('next').NextConfig} */\nconst nextConfig = {};\nmodule.exports = nextConfig;\n`,\n nextConfigExportNamedDefault: `const nextConfig = {};\nconst wrapped = someFunc(asdf);\nmodule.exports = wrapped;\n`,\n nextConfigWithFunc: `const nextConfig = {};\nmodule.exports = someFunc(nextConfig);\n`,\n nextConfigWithFuncMultiline: `const nextConfig = {};\nmodule.exports = someFunc(\n nextConfig\n);\n`,\n nextConfigWithSpread: `const nextConfig = { ...someConfig };\nmodule.exports = nextConfig;\n`,\n}\n\ndescribe('parseAndInsertWithPayload', () => {\n describe('ts', () => {\n const configType = 'ts'\n const importStatement = withPayloadStatement[configType]\n\n it('should parse the default next config', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n tsConfigs.defaultNextConfig,\n configType,\n )\n expect(modifiedConfigContent).toContain(importStatement)\n expect(modifiedConfigContent).toContain('withPayload(nextConfig)')\n })\n\n it('should parse the config with a function', async () => {\n const { modifiedConfigContent: modifiedConfigContent2 } = await parseAndModifyConfigContent(\n tsConfigs.nextConfigWithFunc,\n configType,\n )\n expect(modifiedConfigContent2).toContain('withPayload(someFunc(nextConfig))')\n })\n\n it('should parse the config with a multi-lined function', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n tsConfigs.nextConfigWithFuncMultiline,\n configType,\n )\n expect(modifiedConfigContent).toContain(importStatement)\n expect(modifiedConfigContent).toMatch(/withPayload\\(someFunc\\(\\n {2}nextConfig\\n\\)\\)/)\n })\n\n it('should parse the config with a spread', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n tsConfigs.nextConfigWithSpread,\n configType,\n )\n expect(modifiedConfigContent).toContain(importStatement)\n expect(modifiedConfigContent).toContain('withPayload(nextConfig)')\n })\n })\n describe('esm', () => {\n const configType = 'esm'\n const importStatement = withPayloadStatement[configType]\n it('should parse the default next config', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n esmConfigs.defaultNextConfig,\n configType,\n )\n expect(modifiedConfigContent).toContain(importStatement)\n expect(modifiedConfigContent).toContain('withPayload(nextConfig)')\n })\n it('should parse the config with a function', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n esmConfigs.nextConfigWithFunc,\n configType,\n )\n expect(modifiedConfigContent).toContain('withPayload(someFunc(nextConfig))')\n })\n\n it('should parse the config with a multi-lined function', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n esmConfigs.nextConfigWithFuncMultiline,\n configType,\n )\n expect(modifiedConfigContent).toContain(importStatement)\n expect(modifiedConfigContent).toMatch(/withPayload\\(someFunc\\(\\n {2}nextConfig\\n\\)\\)/)\n })\n\n it('should parse the config with a spread', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n esmConfigs.nextConfigWithSpread,\n configType,\n )\n expect(modifiedConfigContent).toContain(importStatement)\n expect(modifiedConfigContent).toContain('withPayload(nextConfig)')\n })\n\n // Unsupported: export { wrapped as default }\n it('should give warning with a named export as default', async () => {\n const warnLogSpy = vitest.spyOn(p.log, 'warn').mockImplementation(() => {})\n\n const { modifiedConfigContent, success } = await parseAndModifyConfigContent(\n esmConfigs.nextConfigExportNamedDefault,\n configType,\n )\n expect(modifiedConfigContent).toContain(importStatement)\n expect(success).toBe(false)\n\n expect(warnLogSpy).toHaveBeenCalledWith(\n expect.stringContaining('Could not automatically wrap'),\n )\n })\n })\n\n describe('cjs', () => {\n const configType = 'cjs'\n const requireStatement = withPayloadStatement[configType]\n it('should parse the default next config', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n cjsConfigs.defaultNextConfig,\n configType,\n )\n expect(modifiedConfigContent).toContain(requireStatement)\n expect(modifiedConfigContent).toContain('withPayload(nextConfig)')\n })\n it('should parse anonymous default config', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n cjsConfigs.anonConfig,\n configType,\n )\n expect(modifiedConfigContent).toContain(requireStatement)\n expect(modifiedConfigContent).toContain('withPayload({})')\n })\n it('should parse the config with a function', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n cjsConfigs.nextConfigWithFunc,\n configType,\n )\n expect(modifiedConfigContent).toContain('withPayload(someFunc(nextConfig))')\n })\n it('should parse the config with a multi-lined function', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n cjsConfigs.nextConfigWithFuncMultiline,\n configType,\n )\n expect(modifiedConfigContent).toContain(requireStatement)\n expect(modifiedConfigContent).toMatch(/withPayload\\(someFunc\\(\\n {2}nextConfig\\n\\)\\)/)\n })\n it('should parse the config with a named export as default', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n cjsConfigs.nextConfigExportNamedDefault,\n configType,\n )\n expect(modifiedConfigContent).toContain(requireStatement)\n expect(modifiedConfigContent).toContain('withPayload(wrapped)')\n })\n\n it('should parse the config with a spread', async () => {\n const { modifiedConfigContent } = await parseAndModifyConfigContent(\n cjsConfigs.nextConfigWithSpread,\n configType,\n )\n expect(modifiedConfigContent).toContain(requireStatement)\n expect(modifiedConfigContent).toContain('withPayload(nextConfig)')\n })\n })\n})\n"],"names":["p","describe","it","expect","vitest","parseAndModifyConfigContent","withPayloadStatement","tsConfigs","defaultNextConfig","nextConfigExportNamedDefault","nextConfigWithFunc","nextConfigWithFuncMultiline","nextConfigWithSpread","esmConfigs","cjsConfigs","anonConfig","configType","importStatement","modifiedConfigContent","toContain","modifiedConfigContent2","toMatch","warnLogSpy","spyOn","log","mockImplementation","success","toBe","toHaveBeenCalledWith","stringContaining","requireStatement"],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Fetches the latest version of a package from the NPM registry.
3
- *
4
- * Used in determining the latest version of Payload to use in the generated templates.
5
- */
6
- export declare function getLatestPackageVersion({ debug, packageName, }: {
7
- debug?: boolean;
8
- /**
9
- * Package name to fetch the latest version for based on the NPM registry URL
10
- *
11
- * Eg. for `'payload'`, it will fetch the version from `https://registry.npmjs.org/payload`
12
- *
13
- * @default 'payload'
14
- */
15
- packageName?: string;
16
- }): Promise<string>;
17
- //# sourceMappingURL=getLatestPackageVersion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLatestPackageVersion.d.ts","sourceRoot":"","sources":["../../src/utils/getLatestPackageVersion.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,EAC5C,KAAa,EACb,WAAuB,GACxB,EAAE;IACD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,mBAeA"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Fetches the latest version of a package from the NPM registry.
3
- *
4
- * Used in determining the latest version of Payload to use in the generated templates.
5
- */ export async function getLatestPackageVersion({ debug = false, packageName = 'payload' }) {
6
- try {
7
- const response = await fetch(`https://registry.npmjs.org/${packageName}`);
8
- const data = await response.json();
9
- const latestVersion = data['dist-tags'].latest;
10
- if (debug) {
11
- console.log(`Found latest version of ${packageName}: ${latestVersion}`);
12
- }
13
- return latestVersion;
14
- } catch (error) {
15
- console.error('Error fetching Payload version:', error);
16
- throw error;
17
- }
18
- }
19
-
20
- //# sourceMappingURL=getLatestPackageVersion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/getLatestPackageVersion.ts"],"sourcesContent":["/**\n * Fetches the latest version of a package from the NPM registry.\n *\n * Used in determining the latest version of Payload to use in the generated templates.\n */\nexport async function getLatestPackageVersion({\n debug = false,\n packageName = 'payload',\n}: {\n debug?: boolean\n /**\n * Package name to fetch the latest version for based on the NPM registry URL\n *\n * Eg. for `'payload'`, it will fetch the version from `https://registry.npmjs.org/payload`\n *\n * @default 'payload'\n */\n packageName?: string\n}) {\n try {\n const response = await fetch(`https://registry.npmjs.org/${packageName}`)\n const data = (await response.json()) as { 'dist-tags': { latest: string } }\n const latestVersion = data['dist-tags'].latest\n\n if (debug) {\n console.log(`Found latest version of ${packageName}: ${latestVersion}`)\n }\n\n return latestVersion\n } catch (error) {\n console.error('Error fetching Payload version:', error)\n throw error\n }\n}\n"],"names":["getLatestPackageVersion","debug","packageName","response","fetch","data","json","latestVersion","latest","console","log","error"],"mappings":"AAAA;;;;CAIC,GACD,OAAO,eAAeA,wBAAwB,EAC5CC,QAAQ,KAAK,EACbC,cAAc,SAAS,EAWxB;IACC,IAAI;QACF,MAAMC,WAAW,MAAMC,MAAM,CAAC,2BAA2B,EAAEF,aAAa;QACxE,MAAMG,OAAQ,MAAMF,SAASG,IAAI;QACjC,MAAMC,gBAAgBF,IAAI,CAAC,YAAY,CAACG,MAAM;QAE9C,IAAIP,OAAO;YACTQ,QAAQC,GAAG,CAAC,CAAC,wBAAwB,EAAER,YAAY,EAAE,EAAEK,eAAe;QACxE;QAEA,OAAOA;IACT,EAAE,OAAOI,OAAO;QACdF,QAAQE,KAAK,CAAC,mCAAmCA;QACjD,MAAMA;IACR;AACF"}