eddev 0.2.0-beta.9 → 0.2.1

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 (120) 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 +11 -1
  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 +243 -47
  10. package/build/state/serverless-state.d.ts +26 -0
  11. package/{config/schema.js → build/state/serverless-state.js} +0 -0
  12. package/build/workers/codegen-worker-script.js +33 -0
  13. package/{config/schema.d.ts → build/workers/serverless-worker-dev-script.d.ts} +0 -0
  14. package/build/workers/serverless-worker-dev-script.js +21 -0
  15. package/cli/build.dev.js +34 -6
  16. package/cli/build.prod.js +13 -1
  17. package/cli/cli.js +32 -17
  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/cli/preinstall.d.ts +1 -0
  23. package/cli/preinstall.js +14 -0
  24. package/components/NextRouter.js +3 -2
  25. package/config/config-schema.d.ts +17 -9
  26. package/config/config-schema.js +3 -1
  27. package/config/get-config.d.ts +39 -0
  28. package/config/get-config.js +32 -0
  29. package/config/parse-config.d.ts +8 -4
  30. package/config/print-zod-errors.d.ts +2 -0
  31. package/config/print-zod-errors.js +14 -0
  32. package/dev-ui/components/BreakpointColumnHeader.d.ts +11 -0
  33. package/dev-ui/components/BreakpointColumnHeader.js +47 -0
  34. package/dev-ui/components/BreakpointIndicator.d.ts +2 -0
  35. package/dev-ui/components/BreakpointIndicator.js +138 -0
  36. package/dev-ui/components/DevUI.d.ts +2 -0
  37. package/dev-ui/components/DevUI.js +28 -0
  38. package/dev-ui/components/Launcher.d.ts +98 -0
  39. package/dev-ui/components/Launcher.js +94 -0
  40. package/dev-ui/components/PanelWrapper.d.ts +8 -0
  41. package/dev-ui/components/PanelWrapper.js +37 -0
  42. package/dev-ui/components/ResponsiveLerpControl.d.ts +8 -0
  43. package/dev-ui/components/ResponsiveLerpControl.js +177 -0
  44. package/dev-ui/components/ResponsiveScaleEditor.d.ts +26 -0
  45. package/dev-ui/components/ResponsiveScaleEditor.js +233 -0
  46. package/dev-ui/components/atoms/Button.d.ts +47 -0
  47. package/dev-ui/components/atoms/Button.js +67 -0
  48. package/dev-ui/components/atoms/Dropdown.d.ts +13 -0
  49. package/dev-ui/components/atoms/Dropdown.js +50 -0
  50. package/dev-ui/components/atoms/NumberField.d.ts +12 -0
  51. package/dev-ui/components/atoms/NumberField.js +111 -0
  52. package/dev-ui/components/atoms/Spacer.d.ts +42 -0
  53. package/dev-ui/components/atoms/Spacer.js +8 -0
  54. package/dev-ui/components/atoms/Text.d.ts +45 -0
  55. package/dev-ui/components/atoms/Text.js +39 -0
  56. package/dev-ui/components/atoms/ToggleButton.d.ts +8 -0
  57. package/dev-ui/components/atoms/ToggleButton.js +41 -0
  58. package/dev-ui/components/atoms/Tooltip.d.ts +9 -0
  59. package/dev-ui/components/atoms/Tooltip.js +66 -0
  60. package/dev-ui/components/panels/PageDataDebugger.d.ts +2 -0
  61. package/dev-ui/components/panels/PageDataDebugger.js +30 -0
  62. package/dev-ui/components/panels/SpacingEditor.d.ts +2 -0
  63. package/dev-ui/components/panels/SpacingEditor.js +88 -0
  64. package/dev-ui/components/panels/TypographyEditor.d.ts +2 -0
  65. package/dev-ui/components/panels/TypographyEditor.js +88 -0
  66. package/dev-ui/hooks/useBreakpoint.d.ts +11 -0
  67. package/dev-ui/hooks/useBreakpoint.js +59 -0
  68. package/dev-ui/hooks/usePersistState.d.ts +1 -0
  69. package/dev-ui/hooks/usePersistState.js +36 -0
  70. package/dev-ui/hooks/useStylesheet.d.ts +4 -0
  71. package/dev-ui/hooks/useStylesheet.js +31 -0
  72. package/dev-ui/icons.d.ts +15 -0
  73. package/dev-ui/icons.js +29 -0
  74. package/dev-ui/index.d.ts +1 -0
  75. package/dev-ui/index.js +13 -0
  76. package/dev-ui/loader.d.ts +2 -0
  77. package/dev-ui/loader.js +42 -0
  78. package/dev-ui/panels.d.ts +11 -0
  79. package/dev-ui/panels.js +33 -0
  80. package/dev-ui/theme.d.ts +151 -0
  81. package/dev-ui/theme.js +50 -0
  82. package/entry/Root.d.ts +3 -1
  83. package/entry/Root.js +18 -6
  84. package/hooks/index.d.ts +1 -0
  85. package/hooks/index.js +1 -0
  86. package/{serverless/create-rpc-client.d.ts → hooks/useRPC.d.ts} +18 -18
  87. package/hooks/useRPC.js +18 -0
  88. package/package.json +15 -7
  89. package/routing/routing.js +1 -1
  90. package/serverless/define-rpc-router.d.ts +5 -1
  91. package/serverless/define-rpc-router.js +11 -3
  92. package/serverless/index.d.ts +2 -1
  93. package/serverless/index.js +3 -1
  94. package/serverless-template/_utils/PageMeta.tsx +44 -0
  95. package/serverless-template/_utils/fetch-wordpress-props.ts +14 -3
  96. package/serverless-template/_utils/fetch-wp.ts +16 -0
  97. package/serverless-template/global.d.ts +7 -1
  98. package/serverless-template/next.config.js +10 -3
  99. package/serverless-template/package.json +5 -3
  100. package/serverless-template/pages/404.tsx +12 -0
  101. package/serverless-template/pages/[...slug].tsx +7 -2
  102. package/serverless-template/pages/_app.tsx +32 -12
  103. package/serverless-template/pages/_document.tsx +19 -0
  104. package/serverless-template/pages/api/rest/{[...method].ts → [method].ts} +4 -2
  105. package/serverless-template/pages/api/trpc/[...trpc].ts +26 -0
  106. package/serverless-template/pages/index.tsx +2 -2
  107. package/style/createStitches.d.ts +71 -1
  108. package/style/createStitches.js +151 -45
  109. package/utils/getRepoName.js +13 -5
  110. package/utils/updateEnvFile.d.ts +1 -0
  111. package/utils/updateEnvFile.js +76 -0
  112. package/cli/prepare-next.d.ts +0 -0
  113. package/cli/prepare-next.js +0 -1
  114. package/entry/entry.serverless.dev.d.ts +0 -0
  115. package/entry/entry.serverless.dev.js +0 -2
  116. package/fields/ImageWell.d.ts +0 -8
  117. package/fields/ImageWell.js +0 -64
  118. package/serverless/create-rpc-client.js +0 -20
  119. package/serverless-template/package-lock.json +0 -641
  120. package/serverless-template/pages/api/hello.ts +0 -10
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,34 +49,51 @@ 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,
58
57
  });
