eddev 0.2.0-beta.5 → 0.2.0-beta.52

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 (137) 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/get-webpack-config.js +26 -11
  6. package/build/manifests/manifest-views.js +1 -1
  7. package/build/reporter.js +0 -109
  8. package/build/serverless/create-next-app.d.ts +2 -0
  9. package/build/serverless/create-next-app.js +326 -86
  10. package/build/state/serverless-state.d.ts +26 -0
  11. package/build/state/serverless-state.js +2 -0
  12. package/build/workers/codegen-worker-script.js +33 -0
  13. package/build/workers/serverless-worker-dev-script.d.ts +1 -0
  14. package/build/workers/serverless-worker-dev-script.js +21 -0
  15. package/cli/build.dev.js +38 -7
  16. package/cli/build.prod.js +13 -1
  17. package/cli/cli.js +26 -18
  18. package/cli/display/components/DevCLIDisplay.d.ts +3 -0
  19. package/cli/display/components/DevCLIDisplay.js +20 -1
  20. package/cli/display/components/ServerlessDisplay.d.ts +9 -0
  21. package/cli/display/components/ServerlessDisplay.js +68 -0
  22. package/components/NextRouter.js +3 -2
  23. package/config/config-schema.d.ts +55 -0
  24. package/config/config-schema.js +19 -0
  25. package/config/create-schema-file.d.ts +1 -0
  26. package/config/create-schema-file.js +20 -0
  27. package/config/get-config.d.ts +39 -0
  28. package/config/get-config.js +32 -0
  29. package/config/index.d.ts +2 -0
  30. package/config/index.js +14 -0
  31. package/config/parse-config.d.ts +25 -0
  32. package/config/parse-config.js +8 -0
  33. package/config/print-zod-errors.d.ts +2 -0
  34. package/config/print-zod-errors.js +14 -0
  35. package/dev-ui/components/BreakpointColumnHeader.d.ts +11 -0
  36. package/dev-ui/components/BreakpointColumnHeader.js +47 -0
  37. package/dev-ui/components/BreakpointIndicator.d.ts +2 -0
  38. package/dev-ui/components/BreakpointIndicator.js +138 -0
  39. package/dev-ui/components/DevUI.d.ts +2 -0
  40. package/dev-ui/components/DevUI.js +28 -0
  41. package/dev-ui/components/Launcher.d.ts +98 -0
  42. package/dev-ui/components/Launcher.js +94 -0
  43. package/dev-ui/components/PanelWrapper.d.ts +8 -0
  44. package/dev-ui/components/PanelWrapper.js +37 -0
  45. package/dev-ui/components/ResponsiveLerpControl.d.ts +8 -0
  46. package/dev-ui/components/ResponsiveLerpControl.js +177 -0
  47. package/dev-ui/components/ResponsiveScaleEditor.d.ts +26 -0
  48. package/dev-ui/components/ResponsiveScaleEditor.js +233 -0
  49. package/dev-ui/components/atoms/Button.d.ts +47 -0
  50. package/dev-ui/components/atoms/Button.js +67 -0
  51. package/dev-ui/components/atoms/Dropdown.d.ts +13 -0
  52. package/dev-ui/components/atoms/Dropdown.js +50 -0
  53. package/dev-ui/components/atoms/NumberField.d.ts +12 -0
  54. package/dev-ui/components/atoms/NumberField.js +111 -0
  55. package/dev-ui/components/atoms/Spacer.d.ts +42 -0
  56. package/dev-ui/components/atoms/Spacer.js +8 -0
  57. package/dev-ui/components/atoms/Text.d.ts +45 -0
  58. package/dev-ui/components/atoms/Text.js +39 -0
  59. package/dev-ui/components/atoms/ToggleButton.d.ts +8 -0
  60. package/dev-ui/components/atoms/ToggleButton.js +41 -0
  61. package/dev-ui/components/atoms/Tooltip.d.ts +9 -0
  62. package/dev-ui/components/atoms/Tooltip.js +66 -0
  63. package/dev-ui/components/panels/PageDataDebugger.d.ts +2 -0
  64. package/dev-ui/components/panels/PageDataDebugger.js +30 -0
  65. package/dev-ui/components/panels/SpacingEditor.d.ts +2 -0
  66. package/dev-ui/components/panels/SpacingEditor.js +88 -0
  67. package/dev-ui/components/panels/TypographyEditor.d.ts +2 -0
  68. package/dev-ui/components/panels/TypographyEditor.js +88 -0
  69. package/dev-ui/hooks/useBreakpoint.d.ts +11 -0
  70. package/dev-ui/hooks/useBreakpoint.js +59 -0
  71. package/dev-ui/hooks/usePersistState.d.ts +1 -0
  72. package/dev-ui/hooks/usePersistState.js +36 -0
  73. package/dev-ui/hooks/useStylesheet.d.ts +4 -0
  74. package/dev-ui/hooks/useStylesheet.js +31 -0
  75. package/dev-ui/icons.d.ts +15 -0
  76. package/dev-ui/icons.js +29 -0
  77. package/dev-ui/index.d.ts +1 -0
  78. package/dev-ui/index.js +13 -0
  79. package/dev-ui/loader.d.ts +2 -0
  80. package/dev-ui/loader.js +42 -0
  81. package/dev-ui/panels.d.ts +11 -0
  82. package/dev-ui/panels.js +33 -0
  83. package/dev-ui/theme.d.ts +151 -0
  84. package/dev-ui/theme.js +50 -0
  85. package/entry/Root.d.ts +3 -1
  86. package/entry/Root.js +18 -6
  87. package/hooks/index.d.ts +1 -0
  88. package/hooks/index.js +1 -0
  89. package/hooks/rpc-client.d.ts +3 -0
  90. package/hooks/rpc-client.js +15 -0
  91. package/hooks/useAppData.js +0 -1
  92. package/hooks/useRPC.d.ts +32 -0
  93. package/hooks/useRPC.js +18 -0
  94. package/package.json +19 -8
  95. package/routing/routing.js +1 -1
  96. package/serverless/create-rpc-client.d.ts +20 -0
  97. package/serverless/create-rpc-client.js +20 -0
  98. package/serverless/define-api.d.ts +2 -0
  99. package/serverless/define-api.js +66 -0
  100. package/serverless/define-rpc-router.d.ts +6 -0
  101. package/serverless/define-rpc-router.js +35 -0
  102. package/serverless/error-codes.d.ts +2 -0
  103. package/serverless/error-codes.js +14 -0
  104. package/serverless/index.d.ts +5 -0
  105. package/serverless/index.js +18 -0
  106. package/serverless/rpc-client.d.ts +3 -0
  107. package/serverless/rpc-client.js +15 -0
  108. package/serverless/rpc-provider.d.ts +1 -0
  109. package/serverless/rpc-provider.js +5 -0
  110. package/serverless-template/_utils/PageMeta.tsx +44 -0
  111. package/serverless-template/_utils/ed-config.ts +5 -0
  112. package/serverless-template/_utils/fetch-wordpress-props.ts +40 -8
  113. package/serverless-template/_utils/fetch-wp.ts +16 -0
  114. package/serverless-template/global.d.ts +7 -1
  115. package/serverless-template/next.config.js +73 -53
  116. package/serverless-template/package.json +5 -3
  117. package/serverless-template/pages/404.tsx +12 -0
  118. package/serverless-template/pages/[...slug].tsx +7 -2
  119. package/serverless-template/pages/_app.tsx +32 -12
  120. package/serverless-template/pages/_document.tsx +19 -0
  121. package/serverless-template/pages/api/rest/{[...method].ts → [method].ts} +4 -2
  122. package/serverless-template/pages/api/trpc/[...trpc].ts +26 -0
  123. package/serverless-template/pages/index.tsx +2 -2
  124. package/style/createStitches.d.ts +71 -1
  125. package/style/createStitches.js +151 -45
  126. package/utils/getRepoName.d.ts +2 -2
  127. package/utils/getRepoName.js +14 -52
  128. package/utils/updateEnvFile.d.ts +1 -0
  129. package/utils/updateEnvFile.js +76 -0
  130. package/cli/prepare-next.d.ts +0 -0
  131. package/cli/prepare-next.js +0 -1
  132. package/entry/entry.serverless.dev.d.ts +0 -0
  133. package/entry/entry.serverless.dev.js +0 -2
  134. package/fields/ImageWell.d.ts +0 -8
  135. package/fields/ImageWell.js +0 -64
  136. package/serverless-template/package-lock.json +0 -641
  137. package/serverless-template/pages/api/hello.ts +0 -10
