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
@@ -0,0 +1,11 @@
1
+ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. MODIFY AT YOUR OWN RISK. */
2
+ import { payloadApiHandlers } from '@payloadcms/tanstack-start/server'
3
+ import { createFileRoute } from '@tanstack/react-router'
4
+
5
+ export const Route = createFileRoute('/_payload/api/$')({
6
+ server: {
7
+ handlers: payloadApiHandlers({
8
+ getConfig: async () => (await import('@payload-config')).default,
9
+ }),
10
+ },
11
+ })
@@ -0,0 +1,32 @@
1
+ import { NullField as NullField_3817bf644402e67bfe6577f60ef982de } from '@payloadcms/ui'
2
+ import { HierarchyField as HierarchyField_ab83ff7e88da8d3530831f296ec4756a } from '@payloadcms/ui/rsc'
3
+ import { HierarchyButton as HierarchyButton_ab83ff7e88da8d3530831f296ec4756a } from '@payloadcms/ui/rsc'
4
+ import { FolderIcon as FolderIcon_3817bf644402e67bfe6577f60ef982de } from '@payloadcms/ui'
5
+ import { HierarchySidebarTabServer as HierarchySidebarTabServer_ab83ff7e88da8d3530831f296ec4756a } from '@payloadcms/ui/rsc'
6
+ import { TagIcon as TagIcon_3817bf644402e67bfe6577f60ef982de } from '@payloadcms/ui'
7
+ import { CollectionCards as CollectionCards_ab83ff7e88da8d3530831f296ec4756a } from '@payloadcms/ui/rsc'
8
+ import { CollectionQueryWidget as CollectionQueryWidget_ab83ff7e88da8d3530831f296ec4756a } from '@payloadcms/ui/rsc'
9
+ import { QueryPresetsWhereField as QueryPresetsWhereField_3817bf644402e67bfe6577f60ef982de } from '@payloadcms/ui'
10
+ import { CollectionQuerySortField as CollectionQuerySortField_3817bf644402e67bfe6577f60ef982de } from '@payloadcms/ui'
11
+ import { RecentlyViewedWidget as RecentlyViewedWidget_ab83ff7e88da8d3530831f296ec4756a } from '@payloadcms/ui/rsc'
12
+ import { RecentlyViewedCollectionsField as RecentlyViewedCollectionsField_3817bf644402e67bfe6577f60ef982de } from '@payloadcms/ui'
13
+
14
+ /** @type import('payload').ImportMap */
15
+ export const importMap = {
16
+ '@payloadcms/ui#NullField': NullField_3817bf644402e67bfe6577f60ef982de,
17
+ '@payloadcms/ui/rsc#HierarchyField': HierarchyField_ab83ff7e88da8d3530831f296ec4756a,
18
+ '@payloadcms/ui/rsc#HierarchyButton': HierarchyButton_ab83ff7e88da8d3530831f296ec4756a,
19
+ '@payloadcms/ui#FolderIcon': FolderIcon_3817bf644402e67bfe6577f60ef982de,
20
+ '@payloadcms/ui/rsc#HierarchySidebarTabServer':
21
+ HierarchySidebarTabServer_ab83ff7e88da8d3530831f296ec4756a,
22
+ '@payloadcms/ui#TagIcon': TagIcon_3817bf644402e67bfe6577f60ef982de,
23
+ '@payloadcms/ui/rsc#CollectionCards': CollectionCards_ab83ff7e88da8d3530831f296ec4756a,
24
+ '@payloadcms/ui/rsc#CollectionQueryWidget':
25
+ CollectionQueryWidget_ab83ff7e88da8d3530831f296ec4756a,
26
+ '@payloadcms/ui#QueryPresetsWhereField': QueryPresetsWhereField_3817bf644402e67bfe6577f60ef982de,
27
+ '@payloadcms/ui#CollectionQuerySortField':
28
+ CollectionQuerySortField_3817bf644402e67bfe6577f60ef982de,
29
+ '@payloadcms/ui/rsc#RecentlyViewedWidget': RecentlyViewedWidget_ab83ff7e88da8d3530831f296ec4756a,
30
+ '@payloadcms/ui#RecentlyViewedCollectionsField':
31
+ RecentlyViewedCollectionsField_3817bf644402e67bfe6577f60ef982de,
32
+ }
@@ -0,0 +1,50 @@
1
+ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. MODIFY AT YOUR OWN RISK. */
2
+ import type { ServerFunctionClientArgs } from 'payload'
3
+
4
+ import { createServerFunctionClient } from '@payloadcms/tanstack-start/client'
5
+ import { createServerFn } from '@tanstack/react-start'
6
+
7
+ type LoadInput = {
8
+ _splat?: string
9
+ search?: Record<string, string | string[]>
10
+ }
11
+
12
+ const getConfig = async () => (await import('@payload-config')).default
13
+ const getImportMap = async () => (await import('./importMap.js')).importMap
14
+
15
+ export const loadAdminPageRSC = createServerFn({ method: 'GET' })
16
+ .validator((data: LoadInput): LoadInput => data ?? {})
17
+ .handler(async ({ data }) => {
18
+ const { loadAdminPage } = await import('@payloadcms/tanstack-start/server')
19
+ return loadAdminPage({
20
+ config: await getConfig(),
21
+ importMap: await getImportMap(),
22
+ search: data.search,
23
+ splat: data._splat,
24
+ })
25
+ })
26
+
27
+ export const getLayoutDataFn = createServerFn({ method: 'GET' }).handler(async () => {
28
+ const { loadLayoutData } = await import('@payloadcms/tanstack-start/layouts')
29
+ return loadLayoutData({ config: await getConfig(), importMap: await getImportMap() })
30
+ })
31
+
32
+ const runPayloadServerFn = createServerFn({ method: 'POST' })
33
+ .validator((args: ServerFunctionClientArgs): ServerFunctionClientArgs => args)
34
+ .handler(async ({ data }) => {
35
+ const { handleServerFunctions } = await import('@payloadcms/tanstack-start/server')
36
+ const result = await handleServerFunctions({
37
+ args: data.args,
38
+ config: await getConfig(),
39
+ importMap: await getImportMap(),
40
+ name: data.name,
41
+ })
42
+
43
+ // TanStack validates the adapter-sanitized result at the server-function boundary.
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+ return result as any
46
+ })
47
+
48
+ export const serverFunctionHandler = createServerFunctionClient({
49
+ runServerFn: runPayloadServerFn,
50
+ })
@@ -0,0 +1,29 @@
1
+ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. MODIFY AT YOUR OWN RISK. */
2
+ import { payloadLayoutRoute } from '@payloadcms/tanstack-start/client'
3
+ import { createFileRoute } from '@tanstack/react-router'
4
+
5
+ import { getLayoutDataFn, serverFunctionHandler } from './_payload/server.functions.js'
6
+
7
+ export const Route = createFileRoute('/_payload')({
8
+ head: () => ({
9
+ links: [
10
+ {
11
+ rel: 'preconnect',
12
+ href: 'https://fonts.googleapis.com',
13
+ },
14
+ {
15
+ rel: 'preconnect',
16
+ href: 'https://fonts.gstatic.com',
17
+ crossOrigin: 'anonymous',
18
+ },
19
+ {
20
+ rel: 'stylesheet',
21
+ href: 'https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Roboto+Mono:wght@100..700&display=swap',
22
+ },
23
+ ],
24
+ }),
25
+ ...payloadLayoutRoute({
26
+ load: getLayoutDataFn,
27
+ serverFunction: serverFunctionHandler,
28
+ }),
29
+ })
@@ -0,0 +1,16 @@
1
+ import type { CollectionConfig } from 'payload'
2
+
3
+ export const Folders: CollectionConfig = {
4
+ slug: 'folders',
5
+ admin: {
6
+ useAsTitle: 'name',
7
+ },
8
+ folders: true,
9
+ fields: [
10
+ {
11
+ name: 'name',
12
+ type: 'text',
13
+ required: true,
14
+ },
15
+ ],
16
+ }
@@ -0,0 +1,20 @@
1
+ import type { CollectionConfig } from 'payload'
2
+
3
+ import { createFolderField, createTagField } from 'payload'
4
+
5
+ export const Media: CollectionConfig = {
6
+ slug: 'media',
7
+ access: {
8
+ read: () => true,
9
+ },
10
+ fields: [
11
+ {
12
+ name: 'alt',
13
+ type: 'text',
14
+ required: true,
15
+ },
16
+ createFolderField({ relationTo: 'folders' }),
17
+ createTagField({ relationTo: 'tags' }),
18
+ ],
19
+ upload: true,
20
+ }
@@ -0,0 +1,16 @@
1
+ import type { CollectionConfig } from 'payload'
2
+
3
+ export const Tags: CollectionConfig = {
4
+ slug: 'tags',
5
+ admin: {
6
+ useAsTitle: 'name',
7
+ },
8
+ tags: true,
9
+ fields: [
10
+ {
11
+ name: 'name',
12
+ type: 'text',
13
+ required: true,
14
+ },
15
+ ],
16
+ }
@@ -0,0 +1,14 @@
1
+ import type { CollectionConfig } from 'payload'
2
+
3
+ export const Users: CollectionConfig = {
4
+ slug: 'users',
5
+ admin: {
6
+ useAsTitle: 'email',
7
+ },
8
+ auth: true,
9
+ fields: [
10
+ // Email added by default
11
+ // Add more fields as needed
12
+ ],
13
+ versions: false,
14
+ }
@@ -0,0 +1,38 @@
1
+ import { mongooseAdapter } from '@payloadcms/db-mongodb'
2
+ import { mcpPlugin } from '@payloadcms/plugin-mcp'
3
+ import { lexicalEditor } from '@payloadcms/richtext-lexical'
4
+ import path from 'path'
5
+ import { buildConfig } from 'payload'
6
+ import { fileURLToPath } from 'url'
7
+
8
+ import { Users } from './collections/Users'
9
+ import { Media } from './collections/Media'
10
+ import { Folders } from './collections/Folders'
11
+ import { Tags } from './collections/Tags'
12
+
13
+ const filename = fileURLToPath(import.meta.url)
14
+ const dirname = path.dirname(filename)
15
+
16
+ export default buildConfig({
17
+ admin: {
18
+ user: Users.slug,
19
+ importMap: {
20
+ baseDir: path.resolve(dirname),
21
+ },
22
+ },
23
+ collections: [Users, Media, Folders, Tags],
24
+ editor: lexicalEditor(),
25
+ secret: process.env.PAYLOAD_SECRET || '',
26
+ typescript: {
27
+ outputFile: path.resolve(dirname, 'payload-types.ts'),
28
+ },
29
+ db: mongooseAdapter({
30
+ url: process.env.DATABASE_URL || '',
31
+ }),
32
+ localization: {
33
+ locales: [{ code: 'en', label: 'English' }],
34
+ fallback: true,
35
+ defaultLocale: 'en',
36
+ },
37
+ plugins: [mcpPlugin({})],
38
+ })
package/dist/types.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import type arg from 'arg';
2
2
  import type { ALL_DATABASE_ADAPTERS, ALL_STORAGE_ADAPTERS } from './lib/ast/types.js';
