eddev 0.1.50 → 0.2.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/build/build-favicon.d.ts +1 -0
  2. package/build/build-favicon.js +71 -0
  3. package/build/create-serverless-dev-worker.d.ts +3 -0
  4. package/build/create-serverless-dev-worker.js +99 -0
  5. package/build/file-tree.js +4 -0
  6. package/build/get-webpack-config.js +58 -143
  7. package/build/manifests/manifest-blocks.d.ts +12 -0
  8. package/build/manifests/manifest-blocks.js +61 -0
  9. package/build/manifests/manifest-fields.d.ts +12 -0
  10. package/build/manifests/manifest-fields.js +42 -0
  11. package/build/manifests/manifest-views.d.ts +12 -0
  12. package/build/manifests/manifest-views.js +49 -0
  13. package/build/manifests/manifest.d.ts +11 -0
  14. package/build/manifests/manifest.js +96 -0
  15. package/build/reporter.js +0 -109
  16. package/build/serverless/create-next-app.d.ts +9 -0
  17. package/build/serverless/create-next-app.js +434 -0
  18. package/build/state/serverless-state.d.ts +26 -0
  19. package/build/state/serverless-state.js +2 -0
  20. package/build/workers/serverless-worker-dev-script.d.ts +1 -0
  21. package/build/workers/serverless-worker-dev-script.js +21 -0
  22. package/build/workers/serverless-worker-script.d.ts +0 -0
  23. package/build/workers/serverless-worker-script.js +1 -0
  24. package/cli/build.dev.js +30 -7
  25. package/cli/build.prod.js +5 -0
  26. package/cli/cli.js +32 -3
  27. package/cli/display/components/DevCLIDisplay.d.ts +3 -0
  28. package/cli/display/components/DevCLIDisplay.js +20 -1
  29. package/cli/display/components/ServerlessDisplay.d.ts +9 -0
  30. package/cli/display/components/ServerlessDisplay.js +68 -0
  31. package/components/NextRouter.d.ts +9 -0
  32. package/components/NextRouter.js +36 -0
  33. package/components/ServerlessRouter.d.ts +0 -0
  34. package/components/ServerlessRouter.js +1 -0
  35. package/config/config-schema.d.ts +65 -0
  36. package/config/config-schema.js +23 -0
  37. package/config/create-schema-file.d.ts +1 -0
  38. package/config/create-schema-file.js +20 -0
  39. package/config/get-config.d.ts +45 -0
  40. package/config/get-config.js +32 -0
  41. package/config/index.d.ts +2 -0
  42. package/config/index.js +14 -0
  43. package/config/parse-config.d.ts +29 -0
  44. package/config/parse-config.js +8 -0
  45. package/config/print-zod-errors.d.ts +2 -0
  46. package/config/print-zod-errors.js +14 -0
  47. package/dynamic/dynamic-component.d.ts +10 -0
  48. package/dynamic/dynamic-component.js +8 -0
  49. package/dynamic/index.d.ts +1 -0
  50. package/dynamic/index.js +13 -0
  51. package/gravityforms/useGravityForm.js +1 -1
  52. package/hooks/queryUtils.js +2 -2
  53. package/hooks/useAppData.js +15 -4
  54. package/package.json +11 -6
  55. package/routing/routing.js +5 -0
  56. package/serverless/create-rpc-client.d.ts +33 -0
  57. package/serverless/create-rpc-client.js +20 -0
  58. package/serverless/define-api.d.ts +2 -0
  59. package/serverless/define-api.js +66 -0
  60. package/serverless/define-rpc-router.d.ts +2 -0
  61. package/serverless/define-rpc-router.js +27 -0
  62. package/serverless/error-codes.d.ts +2 -0
  63. package/serverless/error-codes.js +14 -0
  64. package/serverless/index.d.ts +4 -0
  65. package/serverless/index.js +16 -0
  66. package/serverless/rpc-provider.d.ts +1 -0
  67. package/serverless/rpc-provider.js +5 -0
  68. package/serverless-template/README.md +34 -0
  69. package/serverless-template/_utils/ed-config.ts +5 -0
  70. package/serverless-template/_utils/fetch-wordpress-props.ts +39 -0
  71. package/serverless-template/global.d.ts +9 -0
  72. package/serverless-template/next-env.d.ts +3 -0
  73. package/serverless-template/next.config.js +69 -0
  74. package/serverless-template/null.ts +1 -0
  75. package/serverless-template/package-lock.json +641 -0
  76. package/serverless-template/package.json +19 -0
  77. package/serverless-template/pages/[...slug].tsx +20 -0
  78. package/serverless-template/pages/_app.tsx +34 -0
  79. package/serverless-template/pages/_document.tsx +19 -0
  80. package/serverless-template/pages/api/hello.ts +10 -0
  81. package/serverless-template/pages/api/rest/[...method].ts +38 -0
  82. package/serverless-template/pages/index.tsx +12 -0
  83. package/serverless-template/tsconfig.json +37 -0
  84. package/utils/getRepoName.d.ts +2 -2
  85. package/utils/getRepoName.js +6 -52
  86. package/utils/serverlessAppContext.d.ts +3 -0
  87. package/utils/serverlessAppContext.js +6 -0
  88. package/fields/ImageWell.d.ts +0 -8
  89. package/fields/ImageWell.js +0 -64
