@rezi-ui/node 0.1.0-alpha.3 → 0.1.0-alpha.31

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 (73) hide show
  1. package/README.md +26 -6
  2. package/dist/backend/emojiWidthPolicy.d.ts +15 -0
  3. package/dist/backend/emojiWidthPolicy.d.ts.map +1 -0
  4. package/dist/backend/emojiWidthPolicy.js +229 -0
  5. package/dist/backend/emojiWidthPolicy.js.map +1 -0
  6. package/dist/backend/nodeBackend.d.ts +29 -1
  7. package/dist/backend/nodeBackend.d.ts.map +1 -1
  8. package/dist/backend/nodeBackend.js +186 -16
  9. package/dist/backend/nodeBackend.js.map +1 -1
  10. package/dist/backend/nodeBackendInline.d.ts.map +1 -1
  11. package/dist/backend/nodeBackendInline.js +175 -15
  12. package/dist/backend/nodeBackendInline.js.map +1 -1
  13. package/dist/backend/terminalProfile.d.ts +5 -0
  14. package/dist/backend/terminalProfile.d.ts.map +1 -0
  15. package/dist/backend/terminalProfile.js +117 -0
  16. package/dist/backend/terminalProfile.js.map +1 -0
  17. package/dist/dev/hotStateReload.d.ts +65 -0
  18. package/dist/dev/hotStateReload.d.ts.map +1 -0
  19. package/dist/dev/hotStateReload.js +438 -0
  20. package/dist/dev/hotStateReload.js.map +1 -0
  21. package/dist/dev/nodeAppHotReload.d.ts +11 -0
  22. package/dist/dev/nodeAppHotReload.d.ts.map +1 -0
  23. package/dist/dev/nodeAppHotReload.js +78 -0
  24. package/dist/dev/nodeAppHotReload.js.map +1 -0
  25. package/dist/image.d.ts +2 -0
  26. package/dist/image.d.ts.map +1 -0
  27. package/dist/image.js +16 -0
  28. package/dist/image.js.map +1 -0
  29. package/dist/index.d.ts +44 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +189 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/repro/index.d.ts +3 -0
  34. package/dist/repro/index.d.ts.map +1 -0
  35. package/dist/repro/index.js +2 -0
  36. package/dist/repro/index.js.map +1 -0
  37. package/dist/repro/recorder.d.ts +31 -0
  38. package/dist/repro/recorder.d.ts.map +1 -0
  39. package/dist/repro/recorder.js +326 -0
  40. package/dist/repro/recorder.js.map +1 -0
  41. package/dist/streams/tail.d.ts +6 -0
  42. package/dist/streams/tail.d.ts.map +1 -0
  43. package/dist/streams/tail.js +113 -0
  44. package/dist/streams/tail.js.map +1 -0
  45. package/dist/worker/engineWorker.js +28 -0
  46. package/dist/worker/engineWorker.js.map +1 -1
  47. package/dist/worker/protocol.d.ts +3 -0
  48. package/dist/worker/protocol.d.ts.map +1 -1
  49. package/dist/worker/testShims/invalidPollBytesNative.d.ts +22 -0
  50. package/dist/worker/testShims/invalidPollBytesNative.d.ts.map +1 -0
  51. package/dist/worker/testShims/invalidPollBytesNative.js +65 -0
  52. package/dist/worker/testShims/invalidPollBytesNative.js.map +1 -0
  53. package/dist/worker/testShims/limitsExpectNative.d.ts +22 -0
  54. package/dist/worker/testShims/limitsExpectNative.d.ts.map +1 -0
  55. package/dist/worker/testShims/limitsExpectNative.js +85 -0
  56. package/dist/worker/testShims/limitsExpectNative.js.map +1 -0
  57. package/dist/worker/testShims/limitsNative.d.ts +22 -0
  58. package/dist/worker/testShims/limitsNative.d.ts.map +1 -0
  59. package/dist/worker/testShims/limitsNative.js +90 -0
  60. package/dist/worker/testShims/limitsNative.js.map +1 -0
  61. package/package.json +12 -8
  62. package/dist/__e2e__/fixtures/terminal-app.d.ts +0 -2
  63. package/dist/__e2e__/fixtures/terminal-app.d.ts.map +0 -1
  64. package/dist/__e2e__/fixtures/terminal-app.js +0 -42
  65. package/dist/__e2e__/fixtures/terminal-app.js.map +0 -1
  66. package/dist/__e2e__/terminal-render.e2e.test.d.ts +0 -2
  67. package/dist/__e2e__/terminal-render.e2e.test.d.ts.map +0 -1
  68. package/dist/__e2e__/terminal-render.e2e.test.js +0 -125
  69. package/dist/__e2e__/terminal-render.e2e.test.js.map +0 -1
  70. package/dist/__tests__/worker_integration.test.d.ts +0 -2
  71. package/dist/__tests__/worker_integration.test.d.ts.map +0 -1
  72. package/dist/__tests__/worker_integration.test.js +0 -569
  73. package/dist/__tests__/worker_integration.test.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeAppHotReload.d.ts","sourceRoot":"","sources":["../../src/dev/nodeAppHotReload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAE/B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvF,MAAM,MAAM,6BAA6B,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3F,MAAM,MAAM,uBAAuB,CAAC,CAAC,IACjC,2BAA2B,CAAC,CAAC,CAAC,GAC9B,6BAA6B,CAAC,CAAC,CAAC,CAAC;AAErC,KAAK,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;AACtE,KAAK,uBAAuB,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe,CAAC,CAAC;AAgBhF,wBAAgB,gCAAgC,CAAC,CAAC,EAChD,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAClC,wBAAwB,CAa1B;AAED,wBAAgB,+BAA+B,CAAC,CAAC,EAC/C,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACxB,UAAU,EAAE,wBAAwB,GACnC,IAAI,CAkDN"}