59
58
  });
60
59
  program
61
- .command("build")
62
- .description("Build in production mode")
63
- .option("-s, --serverless", 'Build in "serverless" mode')
60
+ .command("preinstall")
61
+ .description("Pre-installs for Vercel")
64
62
  .action(function (options) {
65
- (0, build_prod_1.prodCommand)({
66
- serverless: options.serverless,
67
- });
63
+ var main = require("./preinstall").main;
64
+ main();
68
65
  });
69
66
  program
70
- .command("vercel-build")
71
- .description("Create and build a Next.js project in .serverless")
67
+ .command("build")
68
+ .description("Build in production mode")
72
69
  .action(function (options) {
73
- (0, create_next_app_1.createNextApp)({
74
- baseDirectory: process.cwd(),
75
- dev: false,
76
- build: true,
77
- });
70
+ if (process.env.VERCEL) {
71
+ (0, create_next_app_1.createNextApp)({
72
+ baseDirectory: process.cwd(),
73
+ dev: false,
74
+ build: true,
75
+ });
76
+ }
77
+ else {
78
+ var prodCommand = require("./build.prod").prodCommand;
79
+ prodCommand({
80
+ serverless: options.serverless,
81
+ });
82
+ }
78
83
  });
84
+ // program
85
+ // .command("vercel-build")
86
+ // .description("Create and build a Next.js project in .serverless")
87
+ // .action((options) => {
88
+ // createNextApp({
89
+ // baseDirectory: process.cwd(),
90
+ // dev: false,
91
+ // build: true,
92
+ // })
93
+ // })
79
94
  program
80
95
  .command("next")
