eddev 0.2.0-beta.13 → 0.2.0-beta.17

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 (41) hide show
  1. package/build/get-webpack-config.js +1 -0
  2. package/build/serverless/create-next-app.js +99 -77
  3. package/cli/cli.js +4 -4
  4. package/components/PageHead.d.ts +1 -0
  5. package/components/PageHead.js +2 -0
  6. package/components/PageMeta.d.ts +1 -0
  7. package/components/PageMeta.js +2 -0
  8. package/components/PageMeta.monolith.d.ts +1 -0
  9. package/components/PageMeta.monolith.js +2 -0
  10. package/components/ServerlessPageMeta.d.ts +1 -0
  11. package/components/ServerlessPageMeta.js +2 -0
  12. package/config/config-schema.d.ts +10 -5
  13. package/config/config-schema.js +2 -1
  14. package/config/get-config.d.ts +6 -3
  15. package/config/parse-config.d.ts +4 -2
  16. package/dev-ui/components/BreakpointIndicator.js +1 -1
  17. package/dev-ui/components/DevUI.d.ts +1 -1
  18. package/dev-ui/components/DevUI.js +1 -2
  19. package/dev-ui/components/atoms/Text.d.ts +1 -1
  20. package/dev-ui/hooks/usePersistState.js +3 -0
  21. package/dev-ui/index.d.ts +1 -1
  22. package/dev-ui/index.js +11 -3
  23. package/dev-ui/loader.d.ts +2 -0
  24. package/dev-ui/loader.js +42 -0
  25. package/dev-ui/theme.d.ts +5 -4
  26. package/entry/Root.js +2 -2
  27. package/package.json +11 -1
  28. package/serverless/create-rpc-client.d.ts +5 -17
  29. package/serverless-template/_utils/PageMeta.tsx +44 -0
  30. package/serverless-template/_utils/fetch-wordpress-props.ts +10 -3
  31. package/serverless-template/_utils/fetch-wp.ts +16 -0
  32. package/serverless-template/global.d.ts +1 -0
  33. package/serverless-template/next.config.js +2 -0
  34. package/serverless-template/pages/_app.tsx +7 -0
  35. package/style/createStitches.d.ts +5 -4
  36. package/utils/updateEnvFile.d.ts +1 -0
  37. package/utils/updateEnvFile.js +76 -0
  38. package/dev-ui/components/BreakpointList.d.ts +0 -6
  39. package/dev-ui/components/BreakpointList.js +0 -38
  40. package/dev-ui/components/ResponsiveScaleHeader.d.ts +0 -15
  41. package/dev-ui/components/ResponsiveScaleHeader.js +0 -51
@@ -332,6 +332,7 @@ function getWebpackConfig(opts) {
332
332
  DEFINES["process.BLOCK_MANIFEST_FILE"] = JSON.stringify(ALIAS["@manifest/blocks"]);
333
333
  }
334
334
  DEFINES["process.devUI"] = config.devUI === "enabled";
335
+ DEFINES["process.serverlessEndpoint"] = "window.SERVERLESS_ENDPOINT";
335
336
  if (isBrowser) {
336
337
  DEFINES["process.env.themePath"] = "window.THEME_PATH || ".concat(DEFINES["process.env.themePath"]);
337
338
  }
@@ -65,15 +65,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
65
65
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
66
66
  }
67
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
68
  var __importDefault = (this && this.__importDefault) || function (mod) {
78
69
  return (mod && mod.__esModule) ? mod : { "default": mod };
79
70
  };
@@ -88,6 +79,7 @@ var manifest_blocks_1 = require("../manifests/manifest-blocks");
88
79
  var promises_1 = require("fs/promises");
89
80
  var manifest_views_1 = require("../manifests/manifest-views");
90
81
  var getRepoName_1 = require("../../utils/getRepoName");