package/cli/build.dev.js CHANGED
@@ -48,18 +48,45 @@ 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");
58
+ var compare_versions_1 = __importDefault(require("compare-versions"));
59
+ var chalk_1 = __importDefault(require("chalk"));
51
60
  function devCommand(opts) {
61
+ var _a;
52
62
  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)()];
63
+ var version, requiredVersion, configResult, config, themeName, enableFrontend, enableAdmin, enableCodegen, enableServerless, frontendObservable, adminObservable, codegenObservable, configChanged, serverlessObservable;
64
+ return __generator(this, function (_b) {
65
+ switch (_b.label) {
66
+ case 0:
67
+ version = require(path_1.default.join(__dirname, "../package.json")).version;
68
+ requiredVersion = require(path_1.default.join(process.cwd(), "package.json")).devDependencies.eddev;
69
+ if ((0, compare_versions_1.default)(version, requiredVersion) < 0) {
70
+ console.log(chalk_1.default.red("\uD83D\uDEA8 Incorrect 'eddev' version installed!\n\uD83D\uDEA8 Your package.json requires ".concat(chalk_1.default.yellow(requiredVersion), ", but you have ").concat(chalk_1.default.yellow(version), ".\n\uD83D\uDEA8 Do you need to run 'yarn'?")));
71
+ process.exit(1);
72
+ }
73
+ (0, create_schema_file_1.createConfigSchemaFile)(path_1.default.resolve(process.cwd(), ".ed.config.schema.json"));
74
+ (0, build_favicon_1.buildFavicon)().catch(function () { });
75
+ return [4 /*yield*/, (0, promptIfRepoNameIncorrect_1.promptIfRepoThemeMismatch)()];
57
76
  case 1:
58
- _a.sent();
77
+ _b.sent();
78
+ configResult = (0, get_config_1.getEDConfig)();
79
+ if (configResult.success === false) {
80
+ (0, print_zod_errors_1.printZodErrors)(configResult.error);
81
+ console.log("\nPlease fix the above config errors, and restart the dev command.");
82
+ return [2 /*return*/];
83
+ }
84
+ config = configResult.data;
59
85
  themeName = path_1.default.basename(process.cwd());
60
86
  enableFrontend = !opts.mode || opts.mode === "frontend";
61
87
  enableAdmin = !opts.mode || opts.mode === "admin";
62
88
  enableCodegen = !opts.mode || opts.mode === "codegen";
89
+ enableServerless = (_a = config.serverless) === null || _a === void 0 ? void 0 : _a.enabled;
63
90
  frontendObservable = enableFrontend
64
91
  ? (0, create_webpack_worker_1.createWebpackWorker)({
65
92
  title: "Frontend Bundle",
@@ -93,9 +120,13 @@ function devCommand(opts) {
93
120
  retainLog: opts.retainLog,
94
121
  })
95
122
  : undefined;
96
- // Set up a process which will regenerate schemas, and watch for changes
123
+ configChanged = new Observable_1.Observable(false);
124
+ (0, fs_extra_1.watchFile)((0, get_config_1.getEDConfigFile)(), {}, function () {
125
+ configChanged.update(true);
126
+ });
127
+ serverlessObservable = enableServerless ? (0, create_serverless_dev_worker_1.createServerlessWorker)() : undefined;
97
128
  // 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));
129
+ (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
130
  return [2 /*return*/];
100
131
  }
101
132
  });
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();
@@ -86,7 +91,14 @@ function prodCommand(opts) {
86
91
  compiler = _a.apply(void 0, [_b.concat([
87
92
  _c.sent()
88
93
  ])]);
89
- compiler.run(function () { });
94
+ compiler.run(function (err, stats) {
95
+ if (stats === null || stats === void 0 ? void 0 : stats.hasErrors()) {
96
+ process.exit(1);
97
+ }
98
+ if (err) {
99
+ process.exit(1);
100
+ }
101
+ });
90
102
  return [2 /*return*/];
91
103
  }
92
104
  });
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,
@@ -60,25 +59,34 @@ program
60
59
  program
