create-payload-app 0.5.1 → 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +10 -53
- package/dist/lib/configure-payload-config.js +97 -142
- package/dist/lib/create-project.js +101 -174
- package/dist/lib/create-project.spec.js +148 -168
- package/dist/lib/generate-secret.js +12 -44
- package/dist/lib/packages.js +52 -32
- package/dist/lib/parse-project-name.js +29 -67
- package/dist/lib/parse-template.js +42 -80
- package/dist/lib/select-db.js +62 -105
- package/dist/lib/templates.js +63 -97
- package/dist/lib/write-env-file.js +51 -106
- package/dist/main.js +118 -198
- package/dist/types.js +5 -1
- package/dist/utils/log.js +40 -19
- package/dist/utils/messages.js +71 -73
- package/package.json +8 -39
- package/.vscode/launch.json +0 -13
    
        package/dist/index.js
    CHANGED
    
    | @@ -1,55 +1,12 @@ | |
| 1 1 | 
             
            "use strict";
         | 
| 2 | 
            -
             | 
| 3 | 
            -
                 | 
| 4 | 
            -
                return new (P || (P = Promise))(function (resolve, reject) {
         | 
| 5 | 
            -
                    function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
         | 
| 6 | 
            -
                    function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
         | 
| 7 | 
            -
                    function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
         | 
| 8 | 
            -
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
         | 
| 9 | 
            -
                });
         | 
| 10 | 
            -
            };
         | 
| 11 | 
            -
            var __generator = (this && this.__generator) || function (thisArg, body) {
         | 
| 12 | 
            -
                var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
         | 
| 13 | 
            -
                return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
         | 
| 14 | 
            -
                function verb(n) { return function (v) { return step([n, v]); }; }
         | 
| 15 | 
            -
                function step(op) {
         | 
| 16 | 
            -
                    if (f) throw new TypeError("Generator is already executing.");
         | 
| 17 | 
            -
                    while (g && (g = 0, op[0] && (_ = 0)), _) try {
         | 
| 18 | 
            -
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
         | 
| 19 | 
            -
                        if (y = 0, t) op = [op[0] & 2, t.value];
         | 
| 20 | 
            -
                        switch (op[0]) {
         | 
| 21 | 
            -
                            case 0: case 1: t = op; break;
         | 
| 22 | 
            -
                            case 4: _.label++; return { value: op[1], done: false };
         | 
| 23 | 
            -
                            case 5: _.label++; y = op[1]; op = [0]; continue;
         | 
| 24 | 
            -
                            case 7: op = _.ops.pop(); _.trys.pop(); continue;
         | 
| 25 | 
            -
                            default:
         | 
| 26 | 
            -
                                if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
         | 
| 27 | 
            -
                                if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
         | 
| 28 | 
            -
                                if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
         | 
| 29 | 
            -
                                if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
         | 
| 30 | 
            -
                                if (t[2]) _.ops.pop();
         | 
| 31 | 
            -
                                _.trys.pop(); continue;
         | 
| 32 | 
            -
                        }
         | 
| 33 | 
            -
                        op = body.call(thisArg, _);
         | 
| 34 | 
            -
                    } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
         | 
| 35 | 
            -
                    if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
         | 
| 36 | 
            -
                }
         | 
| 37 | 
            -
            };
         | 
| 38 | 
            -
            Object.defineProperty(exports, "__esModule", { value: true });
         | 
| 39 | 
            -
            var main_1 = require("./main");
         | 
| 40 | 
            -
            var log_1 = require("./utils/log");
         | 
| 41 | 
            -
            function main() {
         | 
| 42 | 
            -
                return __awaiter(this, void 0, void 0, function () {
         | 
| 43 | 
            -
                    return __generator(this, function (_a) {
         | 
| 44 | 
            -
                        switch (_a.label) {
         | 
| 45 | 
            -
                            case 0: return [4 /*yield*/, new main_1.Main().init()];
         | 
| 46 | 
            -
                            case 1:
         | 
| 47 | 
            -
                                _a.sent();
         | 
| 48 | 
            -
                                return [2 /*return*/];
         | 
| 49 | 
            -
                        }
         | 
| 50 | 
            -
                    });
         | 
| 51 | 
            -
                });
         | 
| 52 | 
            -
            }
         | 
| 53 | 
            -
            main().catch(function (e) {
         | 
| 54 | 
            -
                return (0, log_1.error)("An error has occurred: ".concat(e instanceof Error ? e.message : e));
         | 
| 2 | 
            +
            Object.defineProperty(exports, "__esModule", {
         | 
| 3 | 
            +
                value: true
         | 
| 55 4 | 
             
            });
         | 
| 5 | 
            +
            const _main = require("./main");
         | 
| 6 | 
            +
            const _log = require("./utils/log");
         | 
| 7 | 
            +
            async function main() {
         | 
| 8 | 
            +
                await new _main.Main().init();
         | 
| 9 | 
            +
            }
         | 
| 10 | 
            +
            main().catch((e)=>(0, _log.error)(`An error has occurred: ${e instanceof Error ? e.message : e}`));
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYWluIH0gZnJvbSAnLi9tYWluJ1xuaW1wb3J0IHsgZXJyb3IgfSBmcm9tICcuL3V0aWxzL2xvZydcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgbmV3IE1haW4oKS5pbml0KClcbn1cblxubWFpbigpLmNhdGNoKChlKSA9PiBlcnJvcihgQW4gZXJyb3IgaGFzIG9jY3VycmVkOiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IGV9YCkpXG4iXSwibmFtZXMiOlsibWFpbiIsIk1haW4iLCJpbml0IiwiY2F0Y2giLCJlIiwiZXJyb3IiLCJFcnJvciIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7c0JBQXFCO3FCQUNDO0FBRXRCLGVBQWVBO0lBQ2IsTUFBTSxJQUFJQyxVQUFJLEdBQUdDLElBQUk7QUFDdkI7QUFFQUYsT0FBT0csS0FBSyxDQUFDLENBQUNDLElBQU1DLElBQUFBLFVBQUssRUFBQyxDQUFDLHVCQUF1QixFQUFFRCxhQUFhRSxRQUFRRixFQUFFRyxPQUFPLEdBQUdILEVBQUUsQ0FBQyJ9
         | 
| @@ -1,149 +1,104 @@ | |
| 1 1 | 
             
            "use strict";
         | 
| 2 | 
            -
             | 
| 3 | 
            -
                 | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
                     | 
| 9 | 
            -
                } | 
| 10 | 
            -
            };
         | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
                     | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 2 | 
            +
            Object.defineProperty(exports, "__esModule", {
         | 
| 3 | 
            +
                value: true
         | 
| 4 | 
            +
            });
         | 
| 5 | 
            +
            Object.defineProperty(exports, "configurePayloadConfig", {
         | 
| 6 | 
            +
                enumerable: true,
         | 
| 7 | 
            +
                get: function() {
         | 
| 8 | 
            +
                    return configurePayloadConfig;
         | 
| 9 | 
            +
                }
         | 
| 10 | 
            +
            });
         | 
| 11 | 
            +
            const _fsextra = /*#__PURE__*/ _interop_require_default(require("fs-extra"));
         | 
| 12 | 
            +
            const _path = /*#__PURE__*/ _interop_require_default(require("path"));
         | 
| 13 | 
            +
            const _log = require("../utils/log");
         | 
| 14 | 
            +
            const _packages = require("./packages");
         | 