@@ -0,0 +1,78 @@
1
+ import { createHotStateReload, } from "./hotStateReload.js";
2
+ function createViewHotReloadApp(app) {
3
+ return {
4
+ replaceView: app.replaceView.bind(app),
5
+ };
6
+ }
7
+ function createRoutesHotReloadApp(app) {
8
+ return {
9
+ replaceRoutes: app.replaceRoutes.bind(app),
10
+ };
11
+ }
12
+ export function createNodeAppHotReloadController(app, options) {
13
+ if ("viewModule" in options) {
14
+ const opts = {
15
+ ...options,
16
+ app: createViewHotReloadApp(app),
17
+ };
18
+ return createHotStateReload(opts);
19
+ }
20
+ const opts = {
21
+ ...options,
22
+ app: createRoutesHotReloadApp(app),
23
+ };
24
+ return createHotStateReload(opts);
25
+ }
26
+ export function attachNodeAppHotReloadLifecycle(app, controller) {
27
+ const baseStart = app.start.bind(app);
28
+ const baseStop = app.stop.bind(app);
29
+ const baseDispose = app.dispose.bind(app);
30
+ app.start = async () => {
31
+ let startedByLifecycle = false;
32
+ if (!controller.isRunning()) {
33
+ await controller.start();
34
+ startedByLifecycle = true;
35
+ }
36
+ try {
37
+ await baseStart();
38
+ }
39
+ catch (error) {
40
+ if (startedByLifecycle && controller.isRunning()) {
41
+ try {
42
+ await controller.stop();
43
+ }
44
+ catch {
45
+ // Preserve app.start() failure as the primary error.
46
+ }
47
+ }
48
+ throw error;
49
+ }
50
+ };
51
+ app.stop = async () => {
52
+ let failure = null;
53
+ try {
54
+ await baseStop();
55
+ }
56
+ catch (error) {
57
+ failure = error;
58
+ }
59
+ if (controller.isRunning()) {
60
+ try {
61
+ await controller.stop();
62
+ }
63
+ catch (error) {
64
+ if (failure === null)
65
+ failure = error;
66
+ }
67
+ }
68
+ if (failure !== null)
69
+ throw failure;
70
+ };
71
+ app.dispose = () => {
72
+ if (controller.isRunning()) {
73
+ void controller.stop().catch(() => undefined);
74
+ }
75
+ baseDispose();
76
+ };
77
+ }
78
+ //# sourceMappingURL=nodeAppHotReload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeAppHotReload.js","sourceRoot":"","sources":["../../src/dev/nodeAppHotReload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function loadImage(path: string): Uint8Array;
2
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAUlD"}
package/dist/image.js ADDED
@@ -0,0 +1,16 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ const IMAGE_CACHE = new Map();
4
+ export function loadImage(path) {
5
+ if (path.length === 0) {
6
+ throw new TypeError("loadImage(path): path must be a non-empty string");
7
+ }
8
+ const resolvedPath = resolve(path);
9
+ const cached = IMAGE_CACHE.get(resolvedPath);
10
+ if (cached)
11
+ return cached;
12
+ const bytes = new Uint8Array(readFileSync(resolvedPath));
13
+ IMAGE_CACHE.set(resolvedPath, bytes);
14
+ return bytes;
15
+ }
16
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;AAElD,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,49 @@
1
+ import { type App, type AppConfig, type RouteDefinition, type Theme, type ThemeDefinition } from "@rezi-ui/core";
1
2
  import { type NodeBackend, type NodeBackendConfig } from "./backend/nodeBackend.js";