82
+ var updateEnvFile_1 = require("../../utils/updateEnvFile");
91
83
  function requireConfig(dir) {
92
84
  var configPath = (0, path_1.resolve)(dir, "ed.config.json");
93
85
  return require(configPath);
@@ -95,7 +87,7 @@ function requireConfig(dir) {
95
87
  function createNextApp(opts) {
96
88
  var _a;
97
89
  return __awaiter(this, void 0, void 0, function () {
98
- var isVercel, serverlessDirectory, sendSignal, repoName, port;
90
+ var isVercel, serverlessDirectory, sendSignal, repoName, assetPaths, port;
99
91
  return __generator(this, function (_b) {
100
92
  switch (_b.label) {
101
93
  case 0:
@@ -123,9 +115,10 @@ function createNextApp(opts) {
123
115
  _b.sent();
124
116
  _b.label = 5;
125
117
  case 5:
126
- if (!!isVercel) return [3 /*break*/, 9];
118
+ assetPaths = ((_a = requireConfig(opts.baseDirectory).serverless) === null || _a === void 0 ? void 0 : _a.themeAssets) || [];
119
+ if (!!isVercel) return [3 /*break*/, 11];
127
120
  // Sync important files during development, as they change
128
- return [4 /*yield*/, syncFiles(opts.baseDirectory, serverlessDirectory, __spreadArray([
121
+ return [4 /*yield*/, syncFiles(opts.baseDirectory, serverlessDirectory, [
129
122
  "blocks/**/*",
130
123
  "components/**/*",
131
124
  "hooks/**/*",
@@ -137,8 +130,8 @@ function createNextApp(opts) {
137
130
  "types.views.ts",
138
131
  "types.blocks.ts",
139
132
  "utils/**/*",
140
- "ed.config.json"
141
- ], (((_a = requireConfig(opts.baseDirectory).serverless) === null || _a === void 0 ? void 0 : _a.devAssets) || []), true))
133
+ "ed.config.json",
134
+ ])
142
135
  // Also sync APIs into the APIs folder
143
136
  ];
144
137
  case 6:
@@ -146,46 +139,76 @@ function createNextApp(opts) {
146
139
  _b.sent();
147
140
  // Also sync APIs into the APIs folder
148
141
  return [4 /*yield*/, syncFiles(opts.baseDirectory, (0, path_1.join)(serverlessDirectory, "pages/"), ["api/**/*"])
149
- // And public folder
142
+ // Sync the public folder
150
143
  ];
151
144
  case 7:
152
145
  // Also sync APIs into the APIs folder
153
146
  _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")), ["**/*"])];
147
+ if (!assetPaths.length) return [3 /*break*/, 9];
148
+ return [4 /*yield*/, syncFiles(opts.baseDirectory, (0, path_1.join)(serverlessDirectory, "public/wp-content/themes/".concat(repoName.repoName)), assetPaths)];
156
149
  case 8:
157
- // And public folder
158
150
  _b.sent();
159
151
  _b.label = 9;
160
- case 9:
161
- if (!!isVercel) return [3 /*break*/, 11];
162
- sendSignal({ code: "packaging" });
163
- return [4 /*yield*/, updatePackages(serverlessDirectory)];
152
+ case 9:
153
+ // Sync favicon
154
+ return [4 /*yield*/, syncFiles((0, path_1.join)(opts.baseDirectory), (0, path_1.join)(serverlessDirectory, "public/"), ["favicon.ico"])];
164
155
  case 10:
156
+ // Sync favicon
165
157
  _b.sent();
166
- _b.label = 11;
158
+ return [3 /*break*/, 15];
167
159
  case 11:
160
+ if (!assetPaths.length) return [3 /*break*/, 13];
161
+ return [4 /*yield*/, copyFiles(opts.baseDirectory, (0, path_1.join)(serverlessDirectory, "public/wp-content/themes/".concat(repoName.repoName)), assetPaths)];
162
+ case 12:
163
+ _b.sent();
164
+ _b.label = 13;
165
+ case 13:
166
+ // Sync favicon
167
+ return [4 /*yield*/, copyFiles((0, path_1.join)(opts.baseDirectory), (0, path_1.join)(serverlessDirectory, "public/"), ["favicon.ico"])];
168
+ case 14:
169
+ // Sync favicon
170
+ _b.sent();
171
+ _b.label = 15;
172
+ case 15:
173
+ if (!!isVercel) return [3 /*break*/, 17];
174
+ sendSignal({ code: "packaging" });
175
+ return [4 /*yield*/, updatePackages(serverlessDirectory)];
176
+ case 16:
177
+ _b.sent();
178
+ _b.label = 17;
179
+ case 17:
168
180
  sendSignal({ code: "compiling" });
169
181
  // Create manifests
170
- initManifests(serverlessDirectory, opts.dev);
171
- if (!opts.dev) return [3 /*break*/, 14];
172
- return [4 /*yield*/, getPort(3000)];
173
- case 12:
182
+ return [4 /*yield*/, initManifests(serverlessDirectory, opts.dev)
183
+ // Start
184
+ ];
185
+ case 18:
186
+ // Create manifests
187
+ _b.sent();
188
+ if (!opts.dev) return [3 /*break*/, 21];
189
+ return [4 /*yield*/, getPort(3000)
190
+ // Write the endpoint URL to .env
191
+ ];
192
+ case 19:
174
193
  port = _b.sent();
194
+ // Write the endpoint URL to .env
195
+ (0, updateEnvFile_1.updateEnvFile)({
196
+ DEBUG_SERVERLESS_ENDPOINT: "http://localhost:".concat(port),
197
+ }, opts.baseDirectory);
175
198
  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:
199
+ // await devNext(serverlessDirectory, port)
200
+ return [4 /*yield*/, runScript(serverlessDirectory, ["dev", "--port", String(port)])];
201
+ case 20:
202
+ // await devNext(serverlessDirectory, port)
180
203
  _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:
204
+ return [3 /*break*/, 23];
205
+ case 21:
206
+ if (!opts.build) return [3 /*break*/, 23];
207
+ return [4 /*yield*/, runScript(serverlessDirectory, ["build"])];
208
+ case 22:
186
209
  _b.sent();
187
- _b.label = 16;
188
- case 16: return [2 /*return*/];
210
+ _b.label = 23;
211
+ case 23: return [2 /*return*/];
189
212
  }
190
213
  });
191
214
  });
@@ -261,7 +284,7 @@ function updatePackagesFile(sourceFolder, targetFolder) {
261
284
  targetPackageFile = (0, path_1.resolve)(targetFolder, "package.json");
262
285
  sourcePackage = require(sourcePackageFile);
263
286
  targetPackage = require(targetPackageFile);
264
- mergedPackage = __assign(__assign({}, targetPackage), { dependencies: __assign(__assign({}, (sourcePackage.dependencies || {})), (targetPackage.dependencies || {})), devDependencies: __assign(__assign({}, (sourcePackage.devDependencies || {})), (targetPackage.devDependencies || {})) });
287
+ mergedPackage = __assign(__assign({}, targetPackage), { dependencies: __assign(__assign({}, (targetPackage.dependencies || {})), (sourcePackage.dependencies || {})), devDependencies: __assign(__assign({}, (targetPackage.devDependencies || {})), (sourcePackage.devDependencies || {})) });
265
288
  (0, fs_extra_1.writeJSON)(targetPackageFile, mergedPackage, {
266
289
  spaces: 2,
267
290
  });
@@ -269,6 +292,20 @@ function updatePackagesFile(sourceFolder, targetFolder) {
269
292
  });
270
293
  });
271
294
  }
295
+ function copyFiles(sourceFolder, targetFolder, patterns) {
296
+ return __awaiter(this, void 0, void 0, function () {
297
+ var files;
298
+ return __generator(this, function (_a) {
299
+ switch (_a.label) {
300
+ case 0: return [4 /*yield*/, Promise.all(patterns.map(function (pattern) { return (0, glob_promise_1.default)((0, path_1.resolve)(sourceFolder, pattern)); }))];
301
+ case 1:
302
+ files = (_a.sent()).flat();
303
+ console.log("Files are", files);
304
+ return [2 /*return*/];
305
+ }
306
+ });
307
+ });
308
+ }
272
309
  function syncFiles(sourceFolder, targetFolder, patterns) {
273
310
  return __awaiter(this, void 0, void 0, function () {
274
311
  var _this = this;
@@ -303,45 +340,30 @@ function syncFiles(sourceFolder, targetFolder, patterns) {
303
340
  });
304
341
  });
305
342
  }
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) {
343
+ // async function devNext(dir: string, port: number) {
344
+ // const { createServer } = await import("http")
345
+ // const { parse } = await import("url")
346
+ // const { default: next } = await import("next")
347
+ // const app = next({
348
+ // dev: true,
349
+ // dir: dir,
350
+ // minimalMode: true,
351
+ // customServer: true,
352
+ // port: port,
353
+ // })
354
+ // const handle = app.getRequestHandler()
355
+ // app.prepare().then(() => {
356
+ // createServer((req, res) => {
357
+ // handle(req, res, parse(req.url || "", true))
358
+ // }).listen(app.port)
359
+ // })
360
+ // }
361
+ function runScript(dir, args) {
340
362
  var _a, _b;
341
363
  return __awaiter(this, void 0, void 0, function () {
342
364
  var proc;
343
365
  return __generator(this, function (_c) {
344
- proc = (0, child_process_1.spawn)("yarn", [script], {
366
+ proc = (0, child_process_1.spawn)("yarn", args, {
345
367
  cwd: dir,
346
368
  });
347
369
  (_a = proc.stdout) === null || _a === void 0 ? void 0 : _a.pipe(process.stdout);
@@ -397,17 +419,17 @@ function initManifests(dir, dev) {
397
419
  function getPort(port) {
398
420
  if (port === void 0) { port = 3000; }
399
421
  return __awaiter(this, void 0, void 0, function () {
400
- var createServer, p;
422
+ var createServer;
401
423
  var _this = this;
402
424
  return __generator(this, function (_a) {
403
425
  switch (_a.label) {
404
426
  case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("http")); })];
405
427
  case 1:
406
428
  createServer = (_a.sent()).createServer;
407
- for (p = port; p < port + 100; p++) { }
408
429
  return [4 /*yield*/, new Promise(function (resolve) {
409
430
  var server = createServer();
410
- server.listen(port, function () {
431
+ server.listen(port, "127.0.0.1");
432
+ server.on("listening", function () {
411
433
  server.once("close", function () {
412
434
  resolve(port);
413
435
  });
package/cli/cli.js CHANGED
@@ -38,8 +38,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  var commander_1 = require("commander");
40
40
  var create_next_app_1 = require("../build/serverless/create-next-app");
41
- var build_dev_1 = require("./build.dev");
42
- var build_prod_1 = require("./build.prod");
43
41
  var setup_1 = require("./setup");
44
42
  var program = new commander_1.Command();
45
43
  program.version("0.0.1");
@@ -51,7 +49,8 @@ program
51
49
  .option("-m, --mode <mode>", 'Defaults to all modes, but use "frontend", "admin" or "codegen" to run in just one mode', undefined)
52
50
  .option("--verbose", "Enables log retention", false)
53
51
  .action(function (options) {
54
- (0, build_dev_1.devCommand)({
52
+ var devCommand = require("./build.dev").devCommand;
53
+ devCommand({
55
54
  serverless: options.serverless,
56
55
  mode: options.mode,
57
56
  retainLog: options.verbose,
@@ -69,7 +68,8 @@ program
69
68
  });
70
69
  }
71
70
  else {
72
- (0, build_prod_1.prodCommand)({
71
+ var prodCommand = require("./build.prod").prodCommand;
72
+ prodCommand({
73
73
  serverless: options.serverless,
74
74
  });
75
75
  }
@@ -0,0 +1 @@
1
+ export declare function PageMeta(): any;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ export declare function PageMeta(): any;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ export declare function PageMeta(): any;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ export declare function PageMeta(): any;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -6,44 +6,49 @@ export declare const EDConfigSchema: z.ZodObject<{
6
6
  uploads: z.ZodEnum<["proxy", "remote"]>;
7
7
  plugins: z.ZodEnum<["proxy", "remote"]>;
8
8
  theme: z.ZodEnum<["proxy", "copy", "remote"]>;
9
- devAssets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
+ themeAssets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10
10
  apiOnly: z.ZodOptional<z.ZodBoolean>;
11
+ endpoints: z.ZodRecord<z.ZodString, z.ZodString>;
11
12
  }, "strip", z.ZodTypeAny, {
12
- devAssets?: string[] | undefined;
13
+ themeAssets?: string[] | undefined;
13
14
  apiOnly?: boolean | undefined;
14
15
  enabled: boolean;
15
16
  uploads: "proxy" | "remote";
16
17
  plugins: "proxy" | "remote";
17
18
  theme: "proxy" | "remote" | "copy";
19
+ endpoints: Record<string, string>;
18
20
  }, {
19
- devAssets?: string[] | undefined;
21
+ themeAssets?: string[] | undefined;
20
22
  apiOnly?: boolean | undefined;
21
23
  enabled: boolean;
22
24
  uploads: "proxy" | "remote";
23
25
  plugins: "proxy" | "remote";
24
26
  theme: "proxy" | "remote" | "copy";
27
+ endpoints: Record<string, string>;
25
28
  }>>;
26
29
  devUI: z.ZodEnum<["disabled", "enabled"]>;
27
30
  }, "strip", z.ZodTypeAny, {
28
31
  $schema?: string | undefined;
29
32
  serverless?: {
30
- devAssets?: string[] | undefined;
33
+ themeAssets?: string[] | undefined;
31
34
  apiOnly?: boolean | undefined;
32
35
  enabled: boolean;
33
36
  uploads: "proxy" | "remote";
34
37
  plugins: "proxy" | "remote";
35
38
  theme: "proxy" | "remote" | "copy";
39
+ endpoints: Record<string, string>;
36
40
  } | undefined;
37
41
  devUI: "disabled" | "enabled";
38
42
  }, {
39
43
  $schema?: string | undefined;
40
44
  serverless?: {
41
- devAssets?: string[] | undefined;
45
+ themeAssets?: string[] | undefined;
42
46
  apiOnly?: boolean | undefined;
43
47
  enabled: boolean;
44
48
  uploads: "proxy" | "remote";
45
49
  plugins: "proxy" | "remote";
46
50
  theme: "proxy" | "remote" | "copy";
51
+ endpoints: Record<string, string>;
47
52
  } | undefined;
48
53
  devUI: "disabled" | "enabled";
49
54
  }>;
@@ -10,8 +10,9 @@ exports.EDConfigSchema = zod_1.z.object({
10
10
  uploads: zod_1.z.enum(["proxy", "remote"]),
11
11
  plugins: zod_1.z.enum(["proxy", "remote"]),
12
12
  theme: zod_1.z.enum(["proxy", "copy", "remote"]),
13
- devAssets: zod_1.z.array(zod_1.z.string()).optional(),
13
+ themeAssets: zod_1.z.array(zod_1.z.string()).optional(),
14
14
  apiOnly: zod_1.z.boolean().optional(),
15
+ endpoints: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
15
16
  })
16
17
  .optional(),
17
18
  devUI: zod_1.z.enum(["disabled", "enabled"]),
@@ -1,35 +1,38 @@
1
1
  export declare function getEDConfig(dir?: string): import("zod").SafeParseReturnType<{
2
2
  $schema?: string | undefined;
3
3
  serverless?: {
4
- devAssets?: string[] | undefined;
4
+ themeAssets?: string[] | undefined;
5
5
  apiOnly?: boolean | undefined;
6
6
  enabled: boolean;
7
7
  uploads: "proxy" | "remote";
8
8
  plugins: "proxy" | "remote";
9
9
  theme: "proxy" | "remote" | "copy";
10
+ endpoints: Record<string, string>;
10
11
  } | undefined;
11
12
  devUI: "disabled" | "enabled";
12
13
  }, {
13
14
  $schema?: string | undefined;
14
15
  serverless?: {
15
- devAssets?: string[] | undefined;
16
+ themeAssets?: string[] | undefined;
16
17
  apiOnly?: boolean | undefined;
17
18
  enabled: boolean;
18
19
  uploads: "proxy" | "remote";
19
20
  plugins: "proxy" | "remote";
20
21
  theme: "proxy" | "remote" | "copy";
22
+ endpoints: Record<string, string>;
21
23
  } | undefined;
22
24
  devUI: "disabled" | "enabled";
23
25
  }>;
24
26
  export declare function getEDConfigUnwrapped(dir?: string): {
25
27
  $schema?: string | undefined;
26
28
  serverless?: {
27
- devAssets?: string[] | undefined;
29
+ themeAssets?: string[] | undefined;
28
30
  apiOnly?: boolean | undefined;
29
31
  enabled: boolean;
30
32
  uploads: "proxy" | "remote";
31
33
  plugins: "proxy" | "remote";
32
34
  theme: "proxy" | "remote" | "copy";
35
+ endpoints: Record<string, string>;
33
36
  } | undefined;
34
37
  devUI: "disabled" | "enabled";
35
38
  };
@@ -1,23 +1,25 @@
1
1
  export declare function parseConfig(config: any): import("zod").SafeParseReturnType<{
2
2
  $schema?: string | undefined;
3
3
  serverless?: {
4
- devAssets?: string[] | undefined;
4
+ themeAssets?: string[] | undefined;
5
5
  apiOnly?: boolean | undefined;
6
6
  enabled: boolean;
7
7
  uploads: "proxy" | "remote";
8
8
  plugins: "proxy" | "remote";
9
9
  theme: "proxy" | "remote" | "copy";
10
+ endpoints: Record<string, string>;
10
11
  } | undefined;
11
12
  devUI: "disabled" | "enabled";
12
13
  }, {
13
14
  $schema?: string | undefined;
14
15
  serverless?: {
15
- devAssets?: string[] | undefined;
16
+ themeAssets?: string[] | undefined;
16
17
  apiOnly?: boolean | undefined;
17
18
  enabled: boolean;
18
19
  uploads: "proxy" | "remote";
19
20
  plugins: "proxy" | "remote";
20
21
  theme: "proxy" | "remote" | "copy";
22
+ endpoints: Record<string, string>;
21
23
  } | undefined;
22
24
  devUI: "disabled" | "enabled";
23
25
  }>;
@@ -34,7 +34,7 @@ function BreakpointIndicator() {
34
34
  var maxSize = parseFloat(_theme_1.breakpoints[_theme_1.breakpoints.length - 1].min);
35
35
  var _a = (0, usePersistState_1.usePersistState)("breakpoint_indicator", false), expanded = _a[0], setExpanded = _a[1];
36
36
  if (!expanded) {
37
- return ((0, jsx_runtime_1.jsx)(Simple, __assign({ onClick: function () { return setExpanded(true); }, css: colors[bpState.index % colors.length] }, { children: (0, jsx_runtime_1.jsxs)(Text_1.Text, __assign({ variant: "monoBold" }, { children: ["@", bpState.name] }), void 0) }), void 0));
37
+ return ((0, jsx_runtime_1.jsx)(Simple, __assign({ onClick: function () { return setExpanded(true); }, css: colors[bpState.index % colors.length] }, { children: (0, jsx_runtime_1.jsx)(Text_1.Text, __assign({ variant: "monoBold" }, { children: bpState.name }), void 0) }), void 0));
38
38
  }
39
39
  return ((0, jsx_runtime_1.jsx)(Expanded, __assign({ onClick: function () { return setExpanded(false); } }, { children: (0, jsx_runtime_1.jsxs)(Items, { children: [_theme_1.breakpoints.map(function (bp, index) {
40
40
  return ((0, jsx_runtime_1.jsx)(Item, __assign({ css: __assign(__assign({}, colors[index % colors.length]), { $$offset: parseFloat(bp.min) / maxSize, $$size: bp.max ? (parseFloat(bp.max) - parseFloat(bp.min)) / maxSize : 0 }), last: index === _theme_1.breakpoints.length - 1, active: bpState.name === bp.key }, { children: (0, jsx_runtime_1.jsx)(Tooltip_1.Tooltip, __assign({ label: "".concat(bp.min, " - ").concat(bp.max || "∞"), nowrap: true, offset: 3 }, { children: (0, jsx_runtime_1.jsx)(Text_1.Text, __assign({ variant: "monoTiny", align: "left" }, { children: bp.key }), void 0) }), void 0) }), index));
@@ -1,2 +1,2 @@
1
1
  /// <reference types="react" />
2
- export declare function DevUI(): JSX.Element;
2
+ export default function DevUI(): JSX.Element;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DevUI = void 0;
4
3
  var jsx_runtime_1 = require("react/jsx-runtime");
5
4
  var react_1 = require("react");
6
5
  var usePersistState_1 = require("../hooks/usePersistState");
@@ -17,7 +16,7 @@ function DevUI() {
17
16
  setPanel(panel);
18
17
  }, extras: (0, jsx_runtime_1.jsx)(BreakpointIndicator_1.BreakpointIndicator, {}, void 0) }, void 0), open && PanelComponent && ((0, jsx_runtime_1.jsx)(PanelPosition, { children: (0, jsx_runtime_1.jsx)(PanelComponent, {}, void 0) }, void 0))] }, void 0));
19
18
  }
20
- exports.DevUI = DevUI;
19
+ exports.default = DevUI;
21
20
  var PanelPosition = (0, theme_1.styled)("div", {
22
21
  position: "fixed",
23
22
  left: "0px",
@@ -1,5 +1,5 @@
1
1
  export declare const Text: import("@stitches/react/types/styled-component").StyledComponent<"div", {
2
- variant?: "mono" | "h1" | "monoBold" | "monoTiny" | undefined;
2
+ variant?: "h1" | "mono" | "monoBold" | "monoTiny" | undefined;
3
3
  align?: "left" | "right" | "center" | undefined;
4
4
  }, {}, import("@stitches/react/types/css-util").CSS<{}, {
5
5
  space: {
@@ -4,6 +4,9 @@ exports.usePersistState = void 0;
4
4
  var react_1 = require("react");
5
5
  var get = function (id, fallback) {
6
6
  if (fallback === void 0) { fallback = undefined; }
7
+ if (typeof localStorage === "undefined") {
8
+ return fallback;
9
+ }
7
10
  var value = localStorage.getItem("devui_" + id);
8
11
  if (value !== null) {
9
12
  try {
package/dev-ui/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { DevUI } from "./components/DevUI";
1
+ export * from "./components/DevUI";
package/dev-ui/index.js CHANGED
@@ -1,5 +1,13 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
2
12
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DevUI = void 0;
4
- var DevUI_1 = require("./components/DevUI");
5
- Object.defineProperty(exports, "DevUI", { enumerable: true, get: function () { return DevUI_1.DevUI; } });
13
+ __exportStar(require("./components/DevUI"), exports);
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function DevUILoader(): JSX.Element | null;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.DevUILoader = void 0;
23
+ var jsx_runtime_1 = require("react/jsx-runtime");
24
+ var react_1 = require("react");
25
+ var dynamic_1 = require("../dynamic");
26
+ var usePersistState_1 = require("./hooks/usePersistState");
27
+ var DevUI = (0, dynamic_1.dynamic)(function () { return Promise.resolve().then(function () { return __importStar(require("./components/DevUI")); }); }, { ssr: false });
28
+ function DevUILoader() {
29
+ var _a = (0, usePersistState_1.usePersistState)("enable_devui", process.dev || (typeof window !== "undefined" && window["ENABLE_DEV_UI"])), render = _a[0], setRender = _a[1];
30
+ (0, react_1.useEffect)(function () {
31
+ if (document.location.search.includes("activate-dev-ui")) {
32
+ setRender(true);
33
+ }
34
+ }, []);
35
+ if (render) {
36
+ return (0, jsx_runtime_1.jsx)(DevUI, {}, void 0);
37
+ }
38
+ else {
39
+ return null;
40
+ }
41
+ }
42
+ exports.DevUILoader = DevUILoader;
package/dev-ui/theme.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export declare const styled: <Type extends import("@stitches/react/types/util").Function | keyof JSX.IntrinsicElements | import("react").ComponentType<any>, Composers extends (string | import("@stitches/react/types/util").Function | import("react").ComponentType<any> | {
1
+ /// <reference types="react" />
2
+ export declare const styled: <Type extends import("react").ComponentType<any> | keyof JSX.IntrinsicElements | import("@stitches/react/types/util").Function, Composers extends (string | import("react").ComponentType<any> | import("@stitches/react/types/util").Function | {
2
3
  [name: string]: unknown;
3
4
  })[], CSS = import("@stitches/react/types/css-util").CSS<{}, {
4
5
  space: {
@@ -41,7 +42,7 @@ export declare const styled: <Type extends import("@stitches/react/types/util").
41
42
  transitions: {
42
43
  default: string;
43
44
  };
44
- }, import("@stitches/react/types/config").DefaultThemeMap, {}>>(type: Type, ...composers: { [K in keyof Composers]: Composers[K] extends string | import("@stitches/react/types/util").Function | import("react").ComponentType<any> ? Composers[K] : import("@stitches/react/types/stitches").RemoveIndex<CSS> & {
45
+ }, import("@stitches/react/types/config").DefaultThemeMap, {}>>(type: Type, ...composers: { [K in keyof Composers]: Composers[K] extends string | import("react").ComponentType<any> | import("@stitches/react/types/util").Function ? Composers[K] : import("@stitches/react/types/stitches").RemoveIndex<CSS> & {
45
46
  variants?: {
46
47
  [x: string]: {
47
48
  [x: string]: CSS;
@@ -93,7 +94,7 @@ export declare const styled: <Type extends import("@stitches/react/types/util").
93
94
  transitions: {
94
95
  default: string;
95
96
  };
96
- }, import("@stitches/react/types/config").DefaultThemeMap, {}>>, css: <Composers extends (string | import("@stitches/react/types/util").Function | import("react").ExoticComponent<any> | import("react").JSXElementConstructor<any> | {
97
+ }, import("@stitches/react/types/config").DefaultThemeMap, {}>>, css: <Composers extends (string | import("react").JSXElementConstructor<any> | import("react").ExoticComponent<any> | import("@stitches/react/types/util").Function | {
97
98
  [name: string]: unknown;
98
99
  })[], CSS = import("@stitches/react/types/css-util").CSS<{}, {
99
100
  space: {
@@ -136,7 +137,7 @@ export declare const styled: <Type extends import("@stitches/react/types/util").
136
137
  transitions: {
137
138
  default: string;
138
139
  };
139
- }, import("@stitches/react/types/config").DefaultThemeMap, {}>>(...composers: { [K in keyof Composers]: Composers[K] extends string | import("@stitches/react/types/util").Function | import("react").ExoticComponent<any> | import("react").JSXElementConstructor<any> ? Composers[K] : import("@stitches/react/types/stitches").RemoveIndex<CSS> & {
140
+ }, import("@stitches/react/types/config").DefaultThemeMap, {}>>(...composers: { [K in keyof Composers]: Composers[K] extends string | import("react").JSXElementConstructor<any> | import("react").ExoticComponent<any> | import("@stitches/react/types/util").Function ? Composers[K] : import("@stitches/react/types/stitches").RemoveIndex<CSS> & {
140
141
  variants?: {
141
142
  [x: string]: {
142
143
  [x: string]: CSS;
package/entry/Root.js CHANGED
@@ -34,11 +34,11 @@ var jsx_runtime_1 = require("react/jsx-runtime");
34
34
  // @ts-ignore
35
35
  var views_1 = __importStar(require("@manifest/views"));
36
36
  var react_1 = require("react");
37
- var dev_ui_1 = require("../dev-ui");
38
37
  var routing_1 = require("../routing");
38
+ var loader_1 = require("../dev-ui/loader");
39
39
  function Root() {
40
40
  var route = (0, routing_1.useRoute)();
41
- return ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [process.devUI ? (0, jsx_runtime_1.jsx)(dev_ui_1.DevUI, {}, void 0) : null, (0, jsx_runtime_1.jsx)(views_1.App, { children: (0, jsx_runtime_1.jsx)(routing_1.Switch, { children: Object.entries(views_1.default).map(function (_a) {
41
+ return ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [process.devUI && (0, jsx_runtime_1.jsx)(loader_1.DevUILoader, {}, void 0), (0, jsx_runtime_1.jsx)(views_1.App, { children: (0, jsx_runtime_1.jsx)(routing_1.Switch, { children: Object.entries(views_1.default).map(function (_a) {
42
42
  var _b, _c;
43
43
  var name = _a[0], Component = _a[1];
44
44
  return ((0, jsx_runtime_1.jsx)(routing_1.Route, __assign({ match: function (route) { var _a; return ((_a = route.data) === null || _a === void 0 ? void 0 : _a.view) === name; } }, { children: (0, jsx_runtime_1.jsx)(Component, __assign({}, (_c = (_b = route.data) === null || _b === void 0 ? void 0 : _b.viewData) === null || _c === void 0 ? void 0 : _c.data), void 0) }), name));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eddev",
3
- "version": "0.2.0-beta.13",
3
+ "version": "0.2.0-beta.17",
4
4
  "main": "./index.js",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -50,6 +50,10 @@
50
50
  "@soda/friendly-errors-webpack-plugin": "^1.8.0",
51
51
  "@stitches/core": "^1.2.6",
52
52
  "@stitches/react": "^1.2.6",
53
+ "@trpc/client": "^9.19.0",
54
+ "@trpc/next": "^9.19.0",
55
+ "@trpc/react": "^9.19.0",
56
+ "@trpc/server": "^9.19.0",
53
57
  "autoprefixer": "^10.3.4",
54
58
  "babel-loader": "^8.2.2",
55
59
  "chalk": "^4.1.2",
@@ -71,12 +75,14 @@
71
75
  "ink": "^3.2.0",
72
76
  "inquirer": "^8.1.2",
73
77
  "mini-css-extract-plugin": "^2.2.2",
78
+ "next": "^12.1.0",
74
79
  "next-transpile-modules": "^9.0.0",
75
80
  "postcss-loader": "^6.1.1",
76
81
  "qs": "^6.10.1",
77
82
  "react-error-overlay": "^6.0.9",
78
83
  "react-inspector": "^5.1.1",
79
84
  "react-merge-refs": "^1.1.0",
85
+ "react-query": "^3.34.16",
80
86
  "react-refresh": "^0.10.0",
81
87
  "rimraf": "^3.0.2",
82
88
  "swr": "^1.0.1",
@@ -93,6 +99,10 @@
93
99
  "zustand": "^3.5.10"
94
100
  },
95
101
  "peerDependencies": {
102
+ "@trpc/client": "^9.19.0",
103
+ "@trpc/next": "^9.19.0",
104
+ "@trpc/react": "^9.19.0",
105
+ "@trpc/server": "^9.19.0",
96
106
  "react": "^18.0.0-rc.0",
97
107
  "react-dom": "^18.0.0-rc.0"
98
108
  }
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  export declare function createRPCClient(): {
3
3
  Provider: ({ client, queryClient, children, isPrepass, ssrContext, }: {
4
- queryClient: QueryClient;
4
+ queryClient: import("react-query").QueryClient;
5
5
  client: import("@trpc/react").TRPCClient<import("@trpc/server").AnyRouter<any>>;
6
6
  children: import("react").ReactNode;
7
7
  isPrepass?: boolean | undefined;
@@ -9,25 +9,13 @@ export declare function createRPCClient(): {
9
9
  }) => JSX.Element;
10
10
  createClient: (opts: import("@trpc/react").CreateTRPCClientOptions<import("@trpc/server").AnyRouter<any>>) => import("@trpc/react").TRPCClient<import("@trpc/server").AnyRouter<any>>;
11
11
  useContext: () => import("@trpc/react/dist/declarations/src/internals/context").TRPCContextState<import("@trpc/server").AnyRouter<any>, unknown>;
12
- useQuery: <TPath extends string>(pathAndInput: [TPath, (null | undefined)?], opts?: import("@trpc/react").UseTRPCQueryOptions<TPath, unknown, any, import("@trpc/react").TRPCClientErrorLike<import("@trpc/server").AnyRouter<any>>> | undefined) => UseQueryResult<{ [TPath_1 in keyof TRouter["_def"]["queries"]]: {
13
- input: import("@trpc/server").inferProcedureInput<TRouter["_def"]["queries"][TPath_1]>;
14
- output: import("@trpc/server").ThenArg<ReturnType<TRouter["_def"]["queries"][TPath_1]["call"]>>;
15
- }; }[TPath_2]["output"], import("@trpc/react").TRPCClientErrorLike<TRouter>>;
16
- useMutation: <TPath_1 extends string>(path: TPath_1 | [TPath_1], opts?: import("@trpc/react").UseTRPCMutationOptions<unknown, import("@trpc/react").TRPCClientErrorLike<import("@trpc/server").AnyRouter<any>>, any> | undefined) => UseMutationResult<{ [TPath_3 in keyof TRouter["_def"]["mutations"]]: {
17
- input: import("@trpc/server").inferProcedureInput<TRouter["_def"]["mutations"][TPath_3]>;
18
- output: import("@trpc/server").ThenArg<ReturnType<TRouter["_def"]["mutations"][TPath_3]["call"]>>;
19
- }; }[TPath_1_1]["output"], import("@trpc/react").TRPCClientErrorLike<TRouter>, { [TPath_3 in keyof TRouter["_def"]["mutations"]]: {
20
- input: import("@trpc/server").inferProcedureInput<TRouter["_def"]["mutations"][TPath_3]>;
21
- output: import("@trpc/server").ThenArg<ReturnType<TRouter["_def"]["mutations"][TPath_3]["call"]>>;
22
- }; }[TPath_1_1]["input"], unknown>;
12
+ useQuery: <TPath extends string>(pathAndInput: [TPath, (null | undefined)?], opts?: import("@trpc/react").UseTRPCQueryOptions<TPath, unknown, any, import("@trpc/react").TRPCClientErrorLike<import("@trpc/server").AnyRouter<any>>> | undefined) => import("react-query").UseQueryResult<any, import("@trpc/react").TRPCClientErrorLike<import("@trpc/server").AnyRouter<any>>>;
13
+ useMutation: <TPath_1 extends string>(path: TPath_1 | [TPath_1], opts?: import("@trpc/react").UseTRPCMutationOptions<unknown, import("@trpc/react").TRPCClientErrorLike<import("@trpc/server").AnyRouter<any>>, any> | undefined) => import("react-query").UseMutationResult<any, import("@trpc/react").TRPCClientErrorLike<import("@trpc/server").AnyRouter<any>>, unknown, unknown>;
23
14
  useSubscription: <TPath_2 extends string, TOutput extends any>(pathAndInput: [TPath_2, (null | undefined)?], opts: {
24
15
  enabled?: boolean | undefined;
25
16
  onError?: ((err: import("@trpc/react").TRPCClientErrorLike<import("@trpc/server").AnyRouter<any>>) => void) | undefined;
26
17
  onNext: (data: TOutput) => void;
27
18
  }) => void;
28
- useDehydratedState: (client: import("@trpc/react").TRPCClient<import("@trpc/server").AnyRouter<any>>, trpcState: any) => any;
29
- useInfiniteQuery: <TPath_3 extends never>(pathAndInput: [path: TPath_3, input: Omit<unknown, "cursor">], opts?: import("@trpc/react").UseTRPCInfiniteQueryOptions<TPath_3, Omit<unknown, "cursor">, any, import("@trpc/react").TRPCClientErrorLike<import("@trpc/server").AnyRouter<any>>> | undefined) => UseInfiniteQueryResult<{ [TPath_1 in keyof TRouter["_def"]["queries"]]: {
30
- input: import("@trpc/server").inferProcedureInput<TRouter["_def"]["queries"][TPath_1]>;
31
- output: import("@trpc/server").ThenArg<ReturnType<TRouter["_def"]["queries"][TPath_1]["call"]>>;
32
- }; }[TPath_3_1]["output"], import("@trpc/react").TRPCClientErrorLike<TRouter>>;
19
+ useDehydratedState: (client: import("@trpc/react").TRPCClient<import("@trpc/server").AnyRouter<any>>, trpcState: import("react-query").DehydratedState | undefined) => import("react-query").DehydratedState | undefined;
20
+ useInfiniteQuery: <TPath_3 extends never>(pathAndInput: [path: TPath_3, input: Omit<unknown, "cursor">], opts?: import("@trpc/react").UseTRPCInfiniteQueryOptions<TPath_3, Omit<unknown, "cursor">, any, import("@trpc/react").TRPCClientErrorLike<import("@trpc/server").AnyRouter<any>>> | undefined) => import("react-query").UseInfiniteQueryResult<any, import("@trpc/react").TRPCClientErrorLike<import("@trpc/server").AnyRouter<any>>>;
33
21
  };
@@ -0,0 +1,44 @@
1
+ import { ParsedRouteTags } from "eddev/routing/remoteProps"
2
+ import Head from "next/head"
3
+ import { Fragment } from "react"
4
+
5
+ type Props = ParsedRouteTags
6
+
7
+ export function PageMeta(props: Props) {
8
+ console.log("Meta", props)
9
+ return (
10
+ <Head>
11
+ {props.title?.map((tag, i) => (
12
+ <title key={"title" + i}>{tag.__code}</title>
13
+ ))}
14
+ {props.style?.map((tag, i) => {
15
+ return (
16
+ <style
17
+ key={"style" + i}
18
+ className={tag["class"]}
19
+ type={tag.type}
20
+ id={tag.id}
21
+ dangerouslySetInnerHTML={{ __html: tag.__code }}
22
+ />
23
+ )
24
+ })}
25
+ {props.script?.map((tag, i) => {
26
+ return (
27
+ <script
28
+ key={"script" + i}
29
+ className={tag["class"]}
30
+ type={tag.type}
31
+ id={tag.id}
32
+ dangerouslySetInnerHTML={{ __html: tag.__code }}
33
+ />
34
+ )
35
+ })}
36
+ {props.meta?.map((tag, i) => {
37
+ return <meta key={"meta" + i} {...tag} />
38
+ })}
39
+ {props.link?.map((tag, i) => {
40
+ return <link key={"link" + i} {...tag} />
41
+ })}
42
+ </Head>
43
+ )
44
+ }
@@ -1,18 +1,25 @@
1
1
  import config from "./ed-config"
2
+ import { fetchWP } from "./fetch-wp"
2
3
 
3
4
  const settings = config.serverless
4
5
 
5
6
  export async function fetchWordpressProps(pathname: string) {
7
+ // Determine the URL for fetching
6
8
  const origin = (process.env.SITE_URL as string).replace(/\/$/, "")
7
9
  pathname = pathname.replace(/(^\/|\/$)/g, "")
8
10
  const propsURL = origin + ("/" + pathname + "/?_props=all").replace(/\/+/, "/")
9
- console.log("Fetching", propsURL)
10
- let response = await fetch(propsURL)
11
+
12
+ console.log("Fetching props", propsURL)
13
+
14
+ // Make the request
15
+ let response = await fetchWP(propsURL, {})
16
+
17
+ // Convert to text, rather than JSON — so we can do find-and-replace
11
18
  let text = await response.text()
12
19
 
13
20
  // Convert absolute site URL details to relative paths
14
21
  text = text.replace(new RegExp(origin.replace(/(http|https)/, `https?`) + "([a-z0-9-_./]+)", "g"), (url) => {
15
- const path = url.replace(/https?:\/\/[a-z0-9\-\_\.]+/, "")
22
+ const path = url.replace(/https?:\/\/[^\/]+/, "")
16
23
  if (path.startsWith("/wp-content/uploads/")) {
17
24
  if (settings?.uploads === "proxy") {
18
25
  return path
@@ -0,0 +1,16 @@
1
+ import { Agent } from "https"
2
+
3
+ // Used to allow self-signed certificates
4
+ const agent = new Agent({
5
+ rejectUnauthorized: false,
6
+ })
7
+
8
+ export const fetchWP: typeof fetch = async (url, opts) => {
9
+ // TODO — basic auth via env variable
10
+ // https://stackoverflow.com/questions/43842793/basic-authentication-with-fetch
11
+ return fetch(url, {
12
+ ...opts,
13
+ // @ts-ignore
14
+ agent: url.includes("https") ? agent : undefined,
15
+ })
16
+ }
@@ -4,6 +4,7 @@ declare global {
4
4
  browser: boolean
5
5
  serverless: boolean
6
6
  dev: boolean
7
+ devUI: boolean
7
8
  }
8
9
  }
9
10
  }
@@ -55,6 +55,8 @@ module.exports = (() => {
55
55
 
56
56
  define.definitions["process.env.themePath"] = JSON.stringify(themePath)
57
57
  define.definitions["process.themePath"] = JSON.stringify(themePath)
58
+ define.definitions["process.devUI"] = settings.devUI === "enabled"
59
+ define.definitions["process.serverlessEndpoint"] = JSON.stringify("/")
58
60
  // config.plugins.push(
59
61
  // new DefinePlugin({
60
62
  // "process.serverless": "true",
@@ -5,6 +5,8 @@ import { NextRouter } from "eddev/components/NextRouter"
5
5
  import { ServerlessAppDataProvider } from "eddev/utils/serverlessAppContext"
6
6
  import { useMemo } from "react"
7
7
  import { useRouter } from "next/router"
8
+ import { DevUILoader } from "eddev/dev-ui/loader"
9
+ import { PageMeta } from "../_utils/PageMeta"
8
10
 
9
11
  function MyApp({ Component, pageProps }: AppProps) {
10
12
  if (!pageProps.appData) return <div />
@@ -19,9 +21,14 @@ function MyApp({ Component, pageProps }: AppProps) {
19
21
 
20
22
  const View = manifest[pageProps.view]
21
23
 
24
+ // console.log("PAGE", pageProps)
25
+
22
26
  return (
23
27
  <ServerlessAppDataProvider value={appData}>
24
28
  <NextRouter data={pageProps} path={route.pathname}>
29
+ {pageProps?.meta?.head && <PageMeta {...pageProps?.meta?.head} />}
30
+ {pageProps?.meta?.footer && <PageMeta {...pageProps?.meta?.footer} />}
31
+ {process.devUI && <DevUILoader />}
25
32
  <App>
26
33
  <View {...viewProps} />
27
34
  </App>
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { DefaultThemeMap } from "@stitches/react";
2
3
  import { ConfigType } from "@stitches/core/types/config";
3
4
  import { Properties as CSS } from "csstype";
@@ -656,7 +657,7 @@ export declare function createStitches<Prefix extends string = "", Media extends
656
657
  } & { [Scale_4 in keyof (Theme & { [Scale_1 in keyof Responsive]: { [T_1 in keyof Responsive[Scale_1]]: string; }; })]: { [Token_2 in keyof (Theme & { [Scale_1 in keyof Responsive]: { [T_1 in keyof Responsive[Scale_1]]: string; }; })[Scale_4]]: import("@stitches/react/types/theme").Token<Extract<Token_2, string | number>, string, Extract<Scale_4, string | void>, "">; }; };
657
658
  reset: () => void;
658
659
  getCssText: () => string;
659
- css: <Composers extends (string | import("@stitches/react/types/util").Function | import("react").ExoticComponent<any> | import("react").JSXElementConstructor<any> | {
660
+ css: <Composers extends (string | import("react").JSXElementConstructor<any> | import("react").ExoticComponent<any> | import("@stitches/react/types/util").Function | {
660
661
  [name: string]: unknown;
661
662
  })[], CSS_1 = import("@stitches/react/types/css-util").CSS<{
662
663
  initial: "";
@@ -779,7 +780,7 @@ export declare function createStitches<Prefix extends string = "", Media extends
779
780
  gridColumn: string;
780
781
  "--grid-columns": number;
781
782
  };
782
- }>>(...composers: { [K_1 in keyof Composers]: Composers[K_1] extends string | import("@stitches/react/types/util").Function | import("react").ExoticComponent<any> | import("react").JSXElementConstructor<any> ? Composers[K_1] : import("@stitches/react/types/stitches").RemoveIndex<CSS_1> & {
783
+ }>>(...composers: { [K_1 in keyof Composers]: Composers[K_1] extends string | import("react").JSXElementConstructor<any> | import("react").ExoticComponent<any> | import("@stitches/react/types/util").Function ? Composers[K_1] : import("@stitches/react/types/stitches").RemoveIndex<CSS_1> & {
783
784
  variants?: {
784
785
  [x: string]: {
785
786
  [x: string]: CSS_1;
@@ -793,7 +794,7 @@ export declare function createStitches<Prefix extends string = "", Media extends
793
794
  } & CSS_1 & { [K2 in keyof Composers[K_1]]: K2 extends "compoundVariants" | "defaultVariants" | "variants" ? unknown : K2 extends keyof CSS_1 ? CSS_1[K2] : unknown; }; }) => import("@stitches/react/types/styled-component").CssComponent<import("@stitches/react/types/styled-component").StyledComponentType<Composers>, import("@stitches/react/types/styled-component").StyledComponentProps<Composers>, {
794
795
  initial: "";
795
796
  } & Media, CSS_1>;
796
- styled: <Type extends import("@stitches/react/types/util").Function | keyof JSX.IntrinsicElements | import("react").ComponentType<any>, Composers_1 extends (string | import("@stitches/react/types/util").Function | import("react").ComponentType<any> | {
797
+ styled: <Type extends import("react").ComponentType<any> | keyof JSX.IntrinsicElements | import("@stitches/react/types/util").Function, Composers_1 extends (string | import("react").ComponentType<any> | import("@stitches/react/types/util").Function | {
797
798
  [name: string]: unknown;
798
799
  })[], CSS_2 = import("@stitches/react/types/css-util").CSS<{
799
800
  initial: "";
@@ -916,7 +917,7 @@ export declare function createStitches<Prefix extends string = "", Media extends
916
917
  gridColumn: string;
917
918
  "--grid-columns": number;
918
919
  };
919
- }>>(type: Type, ...composers: { [K_2 in keyof Composers_1]: Composers_1[K_2] extends string | import("@stitches/react/types/util").Function | import("react").ComponentType<any> ? Composers_1[K_2] : import("@stitches/react/types/stitches").RemoveIndex<CSS_2> & {
920
+ }>>(type: Type, ...composers: { [K_2 in keyof Composers_1]: Composers_1[K_2] extends string | import("react").ComponentType<any> | import("@stitches/react/types/util").Function ? Composers_1[K_2] : import("@stitches/react/types/stitches").RemoveIndex<CSS_2> & {
920
921
  variants?: {
921
922
  [x: string]: {
922
923
  [x: string]: CSS_2;
@@ -0,0 +1 @@
1
+ export declare function updateEnvFile(data: Record<string, string | number>, directory?: string): Promise<void>;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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 (_) 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
+ exports.updateEnvFile = void 0;
40
+ var fs_1 = require("fs");
41
+ var promises_1 = require("fs/promises");
42
+ var path_1 = require("path");
43
+ function updateEnvFile(data, directory) {
44
+ if (directory === void 0) { directory = process.cwd(); }
45
+ return __awaiter(this, void 0, void 0, function () {
46
+ var path, contents, lines, key;
47
+ return __generator(this, function (_a) {
48
+ switch (_a.label) {
49
+ case 0:
50
+ path = (0, path_1.join)(directory, ".env");
51
+ if (!(0, fs_1.existsSync)(path)) return [3 /*break*/, 3];
52
+ return [4 /*yield*/, (0, promises_1.readFile)(path, "utf8")];
53
+ case 1:
54
+ contents = (_a.sent()).toString();
55
+ lines = contents.split(/\n/g);
56
+ lines = lines.filter(function (line) {
57
+ for (var key in data) {
58
+ if (line.startsWith("".concat(key, "="))) {
59
+ return false;
60
+ }
61
+ }
62
+ return true;
63
+ });
64
+ for (key in data) {
65
+ lines.push("".concat(key, "=").concat(data[key]));
66
+ }
67
+ return [4 /*yield*/, (0, promises_1.writeFile)(path, lines.join("\n"))];
68
+ case 2:
69
+ _a.sent();
70
+ _a.label = 3;
71
+ case 3: return [2 /*return*/];
72
+ }
73
+ });
74
+ });
75
+ }
76
+ exports.updateEnvFile = updateEnvFile;
@@ -1,6 +0,0 @@
1
- import { ReactNode } from "react";
2
- declare type Props = {
3
- renderBreakpoint: (breakpoint: string, index: number) => ReactNode;
4
- };
5
- export declare function BreakpointList(props: Props): JSX.Element;
6
- export {};
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.BreakpointList = void 0;
13
- var jsx_runtime_1 = require("react/jsx-runtime");
14
- // @ts-ignore
15
- var _theme_1 = require("@theme");
16
- var theme_1 = require("../theme");
17
- function BreakpointList(props) {
18
- var breakpoints = __spreadArray(["initial"], _theme_1.originalConfig.breakpoints, true);
19
- return ((0, jsx_runtime_1.jsx)(Row, { children: breakpoints.map(function (breakpoint, index) {
20
- return (0, jsx_runtime_1.jsx)(Cell, { children: props.renderBreakpoint(breakpoint, index) }, void 0);
21
- }) }, void 0));
22
- }
23
- exports.BreakpointList = BreakpointList;
24
- var Row = (0, theme_1.styled)("div", {
25
- display: "flex",
26
- });
27
- var Cell = (0, theme_1.styled)("div", {
28
- flex: "1 1 auto",
29
- width: "100px",
30
- display: "flex",
31
- alignItems: "center",
32
- justifyContent: "center",
33
- borderLeft: "1px solid $colors$bgHoverLight",
34
- borderBottom: "1px solid $colors$bgHoverLight",
35
- "&:hover": {
36
- // backgroundColor: "$bgHoverLight",
37
- },
38
- });
@@ -1,15 +0,0 @@
1
- /// <reference types="react" />
2
- import { BreakpointArray, ResponsiveAtomCalc } from "../../style";
3
- declare type Props = {
4
- editableRange?: boolean;
5
- editableValues?: boolean;
6
- showBreakpointName?: boolean;
7
- showValues?: boolean;
8
- showRange?: boolean;
9
- data: ResponsiveAtomCalc;
10
- breakpoints: BreakpointArray;
11
- };
12
- export declare function ResponsiveScaleEditor(props: Props): JSX.Element;
13
- export declare const RESPONSIVE_COLUMN_WIDTH = "100px";
14
- export declare const RESPONSIVE_ROW_HEIGHT = "25px";
15
- export {};
@@ -1,51 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.RESPONSIVE_ROW_HEIGHT = exports.RESPONSIVE_COLUMN_WIDTH = exports.ResponsiveScaleEditor = void 0;
15
- var jsx_runtime_1 = require("react/jsx-runtime");
16
- var theme_1 = require("../theme");
17
- var NumberField_1 = require("./atoms/NumberField");
18
- var ResponsiveLerpControl_1 = require("./ResponsiveLerpControl");
19
- var Text_1 = require("./atoms/Text");
20
- var ToggleButton_1 = require("./atoms/ToggleButton");
21
- function ResponsiveScaleEditor(props) {
22
- return ((0, jsx_runtime_1.jsxs)(Wrapper, __assign({ css: { $$total: props.data.length } }, { children: [props.showBreakpointName && ((0, jsx_runtime_1.jsx)(Row, { children: props.data.map(function (item, i) {
23
- return ((0, jsx_runtime_1.jsx)(Col, __assign({ css: { textAlign: "center" } }, { children: (0, jsx_runtime_1.jsx)(ToggleButton_1.ToggleButton, { checked: item.defined, onChange: function (checked) { }, label: (0, jsx_runtime_1.jsx)(Text_1.Text, __assign({ as: "span", variant: "monoBold" }, { children: item.breakpoint }), void 0) }, void 0) }), void 0));
24
- }) }, void 0)), props.showRange && (0, jsx_runtime_1.jsx)(ResponsiveLerpControl_1.ResponsiveLerpControl, { data: props.data }, void 0), props.showValues && ((0, jsx_runtime_1.jsx)(Row, { children: props.data.map(function (item, i) {
25
- return ((0, jsx_runtime_1.jsx)(Col, { children: (0, jsx_runtime_1.jsx)(Start, { children: item.type === "px" ? (0, jsx_runtime_1.jsx)(NumberField_1.NumberField, { suffix: "px", value: item.value, onChange: function () { } }, void 0) : null }, void 0) }, void 0));
26
- }) }, void 0))] }), void 0));
27
- }
28
- exports.ResponsiveScaleEditor = ResponsiveScaleEditor;
29
- exports.RESPONSIVE_COLUMN_WIDTH = "100px";
30
- exports.RESPONSIVE_ROW_HEIGHT = "25px";
31
- var Wrapper = (0, theme_1.styled)("div", {
32
- position: "relative",
33
- width: "calc(".concat(exports.RESPONSIVE_COLUMN_WIDTH, " * $$total)"),
34
- });
35
- var Row = (0, theme_1.styled)("div", {
36
- display: "flex",
37
- });
38
- var Col = (0, theme_1.styled)("div", {
39
- position: "relative",
40
- width: exports.RESPONSIVE_COLUMN_WIDTH,
41
- height: exports.RESPONSIVE_ROW_HEIGHT,
42
- boxSizing: "border-box",
43
- borderLeft: "1px solid $colors$bgHover",
44
- display: "flex",
45
- alignItems: "center",
46
- justifyContent: "center",
47
- });
48
- var Start = (0, theme_1.styled)("div", {
49
- position: "absolute",
50
- left: 2,
51
- });