| 15 | 
            +
            function _interop_require_default(obj) {
         | 
| 16 | 
            +
                return obj && obj.__esModule ? obj : {
         | 
| 17 | 
            +
                    default: obj
         | 
| 18 | 
            +
                };
         | 
| 19 | 
            +
            }
         | 
| 20 | 
            +
            async function configurePayloadConfig(args) {
         | 
| 21 | 
            +
                if (!args.dbDetails) {
         | 
| 22 | 
            +
                    return;
         | 
| 23 | 
            +
                }
         | 
| 24 | 
            +
                // Update package.json
         | 
| 25 | 
            +
                const packageJsonPath = _path.default.resolve(args.projectDir, 'package.json');
         | 
| 26 | 
            +
                try {
         | 
| 27 | 
            +
                    const packageObj = await _fsextra.default.readJson(packageJsonPath);
         | 
| 28 | 
            +
                    packageObj.dependencies['payload'] = '^2.0.0';
         | 
| 29 | 
            +
                    const dbPackage = _packages.dbPackages[args.dbDetails.type];
         | 
| 30 | 
            +
                    const bundlerPackage = _packages.bundlerPackages['webpack'];
         | 
| 31 | 
            +
                    const editorPackage = _packages.editorPackages['slate'];
         | 
| 32 | 
            +
                    // Delete all other db adapters
         | 
| 33 | 
            +
                    Object.values(_packages.dbPackages).forEach((p)=>{
         | 
| 34 | 
            +
                        if (p.packageName !== dbPackage.packageName) {
         | 
| 35 | 
            +
                            delete packageObj.dependencies[p.packageName];
         | 
| 32 36 | 
             
                        }
         | 
| 33 | 
            -
             | 
| 34 | 
            -
                     | 
| 35 | 
            -
                     | 
| 37 | 
            +
                    });
         | 
| 38 | 
            +
                    packageObj.dependencies[dbPackage.packageName] = dbPackage.version;
         | 
| 39 | 
            +
                    packageObj.dependencies[bundlerPackage.packageName] = bundlerPackage.version;
         | 
| 40 | 
            +
                    packageObj.dependencies[editorPackage.packageName] = editorPackage.version;
         | 
| 41 | 
            +
                    await _fsextra.default.writeJson(packageJsonPath, packageObj, {
         | 
| 42 | 
            +
                        spaces: 2
         | 
| 43 | 
            +
                    });
         | 
| 44 | 
            +
                } catch (err) {
         | 
| 45 | 
            +
                    (0, _log.warning)('Unable to update name in package.json');
         | 
| 36 46 | 
             
                }
         | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 47 | 
            +
                try {
         | 
| 48 | 
            +
                    const possiblePaths = [
         | 
| 49 | 
            +
                        _path.default.resolve(args.projectDir, 'src/payload.config.ts'),
         | 
| 50 | 
            +
                        _path.default.resolve(args.projectDir, 'src/payload/payload.config.ts')
         | 
| 51 | 
            +
                    ];
         | 
| 52 | 
            +
                    let payloadConfigPath;
         | 
| 53 | 
            +
                    possiblePaths.forEach((p)=>{
         | 
| 54 | 
            +
                        if (_fsextra.default.pathExistsSync(p) && !payloadConfigPath) {
         | 
| 55 | 
            +
                            payloadConfigPath = p;
         | 
| 56 | 
            +
                        }
         | 
| 57 | 
            +
                    });
         | 
| 58 | 
            +
                    if (!payloadConfigPath) {
         | 
| 59 | 
            +
                        (0, _log.warning)('Unable to update payload.config.ts with plugins');
         | 
| 60 | 
            +
                        return;
         | 
| 43 61 | 
             
                    }
         | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
             | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
             | 
| 61 | 
            -
                         | 
| 62 | 
            -
                             | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 68 | 
            -
                             | 
| 69 | 
            -
             | 
| 70 | 
            -
             | 
| 71 | 
            -
                             | 
| 72 | 
            -
                                packageObj = _a.sent();
         | 
| 73 | 
            -
                                packageObj.dependencies['payload'] = '^2.0.0';
         | 
| 74 | 
            -
                                dbPackage = packages_1.dbPackages[args.dbDetails.type];
         | 
| 75 | 
            -
                                bundlerPackage = packages_1.bundlerPackages['webpack'];
         | 
| 76 | 
            -
                                editorPackage = packages_1.editorPackages['slate'];
         | 
| 77 | 
            -
                                packageObj.dependencies[dbPackage.packageName] = dbPackage.version;
         | 
| 78 | 
            -
                                packageObj.dependencies[bundlerPackage.packageName] = bundlerPackage.version;
         | 
| 79 | 
            -
                                packageObj.dependencies[editorPackage.packageName] = editorPackage.version;
         | 
| 80 | 
            -
                                return [4 /*yield*/, fs_extra_1.default.writeJson(packageJsonPath, packageObj, { spaces: 2 })];
         | 
| 81 | 
            -
                            case 3:
         | 
| 82 | 
            -
                                _a.sent();
         | 
| 83 | 
            -
                                return [3 /*break*/, 5];
         | 
| 84 | 
            -
                            case 4:
         | 
| 85 | 
            -
                                err_1 = _a.sent();
         | 
| 86 | 
            -
                                (0, log_1.warning)('Unable to update name in package.json');
         | 
| 87 | 
            -
                                return [3 /*break*/, 5];
         | 
| 88 | 
            -
                            case 5:
         | 
| 89 | 
            -
                                try {
         | 
| 90 | 
            -
                                    possiblePaths = [
         | 
| 91 | 
            -
                                        path_1.default.resolve(args.projectDir, 'src/payload.config.ts'),
         | 
| 92 | 
            -
                                        path_1.default.resolve(args.projectDir, 'src/payload/payload.config.ts'),
         | 
| 93 | 
            -
                                    ];
         | 
| 94 | 
            -
                                    possiblePaths.forEach(function (p) {
         | 
| 95 | 
            -
                                        if (fs_extra_1.default.pathExistsSync(p) && !payloadConfigPath_1) {
         | 
| 96 | 
            -
                                            payloadConfigPath_1 = p;
         | 
| 97 | 
            -
                                        }
         | 
| 98 | 
            -
                                    });
         | 
| 99 | 
            -
                                    if (!payloadConfigPath_1) {
         | 
| 100 | 
            -
                                        (0, log_1.warning)('Unable to update payload.config.ts with plugins');
         | 
| 101 | 
            -
                                        return [2 /*return*/];
         | 
| 102 | 
            -
                                    }
         | 
| 103 | 
            -
                                    configContent = fs_extra_1.default.readFileSync(payloadConfigPath_1, 'utf-8');
         | 
| 104 | 
            -
                                    configLines_1 = configContent.split('\n');
         | 
| 105 | 
            -
                                    dbReplacement_1 = packages_1.dbPackages[args.dbDetails.type];
         | 
| 106 | 
            -
                                    bundlerReplacement_1 = packages_1.bundlerPackages['webpack'];
         | 
| 107 | 
            -
                                    editorReplacement_1 = packages_1.editorPackages['slate'];
         | 
| 108 | 
            -
                                    configLines_1.forEach(function (l, i) {
         | 
| 109 | 
            -
                                        if (l.includes('// database-adapter-import')) {
         | 
| 110 | 
            -
                                            configLines_1[i] = dbReplacement_1.importReplacement;
         | 
| 111 | 
            -
                                        }
         | 
| 112 | 
            -
                                        if (l.includes('// bundler-import')) {
         | 
| 113 | 
            -
                                            configLines_1[i] = bundlerReplacement_1.importReplacement;
         | 
| 114 | 
            -
                                        }
         | 
| 115 | 
            -
                                        if (l.includes('// bundler-config')) {
         | 
| 116 | 
            -
                                            configLines_1[i] = bundlerReplacement_1.configReplacement;
         | 
| 117 | 
            -
                                        }
         | 
| 118 | 
            -
                                        if (l.includes('// editor-import')) {
         | 
| 119 | 
            -
                                            configLines_1[i] = editorReplacement_1.importReplacement;
         | 
| 120 | 
            -
                                        }
         | 
| 121 | 
            -
                                        if (l.includes('// editor-config')) {
         | 
| 122 | 
            -
                                            configLines_1[i] = editorReplacement_1.configReplacement;
         | 
| 123 | 
            -
                                        }
         | 
| 124 | 
            -
                                        if (l.includes('// database-adapter-config-start')) {
         | 
| 125 | 
            -
                                            dbConfigStartLineIndex_1 = i;
         | 
| 126 | 
            -
                                        }
         | 
| 127 | 
            -
                                        if (l.includes('// database-adapter-config-end')) {
         | 
| 128 | 
            -
                                            dbConfigEndLineIndex_1 = i;
         | 
| 129 | 
            -
                                        }
         | 
| 130 | 
            -
                                    });
         | 
| 131 | 
            -
                                    if (!dbConfigStartLineIndex_1 || !dbConfigEndLineIndex_1) {
         | 
| 132 | 
            -
                                        (0, log_1.warning)('Unable to update payload.config.ts with database adapter import');
         | 
| 133 | 
            -
                                    }
         | 
| 134 | 
            -
                                    else {
         | 
| 135 | 
            -
                                        // Replaces lines between `// database-adapter-config-start` and `// database-adapter-config-end`
         | 
| 136 | 
            -
                                        configLines_1.splice.apply(configLines_1, __spreadArray([dbConfigStartLineIndex_1,
         | 
| 137 | 
            -
                                            dbConfigEndLineIndex_1 - dbConfigStartLineIndex_1 + 1], dbReplacement_1.configReplacement, false));
         | 
| 138 | 
            -
                                    }
         | 
| 139 | 
            -
                                    fs_extra_1.default.writeFileSync(payloadConfigPath_1, configLines_1.join('\n'));
         | 
| 140 | 
            -
                                }
         | 
| 141 | 
            -
                                catch (err) {
         | 
| 142 | 
            -
                                    (0, log_1.warning)('Unable to update payload.config.ts with plugins');
         | 
| 143 | 
            -
                                }
         | 
| 144 | 
            -
                                return [2 /*return*/];
         | 
| 62 | 
            +
                    const configContent = _fsextra.default.readFileSync(payloadConfigPath, 'utf-8');
         | 
| 63 | 
            +
                    const configLines = configContent.split('\n');
         | 
| 64 | 
            +
                    const dbReplacement = _packages.dbPackages[args.dbDetails.type];
         | 
| 65 | 
            +
                    const bundlerReplacement = _packages.bundlerPackages['webpack'];
         | 
| 66 | 
            +
                    const editorReplacement = _packages.editorPackages['slate'];
         | 
| 67 | 
            +
                    let dbConfigStartLineIndex;
         | 
| 68 | 
            +
                    let dbConfigEndLineIndex;
         | 
| 69 | 
            +
                    configLines.forEach((l, i)=>{
         | 
| 70 | 
            +
                        if (l.includes('// database-adapter-import')) {
         | 
| 71 | 
            +
                            configLines[i] = dbReplacement.importReplacement;
         | 
| 72 | 
            +
                        }
         | 
| 73 | 
            +
                        if (l.includes('// bundler-import')) {
         | 
| 74 | 
            +
                            configLines[i] = bundlerReplacement.importReplacement;
         | 
| 75 | 
            +
                        }
         | 
| 76 | 
            +
                        if (l.includes('// bundler-config')) {
         | 
| 77 | 
            +
                            configLines[i] = bundlerReplacement.configReplacement;
         | 
| 78 | 
            +
                        }
         | 
| 79 | 
            +
                        if (l.includes('// editor-import')) {
         | 
| 80 | 
            +
                            configLines[i] = editorReplacement.importReplacement;
         | 
| 81 | 
            +
                        }
         | 
| 82 | 
            +
                        if (l.includes('// editor-config')) {
         | 
| 83 | 
            +
                            configLines[i] = editorReplacement.configReplacement;
         | 
| 84 | 
            +
                        }
         | 
| 85 | 
            +
                        if (l.includes('// database-adapter-config-start')) {
         | 
| 86 | 
            +
                            dbConfigStartLineIndex = i;
         | 
| 87 | 
            +
                        }
         | 
| 88 | 
            +
                        if (l.includes('// database-adapter-config-end')) {
         | 
| 89 | 
            +
                            dbConfigEndLineIndex = i;
         | 
| 145 90 | 
             
                        }
         | 
| 146 91 | 
             
                    });
         | 
| 147 | 
            -
             | 
| 92 | 
            +
                    if (!dbConfigStartLineIndex || !dbConfigEndLineIndex) {
         | 
| 93 | 
            +
                        (0, _log.warning)('Unable to update payload.config.ts with database adapter import');
         | 
| 94 | 
            +
                    } else {
         | 
| 95 | 
            +
                        // Replaces lines between `// database-adapter-config-start` and `// database-adapter-config-end`
         | 
| 96 | 
            +
                        configLines.splice(dbConfigStartLineIndex, dbConfigEndLineIndex - dbConfigStartLineIndex + 1, ...dbReplacement.configReplacement);
         | 
| 97 | 
            +
                    }
         | 
| 98 | 
            +
                    _fsextra.default.writeFileSync(payloadConfigPath, configLines.join('\n'));
         | 
| 99 | 
            +
                } catch (err) {
         | 
| 100 | 
            +
                    (0, _log.warning)('Unable to update payload.config.ts with plugins');
         | 
| 101 | 
            +
                }
         | 
| 148 102 | 
             
            }
         | 