61
60
  .command("build")
62
61
  .description("Build in production mode")
63
- .option("-s, --serverless", 'Build in "serverless" mode')
64
62
  .action(function (options) {
65
- (0, build_prod_1.prodCommand)({
66
- serverless: options.serverless,
67
- });
68
- });
69
- program
70
- .command("vercel-build")
71
- .description("Create and build a Next.js project in .serverless")
72
- .action(function (options) {
73
- (0, create_next_app_1.createNextApp)({
74
- baseDirectory: process.cwd(),
75
- dev: false,
76
- build: true,
77
- });
63
+ if (process.env.VERCEL) {
64
+ (0, create_next_app_1.createNextApp)({
65
+ baseDirectory: process.cwd(),
66
+ dev: false,
67
+ build: true,
68
+ });
69
+ }
70
+ else {
71
+ var prodCommand = require("./build.prod").prodCommand;
72
+ prodCommand({
73
+ serverless: options.serverless,
74
+ });
75
+ }
78
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
+ // })
79
87
  program
80
88
  .command("next")
81
- .description("Create a Next.js project in .serverless")
89
+ .description("Run the serverless app in standalone mode")
82
90
  .action(function (options) {
83
91
  (0, create_next_app_1.createNextApp)({
84
92
  baseDirectory: process.cwd(),
@@ -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 {};
@@ -14,10 +14,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.DevCLIDisplay = void 0;
15
15
  var jsx_runtime_1 = require("react/jsx-runtime");
16
16
  var ink_1 = require("ink");
17
+ var react_1 = require("react");
18
+ var useObservable_1 = require("../../../utils/useObservable");
17
19
  var BundleDisplay_1 = require("./BundleDisplay");
18
20
  var CodegenDisplay_1 = require("./CodegenDisplay");
19
21
  var Fullscreen_1 = require("./Fullscreen");
22
+ var ServerlessDisplay_1 = require("./ServerlessDisplay");
23
+ var MODE_LABELS = {
24
+ serverless: "Serverless Log",
25
+ bundles: "Build Log",
26
+ };
20
27
  function DevCLIDisplay(props) {
21
- return ((0, jsx_runtime_1.jsx)(Fullscreen_1.Fullscreen, { children: (0, jsx_runtime_1.jsxs)(ink_1.Box, __assign({ width: "100%", height: "100%", flexDirection: "column", minHeight: "100%" }, { children: [props.bundles.map(function (bundle, i) { return ((0, jsx_runtime_1.jsx)(BundleDisplay_1.BundleDisplay, { bundle: bundle }, i)); }), props.codegen && (0, jsx_runtime_1.jsx)(CodegenDisplay_1.CodegenDisplay, { codegen: props.codegen }, void 0)] }), void 0) }, void 0));
28
+ var _a = (0, react_1.useState)("bundles"), mode = _a[0], setMode = _a[1];
29
+ (0, ink_1.useInput)(function (ev, key) {
30
+ if (ev.charAt(0) === "z") {
31
+ if (props.serverless) {
32
+ setMode(function (mode) { return (mode === "bundles" ? "serverless" : "bundles"); });
33
+ }
34
+ }
35
+ else if (ev.charAt(0) === "c" || ev.charAt(0) === "q" || key.escape) {
36
+ process.exit(0);
37
+ }
38
+ });
39
+ var configChanged = (0, useObservable_1.useObservable)(props.configChanged);
40
+ return ((0, jsx_runtime_1.jsx)(Fullscreen_1.Fullscreen, { children: (0, jsx_runtime_1.jsxs)(ink_1.Box, __assign({ width: "100%", height: "100%", flexDirection: "column", minHeight: "100%" }, { children: [mode === "bundles" ? ((0, jsx_runtime_1.jsxs)(ink_1.Box, __assign({ width: "100%", flexGrow: 1, flexDirection: "column" }, { children: [props.bundles.map(function (bundle, i) { return ((0, jsx_runtime_1.jsx)(BundleDisplay_1.BundleDisplay, { bundle: bundle }, i)); }), props.codegen && (0, jsx_runtime_1.jsx)(CodegenDisplay_1.CodegenDisplay, { codegen: props.codegen }, void 0), props.serverless && (0, jsx_runtime_1.jsx)(ServerlessDisplay_1.ServerlessDisplay, { serverless: props.serverless }, void 0)] }), void 0)) : mode === "serverless" ? ((0, jsx_runtime_1.jsx)(ink_1.Box, __assign({ width: "100%", flexGrow: 1, flexDirection: "column" }, { children: (0, jsx_runtime_1.jsx)(ServerlessDisplay_1.ServerlessLog, { serverless: props.serverless }, void 0) }), void 0)) : null, configChanged && ((0, jsx_runtime_1.jsx)(ink_1.Box, __assign({ paddingX: 1, borderColor: "yellow", borderStyle: "round" }, { children: (0, jsx_runtime_1.jsxs)(ink_1.Text, __assign({ color: "yellow" }, { children: ["\uD83D\uDEA8 Change detected in ", (0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ color: "yellowBright" }, { children: "ed.config.json" }), void 0), " \u2014 Please restart", " ", (0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ color: "yellowBright" }, { children: "yarn dev" }), void 0)] }), void 0) }), void 0)), (0, jsx_runtime_1.jsxs)(ink_1.Box, __assign({ paddingX: 1, borderColor: "cyan", borderStyle: "round", flexDirection: "row", justifyContent: "space-between" }, { children: [(0, jsx_runtime_1.jsx)(ink_1.Box, { children: (0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ bold: true, color: "cyanBright" }, { children: MODE_LABELS[mode] }), void 0) }, void 0), (0, jsx_runtime_1.jsxs)(ink_1.Box, { children: [props.serverless && ((0, jsx_runtime_1.jsxs)(ink_1.Text, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ bold: true, color: "white" }, { children: "z" }), void 0), ": Toggle Serverless Log", " "] }, void 0)), (0, jsx_runtime_1.jsxs)(ink_1.Text, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ bold: true, color: "white" }, { children: "q" }), void 0), ": Quit"] }, void 0)] }, void 0)] }), void 0)] }), void 0) }, void 0));
22
41
  }