3
+ import { type HotStateReloadController, createHotStateReload } from "./dev/hotStateReload.js";
4
+ import { type NodeAppHotReloadOptions } from "./dev/nodeAppHotReload.js";
5
+ import { createReproRecorder } from "./repro/index.js";
2
6
  export type { NodeBackendConfig };
3
7
  export type { NodeBackend };
8
+ export type { HotStateReloadController, HotStateReloadErrorContext, HotStateReloadLogEvent, HotStateReloadOptions, HotStateReloadRoutesOptions, HotStateReloadViewOptions, } from "./dev/hotStateReload.js";
9
+ export type { NodeAppHotReloadOptions, NodeAppHotReloadRoutesOptions, NodeAppHotReloadViewOptions, } from "./dev/nodeAppHotReload.js";
10
+ export type { CreateReproRecorderOptions, ReproRecorder, ReproRecorderBackendCapsOverrides, ReproRecorderBounds, ReproRecorderBuildResult, } from "./repro/index.js";
11
+ export { createHotStateReload };
12
+ export { createReproRecorder };
13
+ export { loadImage } from "./image.js";
14
+ export { createNodeTailSource } from "./streams/tail.js";
15
+ export type NodeAppConfig = Readonly<AppConfig & Omit<NodeBackendConfig, "fpsCap" | "maxEventBytes" | "useDrawlistV2">>;
16
+ export type CreateNodeAppOptions<S> = Readonly<{
17
+ initialState: S;
18
+ routes?: readonly RouteDefinition<S>[];
19
+ initialRoute?: string;
20
+ config?: NodeAppConfig;
21
+ theme?: Theme | ThemeDefinition;
22
+ /**
23
+ * Development-only hot state-preserving reload wiring.
24
+ *
25
+ * When configured, createNodeApp automatically starts/stops the HSR watcher
26
+ * together with app lifecycle and exposes the controller on `app.hotReload`.
27
+ */
28
+ hotReload?: NodeAppHotReloadOptions<S>;
29
+ }>;
30
+ export type NodeApp<S> = App<S> & Readonly<{
31
+ /** Node/Bun runtime backend instance. */
32
+ backend: NodeBackend;
33
+ /** True when NO_COLOR is present in the process environment. */
34
+ isNoColor: boolean;
35
+ /**
36
+ * Built-in HSR controller when `createNodeApp({ hotReload })` is configured.
37
+ * `null` when hot reload is not configured.
38
+ */
39
+ hotReload: HotStateReloadController | null;
40
+ }>;
41
+ export declare function createNodeApp<S>(opts: CreateNodeAppOptions<S>): NodeApp<S>;
42
+ /**
43
+ * Low-level Node/Bun backend constructor.
44
+ *
45
+ * Prefer `createNodeApp()` for standard app construction so core/backend config
46
+ * stays aligned automatically.
47
+ */
4
48
  export declare function createNodeBackend(config?: NodeBackendConfig): NodeBackend;