| 149 | 
            -
             | 
| 103 | 
            +
             | 
| 104 | 
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29uZmlndXJlLXBheWxvYWQtY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmc2UgZnJvbSAnZnMtZXh0cmEnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgdHlwZSB7IERiRGV0YWlscyB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyB3YXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvbG9nJ1xuaW1wb3J0IHsgYnVuZGxlclBhY2thZ2VzLCBkYlBhY2thZ2VzLCBlZGl0b3JQYWNrYWdlcyB9IGZyb20gJy4vcGFja2FnZXMnXG5cbi8qKiBVcGRhdGUgcGF5bG9hZCBjb25maWcgd2l0aCBuZWNlc3NhcnkgaW1wb3J0cyBhbmQgYWRhcHRlcnMgKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb25maWd1cmVQYXlsb2FkQ29uZmlnKGFyZ3M6IHtcbiAgZGJEZXRhaWxzOiBEYkRldGFpbHMgfCB1bmRlZmluZWRcbiAgcHJvamVjdERpcjogc3RyaW5nXG59KTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghYXJncy5kYkRldGFpbHMpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIFVwZGF0ZSBwYWNrYWdlLmpzb25cbiAgY29uc3QgcGFja2FnZUpzb25QYXRoID0gcGF0aC5yZXNvbHZlKGFyZ3MucHJvamVjdERpciwgJ3BhY2thZ2UuanNvbicpXG4gIHRyeSB7XG4gICAgY29uc3QgcGFja2FnZU9iaiA9IGF3YWl0IGZzZS5yZWFkSnNvbihwYWNrYWdlSnNvblBhdGgpXG5cbiAgICBwYWNrYWdlT2JqLmRlcGVuZGVuY2llc1sncGF5bG9hZCddID0gJ14yLjAuMCdcblxuICAgIGNvbnN0IGRiUGFja2FnZSA9IGRiUGFja2FnZXNbYXJncy5kYkRldGFpbHMudHlwZV1cbiAgICBjb25zdCBidW5kbGVyUGFja2FnZSA9IGJ1bmRsZXJQYWNrYWdlc1snd2VicGFjayddXG4gICAgY29uc3QgZWRpdG9yUGFja2FnZSA9IGVkaXRvclBhY2thZ2VzWydzbGF0ZSddXG5cbiAgICAvLyBEZWxldGUgYWxsIG90aGVyIGRiIGFkYXB0ZXJzXG4gICAgT2JqZWN0LnZhbHVlcyhkYlBhY2thZ2VzKS5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBpZiAocC5wYWNrYWdlTmFtZSAhPT0gZGJQYWNrYWdlLnBhY2thZ2VOYW1lKSB7XG4gICAgICAgIGRlbGV0ZSBwYWNrYWdlT2JqLmRlcGVuZGVuY2llc1twLnBhY2thZ2VOYW1lXVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBwYWNrYWdlT2JqLmRlcGVuZGVuY2llc1tkYlBhY2thZ2UucGFja2FnZU5hbWVdID0gZGJQYWNrYWdlLnZlcnNpb25cbiAgICBwYWNrYWdlT2JqLmRlcGVuZGVuY2llc1tidW5kbGVyUGFja2FnZS5wYWNrYWdlTmFtZV0gPSBidW5kbGVyUGFja2FnZS52ZXJzaW9uXG4gICAgcGFja2FnZU9iai5kZXBlbmRlbmNpZXNbZWRpdG9yUGFja2FnZS5wYWNrYWdlTmFtZV0gPSBlZGl0b3JQYWNrYWdlLnZlcnNpb25cblxuICAgIGF3YWl0IGZzZS53cml0ZUpzb24ocGFja2FnZUpzb25QYXRoLCBwYWNrYWdlT2JqLCB7IHNwYWNlczogMiB9KVxuICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICB3YXJuaW5nKCdVbmFibGUgdG8gdXBkYXRlIG5hbWUgaW4gcGFja2FnZS5qc29uJylcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcG9zc2libGVQYXRocyA9IFtcbiAgICAgIHBhdGgucmVzb2x2ZShhcmdzLnByb2plY3REaXIsICdzcmMvcGF5bG9hZC5jb25maWcudHMnKSxcbiAgICAgIHBhdGgucmVzb2x2ZShhcmdzLnByb2plY3REaXIsICdzcmMvcGF5bG9hZC9wYXlsb2FkLmNvbmZpZy50cycpLFxuICAgIF1cblxuICAgIGxldCBwYXlsb2FkQ29uZmlnUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgICBwb3NzaWJsZVBhdGhzLmZvckVhY2goKHApID0+IHtcbiAgICAgIGlmIChmc2UucGF0aEV4aXN0c1N5bmMocCkgJiYgIXBheWxvYWRDb25maWdQYXRoKSB7XG4gICAgICAgIHBheWxvYWRDb25maWdQYXRoID0gcFxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAoIXBheWxvYWRDb25maWdQYXRoKSB7XG4gICAgICB3YXJuaW5nKCdVbmFibGUgdG8gdXBkYXRlIHBheWxvYWQuY29uZmlnLnRzIHdpdGggcGx1Z2lucycpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBjb25maWdDb250ZW50ID0gZnNlLnJlYWRGaWxlU3luYyhwYXlsb2FkQ29uZmlnUGF0aCwgJ3V0Zi04JylcbiAgICBjb25zdCBjb25maWdMaW5lcyA9IGNvbmZpZ0NvbnRlbnQuc3BsaXQoJ1xcbicpXG5cbiAgICBjb25zdCBkYlJlcGxhY2VtZW50ID0gZGJQYWNrYWdlc1thcmdzLmRiRGV0YWlscy50eXBlXVxuICAgIGNvbnN0IGJ1bmRsZXJSZXBsYWNlbWVudCA9IGJ1bmRsZXJQYWNrYWdlc1snd2VicGFjayddXG4gICAgY29uc3QgZWRpdG9yUmVwbGFjZW1lbnQgPSBlZGl0b3JQYWNrYWdlc1snc2xhdGUnXVxuXG4gICAgbGV0IGRiQ29uZmlnU3RhcnRMaW5lSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZFxuICAgIGxldCBkYkNvbmZpZ0VuZExpbmVJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkXG5cbiAgICBjb25maWdMaW5lcy5mb3JFYWNoKChsLCBpKSA9PiB7XG4gICAgICBpZiAobC5pbmNsdWRlcygnLy8gZGF0YWJhc2UtYWRhcHRlci1pbXBvcnQnKSkge1xuICAgICAgICBjb25maWdMaW5lc1tpXSA9IGRiUmVwbGFjZW1lbnQuaW1wb3J0UmVwbGFjZW1lbnRcbiAgICAgIH1cbiAgICAgIGlmIChsLmluY2x1ZGVzKCcvLyBidW5kbGVyLWltcG9ydCcpKSB7XG4gICAgICAgIGNvbmZpZ0xpbmVzW2ldID0gYnVuZGxlclJlcGxhY2VtZW50LmltcG9ydFJlcGxhY2VtZW50XG4gICAgICB9XG5cbiAgICAgIGlmIChsLmluY2x1ZGVzKCcvLyBidW5kbGVyLWNvbmZpZycpKSB7XG4gICAgICAgIGNvbmZpZ0xpbmVzW2ldID0gYnVuZGxlclJlcGxhY2VtZW50LmNvbmZpZ1JlcGxhY2VtZW50XG4gICAgICB9XG5cbiAgICAgIGlmIChsLmluY2x1ZGVzKCcvLyBlZGl0b3ItaW1wb3J0JykpIHtcbiAgICAgICAgY29uZmlnTGluZXNbaV0gPSBlZGl0b3JSZXBsYWNlbWVudC5pbXBvcnRSZXBsYWNlbWVudFxuICAgICAgfVxuXG4gICAgICBpZiAobC5pbmNsdWRlcygnLy8gZWRpdG9yLWNvbmZpZycpKSB7XG4gICAgICAgIGNvbmZpZ0xpbmVzW2ldID0gZWRpdG9yUmVwbGFjZW1lbnQuY29uZmlnUmVwbGFjZW1lbnRcbiAgICAgIH1cblxuICAgICAgaWYgKGwuaW5jbHVkZXMoJy8vIGRhdGFiYXNlLWFkYXB0ZXItY29uZmlnLXN0YXJ0JykpIHtcbiAgICAgICAgZGJDb25maWdTdGFydExpbmVJbmRleCA9IGlcbiAgICAgIH1cbiAgICAgIGlmIChsLmluY2x1ZGVzKCcvLyBkYXRhYmFzZS1hZGFwdGVyLWNvbmZpZy1lbmQnKSkge1xuICAgICAgICBkYkNvbmZpZ0VuZExpbmVJbmRleCA9IGlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaWYgKCFkYkNvbmZpZ1N0YXJ0TGluZUluZGV4IHx8ICFkYkNvbmZpZ0VuZExpbmVJbmRleCkge1xuICAgICAgd2FybmluZygnVW5hYmxlIHRvIHVwZGF0ZSBwYXlsb2FkLmNvbmZpZy50cyB3aXRoIGRhdGFiYXNlIGFkYXB0ZXIgaW1wb3J0JylcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVwbGFjZXMgbGluZXMgYmV0d2VlbiBgLy8gZGF0YWJhc2UtYWRhcHRlci1jb25maWctc3RhcnRgIGFuZCBgLy8gZGF0YWJhc2UtYWRhcHRlci1jb25maWctZW5kYFxuICAgICAgY29uZmlnTGluZXMuc3BsaWNlKFxuICAgICAgICBkYkNvbmZpZ1N0YXJ0TGluZUluZGV4LFxuICAgICAgICBkYkNvbmZpZ0VuZExpbmVJbmRleCAtIGRiQ29uZmlnU3RhcnRMaW5lSW5kZXggKyAxLFxuICAgICAgICAuLi5kYlJlcGxhY2VtZW50LmNvbmZpZ1JlcGxhY2VtZW50LFxuICAgICAgKVxuICAgIH1cblxuICAgIGZzZS53cml0ZUZpbGVTeW5jKHBheWxvYWRDb25maWdQYXRoLCBjb25maWdMaW5lcy5qb2luKCdcXG4nKSlcbiAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgd2FybmluZygnVW5hYmxlIHRvIHVwZGF0ZSBwYXlsb2FkLmNvbmZpZy50cyB3aXRoIHBsdWdpbnMnKVxuICB9XG59XG4iXSwibmFtZXMiOlsiY29uZmlndXJlUGF5bG9hZENvbmZpZyIsImFyZ3MiLCJkYkRldGFpbHMiLCJwYWNrYWdlSnNvblBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsInByb2plY3REaXIiLCJwYWNrYWdlT2JqIiwiZnNlIiwicmVhZEpzb24iLCJkZXBlbmRlbmNpZXMiLCJkYlBhY2thZ2UiLCJkYlBhY2thZ2VzIiwidHlwZSIsImJ1bmRsZXJQYWNrYWdlIiwiYnVuZGxlclBhY2thZ2VzIiwiZWRpdG9yUGFja2FnZSIsImVkaXRvclBhY2thZ2VzIiwiT2JqZWN0IiwidmFsdWVzIiwiZm9yRWFjaCIsInAiLCJwYWNrYWdlTmFtZSIsInZlcnNpb24iLCJ3cml0ZUpzb24iLCJzcGFjZXMiLCJlcnIiLCJ3YXJuaW5nIiwicG9zc2libGVQYXRocyIsInBheWxvYWRDb25maWdQYXRoIiwicGF0aEV4aXN0c1N5bmMiLCJjb25maWdDb250ZW50IiwicmVhZEZpbGVTeW5jIiwiY29uZmlnTGluZXMiLCJzcGxpdCIsImRiUmVwbGFjZW1lbnQiLCJidW5kbGVyUmVwbGFjZW1lbnQiLCJlZGl0b3JSZXBsYWNlbWVudCIsImRiQ29uZmlnU3RhcnRMaW5lSW5kZXgiLCJkYkNvbmZpZ0VuZExpbmVJbmRleCIsImwiLCJpIiwiaW5jbHVkZXMiLCJpbXBvcnRSZXBsYWNlbWVudCIsImNv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
         | 