3
3
  export interface Args extends arg.Spec {
4
- '--agent': StringConstructor;
5
4
  '--beta': BooleanConstructor;
6
5
  '--branch': StringConstructor;
7
6
  '--db': StringConstructor;
@@ -18,13 +17,13 @@ export interface Args extends arg.Spec {
18
17
  '--no-agent': BooleanConstructor;
19
18
  '--no-deps': BooleanConstructor;
20
19
  '--no-git': BooleanConstructor;
20
+ '--payload-version': StringConstructor;
21
21
  '--secret': StringConstructor;
22
22
  '--template': StringConstructor;
23
23
  '--use-bun': BooleanConstructor;
24
24
  '--use-npm': BooleanConstructor;
25
25
  '--use-pnpm': BooleanConstructor;
26
26
  '--use-yarn': BooleanConstructor;
27
- '-a': string;
28
27
  '-e': string;
29
28
  '-h': string;
30
29
  '-n': string;
@@ -64,7 +63,6 @@ export type DbDetails = {
64
63
  dbUri?: string;
65
64
  type: DbType;
66
65
  };
67
- export type EditorType = 'lexical' | 'slate';
68
66
  export type NextAppDetails = {
69
67
  hasTopLevelLayout: boolean;
70
68
  isPayloadInstalled?: boolean;
@@ -76,7 +74,28 @@ export type NextAppDetails = {
76
74
  nextVersion: null | string;
77
75
  };
78
76
  export type NextConfigType = 'cjs' | 'esm' | 'ts';
77
+ export type TanStackAppKind = 'router-only' | 'start';
78
+ export type TanStackAppDetails = {
79
+ isPayloadInstalled: boolean;
80
+ kind: TanStackAppKind;
81
+ projectDir: string;
82
+ rootRoutePath: string;
83
+ routerPath: string;
84
+ routesDir: string;
85
+ sourceDir: string;
86
+ viteConfigPath: string;
87
+ };
88
+ export type TanStackDetectionResult = {
89
+ compatible: false;
90
+ detected: true;
91
+ reason: string;
92
+ } | {
93
+ compatible: true;
94
+ details: TanStackAppDetails;
95
+ detected: true;
96
+ } | {
97
+ detected: false;
98
+ };
79
99
  export type StorageAdapterType = (typeof ALL_STORAGE_ADAPTERS)[number];
80
- export type AgentType = 'claude' | 'codex' | 'cursor';
81
100
  export {};
82
101
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAE1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAErF,MAAM,WAAW,IAAK,SAAQ,GAAG,CAAC,IAAI;IACpC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,UAAU,EAAE,iBAAiB,CAAA;IAC7B,MAAM,EAAE,iBAAiB,CAAA;IACzB,yBAAyB,EAAE,kBAAkB,CAAA;IAC7C,wBAAwB,EAAE,iBAAiB,CAAA;IAC3C,SAAS,EAAE,kBAAkB,CAAA;IAC7B,WAAW,EAAE,kBAAkB,CAAA;IAE/B,WAAW,EAAE,iBAAiB,CAAA;IAC9B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,aAAa,EAAE,kBAAkB,CAAA;IACjC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,YAAY,EAAE,kBAAkB,CAAA;IAChC,WAAW,EAAE,kBAAkB,CAAA;IAC/B,UAAU,EAAE,kBAAkB,CAAA;IAC9B,mBAAmB,EAAE,iBAAiB,CAAA;IACtC,UAAU,EAAE,iBAAiB,CAAA;IAC7B,YAAY,EAAE,iBAAiB,CAAA;IAC/B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,YAAY,EAAE,kBAAkB,CAAA;IAChC,YAAY,EAAE,kBAAkB,CAAA;IAIhC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAEtC,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,cAAc,CAAA;AAE1D,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,IAAI,EAAE,SAAS,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,IAAI,EAAE,QAAQ,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,UAAU,QAAQ;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;CAC9B;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAE5D,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,EAAE,OAAO,CAAA;IACjB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,EAAE,IAAI,GAAG,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAA;AAEjD,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,OAAO,CAAA;AAErD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,IAAI,EAAE,eAAe,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,UAAU,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,UAAU,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GACjE;IAAE,QAAQ,EAAE,KAAK,CAAA;CAAE,CAAA;AAEvB,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type arg from 'arg'\n\nimport type { ALL_DATABASE_ADAPTERS, ALL_STORAGE_ADAPTERS } from './lib/ast/types.js'\n\nexport interface Args extends arg.Spec {\n '--agent': StringConstructor\n '--beta': BooleanConstructor\n '--branch': StringConstructor\n '--db': StringConstructor\n '--db-accept-recommended': BooleanConstructor\n '--db-connection-string': StringConstructor\n '--debug': BooleanConstructor\n '--dry-run': BooleanConstructor\n\n '--example': StringConstructor\n '--help': BooleanConstructor\n '--init-next': BooleanConstructor\n '--local-example': StringConstructor\n '--local-template': StringConstructor\n '--name': StringConstructor\n '--no-agent': BooleanConstructor\n '--no-deps': BooleanConstructor\n '--no-git': BooleanConstructor\n '--secret': StringConstructor\n '--template': StringConstructor\n '--use-bun': BooleanConstructor\n '--use-npm': BooleanConstructor\n '--use-pnpm': BooleanConstructor\n '--use-yarn': BooleanConstructor\n\n // Aliases\n\n '-a': string\n '-e': string\n '-h': string\n '-n': string\n '-t': string\n}\n\nexport type CliArgs = arg.Result<Args>\n\nexport type ProjectTemplate = GitTemplate | PluginTemplate\n\nexport type ProjectExample = {\n name: string\n url: string\n}\n\n/**\n * Template that is cloned verbatim from a git repo\n * Performs .env manipulation based upon input\n */\nexport interface GitTemplate extends Template {\n type: 'starter'\n url: string\n}\n\n/**\n * Type specifically for the plugin template\n * No .env manipulation is done\n */\nexport interface PluginTemplate extends Template {\n type: 'plugin'\n url: string\n}\n\ninterface Template {\n dbType?: DbType\n description?: string\n name: string\n type: ProjectTemplate['type']\n}\n\nexport type PackageManager = 'bun' | 'npm' | 'pnpm' | 'yarn'\n\nexport type DbType = (typeof ALL_DATABASE_ADAPTERS)[number]\n\nexport type DbDetails = {\n dbUri?: string\n type: DbType\n}\n\nexport type EditorType = 'lexical' | 'slate'\n\nexport type NextAppDetails = {\n hasTopLevelLayout: boolean\n isPayloadInstalled?: boolean\n isSrcDir: boolean\n isSupportedNextVersion: boolean\n nextAppDir?: string\n nextConfigPath?: string\n nextConfigType?: NextConfigType\n nextVersion: null | string\n}\n\nexport type NextConfigType = 'cjs' | 'esm' | 'ts'\n\nexport type StorageAdapterType = (typeof ALL_STORAGE_ADAPTERS)[number]\n\nexport type AgentType = 'claude' | 'codex' | 'cursor'\n"],"names":[],"mappings":"AAmGA,WAAqD"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type arg from 'arg'\n\nimport type { ALL_DATABASE_ADAPTERS, ALL_STORAGE_ADAPTERS } from './lib/ast/types.js'\n\nexport interface Args extends arg.Spec {\n '--beta': BooleanConstructor\n '--branch': StringConstructor\n '--db': StringConstructor\n '--db-accept-recommended': BooleanConstructor\n '--db-connection-string': StringConstructor\n '--debug': BooleanConstructor\n '--dry-run': BooleanConstructor\n\n '--example': StringConstructor\n '--help': BooleanConstructor\n '--init-next': BooleanConstructor\n '--local-example': StringConstructor\n '--local-template': StringConstructor\n '--name': StringConstructor\n '--no-agent': BooleanConstructor\n '--no-deps': BooleanConstructor\n '--no-git': BooleanConstructor\n '--payload-version': StringConstructor\n '--secret': StringConstructor\n '--template': StringConstructor\n '--use-bun': BooleanConstructor\n '--use-npm': BooleanConstructor\n '--use-pnpm': BooleanConstructor\n '--use-yarn': BooleanConstructor\n\n // Aliases\n\n '-e': string\n '-h': string\n '-n': string\n '-t': string\n}\n\nexport type CliArgs = arg.Result<Args>\n\nexport type ProjectTemplate = GitTemplate | PluginTemplate\n\nexport type ProjectExample = {\n name: string\n url: string\n}\n\n/**\n * Template that is cloned verbatim from a git repo\n * Performs .env manipulation based upon input\n */\nexport interface GitTemplate extends Template {\n type: 'starter'\n url: string\n}\n\n/**\n * Type specifically for the plugin template\n * No .env manipulation is done\n */\nexport interface PluginTemplate extends Template {\n type: 'plugin'\n url: string\n}\n\ninterface Template {\n dbType?: DbType\n description?: string\n name: string\n type: ProjectTemplate['type']\n}\n\nexport type PackageManager = 'bun' | 'npm' | 'pnpm' | 'yarn'\n\nexport type DbType = (typeof ALL_DATABASE_ADAPTERS)[number]\n\nexport type DbDetails = {\n dbUri?: string\n type: DbType\n}\n\nexport type NextAppDetails = {\n hasTopLevelLayout: boolean\n isPayloadInstalled?: boolean\n isSrcDir: boolean\n isSupportedNextVersion: boolean\n nextAppDir?: string\n nextConfigPath?: string\n nextConfigType?: NextConfigType\n nextVersion: null | string\n}\n\nexport type NextConfigType = 'cjs' | 'esm' | 'ts'\n\nexport type TanStackAppKind = 'router-only' | 'start'\n\nexport type TanStackAppDetails = {\n isPayloadInstalled: boolean\n kind: TanStackAppKind\n projectDir: string\n rootRoutePath: string\n routerPath: string\n routesDir: string\n sourceDir: string\n viteConfigPath: string\n}\n\nexport type TanStackDetectionResult =\n | { compatible: false; detected: true; reason: string }\n | { compatible: true; details: TanStackAppDetails; detected: true }\n | { detected: false }\n\nexport type StorageAdapterType = (typeof ALL_STORAGE_ADAPTERS)[number]\n"],"names":[],"mappings":"AAgHA,WAAsE"}
@@ -3,6 +3,7 @@ export declare const welcomeMessage: string;
3
3
  export declare function helpMessage(): void;
4
4
  export declare function successMessage(projectDir: string, packageManager: PackageManager): string;
5
5
  export declare function successfulNextInit(): string;
6
+ export declare function successfulTanStackInit(): string;
6
7
  export declare function moveMessage(args: {
7
8
  nextAppDir: string;
8
9
  projectDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAA;AAMlE,eAAO,MAAM,cAAc,QAE1B,CAAA;AAID,wBAAgB,WAAW,IAAI,IAAI,CAmClC;AAQD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,MAAM,CAiBzF;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAO3C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAgBpF;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAA;AAOlE,eAAO,MAAM,cAAc,QAE1B,CAAA;AAID,wBAAgB,WAAW,IAAI,IAAI,CAgClC;AAQD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,MAAM,CAiBzF;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAWD,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAgBpF;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
@@ -2,6 +2,7 @@
2
2
  import path from 'path';
3
3
  import terminalLink from 'terminal-link';
4
4
  import { getValidTemplates } from '../lib/templates.js';
5
+ import { DEFAULT_PAYLOAD_VERSION_TAG } from './resolvePackageVersion.js';
5
6
  const header = (message)=>chalk.bold(message);
6
7
  export const welcomeMessage = chalk`
7
8
  {green Welcome to Payload. Let's create a project! }
@@ -12,7 +13,7 @@ export function helpMessage() {
12
13
  console.log(chalk`
13
14
  {bold USAGE}
14
15
 
15
- {dim Inside of an existing Next.js project}
16
+ {dim Inside of an existing Next.js or TanStack project}
16
17
 
17
18
  {dim $} {bold npx create-payload-app}
18
19
 
@@ -30,16 +31,13 @@ export function helpMessage() {
30
31
 
31
32
  {dim Available templates: ${formatTemplates(validTemplates)}}
32
33
 
33
- -a {underline agent_name} Set coding agent (claude, codex, cursor)
34
-
35
- {dim Installs the Payload skill for the selected agent}
36
-
37
- --no-agent Skip agent skill installation
34
+ --no-agent Skip writing AGENTS.md
38
35
  --use-npm Use npm to install dependencies
39
36
  --use-yarn Use yarn to install dependencies
40
37
  --use-pnpm Use pnpm to install dependencies
41
38
  --use-bun Use bun to install dependencies (experimental)
42
39
  --no-deps Do not install any dependencies
40
+ --payload-version {underline value} Install a specific Payload version or npm dist-tag (default: ${DEFAULT_PAYLOAD_VERSION_TAG})
43
41
  -h Show help
44
42
  `);
45
43
  }
@@ -62,6 +60,12 @@ ${header('Documentation:')}
62
60
  `;
63
61
  }
64
62
  export function successfulNextInit() {
63
+ return successfulFrameworkInit();
64
+ }
65
+ export function successfulTanStackInit() {
66
+ return successfulFrameworkInit();
67
+ }
68
+ function successfulFrameworkInit() {
65
69
  return `- ${createTerminalLink('Getting Started', 'https://payloadcms.com/docs/getting-started/what-is-payload')}
66
70
  - ${createTerminalLink('Configuration', 'https://payloadcms.com/docs/configuration/overview')}
67
71
  `;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/messages.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport chalk from 'chalk'\nimport path from 'path'\nimport terminalLink from 'terminal-link'\n\nimport type { PackageManager, ProjectTemplate } from '../types.js'\n\nimport { getValidTemplates } from '../lib/templates.js'\n\nconst header = (message: string): string => chalk.bold(message)\n\nexport const welcomeMessage = chalk`\n {green Welcome to Payload. Let's create a project! }\n`\n\nconst spacer = ' '.repeat(8)\n\nexport function helpMessage(): void {\n const validTemplates = getValidTemplates()\n console.log(chalk`\n {bold USAGE}\n\n {dim Inside of an existing Next.js project}\n\n {dim $} {bold npx create-payload-app}\n\n {dim Create a new project from scratch}\n\n {dim $} {bold npx create-payload-app}\n {dim $} {bold npx create-payload-app} my-project\n {dim $} {bold npx create-payload-app} -n my-project -t template-name\n\n {bold OPTIONS}\n\n -n {underline my-payload-app} Set project name\n -t {underline template_name} Choose specific template\n -e {underline example_name} Choose specific example\n\n {dim Available templates: ${formatTemplates(validTemplates)}}\n\n -a {underline agent_name} Set coding agent (claude, codex, cursor)\n\n {dim Installs the Payload skill for the selected agent}\n\n --no-agent Skip agent skill installation\n --use-npm Use npm to install dependencies\n --use-yarn Use yarn to install dependencies\n --use-pnpm Use pnpm to install dependencies\n --use-bun Use bun to install dependencies (experimental)\n --no-deps Do not install any dependencies\n -h Show help\n`)\n}\n\nfunction formatTemplates(templates: ProjectTemplate[]) {\n return `\\n\\n${spacer}${templates\n .map((t) => `${t.name}${' '.repeat(28 - t.name.length)}${t.description}`)\n .join(`\\n${spacer}`)}`\n}\n\nexport function successMessage(projectDir: string, packageManager: PackageManager): string {\n const relativePath = path.relative(process.cwd(), projectDir)\n return `\n${header('Launch Application:')}\n\n - cd ./${relativePath}\n - ${packageManager === 'npm' ? 'npm run' : packageManager} dev or follow directions in README.md\n\n${header('Documentation:')}\n\n - ${createTerminalLink(\n 'Getting Started',\n 'https://payloadcms.com/docs/getting-started/what-is-payload',\n )}\n - ${createTerminalLink('Configuration', 'https://payloadcms.com/docs/configuration/overview')}\n\n`\n}\n\nexport function successfulNextInit(): string {\n return `- ${createTerminalLink(\n 'Getting Started',\n 'https://payloadcms.com/docs/getting-started/what-is-payload',\n )}\n- ${createTerminalLink('Configuration', 'https://payloadcms.com/docs/configuration/overview')}\n`\n}\n\nexport function moveMessage(args: { nextAppDir: string; projectDir: string }): string {\n const relativeAppDir = path.relative(process.cwd(), args.nextAppDir)\n return `\n${header('Next Steps:')}\n\nPayload does not support a top-level layout.tsx file in the app directory.\n\n${chalk.bold('To continue:')}\n\n- Create a new directory in ./${relativeAppDir} such as ./${relativeAppDir}/${chalk.bold('(app)')}\n- Move all files from ./${relativeAppDir} into that directory\n\nIt is recommended to do this from your IDE if your app has existing file references.\n\nOnce moved, rerun the create-payload-app command again.\n`\n}\n\nexport function feedbackOutro(): string {\n return `${chalk.bgCyan(chalk.black(' Have feedback? '))} Visit us on ${createTerminalLink('GitHub', 'https://github.com/payloadcms/payload')}.`\n}\n\n// Create terminalLink with fallback for unsupported terminals\nfunction createTerminalLink(text: string, url: string) {\n return terminalLink(text, url, {\n fallback: (text, url) => `${text}: ${url}`,\n })\n}\n"],"names":["chalk","path","terminalLink","getValidTemplates","header","message","bold","welcomeMessage","spacer","repeat","helpMessage","validTemplates","console","log","formatTemplates","templates","map","t","name","length","description","join","successMessage","projectDir","packageManager","relativePath","relative","process","cwd","createTerminalLink","successfulNextInit","moveMessage","args","relativeAppDir","nextAppDir","feedbackOutro","bgCyan","black","text","url","fallback"],"mappings":"AAAA,6BAA6B,GAC7B,OAAOA,WAAW,QAAO;AACzB,OAAOC,UAAU,OAAM;AACvB,OAAOC,kBAAkB,gBAAe;AAIxC,SAASC,iBAAiB,QAAQ,sBAAqB;AAEvD,MAAMC,SAAS,CAACC,UAA4BL,MAAMM,IAAI,CAACD;AAEvD,OAAO,MAAME,iBAAiBP,KAAK,CAAC;;AAEpC,CAAC,CAAA;AAED,MAAMQ,SAAS,IAAIC,MAAM,CAAC;AAE1B,OAAO,SAASC;IACd,MAAMC,iBAAiBR;IACvBS,QAAQC,GAAG,CAACb,KAAK,CAAC;;;;;;;;;;;;;;;;;;;kCAmBc,EAAEc,gBAAgBH,gBAAgB;;;;;;;;;;;;;AAapE,CAAC;AACD;AAEA,SAASG,gBAAgBC,SAA4B;IACnD,OAAO,CAAC,IAAI,EAAEP,SAASO,UACpBC,GAAG,CAAC,CAACC,IAAM,GAAGA,EAAEC,IAAI,GAAG,IAAIT,MAAM,CAAC,KAAKQ,EAAEC,IAAI,CAACC,MAAM,IAAIF,EAAEG,WAAW,EAAE,EACvEC,IAAI,CAAC,CAAC,EAAE,EAAEb,QAAQ,GAAG;AAC1B;AAEA,OAAO,SAASc,eAAeC,UAAkB,EAAEC,cAA8B;IAC/E,MAAMC,eAAexB,KAAKyB,QAAQ,CAACC,QAAQC,GAAG,IAAIL;IAClD,OAAO,CAAC;AACV,EAAEnB,OAAO,uBAAuB;;SAEvB,EAAEqB,aAAa;IACpB,EAAED,mBAAmB,QAAQ,YAAYA,eAAe;;AAE5D,EAAEpB,OAAO,kBAAkB;;IAEvB,EAAEyB,mBACF,mBACA,+DACA;IACA,EAAEA,mBAAmB,iBAAiB,sDAAsD;;AAEhG,CAAC;AACD;AAEA,OAAO,SAASC;IACd,OAAO,CAAC,EAAE,EAAED,mBACV,mBACA,+DACA;EACF,EAAEA,mBAAmB,iBAAiB,sDAAsD;AAC9F,CAAC;AACD;AAEA,OAAO,SAASE,YAAYC,IAAgD;IAC1E,MAAMC,iBAAiBhC,KAAKyB,QAAQ,CAACC,QAAQC,GAAG,IAAII,KAAKE,UAAU;IACnE,OAAO,CAAC;AACV,EAAE9B,OAAO,eAAe;;;;AAIxB,EAAEJ,MAAMM,IAAI,CAAC,gBAAgB;;8BAEC,EAAE2B,eAAe,WAAW,EAAEA,eAAe,CAAC,EAAEjC,MAAMM,IAAI,CAAC,SAAS;wBAC1E,EAAE2B,eAAe;;;;;AAKzC,CAAC;AACD;AAEA,OAAO,SAASE;IACd,OAAO,GAAGnC,MAAMoC,MAAM,CAACpC,MAAMqC,KAAK,CAAC,qBAAqB,aAAa,EAAER,mBAAmB,UAAU,yCAAyC,CAAC,CAAC;AACjJ;AAEA,8DAA8D;AAC9D,SAASA,mBAAmBS,IAAY,EAAEC,GAAW;IACnD,OAAOrC,aAAaoC,MAAMC,KAAK;QAC7BC,UAAU,CAACF,MAAMC,MAAQ,GAAGD,KAAK,EAAE,EAAEC,KAAK;IAC5C;AACF"}
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'\nimport { DEFAULT_PAYLOAD_VERSION_TAG } from './resolvePackageVersion.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: ${DEFAULT_PAYLOAD_VERSION_TAG})\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","DEFAULT_PAYLOAD_VERSION_TAG","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;AACvD,SAASC,2BAA2B,QAAQ,6BAA4B;AAExE,MAAMC,SAAS,CAACC,UAA4BN,MAAMO,IAAI,CAACD;AAEvD,OAAO,MAAME,iBAAiBR,KAAK,CAAC;;AAEpC,CAAC,CAAA;AAED,MAAMS,SAAS,IAAIC,MAAM,CAAC;AAE1B,OAAO,SAASC;IACd,MAAMC,iBAAiBT;IACvBU,QAAQC,GAAG,CAACd,KAAK,CAAC;;;;;;;;;;;;;;;;;;;kCAmBc,EAAEe,gBAAgBH,gBAAgB;;;;;;;;6GAQyC,EAAER,4BAA4B;;AAE3I,CAAC;AACD;AAEA,SAASW,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,eAAezB,KAAK0B,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,iBAAiBnC,KAAK0B,QAAQ,CAACC,QAAQC,GAAG,IAAIM,KAAKE,UAAU;IACnE,OAAO,CAAC;AACV,EAAEhC,OAAO,eAAe;;;;AAIxB,EAAEL,MAAMO,IAAI,CAAC,gBAAgB;;8BAEC,EAAE6B,eAAe,WAAW,EAAEA,eAAe,CAAC,EAAEpC,MAAMO,IAAI,CAAC,SAAS;wBAC1E,EAAE6B,eAAe;;;;;AAKzC,CAAC;AACD;AAEA,OAAO,SAASE;IACd,OAAO,GAAGtC,MAAMuC,MAAM,CAACvC,MAAMwC,KAAK,CAAC,qBAAqB,aAAa,EAAEV,mBAAmB,UAAU,yCAAyC,CAAC,CAAC;AACjJ;AAEA,8DAA8D;AAC9D,SAASA,mBAAmBW,IAAY,EAAEC,GAAW;IACnD,OAAOxC,aAAauC,MAAMC,KAAK;QAC7BC,UAAU,CAACF,MAAMC,MAAQ,GAAGD,KAAK,EAAE,EAAEC,KAAK;IAC5C;AACF"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Default npm dist-tag used by the create-payload-app CLI when no
3
+ * `--payload-version` is provided.
4
+ */
5
+ export declare const DEFAULT_PAYLOAD_VERSION_TAG: string;
6
+ /**
7
+ * Every package in the monorepo (this one included) is versioned and published in
8
+ * lockstep, so the CLI's own prerelease id is the dist-tag it was installed under
9
+ * (`create-payload-app@beta` -> `beta`). Stable builds resolve to `latest`.
10
+ */
11
+ export declare function resolveDefaultPayloadTag(version?: string | undefined): string;
12
+ /**
13
+ * Resolves a package version from either an npm dist-tag (e.g. `beta`) or an
14
+ * explicit version number (e.g. `3.40.0`).
15
+ *
16
+ * A value matching a published dist-tag resolves to that tag's concrete version.
17
+ * Any other value is treated as an explicit version and verified to exist on the
18
+ * registry. Throws if neither a matching tag nor a published version is found.
19
+ */
20
+ export declare function resolvePackageVersion({ debug, packageName, versionOrTag, }: {
21
+ debug?: boolean;
22
+ /**
23
+ * Package name to resolve against the npm registry.
24
+ *
25
+ * @default 'payload'
26
+ */
27
+ packageName?: string;
28
+ /**
29
+ * An npm dist-tag (e.g. `latest`, `beta`) or an explicit version (e.g. `3.40.0`).
30
+ *
31
+ * @default 'latest'
32
+ */
33
+ versionOrTag?: string;
34
+ }): Promise<string>;
35
+ //# sourceMappingURL=resolvePackageVersion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePackageVersion.d.ts","sourceRoot":"","sources":["../../src/utils/resolvePackageVersion.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAA6B,CAAA;AAErE;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,MAAM,GAAG,SAA4B,GAAG,MAAM,CAE/F;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,KAAa,EACb,WAAuB,EACvB,YAAuB,GACxB,EAAE;IACD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlB"}
@@ -0,0 +1,62 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { dirname, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ /** Dist-tag used when the CLI's own version carries no prerelease id. */ const STABLE_TAG = 'latest';
5
+ /** Captures the prerelease id, e.g. `beta` from `4.0.0-beta.3`. */ const PRERELEASE_ID_PATTERN = /^\d+\.\d+\.\d+-([\da-z-]+)/i;
6
+ /**
7
+ * Default npm dist-tag used by the create-payload-app CLI when no
8
+ * `--payload-version` is provided.
9
+ */ export const DEFAULT_PAYLOAD_VERSION_TAG = resolveDefaultPayloadTag();
10
+ /**
11
+ * Every package in the monorepo (this one included) is versioned and published in
12
+ * lockstep, so the CLI's own prerelease id is the dist-tag it was installed under
13
+ * (`create-payload-app@beta` -> `beta`). Stable builds resolve to `latest`.
14
+ */ export function resolveDefaultPayloadTag(version = readOwnVersion()) {
15
+ return version?.match(PRERELEASE_ID_PATTERN)?.[1] ?? STABLE_TAG;
16
+ }
17
+ /**
18
+ * Resolves a package version from either an npm dist-tag (e.g. `beta`) or an
19
+ * explicit version number (e.g. `3.40.0`).
20
+ *
21
+ * A value matching a published dist-tag resolves to that tag's concrete version.
22
+ * Any other value is treated as an explicit version and verified to exist on the
23
+ * registry. Throws if neither a matching tag nor a published version is found.
24
+ */ export async function resolvePackageVersion({ debug = false, packageName = 'payload', versionOrTag = 'latest' }) {
25
+ const distTags = await fetchDistTags(packageName);
26
+ const taggedVersion = distTags[versionOrTag];
27
+ if (taggedVersion) {
28
+ if (debug) {
29
+ console.log(`Resolved ${packageName}@${versionOrTag} to ${taggedVersion}`);
30
+ }
31
+ return taggedVersion;
32
+ }
33
+ await verifyVersionExists({
34
+ packageName,
35
+ version: versionOrTag
36
+ });
37
+ if (debug) {
38
+ console.log(`Using ${packageName}@${versionOrTag}`);
39
+ }
40
+ return versionOrTag;
41
+ }
42
+ async function fetchDistTags(packageName) {
43
+ const response = await fetch(`https://registry.npmjs.org/-/package/${packageName}/dist-tags`);
44
+ return await response.json();
45
+ }
46
+ async function verifyVersionExists({ packageName, version }) {
47
+ const response = await fetch(`https://registry.npmjs.org/${packageName}/${version}`);
48
+ if (response.status !== 200) {
49
+ throw new Error(`No version or tag "${version}" found for package: ${packageName}`);
50
+ }
51
+ }
52
+ function readOwnVersion() {
53
+ try {
54
+ const pkgPath = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..', 'package.json');
55
+ const { version } = JSON.parse(readFileSync(pkgPath, 'utf8'));
56
+ return typeof version === 'string' ? version : undefined;
57
+ } catch {
58
+ return undefined;
59
+ }
60
+ }
61
+
62
+ //# sourceMappingURL=resolvePackageVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/resolvePackageVersion.ts"],"sourcesContent":["import { readFileSync } from 'node:fs'\nimport { dirname, resolve } from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\n/** Dist-tag used when the CLI's own version carries no prerelease id. */\nconst STABLE_TAG = 'latest'\n\n/** Captures the prerelease id, e.g. `beta` from `4.0.0-beta.3`. */\nconst PRERELEASE_ID_PATTERN = /^\\d+\\.\\d+\\.\\d+-([\\da-z-]+)/i\n\n/**\n * Default npm dist-tag used by the create-payload-app CLI when no\n * `--payload-version` is provided.\n */\nexport const DEFAULT_PAYLOAD_VERSION_TAG = resolveDefaultPayloadTag()\n\n/**\n * Every package in the monorepo (this one included) is versioned and published in\n * lockstep, so the CLI's own prerelease id is the dist-tag it was installed under\n * (`create-payload-app@beta` -> `beta`). Stable builds resolve to `latest`.\n */\nexport function resolveDefaultPayloadTag(version: string | undefined = readOwnVersion()): string {\n return version?.match(PRERELEASE_ID_PATTERN)?.[1] ?? STABLE_TAG\n}\n\n/**\n * Resolves a package version from either an npm dist-tag (e.g. `beta`) or an\n * explicit version number (e.g. `3.40.0`).\n *\n * A value matching a published dist-tag resolves to that tag's concrete version.\n * Any other value is treated as an explicit version and verified to exist on the\n * registry. Throws if neither a matching tag nor a published version is found.\n */\nexport async function resolvePackageVersion({\n debug = false,\n packageName = 'payload',\n versionOrTag = 'latest',\n}: {\n debug?: boolean\n /**\n * Package name to resolve against the npm registry.\n *\n * @default 'payload'\n */\n packageName?: string\n /**\n * An npm dist-tag (e.g. `latest`, `beta`) or an explicit version (e.g. `3.40.0`).\n *\n * @default 'latest'\n */\n versionOrTag?: string\n}): Promise<string> {\n const distTags = await fetchDistTags(packageName)\n\n const taggedVersion = distTags[versionOrTag]\n if (taggedVersion) {\n if (debug) {\n console.log(`Resolved ${packageName}@${versionOrTag} to ${taggedVersion}`)\n }\n return taggedVersion\n }\n\n await verifyVersionExists({ packageName, version: versionOrTag })\n\n if (debug) {\n console.log(`Using ${packageName}@${versionOrTag}`)\n }\n return versionOrTag\n}\n\nasync function fetchDistTags(packageName: string): Promise<Record<string, string>> {\n const response = await fetch(`https://registry.npmjs.org/-/package/${packageName}/dist-tags`)\n return (await response.json()) as Record<string, string>\n}\n\nasync function verifyVersionExists({\n packageName,\n version,\n}: {\n packageName: string\n version: string\n}): Promise<void> {\n const response = await fetch(`https://registry.npmjs.org/${packageName}/${version}`)\n if (response.status !== 200) {\n throw new Error(`No version or tag \"${version}\" found for package: ${packageName}`)\n }\n}\n\nfunction readOwnVersion(): string | undefined {\n try {\n const pkgPath = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..', 'package.json')\n const { version } = JSON.parse(readFileSync(pkgPath, 'utf8')) as { version?: unknown }\n return typeof version === 'string' ? version : undefined\n } catch {\n return undefined\n }\n}\n"],"names":["readFileSync","dirname","resolve","fileURLToPath","STABLE_TAG","PRERELEASE_ID_PATTERN","DEFAULT_PAYLOAD_VERSION_TAG","resolveDefaultPayloadTag","version","readOwnVersion","match","resolvePackageVersion","debug","packageName","versionOrTag","distTags","fetchDistTags","taggedVersion","console","log","verifyVersionExists","response","fetch","json","status","Error","pkgPath","url","JSON","parse","undefined"],"mappings":"AAAA,SAASA,YAAY,QAAQ,UAAS;AACtC,SAASC,OAAO,EAAEC,OAAO,QAAQ,YAAW;AAC5C,SAASC,aAAa,QAAQ,WAAU;AAExC,uEAAuE,GACvE,MAAMC,aAAa;AAEnB,iEAAiE,GACjE,MAAMC,wBAAwB;AAE9B;;;CAGC,GACD,OAAO,MAAMC,8BAA8BC,2BAA0B;AAErE;;;;CAIC,GACD,OAAO,SAASA,yBAAyBC,UAA8BC,gBAAgB;IACrF,OAAOD,SAASE,MAAML,wBAAwB,CAAC,EAAE,IAAID;AACvD;AAEA;;;;;;;CAOC,GACD,OAAO,eAAeO,sBAAsB,EAC1CC,QAAQ,KAAK,EACbC,cAAc,SAAS,EACvBC,eAAe,QAAQ,EAexB;IACC,MAAMC,WAAW,MAAMC,cAAcH;IAErC,MAAMI,gBAAgBF,QAAQ,CAACD,aAAa;IAC5C,IAAIG,eAAe;QACjB,IAAIL,OAAO;YACTM,QAAQC,GAAG,CAAC,CAAC,SAAS,EAAEN,YAAY,CAAC,EAAEC,aAAa,IAAI,EAAEG,eAAe;QAC3E;QACA,OAAOA;IACT;IAEA,MAAMG,oBAAoB;QAAEP;QAAaL,SAASM;IAAa;IAE/D,IAAIF,OAAO;QACTM,QAAQC,GAAG,CAAC,CAAC,MAAM,EAAEN,YAAY,CAAC,EAAEC,cAAc;IACpD;IACA,OAAOA;AACT;AAEA,eAAeE,cAAcH,WAAmB;IAC9C,MAAMQ,WAAW,MAAMC,MAAM,CAAC,qCAAqC,EAAET,YAAY,UAAU,CAAC;IAC5F,OAAQ,MAAMQ,SAASE,IAAI;AAC7B;AAEA,eAAeH,oBAAoB,EACjCP,WAAW,EACXL,OAAO,EAIR;IACC,MAAMa,WAAW,MAAMC,MAAM,CAAC,2BAA2B,EAAET,YAAY,CAAC,EAAEL,SAAS;IACnF,IAAIa,SAASG,MAAM,KAAK,KAAK;QAC3B,MAAM,IAAIC,MAAM,CAAC,mBAAmB,EAAEjB,QAAQ,qBAAqB,EAAEK,aAAa;IACpF;AACF;AAEA,SAASJ;IACP,IAAI;QACF,MAAMiB,UAAUxB,QAAQD,QAAQE,cAAc,YAAYwB,GAAG,IAAI,MAAM,MAAM;QAC7E,MAAM,EAAEnB,OAAO,EAAE,GAAGoB,KAAKC,KAAK,CAAC7B,aAAa0B,SAAS;QACrD,OAAO,OAAOlB,YAAY,WAAWA,UAAUsB;IACjD,EAAE,OAAM;QACN,OAAOA;IACT;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-payload-app",
3
- "version": "3.91.0-internal.c1569dc",
3
+ "version": "4.0.0-beta.0",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,9 +24,9 @@
24
24
  "require": "./src/types.ts"
25
25
  },
26
26
  "./commands": {
27
- "import": "./src/lib/init-next.ts",
28
- "require": "./src/lib/init-next.ts",
29
- "types": "./src/lib/init-next.ts"
27
+ "import": "./src/commands.ts",
28
+ "require": "./src/commands.ts",
29
+ "types": "./src/commands.ts"
30
30
  },
31
31
  "./lib/*": {
32
32
  "import": "./src/lib/*",
@@ -62,15 +62,15 @@
62
62
  "prettier": "^3.5.0",
63
63
  "tar": "^7.5.22",
64
64
  "terminal-link": "^2.1.1",
65
- "ts-morph": "^21.0.1"
65
+ "ts-morph": "^28.0.0"
66
66
  },
67
67
  "devDependencies": {
68
68
  "@types/esprima": "^4.0.6",
69
69
  "@types/fs-extra": "^9.0.12",
70
- "@types/node": "22.15.30"
70
+ "@types/node": "24.12.3"
71
71
  },
72
72
  "engines": {
73
- "node": "^18.20.2 || >=20.9.0"
73
+ "node": ">=24.15.0"
74
74
  },
75
75
  "scripts": {
76
76
  "build": "pnpm pack-template-files && pnpm typecheck && pnpm build:swc",
@@ -80,7 +80,7 @@
80
80
  "lint": "eslint .",
81
81
  "lint:fix": "eslint . --fix",
82
82
  "pack-template-files": "node --no-deprecation --import @swc-node/register/esm-register src/scripts/pack-template-files.ts",
83
- "test": "jest",
83
+ "test": "vitest --run",
84
84
  "typecheck": "tsc"
85
85
  }
86
86
  }