@@ -0,0 +1,434 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
33
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34
+ return new (P || (P = Promise))(function (resolve, reject) {
35
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
36
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
37
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
38
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
39
+ });
40
+ };
41
+ var __generator = (this && this.__generator) || function (thisArg, body) {
42
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
43
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
44
+ function verb(n) { return function (v) { return step([n, v]); }; }
45
+ function step(op) {
46
+ if (f) throw new TypeError("Generator is already executing.");
47
+ while (_) try {
48
+ 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;
49
+ if (y = 0, t) op = [op[0] & 2, t.value];
50
+ switch (op[0]) {
51
+ case 0: case 1: t = op; break;
52
+ case 4: _.label++; return { value: op[1], done: false };
53
+ case 5: _.label++; y = op[1]; op = [0]; continue;
54
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
55
+ default:
56
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
57
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
58
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
59
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
60
+ if (t[2]) _.ops.pop();
61
+ _.trys.pop(); continue;
62
+ }
63
+ op = body.call(thisArg, _);
64
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
65
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
66
+ }
67
+ };
68
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
69
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
70
+ if (ar || !(i in from)) {
71
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
72
+ ar[i] = from[i];
73
+ }
74
+ }
75
+ return to.concat(ar || Array.prototype.slice.call(from));
76
+ };
77
+ var __importDefault = (this && this.__importDefault) || function (mod) {
78
+ return (mod && mod.__esModule) ? mod : { "default": mod };
79
+ };
80
+ Object.defineProperty(exports, "__esModule", { value: true });
81
+ exports.createNextApp = void 0;
82
+ var path_1 = require("path");
83
+ var fs_extra_1 = require("fs-extra");
84
+ var glob_promise_1 = __importDefault(require("glob-promise"));
85
+ var child_process_1 = require("child_process");
86
+ var fs_1 = require("fs");
87
+ var manifest_blocks_1 = require("../manifests/manifest-blocks");
88
+ var promises_1 = require("fs/promises");
89
+ var manifest_views_1 = require("../manifests/manifest-views");
90
+ var getRepoName_1 = require("../../utils/getRepoName");
91
+ function requireConfig(dir) {
92
+ var configPath = (0, path_1.resolve)(dir, "ed.config.json");
93
+ return require(configPath);
94
+ }
95
+ function createNextApp(opts) {
96
+ var _a;
97
+ return __awaiter(this, void 0, void 0, function () {
98
+ var isVercel, serverlessDirectory, sendSignal, repoName, port;
99
+ return __generator(this, function (_b) {
100
+ switch (_b.label) {
101
+ case 0:
102
+ isVercel = process.env.VERCEL;
103
+ serverlessDirectory = isVercel ? opts.baseDirectory : (0, path_1.resolve)(opts.baseDirectory, ".serverless");
104
+ sendSignal = opts.sendSignal || (function () { });
105
+ sendSignal({ code: "preparing" });
106
+ repoName = (0, getRepoName_1.getRepoName)(opts.baseDirectory);
107
+ if (!!isVercel) return [3 /*break*/, 2];
108
+ return [4 /*yield*/, clean(serverlessDirectory)];
109
+ case 1:
110
+ _b.sent();
111
+ _b.label = 2;
112
+ case 2:
113
+ // Copy the template folder
114
+ return [4 /*yield*/, copyTemplate(serverlessDirectory)
115
+ // Update package.json
116
+ ];
117
+ case 3:
118
+ // Copy the template folder
119
+ _b.sent();
120
+ if (!!isVercel) return [3 /*break*/, 5];
121
+ return [4 /*yield*/, updatePackagesFile(opts.baseDirectory, serverlessDirectory)];
122
+ case 4:
123
+ _b.sent();
124
+ _b.label = 5;
125
+ case 5:
126
+ if (!!isVercel) return [3 /*break*/, 9];
127
+ // Sync important files during development, as they change
128
+ return [4 /*yield*/, syncFiles(opts.baseDirectory, serverlessDirectory, __spreadArray([
129
+ "blocks/**/*",
130
+ "components/**/*",
131
+ "hooks/**/*",
132
+ "queries/**/*",
133
+ ".env",
134
+ "views/**/*",
135
+ "theme.css.tsx",
136
+ "types.graphql.ts",
137
+ "types.views.ts",
138
+ "types.blocks.ts",
139
+ "utils/**/*",
140
+ "ed.config.json"
141
+ ], (((_a = requireConfig(opts.baseDirectory).serverless) === null || _a === void 0 ? void 0 : _a.devAssets) || []), true))
142
+ // Also sync APIs into the APIs folder
143
+ ];
144
+ case 6:
145
+ // Sync important files during development, as they change
146
+ _b.sent();
147
+ // Also sync APIs into the APIs folder
148
+ return [4 /*yield*/, syncFiles(opts.baseDirectory, (0, path_1.join)(serverlessDirectory, "pages/"), ["api/**/*"])
149
+ // And public folder
150
+ ];
151
+ case 7:
152
+ // Also sync APIs into the APIs folder
153
+ _b.sent();
154
+ // And public folder
155
+ return [4 /*yield*/, syncFiles((0, path_1.join)(opts.baseDirectory, "assets"), (0, path_1.join)(serverlessDirectory, "public/wp-content/themes/".concat(repoName.repoName, "/assets")), ["**/*"])];
156
+ case 8:
157
+ // And public folder
158
+ _b.sent();
159
+ _b.label = 9;
160
+ case 9:
161
+ if (!!isVercel) return [3 /*break*/, 11];
162
+ sendSignal({ code: "packaging" });
163
+ return [4 /*yield*/, updatePackages(serverlessDirectory)];
164
+ case 10:
165
+ _b.sent();
166
+ _b.label = 11;
167
+ case 11:
168
+ sendSignal({ code: "compiling" });
169
+ // Create manifests
170
+ initManifests(serverlessDirectory, opts.dev);
171
+ if (!opts.dev) return [3 /*break*/, 14];
172
+ return [4 /*yield*/, getPort(3000)];
173
+ case 12:
174
+ port = _b.sent();
175
+ sendSignal({ code: "url", url: "http://127.0.0.1:".concat(port) });
176
+ return [4 /*yield*/, devNext(serverlessDirectory, port)
177
+ // await runScript(serverlessDirectory, "dev")
178
+ ];
179
+ case 13:
180
+ _b.sent();
181
+ return [3 /*break*/, 16];
182
+ case 14:
183
+ if (!opts.build) return [3 /*break*/, 16];
184
+ return [4 /*yield*/, runScript(serverlessDirectory, "build")];
185
+ case 15:
186
+ _b.sent();
187
+ _b.label = 16;
188
+ case 16: return [2 /*return*/];
189
+ }
190
+ });
191
+ });
192
+ }
193
+ exports.createNextApp = createNextApp;
194
+ function clean(path) {
195
+ return __awaiter(this, void 0, void 0, function () {
196
+ var whitelist, files;
197
+ return __generator(this, function (_a) {
198
+ switch (_a.label) {
199
+ case 0:
200
+ if (!(0, fs_1.existsSync)(path))
201
+ return [2 /*return*/];
202
+ whitelist = ["node_modules", "package.json", "yarn.lock"];
203
+ return [4 /*yield*/, (0, fs_extra_1.readdir)(path)];
204
+ case 1:
205
+ files = (_a.sent()).filter(function (file) {
206
+ return !whitelist.includes(file);
207
+ });
208
+ return [4 /*yield*/, Promise.all(files.map(function (file) { return (0, fs_extra_1.removeSync)((0, path_1.resolve)(path, file)); }))];
209
+ case 2:
210
+ _a.sent();
211
+ return [2 /*return*/];
212
+ }
213
+ });
214
+ });
215
+ }
216
+ function copyTemplate(targetFolder) {
217
+ return __awaiter(this, void 0, void 0, function () {
218
+ var sourceFolder, files;
219
+ return __generator(this, function (_a) {
220
+ switch (_a.label) {
221
+ case 0:
222
+ sourceFolder = (0, path_1.resolve)(__dirname, "../../serverless-template");
223
+ (0, fs_extra_1.mkdirp)(targetFolder);
224
+ return [4 /*yield*/, (0, glob_promise_1.default)((0, path_1.resolve)(sourceFolder, "**/*.*"))];
225
+ case 1:
226
+ files = _a.sent();
227
+ return [4 /*yield*/, Promise.all(files.map(function (src) {
228
+ var dest = src.replace(sourceFolder, targetFolder);
229
+ return (0, fs_extra_1.copy)(src, dest);
230
+ }))];
231
+ case 2:
232
+ _a.sent();
233
+ return [2 /*return*/];
234
+ }
235
+ });
236
+ });
237
+ }
238
+ function updatePackages(dir) {
239
+ var _a, _b;
240
+ return __awaiter(this, void 0, void 0, function () {
241
+ var proc;
242
+ return __generator(this, function (_c) {
243
+ proc = (0, child_process_1.spawn)("yarn", [], {
244
+ cwd: dir,
245
+ });
246
+ (_a = proc.stdout) === null || _a === void 0 ? void 0 : _a.pipe(process.stdout);
247
+ (_b = proc.stderr) === null || _b === void 0 ? void 0 : _b.pipe(process.stderr);
248
+ return [2 /*return*/, new Promise(function (resolve) {
249
+ proc.on("close", function () {
250
+ resolve(null);
251
+ });
252
+ })];
253
+ });
254
+ });
255
+ }
256
+ function updatePackagesFile(sourceFolder, targetFolder) {
257
+ return __awaiter(this, void 0, void 0, function () {
258
+ var sourcePackageFile, targetPackageFile, sourcePackage, targetPackage, mergedPackage;
259
+ return __generator(this, function (_a) {
260
+ sourcePackageFile = (0, path_1.resolve)(sourceFolder, "package.json");
261
+ targetPackageFile = (0, path_1.resolve)(targetFolder, "package.json");
262
+ sourcePackage = require(sourcePackageFile);
263
+ targetPackage = require(targetPackageFile);
264
+ mergedPackage = __assign(__assign({}, targetPackage), { dependencies: __assign(__assign({}, (sourcePackage.dependencies || {})), (targetPackage.dependencies || {})), devDependencies: __assign(__assign({}, (sourcePackage.devDependencies || {})), (targetPackage.devDependencies || {})) });
265
+ (0, fs_extra_1.writeJSON)(targetPackageFile, mergedPackage, {
266
+ spaces: 2,
267
+ });
268
+ return [2 /*return*/];
269
+ });
270
+ });
271
+ }
272
+ function syncFiles(sourceFolder, targetFolder, patterns) {
273
+ return __awaiter(this, void 0, void 0, function () {
274
+ var _this = this;
275
+ return __generator(this, function (_a) {
276
+ return [2 /*return*/, new Promise(function (ready) { return __awaiter(_this, void 0, void 0, function () {
277
+ var chokidar;
278
+ return __generator(this, function (_a) {
279
+ switch (_a.label) {
280
+ case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("chokidar")); })];
281
+ case 1:
282
+ chokidar = (_a.sent()).default;
283
+ chokidar
284
+ .watch(patterns, {
285
+ cwd: sourceFolder,
286
+ })
287
+ .on("add", function (path) {
288
+ (0, fs_extra_1.copy)((0, path_1.join)(sourceFolder, path), (0, path_1.join)(targetFolder, path));
289
+ })
290
+ .on("unlink", function (path) {
291
+ (0, fs_extra_1.remove)((0, path_1.join)(targetFolder, path));
292
+ })
293
+ .on("change", function (path) {
294
+ (0, fs_extra_1.copy)((0, path_1.join)(sourceFolder, path), (0, path_1.join)(targetFolder, path));
295
+ })
296
+ .on("ready", function () {
297
+ ready(undefined);
298
+ });
299
+ return [2 /*return*/];
300
+ }
301
+ });
302
+ }); })];
303
+ });
304
+ });
305
+ }
306
+ function devNext(dir, port) {
307
+ return __awaiter(this, void 0, void 0, function () {
308
+ var createServer, parse, next, app, handle;
309
+ return __generator(this, function (_a) {
310
+ switch (_a.label) {
311
+ case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("http")); })];
312
+ case 1:
313
+ createServer = (_a.sent()).createServer;
314
+ return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("url")); })];
315
+ case 2:
316
+ parse = (_a.sent()).parse;
317
+ return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("next")); })];
318
+ case 3:
319
+ next = (_a.sent()).default;
320
+ app = next({
321
+ dev: true,
322
+ dir: dir,
323
+ minimalMode: true,
324
+ customServer: true,
325
+ port: port,
326
+ });
327
+ handle = app.getRequestHandler();
328
+ app.prepare().then(function () {
329
+ console.log("http://127.0.0.1:".concat(port));
330
+ createServer(function (req, res) {
331
+ handle(req, res, parse(req.url || "", true));
332
+ }).listen(app.port);
333
+ });
334
+ return [2 /*return*/];
335
+ }
336
+ });
337
+ });
338
+ }
339
+ function runScript(dir, script) {
340
+ var _a, _b;
341
+ return __awaiter(this, void 0, void 0, function () {
342
+ var proc;
343
+ return __generator(this, function (_c) {
344
+ proc = (0, child_process_1.spawn)("yarn", [script], {
345
+ cwd: dir,
346
+ });
347
+ (_a = proc.stdout) === null || _a === void 0 ? void 0 : _a.pipe(process.stdout);
348
+ (_b = proc.stderr) === null || _b === void 0 ? void 0 : _b.pipe(process.stderr);
349
+ return [2 /*return*/, new Promise(function (resolve) {
350
+ proc.on("close", function () {
351
+ resolve(null);
352
+ });
353
+ })];
354
+ });
355
+ });
356
+ }
357
+ function initManifests(dir, dev) {
358
+ return __awaiter(this, void 0, void 0, function () {
359
+ var _this = this;
360
+ return __generator(this, function (_a) {
361
+ switch (_a.label) {
362
+ case 0: return [4 /*yield*/, Promise.all([
363
+ (0, manifest_blocks_1.createBlockManifestGenerator)({
364
+ baseDirectory: dir,
365
+ isAdmin: false,
366
+ isDev: dev,
367
+ isServerless: true,
368
+ onGenerate: function (manifest) { return __awaiter(_this, void 0, void 0, function () {
369
+ return __generator(this, function (_a) {
370
+ (0, promises_1.writeFile)((0, path_1.resolve)(dir, "manifest_blocks.ts"), manifest);
371
+ return [2 /*return*/];
372
+ });
373
+ }); },
374
+ watch: dev,
375
+ }),
376
+ (0, manifest_views_1.createViewManifestGenerator)({
377
+ baseDirectory: dir,
378
+ isAdmin: false,
379
+ isDev: dev,
380
+ isServerless: true,
381
+ onGenerate: function (manifest) { return __awaiter(_this, void 0, void 0, function () {
382
+ return __generator(this, function (_a) {
383
+ (0, promises_1.writeFile)((0, path_1.resolve)(dir, "manifest_views.ts"), manifest);
384
+ return [2 /*return*/];
385
+ });
386
+ }); },
387
+ watch: dev,
388
+ }),
389
+ ])];
390
+ case 1:
391
+ _a.sent();
392
+ return [2 /*return*/];
393
+ }
394
+ });
395
+ });
396
+ }
397
+ function getPort(port) {
398
+ if (port === void 0) { port = 3000; }
399
+ return __awaiter(this, void 0, void 0, function () {
400
+ var createServer, p;
401
+ var _this = this;
402
+ return __generator(this, function (_a) {
403
+ switch (_a.label) {
404
+ case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("http")); })];
405
+ case 1:
406
+ createServer = (_a.sent()).createServer;
407
+ for (p = port; p < port + 100; p++) { }
408
+ return [4 /*yield*/, new Promise(function (resolve) {
409
+ var server = createServer();
410
+ server.listen(port, function () {
411
+ server.once("close", function () {
412
+ resolve(port);
413
+ });
414
+ server.close();
415
+ });
416
+ server.on("error", function () { return __awaiter(_this, void 0, void 0, function () {
417
+ var _a;
418
+ return __generator(this, function (_b) {
419
+ switch (_b.label) {
420
+ case 0:
421
+ _a = resolve;
422
+ return [4 /*yield*/, getPort(port + 1)];
423
+ case 1:
424
+ _a.apply(void 0, [_b.sent()]);
425
+ return [2 /*return*/];
426
+ }
427
+ });
428
+ }); });
429
+ })];
430
+ case 2: return [2 /*return*/, _a.sent()];
431
+ }
432
+ });
433
+ });
434
+ }
@@ -0,0 +1,26 @@
1
+ export declare type ServerlessStatus = "starting" | "packaging" | "preparing" | "compiling" | "success" | "waiting" | "error";
2
+ export declare type ServerlessState = {
3
+ title: string;
4
+ status: ServerlessStatus;
5
+ statusLabel?: string;
6
+ duration?: number;
7
+ log?: string;
8
+ url?: string;
9
+ };
10
+ export declare type ServerlessSignal = {
11
+ code: "packaging";
12
+ } | {
13
+ code: "preparing";
14
+ } | {
15
+ code: "compiling";
16
+ } | {
17
+ code: "finished";
18
+ duration: number;
19
+ } | {
20
+ code: "error";
21
+ } | {
22
+ code: "log";
23
+ } | {
24
+ code: "url";
25
+ url: string;
26
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var worker_threads_1 = require("worker_threads");
4
+ var create_next_app_1 = require("../serverless/create-next-app");
5
+ var sendSignal = function (sig) {
6
+ if (worker_threads_1.parentPort) {
7
+ worker_threads_1.parentPort.postMessage(sig);
8
+ }
9
+ };
10
+ function beginWork() {
11
+ process.on("uncaughtException", function (err) {
12
+ sendSignal({ code: "error" });
13
+ });
14
+ (0, create_next_app_1.createNextApp)({
15
+ baseDirectory: process.cwd(),
16
+ build: false,
17
+ dev: true,
18
+ sendSignal: sendSignal,
19
+ });
20
+ }
21
+ beginWork();
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
package/cli/build.dev.js CHANGED
@@ -48,18 +48,37 @@ var ink_1 = require("ink");
48
48
  var DevCLIDisplay_1 = require("./display/components/DevCLIDisplay");
49
49
  var create_webpack_worker_1 = require("../build/create-webpack-worker");
50
50
  var create_codegen_worker_1 = require("../build/create-codegen-worker");
51
+ var create_schema_file_1 = require("../config/create-schema-file");
52
+ var get_config_1 = require("../config/get-config");
53
+ var print_zod_errors_1 = require("../config/print-zod-errors");
54
+ var Observable_1 = require("../utils/Observable");
55
+ var fs_extra_1 = require("fs-extra");
56
+ var create_serverless_dev_worker_1 = require("../build/create-serverless-dev-worker");
57
+ var build_favicon_1 = require("../build/build-favicon");
51
58
  function devCommand(opts) {
59
+ var _a;
52
60
  return __awaiter(this, void 0, void 0, function () {
53
- var themeName, enableFrontend, enableAdmin, enableCodegen, frontendObservable, adminObservable, codegenObservable;
54
- return __generator(this, function (_a) {
55
- switch (_a.label) {
56
- case 0: return [4 /*yield*/, (0, promptIfRepoNameIncorrect_1.promptIfRepoThemeMismatch)()];
61
+ var configResult, config, themeName, enableFrontend, enableAdmin, enableCodegen, enableServerless, frontendObservable, adminObservable, codegenObservable, configChanged, serverlessObservable;
62
+ return __generator(this, function (_b) {
63
+ switch (_b.label) {
64
+ case 0:
65
+ (0, create_schema_file_1.createConfigSchemaFile)(path_1.default.resolve(process.cwd(), ".ed.config.schema.json"));
66
+ (0, build_favicon_1.buildFavicon)().catch(function () { });
67
+ return [4 /*yield*/, (0, promptIfRepoNameIncorrect_1.promptIfRepoThemeMismatch)()];
57
68
  case 1:
58
- _a.sent();
69
+ _b.sent();
70
+ configResult = (0, get_config_1.getEDConfig)();
71
+ if (!configResult.success) {
72
+ (0, print_zod_errors_1.printZodErrors)(configResult.error);
73
+ console.log("\nPlease fix the above config errors, and restart the dev command.");
74
+ return [2 /*return*/];
75
+ }
76
+ config = configResult.data;
59
77
  themeName = path_1.default.basename(process.cwd());
60
78
  enableFrontend = !opts.mode || opts.mode === "frontend";
61
79
  enableAdmin = !opts.mode || opts.mode === "admin";
62
80
  enableCodegen = !opts.mode || opts.mode === "codegen";
81
+ enableServerless = (_a = config.serverless) === null || _a === void 0 ? void 0 : _a.enabled;
63
82
  frontendObservable = enableFrontend
64
83
  ? (0, create_webpack_worker_1.createWebpackWorker)({
65
84
  title: "Frontend Bundle",
@@ -93,9 +112,13 @@ function devCommand(opts) {
93
112
  retainLog: opts.retainLog,
94
113
  })
95
114
  : undefined;
96
- // Set up a process which will regenerate schemas, and watch for changes
115
+ configChanged = new Observable_1.Observable(false);
116
+ (0, fs_extra_1.watchFile)((0, get_config_1.getEDConfigFile)(), {}, function () {
117
+ configChanged.update(true);
118
+ });
119
+ serverlessObservable = enableServerless ? (0, create_serverless_dev_worker_1.createServerlessWorker)() : undefined;
97
120
  // Render output to screen
98
- (0, ink_1.render)((0, jsx_runtime_1.jsx)(DevCLIDisplay_1.DevCLIDisplay, { bundles: [frontendObservable, adminObservable].filter(Boolean), codegen: codegenObservable }, void 0));
121
+ (0, ink_1.render)((0, jsx_runtime_1.jsx)(DevCLIDisplay_1.DevCLIDisplay, { bundles: [frontendObservable, adminObservable].filter(Boolean), serverless: serverlessObservable, codegen: codegenObservable, configChanged: configChanged }, void 0));
99
122
  return [2 /*return*/];
100
123
  }
101
124
  });
package/cli/build.prod.js CHANGED
@@ -45,6 +45,7 @@ var webpack_1 = require("webpack");
45
45
  var promptIfRepoNameIncorrect_1 = require("../utils/promptIfRepoNameIncorrect");
46
46
  var path_1 = __importDefault(require("path"));
47
47
  var clean_1 = require("../build/clean");
48
+ var build_favicon_1 = require("../build/build-favicon");
48
49
  function prodCommand(opts) {
49
50
  return __awaiter(this, void 0, void 0, function () {
50
51
  var contentBase, themeName, compiler, _a, _b;
@@ -52,6 +53,10 @@ function prodCommand(opts) {
52
53
  switch (_c.label) {
53
54
  case 0:
54
55
  contentBase = process.cwd() + "/dist/";
56
+ (0, build_favicon_1.buildFavicon)().catch(function (err) {
57
+ console.log("Error building favicon:");
58
+ console.error(err);
59
+ });
55
60
  return [4 /*yield*/, (0, promptIfRepoNameIncorrect_1.promptIfRepoThemeMismatch)()];
56
61
  case 1:
57
62
  _c.sent();
package/cli/cli.js CHANGED
@@ -37,6 +37,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  var commander_1 = require("commander");
40
+ var create_next_app_1 = require("../build/serverless/create-next-app");
40
41
  var build_dev_1 = require("./build.dev");
41
42
  var build_prod_1 = require("./build.prod");
42
43
  var setup_1 = require("./setup");
@@ -59,10 +60,38 @@ program
59
60
  program
60
61
  .command("build")
61
62
  .description("Build in production mode")
62
- .option("-s, --serverless", 'Build in "serverless" mode')
63
63
  .action(function (options) {
64
- (0, build_prod_1.prodCommand)({
65
- serverless: options.serverless,
64
+ if (process.env.VERCEL) {
65
+ (0, create_next_app_1.createNextApp)({
66
+ baseDirectory: process.cwd(),
67
+ dev: false,
68
+ build: true,
69
+ });
70
+ }
71
+ else {
72
+ (0, build_prod_1.prodCommand)({
73
+ serverless: options.serverless,
74
+ });
75
+ }
76
+ });
77
+ // program
78
+ // .command("vercel-build")
79
+ // .description("Create and build a Next.js project in .serverless")
80
+ // .action((options) => {
81
+ // createNextApp({
82
+ // baseDirectory: process.cwd(),
83
+ // dev: false,
84
+ // build: true,
85
+ // })
86
+ // })
87
+ program
88
+ .command("next")
89
+ .description("Create a Next.js project in .serverless")
90
+ .action(function (options) {
91
+ (0, create_next_app_1.createNextApp)({
92
+ baseDirectory: process.cwd(),
93
+ dev: true,
94
+ build: false,
66
95
  });
67
96
  });
68
97
  program
@@ -1,10 +1,13 @@
1
1
  /// <reference types="react" />
2
2
  import { CodegenState } from "../../../build/state/codegen-state";
3
3
  import { CompilerState } from "../../../build/state/compiler-state";
4
+ import { ServerlessState } from "../../../build/state/serverless-state";
4
5
  import { Observable } from "../../../utils/Observable";
5
6
  declare type Props = {
6
7
  bundles: Observable<CompilerState>[];
8
+ serverless?: Observable<ServerlessState>;
7
9
  codegen?: Observable<CodegenState>;
10
+ configChanged: Observable<boolean>;
8
11
  };
9
12
  export declare function DevCLIDisplay(props: Props): JSX.Element;
10
13
  export {};