| @@ -1,184 +1,111 @@ | |
| 1 1 | 
             
            "use strict";
         | 
| 2 | 
            -
             | 
| 3 | 
            -
                 | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
                     | 
| 8 | 
            -
                     | 
| 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 9 | 
             
                });
         | 
| 10 | 
            -
            } | 
| 11 | 
            -
             | 
| 12 | 
            -
                 | 
| 13 | 
            -
             | 
| 14 | 
            -
                 | 
| 15 | 
            -
                function | 
| 16 | 
            -
                     | 
| 17 | 
            -
                    while (g && (g = 0, op[0] && (_ = 0)), _) try {
         | 
| 18 | 
            -
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
         | 
| 19 | 
            -
                        if (y = 0, t) op = [op[0] & 2, t.value];
         | 
| 20 | 
            -
                        switch (op[0]) {
         | 
| 21 | 
            -
                            case 0: case 1: t = op; break;
         | 
| 22 | 
            -
                            case 4: _.label++; return { value: op[1], done: false };
         | 
| 23 | 
            -
                            case 5: _.label++; y = op[1]; op = [0]; continue;
         | 
| 24 | 
            -
                            case 7: op = _.ops.pop(); _.trys.pop(); continue;
         | 
| 25 | 
            -
                            default:
         | 
| 26 | 
            -
                                if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
         | 
| 27 | 
            -
                                if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
         | 
| 28 | 
            -
                                if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
         | 
| 29 | 
            -
                                if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
         | 
| 30 | 
            -
                                if (t[2]) _.ops.pop();
         | 
| 31 | 
            -
                                _.trys.pop(); continue;
         | 
| 32 | 
            -
                        }
         | 
| 33 | 
            -
                        op = body.call(thisArg, _);
         | 
| 34 | 
            -
                    } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
         | 
