create-payload-app 4.0.0-internal.2fddfc0 → 4.0.0-internal.31ba7ee
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/README.md +5 -0
- package/dist/commands.d.ts +4 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +5 -0
- package/dist/commands.js.map +1 -0
- package/dist/lib/agent-config.d.ts +12 -0
- package/dist/lib/agent-config.d.ts.map +1 -0
- package/dist/lib/agent-config.js +15 -0
- package/dist/lib/agent-config.js.map +1 -0
- package/dist/lib/ast/adapter-config.d.ts.map +1 -1
- package/dist/lib/ast/adapter-config.js +0 -10
- package/dist/lib/ast/adapter-config.js.map +1 -1
- package/dist/lib/ast/package-json.d.ts +9 -0
- package/dist/lib/ast/package-json.d.ts.map +1 -1
- package/dist/lib/ast/package-json.js +34 -8
- package/dist/lib/ast/package-json.js.map +1 -1
- package/dist/lib/ast/types.d.ts +2 -2
- package/dist/lib/ast/types.d.ts.map +1 -1
- package/dist/lib/ast/types.js +0 -1
- package/dist/lib/ast/types.js.map +1 -1
- package/dist/lib/configure-payload-tsconfig.d.ts +5 -0
- package/dist/lib/configure-payload-tsconfig.d.ts.map +1 -0
- package/dist/lib/configure-payload-tsconfig.js +26 -0
- package/dist/lib/configure-payload-tsconfig.js.map +1 -0
- package/dist/lib/configure-plugin-project.d.ts.map +1 -1
- package/dist/lib/configure-pnpm-builds.d.ts +20 -0
- package/dist/lib/configure-pnpm-builds.d.ts.map +1 -0
- package/dist/lib/configure-pnpm-builds.js +100 -0
- package/dist/lib/configure-pnpm-builds.js.map +1 -0
- package/dist/lib/create-project.d.ts +1 -2
- package/dist/lib/create-project.d.ts.map +1 -1
- package/dist/lib/create-project.js +61 -29
- package/dist/lib/create-project.js.map +1 -1
- package/dist/lib/generate-secret.js +1 -1
- package/dist/lib/generate-secret.js.map +1 -1
- package/dist/lib/get-package-manager.d.ts +9 -0
- package/dist/lib/get-package-manager.d.ts.map +1 -1
- package/dist/lib/get-package-manager.js +20 -0
- package/dist/lib/get-package-manager.js.map +1 -1
- package/dist/lib/init-next.d.ts.map +1 -1
- package/dist/lib/init-next.js +10 -34
- package/dist/lib/init-next.js.map +1 -1
- package/dist/lib/init-tanstack.d.ts +18 -0
- package/dist/lib/init-tanstack.d.ts.map +1 -0
- package/dist/lib/init-tanstack.js +150 -0
- package/dist/lib/init-tanstack.js.map +1 -0
- package/dist/lib/tanstack/detect.d.ts +5 -0
- package/dist/lib/tanstack/detect.d.ts.map +1 -0
- package/dist/lib/tanstack/detect.js +131 -0
- package/dist/lib/tanstack/detect.js.map +1 -0
- package/dist/lib/tanstack/prepare.d.ts +23 -0
- package/dist/lib/tanstack/prepare.d.ts.map +1 -0
- package/dist/lib/tanstack/prepare.js +114 -0
- package/dist/lib/tanstack/prepare.js.map +1 -0
- package/dist/lib/tanstack/template-files.d.ts +50 -0
- package/dist/lib/tanstack/template-files.d.ts.map +1 -0
- package/dist/lib/tanstack/template-files.js +64 -0
- package/dist/lib/tanstack/template-files.js.map +1 -0
- package/dist/lib/tanstack/transform-root-route.d.ts +7 -0
- package/dist/lib/tanstack/transform-root-route.d.ts.map +1 -0
- package/dist/lib/tanstack/transform-root-route.js +747 -0
- package/dist/lib/tanstack/transform-root-route.js.map +1 -0
- package/dist/lib/tanstack/transform-router.d.ts +5 -0
- package/dist/lib/tanstack/transform-router.d.ts.map +1 -0
- package/dist/lib/tanstack/transform-router.js +301 -0
- package/dist/lib/tanstack/transform-router.js.map +1 -0
- package/dist/lib/tanstack/transform-vite-config.d.ts +14 -0
- package/dist/lib/tanstack/transform-vite-config.d.ts.map +1 -0
- package/dist/lib/tanstack/transform-vite-config.js +576 -0
- package/dist/lib/tanstack/transform-vite-config.js.map +1 -0
- package/dist/lib/templates.d.ts.map +1 -1
- package/dist/lib/templates.js +6 -0
- package/dist/lib/templates.js.map +1 -1
- package/dist/lib/update-payload-in-project.d.ts +18 -3
- package/dist/lib/update-payload-in-project.d.ts.map +1 -1
- package/dist/lib/update-payload-in-project.js +98 -18
- package/dist/lib/update-payload-in-project.js.map +1 -1
- package/dist/lib/wrap-next-config.d.ts.map +1 -1
- package/dist/main.d.ts +20 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +120 -30
- package/dist/main.js.map +1 -1
- package/dist/scripts/pack-template-files.js +18 -0
- package/dist/scripts/pack-template-files.js.map +1 -1
- package/dist/template/src/app/(frontend)/styles.css +8 -1
- package/dist/template/src/app/(payload)/admin/[[...segments]]/not-found.tsx +1 -2
- package/dist/template/src/app/(payload)/admin/[[...segments]]/page.tsx +1 -2
- package/dist/template/src/app/(payload)/api/[...slug]/route.ts +1 -2
- package/dist/template/src/app/(payload)/api/graphql/route.ts +1 -2
- package/dist/template/src/app/(payload)/api/graphql-playground/route.ts +1 -2
- package/dist/template/src/app/(payload)/layout.tsx +9 -4
- package/dist/template-tanstack/routes/_payload/admin.$.tsx +9 -0
- package/dist/template-tanstack/routes/_payload/admin.index.tsx +9 -0
- package/dist/template-tanstack/routes/_payload/api.$.ts +11 -0
- package/dist/template-tanstack/routes/_payload/importMap.js +32 -0
- package/dist/template-tanstack/routes/_payload/server.functions.ts +50 -0
- package/dist/template-tanstack/routes/_payload.tsx +31 -0
- package/dist/template-tanstack/src/collections/Folders.ts +16 -0
- package/dist/template-tanstack/src/collections/Media.ts +20 -0
- package/dist/template-tanstack/src/collections/Tags.ts +16 -0
- package/dist/template-tanstack/src/collections/Users.ts +14 -0
- package/dist/template-tanstack/src/payload.config.ts +40 -0
- package/dist/template-tanstack/src/payload.css +1 -0
- package/dist/types.d.ts +22 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/casing.d.ts.map +1 -1
- package/dist/utils/log.d.ts.map +1 -1
- package/dist/utils/messages.d.ts +1 -0
- package/dist/utils/messages.d.ts.map +1 -1
- package/dist/utils/messages.js +8 -6
- package/dist/utils/messages.js.map +1 -1
- package/package.json +5 -5
- package/dist/ast-integration.spec.js +0 -132
- package/dist/ast-integration.spec.js.map +0 -1
- package/dist/lib/ast/package-json.spec.js +0 -67
- package/dist/lib/ast/package-json.spec.js.map +0 -1
- package/dist/lib/ast/payload-config.spec.js +0 -365
- package/dist/lib/ast/payload-config.spec.js.map +0 -1
- package/dist/lib/ast/utils.spec.js +0 -226
- package/dist/lib/ast/utils.spec.js.map +0 -1
- package/dist/lib/create-project.spec.js +0 -190
- package/dist/lib/create-project.spec.js.map +0 -1
- package/dist/lib/download-skill.d.ts +0 -8
- package/dist/lib/download-skill.d.ts.map +0 -1
- package/dist/lib/download-skill.js +0 -35
- package/dist/lib/download-skill.js.map +0 -1
- package/dist/lib/manage-env-files.spec.js +0 -118
- package/dist/lib/manage-env-files.spec.js.map +0 -1
- package/dist/lib/select-agent.d.ts +0 -16
- package/dist/lib/select-agent.d.ts.map +0 -1
- package/dist/lib/select-agent.js +0 -67
- package/dist/lib/select-agent.js.map +0 -1
- package/dist/lib/wrap-next-config.spec.js +0 -167
- package/dist/lib/wrap-next-config.spec.js.map +0 -1
- package/dist/utils/resolvePackageVersion.spec.js +0 -77
- package/dist/utils/resolvePackageVersion.spec.js.map +0 -1
- /package/dist/template/src/app/(payload)/{custom.scss → custom.css} +0 -0
package/dist/utils/log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/utils/log.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/utils/log.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,YAAa,MAAM,KAAG,IAEzC,CAAA;AAED,eAAO,MAAM,IAAI,YAAa,MAAM,KAAG,IAEtC,CAAA;AAED,eAAO,MAAM,KAAK,YAAa,MAAM,KAAG,IAEvC,CAAA;AAED,eAAO,MAAM,KAAK,YAAa,MAAM,KAAG,IAIvC,CAAA;AAED,eAAO,MAAM,GAAG,YAAa,MAAM,KAAG,IAErC,CAAA"}
|
package/dist/utils/messages.d.ts
CHANGED
|
@@ -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,
|
|
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,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"}
|
package/dist/utils/messages.js
CHANGED
|
@@ -12,7 +12,7 @@ export function helpMessage() {
|
|
|
12
12
|
console.log(chalk`
|
|
13
13
|
{bold USAGE}
|
|
14
14
|
|
|
15
|
-
{dim Inside of an existing Next.js project}
|
|
15
|
+
{dim Inside of an existing Next.js or TanStack project}
|
|
16
16
|
|
|
17
17
|
{dim $} {bold npx create-payload-app}
|
|
18
18
|
|
|
@@ -30,11 +30,7 @@ export function helpMessage() {
|
|
|
30
30
|
|
|
31
31
|
{dim Available templates: ${formatTemplates(validTemplates)}}
|
|
32
32
|
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
{dim Installs the Payload skill for the selected agent}
|
|
36
|
-
|
|
37
|
-
--no-agent Skip agent skill installation
|
|
33
|
+
--no-agent Skip writing AGENTS.md
|
|
38
34
|
--use-npm Use npm to install dependencies
|
|
39
35
|
--use-yarn Use yarn to install dependencies
|
|
40
36
|
--use-pnpm Use pnpm to install dependencies
|
|
@@ -63,6 +59,12 @@ ${header('Documentation:')}
|
|
|
63
59
|
`;
|
|
64
60
|
}
|
|
65
61
|
export function successfulNextInit() {
|
|
62
|
+
return successfulFrameworkInit();
|
|
63
|
+
}
|
|
64
|
+
export function successfulTanStackInit() {
|
|
65
|
+
return successfulFrameworkInit();
|
|
66
|
+
}
|
|
67
|
+
function successfulFrameworkInit() {
|
|
66
68
|
return `- ${createTerminalLink('Getting Started', 'https://payloadcms.com/docs/getting-started/what-is-payload')}
|
|
67
69
|
- ${createTerminalLink('Configuration', 'https://payloadcms.com/docs/configuration/overview')}
|
|
68
70
|
`;
|
|
@@ -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
|
|
1
|
+
{"version":3,"sources":["../../src/utils/messages.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport chalk from 'chalk'\nimport path from 'path'\nimport terminalLink from 'terminal-link'\n\nimport type { PackageManager, ProjectTemplate } from '../types.js'\n\nimport { getValidTemplates } from '../lib/templates.js'\n\nconst header = (message: string): string => chalk.bold(message)\n\nexport const welcomeMessage = chalk`\n {green Welcome to Payload. Let's create a project! }\n`\n\nconst spacer = ' '.repeat(8)\n\nexport function helpMessage(): void {\n const validTemplates = getValidTemplates()\n console.log(chalk`\n {bold USAGE}\n\n {dim Inside of an existing Next.js or TanStack project}\n\n {dim $} {bold npx create-payload-app}\n\n {dim Create a new project from scratch}\n\n {dim $} {bold npx create-payload-app}\n {dim $} {bold npx create-payload-app} my-project\n {dim $} {bold npx create-payload-app} -n my-project -t template-name\n\n {bold OPTIONS}\n\n -n {underline my-payload-app} Set project name\n -t {underline template_name} Choose specific template\n -e {underline example_name} Choose specific example\n\n {dim Available templates: ${formatTemplates(validTemplates)}}\n\n --no-agent Skip writing AGENTS.md\n --use-npm Use npm to install dependencies\n --use-yarn Use yarn to install dependencies\n --use-pnpm Use pnpm to install dependencies\n --use-bun Use bun to install dependencies (experimental)\n --no-deps Do not install any dependencies\n --payload-version {underline value} Install a specific Payload version or npm dist-tag (default: canary)\n -h Show help\n`)\n}\n\nfunction formatTemplates(templates: ProjectTemplate[]) {\n return `\\n\\n${spacer}${templates\n .map((t) => `${t.name}${' '.repeat(28 - t.name.length)}${t.description}`)\n .join(`\\n${spacer}`)}`\n}\n\nexport function successMessage(projectDir: string, packageManager: PackageManager): string {\n const relativePath = path.relative(process.cwd(), projectDir)\n return `\n${header('Launch Application:')}\n\n - cd ./${relativePath}\n - ${packageManager === 'npm' ? 'npm run' : packageManager} dev or follow directions in README.md\n\n${header('Documentation:')}\n\n - ${createTerminalLink(\n 'Getting Started',\n 'https://payloadcms.com/docs/getting-started/what-is-payload',\n )}\n - ${createTerminalLink('Configuration', 'https://payloadcms.com/docs/configuration/overview')}\n\n`\n}\n\nexport function successfulNextInit(): string {\n return successfulFrameworkInit()\n}\n\nexport function successfulTanStackInit(): string {\n return successfulFrameworkInit()\n}\n\nfunction successfulFrameworkInit(): string {\n return `- ${createTerminalLink(\n 'Getting Started',\n 'https://payloadcms.com/docs/getting-started/what-is-payload',\n )}\n- ${createTerminalLink('Configuration', 'https://payloadcms.com/docs/configuration/overview')}\n`\n}\n\nexport function moveMessage(args: { nextAppDir: string; projectDir: string }): string {\n const relativeAppDir = path.relative(process.cwd(), args.nextAppDir)\n return `\n${header('Next Steps:')}\n\nPayload does not support a top-level layout.tsx file in the app directory.\n\n${chalk.bold('To continue:')}\n\n- Create a new directory in ./${relativeAppDir} such as ./${relativeAppDir}/${chalk.bold('(app)')}\n- Move all files from ./${relativeAppDir} into that directory\n\nIt is recommended to do this from your IDE if your app has existing file references.\n\nOnce moved, rerun the create-payload-app command again.\n`\n}\n\nexport function feedbackOutro(): string {\n return `${chalk.bgCyan(chalk.black(' Have feedback? '))} Visit us on ${createTerminalLink('GitHub', 'https://github.com/payloadcms/payload')}.`\n}\n\n// Create terminalLink with fallback for unsupported terminals\nfunction createTerminalLink(text: string, url: string) {\n return terminalLink(text, url, {\n fallback: (text, url) => `${text}: ${url}`,\n })\n}\n"],"names":["chalk","path","terminalLink","getValidTemplates","header","message","bold","welcomeMessage","spacer","repeat","helpMessage","validTemplates","console","log","formatTemplates","templates","map","t","name","length","description","join","successMessage","projectDir","packageManager","relativePath","relative","process","cwd","createTerminalLink","successfulNextInit","successfulFrameworkInit","successfulTanStackInit","moveMessage","args","relativeAppDir","nextAppDir","feedbackOutro","bgCyan","black","text","url","fallback"],"mappings":"AAAA,6BAA6B,GAC7B,OAAOA,WAAW,QAAO;AACzB,OAAOC,UAAU,OAAM;AACvB,OAAOC,kBAAkB,gBAAe;AAIxC,SAASC,iBAAiB,QAAQ,sBAAqB;AAEvD,MAAMC,SAAS,CAACC,UAA4BL,MAAMM,IAAI,CAACD;AAEvD,OAAO,MAAME,iBAAiBP,KAAK,CAAC;;AAEpC,CAAC,CAAA;AAED,MAAMQ,SAAS,IAAIC,MAAM,CAAC;AAE1B,OAAO,SAASC;IACd,MAAMC,iBAAiBR;IACvBS,QAAQC,GAAG,CAACb,KAAK,CAAC;;;;;;;;;;;;;;;;;;;kCAmBc,EAAEc,gBAAgBH,gBAAgB;;;;;;;;;;AAUpE,CAAC;AACD;AAEA,SAASG,gBAAgBC,SAA4B;IACnD,OAAO,CAAC,IAAI,EAAEP,SAASO,UACpBC,GAAG,CAAC,CAACC,IAAM,GAAGA,EAAEC,IAAI,GAAG,IAAIT,MAAM,CAAC,KAAKQ,EAAEC,IAAI,CAACC,MAAM,IAAIF,EAAEG,WAAW,EAAE,EACvEC,IAAI,CAAC,CAAC,EAAE,EAAEb,QAAQ,GAAG;AAC1B;AAEA,OAAO,SAASc,eAAeC,UAAkB,EAAEC,cAA8B;IAC/E,MAAMC,eAAexB,KAAKyB,QAAQ,CAACC,QAAQC,GAAG,IAAIL;IAClD,OAAO,CAAC;AACV,EAAEnB,OAAO,uBAAuB;;SAEvB,EAAEqB,aAAa;IACpB,EAAED,mBAAmB,QAAQ,YAAYA,eAAe;;AAE5D,EAAEpB,OAAO,kBAAkB;;IAEvB,EAAEyB,mBACF,mBACA,+DACA;IACA,EAAEA,mBAAmB,iBAAiB,sDAAsD;;AAEhG,CAAC;AACD;AAEA,OAAO,SAASC;IACd,OAAOC;AACT;AAEA,OAAO,SAASC;IACd,OAAOD;AACT;AAEA,SAASA;IACP,OAAO,CAAC,EAAE,EAAEF,mBACV,mBACA,+DACA;EACF,EAAEA,mBAAmB,iBAAiB,sDAAsD;AAC9F,CAAC;AACD;AAEA,OAAO,SAASI,YAAYC,IAAgD;IAC1E,MAAMC,iBAAiBlC,KAAKyB,QAAQ,CAACC,QAAQC,GAAG,IAAIM,KAAKE,UAAU;IACnE,OAAO,CAAC;AACV,EAAEhC,OAAO,eAAe;;;;AAIxB,EAAEJ,MAAMM,IAAI,CAAC,gBAAgB;;8BAEC,EAAE6B,eAAe,WAAW,EAAEA,eAAe,CAAC,EAAEnC,MAAMM,IAAI,CAAC,SAAS;wBAC1E,EAAE6B,eAAe;;;;;AAKzC,CAAC;AACD;AAEA,OAAO,SAASE;IACd,OAAO,GAAGrC,MAAMsC,MAAM,CAACtC,MAAMuC,KAAK,CAAC,qBAAqB,aAAa,EAAEV,mBAAmB,UAAU,yCAAyC,CAAC,CAAC;AACjJ;AAEA,8DAA8D;AAC9D,SAASA,mBAAmBW,IAAY,EAAEC,GAAW;IACnD,OAAOvC,aAAasC,MAAMC,KAAK;QAC7BC,UAAU,CAACF,MAAMC,MAAQ,GAAGD,KAAK,EAAE,EAAEC,KAAK;IAC5C;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-payload-app",
|
|
3
|
-
"version": "4.0.0-internal.
|
|
3
|
+
"version": "4.0.0-internal.31ba7ee",
|
|
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/
|
|
28
|
-
"require": "./src/
|
|
29
|
-
"types": "./src/
|
|
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/*",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"fs-extra": "^9.0.1",
|
|
61
61
|
"globby": "11.1.0",
|
|
62
62
|
"prettier": "^3.5.0",
|
|
63
|
-
"tar": "^7.5.
|
|
63
|
+
"tar": "^7.5.22",
|
|
64
64
|
"terminal-link": "^2.1.1",
|
|
65
65
|
"ts-morph": "^21.0.1"
|
|
66
66
|
},
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import * as fs from 'fs';
|
|
3
|
-
import * as fse from 'fs-extra';
|
|
4
|
-
import * as path from 'path';
|
|
5
|
-
import * as os from 'os';
|
|
6
|
-
import { configurePayloadConfig } from './lib/configure-payload-config';
|
|
7
|
-
import { DB_ADAPTER_CONFIG, STORAGE_ADAPTER_CONFIG } from './lib/ast/adapter-config';
|
|
8
|
-
const TEST_CASES = [
|
|
9
|
-
{
|
|
10
|
-
name: 'blank + mongodb + localDisk',
|
|
11
|
-
template: 'blank',
|
|
12
|
-
dbType: 'mongodb',
|
|
13
|
-
storageAdapter: 'localDisk'
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
name: 'blank + postgres + vercelBlobStorage',
|
|
17
|
-
template: 'blank',
|
|
18
|
-
dbType: 'postgres',
|
|
19
|
-
storageAdapter: 'vercelBlobStorage'
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
name: 'website + mongodb + s3Storage',
|
|
23
|
-
template: 'website',
|
|
24
|
-
dbType: 'mongodb',
|
|
25
|
-
storageAdapter: 's3Storage'
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: 'website + postgres + localDisk',
|
|
29
|
-
template: 'website',
|
|
30
|
-
dbType: 'postgres',
|
|
31
|
-
storageAdapter: 'localDisk'
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
name: 'ecommerce + mongodb + localDisk',
|
|
35
|
-
template: 'ecommerce',
|
|
36
|
-
dbType: 'mongodb',
|
|
37
|
-
storageAdapter: 'localDisk'
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
name: 'ecommerce + postgres + r2Storage',
|
|
41
|
-
template: 'ecommerce',
|
|
42
|
-
dbType: 'postgres',
|
|
43
|
-
storageAdapter: 'r2Storage'
|
|
44
|
-
}
|
|
45
|
-
];
|
|
46
|
-
describe('AST Integration Tests', ()=>{
|
|
47
|
-
let tempDir;
|
|
48
|
-
const templatesRoot = path.resolve(__dirname, '../../..', 'templates');
|
|
49
|
-
beforeEach(()=>{
|
|
50
|
-
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'payload-ast-integration-'));
|
|
51
|
-
});
|
|
52
|
-
afterEach(()=>{
|
|
53
|
-
if (tempDir && fs.existsSync(tempDir)) {
|
|
54
|
-
fs.rmSync(tempDir, {
|
|
55
|
-
recursive: true,
|
|
56
|
-
force: true
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
describe.each(TEST_CASES)('$name', ({ template, dbType, storageAdapter })=>{
|
|
61
|
-
it('successfully applies AST transformations', async ()=>{
|
|
62
|
-
// Setup: Copy template to temp directory
|
|
63
|
-
const templateDir = path.join(templatesRoot, template);
|
|
64
|
-
const testProjectDir = path.join(tempDir, template);
|
|
65
|
-
if (!fs.existsSync(templateDir)) {
|
|
66
|
-
throw new Error(`Template ${template} not found at ${templateDir}`);
|
|
67
|
-
}
|
|
68
|
-
fse.copySync(templateDir, testProjectDir);
|
|
69
|
-
const payloadConfigPath = path.join(testProjectDir, 'src', 'payload.config.ts');
|
|
70
|
-
const packageJsonPath = path.join(testProjectDir, 'package.json');
|
|
71
|
-
// Verify files exist before transformation
|
|
72
|
-
expect(fs.existsSync(payloadConfigPath)).toBe(true);
|
|
73
|
-
expect(fs.existsSync(packageJsonPath)).toBe(true);
|
|
74
|
-
// Apply transformations
|
|
75
|
-
await configurePayloadConfig({
|
|
76
|
-
dbType,
|
|
77
|
-
storageAdapter,
|
|
78
|
-
projectDirOrConfigPath: {
|
|
79
|
-
projectDir: testProjectDir
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
// Verify payload.config.ts transformations
|
|
83
|
-
const configContent = fs.readFileSync(payloadConfigPath, 'utf-8');
|
|
84
|
-
// Check database adapter import
|
|
85
|
-
const dbConfig = DB_ADAPTER_CONFIG[dbType];
|
|
86
|
-
expect(configContent).toContain(`from '${dbConfig.packageName}'`);
|
|
87
|
-
expect(configContent).toContain(`import { ${dbConfig.adapterName} }`);
|
|
88
|
-
// Check database adapter config
|
|
89
|
-
expect(configContent).toMatch(new RegExp(`db:\\s*${dbConfig.adapterName}\\(`));
|
|
90
|
-
// Check storage adapter if not localDisk
|
|
91
|
-
if (storageAdapter !== 'localDisk') {
|
|
92
|
-
const storageConfig = STORAGE_ADAPTER_CONFIG[storageAdapter];
|
|
93
|
-
if (storageConfig.packageName && storageConfig.adapterName) {
|
|
94
|
-
expect(configContent).toContain(`from '${storageConfig.packageName}'`);
|
|
95
|
-
expect(configContent).toContain(`import { ${storageConfig.adapterName} }`);
|
|
96
|
-
expect(configContent).toContain(`${storageConfig.adapterName}(`);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
// Check that old mongodb adapter is removed if we switched to postgres
|
|
100
|
-
if (dbType === 'postgres') {
|
|
101
|
-
expect(configContent).not.toContain('@payloadcms/db-mongodb');
|
|
102
|
-
expect(configContent).not.toContain('mongooseAdapter');
|
|
103
|
-
}
|
|
104
|
-
// Check that plugins array exists if storage adapter was added
|
|
105
|
-
if (storageAdapter !== 'localDisk') {
|
|
106
|
-
expect(configContent).toContain('plugins:');
|
|
107
|
-
}
|
|
108
|
-
// Verify package.json transformations
|
|
109
|
-
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
110
|
-
// Check that correct db adapter package is in dependencies
|
|
111
|
-
expect(packageJson.dependencies[dbConfig.packageName]).toBeDefined();
|
|
112
|
-
// Check that old db adapters are removed
|
|
113
|
-
Object.entries(DB_ADAPTER_CONFIG).forEach(([key, config])=>{
|
|
114
|
-
if (key !== dbType && config.packageName !== dbConfig.packageName) {
|
|
115
|
-
expect(packageJson.dependencies[config.packageName]).toBeUndefined();
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
// Note: Storage adapter dependencies are NOT automatically added to package.json
|
|
119
|
-
// by configurePayloadConfig - only the payload.config.ts is updated.
|
|
120
|
-
// This is expected behavior as storage adapters are typically installed separately.
|
|
121
|
-
// Verify file is valid TypeScript (basic syntax check)
|
|
122
|
-
expect(configContent).toContain('buildConfig');
|
|
123
|
-
expect(configContent).toContain('export default');
|
|
124
|
-
// Verify no placeholder comments remain
|
|
125
|
-
expect(configContent).not.toContain('database-adapter-import');
|
|
126
|
-
expect(configContent).not.toContain('database-adapter-config-start');
|
|
127
|
-
expect(configContent).not.toContain('storage-adapter-placeholder');
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
//# sourceMappingURL=ast-integration.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ast-integration.spec.ts"],"sourcesContent":["import { describe, it, expect, beforeEach, afterEach } from 'vitest'\nimport * as fs from 'fs'\nimport * as fse from 'fs-extra'\nimport * as path from 'path'\nimport * as os from 'os'\nimport { configurePayloadConfig } from './lib/configure-payload-config'\nimport type { DbType, StorageAdapterType } from './types'\nimport { DB_ADAPTER_CONFIG, STORAGE_ADAPTER_CONFIG } from './lib/ast/adapter-config'\n\ninterface TestCase {\n name: string\n template: string\n dbType: DbType\n storageAdapter: StorageAdapterType\n}\n\nconst TEST_CASES: TestCase[] = [\n {\n name: 'blank + mongodb + localDisk',\n template: 'blank',\n dbType: 'mongodb',\n storageAdapter: 'localDisk',\n },\n {\n name: 'blank + postgres + vercelBlobStorage',\n template: 'blank',\n dbType: 'postgres',\n storageAdapter: 'vercelBlobStorage',\n },\n {\n name: 'website + mongodb + s3Storage',\n template: 'website',\n dbType: 'mongodb',\n storageAdapter: 's3Storage',\n },\n {\n name: 'website + postgres + localDisk',\n template: 'website',\n dbType: 'postgres',\n storageAdapter: 'localDisk',\n },\n {\n name: 'ecommerce + mongodb + localDisk',\n template: 'ecommerce',\n dbType: 'mongodb',\n storageAdapter: 'localDisk',\n },\n {\n name: 'ecommerce + postgres + r2Storage',\n template: 'ecommerce',\n dbType: 'postgres',\n storageAdapter: 'r2Storage',\n },\n]\n\ndescribe('AST Integration Tests', () => {\n let tempDir: string\n const templatesRoot = path.resolve(__dirname, '../../..', 'templates')\n\n beforeEach(() => {\n tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'payload-ast-integration-'))\n })\n\n afterEach(() => {\n if (tempDir && fs.existsSync(tempDir)) {\n fs.rmSync(tempDir, { recursive: true, force: true })\n }\n })\n\n describe.each(TEST_CASES)('$name', ({ template, dbType, storageAdapter }) => {\n it('successfully applies AST transformations', async () => {\n // Setup: Copy template to temp directory\n const templateDir = path.join(templatesRoot, template)\n const testProjectDir = path.join(tempDir, template)\n\n if (!fs.existsSync(templateDir)) {\n throw new Error(`Template ${template} not found at ${templateDir}`)\n }\n\n fse.copySync(templateDir, testProjectDir)\n\n const payloadConfigPath = path.join(testProjectDir, 'src', 'payload.config.ts')\n const packageJsonPath = path.join(testProjectDir, 'package.json')\n\n // Verify files exist before transformation\n expect(fs.existsSync(payloadConfigPath)).toBe(true)\n expect(fs.existsSync(packageJsonPath)).toBe(true)\n\n // Apply transformations\n await configurePayloadConfig({\n dbType,\n storageAdapter,\n projectDirOrConfigPath: { projectDir: testProjectDir },\n })\n\n // Verify payload.config.ts transformations\n const configContent = fs.readFileSync(payloadConfigPath, 'utf-8')\n\n // Check database adapter import\n const dbConfig = DB_ADAPTER_CONFIG[dbType]\n expect(configContent).toContain(`from '${dbConfig.packageName}'`)\n expect(configContent).toContain(`import { ${dbConfig.adapterName} }`)\n\n // Check database adapter config\n expect(configContent).toMatch(new RegExp(`db:\\\\s*${dbConfig.adapterName}\\\\(`))\n\n // Check storage adapter if not localDisk\n if (storageAdapter !== 'localDisk') {\n const storageConfig = STORAGE_ADAPTER_CONFIG[storageAdapter]\n\n if (storageConfig.packageName && storageConfig.adapterName) {\n expect(configContent).toContain(`from '${storageConfig.packageName}'`)\n expect(configContent).toContain(`import { ${storageConfig.adapterName} }`)\n expect(configContent).toContain(`${storageConfig.adapterName}(`)\n }\n }\n\n // Check that old mongodb adapter is removed if we switched to postgres\n if (dbType === 'postgres') {\n expect(configContent).not.toContain('@payloadcms/db-mongodb')\n expect(configContent).not.toContain('mongooseAdapter')\n }\n\n // Check that plugins array exists if storage adapter was added\n if (storageAdapter !== 'localDisk') {\n expect(configContent).toContain('plugins:')\n }\n\n // Verify package.json transformations\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'))\n\n // Check that correct db adapter package is in dependencies\n expect(packageJson.dependencies[dbConfig.packageName]).toBeDefined()\n\n // Check that old db adapters are removed\n Object.entries(DB_ADAPTER_CONFIG).forEach(([key, config]) => {\n if (key !== dbType && config.packageName !== dbConfig.packageName) {\n expect(packageJson.dependencies[config.packageName]).toBeUndefined()\n }\n })\n\n // Note: Storage adapter dependencies are NOT automatically added to package.json\n // by configurePayloadConfig - only the payload.config.ts is updated.\n // This is expected behavior as storage adapters are typically installed separately.\n\n // Verify file is valid TypeScript (basic syntax check)\n expect(configContent).toContain('buildConfig')\n expect(configContent).toContain('export default')\n\n // Verify no placeholder comments remain\n expect(configContent).not.toContain('database-adapter-import')\n expect(configContent).not.toContain('database-adapter-config-start')\n expect(configContent).not.toContain('storage-adapter-placeholder')\n })\n })\n})\n"],"names":["describe","it","expect","beforeEach","afterEach","fs","fse","path","os","configurePayloadConfig","DB_ADAPTER_CONFIG","STORAGE_ADAPTER_CONFIG","TEST_CASES","name","template","dbType","storageAdapter","tempDir","templatesRoot","resolve","__dirname","mkdtempSync","join","tmpdir","existsSync","rmSync","recursive","force","each","templateDir","testProjectDir","Error","copySync","payloadConfigPath","packageJsonPath","toBe","projectDirOrConfigPath","projectDir","configContent","readFileSync","dbConfig","toContain","packageName","adapterName","toMatch","RegExp","storageConfig","not","packageJson","JSON","parse","dependencies","toBeDefined","Object","entries","forEach","key","config","toBeUndefined"],"mappings":"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"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import { updatePackageJson } from './package-json';
|
|
3
|
-
import * as fs from 'fs';
|
|
4
|
-
import * as path from 'path';
|
|
5
|
-
import * as os from 'os';
|
|
6
|
-
describe('updatePackageJson', ()=>{
|
|
7
|
-
let tempDir;
|
|
8
|
-
beforeEach(()=>{
|
|
9
|
-
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'payload-test-'));
|
|
10
|
-
});
|
|
11
|
-
afterEach(()=>{
|
|
12
|
-
fs.rmSync(tempDir, {
|
|
13
|
-
recursive: true,
|
|
14
|
-
force: true
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
it('updates database dependencies', ()=>{
|
|
18
|
-
const pkgPath = path.join(tempDir, 'package.json');
|
|
19
|
-
const originalPkg = {
|
|
20
|
-
name: 'test-app',
|
|
21
|
-
dependencies: {
|
|
22
|
-
'@payloadcms/db-mongodb': '^3.0.0',
|
|
23
|
-
payload: '^3.0.0'
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2));
|
|
27
|
-
updatePackageJson(pkgPath, {
|
|
28
|
-
databaseAdapter: 'postgres'
|
|
29
|
-
});
|
|
30
|
-
const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
31
|
-
expect(updated.dependencies['@payloadcms/db-postgres']).toBeDefined();
|
|
32
|
-
expect(updated.dependencies['@payloadcms/db-mongodb']).toBeUndefined();
|
|
33
|
-
});
|
|
34
|
-
it('removes sharp when requested', ()=>{
|
|
35
|
-
const pkgPath = path.join(tempDir, 'package.json');
|
|
36
|
-
const originalPkg = {
|
|
37
|
-
name: 'test-app',
|
|
38
|
-
dependencies: {
|
|
39
|
-
payload: '^3.0.0',
|
|
40
|
-
sharp: '^0.33.0'
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2));
|
|
44
|
-
updatePackageJson(pkgPath, {
|
|
45
|
-
removeSharp: true
|
|
46
|
-
});
|
|
47
|
-
const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
48
|
-
expect(updated.dependencies.sharp).toBeUndefined();
|
|
49
|
-
});
|
|
50
|
-
it('updates package name', ()=>{
|
|
51
|
-
const pkgPath = path.join(tempDir, 'package.json');
|
|
52
|
-
const originalPkg = {
|
|
53
|
-
name: 'template-name',
|
|
54
|
-
dependencies: {
|
|
55
|
-
payload: '^3.0.0'
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2));
|
|
59
|
-
updatePackageJson(pkgPath, {
|
|
60
|
-
packageName: 'my-new-app'
|
|
61
|
-
});
|
|
62
|
-
const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
63
|
-
expect(updated.name).toBe('my-new-app');
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
//# sourceMappingURL=package-json.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/ast/package-json.spec.ts"],"sourcesContent":["import { describe, it, expect, beforeEach, afterEach } from 'vitest'\nimport { updatePackageJson } from './package-json'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport * as os from 'os'\n\ndescribe('updatePackageJson', () => {\n let tempDir: string\n\n beforeEach(() => {\n tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'payload-test-'))\n })\n\n afterEach(() => {\n fs.rmSync(tempDir, { recursive: true, force: true })\n })\n\n it('updates database dependencies', () => {\n const pkgPath = path.join(tempDir, 'package.json')\n const originalPkg = {\n name: 'test-app',\n dependencies: {\n '@payloadcms/db-mongodb': '^3.0.0',\n payload: '^3.0.0',\n },\n }\n fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2))\n\n updatePackageJson(pkgPath, {\n databaseAdapter: 'postgres',\n })\n\n const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))\n expect(updated.dependencies['@payloadcms/db-postgres']).toBeDefined()\n expect(updated.dependencies['@payloadcms/db-mongodb']).toBeUndefined()\n })\n\n it('removes sharp when requested', () => {\n const pkgPath = path.join(tempDir, 'package.json')\n const originalPkg = {\n name: 'test-app',\n dependencies: {\n payload: '^3.0.0',\n sharp: '^0.33.0',\n },\n }\n fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2))\n\n updatePackageJson(pkgPath, {\n removeSharp: true,\n })\n\n const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))\n expect(updated.dependencies.sharp).toBeUndefined()\n })\n\n it('updates package name', () => {\n const pkgPath = path.join(tempDir, 'package.json')\n const originalPkg = {\n name: 'template-name',\n dependencies: {\n payload: '^3.0.0',\n },\n }\n fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2))\n\n updatePackageJson(pkgPath, {\n packageName: 'my-new-app',\n })\n\n const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))\n expect(updated.name).toBe('my-new-app')\n })\n})\n"],"names":["describe","it","expect","beforeEach","afterEach","updatePackageJson","fs","path","os","tempDir","mkdtempSync","join","tmpdir","rmSync","recursive","force","pkgPath","originalPkg","name","dependencies","payload","writeFileSync","JSON","stringify","databaseAdapter","updated","parse","readFileSync","toBeDefined","toBeUndefined","sharp","removeSharp","packageName","toBe"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,EAAE,EAAEC,MAAM,EAAEC,UAAU,EAAEC,SAAS,QAAQ,SAAQ;AACpE,SAASC,iBAAiB,QAAQ,iBAAgB;AAClD,YAAYC,QAAQ,KAAI;AACxB,YAAYC,UAAU,OAAM;AAC5B,YAAYC,QAAQ,KAAI;AAExBR,SAAS,qBAAqB;IAC5B,IAAIS;IAEJN,WAAW;QACTM,UAAUH,GAAGI,WAAW,CAACH,KAAKI,IAAI,CAACH,GAAGI,MAAM,IAAI;IAClD;IAEAR,UAAU;QACRE,GAAGO,MAAM,CAACJ,SAAS;YAAEK,WAAW;YAAMC,OAAO;QAAK;IACpD;IAEAd,GAAG,iCAAiC;QAClC,MAAMe,UAAUT,KAAKI,IAAI,CAACF,SAAS;QACnC,MAAMQ,cAAc;YAClBC,MAAM;YACNC,cAAc;gBACZ,0BAA0B;gBAC1BC,SAAS;YACX;QACF;QACAd,GAAGe,aAAa,CAACL,SAASM,KAAKC,SAAS,CAACN,aAAa,MAAM;QAE5DZ,kBAAkBW,SAAS;YACzBQ,iBAAiB;QACnB;QAEA,MAAMC,UAAUH,KAAKI,KAAK,CAACpB,GAAGqB,YAAY,CAACX,SAAS;QACpDd,OAAOuB,QAAQN,YAAY,CAAC,0BAA0B,EAAES,WAAW;QACnE1B,OAAOuB,QAAQN,YAAY,CAAC,yBAAyB,EAAEU,aAAa;IACtE;IAEA5B,GAAG,gCAAgC;QACjC,MAAMe,UAAUT,KAAKI,IAAI,CAACF,SAAS;QACnC,MAAMQ,cAAc;YAClBC,MAAM;YACNC,cAAc;gBACZC,SAAS;gBACTU,OAAO;YACT;QACF;QACAxB,GAAGe,aAAa,CAACL,SAASM,KAAKC,SAAS,CAACN,aAAa,MAAM;QAE5DZ,kBAAkBW,SAAS;YACzBe,aAAa;QACf;QAEA,MAAMN,UAAUH,KAAKI,KAAK,CAACpB,GAAGqB,YAAY,CAACX,SAAS;QACpDd,OAAOuB,QAAQN,YAAY,CAACW,KAAK,EAAED,aAAa;IAClD;IAEA5B,GAAG,wBAAwB;QACzB,MAAMe,UAAUT,KAAKI,IAAI,CAACF,SAAS;QACnC,MAAMQ,cAAc;YAClBC,MAAM;YACNC,cAAc;gBACZC,SAAS;YACX;QACF;QACAd,GAAGe,aAAa,CAACL,SAASM,KAAKC,SAAS,CAACN,aAAa,MAAM;QAE5DZ,kBAAkBW,SAAS;YACzBgB,aAAa;QACf;QAEA,MAAMP,UAAUH,KAAKI,KAAK,CAACpB,GAAGqB,YAAY,CAACX,SAAS;QACpDd,OAAOuB,QAAQP,IAAI,EAAEe,IAAI,CAAC;IAC5B;AACF"}
|