23
42
  exports.DevCLIDisplay = DevCLIDisplay;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { ServerlessState } from "../../../build/state/serverless-state";
3
+ import { Observable } from "../../../utils/Observable";
4
+ export declare function ServerlessDisplay(props: {
5
+ serverless: Observable<ServerlessState>;
6
+ }): JSX.Element;
7
+ export declare function ServerlessLog(props: {
8
+ serverless: Observable<ServerlessState>;
9
+ }): JSX.Element;
@@ -0,0 +1,68 @@
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.ServerlessLog = exports.ServerlessDisplay = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var ink_1 = require("ink");
17
+ var react_1 = require("react");
18
+ var useObservable_1 = require("../../../utils/useObservable");
19
+ var StatusIcon_1 = require("./StatusIcon");
20
+ var statusLabels = {
21
+ starting: "Starting",
22
+ compiling: "Compiling...",
23
+ error: "Error! See log for details.",
24
+ packaging: "Updating packages...",
25
+ preparing: "Preparing...",
26
+ success: "Success!",
27
+ waiting: "Waiting...",
28
+ };
29
+ function StatusLabel(props) {
30
+ var color = (0, react_1.useMemo)(function () {
31
+ if (props.status === "packaging" ||
32
+ props.status === "preparing" ||
33
+ props.status === "waiting" ||
34
+ props.status === "compiling") {
35
+ return "yellowBright";
36
+ }
37
+ else if (props.status === "error") {
38
+ return "redBright";
39
+ }
40
+ else if (props.status === "success") {
41
+ return "greenBright";
42
+ }
43
+ else {
44
+ return "whiteBright";
45
+ }
46
+ }, [props.status]);
47
+ var label = props.statusLabel || statusLabels[props.status];
48
+ if (props.duration) {
49
+ label += " (".concat(props.duration, "ms)");
50
+ }
51
+ return ((0, jsx_runtime_1.jsxs)(ink_1.Box, __assign({ paddingX: 1, width: "100%", flexGrow: 1, flexDirection: "row", justifyContent: "space-between" }, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ color: color }, { children: label }), void 0), props.url && (0, jsx_runtime_1.jsxs)(ink_1.Text, __assign({ color: "white" }, { children: ["\u2728 ", props.url] }), void 0)] }), void 0));
52
+ }
53
+ function ServerlessDisplay(props) {
54
+ var data = (0, useObservable_1.useObservable)(props.serverless);
55
+ return ((0, jsx_runtime_1.jsx)(ink_1.Box, __assign({ width: "100%", flexDirection: "column" }, { children: (0, jsx_runtime_1.jsxs)(ink_1.Box, __assign({ width: "100%", paddingX: 1, borderStyle: "round", borderColor: data.status === "success" ? "green" : data.status === "error" ? "red" : "yellow", flexDirection: "row" }, { children: [(0, jsx_runtime_1.jsx)(ink_1.Box, __assign({ width: 2, flexGrow: 0, flexShrink: 0 }, { children: (0, jsx_runtime_1.jsx)(StatusIcon_1.StatusIcon, { icon: data.status === "success"
56
+ ? "tick"
57
+ : data.status === "preparing" || data.status === "packaging" || data.status === "compiling"
58
+ ? "loading"
59
+ : data.status === "error"
60
+ ? "error"
61
+ : "none" }, void 0) }), void 0), (0, jsx_runtime_1.jsx)(ink_1.Box, { children: (0, jsx_runtime_1.jsxs)(ink_1.Box, __assign({ flexDirection: "row" }, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ bold: true }, { children: data.title }), void 0), (0, jsx_runtime_1.jsx)(StatusLabel, { status: data.status, statusLabel: "", duration: data.status === "success" ? data.duration : undefined, url: data.url }, void 0)] }), void 0) }, void 0)] }), void 0) }), void 0));
62
+ }
63
+ exports.ServerlessDisplay = ServerlessDisplay;
64
+ function ServerlessLog(props) {
65
+ var log = (0, useObservable_1.useObservable)(props.serverless).log;
66
+ return (0, jsx_runtime_1.jsx)(ink_1.Text, { children: log }, void 0);
67
+ }
68
+ exports.ServerlessLog = ServerlessLog;
@@ -17,8 +17,9 @@ var routing_1 = require("../routing");
17
17
  var router_1 = require("next/router");