| 35 | 
            -
                    if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
         | 
| 10 | 
            +
            }
         | 
| 11 | 
            +
            _export(exports, {
         | 
| 12 | 
            +
                createProject: function() {
         | 
| 13 | 
            +
                    return createProject;
         | 
| 14 | 
            +
                },
         | 
| 15 | 
            +
                updatePackageJSON: function() {
         | 
| 16 | 
            +
                    return updatePackageJSON;
         | 
| 36 17 | 
             
                }
         | 
| 37 | 
            -
            };
         | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
            var configure_payload_config_1 = require("./configure-payload-config");
         | 
| 51 | 
            -
            function createOrFindProjectDir(projectDir) {
         | 
| 52 | 
            -
                return __awaiter(this, void 0, void 0, function () {
         | 
| 53 | 
            -
                    var pathExists;
         | 
| 54 | 
            -
                    return __generator(this, function (_a) {
         | 
| 55 | 
            -
                        switch (_a.label) {
         | 
| 56 | 
            -
                            case 0: return [4 /*yield*/, fs_extra_1.default.pathExists(projectDir)];
         | 
| 57 | 
            -
                            case 1:
         | 
| 58 | 
            -
                                pathExists = _a.sent();
         | 
| 59 | 
            -
                                if (!!pathExists) return [3 /*break*/, 3];
         | 
| 60 | 
            -
                                return [4 /*yield*/, fs_extra_1.default.mkdir(projectDir)];
         | 
| 61 | 
            -
                            case 2:
         | 
| 62 | 
            -
                                _a.sent();
         | 
| 63 | 
            -
                                _a.label = 3;
         | 
| 64 | 
            -
                            case 3: return [2 /*return*/];
         | 
| 65 | 
            -
                        }
         | 
| 66 | 
            -
                    });
         | 
| 67 | 
            -
                });
         | 
| 18 | 
            +
            });
         | 