81
- .description("Create a Next.js project in .serverless")
96
+ .description("Run the serverless app in standalone mode")
82
97
  .action(function (options) {
83
98
  (0, create_next_app_1.createNextApp)({
84
99
  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;
@@ -0,0 +1 @@
1
+ export declare function main(): void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = void 0;
4
+ var fs_1 = require("fs");
5
+ var path_1 = require("path");
6
+ function main() {
7
+ if (process.env.VERCEL) {
8
+ var pkgFile = (0, path_1.join)(process.cwd(), "package.json");
9
+ var pkg = JSON.parse((0, fs_1.readFileSync)(pkgFile).toString());
10
+ pkg.devDependencies["next"] = "^12.1.0";
11
+ (0, fs_1.writeFile)(pkgFile, JSON.stringify(pkg, null, " "), function () { });
12
+ }
13
+ }
14
+ exports.main = main;
@@ -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) {
@@ -6,42 +6,50 @@ 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
- plugins: "proxy" | "remote";
15
15
  enabled: boolean;
16
16
  uploads: "proxy" | "remote";
17
+ plugins: "proxy" | "remote";
17
18
  theme: "copy" | "proxy" | "remote";
19
+ endpoints: Record<string, string>;
18
20
  }, {
19
- devAssets?: string[] | undefined;
21
+ themeAssets?: string[] | undefined;
20
22
  apiOnly?: boolean | undefined;
21
- plugins: "proxy" | "remote";
22
23
  enabled: boolean;
23
24
  uploads: "proxy" | "remote";
25
+ plugins: "proxy" | "remote";
24
26
  theme: "copy" | "proxy" | "remote";
27
+ endpoints: Record<string, string>;
25
28
  }>>;
29
+ devUI: z.ZodEnum<["disabled", "enabled"]>;
26
30
  }, "strip", z.ZodTypeAny, {
27
31
  $schema?: string | undefined;
28
32
  serverless?: {
29
- devAssets?: string[] | undefined;
33
+ themeAssets?: string[] | undefined;
30
34
  apiOnly?: boolean | undefined;
31
- plugins: "proxy" | "remote";
32
35
  enabled: boolean;
33
36
  uploads: "proxy" | "remote";
37
+ plugins: "proxy" | "remote";
34
38
  theme: "copy" | "proxy" | "remote";
39
+ endpoints: Record<string, string>;
35
40
  } | undefined;
41
+ devUI: "disabled" | "enabled";
36
42
  }, {
37
43
  $schema?: string | undefined;
38
44
  serverless?: {
39
- devAssets?: string[] | undefined;
45
+ themeAssets?: string[] | undefined;
40
46
  apiOnly?: boolean | undefined;
41
- plugins: "proxy" | "remote";
42
47
  enabled: boolean;
43
48
  uploads: "proxy" | "remote";
49
+ plugins: "proxy" | "remote";
44
50
  theme: "copy" | "proxy" | "remote";
51
+ endpoints: Record<string, string>;
45
52
  } | undefined;
53
+ devUI: "disabled" | "enabled";
46
54
  }>;
47
55
  export declare type EDConfig = z.infer<typeof EDConfigSchema>;
@@ -10,8 +10,10 @@ 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(),
18
+ devUI: zod_1.z.enum(["disabled", "enabled"]),
17
19
  });
@@ -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;
@@ -1,21 +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
- plugins: "proxy" | "remote";
7
6
  enabled: boolean;
8
7
  uploads: "proxy" | "remote";
8
+ plugins: "proxy" | "remote";
9
9
  theme: "copy" | "proxy" | "remote";
10
+ endpoints: Record<string, string>;
10
11
  } | undefined;
12
+ devUI: "disabled" | "enabled";
11
13
  }, {
12
14
  $schema?: string | undefined;
13
15
  serverless?: {
14
- devAssets?: string[] | undefined;
16
+ themeAssets?: string[] | undefined;
15
17
  apiOnly?: boolean | undefined;
16
- plugins: "proxy" | "remote";
17
18
  enabled: boolean;
18
19
  uploads: "proxy" | "remote";
20
+ plugins: "proxy" | "remote";
19
21
  theme: "copy" | "proxy" | "remote";
22
+ endpoints: Record<string, string>;
20
23
  } | undefined;
24
+ devUI: "disabled" | "enabled";
21
25
  }>;