18
18
  function NextRouter(_a) {
19
19
  var children = _a.children, path = _a.path, data = _a.data;
20
- var route = (0, router_1.useRouter)();
21
- return ((0, jsx_runtime_1.jsx)(routing_1.RouterRoot, __assign({ url: path, data: data, onNavigateRequest: function (url) {
20
+ var nextRoute = (0, router_1.useRouter)();
21
+ var route = __assign(__assign({}, nextRoute), { pathname: nextRoute.asPath });
22
+ return ((0, jsx_runtime_1.jsx)(routing_1.RouterRoot, __assign({ url: nextRoute.asPath, data: data, onNavigateRequest: function (url) {
22
23
  route.push(url);
23
24
  // setPendingUrl({ popped: false, url })
24
25
  }, onPreload: function (url) {
@@ -0,0 +1,55 @@
1
+ import { z } from "zod";
2
+ export declare const EDConfigSchema: z.ZodObject<{
3
+ $schema: z.ZodOptional<z.ZodString>;
4
+ serverless: z.ZodOptional<z.ZodObject<{
5
+ enabled: z.ZodBoolean;
6
+ uploads: z.ZodEnum<["proxy", "remote"]>;
7
+ plugins: z.ZodEnum<["proxy", "remote"]>;
8
+ theme: z.ZodEnum<["proxy", "copy", "remote"]>;
9
+ themeAssets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10
+ apiOnly: z.ZodOptional<z.ZodBoolean>;
11
+ endpoints: z.ZodRecord<z.ZodString, z.ZodString>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ themeAssets?: string[] | undefined;
14
+ apiOnly?: boolean | undefined;
15
+ enabled: boolean;
16
+ uploads: "proxy" | "remote";
17
+ plugins: "proxy" | "remote";
18
+ theme: "copy" | "proxy" | "remote";
19
+ endpoints: Record<string, string>;
20
+ }, {
21
+ themeAssets?: string[] | undefined;
22
+ apiOnly?: boolean | undefined;
23
+ enabled: boolean;
24
+ uploads: "proxy" | "remote";
25
+ plugins: "proxy" | "remote";
26
+ theme: "copy" | "proxy" | "remote";
27
+ endpoints: Record<string, string>;
28
+ }>>;
29
+ devUI: z.ZodEnum<["disabled", "enabled"]>;
30
+ }, "strip", z.ZodTypeAny, {
31
+ $schema?: string | undefined;
32
+ serverless?: {
33
+ themeAssets?: string[] | undefined;
34
+ apiOnly?: boolean | undefined;
35
+ enabled: boolean;
36
+ uploads: "proxy" | "remote";
37
+ plugins: "proxy" | "remote";
38
+ theme: "copy" | "proxy" | "remote";
39
+ endpoints: Record<string, string>;
40
+ } | undefined;
41
+ devUI: "disabled" | "enabled";
42
+ }, {
43
+ $schema?: string | undefined;
44
+ serverless?: {
45
+ themeAssets?: string[] | undefined;
46
+ apiOnly?: boolean | undefined;
47
+ enabled: boolean;
48
+ uploads: "proxy" | "remote";
49
+ plugins: "proxy" | "remote";
50
+ theme: "copy" | "proxy" | "remote";
51
+ endpoints: Record<string, string>;
52
+ } | undefined;
53
+ devUI: "disabled" | "enabled";
54
+ }>;
55
+ export declare type EDConfig = z.infer<typeof EDConfigSchema>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EDConfigSchema = void 0;
4
+ var zod_1 = require("zod");
5
+ exports.EDConfigSchema = zod_1.z.object({
6
+ $schema: zod_1.z.string().optional(),
7
+ serverless: zod_1.z
8
+ .object({
9
+ enabled: zod_1.z.boolean(),
10
+ uploads: zod_1.z.enum(["proxy", "remote"]),
11
+ plugins: zod_1.z.enum(["proxy", "remote"]),
12
+ theme: zod_1.z.enum(["proxy", "copy", "remote"]),
13
+ themeAssets: zod_1.z.array(zod_1.z.string()).optional(),
14
+ apiOnly: zod_1.z.boolean().optional(),
15
+ endpoints: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
16
+ })
17
+ .optional(),
18
+ devUI: zod_1.z.enum(["disabled", "enabled"]),
19
+ });
@@ -0,0 +1 @@
1
+ export declare function createConfigSchemaFile(location: string): void;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createConfigSchemaFile = void 0;
7
+ var fs_1 = require("fs");
8
+ var zod_to_json_schema_1 = __importDefault(require("zod-to-json-schema"));
9
+ var config_schema_1 = require("./config-schema");
10
+ function createConfigSchemaFile(location) {
11
+ var schema = (0, zod_to_json_schema_1.default)(config_schema_1.EDConfigSchema);
12
+ var content = JSON.stringify(schema, null, 2);
13
+ if ((0, fs_1.existsSync)(location)) {
14
+ var existingContent = (0, fs_1.readFileSync)(location).toString();
15
+ if (existingContent === content)
16
+ return;
17
+ }
18
+ (0, fs_1.writeFileSync)(location, content);
19
+ }
20
+ exports.createConfigSchemaFile = createConfigSchemaFile;
@@ -0,0 +1,39 @@
1
+ export declare function getEDConfig(dir?: string): import("zod").SafeParseReturnType<{
2
+ $schema?: string | undefined;
3
+ serverless?: {
4
+ themeAssets?: string[] | undefined;
5
+ apiOnly?: boolean | undefined;
6
+ enabled: boolean;
7
+ uploads: "proxy" | "remote";
8
+ plugins: "proxy" | "remote";
9
+ theme: "copy" | "proxy" | "remote";
10
+ endpoints: Record<string, string>;
11
+ } | undefined;
12
+ devUI: "disabled" | "enabled";
13
+ }, {
14
+ $schema?: string | undefined;
15
+ serverless?: {
16
+ themeAssets?: string[] | undefined;
17
+ apiOnly?: boolean | undefined;
18
+ enabled: boolean;
19
+ uploads: "proxy" | "remote";
20
+ plugins: "proxy" | "remote";
21
+ theme: "copy" | "proxy" | "remote";
22
+ endpoints: Record<string, string>;
23
+ } | undefined;
24
+ devUI: "disabled" | "enabled";
25
+ }>;
26
+ export declare function getEDConfigUnwrapped(dir?: string): {
27
+ $schema?: string | undefined;
28
+ serverless?: {
29
+ themeAssets?: string[] | undefined;
30
+ apiOnly?: boolean | undefined;
31
+ enabled: boolean;
32
+ uploads: "proxy" | "remote";
33
+ plugins: "proxy" | "remote";
34
+ theme: "copy" | "proxy" | "remote";
35
+ endpoints: Record<string, string>;
36
+ } | undefined;
37
+ devUI: "disabled" | "enabled";
38
+ };
39
+ export declare function getEDConfigFile(dir?: string): string;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEDConfigFile = exports.getEDConfigUnwrapped = exports.getEDConfig = void 0;
4
+ var fs_1 = require("fs");
5
+ var path_1 = require("path");
6
+ var parse_config_1 = require("./parse-config");
7
+ function getEDConfig(dir) {
8
+ if (dir === void 0) { dir = process.cwd(); }
9
+ var configFile = getEDConfigFile(dir);
10
+ if (!(0, fs_1.existsSync)(configFile)) {
11
+ throw new Error("No config file found at ".concat(configFile));
12
+ }
13
+ var config = JSON.parse((0, fs_1.readFileSync)(configFile).toString());
14
+ return (0, parse_config_1.parseConfig)(config);
15
+ }
16
+ exports.getEDConfig = getEDConfig;
17
+ function getEDConfigUnwrapped(dir) {
18
+ if (dir === void 0) { dir = process.cwd(); }
19
+ var result = getEDConfig(dir);
20
+ if (result.success) {
21
+ return result.data;
22
+ }
23
+ else {
24
+ throw new Error(result.error.toString());
25
+ }
26
+ }
27
+ exports.getEDConfigUnwrapped = getEDConfigUnwrapped;
28
+ function getEDConfigFile(dir) {
29
+ if (dir === void 0) { dir = process.cwd(); }
30
+ return (0, path_1.join)(dir, "ed.config.json");
31
+ }
32
+ exports.getEDConfigFile = getEDConfigFile;
@@ -0,0 +1,2 @@
1
+ export * from "./config-schema";
2
+ export * from "./parse-config";
@@ -0,0 +1,14 @@
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
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./config-schema"), exports);
14
+ __exportStar(require("./parse-config"), exports);
@@ -0,0 +1,25 @@
1
+ export declare function parseConfig(config: any): import("zod").SafeParseReturnType<{
2
+ $schema?: string | undefined;
3
+ serverless?: {
4
+ themeAssets?: string[] | undefined;
5
+ apiOnly?: boolean | undefined;
6
+ enabled: boolean;
7
+ uploads: "proxy" | "remote";
8
+ plugins: "proxy" | "remote";
9
+ theme: "copy" | "proxy" | "remote";
10
+ endpoints: Record<string, string>;
11
+ } | undefined;
12
+ devUI: "disabled" | "enabled";
13
+ }, {
14
+ $schema?: string | undefined;
15
+ serverless?: {
16
+ themeAssets?: string[] | undefined;
17
+ apiOnly?: boolean | undefined;
18
+ enabled: boolean;
19
+ uploads: "proxy" | "remote";
20
+ plugins: "proxy" | "remote";
21
+ theme: "copy" | "proxy" | "remote";
22
+ endpoints: Record<string, string>;
23
+ } | undefined;
24
+ devUI: "disabled" | "enabled";
25
+ }>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseConfig = void 0;
4
+ var config_schema_1 = require("./config-schema");
5
+ function parseConfig(config) {
6
+ return config_schema_1.EDConfigSchema.safeParse(config);
7
+ }
8
+ exports.parseConfig = parseConfig;
@@ -0,0 +1,2 @@
1
+ import type { ZodError } from "zod";
2
+ export declare function printZodErrors(err: ZodError): void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.printZodErrors = void 0;
7
+ var chalk_1 = __importDefault(require("chalk"));
8
+ function printZodErrors(err) {
9
+ console.log(chalk_1.default.red("Error parsing ed.config.json:"));
10
+ err.issues.forEach(function (issue) {
11
+ console.log("- ".concat(issue.path.join("."), ": ").concat(issue.message));
12
+ });
13
+ }
14
+ exports.printZodErrors = printZodErrors;
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ lerpStart?: boolean;
4
+ lerps?: boolean;
5
+ name: string;
6
+ defined: boolean;
7
+ onLerpChange?(lerpStart: boolean): void;
8
+ onDefinedChange?(defined: boolean): void;
9
+ };
10
+ export declare function BreakpointColumnHeader(props: Props): JSX.Element;
11
+ export {};
@@ -0,0 +1,47 @@
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.BreakpointColumnHeader = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var icons_1 = require("../icons");
17
+ var theme_1 = require("../theme");
18
+ var Text_1 = require("./atoms/Text");
19
+ function BreakpointColumnHeader(props) {
20
+ return ((0, jsx_runtime_1.jsxs)(Wrapper, { children: [(0, jsx_runtime_1.jsx)(Text_1.Text, __assign({ align: "center", variant: "monoBold" }, { children: props.name }), void 0), (0, jsx_runtime_1.jsx)(ToggleButton, __assign({ onClick: function () { var _a; return (_a = props.onDefinedChange) === null || _a === void 0 ? void 0 : _a.call(props, !props.defined); } }, { children: props.defined ? icons_1.checkFilled : icons_1.checkEmpty }), void 0)] }, void 0));
21
+ }
22
+ exports.BreakpointColumnHeader = BreakpointColumnHeader;
23
+ var Wrapper = (0, theme_1.styled)("div", {
24
+ display: "flex",
25
+ width: "100%",
26
+ flexDirection: "column",
27
+ });
28
+ var ToggleButton = (0, theme_1.styled)("button", {
29
+ appearance: "none",
30
+ background: "transparent",
31
+ border: "0px",
32
+ padding: "3px",
33
+ height: "auto",
34
+ display: "flex",
35
+ alignItems: "center",
36
+ justifyContent: "center",
37
+ color: "inherit",
38
+ "&:hover": {
39
+ // backgroundColor: "$bgHover",
40
+ },
41
+ svg: {
42
+ fill: "$fg",
43
+ width: "14px",
44
+ height: "14px",
45
+ display: "block",
46
+ },
47
+ });
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function BreakpointIndicator(): JSX.Element;