| 19 | 
            +
            const _chalk = /*#__PURE__*/ _interop_require_default(require("chalk"));
         | 
| 20 | 
            +
            const _degit = /*#__PURE__*/ _interop_require_default(require("degit"));
         | 
| 21 | 
            +
            const _execa = /*#__PURE__*/ _interop_require_default(require("execa"));
         | 
| 22 | 
            +
            const _fsextra = /*#__PURE__*/ _interop_require_default(require("fs-extra"));
         | 
| 23 | 
            +
            const _ora = /*#__PURE__*/ _interop_require_default(require("ora"));
         | 
| 24 | 
            +
            const _path = /*#__PURE__*/ _interop_require_default(require("path"));
         | 
| 25 | 
            +
            const _log = require("../utils/log");
         | 
| 26 | 
            +
            const _configurepayloadconfig = require("./configure-payload-config");
         | 
| 27 | 
            +
            function _interop_require_default(obj) {
         | 
| 28 | 
            +
                return obj && obj.__esModule ? obj : {
         | 
| 29 | 
            +
                    default: obj
         | 
| 30 | 
            +
                };
         | 
| 68 31 | 
             
            }
         | 
| 69 | 
            -
            function  | 
| 70 | 
            -
                 | 
| 71 | 
            -
             | 
| 72 | 
            -
                     | 
| 73 | 
            -
             | 
| 74 | 
            -
                            case 0:
         | 
| 75 | 
            -
                                cliArgs = args.cliArgs, projectDir = args.projectDir, packageManager = args.packageManager;
         | 
| 76 | 
            -
                                if (cliArgs['--no-deps']) {
         | 
| 77 | 
            -
                                    return [2 /*return*/, true];
         | 
| 78 | 
            -
                                }
         | 
| 79 | 
            -
                                installCmd = 'npm install --legacy-peer-deps';
         | 
| 80 | 
            -
                                if (packageManager === 'yarn') {
         | 
| 81 | 
            -
                                    installCmd = 'yarn';
         | 
| 82 | 
            -
                                }
         | 
| 83 | 
            -
                                else if (packageManager === 'pnpm') {
         | 
| 84 | 
            -
                                    installCmd = 'pnpm install';
         | 
| 85 | 
            -
                                }
         | 
| 86 | 
            -
                                _a.label = 1;
         | 
| 87 | 
            -
                            case 1:
         | 
| 88 | 
            -
                                _a.trys.push([1, 3, , 4]);
         | 
| 89 | 
            -
                                return [4 /*yield*/, execa_1.default.command(installCmd, {
         | 
| 90 | 
            -
                                        cwd: path_1.default.resolve(projectDir),
         | 
| 91 | 
            -
                                    })];
         | 
| 92 | 
            -
                            case 2:
         | 
| 93 | 
            -
                                _a.sent();
         | 
| 94 | 
            -
                                return [2 /*return*/, true];
         | 
| 95 | 
            -
                            case 3:
         | 
| 96 | 
            -
                                err_1 = _a.sent();
         | 
| 97 | 
            -
                                console.log({ err: err_1 });
         | 
| 98 | 
            -
                                return [2 /*return*/, false];
         | 
| 99 | 
            -
                            case 4: return [2 /*return*/];
         | 
| 100 | 
            -
                        }
         | 
| 101 | 
            -
                    });
         | 
| 102 | 
            -
                });
         | 
| 32 | 
            +
            async function createOrFindProjectDir(projectDir) {
         | 
| 33 | 
            +
                const pathExists = await _fsextra.default.pathExists(projectDir);
         | 
| 34 | 
            +
                if (!pathExists) {
         | 
| 35 | 
            +
                    await _fsextra.default.mkdir(projectDir);
         | 
| 36 | 
            +
                }
         | 
| 103 37 | 
             
            }
         | 
| 104 | 
            -
            function  | 
| 105 | 
            -
                 | 
| 106 | 
            -
             | 
| 107 | 
            -
                    return  | 
| 108 | 
            -
             | 
| 109 | 
            -
             | 
| 110 | 
            -
             | 
| 111 | 
            -
             | 
| 112 | 
            -
             | 
| 113 | 
            -
             | 
| 114 | 
            -
             | 
| 115 | 
            -
             | 
| 116 | 
            -
             | 
| 117 | 
            -
             | 
| 118 | 
            -
             | 
| 119 | 
            -
             | 
| 120 | 
            -
             | 
| 121 | 
            -
             | 
| 122 | 
            -
             | 
| 123 | 
            -
                                return [4 /*yield*/, updatePackageJSON({ projectName: projectName, projectDir: projectDir })];
         | 
| 124 | 
            -
                            case 4:
         | 
| 125 | 
            -
                                _a.sent();
         | 
| 126 | 
            -
                                return [4 /*yield*/, (0, configure_payload_config_1.configurePayloadConfig)({ projectDir: projectDir, dbDetails: dbDetails })
         | 
| 127 | 
            -
                                    // Remove yarn.lock file. This is only desired in Payload Cloud.
         | 
| 128 | 
            -
                                ];
         | 
| 129 | 
            -
                            case 5:
         | 
| 130 | 
            -
                                _a.sent();
         | 
| 131 | 
            -
                                lockPath = path_1.default.resolve(projectDir, 'yarn.lock');
         | 
| 132 | 
            -
                                if (!fs_extra_1.default.existsSync(lockPath)) return [3 /*break*/, 7];
         | 
| 133 | 
            -
                                return [4 /*yield*/, fs_extra_1.default.remove(lockPath)];
         | 
| 134 | 
            -
                            case 6:
         | 
| 135 | 
            -
                                _a.sent();
         | 
| 136 | 
            -
                                _a.label = 7;
         | 
| 137 | 
            -
                            case 7:
         | 
| 138 | 
            -
                                spinner.text = 'Installing dependencies...';
         | 
| 139 | 
            -
                                return [4 /*yield*/, installDeps({ cliArgs: cliArgs, projectDir: projectDir, packageManager: packageManager })];
         | 
| 140 | 
            -
                            case 8:
         | 
| 141 | 
            -
                                result = _a.sent();
         | 
| 142 | 
            -
                                spinner.stop();
         | 
| 143 | 
            -
                                spinner.clear();
         | 
| 144 | 
            -
                                if (result) {
         | 
| 145 | 
            -
                                    (0, log_1.success)('Dependencies installed');
         | 
| 146 | 
            -
                                }
         | 
| 147 | 
            -
                                else {
         | 
| 148 | 
            -
                                    (0, log_1.error)('Error installing dependencies');
         | 
| 149 | 
            -
                                }
         | 
| 150 | 
            -
                                return [2 /*return*/];
         | 
| 151 | 
            -
                        }
         | 
| 38 | 
            +
            async function installDeps(args) {
         | 
| 39 | 
            +
                const { cliArgs, packageManager, projectDir } = args;
         | 
| 40 | 
            +
                if (cliArgs['--no-deps']) {
         | 
| 41 | 
            +
                    return true;
         | 
| 42 | 
            +
                }
         | 
| 43 | 
            +
                let installCmd = 'npm install --legacy-peer-deps';
         | 
| 44 | 
            +
                if (packageManager === 'yarn') {
         | 
| 45 | 
            +
                    installCmd = 'yarn';
         | 
| 46 | 
            +
                } else if (packageManager === 'pnpm') {
         | 
| 47 | 
            +
                    installCmd = 'pnpm install';
         | 
| 48 | 
            +
                }
         | 
| 49 | 
            +
                try {
         | 
| 50 | 
            +
                    await _execa.default.command(installCmd, {
         | 
| 51 | 
            +
                        cwd: _path.default.resolve(projectDir)
         | 
| 52 | 
            +
                    });
         | 
| 53 | 
            +
                    return true;
         | 
| 54 | 
            +
                } catch (err) {
         | 
| 55 | 
            +
                    console.log({
         | 
| 56 | 
            +
                        err
         | 
| 152 57 | 
             
                    });
         | 
| 58 | 
            +
                    return false;
         | 
| 59 | 
            +
                }
         | 
| 60 | 
            +
            }
         | 
