create-payload-app 1.0.0 → 3.0.0-alpha.50

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +3 -3
  5. package/dist/index.js.map +1 -0
  6. package/dist/lib/configure-payload-config.d.ts +11 -0
  7. package/dist/lib/configure-payload-config.d.ts.map +1 -0
  8. package/dist/lib/configure-payload-config.js +15 -53
  9. package/dist/lib/configure-payload-config.js.map +1 -0
  10. package/dist/lib/create-project.d.ts +14 -0
  11. package/dist/lib/create-project.d.ts.map +1 -0
  12. package/dist/lib/create-project.js +84 -24
  13. package/dist/lib/create-project.js.map +1 -0
  14. package/dist/lib/create-project.spec.d.ts +2 -0
  15. package/dist/lib/create-project.spec.d.ts.map +1 -0
  16. package/dist/lib/create-project.spec.js +30 -75
  17. package/dist/lib/create-project.spec.js.map +1 -0
  18. package/dist/lib/generate-secret.d.ts +2 -0
  19. package/dist/lib/generate-secret.d.ts.map +1 -0
  20. package/dist/lib/generate-secret.js +1 -1
  21. package/dist/lib/generate-secret.js.map +1 -0
  22. package/dist/lib/init-next.d.ts +29 -0
  23. package/dist/lib/init-next.d.ts.map +1 -0
  24. package/dist/lib/init-next.js +285 -0
  25. package/dist/lib/init-next.js.map +1 -0
  26. package/dist/lib/packages.d.ts +9 -0
  27. package/dist/lib/packages.d.ts.map +1 -0
  28. package/dist/lib/packages.js +8 -52
  29. package/dist/lib/packages.js.map +1 -0
  30. package/dist/lib/parse-project-name.d.ts +3 -0
  31. package/dist/lib/parse-project-name.d.ts.map +1 -0
  32. package/dist/lib/parse-project-name.js +53 -12
  33. package/dist/lib/parse-project-name.js.map +1 -0
  34. package/dist/lib/parse-template.d.ts +3 -0
  35. package/dist/lib/parse-template.d.ts.map +1 -0
  36. package/dist/lib/parse-template.js +50 -20
  37. package/dist/lib/parse-template.js.map +1 -0
  38. package/dist/lib/select-db.d.ts +3 -0
  39. package/dist/lib/select-db.d.ts.map +1 -0
  40. package/dist/lib/select-db.js +72 -31
  41. package/dist/lib/select-db.js.map +1 -0
  42. package/dist/lib/templates.d.ts +4 -0
  43. package/dist/lib/templates.d.ts.map +1 -0
  44. package/dist/lib/templates.js +17 -11
  45. package/dist/lib/templates.js.map +1 -0
  46. package/dist/lib/wrap-next-config.d.ts +12 -0
  47. package/dist/lib/wrap-next-config.d.ts.map +1 -0
  48. package/dist/lib/wrap-next-config.js +110 -0
  49. package/dist/lib/wrap-next-config.js.map +1 -0
  50. package/dist/lib/wrap-next-config.spec.d.ts +2 -0
  51. package/dist/lib/wrap-next-config.spec.d.ts.map +1 -0
  52. package/dist/lib/wrap-next-config.spec.js +98 -0
  53. package/dist/lib/wrap-next-config.spec.js.map +1 -0
  54. package/dist/lib/write-env-file.d.ts +10 -0
  55. package/dist/lib/write-env-file.d.ts.map +1 -0
  56. package/dist/lib/write-env-file.js +9 -6
  57. package/dist/lib/write-env-file.js.map +1 -0
  58. package/dist/main.d.ts +7 -0
  59. package/dist/main.d.ts.map +1 -0
  60. package/dist/main.js +176 -60
  61. package/dist/main.js.map +1 -0
  62. package/dist/scripts/pack-template-files.d.ts +2 -0
  63. package/dist/scripts/pack-template-files.d.ts.map +1 -0
  64. package/dist/scripts/pack-template-files.js +43 -0
  65. package/dist/scripts/pack-template-files.js.map +1 -0
  66. package/dist/template/src/app/(payload)/admin/[[...segments]]/page.tsx +17 -0
  67. package/dist/template/src/app/(payload)/api/[...slug]/route.ts +9 -0
  68. package/dist/template/src/app/(payload)/api/graphql/route.ts +6 -0
  69. package/dist/template/src/app/(payload)/api/graphql-playground/route.ts +6 -0
  70. package/dist/template/src/app/(payload)/custom.scss +0 -0
  71. package/dist/template/src/app/(payload)/layout.tsx +16 -0
  72. package/dist/template/src/app/my-route/route.ts +14 -0
  73. package/dist/template/src/collections/Users.ts +13 -0
  74. package/dist/template/src/payload.config.ts +38 -0
  75. package/dist/types.d.ts +55 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +1 -1
  78. package/dist/types.js.map +1 -0
  79. package/dist/utils/copy-recursive-sync.d.ts +5 -0
  80. package/dist/utils/copy-recursive-sync.d.ts.map +1 -0
  81. package/dist/utils/copy-recursive-sync.js +34 -0
  82. package/dist/utils/copy-recursive-sync.js.map +1 -0
  83. package/dist/utils/log.d.ts +6 -0
  84. package/dist/utils/log.d.ts.map +1 -0
  85. package/dist/utils/log.js +62 -15
  86. package/dist/utils/log.js.map +1 -0
  87. package/dist/utils/messages.d.ts +11 -0
  88. package/dist/utils/messages.d.ts.map +1 -0
  89. package/dist/utils/messages.js +47 -16
  90. package/dist/utils/messages.js.map +1 -0
  91. package/package.json +27 -10
@@ -10,16 +10,20 @@ Object.defineProperty(exports, "writeEnvFile", {
10
10
  });
11
11
  const _fsextra = /*#__PURE__*/ _interop_require_default(require("fs-extra"));
12
12
  const _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
- const _log = require("../utils/log");
13
+ const _log = require("../utils/log.js");
14
14
  function _interop_require_default(obj) {
15
15
  return obj && obj.__esModule ? obj : {
16
16
  default: obj
17
17
  };
18
18
  }