5
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,iBAAsB,GAAG,WAAW,CAE7E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,KAAK,eAAe,EAIrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EACL,KAAK,uBAAuB,EAG7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,CAAC;AAC5B,YAAY,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,0BAA0B,EAC1B,aAAa,EACb,iCAAiC,EACjC,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAIzD,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,eAAe,GAAG,eAAe,CAAC,CAClF,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC7C,YAAY,EAAE,CAAC,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC;IAChC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;CACxC,CAAC,CAAC;AAEH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAC7B,QAAQ,CAAC;IACP,yCAAyC;IACzC,OAAO,EAAE,WAAW,CAAC;IACrB,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAAC;CAC5C,CAAC,CAAC;AAuJL,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAwC1E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,iBAAsB,GAAG,WAAW,CAE7E"}
package/dist/index.js CHANGED
@@ -1,4 +1,193 @@
1
+ import { createApp, defaultTheme, setDefaultTailSourceFactory, } from "@rezi-ui/core";
1
2
  import { createNodeBackendInternal, } from "./backend/nodeBackend.js";
3
+ import { createHotStateReload } from "./dev/hotStateReload.js";
4
+ import { attachNodeAppHotReloadLifecycle, createNodeAppHotReloadController, } from "./dev/nodeAppHotReload.js";
5
+ import { createReproRecorder } from "./repro/index.js";
6
+ import { createNodeTailSource } from "./streams/tail.js";
7
+ export { createHotStateReload };
8
+ export { createReproRecorder };
9
+ export { loadImage } from "./image.js";
10
+ export { createNodeTailSource } from "./streams/tail.js";
11
+ setDefaultTailSourceFactory(createNodeTailSource);
12
+ function isFiniteNumber(value) {
13
+ return typeof value === "number" && Number.isFinite(value);
14
+ }
15
+ function isRgb(value) {
16
+ if (!value || typeof value !== "object")
17
+ return false;
18
+ const candidate = value;
19
+ return isFiniteNumber(candidate.r) && isFiniteNumber(candidate.g) && isFiniteNumber(candidate.b);
20
+ }
21
+ function isSpacingToken(value) {
22
+ return isFiniteNumber(value) && Number.isInteger(value) && value >= 0;
23
+ }
24
+ function readLegacyThemeColors(theme) {
25
+ if (!theme || typeof theme !== "object")
26
+ return null;
27
+ const colors = theme.colors;
28
+ if (!colors || typeof colors !== "object")
29
+ return null;
30
+ const candidate = colors;
31
+ if (!isRgb(candidate.fg) || !isRgb(candidate.bg))
32
+ return null;
33
+ return candidate;
34
+ }
35
+ function readThemeSpacing(theme) {
36
+ if (!theme || typeof theme !== "object")
37
+ return defaultTheme.spacing;
38
+ const spacing = theme.spacing;
39
+ if (Array.isArray(spacing)) {
40
+ for (const value of spacing) {
41
+ if (!isFiniteNumber(value))
42
+ return defaultTheme.spacing;
43
+ }
44
+ return Object.freeze([...spacing]);
45
+ }
46
+ if (spacing && typeof spacing === "object") {
47
+ const tokens = spacing;
48
+ const xs = tokens.xs;
49
+ const sm = tokens.sm;
50
+ const md = tokens.md;
51
+ const lg = tokens.lg;
52
+ const xl = tokens.xl;
53
+ const x2xl = tokens["2xl"];
54
+ if (isSpacingToken(xs) &&
55
+ isSpacingToken(sm) &&
56
+ isSpacingToken(md) &&
57
+ isSpacingToken(lg) &&
58
+ isSpacingToken(xl) &&
59
+ isSpacingToken(x2xl)) {
60
+ return Object.freeze([0, xs, sm, md, lg, xl, x2xl]);
61
+ }
62
+ }
63
+ return defaultTheme.spacing;
64
+ }
65
+ function createNoColorTheme(theme) {
66
+ const baseColors = readLegacyThemeColors(theme) ?? defaultTheme.colors;
67
+ const spacing = readThemeSpacing(theme);
68
+ const mono = baseColors.fg;
69
+ return Object.freeze({
70
+ colors: Object.freeze({
71
+ ...baseColors,
72
+ primary: mono,
73
+ secondary: mono,
74
+ success: mono,
75
+ danger: mono,
76
+ warning: mono,
77
+ info: mono,
78
+ muted: mono,
79
+ border: mono,
80
+ "diagnostic.error": mono,
81
+ "diagnostic.warning": mono,
82
+ "diagnostic.info": mono,
83
+ "diagnostic.hint": mono,
84
+ }),
85
+ spacing,
86
+ });
87
+ }
88
+ function readProcessEnv() {
89
+ const processRef = globalThis
90
+ .process;
91
+ if (!processRef || typeof processRef !== "object")
92
+ return null;
93
+ const env = processRef.env;
94
+ if (!env || typeof env !== "object")
95
+ return null;
96
+ return env;
97
+ }
98
+ function hasNoColorEnv(env) {
99
+ if (!env)
100
+ return false;
101
+ return Object.prototype.hasOwnProperty.call(env, "NO_COLOR");
102
+ }
103
+ function toAppConfig(config) {
104
+ if (config === undefined)
105
+ return undefined;
106
+ return {
107
+ ...(config.fpsCap !== undefined ? { fpsCap: config.fpsCap } : {}),
108
+ ...(config.maxEventBytes !== undefined ? { maxEventBytes: config.maxEventBytes } : {}),
109
+ ...(config.maxDrawlistBytes !== undefined ? { maxDrawlistBytes: config.maxDrawlistBytes } : {}),
110
+ ...(config.useV2Cursor !== undefined ? { useV2Cursor: config.useV2Cursor } : {}),
111
+ ...(config.drawlistValidateParams !== undefined
112
+ ? { drawlistValidateParams: config.drawlistValidateParams }
113
+ : {}),
114
+ ...(config.drawlistReuseOutputBuffer !== undefined
115
+ ? { drawlistReuseOutputBuffer: config.drawlistReuseOutputBuffer }
116
+ : {}),
117
+ ...(config.drawlistEncodedStringCacheCap !== undefined
118
+ ? { drawlistEncodedStringCacheCap: config.drawlistEncodedStringCacheCap }
119
+ : {}),
120
+ ...(config.maxFramesInFlight !== undefined
121
+ ? { maxFramesInFlight: config.maxFramesInFlight }
122
+ : {}),
123
+ ...(config.internal_onRender !== undefined
124
+ ? { internal_onRender: config.internal_onRender }
125
+ : {}),
126
+ ...(config.internal_onLayout !== undefined
127
+ ? { internal_onLayout: config.internal_onLayout }
128
+ : {}),
129
+ };
130
+ }
131
+ function toBackendConfig(config) {
132
+ if (config === undefined)
133
+ return {};
134
+ return {
135
+ ...(config.executionMode !== undefined ? { executionMode: config.executionMode } : {}),
136
+ ...(config.fpsCap !== undefined ? { fpsCap: config.fpsCap } : {}),
137
+ ...(config.maxEventBytes !== undefined ? { maxEventBytes: config.maxEventBytes } : {}),
138
+ ...(config.drawlistVersion !== undefined ? { drawlistVersion: config.drawlistVersion } : {}),
139
+ ...(config.frameTransport !== undefined ? { frameTransport: config.frameTransport } : {}),
140
+ ...(config.frameSabSlotCount !== undefined
141
+ ? { frameSabSlotCount: config.frameSabSlotCount }
142
+ : {}),
143
+ ...(config.frameSabSlotBytes !== undefined
144
+ ? { frameSabSlotBytes: config.frameSabSlotBytes }
145
+ : {}),
146
+ ...(config.nativeConfig !== undefined ? { nativeConfig: config.nativeConfig } : {}),
147
+ };
148
+ }
149
+ export function createNodeApp(opts) {
150
+ const appConfig = toAppConfig(opts.config);
151
+ const backend = createNodeBackend(toBackendConfig(opts.config));
152
+ const isNoColor = hasNoColorEnv(readProcessEnv());
153
+ const theme = isNoColor ? createNoColorTheme(opts.theme) : opts.theme;
154
+ const app = createApp({
155
+ backend,
156
+ initialState: opts.initialState,
157
+ ...(opts.routes !== undefined ? { routes: opts.routes } : {}),
158
+ ...(opts.initialRoute !== undefined ? { initialRoute: opts.initialRoute } : {}),
159
+ ...(appConfig !== undefined ? { config: appConfig } : {}),
160
+ ...(theme !== undefined ? { theme } : {}),
161
+ });
162
+ const hotReload = opts.hotReload === undefined ? null : createNodeAppHotReloadController(app, opts.hotReload);
163
+ if (hotReload) {
164
+ attachNodeAppHotReloadLifecycle(app, hotReload);
165
+ }
166
+ Object.defineProperty(app, "hotReload", {
167
+ value: hotReload,
168
+ enumerable: true,
169
+ configurable: false,
170
+ writable: false,
171
+ });
172
+ Object.defineProperty(app, "backend", {
173
+ value: backend,
174
+ enumerable: true,
175
+ configurable: false,
176
+ writable: false,
177
+ });
178
+ return Object.defineProperty(app, "isNoColor", {
179
+ value: isNoColor,
180
+ enumerable: true,
181
+ configurable: false,
182
+ writable: false,
183
+ });
184
+ }
185
+ /**
186
+ * Low-level Node/Bun backend constructor.
187
+ *
188
+ * Prefer `createNodeApp()` for standard app construction so core/backend config
189
+ * stays aligned automatically.
190
+ */
2
191
  export function createNodeBackend(config = {}) {
3
192
  return createNodeBackendInternal({ config });
4
193
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAKlC,MAAM,UAAU,iBAAiB,CAAC,SAA4B,EAAE;IAC9D,OAAO,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type { CreateReproRecorderOptions, ReproRecorder, ReproRecorderBackendCapsOverrides, ReproRecorderBounds, ReproRecorderBuildResult, } from "./recorder.js";
2
+ export { createReproRecorder } from "./recorder.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repro/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,0BAA0B,EAC1B,aAAa,EACb,iCAAiC,EACjC,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createReproRecorder } from "./recorder.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repro/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { type ReproBundleV1, type ReproEventCapture, type RuntimeBackend, type TerminalCaps } from "@rezi-ui/core";
2
+ export type ReproRecorderBounds = Readonly<{
3
+ maxBatches?: number;
4
+ maxEvents?: number;
5
+ maxBytes?: number;
6
+ }>;
7
+ export type ReproRecorderBackendCapsOverrides = Readonly<{
8
+ maxEventBytes?: number;
9
+ fpsCap?: number;
10
+ cursorProtocolVersion?: 1 | 2;
11
+ }>;
12
+ export type CreateReproRecorderOptions = Readonly<{
13
+ bounds?: ReproRecorderBounds;
14
+ backendCaps?: ReproRecorderBackendCapsOverrides;
15
+ terminalCaps?: TerminalCaps | null;
16
+ clock?: () => number;
17
+ }>;
18
+ export type ReproRecorderBuildResult = Readonly<{
19
+ bundle: ReproBundleV1;
20
+ bytes: Uint8Array;
21
+ }>;
22
+ export type ReproRecorder = Readonly<{
23
+ backend: RuntimeBackend;
24
+ buildBundle: () => Promise<ReproBundleV1>;
25
+ buildBytes: () => Promise<Uint8Array>;
26
+ build: () => Promise<ReproRecorderBuildResult>;
27
+ snapshot: () => ReproEventCapture;
28
+ reset: () => void;
29
+ }>;
30
+ export declare function createReproRecorder(backend: RuntimeBackend, options?: CreateReproRecorderOptions): ReproRecorder;
31
+ //# sourceMappingURL=recorder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../src/repro/recorder.ts"],"names":[],"mappings":"AACA,OAAO,EAaL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAKtB,KAAK,cAAc,EACnB,KAAK,YAAY,EAGlB,MAAM,eAAe,CAAC;AAQvB,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,iCAAiC,GAAG,QAAQ,CAAC;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAChD,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,WAAW,CAAC,EAAE,iCAAiC,CAAC;IAChD,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1C,UAAU,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC/C,QAAQ,EAAE,MAAM,iBAAiB,CAAC;IAClC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC,CAAC;AAyLH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,0BAA+B,GACvC,aAAa,CAiMf"}