@@ -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;
@@ -0,0 +1,138 @@
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.BreakpointIndicator = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var useBreakpoint_1 = require("../hooks/useBreakpoint");
17
+ var usePersistState_1 = require("../hooks/usePersistState");
18
+ var theme_1 = require("../theme");
19
+ var Launcher_1 = require("./Launcher");
20
+ var Text_1 = require("./atoms/Text");
21
+ // @ts-ignore
22
+ var _theme_1 = require("@theme");
23
+ var Tooltip_1 = require("./atoms/Tooltip");
24
+ var colors = [
25
+ { $$bg: "#ff5555", $$fg: "#ffffff" },
26
+ { $$bg: "#55ff55", $$fg: "#000000" },
27
+ { $$bg: "#5555ff", $$fg: "#ffffff" },
28
+ { $$bg: "#ff55ff", $$fg: "#ffffff" },
29
+ { $$bg: "#ffff55", $$fg: "#000000" },
30
+ { $$bg: "#55ffff", $$fg: "#000000" },
31
+ ];
32
+ function BreakpointIndicator() {
33
+ var bpState = (0, useBreakpoint_1.useBreakpoint)();
34
+ var maxSize = parseFloat(_theme_1.breakpoints[_theme_1.breakpoints.length - 1].min);
35
+ var _a = (0, usePersistState_1.usePersistState)("breakpoint_indicator", false), expanded = _a[0], setExpanded = _a[1];
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.jsx)(Text_1.Text, __assign({ variant: "monoBold" }, { children: bpState.name }), void 0) }), void 0));
38
+ }
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
+ 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));
41
+ }), (0, jsx_runtime_1.jsx)(Indicator, __assign({ style: { "--eddev--position": Math.min(1, bpState.width / maxSize) }, flipped: bpState.width > maxSize * 0.9 }, { children: (0, jsx_runtime_1.jsxs)(Text_1.Text, __assign({ variant: "monoTiny" }, { children: [bpState.width, "px"] }), void 0) }), void 0)] }, void 0) }), void 0));
42
+ }
43
+ exports.BreakpointIndicator = BreakpointIndicator;
44
+ var Expanded = (0, theme_1.styled)(Launcher_1.MenuItem, {
45
+ position: "relative",
46
+ width: "400px",
47
+ // height: "100%",
48
+ inset: 0,
49
+ $$bg: "black !important",
50
+ $$bgHover: "black !important",
51
+ });
52
+ var Simple = (0, theme_1.styled)(Launcher_1.MenuItem, {
53
+ $$bgHover: "$$bg !important",
54
+ });
55
+ var Items = (0, theme_1.styled)("div", {
56
+ position: "absolute",
57
+ inset: "2px 8px",
58
+ paddingBottom: "10px",
59
+ borderRadius: "100px",
60
+ });
61
+ var Item = (0, theme_1.styled)("div", {
62
+ position: "absolute",
63
+ top: 0,
64
+ left: "calc($$offset * 100%)",
65
+ width: "calc($$size * 100%)",
66
+ display: "flex",
67
+ flexDirection: "column",
68
+ alignItems: "stretch",
69
+ paddingLeft: 1,
70
+ paddingRight: 1,
71
+ paddingBottom: "2px",
72
+ color: "#c0c0c0",
73
+ "&:after": {
74
+ content: " ",
75
+ display: "block",
76
+ position: "absolute",
77
+ left: 1,
78
+ right: 1,
79
+ bottom: 0,
80
+ height: "2px",
81
+ backgroundColor: "$$bg",
82
+ borderRadius: "10px",
83
+ },
84
+ variants: {
85
+ last: {
86
+ true: {
87
+ flexGrow: "0",
88
+ paddingLeft: 0,
89
+ right: 0,
90
+ width: "auto",
91
+ backgroundColor: "transparent",
92
+ left: "auto",
93
+ "&:after": {
94
+ display: "none",
95
+ },
96
+ },
97
+ },
98
+ active: {
99
+ true: {
100
+ color: "$$bg",
101
+ fontWeight: "bold",
102
+ },
103
+ },
104
+ },
105
+ });
106
+ var Indicator = (0, theme_1.styled)("div", {
107
+ position: "absolute",
108
+ bottom: 0,
109
+ left: "calc($$position * 100%)",
110
+ height: "9px",
111
+ div: {
112
+ position: "absolute",
113
+ left: "5px",
114
+ },
115
+ "&:before": {
116
+ content: " ",
117
+ display: "block",
118
+ position: "absolute",
119
+ left: 0,
120
+ top: "3px",
121
+ width: 0,
122
+ height: 0,
123
+ borderStyle: "solid",
124
+ borderWidth: "0 3px 5.2px 3px",
125
+ borderColor: "transparent transparent white transparent",
126
+ transform: "translateX(-50%)",
127
+ },
128
+ variants: {
129
+ flipped: {
130
+ true: {
131
+ div: {
132
+ left: "auto",
133
+ right: "5px",
134
+ },
135
+ },
136
+ },
137
+ },
138
+ });
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function DevUI(): JSX.Element;