19
19
  async function writeEnvFile(args) {
20
- const { databaseUri, payloadSecret, projectDir, template } = args;
20
+ const { cliArgs, databaseUri, payloadSecret, projectDir, template } = args;
21
+ if (cliArgs['--dry-run']) {
22
+ (0, _log.debug)(`DRY RUN: .env file created`);
23
+ return;
24
+ }
21
25
  try {
22
- if (template.type === 'starter' && _fsextra.default.existsSync(_path.default.join(projectDir, '.env.example'))) {
26
+ if (template?.type === 'starter' && _fsextra.default.existsSync(_path.default.join(projectDir, '.env.example'))) {
23
27
  // Parse .env file into key/value pairs
24
28
  const envFile = await _fsextra.default.readFile(_path.default.join(projectDir, '.env.example'), 'utf8');
25
29
  const envWithValues = envFile.split('\n').filter((e)=>e).map((line)=>{
@@ -38,10 +42,9 @@ async function writeEnvFile(args) {
38
42
  // Write new .env file
39
43
  await _fsextra.default.writeFile(_path.default.join(projectDir, '.env'), envWithValues.join('\n'));
40
44
  } else {
41
- const content = `MONGODB_URI=${databaseUri}\nPAYLOAD_SECRET=${payloadSecret}`;
45
+ const content = `DATABASE_URI=${databaseUri}\nPAYLOAD_SECRET=${payloadSecret}`;
42
46
  await _fsextra.default.outputFile(`${projectDir}/.env`, content);
43
47
  }
44
- (0, _log.success)('.env file created');
45
48
  } catch (err) {
46
49
  (0, _log.error)('Unable to write .env file');
47
50
  if (err instanceof Error) {
@@ -51,4 +54,4 @@ async function writeEnvFile(args) {
51
54
  }
52
55
  }
53
56
 
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvd3JpdGUtZW52LWZpbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuaW1wb3J0IHR5cGUgeyBQcm9qZWN0VGVtcGxhdGUgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgZXJyb3IsIHN1Y2Nlc3MgfSBmcm9tICcuLi91dGlscy9sb2cnXG5cbi8qKiBQYXJzZSBhbmQgc3dhcCAuZW52LmV4YW1wbGUgdmFsdWVzIGFuZCB3cml0ZSAuZW52ICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVFbnZGaWxlKGFyZ3M6IHtcbiAgZGF0YWJhc2VVcmk6IHN0cmluZ1xuICBwYXlsb2FkU2VjcmV0OiBzdHJpbmdcbiAgcHJvamVjdERpcjogc3RyaW5nXG4gIHRlbXBsYXRlOiBQcm9qZWN0VGVtcGxhdGVcbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBkYXRhYmFzZVVyaSwgcGF5bG9hZFNlY3JldCwgcHJvamVjdERpciwgdGVtcGxhdGUgfSA9IGFyZ3NcbiAgdHJ5IHtcbiAgICBpZiAodGVtcGxhdGUudHlwZSA9PT0gJ3N0YXJ0ZXInICYmIGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHByb2plY3REaXIsICcuZW52LmV4YW1wbGUnKSkpIHtcbiAgICAgIC8vIFBhcnNlIC5lbnYgZmlsZSBpbnRvIGtleS92YWx1ZSBwYWlyc1xuICAgICAgY29uc3QgZW52RmlsZSA9IGF3YWl0IGZzLnJlYWRGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyLCAnLmVudi5leGFtcGxlJyksICd1dGY4JylcbiAgICAgIGNvbnN0IGVudldpdGhWYWx1ZXM6IHN0cmluZ1tdID0gZW52RmlsZVxuICAgICAgICAuc3BsaXQoJ1xcbicpXG4gICAgICAgIC5maWx0ZXIoKGUpID0+IGUpXG4gICAgICAgIC5tYXAoKGxpbmUpID0+IHtcbiAgICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKCcjJykgfHwgIWxpbmUuaW5jbHVkZXMoJz0nKSkgcmV0dXJuIGxpbmVcblxuICAgICAgICAgIGNvbnN0IHNwbGl0ID0gbGluZS5zcGxpdCgnPScpXG4gICAgICAgICAgY29uc3Qga2V5ID0gc3BsaXRbMF1cbiAgICAgICAgICBsZXQgdmFsdWUgPSBzcGxpdFsxXVxuXG4gICAgICAgICAgaWYgKGtleSA9PT0gJ01PTkdPREJfVVJJJyB8fCBrZXkgPT09ICdNT05HT19VUkwnIHx8IGtleSA9PT0gJ0RBVEFCQVNFX1VSSScpIHtcbiAgICAgICAgICAgIHZhbHVlID0gZGF0YWJhc2VVcmlcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGtleSA9PT0gJ1BBWUxPQURfU0VDUkVUJyB8fCBrZXkgPT09ICdQQVlMT0FEX1NFQ1JFVF9LRVknKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHBheWxvYWRTZWNyZXRcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gYCR7a2V5fT0ke3ZhbHVlfWBcbiAgICAgICAgfSlcblxuICAgICAgLy8gV3JpdGUgbmV3IC5lbnYgZmlsZVxuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyLCAnLmVudicpLCBlbnZXaXRoVmFsdWVzLmpvaW4oJ1xcbicpKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gYE1PTkdPREJfVVJJPSR7ZGF0YWJhc2VVcml9XFxuUEFZTE9BRF9TRUNSRVQ9JHtwYXlsb2FkU2VjcmV0fWBcbiAgICAgIGF3YWl0IGZzLm91dHB1dEZpbGUoYCR7cHJvamVjdERpcn0vLmVudmAsIGNvbnRlbnQpXG4gICAgfVxuXG4gICAgc3VjY2VzcygnLmVudiBmaWxlIGNyZWF0ZWQnKVxuICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICBlcnJvcignVW5hYmxlIHRvIHdyaXRlIC5lbnYgZmlsZScpXG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBlcnJvcihlcnIubWVzc2FnZSlcbiAgICB9XG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ3cml0ZUVudkZpbGUiLCJhcmdzIiwiZGF0YWJhc2VVcmkiLCJwYXlsb2FkU2VjcmV0IiwicHJvamVjdERpciIsInRlbXBsYXRlIiwidHlwZSIsImZzIiwiZXhpc3RzU3luYyIsInBhdGgiLCJqb2luIiwiZW52RmlsZSIsInJlYWRGaWxlIiwiZW52V2l0aFZhbHVlcyIsInNwbGl0IiwiZmlsdGVyIiwiZSIsIm1hcCIsImxpbmUiLCJzdGFydHNXaXRoIiwiaW5jbHVkZXMiLCJrZXkiLCJ2YWx1ZSIsIndyaXRlRmlsZSIsImNvbnRlbnQiLCJvdXRwdXRGaWxlIiwic3VjY2VzcyIsImVyciIsImVycm9yIiwiRXJyb3IiLCJtZXNzYWdlIiwicHJvY2VzcyIsImV4aXQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBUXNCQTs7O2VBQUFBOzs7Z0VBUlA7NkRBQ0U7cUJBSWM7Ozs7OztBQUd4QixlQUFlQSxhQUFhQyxJQUtsQztJQUNDLE1BQU0sRUFBRUMsV0FBVyxFQUFFQyxhQUFhLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFLEdBQUdKO0lBQzdELElBQUk7UUFDRixJQUFJSSxTQUFTQyxJQUFJLEtBQUssYUFBYUMsZ0JBQUUsQ0FBQ0MsVUFBVSxDQUFDQyxhQUFJLENBQUNDLElBQUksQ0FBQ04sWUFBWSxrQkFBa0I7WUFDdkYsdUNBQXVDO1lBQ3ZDLE1BQU1PLFVBQVUsTUFBTUosZ0JBQUUsQ0FBQ0ssUUFBUSxDQUFDSCxhQUFJLENBQUNDLElBQUksQ0FBQ04sWUFBWSxpQkFBaUI7WUFDekUsTUFBTVMsZ0JBQTBCRixRQUM3QkcsS0FBSyxDQUFDLE1BQ05DLE1BQU0sQ0FBQyxDQUFDQyxJQUFNQSxHQUNkQyxHQUFHLENBQUMsQ0FBQ0M7Z0JBQ0osSUFBSUEsS0FBS0MsVUFBVSxDQUFDLFFBQVEsQ0FBQ0QsS0FBS0UsUUFBUSxDQUFDLE1BQU0sT0FBT0Y7Z0JBRXhELE1BQU1KLFFBQVFJLEtBQUtKLEtBQUssQ0FBQztnQkFDekIsTUFBTU8sTUFBTVAsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUlRLFFBQVFSLEtBQUssQ0FBQyxFQUFFO2dCQUVwQixJQUFJTyxRQUFRLGlCQUFpQkEsUUFBUSxlQUFlQSxRQUFRLGdCQUFnQjtvQkFDMUVDLFFBQVFwQjtnQkFDVjtnQkFDQSxJQUFJbUIsUUFBUSxvQkFBb0JBLFFBQVEsc0JBQXNCO29CQUM1REMsUUFBUW5CO2dCQUNWO2dCQUVBLE9BQU8sQ0FBQyxFQUFFa0IsSUFBSSxDQUFDLEVBQUVDLE1BQU0sQ0FBQztZQUMxQjtZQUVGLHNCQUFzQjtZQUN0QixNQUFNZixnQkFBRSxDQUFDZ0IsU0FBUyxDQUFDZCxhQUFJLENBQUNDLElBQUksQ0FBQ04sWUFBWSxTQUFTUyxjQUFjSCxJQUFJLENBQUM7UUFDdkUsT0FBTztZQUNMLE1BQU1jLFVBQVUsQ0FBQyxZQUFZLEVBQUV0QixZQUFZLGlCQUFpQixFQUFFQyxjQUFjLENBQUM7WUFDN0UsTUFBTUksZ0JBQUUsQ0FBQ2tCLFVBQVUsQ0FBQyxDQUFDLEVBQUVyQixXQUFXLEtBQUssQ0FBQyxFQUFFb0I7UUFDNUM7UUFFQUUsSUFBQUEsWUFBTyxFQUFDO0lBQ1YsRUFBRSxPQUFPQyxLQUFjO1FBQ3JCQyxJQUFBQSxVQUFLLEVBQUM7UUFDTixJQUFJRCxlQUFlRSxPQUFPO1lBQ3hCRCxJQUFBQSxVQUFLLEVBQUNELElBQUlHLE9BQU87UUFDbkI7UUFDQUMsUUFBUUMsSUFBSSxDQUFDO0lBQ2Y7QUFDRiJ9
57
+ //# sourceMappingURL=write-env-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/write-env-file.ts"],"sourcesContent":["import fs from 'fs-extra'\nimport path from 'path'\n\nimport type { CliArgs, ProjectTemplate } from '../types.js'\n\nimport { debug, error } from '../utils/log.js'\n\n/** Parse and swap .env.example values and write .env */\nexport async function writeEnvFile(args: {\n cliArgs: CliArgs\n databaseUri: string\n payloadSecret: string\n projectDir: string\n template?: ProjectTemplate\n}): Promise<void> {\n const { cliArgs, databaseUri, payloadSecret, projectDir, template } = args\n\n if (cliArgs['--dry-run']) {\n debug(`DRY RUN: .env file created`)\n return\n }\n\n try {\n if (template?.type === 'starter' && fs.existsSync(path.join(projectDir, '.env.example'))) {\n // Parse .env file into key/value pairs\n const envFile = await fs.readFile(path.join(projectDir, '.env.example'), 'utf8')\n const envWithValues: string[] = envFile\n .split('\\n')\n .filter((e) => e)\n .map((line) => {\n if (line.startsWith('#') || !line.includes('=')) return line\n\n const split = line.split('=')\n const key = split[0]\n let value = split[1]\n\n if (key === 'MONGODB_URI' || key === 'MONGO_URL' || key === 'DATABASE_URI') {\n value = databaseUri\n }\n if (key === 'PAYLOAD_SECRET' || key === 'PAYLOAD_SECRET_KEY') {\n value = payloadSecret\n }\n\n return `${key}=${value}`\n })\n\n // Write new .env file\n await fs.writeFile(path.join(projectDir, '.env'), envWithValues.join('\\n'))\n } else {\n const content = `DATABASE_URI=${databaseUri}\\nPAYLOAD_SECRET=${payloadSecret}`\n await fs.outputFile(`${projectDir}/.env`, content)\n }\n } catch (err: unknown) {\n error('Unable to write .env file')\n if (err instanceof Error) {\n error(err.message)\n }\n process.exit(1)\n }\n}\n"],"names":["writeEnvFile","args","cliArgs","databaseUri","payloadSecret","projectDir","template","debug","type","fs","existsSync","path","join","envFile","readFile","envWithValues","split","filter","e","map","line","startsWith","includes","key","value","writeFile","content","outputFile","err","error","Error","message","process","exit"],"mappings":";;;;+BAQsBA;;;eAAAA;;;gEARP;6DACE;qBAIY;;;;;;AAGtB,eAAeA,aAAaC,IAMlC;IACC,MAAM,EAAEC,OAAO,EAAEC,WAAW,EAAEC,aAAa,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGL;IAEtE,IAAIC,OAAO,CAAC,YAAY,EAAE;QACxBK,IAAAA,UAAK,EAAC,CAAC,0BAA0B,CAAC;QAClC;IACF;IAEA,IAAI;QACF,IAAID,UAAUE,SAAS,aAAaC,gBAAE,CAACC,UAAU,CAACC,aAAI,CAACC,IAAI,CAACP,YAAY,kBAAkB;YACxF,uCAAuC;YACvC,MAAMQ,UAAU,MAAMJ,gBAAE,CAACK,QAAQ,CAACH,aAAI,CAACC,IAAI,CAACP,YAAY,iBAAiB;YACzE,MAAMU,gBAA0BF,QAC7BG,KAAK,CAAC,MACNC,MAAM,CAAC,CAACC,IAAMA,GACdC,GAAG,CAAC,CAACC;gBACJ,IAAIA,KAAKC,UAAU,CAAC,QAAQ,CAACD,KAAKE,QAAQ,CAAC,MAAM,OAAOF;gBAExD,MAAMJ,QAAQI,KAAKJ,KAAK,CAAC;gBACzB,MAAMO,MAAMP,KAAK,CAAC,EAAE;gBACpB,IAAIQ,QAAQR,KAAK,CAAC,EAAE;gBAEpB,IAAIO,QAAQ,iBAAiBA,QAAQ,eAAeA,QAAQ,gBAAgB;oBAC1EC,QAAQrB;gBACV;gBACA,IAAIoB,QAAQ,oBAAoBA,QAAQ,sBAAsB;oBAC5DC,QAAQpB;gBACV;gBAEA,OAAO,CAAC,EAAEmB,IAAI,CAAC,EAAEC,MAAM,CAAC;YAC1B;YAEF,sBAAsB;YACtB,MAAMf,gBAAE,CAACgB,SAAS,CAACd,aAAI,CAACC,IAAI,CAACP,YAAY,SAASU,cAAcH,IAAI,CAAC;QACvE,OAAO;YACL,MAAMc,UAAU,CAAC,aAAa,EAAEvB,YAAY,iBAAiB,EAAEC,cAAc,CAAC;YAC9E,MAAMK,gBAAE,CAACkB,UAAU,CAAC,CAAC,EAAEtB,WAAW,KAAK,CAAC,EAAEqB;QAC5C;IACF,EAAE,OAAOE,KAAc;QACrBC,IAAAA,UAAK,EAAC;QACN,IAAID,eAAeE,OAAO;YACxBD,IAAAA,UAAK,EAACD,IAAIG,OAAO;QACnB;QACAC,QAAQC,IAAI,CAAC;IACf;AACF"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import type { CliArgs } from './types.js';
2
+ export declare class Main {
3
+ args: CliArgs;
4
+ constructor();
5
+ init(): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,YAAY,CAAA;AAoBzD,qBAAa,IAAI;IACf,IAAI,EAAE,OAAO,CAAA;;IAwCP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CA4I5B"}
package/dist/main.js CHANGED
@@ -8,33 +8,86 @@ Object.defineProperty(exports, "Main", {
8
8
  return Main;
9
9
  }
10
10
  });
11
+ const _prompts = /*#__PURE__*/ _interop_require_wildcard(require("@clack/prompts"));
11
12
  const _slugify = /*#__PURE__*/ _interop_require_default(require("@sindresorhus/slugify"));
12
13
  const _arg = /*#__PURE__*/ _interop_require_default(require("arg"));
13
- const _commandexists = /*#__PURE__*/ _interop_require_default(require("command-exists"));
14
- const _createproject = require("./lib/create-project");
15
- const _generatesecret = require("./lib/generate-secret");
16
- const _parseprojectname = require("./lib/parse-project-name");
17
- const _parsetemplate = require("./lib/parse-template");
18
- const _selectdb = require("./lib/select-db");
19
- const _templates = require("./lib/templates");
20
- const _writeenvfile = require("./lib/write-env-file");
21
- const _log = require("./utils/log");
22
- const _messages = require("./utils/messages");
14
+ const _chalk = /*#__PURE__*/ _interop_require_default(require("chalk"));
15
+ const _detectpackagemanager = require("detect-package-manager");
16
+ const _figures = /*#__PURE__*/ _interop_require_default(require("figures"));
17
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
18
+ const _configurepayloadconfig = require("./lib/configure-payload-config.js");
19
+ const _createproject = require("./lib/create-project.js");
20
+ const _generatesecret = require("./lib/generate-secret.js");
21
+ const _initnext = require("./lib/init-next.js");
22
+ const _parseprojectname = require("./lib/parse-project-name.js");
23
+ const _parsetemplate = require("./lib/parse-template.js");
24
+ const _selectdb = require("./lib/select-db.js");
25
+ const _templates = require("./lib/templates.js");
26
+ const _writeenvfile = require("./lib/write-env-file.js");
27
+ const _log = require("./utils/log.js");
28
+ const _messages = require("./utils/messages.js");
23
29
  function _interop_require_default(obj) {
24
30
  return obj && obj.__esModule ? obj : {
25
31
  default: obj
26
32
  };
27
33
  }
34
+ function _getRequireWildcardCache(nodeInterop) {
35
+ if (typeof WeakMap !== "function") return null;
36
+ var cacheBabelInterop = new WeakMap();
37
+ var cacheNodeInterop = new WeakMap();
38
+ return (_getRequireWildcardCache = function(nodeInterop) {
39
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
40
+ })(nodeInterop);
41
+ }
42
+ function _interop_require_wildcard(obj, nodeInterop) {
43
+ if (!nodeInterop && obj && obj.__esModule) {
44
+ return obj;
45
+ }
46
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
47
+ return {
48
+ default: obj
49
+ };
50
+ }
51
+ var cache = _getRequireWildcardCache(nodeInterop);
52
+ if (cache && cache.has(obj)) {
53
+ return cache.get(obj);
54
+ }
55
+ var newObj = {
56
+ __proto__: null
57
+ };
58
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
59
+ for(var key in obj){
60
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
61
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
62
+ if (desc && (desc.get || desc.set)) {
63
+ Object.defineProperty(newObj, key, desc);
64
+ } else {
65
+ newObj[key] = obj[key];
66
+ }
67
+ }
68
+ }
69
+ newObj.default = obj;
70
+ if (cache) {
71
+ cache.set(obj, newObj);
72
+ }
73
+ return newObj;
74
+ }
28
75
  class Main {
29
76
  args;
30
77
  constructor(){
31
78
  // @ts-expect-error bad typings
32
79
  this.args = (0, _arg.default)({
33
80
  '--db': String,
81
+ '--db-accept-recommended': Boolean,
82
+ '--db-connection-string': String,
34
83
  '--help': Boolean,
84
+ '--local-template': String,
35
85
  '--name': String,
36
86
  '--secret': String,
37
87
  '--template': String,
88
+ '--template-branch': String,
89
+ // Next.js
90
+ '--init-next': Boolean,
38
91
  // Package manager
39
92
  '--no-deps': Boolean,
40
93
  '--use-npm': Boolean,
@@ -42,6 +95,7 @@ class Main {
42
95
  '--use-yarn': Boolean,
43
96
  // Flags
44
97
  '--beta': Boolean,
98
+ '--debug': Boolean,
45
99
  '--dry-run': Boolean,
46
100
  // Aliases
47
101
  '-d': '--db',
@@ -55,61 +109,128 @@ class Main {
55
109
  async init() {
56
110
  try {
57
111
  if (this.args['--help']) {
58
- console.log((0, _messages.helpMessage)());
112
+ (0, _messages.helpMessage)();
59
113
  process.exit(0);
60
114
  }
115
+ // eslint-disable-next-line no-console
116
+ console.log('\n');
117
+ _prompts.intro(_chalk.default.bgCyan(_chalk.default.black(' create-payload-app ')));
118
+ _prompts.note("Welcome to Payload. Let's create a project!");
119
+ // Detect if inside Next.js project
120
+ const nextAppDetails = await (0, _initnext.getNextAppDetails)(process.cwd());
121
+ const { hasTopLevelLayout, nextAppDir, nextConfigPath } = nextAppDetails;
122
+ if (nextConfigPath) {
123
+ this.args['--name'] = (0, _slugify.default)(_path.default.basename(_path.default.dirname(nextConfigPath)));
124
+ }
125
+ const projectName = await (0, _parseprojectname.parseProjectName)(this.args);
126
+ const projectDir = nextConfigPath ? _path.default.dirname(nextConfigPath) : _path.default.resolve(process.cwd(), (0, _slugify.default)(projectName));
127
+ const packageManager = await getPackageManager(this.args, projectDir);
128
+ if (nextConfigPath) {
129
+ _prompts.log.step(_chalk.default.bold(`${_chalk.default.bgBlack(` ${_figures.default.triangleUp} Next.js `)} project detected!`));
130
+ const proceed = await _prompts.confirm({
131
+ initialValue: true,
132
+ message: _chalk.default.bold(`Install ${_chalk.default.green('Payload')} in this project?`)
133
+ });
134
+ if (_prompts.isCancel(proceed) || !proceed) {
135
+ _prompts.outro((0, _messages.feedbackOutro)());
136
+ process.exit(0);
137
+ }
138
+ // Check for top-level layout.tsx
139
+ if (nextAppDir && hasTopLevelLayout) {
140
+ _prompts.log.warn((0, _messages.moveMessage)({
141
+ nextAppDir,
142
+ projectDir
143
+ }));
144
+ _prompts.outro((0, _messages.feedbackOutro)());
145
+ process.exit(0);
146
+ }
147
+ const dbDetails = await (0, _selectdb.selectDb)(this.args, projectName);
148
+ const result = await (0, _initnext.initNext)({
149
+ ...this.args,
150
+ dbType: dbDetails.type,
151
+ nextAppDetails,
152
+ packageManager,
153
+ projectDir
154
+ });
155
+ if (result.success === false) {
156
+ _prompts.outro((0, _messages.feedbackOutro)());
157
+ process.exit(1);
158
+ }
159
+ await (0, _configurepayloadconfig.configurePayloadConfig)({
160
+ dbDetails,
161
+ projectDirOrConfigPath: {
162
+ payloadConfigPath: result.payloadConfigPath
163
+ }
164
+ });
165
+ await (0, _writeenvfile.writeEnvFile)({
166
+ cliArgs: this.args,
167
+ databaseUri: dbDetails.dbUri,
168
+ payloadSecret: (0, _generatesecret.generateSecret)(),
169
+ projectDir
170
+ });
171
+ (0, _log.info)('Payload project successfully initialized!');
172
+ _prompts.note((0, _messages.successfulNextInit)(), _chalk.default.bgGreen(_chalk.default.black(' Documentation ')));
173
+ _prompts.outro((0, _messages.feedbackOutro)());
174
+ return;
175
+ }
61
176
  const templateArg = this.args['--template'];
62
177
  if (templateArg) {
63
178
  const valid = (0, _templates.validateTemplate)(templateArg);
64
179
  if (!valid) {
65
- console.log((0, _messages.helpMessage)());
180
+ (0, _messages.helpMessage)();
66
181
  process.exit(1);
67
182
  }
68
183
  }
69
- console.log(_messages.welcomeMessage);
70
- const projectName = await (0, _parseprojectname.parseProjectName)(this.args);
71
184
  const validTemplates = (0, _templates.getValidTemplates)();
72
185
  const template = await (0, _parsetemplate.parseTemplate)(this.args, validTemplates);
73
- const projectDir = projectName === '.' ? process.cwd() : `./${(0, _slugify.default)(projectName)}`;
74
- const packageManager = await getPackageManager(this.args);
75
- if (template.type !== 'plugin') {
76
- const dbDetails = await (0, _selectdb.selectDb)(this.args, projectName);
77
- const payloadSecret = (0, _generatesecret.generateSecret)();
78
- if (!this.args['--dry-run']) {
79
- await (0, _createproject.createProject)({
80
- cliArgs: this.args,
81
- dbDetails,
82
- packageManager,
83
- projectDir,
84
- projectName,
85
- template
86
- });
87
- await (0, _writeenvfile.writeEnvFile)({
88
- databaseUri: dbDetails.dbUri,
89
- payloadSecret,
90
- projectDir,
91
- template
92
- });
93
- }
94
- } else {
95
- if (!this.args['--dry-run']) {
96
- await (0, _createproject.createProject)({
97
- cliArgs: this.args,
98
- packageManager,
99
- projectDir,
100
- projectName,
101
- template
102
- });
103
- }
186
+ if (!template) {
187
+ _prompts.log.error('Invalid template given');
188
+ _prompts.outro((0, _messages.feedbackOutro)());
189
+ process.exit(1);
104
190
  }
105
- (0, _log.success)('Payload project successfully created');
106
- console.log((0, _messages.successMessage)(projectDir, packageManager));
107
- } catch (error) {
108
- console.log(error);
191
+ switch(template.type){
192
+ case 'starter':
193
+ {
194
+ const dbDetails = await (0, _selectdb.selectDb)(this.args, projectName);
195
+ const payloadSecret = (0, _generatesecret.generateSecret)();
196
+ await (0, _createproject.createProject)({
197
+ cliArgs: this.args,
198
+ dbDetails,
199
+ packageManager,
200
+ projectDir,
201
+ projectName,
202
+ template
203
+ });
204
+ await (0, _writeenvfile.writeEnvFile)({
205
+ cliArgs: this.args,
206
+ databaseUri: dbDetails.dbUri,
207
+ payloadSecret,
208
+ projectDir,
209
+ template
210
+ });
211
+ break;
212
+ }
213
+ case 'plugin':
214
+ {
215
+ await (0, _createproject.createProject)({
216
+ cliArgs: this.args,
217
+ packageManager,
218
+ projectDir,
219
+ projectName,
220
+ template
221
+ });
222
+ break;
223
+ }
224
+ }
225
+ (0, _log.info)('Payload project successfully created!');
226
+ _prompts.note((0, _messages.successMessage)(projectDir, packageManager), _chalk.default.bgGreen(_chalk.default.black(' Next Steps ')));
227
+ _prompts.outro((0, _messages.feedbackOutro)());
228
+ } catch (err) {
229
+ (0, _log.error)(err instanceof Error ? err.message : 'An error occurred');
109
230
  }
110
231
  }
111
232
  }
112
- async function getPackageManager(args) {
233
+ async function getPackageManager(args, projectDir) {
113
234
  let packageManager = 'npm';
114
235
  if (args['--use-npm']) {
115
236
  packageManager = 'npm';
@@ -118,17 +239,12 @@ async function getPackageManager(args) {
118
239
  } else if (args['--use-pnpm']) {
119
240
  packageManager = 'pnpm';
120
241
  } else {
121
- try {
122
- if (await (0, _commandexists.default)('yarn')) {
123
- packageManager = 'yarn';
124
- } else if (await (0, _commandexists.default)('pnpm')) {
125
- packageManager = 'pnpm';
126
- }
127
- } catch (error) {
128
- packageManager = 'npm';
129
- }
242
+ const detected = await (0, _detectpackagemanager.detect)({
243
+ cwd: projectDir
244
+ });
245
+ packageManager = detected || 'npm';
130
246
  }
131
247
  return packageManager;
132
248
  }
133
249
 
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzbHVnaWZ5IGZyb20gJ0BzaW5kcmVzb3JodXMvc2x1Z2lmeSdcbmltcG9ydCBhcmcgZnJvbSAnYXJnJ1xuaW1wb3J0IGNvbW1hbmRFeGlzdHMgZnJvbSAnY29tbWFuZC1leGlzdHMnXG5cbmltcG9ydCB0eXBlIHsgQ2xpQXJncywgUGFja2FnZU1hbmFnZXIgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBjcmVhdGVQcm9qZWN0IH0gZnJvbSAnLi9saWIvY3JlYXRlLXByb2plY3QnXG5pbXBvcnQgeyBnZW5lcmF0ZVNlY3JldCB9IGZyb20gJy4vbGliL2dlbmVyYXRlLXNlY3JldCdcbmltcG9ydCB7IHBhcnNlUHJvamVjdE5hbWUgfSBmcm9tICcuL2xpYi9wYXJzZS1wcm9qZWN0LW5hbWUnXG5pbXBvcnQgeyBwYXJzZVRlbXBsYXRlIH0gZnJvbSAnLi9saWIvcGFyc2UtdGVtcGxhdGUnXG5pbXBvcnQgeyBzZWxlY3REYiB9IGZyb20gJy4vbGliL3NlbGVjdC1kYidcbmltcG9ydCB7IGdldFZhbGlkVGVtcGxhdGVzLCB2YWxpZGF0ZVRlbXBsYXRlIH0gZnJvbSAnLi9saWIvdGVtcGxhdGVzJ1xuaW1wb3J0IHsgd3JpdGVFbnZGaWxlIH0gZnJvbSAnLi9saWIvd3JpdGUtZW52LWZpbGUnXG5pbXBvcnQgeyBzdWNjZXNzIH0gZnJvbSAnLi91dGlscy9sb2cnXG5pbXBvcnQgeyBoZWxwTWVzc2FnZSwgc3VjY2Vzc01lc3NhZ2UsIHdlbGNvbWVNZXNzYWdlIH0gZnJvbSAnLi91dGlscy9tZXNzYWdlcydcblxuZXhwb3J0IGNsYXNzIE1haW4ge1xuICBhcmdzOiBDbGlBcmdzXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBiYWQgdHlwaW5nc1xuICAgIHRoaXMuYXJncyA9IGFyZyhcbiAgICAgIHtcbiAgICAgICAgJy0tZGInOiBTdHJpbmcsXG4gICAgICAgICctLWhlbHAnOiBCb29sZWFuLFxuICAgICAgICAnLS1uYW1lJzogU3RyaW5nLFxuICAgICAgICAnLS1zZWNyZXQnOiBTdHJpbmcsXG4gICAgICAgICctLXRlbXBsYXRlJzogU3RyaW5nLFxuXG4gICAgICAgIC8vIFBhY2thZ2UgbWFuYWdlclxuICAgICAgICAnLS1uby1kZXBzJzogQm9vbGVhbixcbiAgICAgICAgJy0tdXNlLW5wbSc6IEJvb2xlYW4sXG4gICAgICAgICctLXVzZS1wbnBtJzogQm9vbGVhbixcbiAgICAgICAgJy0tdXNlLXlhcm4nOiBCb29sZWFuLFxuXG4gICAgICAgIC8vIEZsYWdzXG4gICAgICAgICctLWJldGEnOiBCb29sZWFuLFxuICAgICAgICAnLS1kcnktcnVuJzogQm9vbGVhbixcblxuICAgICAgICAvLyBBbGlhc2VzXG4gICAgICAgICctZCc6ICctLWRiJyxcbiAgICAgICAgJy1oJzogJy0taGVscCcsXG4gICAgICAgICctbic6ICctLW5hbWUnLFxuICAgICAgICAnLXQnOiAnLS10ZW1wbGF0ZScsXG4gICAgICB9LFxuICAgICAgeyBwZXJtaXNzaXZlOiB0cnVlIH0sXG4gICAgKVxuICB9XG5cbiAgYXN5bmMgaW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuYXJnc1snLS1oZWxwJ10pIHtcbiAgICAgICAgY29uc29sZS5sb2coaGVscE1lc3NhZ2UoKSlcbiAgICAgICAgcHJvY2Vzcy5leGl0KDApXG4gICAgICB9XG4gICAgICBjb25zdCB0ZW1wbGF0ZUFyZyA9IHRoaXMuYXJnc1snLS10ZW1wbGF0ZSddXG4gICAgICBpZiAodGVtcGxhdGVBcmcpIHtcbiAgICAgICAgY29uc3QgdmFsaWQgPSB2YWxpZGF0ZVRlbXBsYXRlKHRlbXBsYXRlQXJnKVxuICAgICAgICBpZiAoIXZhbGlkKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coaGVscE1lc3NhZ2UoKSlcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmxvZyh3ZWxjb21lTWVzc2FnZSlcbiAgICAgIGNvbnN0IHByb2plY3ROYW1lID0gYXdhaXQgcGFyc2VQcm9qZWN0TmFtZSh0aGlzLmFyZ3MpXG4gICAgICBjb25zdCB2YWxpZFRlbXBsYXRlcyA9IGdldFZhbGlkVGVtcGxhdGVzKClcbiAgICAgIGNvbnN0IHRlbXBsYXRlID0gYXdhaXQgcGFyc2VUZW1wbGF0ZSh0aGlzLmFyZ3MsIHZhbGlkVGVtcGxhdGVzKVxuXG4gICAgICBjb25zdCBwcm9qZWN0RGlyID0gcHJvamVjdE5hbWUgPT09ICcuJyA/IHByb2Nlc3MuY3dkKCkgOiBgLi8ke3NsdWdpZnkocHJvamVjdE5hbWUpfWBcbiAgICAgIGNvbnN0IHBhY2thZ2VNYW5hZ2VyID0gYXdhaXQgZ2V0UGFja2FnZU1hbmFnZXIodGhpcy5hcmdzKVxuXG4gICAgICBpZiAodGVtcGxhdGUudHlwZSAhPT0gJ3BsdWdpbicpIHtcbiAgICAgICAgY29uc3QgZGJEZXRhaWxzID0gYXdhaXQgc2VsZWN0RGIodGhpcy5hcmdzLCBwcm9qZWN0TmFtZSlcbiAgICAgICAgY29uc3QgcGF5bG9hZFNlY3JldCA9IGdlbmVyYXRlU2VjcmV0KClcbiAgICAgICAgaWYgKCF0aGlzLmFyZ3NbJy0tZHJ5LXJ1biddKSB7XG4gICAgICAgICAgYXdhaXQgY3JlYXRlUHJvamVjdCh7XG4gICAgICAgICAgICBjbGlBcmdzOiB0aGlzLmFyZ3MsXG4gICAgICAgICAgICBkYkRldGFpbHMsXG4gICAgICAgICAgICBwYWNrYWdlTWFuYWdlcixcbiAgICAgICAgICAgIHByb2plY3REaXIsXG4gICAgICAgICAgICBwcm9qZWN0TmFtZSxcbiAgICAgICAgICAgIHRlbXBsYXRlLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgYXdhaXQgd3JpdGVFbnZGaWxlKHtcbiAgICAgICAgICAgIGRhdGFiYXNlVXJpOiBkYkRldGFpbHMuZGJVcmksXG4gICAgICAgICAgICBwYXlsb2FkU2VjcmV0LFxuICAgICAgICAgICAgcHJvamVjdERpcixcbiAgICAgICAgICAgIHRlbXBsYXRlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghdGhpcy5hcmdzWyctLWRyeS1ydW4nXSkge1xuICAgICAgICAgIGF3YWl0IGNyZWF0ZVByb2plY3Qoe1xuICAgICAgICAgICAgY2xpQXJnczogdGhpcy5hcmdzLFxuICAgICAgICAgICAgcGFja2FnZU1hbmFnZXIsXG4gICAgICAgICAgICBwcm9qZWN0RGlyLFxuICAgICAgICAgICAgcHJvamVjdE5hbWUsXG4gICAgICAgICAgICB0ZW1wbGF0ZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHN1Y2Nlc3MoJ1BheWxvYWQgcHJvamVjdCBzdWNjZXNzZnVsbHkgY3JlYXRlZCcpXG4gICAgICBjb25zb2xlLmxvZyhzdWNjZXNzTWVzc2FnZShwcm9qZWN0RGlyLCBwYWNrYWdlTWFuYWdlcikpXG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlcihhcmdzOiBDbGlBcmdzKTogUHJvbWlzZTxQYWNrYWdlTWFuYWdlcj4ge1xuICBsZXQgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyID0gJ25wbSdcblxuICBpZiAoYXJnc1snLS11c2UtbnBtJ10pIHtcbiAgICBwYWNrYWdlTWFuYWdlciA9ICducG0nXG4gIH0gZWxzZSBpZiAoYXJnc1snLS11c2UteWFybiddKSB7XG4gICAgcGFja2FnZU1hbmFnZXIgPSAneWFybidcbiAgfSBlbHNlIGlmIChhcmdzWyctLXVzZS1wbnBtJ10pIHtcbiAgICBwYWNrYWdlTWFuYWdlciA9ICdwbnBtJ1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBpZiAoYXdhaXQgY29tbWFuZEV4aXN0cygneWFybicpKSB7XG4gICAgICAgIHBhY2thZ2VNYW5hZ2VyID0gJ3lhcm4nXG4gICAgICB9IGVsc2UgaWYgKGF3YWl0IGNvbW1hbmRFeGlzdHMoJ3BucG0nKSkge1xuICAgICAgICBwYWNrYWdlTWFuYWdlciA9ICdwbnBtJ1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICBwYWNrYWdlTWFuYWdlciA9ICducG0nXG4gICAgfVxuICB9XG4gIHJldHVybiBwYWNrYWdlTWFuYWdlclxufVxuIl0sIm5hbWVzIjpbIk1haW4iLCJhcmdzIiwiY29uc3RydWN0b3IiLCJhcmciLCJTdHJpbmciLCJCb29sZWFuIiwicGVybWlzc2l2ZSIsImluaXQiLCJjb25zb2xlIiwibG9nIiwiaGVscE1lc3NhZ2UiLCJwcm9jZXNzIiwiZXhpdCIsInRlbXBsYXRlQXJnIiwidmFsaWQiLCJ2YWxpZGF0ZVRlbXBsYXRlIiwid2VsY29tZU1lc3NhZ2UiLCJwcm9qZWN0TmFtZSIsInBhcnNlUHJvamVjdE5hbWUiLCJ2YWxpZFRlbXBsYXRlcyIsImdldFZhbGlkVGVtcGxhdGVzIiwidGVtcGxhdGUiLCJwYXJzZVRlbXBsYXRlIiwicHJvamVjdERpciIsImN3ZCIsInNsdWdpZnkiLCJwYWNrYWdlTWFuYWdlciIsImdldFBhY2thZ2VNYW5hZ2VyIiwidHlwZSIsImRiRGV0YWlscyIsInNlbGVjdERiIiwicGF5bG9hZFNlY3JldCIsImdlbmVyYXRlU2VjcmV0IiwiY3JlYXRlUHJvamVjdCIsImNsaUFyZ3MiLCJ3cml0ZUVudkZpbGUiLCJkYXRhYmFzZVVyaSIsImRiVXJpIiwic3VjY2VzcyIsInN1Y2Nlc3NNZXNzYWdlIiwiZXJyb3IiLCJjb21tYW5kRXhpc3RzIl0sIm1hcHBpbmdzIjoiOzs7OytCQWdCYUE7OztlQUFBQTs7O2dFQWhCTzs0REFDSjtzRUFDVTsrQkFJSTtnQ0FDQztrQ0FDRTsrQkFDSDswQkFDTDsyQkFDMkI7OEJBQ3ZCO3FCQUNMOzBCQUNvQzs7Ozs7O0FBRXJELE1BQU1BO0lBQ1hDLEtBQWE7SUFFYkMs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
250
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/main.ts"],"sourcesContent":["import * as p from '@clack/prompts'\nimport slugify from '@sindresorhus/slugify'\nimport arg from 'arg'\nimport chalk from 'chalk'\n// @ts-expect-error no types\nimport { detect } from 'detect-package-manager'\nimport figures from 'figures'\nimport path from 'path'\n\nimport type { CliArgs, PackageManager } from './types.js'\n\nimport { configurePayloadConfig } from './lib/configure-payload-config.js'\nimport { createProject } from './lib/create-project.js'\nimport { generateSecret } from './lib/generate-secret.js'\nimport { getNextAppDetails, initNext } from './lib/init-next.js'\nimport { parseProjectName } from './lib/parse-project-name.js'\nimport { parseTemplate } from './lib/parse-template.js'\nimport { selectDb } from './lib/select-db.js'\nimport { getValidTemplates, validateTemplate } from './lib/templates.js'\nimport { writeEnvFile } from './lib/write-env-file.js'\nimport { error, info } from './utils/log.js'\nimport {\n feedbackOutro,\n helpMessage,\n moveMessage,\n successMessage,\n successfulNextInit,\n} from './utils/messages.js'\n\nexport class Main {\n args: CliArgs\n\n constructor() {\n // @ts-expect-error bad typings\n this.args = arg(\n {\n '--db': String,\n '--db-accept-recommended': Boolean,\n '--db-connection-string': String,\n '--help': Boolean,\n '--local-template': String,\n '--name': String,\n '--secret': String,\n '--template': String,\n '--template-branch': String,\n\n // Next.js\n '--init-next': Boolean, // TODO: Is this needed if we detect if inside Next.js project?\n\n // Package manager\n '--no-deps': Boolean,\n '--use-npm': Boolean,\n '--use-pnpm': Boolean,\n '--use-yarn': Boolean,\n\n // Flags\n '--beta': Boolean,\n '--debug': Boolean,\n '--dry-run': Boolean,\n\n // Aliases\n '-d': '--db',\n '-h': '--help',\n '-n': '--name',\n '-t': '--template',\n },\n { permissive: true },\n )\n }\n\n async init(): Promise<void> {\n try {\n if (this.args['--help']) {\n helpMessage()\n process.exit(0)\n }\n\n // eslint-disable-next-line no-console\n console.log('\\n')\n p.intro(chalk.bgCyan(chalk.black(' create-payload-app ')))\n p.note(\"Welcome to Payload. Let's create a project!\")\n\n // Detect if inside Next.js project\n const nextAppDetails = await getNextAppDetails(process.cwd())\n const { hasTopLevelLayout, nextAppDir, nextConfigPath } = nextAppDetails\n\n if (nextConfigPath) {\n this.args['--name'] = slugify(path.basename(path.dirname(nextConfigPath)))\n }\n\n const projectName = await parseProjectName(this.args)\n const projectDir = nextConfigPath\n ? path.dirname(nextConfigPath)\n : path.resolve(process.cwd(), slugify(projectName))\n\n const packageManager = await getPackageManager(this.args, projectDir)\n\n if (nextConfigPath) {\n p.log.step(\n chalk.bold(`${chalk.bgBlack(` ${figures.triangleUp} Next.js `)} project detected!`),\n )\n\n const proceed = await p.confirm({\n initialValue: true,\n message: chalk.bold(`Install ${chalk.green('Payload')} in this project?`),\n })\n if (p.isCancel(proceed) || !proceed) {\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n // Check for top-level layout.tsx\n if (nextAppDir && hasTopLevelLayout) {\n p.log.warn(moveMessage({ nextAppDir, projectDir }))\n p.outro(feedbackOutro())\n process.exit(0)\n }\n\n const dbDetails = await selectDb(this.args, projectName)\n\n const result = await initNext({\n ...this.args,\n dbType: dbDetails.type,\n nextAppDetails,\n packageManager,\n projectDir,\n })\n\n if (result.success === false) {\n p.outro(feedbackOutro())\n process.exit(1)\n }\n\n await configurePayloadConfig({\n dbDetails,\n projectDirOrConfigPath: {\n payloadConfigPath: result.payloadConfigPath,\n },\n })\n\n await writeEnvFile({\n cliArgs: this.args,\n databaseUri: dbDetails.dbUri,\n payloadSecret: generateSecret(),\n projectDir,\n })\n\n info('Payload project successfully initialized!')\n p.note(successfulNextInit(), chalk.bgGreen(chalk.black(' Documentation ')))\n p.outro(feedbackOutro())\n return\n }\n\n const templateArg = this.args['--template']\n if (templateArg) {\n const valid = validateTemplate(templateArg)\n if (!valid) {\n helpMessage()\n process.exit(1)\n }\n }\n\n const validTemplates = getValidTemplates()\n const template = await parseTemplate(this.args, validTemplates)\n if (!template) {\n p.log.error('Invalid template given')\n p.outro(feedbackOutro())\n process.exit(1)\n }\n\n switch (template.type) {\n case 'starter': {\n const dbDetails = await selectDb(this.args, projectName)\n const payloadSecret = generateSecret()\n await createProject({\n cliArgs: this.args,\n dbDetails,\n packageManager,\n projectDir,\n projectName,\n template,\n })\n await writeEnvFile({\n cliArgs: this.args,\n databaseUri: dbDetails.dbUri,\n payloadSecret,\n projectDir,\n template,\n })\n break\n }\n case 'plugin': {\n await createProject({\n cliArgs: this.args,\n packageManager,\n projectDir,\n projectName,\n template,\n })\n break\n }\n }\n\n info('Payload project successfully created!')\n p.note(successMessage(projectDir, packageManager), chalk.bgGreen(chalk.black(' Next Steps ')))\n p.outro(feedbackOutro())\n } catch (err: unknown) {\n error(err instanceof Error ? err.message : 'An error occurred')\n }\n }\n}\n\nasync function getPackageManager(args: CliArgs, projectDir: string): Promise<PackageManager> {\n let packageManager: PackageManager = 'npm'\n\n if (args['--use-npm']) {\n packageManager = 'npm'\n } else if (args['--use-yarn']) {\n packageManager = 'yarn'\n } else if (args['--use-pnpm']) {\n packageManager = 'pnpm'\n } else {\n const detected = await detect({ cwd: projectDir })\n packageManager = detected || 'npm'\n }\n return packageManager\n}\n"],"names":["Main","args","constructor","arg","String","Boolean","permissive","init","helpMessage","process","exit","console","log","p","intro","chalk","bgCyan","black","note","nextAppDetails","getNextAppDetails","cwd","hasTopLevelLayout","nextAppDir","nextConfigPath","slugify","path","basename","dirname","projectName","parseProjectName","projectDir","resolve","packageManager","getPackageManager","step","bold","bgBlack","figures","triangleUp","proceed","confirm","initialValue","message","green","isCancel","outro","feedbackOutro","warn","moveMessage","dbDetails","selectDb","result","initNext","dbType","type","success","configurePayloadConfig","projectDirOrConfigPath","payloadConfigPath","writeEnvFile","cliArgs","databaseUri","dbUri","payloadSecret","generateSecret","info","successfulNextInit","bgGreen","templateArg","valid","validateTemplate","validTemplates","getValidTemplates","template","parseTemplate","error","createProject","successMessage","err","Error","detected","detect"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pack-template-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-template-files.d.ts","sourceRoot":"","sources":["../../src/scripts/pack-template-files.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
6
+ const _promises = /*#__PURE__*/ _interop_require_default(require("fs/promises"));
7
+ const _nodeurl = require("node:url");
8
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
9
+ function _interop_require_default(obj) {
10
+ return obj && obj.__esModule ? obj : {
11
+ default: obj
12
+ };
13
+ }
14
+ const filename = (0, _nodeurl.fileURLToPath)(require("url").pathToFileURL(__filename).toString());
15
+ const dirname = _path.default.dirname(filename);
16
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
17
+ main();
18
+ /**
19
+ * Copy the necessary template files from `templates/blank-3.0` to `dist/template`
20
+ *
21
+ * Eventually, this should be replaced with using tar.x to stream from the git repo
22
+ */ async function main() {
23
+ const root = _path.default.resolve(dirname, '../../../../');
24
+ const outputPath = _path.default.resolve(dirname, '../../dist/template');
25
+ const sourceTemplatePath = _path.default.resolve(root, 'templates/blank-3.0');
26
+ if (!_fs.default.existsSync(sourceTemplatePath)) {
27
+ throw new Error(`Source path does not exist: ${sourceTemplatePath}`);
28
+ }
29
+ if (!_fs.default.existsSync(outputPath)) {
30
+ _fs.default.mkdirSync(outputPath, {
31
+ recursive: true
32
+ });
33
+ }
34
+ // Copy the src directory from `templates/blank-3.0` to `dist`
35
+ const srcPath = _path.default.resolve(sourceTemplatePath, 'src');
36
+ const distSrcPath = _path.default.resolve(outputPath, 'src');
37
+ // Copy entire file structure from src to dist
38
+ await _promises.default.cp(srcPath, distSrcPath, {
39
+ recursive: true
40
+ });
41
+ }
42
+
43
+ //# sourceMappingURL=pack-template-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/scripts/pack-template-files.ts"],"sourcesContent":["import fs from 'fs'\nimport fsp from 'fs/promises'\nimport { fileURLToPath } from 'node:url'\nimport path from 'path'\nconst filename = fileURLToPath(import.meta.url)\nconst dirname = path.dirname(filename)\n\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\nmain()\n\n/**\n * Copy the necessary template files from `templates/blank-3.0` to `dist/template`\n *\n * Eventually, this should be replaced with using tar.x to stream from the git repo\n */\n\nasync function main() {\n const root = path.resolve(dirname, '../../../../')\n const outputPath = path.resolve(dirname, '../../dist/template')\n const sourceTemplatePath = path.resolve(root, 'templates/blank-3.0')\n\n if (!fs.existsSync(sourceTemplatePath)) {\n throw new Error(`Source path does not exist: ${sourceTemplatePath}`)\n }\n\n if (!fs.existsSync(outputPath)) {\n fs.mkdirSync(outputPath, { recursive: true })\n }\n\n // Copy the src directory from `templates/blank-3.0` to `dist`\n const srcPath = path.resolve(sourceTemplatePath, 'src')\n const distSrcPath = path.resolve(outputPath, 'src')\n // Copy entire file structure from src to dist\n await fsp.cp(srcPath, distSrcPath, { recursive: true })\n}\n"],"names":["filename","fileURLToPath","dirname","path","main","root","resolve","outputPath","sourceTemplatePath","fs","existsSync","Error","mkdirSync","recursive","srcPath","distSrcPath","fsp","cp"],"mappings":";;;;2DAAe;iEACC;yBACc;6DACb;;;;;;AACjB,MAAMA,WAAWC,IAAAA,sBAAa,EAAC;AAC/B,MAAMC,UAAUC,aAAI,CAACD,OAAO,CAACF;AAE7B,mEAAmE;AACnEI;AAEA;;;;CAIC,GAED,eAAeA;IACb,MAAMC,OAAOF,aAAI,CAACG,OAAO,CAACJ,SAAS;IACnC,MAAMK,aAAaJ,aAAI,CAACG,OAAO,CAACJ,SAAS;IACzC,MAAMM,qBAAqBL,aAAI,CAACG,OAAO,CAACD,MAAM;IAE9C,IAAI,CAACI,WAAE,CAACC,UAAU,CAACF,qBAAqB;QACtC,MAAM,IAAIG,MAAM,CAAC,4BAA4B,EAAEH,mBAAmB,CAAC;IACrE;IAEA,IAAI,CAACC,WAAE,CAACC,UAAU,CAACH,aAAa;QAC9BE,WAAE,CAACG,SAAS,CAACL,YAAY;YAAEM,WAAW;QAAK;IAC7C;IAEA,8DAA8D;IAC9D,MAAMC,UAAUX,aAAI,CAACG,OAAO,CAACE,oBAAoB;IACjD,MAAMO,cAAcZ,aAAI,CAACG,OAAO,CAACC,YAAY;IAC7C,8CAA8C;IAC9C,MAAMS,iBAAG,CAACC,EAAE,CAACH,SAASC,aAAa;QAAEF,WAAW;IAAK;AACvD"}
@@ -0,0 +1,17 @@
1
+ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
2
+ import config from '@payload-config'
3
+ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */
4
+ import { RootPage } from '@payloadcms/next/views'
5
+
6
+ type Args = {
7
+ params: {
8
+ segments: string[]
9
+ }
10
+ searchParams: {
11
+ [key: string]: string | string[]
12
+ }
13
+ }
14
+
15
+ const Page = ({ params, searchParams }: Args) => RootPage({ config, params, searchParams })
16
+
17
+ export default Page
@@ -0,0 +1,9 @@
1
+ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
2
+ /* DO NOT MODIFY it because it could be re-written at any time. */
3
+ import config from '@payload-config'
4
+ import { REST_DELETE, REST_GET, REST_PATCH, REST_POST } from '@payloadcms/next/routes'
5
+
6
+ export const GET = REST_GET(config)
7
+ export const POST = REST_POST(config)
8
+ export const DELETE = REST_DELETE(config)
9
+ export const PATCH = REST_PATCH(config)
@@ -0,0 +1,6 @@
1
+ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
2
+ /* DO NOT MODIFY it because it could be re-written at any time. */
3
+ import config from '@payload-config'
4
+ import { GRAPHQL_POST } from '@payloadcms/next/routes'
5
+
6
+ export const POST = GRAPHQL_POST(config)
@@ -0,0 +1,6 @@
1
+ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
2
+ /* DO NOT MODIFY it because it could be re-written at any time. */
3
+ import config from '@payload-config'
4
+ import { GRAPHQL_PLAYGROUND_GET } from '@payloadcms/next/routes'
5
+
6
+ export const GET = GRAPHQL_PLAYGROUND_GET(config)
File without changes
@@ -0,0 +1,16 @@
1
+ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
2
+ import configPromise from '@payload-config'
3
+ import '@payloadcms/next/css'
4
+ import { RootLayout } from '@payloadcms/next/layouts'
5
+ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */
6
+ import React from 'react'
7
+
8
+ import './custom.scss'
9
+
10
+ type Args = {
11
+ children: React.ReactNode
12
+ }
13
+
14
+ const Layout = ({ children }: Args) => <RootLayout config={configPromise}>{children}</RootLayout>
15
+
16
+ export default Layout
@@ -0,0 +1,14 @@
1
+ import configPromise from '@payload-config'
2
+ import { getPayload } from 'payload'
3
+
4
+ export const GET = async () => {
5
+ const payload = await getPayload({
6
+ config: configPromise,
7
+ })
8
+
9
+ const data = await payload.find({
10
+ collection: 'users',
11
+ })
12
+
13
+ return Response.json(data)
14
+ }
@@ -0,0 +1,13 @@
1
+ import type { CollectionConfig } from 'payload/types'
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
+ }
@@ -0,0 +1,38 @@
1
+ import { mongooseAdapter } from '@payloadcms/db-mongodb' // database-adapter-import
2
+ // import { payloadCloud } from '@payloadcms/plugin-cloud'
3
+ import { lexicalEditor } from '@payloadcms/richtext-lexical' // editor-import
4
+ import path from 'path'
5
+ import { buildConfig } from 'payload/config'
6
+ // import sharp from 'sharp'
7
+ import { fileURLToPath } from 'url'
8
+
9
+ import { Users } from './collections/Users'
10
+
11
+ const filename = fileURLToPath(import.meta.url)
12
+ const dirname = path.dirname(filename)
13
+
14
+ export default buildConfig({
15
+ admin: {
16
+ user: Users.slug,
17
+ },
18
+ collections: [Users],
19
+ editor: lexicalEditor({}),
20
+ // plugins: [payloadCloud()], // TODO: Re-enable when cloud supports 3.0
21
+ secret: process.env.PAYLOAD_SECRET || '',
22
+ typescript: {
23
+ outputFile: path.resolve(dirname, 'payload-types.ts'),
24
+ },
25
+ // database-adapter-config-start
26
+ db: mongooseAdapter({
27
+ url: process.env.DATABASE_URI || '',
28
+ }),
29
+ // database-adapter-config-end
30
+ // Sharp is now an optional dependency -
31
+ // if you want to resize images, crop, set focal point, etc.
32
+ // make sure to install it and pass it to the config.
33
+
34
+ // This is temporary - we may make an adapter pattern
35
+ // for this before reaching 3.0 stable
36
+
37
+ // sharp,
38
+ })