| 61 | 
            +
            async function createProject(args) {
         | 
| 62 | 
            +
                const { cliArgs, dbDetails, packageManager, projectDir, projectName, template } = args;
         | 
| 63 | 
            +
                await createOrFindProjectDir(projectDir);
         | 
| 64 | 
            +
                console.log(`\n  Creating project in ${_chalk.default.green(_path.default.resolve(projectDir))}\n`);
         | 
| 65 | 
            +
                if ('url' in template) {
         | 
| 66 | 
            +
                    const emitter = (0, _degit.default)(template.url);
         | 
| 67 | 
            +
                    await emitter.clone(projectDir);
         | 
| 68 | 
            +
                }
         | 
| 69 | 
            +
                const spinner = (0, _ora.default)('Checking latest Payload version...').start();
         | 
| 70 | 
            +
                await updatePackageJSON({
         | 
| 71 | 
            +
                    projectDir,
         | 
| 72 | 
            +
                    projectName
         | 
| 153 73 | 
             
                });
         | 
| 74 | 
            +
                await (0, _configurepayloadconfig.configurePayloadConfig)({
         | 
| 75 | 
            +
                    dbDetails,
         | 
| 76 | 
            +
                    projectDir
         | 
| 77 | 
            +
                });
         | 
| 78 | 
            +
                // Remove yarn.lock file. This is only desired in Payload Cloud.
         | 
| 79 | 
            +
                const lockPath = _path.default.resolve(projectDir, 'yarn.lock');
         | 
| 80 | 
            +
                if (_fsextra.default.existsSync(lockPath)) {
         | 
| 81 | 
            +
                    await _fsextra.default.remove(lockPath);
         | 
| 82 | 
            +
                }
         | 
| 83 | 
            +
                spinner.text = 'Installing dependencies...';
         | 
| 84 | 
            +
                const result = await installDeps({
         | 
| 85 | 
            +
                    cliArgs,
         | 
| 86 | 
            +
                    packageManager,
         | 
| 87 | 
            +
                    projectDir
         | 
| 88 | 
            +
                });
         | 
| 89 | 
            +
                spinner.stop();
         | 
| 90 | 
            +
                spinner.clear();
         | 
| 91 | 
            +
                if (result) {
         | 
| 92 | 
            +
                    (0, _log.success)('Dependencies installed');
         | 
| 93 | 
            +
                } else {
         | 
| 94 | 
            +
                    (0, _log.error)('Error installing dependencies');
         | 
| 95 | 
            +
                }
         | 
| 154 96 | 
             
            }
         | 
| 155 | 
            -
             | 
| 156 | 
            -
             | 
| 157 | 
            -
                 | 
| 158 | 
            -
             | 
| 159 | 
            -
                     | 
| 160 | 
            -
             | 
| 161 | 
            -
             | 
| 162 | 
            -
             | 
| 163 | 
            -
                                packageJsonPath = path_1.default.resolve(projectDir, 'package.json');
         | 
| 164 | 
            -
                                _a.label = 1;
         | 
| 165 | 
            -
                            case 1:
         | 
| 166 | 
            -
                                _a.trys.push([1, 4, , 5]);
         | 
| 167 | 
            -
                                return [4 /*yield*/, fs_extra_1.default.readJson(packageJsonPath)];
         | 
| 168 | 
            -
                            case 2:
         | 
| 169 | 
            -
                                packageObj = _a.sent();
         | 
| 170 | 
            -
                                packageObj.name = projectName;
         | 
| 171 | 
            -
                                return [4 /*yield*/, fs_extra_1.default.writeJson(packageJsonPath, packageObj, { spaces: 2 })];
         | 
| 172 | 
            -
                            case 3:
         | 
| 173 | 
            -
                                _a.sent();
         | 
| 174 | 
            -
                                return [3 /*break*/, 5];
         | 
| 175 | 
            -
                            case 4:
         | 
| 176 | 
            -
                                err_2 = _a.sent();
         | 
| 177 | 
            -
                                (0, log_1.warning)('Unable to update name in package.json');
         | 
| 178 | 
            -
                                return [3 /*break*/, 5];
         | 
| 179 | 
            -
                            case 5: return [2 /*return*/];
         | 
| 180 | 
            -
                        }
         | 
| 97 | 
            +
            async function updatePackageJSON(args) {
         | 
| 98 | 
            +
                const { projectDir, projectName } = args;
         | 
| 99 | 
            +
                const packageJsonPath = _path.default.resolve(projectDir, 'package.json');
         | 
| 100 | 
            +
                try {
         | 
| 101 | 
            +
                    const packageObj = await _fsextra.default.readJson(packageJsonPath);
         | 
| 102 | 
            +
                    packageObj.name = projectName;
         | 
| 103 | 
            +
                    await _fsextra.default.writeJson(packageJsonPath, packageObj, {
         | 
| 104 | 
            +
                        spaces: 2
         | 
| 181 105 | 
             
                    });
         | 
| 182 | 
            -
                }) | 
| 106 | 
            +
                } catch (err) {
         | 
| 107 | 
            +
                    (0, _log.warning)('Unable to update name in package.json');
         | 
| 108 | 
            +
                }
         | 
| 183 109 | 
             
            }
         | 
| 184 | 
            -
             | 
| 110 | 
            +
             | 
