create-payload-app 1.0.0 → 3.0.0-alpha.54
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/README.md +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -0
- package/dist/lib/configure-payload-config.d.ts +11 -0
- package/dist/lib/configure-payload-config.d.ts.map +1 -0
- package/dist/lib/configure-payload-config.js +15 -53
- package/dist/lib/configure-payload-config.js.map +1 -0
- package/dist/lib/create-project.d.ts +14 -0
- package/dist/lib/create-project.d.ts.map +1 -0
- package/dist/lib/create-project.js +84 -24
- package/dist/lib/create-project.js.map +1 -0
- package/dist/lib/create-project.spec.d.ts +2 -0
- package/dist/lib/create-project.spec.d.ts.map +1 -0
- package/dist/lib/create-project.spec.js +30 -75
- package/dist/lib/create-project.spec.js.map +1 -0
- package/dist/lib/generate-secret.d.ts +2 -0
- package/dist/lib/generate-secret.d.ts.map +1 -0
- package/dist/lib/generate-secret.js +1 -1
- package/dist/lib/generate-secret.js.map +1 -0
- package/dist/lib/init-next.d.ts +29 -0
- package/dist/lib/init-next.d.ts.map +1 -0
- package/dist/lib/init-next.js +285 -0
- package/dist/lib/init-next.js.map +1 -0
- package/dist/lib/packages.d.ts +9 -0
- package/dist/lib/packages.d.ts.map +1 -0
- package/dist/lib/packages.js +8 -52
- package/dist/lib/packages.js.map +1 -0
- package/dist/lib/parse-project-name.d.ts +3 -0
- package/dist/lib/parse-project-name.d.ts.map +1 -0
- package/dist/lib/parse-project-name.js +53 -12
- package/dist/lib/parse-project-name.js.map +1 -0
- package/dist/lib/parse-template.d.ts +3 -0
- package/dist/lib/parse-template.d.ts.map +1 -0
- package/dist/lib/parse-template.js +50 -20
- package/dist/lib/parse-template.js.map +1 -0
- package/dist/lib/select-db.d.ts +3 -0
- package/dist/lib/select-db.d.ts.map +1 -0
- package/dist/lib/select-db.js +72 -31
- package/dist/lib/select-db.js.map +1 -0
- package/dist/lib/templates.d.ts +4 -0
- package/dist/lib/templates.d.ts.map +1 -0
- package/dist/lib/templates.js +17 -11
- package/dist/lib/templates.js.map +1 -0
- package/dist/lib/wrap-next-config.d.ts +12 -0
- package/dist/lib/wrap-next-config.d.ts.map +1 -0
- package/dist/lib/wrap-next-config.js +110 -0
- package/dist/lib/wrap-next-config.js.map +1 -0
- package/dist/lib/wrap-next-config.spec.d.ts +2 -0
- package/dist/lib/wrap-next-config.spec.d.ts.map +1 -0
- package/dist/lib/wrap-next-config.spec.js +98 -0
- package/dist/lib/wrap-next-config.spec.js.map +1 -0
- package/dist/lib/write-env-file.d.ts +10 -0
- package/dist/lib/write-env-file.d.ts.map +1 -0
- package/dist/lib/write-env-file.js +9 -6
- package/dist/lib/write-env-file.js.map +1 -0
- package/dist/main.d.ts +7 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +176 -60
- package/dist/main.js.map +1 -0
- package/dist/scripts/pack-template-files.d.ts +2 -0
- package/dist/scripts/pack-template-files.d.ts.map +1 -0
- package/dist/scripts/pack-template-files.js +43 -0
- package/dist/scripts/pack-template-files.js.map +1 -0
- package/dist/template/src/app/(payload)/admin/[[...segments]]/page.tsx +17 -0
- package/dist/template/src/app/(payload)/api/[...slug]/route.ts +9 -0
- package/dist/template/src/app/(payload)/api/graphql/route.ts +6 -0
- package/dist/template/src/app/(payload)/api/graphql-playground/route.ts +6 -0
- package/dist/template/src/app/(payload)/custom.scss +0 -0
- package/dist/template/src/app/(payload)/layout.tsx +16 -0
- package/dist/template/src/app/my-route/route.ts +14 -0
- package/dist/template/src/collections/Users.ts +13 -0
- package/dist/template/src/payload.config.ts +38 -0
- package/dist/types.d.ts +55 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -0
- package/dist/utils/copy-recursive-sync.d.ts +5 -0
- package/dist/utils/copy-recursive-sync.d.ts.map +1 -0
- package/dist/utils/copy-recursive-sync.js +34 -0
- package/dist/utils/copy-recursive-sync.js.map +1 -0
- package/dist/utils/log.d.ts +6 -0
- package/dist/utils/log.d.ts.map +1 -0
- package/dist/utils/log.js +62 -15
- package/dist/utils/log.js.map +1 -0
- package/dist/utils/messages.d.ts +11 -0
- package/dist/utils/messages.d.ts.map +1 -0
- package/dist/utils/messages.js +47 -16
- package/dist/utils/messages.js.map +1 -0
- package/package.json +27 -10
@@ -13,4 +13,4 @@ function generateSecret() {
|
|
13
13
|
return (0, _crypto.randomBytes)(32).toString('hex').slice(0, 24);
|
14
14
|
}
|
15
15
|
|
16
|
-
//# sourceMappingURL=
|
16
|
+
//# sourceMappingURL=generate-secret.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/lib/generate-secret.ts"],"sourcesContent":["import { randomBytes } from 'crypto'\n\nexport function generateSecret(): string {\n return randomBytes(32).toString('hex').slice(0, 24)\n}\n"],"names":["generateSecret","randomBytes","toString","slice"],"mappings":";;;;+BAEgBA;;;eAAAA;;;wBAFY;AAErB,SAASA;IACd,OAAOC,IAAAA,mBAAW,EAAC,IAAIC,QAAQ,CAAC,OAAOC,KAAK,CAAC,GAAG;AAClD"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import type { CliArgs, DbType, PackageManager } from '../types.js';
|
2
|
+
type InitNextArgs = Pick<CliArgs, '--debug'> & {
|
3
|
+
dbType: DbType;
|
4
|
+
nextAppDetails?: NextAppDetails;
|
5
|
+
packageManager: PackageManager;
|
6
|
+
projectDir: string;
|
7
|
+
useDistFiles?: boolean;
|
8
|
+
};
|
9
|
+
type InitNextResult = {
|
10
|
+
isSrcDir: boolean;
|
11
|
+
nextAppDir: string;
|
12
|
+
payloadConfigPath: string;
|
13
|
+
success: true;
|
14
|
+
} | {
|
15
|
+
isSrcDir: boolean;
|
16
|
+
nextAppDir?: string;
|
17
|
+
reason: string;
|
18
|
+
success: false;
|
19
|
+
};
|
20
|
+
export declare function initNext(args: InitNextArgs): Promise<InitNextResult>;
|
21
|
+
type NextAppDetails = {
|
22
|
+
hasTopLevelLayout: boolean;
|
23
|
+
isSrcDir: boolean;
|
24
|
+
nextAppDir?: string;
|
25
|
+
nextConfigPath?: string;
|
26
|
+
};
|
27
|
+
export declare function getNextAppDetails(projectDir: string): Promise<NextAppDetails>;
|
28
|
+
export {};
|
29
|
+
//# sourceMappingURL=init-next.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"init-next.d.ts","sourceRoot":"","sources":["../../src/lib/init-next.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAOlE,KAAK,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,KAAK,cAAc,GACf;IACE,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,IAAI,CAAA;CACd,GACD;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAA;AAE9E,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAoD1E;AAiID,KAAK,cAAc,GAAG;IACpB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA+BnF"}
|
@@ -0,0 +1,285 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
function _export(target, all) {
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
7
|
+
enumerable: true,
|
8
|
+
get: all[name]
|
9
|
+
});
|
10
|
+
}
|
11
|
+
_export(exports, {
|
12
|
+
getNextAppDetails: function() {
|
13
|
+
return getNextAppDetails;
|
14
|
+
},
|
15
|
+
initNext: function() {
|
16
|
+
return initNext;
|
17
|
+
}
|
18
|
+
});
|
19
|
+
const _prompts = /*#__PURE__*/ _interop_require_wildcard(require("@clack/prompts"));
|
20
|
+
const _commentjson = require("comment-json");
|
21
|
+
const _execa = /*#__PURE__*/ _interop_require_default(require("execa"));
|
22
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
23
|
+
const _globby = /*#__PURE__*/ _interop_require_default(require("globby"));
|
24
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
25
|
+
const _util = require("util");
|
26
|
+
const _nodeurl = require("node:url");
|
27
|
+
const _copyrecursivesync = require("../utils/copy-recursive-sync.js");
|
28
|
+
const _log = require("../utils/log.js");
|
29
|
+
const _messages = require("../utils/messages.js");
|
30
|
+
const _wrapnextconfig = require("./wrap-next-config.js");
|
31
|
+
function _interop_require_default(obj) {
|
32
|
+
return obj && obj.__esModule ? obj : {
|
33
|
+
default: obj
|
34
|
+
};
|
35
|
+
}
|
36
|
+
function _getRequireWildcardCache(nodeInterop) {
|
37
|
+
if (typeof WeakMap !== "function") return null;
|
38
|
+
var cacheBabelInterop = new WeakMap();
|
39
|
+
var cacheNodeInterop = new WeakMap();
|
40
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
41
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
42
|
+
})(nodeInterop);
|
43
|
+
}
|
44
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
45
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
46
|
+
return obj;
|
47
|
+
}
|
48
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
49
|
+
return {
|
50
|
+
default: obj
|
51
|
+
};
|
52
|
+
}
|
53
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
54
|
+
if (cache && cache.has(obj)) {
|
55
|
+
return cache.get(obj);
|
56
|
+
}
|
57
|
+
var newObj = {
|
58
|
+
__proto__: null
|
59
|
+
};
|
60
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
61
|
+
for(var key in obj){
|
62
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
63
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
64
|
+
if (desc && (desc.get || desc.set)) {
|
65
|
+
Object.defineProperty(newObj, key, desc);
|
66
|
+
} else {
|
67
|
+
newObj[key] = obj[key];
|
68
|
+
}
|
69
|
+
}
|
70
|
+
}
|
71
|
+
newObj.default = obj;
|
72
|
+
if (cache) {
|
73
|
+
cache.set(obj, newObj);
|
74
|
+
}
|
75
|
+
return newObj;
|
76
|
+
}
|
77
|
+
const readFile = (0, _util.promisify)(_fs.default.readFile);
|
78
|
+
const writeFile = (0, _util.promisify)(_fs.default.writeFile);
|
79
|
+
const filename = (0, _nodeurl.fileURLToPath)(require("url").pathToFileURL(__filename).toString());
|
80
|
+
const dirname = _path.default.dirname(filename);
|
81
|
+
async function initNext(args) {
|
82
|
+
const { dbType: dbType, packageManager, projectDir } = args;
|
83
|
+
const nextAppDetails = args.nextAppDetails || await getNextAppDetails(projectDir);
|
84
|
+
const { hasTopLevelLayout, isSrcDir, nextAppDir } = nextAppDetails || await getNextAppDetails(projectDir);
|
85
|
+
if (!nextAppDir) {
|
86
|
+
return {
|
87
|
+
isSrcDir,
|
88
|
+
reason: `Could not find app directory in ${projectDir}`,
|
89
|
+
success: false
|
90
|
+
};
|
91
|
+
}
|
92
|
+
if (hasTopLevelLayout) {
|
93
|
+
// Output directions for user to move all files from app to top-level directory named `(app)`
|
94
|
+
_prompts.log.warn((0, _messages.moveMessage)({
|
95
|
+
nextAppDir,
|
96
|
+
projectDir
|
97
|
+
}));
|
98
|
+
return {
|
99
|
+
isSrcDir,
|
100
|
+
nextAppDir,
|
101
|
+
reason: 'Found existing layout.tsx in app directory',
|
102
|
+
success: false
|
103
|
+
};
|
104
|
+
}
|
105
|
+
const installSpinner = _prompts.spinner();
|
106
|
+
installSpinner.start('Installing Payload and dependencies...');
|
107
|
+
const configurationResult = installAndConfigurePayload({
|
108
|
+
...args,
|
109
|
+
nextAppDetails,
|
110
|
+
useDistFiles: true
|
111
|
+
});
|
112
|
+
if (configurationResult.success === false) {
|
113
|
+
installSpinner.stop(configurationResult.reason, 1);
|
114
|
+
return {
|
115
|
+
...configurationResult,
|
116
|
+
isSrcDir,
|
117
|
+
success: false
|
118
|
+
};
|
119
|
+
}
|
120
|
+
const { success: installSuccess } = await installDeps(projectDir, packageManager, dbType);
|
121
|
+
if (!installSuccess) {
|
122
|
+
installSpinner.stop('Failed to install dependencies', 1);
|
123
|
+
return {
|
124
|
+
...configurationResult,
|
125
|
+
isSrcDir,
|
126
|
+
reason: 'Failed to install dependencies',
|
127
|
+
success: false
|
128
|
+
};
|
129
|
+
}
|
130
|
+
// Add `@payload-config` to tsconfig.json `paths`
|
131
|
+
await addPayloadConfigToTsConfig(projectDir, isSrcDir);
|
132
|
+
installSpinner.stop('Successfully installed Payload and dependencies');
|
133
|
+
return {
|
134
|
+
...configurationResult,
|
135
|
+
isSrcDir,
|
136
|
+
nextAppDir,
|
137
|
+
success: true
|
138
|
+
};
|
139
|
+
}
|
140
|
+
async function addPayloadConfigToTsConfig(projectDir, isSrcDir) {
|
141
|
+
const tsConfigPath = _path.default.resolve(projectDir, 'tsconfig.json');
|
142
|
+
const userTsConfigContent = await readFile(tsConfigPath, {
|
143
|
+
encoding: 'utf8'
|
144
|
+
});
|
145
|
+
const userTsConfig = (0, _commentjson.parse)(userTsConfigContent);
|
146
|
+
if (!userTsConfig.compilerOptions && !('extends' in userTsConfig)) {
|
147
|
+
userTsConfig.compilerOptions = {};
|
148
|
+
}
|
149
|
+
if (!userTsConfig.compilerOptions?.paths?.['@payload-config'] && userTsConfig.compilerOptions?.paths) {
|
150
|
+
userTsConfig.compilerOptions.paths = {
|
151
|
+
...userTsConfig.compilerOptions.paths || {},
|
152
|
+
'@payload-config': [
|
153
|
+
`./${isSrcDir ? 'src/' : ''}payload.config.ts`
|
154
|
+
]
|
155
|
+
};
|
156
|
+
await writeFile(tsConfigPath, (0, _commentjson.stringify)(userTsConfig, null, 2), {
|
157
|
+
encoding: 'utf8'
|
158
|
+
});
|
159
|
+
}
|
160
|
+
}
|
161
|
+
function installAndConfigurePayload(args) {
|
162
|
+
const { '--debug': debug, nextAppDetails: { isSrcDir, nextAppDir, nextConfigPath } = {}, projectDir, useDistFiles } = args;
|
163
|
+
if (!nextAppDir || !nextConfigPath) {
|
164
|
+
return {
|
165
|
+
reason: 'Could not find app directory or next.config.js',
|
166
|
+
success: false
|
167
|
+
};
|
168
|
+
}
|
169
|
+
const logDebug = (message)=>{
|
170
|
+
if (debug) (0, _log.debug)(message);
|
171
|
+
};
|
172
|
+
if (!_fs.default.existsSync(projectDir)) {
|
173
|
+
return {
|
174
|
+
reason: `Could not find specified project directory at ${projectDir}`,
|
175
|
+
success: false
|
176
|
+
};
|
177
|
+
}
|
178
|
+
const templateFilesPath = dirname.endsWith('dist') || useDistFiles ? _path.default.resolve(dirname, '../..', 'dist/template') : _path.default.resolve(dirname, '../../../../templates/blank-3.0');
|
179
|
+
logDebug(`Using template files from: ${templateFilesPath}`);
|
180
|
+
if (!_fs.default.existsSync(templateFilesPath)) {
|
181
|
+
return {
|
182
|
+
reason: `Could not find template source files from ${templateFilesPath}`,
|
183
|
+
success: false
|
184
|
+
};
|
185
|
+
} else {
|
186
|
+
logDebug('Found template source files');
|
187
|
+
}
|
188
|
+
logDebug(`Copying template files from ${templateFilesPath} to ${nextAppDir}`);
|
189
|
+
const templateSrcDir = _path.default.resolve(templateFilesPath, isSrcDir ? '' : 'src');
|
190
|
+
logDebug(`templateSrcDir: ${templateSrcDir}`);
|
191
|
+
logDebug(`nextAppDir: ${nextAppDir}`);
|
192
|
+
logDebug(`projectDir: ${projectDir}`);
|
193
|
+
logDebug(`nextConfigPath: ${nextConfigPath}`);
|
194
|
+
logDebug(`isSrcDir: ${isSrcDir}. source: ${templateSrcDir}. dest: ${_path.default.dirname(nextConfigPath)}`);
|
195
|
+
// This is a little clunky and needs to account for isSrcDir
|
196
|
+
(0, _copyrecursivesync.copyRecursiveSync)(templateSrcDir, _path.default.dirname(nextConfigPath), debug);
|
197
|
+
// Wrap next.config.js with withPayload
|
198
|
+
(0, _wrapnextconfig.wrapNextConfig)({
|
199
|
+
nextConfigPath
|
200
|
+
});
|
201
|
+
return {
|
202
|
+
payloadConfigPath: _path.default.resolve(nextAppDir, '../payload.config.ts'),
|
203
|
+
success: true
|
204
|
+
};
|
205
|
+
}
|
206
|
+
async function installDeps(projectDir, packageManager, dbType) {
|
207
|
+
const packagesToInstall = [
|
208
|
+
'payload',
|
209
|
+
'@payloadcms/next',
|
210
|
+
'@payloadcms/richtext-lexical'
|
211
|
+
].map((pkg)=>`${pkg}@alpha`);
|
212
|
+
packagesToInstall.push(`@payloadcms/db-${dbType}@alpha`);
|
213
|
+
let exitCode = 0;
|
214
|
+
switch(packageManager){
|
215
|
+
case 'npm':
|
216
|
+
{
|
217
|
+
({ exitCode } = await (0, _execa.default)('npm', [
|
218
|
+
'install',
|
219
|
+
'--save',
|
220
|
+
...packagesToInstall
|
221
|
+
], {
|
222
|
+
cwd: projectDir
|
223
|
+
}));
|
224
|
+
break;
|
225
|
+
}
|
226
|
+
case 'yarn':
|
227
|
+
case 'pnpm':
|
228
|
+
{
|
229
|
+
({ exitCode } = await (0, _execa.default)(packageManager, [
|
230
|
+
'add',
|
231
|
+
...packagesToInstall
|
232
|
+
], {
|
233
|
+
cwd: projectDir
|
234
|
+
}));
|
235
|
+
break;
|
236
|
+
}
|
237
|
+
case 'bun':
|
238
|
+
{
|
239
|
+
(0, _log.warning)('Bun support is untested.');
|
240
|
+
({ exitCode } = await (0, _execa.default)('bun', [
|
241
|
+
'add',
|
242
|
+
...packagesToInstall
|
243
|
+
], {
|
244
|
+
cwd: projectDir
|
245
|
+
}));
|
246
|
+
break;
|
247
|
+
}
|
248
|
+
}
|
249
|
+
return {
|
250
|
+
success: exitCode === 0
|
251
|
+
};
|
252
|
+
}
|
253
|
+
async function getNextAppDetails(projectDir) {
|
254
|
+
const isSrcDir = _fs.default.existsSync(_path.default.resolve(projectDir, 'src'));
|
255
|
+
const nextConfigPath = (await (0, _globby.default)('next.config.*js', {
|
256
|
+
absolute: true,
|
257
|
+
cwd: projectDir
|
258
|
+
}))?.[0];
|
259
|
+
if (!nextConfigPath || nextConfigPath.length === 0) {
|
260
|
+
return {
|
261
|
+
hasTopLevelLayout: false,
|
262
|
+
isSrcDir,
|
263
|
+
nextConfigPath: undefined
|
264
|
+
};
|
265
|
+
}
|
266
|
+
let nextAppDir = (await (0, _globby.default)([
|
267
|
+
'**/app'
|
268
|
+
], {
|
269
|
+
absolute: true,
|
270
|
+
cwd: projectDir,
|
271
|
+
onlyDirectories: true
|
272
|
+
}))?.[0];
|
273
|
+
if (!nextAppDir || nextAppDir.length === 0) {
|
274
|
+
nextAppDir = undefined;
|
275
|
+
}
|
276
|
+
const hasTopLevelLayout = nextAppDir ? _fs.default.existsSync(_path.default.resolve(nextAppDir, 'layout.tsx')) : false;
|
277
|
+
return {
|
278
|
+
hasTopLevelLayout,
|
279
|
+
isSrcDir,
|
280
|
+
nextAppDir,
|
281
|
+
nextConfigPath
|
282
|
+
};
|
283
|
+
}
|
284
|
+
|
285
|
+
//# sourceMappingURL=init-next.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/lib/init-next.ts"],"sourcesContent":["import type { CompilerOptions } from 'typescript'\n\nimport * as p from '@clack/prompts'\nimport { parse, stringify } from 'comment-json'\nimport execa from 'execa'\nimport fs from 'fs'\nimport globby from 'globby'\nimport path from 'path'\nimport { promisify } from 'util'\n\nconst readFile = promisify(fs.readFile)\nconst writeFile = promisify(fs.writeFile)\n\nconst filename = fileURLToPath(import.meta.url)\nconst dirname = path.dirname(filename)\n\nimport { fileURLToPath } from 'node:url'\n\nimport type { CliArgs, DbType, PackageManager } from '../types.js'\n\nimport { copyRecursiveSync } from '../utils/copy-recursive-sync.js'\nimport { debug as origDebug, warning } from '../utils/log.js'\nimport { moveMessage } from '../utils/messages.js'\nimport { wrapNextConfig } from './wrap-next-config.js'\n\ntype InitNextArgs = Pick<CliArgs, '--debug'> & {\n dbType: DbType\n nextAppDetails?: NextAppDetails\n packageManager: PackageManager\n projectDir: string\n useDistFiles?: boolean\n}\n\ntype InitNextResult =\n | {\n isSrcDir: boolean\n nextAppDir: string\n payloadConfigPath: string\n success: true\n }\n | { isSrcDir: boolean; nextAppDir?: string; reason: string; success: false }\n\nexport async function initNext(args: InitNextArgs): Promise<InitNextResult> {\n const { dbType: dbType, packageManager, projectDir } = args\n\n const nextAppDetails = args.nextAppDetails || (await getNextAppDetails(projectDir))\n\n const { hasTopLevelLayout, isSrcDir, nextAppDir } =\n nextAppDetails || (await getNextAppDetails(projectDir))\n\n if (!nextAppDir) {\n return { isSrcDir, reason: `Could not find app directory in ${projectDir}`, success: false }\n }\n\n if (hasTopLevelLayout) {\n // Output directions for user to move all files from app to top-level directory named `(app)`\n p.log.warn(moveMessage({ nextAppDir, projectDir }))\n return {\n isSrcDir,\n nextAppDir,\n reason: 'Found existing layout.tsx in app directory',\n success: false,\n }\n }\n\n const installSpinner = p.spinner()\n installSpinner.start('Installing Payload and dependencies...')\n\n const configurationResult = installAndConfigurePayload({\n ...args,\n nextAppDetails,\n useDistFiles: true, // Requires running 'pnpm pack-template-files' in cpa\n })\n\n if (configurationResult.success === false) {\n installSpinner.stop(configurationResult.reason, 1)\n return { ...configurationResult, isSrcDir, success: false }\n }\n\n const { success: installSuccess } = await installDeps(projectDir, packageManager, dbType)\n if (!installSuccess) {\n installSpinner.stop('Failed to install dependencies', 1)\n return {\n ...configurationResult,\n isSrcDir,\n reason: 'Failed to install dependencies',\n success: false,\n }\n }\n\n // Add `@payload-config` to tsconfig.json `paths`\n await addPayloadConfigToTsConfig(projectDir, isSrcDir)\n installSpinner.stop('Successfully installed Payload and dependencies')\n return { ...configurationResult, isSrcDir, nextAppDir, success: true }\n}\n\nasync function addPayloadConfigToTsConfig(projectDir: string, isSrcDir: boolean) {\n const tsConfigPath = path.resolve(projectDir, 'tsconfig.json')\n const userTsConfigContent = await readFile(tsConfigPath, {\n encoding: 'utf8',\n })\n const userTsConfig = parse(userTsConfigContent) as {\n compilerOptions?: CompilerOptions\n }\n if (!userTsConfig.compilerOptions && !('extends' in userTsConfig)) {\n userTsConfig.compilerOptions = {}\n }\n\n if (\n !userTsConfig.compilerOptions?.paths?.['@payload-config'] &&\n userTsConfig.compilerOptions?.paths\n ) {\n userTsConfig.compilerOptions.paths = {\n ...(userTsConfig.compilerOptions.paths || {}),\n '@payload-config': [`./${isSrcDir ? 'src/' : ''}payload.config.ts`],\n }\n await writeFile(tsConfigPath, stringify(userTsConfig, null, 2), { encoding: 'utf8' })\n }\n}\n\nfunction installAndConfigurePayload(\n args: InitNextArgs & { nextAppDetails: NextAppDetails; useDistFiles?: boolean },\n):\n | { payloadConfigPath: string; success: true }\n | { payloadConfigPath?: string; reason: string; success: false } {\n const {\n '--debug': debug,\n nextAppDetails: { isSrcDir, nextAppDir, nextConfigPath } = {},\n projectDir,\n useDistFiles,\n } = args\n\n if (!nextAppDir || !nextConfigPath) {\n return {\n reason: 'Could not find app directory or next.config.js',\n success: false,\n }\n }\n\n const logDebug = (message: string) => {\n if (debug) origDebug(message)\n }\n\n if (!fs.existsSync(projectDir)) {\n return {\n reason: `Could not find specified project directory at ${projectDir}`,\n success: false,\n }\n }\n\n const templateFilesPath =\n dirname.endsWith('dist') || useDistFiles\n ? path.resolve(dirname, '../..', 'dist/template')\n : path.resolve(dirname, '../../../../templates/blank-3.0')\n\n logDebug(`Using template files from: ${templateFilesPath}`)\n\n if (!fs.existsSync(templateFilesPath)) {\n return {\n reason: `Could not find template source files from ${templateFilesPath}`,\n success: false,\n }\n } else {\n logDebug('Found template source files')\n }\n\n logDebug(`Copying template files from ${templateFilesPath} to ${nextAppDir}`)\n\n const templateSrcDir = path.resolve(templateFilesPath, isSrcDir ? '' : 'src')\n\n logDebug(`templateSrcDir: ${templateSrcDir}`)\n logDebug(`nextAppDir: ${nextAppDir}`)\n logDebug(`projectDir: ${projectDir}`)\n logDebug(`nextConfigPath: ${nextConfigPath}`)\n\n logDebug(\n `isSrcDir: ${isSrcDir}. source: ${templateSrcDir}. dest: ${path.dirname(nextConfigPath)}`,\n )\n\n // This is a little clunky and needs to account for isSrcDir\n copyRecursiveSync(templateSrcDir, path.dirname(nextConfigPath), debug)\n\n // Wrap next.config.js with withPayload\n wrapNextConfig({ nextConfigPath })\n\n return {\n payloadConfigPath: path.resolve(nextAppDir, '../payload.config.ts'),\n success: true,\n }\n}\n\nasync function installDeps(projectDir: string, packageManager: PackageManager, dbType: DbType) {\n const packagesToInstall = ['payload', '@payloadcms/next', '@payloadcms/richtext-lexical'].map(\n (pkg) => `${pkg}@alpha`,\n )\n\n packagesToInstall.push(`@payloadcms/db-${dbType}@alpha`)\n\n let exitCode = 0\n switch (packageManager) {\n case 'npm': {\n ;({ exitCode } = await execa('npm', ['install', '--save', ...packagesToInstall], {\n cwd: projectDir,\n }))\n break\n }\n case 'yarn':\n case 'pnpm': {\n ;({ exitCode } = await execa(packageManager, ['add', ...packagesToInstall], {\n cwd: projectDir,\n }))\n break\n }\n case 'bun': {\n warning('Bun support is untested.')\n ;({ exitCode } = await execa('bun', ['add', ...packagesToInstall], { cwd: projectDir }))\n break\n }\n }\n\n return { success: exitCode === 0 }\n}\n\ntype NextAppDetails = {\n hasTopLevelLayout: boolean\n isSrcDir: boolean\n nextAppDir?: string\n nextConfigPath?: string\n}\n\nexport async function getNextAppDetails(projectDir: string): Promise<NextAppDetails> {\n const isSrcDir = fs.existsSync(path.resolve(projectDir, 'src'))\n\n const nextConfigPath: string | undefined = (\n await globby('next.config.*js', { absolute: true, cwd: projectDir })\n )?.[0]\n if (!nextConfigPath || nextConfigPath.length === 0) {\n return {\n hasTopLevelLayout: false,\n isSrcDir,\n nextConfigPath: undefined,\n }\n }\n\n let nextAppDir: string | undefined = (\n await globby(['**/app'], {\n absolute: true,\n cwd: projectDir,\n onlyDirectories: true,\n })\n )?.[0]\n\n if (!nextAppDir || nextAppDir.length === 0) {\n nextAppDir = undefined\n }\n\n const hasTopLevelLayout = nextAppDir\n ? fs.existsSync(path.resolve(nextAppDir, 'layout.tsx'))\n : false\n\n return { hasTopLevelLayout, isSrcDir, nextAppDir, nextConfigPath }\n}\n"],"names":["getNextAppDetails","initNext","readFile","promisify","fs","writeFile","filename","fileURLToPath","dirname","path","args","dbType","packageManager","projectDir","nextAppDetails","hasTopLevelLayout","isSrcDir","nextAppDir","reason","success","p","log","warn","moveMessage","installSpinner","spinner","start","configurationResult","installAndConfigurePayload","useDistFiles","stop","installSuccess","installDeps","addPayloadConfigToTsConfig","tsConfigPath","resolve","userTsConfigContent","encoding","userTsConfig","parse","compilerOptions","paths","stringify","debug","nextConfigPath","logDebug","message","origDebug","existsSync","templateFilesPath","endsWith","templateSrcDir","copyRecursiveSync","wrapNextConfig","payloadConfigPath","packagesToInstall","map","pkg","push","exitCode","execa","cwd","warning","globby","absolute","length","undefined","onlyDirectories"],"mappings":"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"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import type { DbType } from '../types.js';
|
2
|
+
type DbAdapterReplacement = {
|
3
|
+
configReplacement: string[];
|
4
|
+
importReplacement: string;
|
5
|
+
packageName: string;
|
6
|
+
};
|
7
|
+
export declare const dbReplacements: Record<DbType, DbAdapterReplacement>;
|
8
|
+
export {};
|
9
|
+
//# sourceMappingURL=packages.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../src/lib/packages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,KAAK,oBAAoB,GAAG;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAqBD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAG/D,CAAA"}
|
package/dist/lib/packages.js
CHANGED
@@ -2,21 +2,10 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
3
3
|
value: true
|
4
4
|
});
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
});
|
10
|
-
}
|
11
|
-
_export(exports, {
|
12
|
-
dbPackages: function() {
|
13
|
-
return dbPackages;
|
14
|
-
},
|
15
|
-
bundlerPackages: function() {
|
16
|
-
return bundlerPackages;
|
17
|
-
},
|
18
|
-
editorPackages: function() {
|
19
|
-
return editorPackages;
|
5
|
+
Object.defineProperty(exports, "dbReplacements", {
|
6
|
+
enumerable: true,
|
7
|
+
get: function() {
|
8
|
+
return dbReplacements;
|
20
9
|
}
|
21
10
|
});
|
22
11
|
const mongodbReplacement = {
|
@@ -27,8 +16,7 @@ const mongodbReplacement = {
|
|
27
16
|
' db: mongooseAdapter({',
|
28
17
|
' url: process.env.DATABASE_URI,',
|
29
18
|
' }),'
|
30
|
-
]
|
31
|
-
version: '^1.0.0'
|
19
|
+
]
|
32
20
|
};
|
33
21
|
const postgresReplacement = {
|
34
22
|
configReplacement: [
|
@@ -39,43 +27,11 @@ const postgresReplacement = {
|
|
39
27
|
' }),'
|
40
28
|
],
|
41
29
|
importReplacement: "import { postgresAdapter } from '@payloadcms/db-postgres'",
|
42
|
-
packageName: '@payloadcms/db-postgres'
|
43
|
-
version: '^0.x'
|
30
|
+
packageName: '@payloadcms/db-postgres'
|
44
31
|
};
|
45
|
-
const
|
32
|
+
const dbReplacements = {
|
46
33
|
mongodb: mongodbReplacement,
|
47
34
|
postgres: postgresReplacement
|
48
35
|
};
|
49
|
-
const webpackReplacement = {
|
50
|
-
importReplacement: "import { webpackBundler } from '@payloadcms/bundler-webpack'",
|
51
|
-
packageName: '@payloadcms/bundler-webpack',
|
52
|
-
// Replacement of line containing `// bundler-config`
|
53
|
-
configReplacement: ' bundler: webpackBundler(),',
|
54
|
-
version: '^1.0.0'
|
55
|
-
};
|
56
|
-
const viteReplacement = {
|
57
|
-
configReplacement: ' bundler: viteBundler(),',
|
58
|
-
importReplacement: "import { viteBundler } from '@payloadcms/bundler-vite'",
|
59
|
-
packageName: '@payloadcms/bundler-vite',
|
60
|
-
version: '^0.x'
|
61
|
-
};
|
62
|
-
const bundlerPackages = {
|
63
|
-
vite: viteReplacement,
|
64
|
-
webpack: webpackReplacement
|
65
|
-
};
|
66
|
-
const editorPackages = {
|
67
|
-
lexical: {
|
68
|
-
configReplacement: ' editor: lexicalEditor({}),',
|
69
|
-
importReplacement: "import { lexicalEditor } from '@payloadcms/richtext-lexical'",
|
70
|
-
packageName: '@payloadcms/richtext-lexical',
|
71
|
-
version: '^0.x'
|
72
|
-
},
|
73
|
-
slate: {
|
74
|
-
configReplacement: ' editor: slateEditor({}),',
|
75
|
-
importReplacement: "import { slateEditor } from '@payloadcms/richtext-slate'",
|
76
|
-
packageName: '@payloadcms/richtext-slate',
|
77
|
-
version: '^1.0.0'
|
78
|
-
}
|
79
|
-
};
|
80
36
|
|
81
|
-
//# sourceMappingURL=
|
37
|
+
//# sourceMappingURL=packages.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/lib/packages.ts"],"sourcesContent":["import type { DbType } from '../types.js'\n\ntype DbAdapterReplacement = {\n configReplacement: string[]\n importReplacement: string\n packageName: string\n}\n\nconst mongodbReplacement: DbAdapterReplacement = {\n importReplacement: \"import { mongooseAdapter } from '@payloadcms/db-mongodb'\",\n packageName: '@payloadcms/db-mongodb',\n // Replacement between `// database-adapter-config-start` and `// database-adapter-config-end`\n configReplacement: [' db: mongooseAdapter({', ' url: process.env.DATABASE_URI,', ' }),'],\n}\n\nconst postgresReplacement: DbAdapterReplacement = {\n configReplacement: [\n ' db: postgresAdapter({',\n ' pool: {',\n ' connectionString: process.env.DATABASE_URI,',\n ' },',\n ' }),',\n ],\n importReplacement: \"import { postgresAdapter } from '@payloadcms/db-postgres'\",\n packageName: '@payloadcms/db-postgres',\n}\n\nexport const dbReplacements: Record<DbType, DbAdapterReplacement> = {\n mongodb: mongodbReplacement,\n postgres: postgresReplacement,\n}\n"],"names":["dbReplacements","mongodbReplacement","importReplacement","packageName","configReplacement","postgresReplacement","mongodb","postgres"],"mappings":";;;;+BA2BaA;;;eAAAA;;;AAnBb,MAAMC,qBAA2C;IAC/CC,mBAAmB;IACnBC,aAAa;IACb,8FAA8F;IAC9FC,mBAAmB;QAAC;QAA2B;QAAsC;KAAQ;AAC/F;AAEA,MAAMC,sBAA4C;IAChDD,mBAAmB;QACjB;QACA;QACA;QACA;QACA;KACD;IACDF,mBAAmB;IACnBC,aAAa;AACf;AAEO,MAAMH,iBAAuD;IAClEM,SAASL;IACTM,UAAUF;AACZ"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parse-project-name.d.ts","sourceRoot":"","sources":["../../src/lib/parse-project-name.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAcrE"}
|
@@ -8,26 +8,67 @@ Object.defineProperty(exports, "parseProjectName", {
|
|
8
8
|
return parseProjectName;
|
9
9
|
}
|
10
10
|
});
|
11
|
-
const _prompts = /*#__PURE__*/
|
11
|
+
const _prompts = /*#__PURE__*/ _interop_require_wildcard(require("@clack/prompts"));
|
12
|
+
const _slugify = /*#__PURE__*/ _interop_require_default(require("@sindresorhus/slugify"));
|
12
13
|
function _interop_require_default(obj) {
|
13
14
|
return obj && obj.__esModule ? obj : {
|
14
15
|
default: obj
|
15
16
|
};
|
16
17
|
}
|
18
|
+
function _getRequireWildcardCache(nodeInterop) {
|
19
|
+
if (typeof WeakMap !== "function") return null;
|
20
|
+
var cacheBabelInterop = new WeakMap();
|
21
|
+
var cacheNodeInterop = new WeakMap();
|
22
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
23
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
24
|
+
})(nodeInterop);
|
25
|
+
}
|
26
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
27
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
28
|
+
return obj;
|
29
|
+
}
|
30
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
31
|
+
return {
|
32
|
+
default: obj
|
33
|
+
};
|
34
|
+
}
|
35
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
36
|
+
if (cache && cache.has(obj)) {
|
37
|
+
return cache.get(obj);
|
38
|
+
}
|
39
|
+
var newObj = {
|
40
|
+
__proto__: null
|
41
|
+
};
|
42
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
43
|
+
for(var key in obj){
|
44
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
45
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
46
|
+
if (desc && (desc.get || desc.set)) {
|
47
|
+
Object.defineProperty(newObj, key, desc);
|
48
|
+
} else {
|
49
|
+
newObj[key] = obj[key];
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
newObj.default = obj;
|
54
|
+
if (cache) {
|
55
|
+
cache.set(obj, newObj);
|
56
|
+
}
|
57
|
+
return newObj;
|
58
|
+
}
|
17
59
|
async function parseProjectName(args) {
|
18
|
-
if (args['--name']) return args['--name'];
|
19
|
-
if (args._[0]) return args._[0];
|
20
|
-
const
|
21
|
-
name: 'value',
|
60
|
+
if (args['--name']) return (0, _slugify.default)(args['--name']);
|
61
|
+
if (args._[0]) return (0, _slugify.default)(args._[0]);
|
62
|
+
const projectName = await _prompts.text({
|
22
63
|
message: 'Project name?',
|
23
|
-
|
24
|
-
|
25
|
-
}, {
|
26
|
-
onCancel: ()=>{
|
27
|
-
process.exit(0);
|
64
|
+
validate: (value)=>{
|
65
|
+
if (!value) return 'Please enter a project name.';
|
28
66
|
}
|
29
67
|
});
|
30
|
-
|
68
|
+
if (_prompts.isCancel(projectName)) {
|
69
|
+
process.exit(0);
|
70
|
+
}
|
71
|
+
return (0, _slugify.default)(projectName);
|
31
72
|
}
|
32
73
|
|
33
|
-
//# sourceMappingURL=
|
74
|
+
//# sourceMappingURL=parse-project-name.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/lib/parse-project-name.ts"],"sourcesContent":["import * as p from '@clack/prompts'\nimport slugify from '@sindresorhus/slugify'\n\nimport type { CliArgs } from '../types.js'\n\nexport async function parseProjectName(args: CliArgs): Promise<string> {\n if (args['--name']) return slugify(args['--name'])\n if (args._[0]) return slugify(args._[0])\n\n const projectName = await p.text({\n message: 'Project name?',\n validate: (value) => {\n if (!value) return 'Please enter a project name.'\n },\n })\n if (p.isCancel(projectName)) {\n process.exit(0)\n }\n return slugify(projectName)\n}\n"],"names":["parseProjectName","args","slugify","_","projectName","p","text","message","validate","value","isCancel","process","exit"],"mappings":";;;;+BAKsBA;;;eAAAA;;;iEALH;gEACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIb,eAAeA,iBAAiBC,IAAa;IAClD,IAAIA,IAAI,CAAC,SAAS,EAAE,OAAOC,IAAAA,gBAAO,EAACD,IAAI,CAAC,SAAS;IACjD,IAAIA,KAAKE,CAAC,CAAC,EAAE,EAAE,OAAOD,IAAAA,gBAAO,EAACD,KAAKE,CAAC,CAAC,EAAE;IAEvC,MAAMC,cAAc,MAAMC,SAAEC,IAAI,CAAC;QAC/BC,SAAS;QACTC,UAAU,CAACC;YACT,IAAI,CAACA,OAAO,OAAO;QACrB;IACF;IACA,IAAIJ,SAAEK,QAAQ,CAACN,cAAc;QAC3BO,QAAQC,IAAI,CAAC;IACf;IACA,OAAOV,IAAAA,gBAAO,EAACE;AACjB"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parse-template.d.ts","sourceRoot":"","sources":["../../src/lib/parse-template.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE3D,wBAAsB,aAAa,CACjC,IAAI,EAAE,OAAO,EACb,cAAc,EAAE,eAAe,EAAE,GAChC,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAwBtC"}
|