| 111 | 
            +
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY3JlYXRlLXByb2plY3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJ1xuaW1wb3J0IGRlZ2l0IGZyb20gJ2RlZ2l0J1xuaW1wb3J0IGV4ZWNhIGZyb20gJ2V4ZWNhJ1xuaW1wb3J0IGZzZSBmcm9tICdmcy1leHRyYSdcbmltcG9ydCBvcmEgZnJvbSAnb3JhJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuaW1wb3J0IHR5cGUgeyBDbGlBcmdzLCBEYkRldGFpbHMsIFBhY2thZ2VNYW5hZ2VyLCBQcm9qZWN0VGVtcGxhdGUgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgZXJyb3IsIHN1Y2Nlc3MsIHdhcm5pbmcgfSBmcm9tICcuLi91dGlscy9sb2cnXG5pbXBvcnQgeyBjb25maWd1cmVQYXlsb2FkQ29uZmlnIH0gZnJvbSAnLi9jb25maWd1cmUtcGF5bG9hZC1jb25maWcnXG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU9yRmluZFByb2plY3REaXIocHJvamVjdERpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBhdGhFeGlzdHMgPSBhd2FpdCBmc2UucGF0aEV4aXN0cyhwcm9qZWN0RGlyKVxuICBpZiAoIXBhdGhFeGlzdHMpIHtcbiAgICBhd2FpdCBmc2UubWtkaXIocHJvamVjdERpcilcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBpbnN0YWxsRGVwcyhhcmdzOiB7XG4gIGNsaUFyZ3M6IENsaUFyZ3NcbiAgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyXG4gIHByb2plY3REaXI6IHN0cmluZ1xufSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCB7IGNsaUFyZ3MsIHBhY2thZ2VNYW5hZ2VyLCBwcm9qZWN0RGlyIH0gPSBhcmdzXG4gIGlmIChjbGlBcmdzWyctLW5vLWRlcHMnXSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgbGV0IGluc3RhbGxDbWQgPSAnbnBtIGluc3RhbGwgLS1sZWdhY3ktcGVlci1kZXBzJ1xuXG4gIGlmIChwYWNrYWdlTWFuYWdlciA9PT0gJ3lhcm4nKSB7XG4gICAgaW5zdGFsbENtZCA9ICd5YXJuJ1xuICB9IGVsc2UgaWYgKHBhY2thZ2VNYW5hZ2VyID09PSAncG5wbScpIHtcbiAgICBpbnN0YWxsQ21kID0gJ3BucG0gaW5zdGFsbCdcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlY2EuY29tbWFuZChpbnN0YWxsQ21kLCB7XG4gICAgICBjd2Q6IHBhdGgucmVzb2x2ZShwcm9qZWN0RGlyKSxcbiAgICB9KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgIGNvbnNvbGUubG9nKHsgZXJyIH0pXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVByb2plY3QoYXJnczoge1xuICBjbGlBcmdzOiBDbGlBcmdzXG4gIGRiRGV0YWlscz86IERiRGV0YWlsc1xuICBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXJcbiAgcHJvamVjdERpcjogc3RyaW5nXG4gIHByb2plY3ROYW1lOiBzdHJpbmdcbiAgdGVtcGxhdGU6IFByb2plY3RUZW1wbGF0ZVxufSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGNsaUFyZ3MsIGRiRGV0YWlscywgcGFja2FnZU1hbmFnZXIsIHByb2plY3REaXIsIHByb2plY3ROYW1lLCB0ZW1wbGF0ZSB9ID0gYXJnc1xuXG4gIGF3YWl0IGNyZWF0ZU9yRmluZFByb2plY3REaXIocHJvamVjdERpcilcblxuICBjb25zb2xlLmxvZyhgXFxuICBDcmVhdGluZyBwcm9qZWN0IGluICR7Y2hhbGsuZ3JlZW4ocGF0aC5yZXNvbHZlKHByb2plY3REaXIpKX1cXG5gKVxuXG4gIGlmICgndXJsJyBpbiB0ZW1wbGF0ZSkge1xuICAgIGNvbnN0IGVtaXR0ZXIgPSBkZWdpdCh0ZW1wbGF0ZS51cmwpXG4gICAgYXdhaXQgZW1pdHRlci5jbG9uZShwcm9qZWN0RGlyKVxuICB9XG5cbiAgY29uc3Qgc3Bpbm5lciA9IG9yYSgnQ2hlY2tpbmcgbGF0ZXN0IFBheWxvYWQgdmVyc2lvbi4uLicpLnN0YXJ0KClcblxuICBhd2FpdCB1cGRhdGVQYWNrYWdlSlNPTih7IHByb2plY3REaXIsIHByb2plY3ROYW1lIH0pXG4gIGF3YWl0IGNvbmZpZ3VyZVBheWxvYWRDb25maWcoeyBkYkRldGFpbHMsIHByb2plY3REaXIgfSlcblxuICAvLyBSZW1vdmUgeWFybi5sb2NrIGZpbGUuIFRoaXMgaXMgb25seSBkZXNpcmVkIGluIFBheWxvYWQgQ2xvdWQuXG4gIGNvbnN0IGxvY2tQYXRoID0gcGF0aC5yZXNvbHZlKHByb2plY3REaXIsICd5YXJuLmxvY2snKVxuICBpZiAoZnNlLmV4aXN0c1N5bmMobG9ja1BhdGgpKSB7XG4gICAgYXdhaXQgZnNlLnJlbW92ZShsb2NrUGF0aClcbiAgfVxuXG4gIHNwaW5uZXIudGV4dCA9ICdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcy4uLidcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW5zdGFsbERlcHMoeyBjbGlBcmdzLCBwYWNrYWdlTWFuYWdlciwgcHJvamVjdERpciB9KVxuICBzcGlubmVyLnN0b3AoKVxuICBzcGlubmVyLmNsZWFyKClcbiAgaWYgKHJlc3VsdCkge1xuICAgIHN1Y2Nlc3MoJ0RlcGVuZGVuY2llcyBpbnN0YWxsZWQnKVxuICB9IGVsc2Uge1xuICAgIGVycm9yKCdFcnJvciBpbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpXG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVBhY2thZ2VKU09OKGFyZ3M6IHtcbiAgcHJvamVjdERpcjogc3RyaW5nXG4gIHByb2plY3ROYW1lOiBzdHJpbmdcbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBwcm9qZWN0RGlyLCBwcm9qZWN0TmFtZSB9ID0gYXJnc1xuICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBwYXRoLnJlc29sdmUocHJvamVjdERpciwgJ3BhY2thZ2UuanNvbicpXG4gIHRyeSB7XG4gICAgY29uc3QgcGFja2FnZU9iaiA9IGF3YWl0IGZzZS5yZWFkSnNvbihwYWNrYWdlSnNvblBhdGgpXG4gICAgcGFja2FnZU9iai5uYW1lID0gcHJvamVjdE5hbWVcbiAgICBhd2FpdCBmc2Uud3JpdGVKc29uKHBhY2thZ2VKc29uUGF0aCwgcGFja2FnZU9iaiwgeyBzcGFjZXM6IDIgfSlcbiAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgd2FybmluZygnVW5hYmxlIHRvIHVwZGF0ZSBuYW1lIGluIHBhY2thZ2UuanNvbicpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVQcm9qZWN0IiwidXBkYXRlUGFja2FnZUpTT04iLCJjcmVhdGVPckZpbmRQcm9qZWN0RGlyIiwicHJvamVjdERpciIsInBhdGhFeGlzdHMiLCJmc2UiLCJta2RpciIsImluc3RhbGxEZXBzIiwiYXJncyIsImNsaUFyZ3MiLCJwYWNrYWdlTWFuYWdlciIsImluc3RhbGxDbWQiLCJleGVjYSIsImNvbW1hbmQiLCJjd2QiLCJwYXRoIiwicmVzb2x2ZSIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJkYkRldGFpbHMiLCJwcm9qZWN0TmFtZSIsInRlbXBsYXRlIiwiY2hhbGsiLCJncmVlbiIsImVtaXR0ZXIiLCJkZWdpdCIsInVybCIsImNsb25lIiwic3Bpbm5lciIsIm9yYSIsInN0YXJ0IiwiY29uZmlndXJlUGF5bG9hZENvbmZpZyIsImxvY2tQYXRoIiwiZXhpc3RzU3luYyIsInJlbW92ZSIsInRleHQiLCJyZXN1bHQiLCJzdG9wIiwiY2xlYXIiLCJzdWNjZXNzIiwiZXJyb3IiLCJwYWNrYWdlSnNvblBhdGgiLCJwYWNrYWdlT2JqIiwicmVhZEpzb24iLCJuYW1lIiwid3JpdGVKc29uIiwic3BhY2VzIiwid2FybmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUErQ3NCQSxhQUFhO2VBQWJBOztJQXlDQUMsaUJBQWlCO2VBQWpC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
         |