@flyingrobots/bijou-node 7.1.0 → 7.2.0

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/dist/gifenc-runtime.d.ts +5 -0
  2. package/dist/gifenc-runtime.d.ts.map +1 -0
  3. package/dist/gifenc-runtime.js +30 -0
  4. package/dist/gifenc-runtime.js.map +1 -0
  5. package/dist/index.d.ts +6 -45
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +20 -10
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.test-support.d.ts +11 -0
  10. package/dist/index.test-support.d.ts.map +1 -0
  11. package/dist/index.test-support.js +9 -0
  12. package/dist/index.test-support.js.map +1 -0
  13. package/dist/index.test-support.part01.d.ts +28 -0
  14. package/dist/index.test-support.part01.d.ts.map +1 -0
  15. package/dist/index.test-support.part01.js +89 -0
  16. package/dist/index.test-support.part01.js.map +1 -0
  17. package/dist/index.test-support.part02.d.ts +5 -0
  18. package/dist/index.test-support.part02.d.ts.map +1 -0
  19. package/dist/index.test-support.part02.js +63 -0
  20. package/dist/index.test-support.part02.js.map +1 -0
  21. package/dist/io-types.d.ts +26 -0
  22. package/dist/io-types.d.ts.map +1 -0
  23. package/dist/io-types.js +2 -0
  24. package/dist/io-types.js.map +1 -0
  25. package/dist/io.d.ts +3 -18
  26. package/dist/io.d.ts.map +1 -1
  27. package/dist/io.js +10 -17
  28. package/dist/io.js.map +1 -1
  29. package/dist/io.test-support.d.ts +5 -0
  30. package/dist/io.test-support.d.ts.map +1 -0
  31. package/dist/io.test-support.js +13 -0
  32. package/dist/io.test-support.js.map +1 -0
  33. package/dist/oled-font.d.ts +8 -0
  34. package/dist/oled-font.d.ts.map +1 -0
  35. package/dist/oled-font.js +28 -0
  36. package/dist/oled-font.js.map +1 -0
  37. package/dist/options.d.ts +48 -0
  38. package/dist/options.d.ts.map +1 -0
  39. package/dist/options.js +2 -0
  40. package/dist/options.js.map +1 -0
  41. package/dist/readline-output.d.ts +3 -0
  42. package/dist/readline-output.d.ts.map +1 -0
  43. package/dist/readline-output.js +20 -0
  44. package/dist/readline-output.js.map +1 -0
  45. package/dist/recorder.d.ts.map +1 -1
  46. package/dist/recorder.js +23 -24
  47. package/dist/recorder.js.map +1 -1
  48. package/dist/runtime.d.ts.map +1 -1
  49. package/dist/runtime.js +10 -4
  50. package/dist/runtime.js.map +1 -1
  51. package/dist/style.d.ts +1 -8
  52. package/dist/style.d.ts.map +1 -1
  53. package/dist/style.js +8 -3
  54. package/dist/style.js.map +1 -1
  55. package/dist/worker/fixtures/echo-worker.js +7 -6
  56. package/dist/worker/fixtures/echo-worker.js.map +1 -1
  57. package/dist/worker/worker-data.d.ts +25 -0
  58. package/dist/worker/worker-data.d.ts.map +1 -0
  59. package/dist/worker/worker-data.js +44 -0
  60. package/dist/worker/worker-data.js.map +1 -0
  61. package/dist/worker/worker-mouse-mode.d.ts +10 -0
  62. package/dist/worker/worker-mouse-mode.d.ts.map +1 -0
  63. package/dist/worker/worker-mouse-mode.js +14 -0
  64. package/dist/worker/worker-mouse-mode.js.map +1 -0
  65. package/dist/worker/worker-options.d.ts +33 -0
  66. package/dist/worker/worker-options.d.ts.map +1 -0
  67. package/dist/worker/worker-options.js +2 -0
  68. package/dist/worker/worker-options.js.map +1 -0
  69. package/dist/worker/worker.d.ts +7 -36
  70. package/dist/worker/worker.d.ts.map +1 -1
  71. package/dist/worker/worker.js +56 -44
  72. package/dist/worker/worker.js.map +1 -1
  73. package/package.json +3 -3
@@ -0,0 +1,5 @@
1
+ import type { GifEncoderOptions, GifEncoderStream, PaletteColor, PaletteFormat, QuantizeOptions } from 'gifenc';
2
+ export declare function createGifEncoder(options?: GifEncoderOptions): GifEncoderStream;
3
+ export declare function applyGifPalette(rgba: Uint8Array | Uint8ClampedArray, palette: PaletteColor[], format?: PaletteFormat): Uint8Array;
4
+ export declare function quantizeColors(rgba: Uint8Array | Uint8ClampedArray, maxColors: number, options?: QuantizeOptions): PaletteColor[];
5
+ //# sourceMappingURL=gifenc-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gifenc-runtime.d.ts","sourceRoot":"","sources":["../src/gifenc-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,eAAe,EAChB,MAAM,QAAQ,CAAC;AAyChB,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAE9E;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,GAAG,iBAAiB,EACpC,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,CAAC,EAAE,aAAa,GACrB,UAAU,CAEZ;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,GAAG,iBAAiB,EACpC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,eAAe,GACxB,YAAY,EAAE,CAEhB"}
@@ -0,0 +1,30 @@
1
+ import * as gifencModule from 'gifenc';
2
+ function isRecord(value) {
3
+ return typeof value === 'object' && value !== null;
4
+ }
5
+ function isGifencRuntime(value) {
6
+ return (isRecord(value)
7
+ && typeof value['GIFEncoder'] === 'function'
8
+ && typeof value['applyPalette'] === 'function'
9
+ && typeof value['quantize'] === 'function');
10
+ }
11
+ function resolveGifencRuntime(value) {
12
+ if (isGifencRuntime(value)) {
13
+ return value;
14
+ }
15
+ if (isRecord(value) && isGifencRuntime(value['default'])) {
16
+ return value['default'];
17
+ }
18
+ throw new Error('Invalid gifenc module shape');
19
+ }
20
+ const GIFENC = resolveGifencRuntime(gifencModule);
21
+ export function createGifEncoder(options) {
22
+ return GIFENC.GIFEncoder(options);
23
+ }
24
+ export function applyGifPalette(rgba, palette, format) {
25
+ return GIFENC.applyPalette(rgba, palette, format);
26
+ }
27
+ export function quantizeColors(rgba, maxColors, options) {
28
+ return GIFENC.quantize(rgba, maxColors, options);
29
+ }
30
+ //# sourceMappingURL=gifenc-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gifenc-runtime.js","sourceRoot":"","sources":["../src/gifenc-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAuBvC,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;WACZ,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,UAAU;WACzC,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,UAAU;WAC3C,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,UAAU,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;AAElD,MAAM,UAAU,gBAAgB,CAAC,OAA2B;IAC1D,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAoC,EACpC,OAAuB,EACvB,MAAsB;IAEtB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAoC,EACpC,SAAiB,EACjB,OAAyB;IAEzB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,14 +8,16 @@
8
8
  *
9
9
  * @packageDocumentation
10
10
  */
11
- import type { BijouContext, Theme, ColorScheme } from '@flyingrobots/bijou';
11
+ import type { BijouContext } from '@flyingrobots/bijou';
12
12
  import { type App, type RunOptions } from '@flyingrobots/bijou-tui';
13
+ import type { CreateNodeContextOptions, InitDefaultContextOptions } from './options.js';
13
14
  /** Re-export the Node.js {@link RuntimePort} factory. */
14
15
  export { nodeRuntime, detectRefreshRate } from './runtime.js';
15
16
  /** Re-export the Node.js {@link IOPort} factory. */
16
- export { nodeIO, scopedNodeIO, ScopedNodeIOError, type ScopedNodeIO, type ScopedNodeIOOptions, } from './io.js';
17
+ export { nodeIO, scopedNodeIO, ScopedNodeIOError, type ScopedNodeIO, type ScopedNodeIOOptions, type NodeIOOptions, type NodeWriteStream, } from './io.js';
17
18
  /** Re-export the Chalk-based {@link StylePort} factory and its options type. */
18
19
  export { chalkStyle, type ChalkStyleOptions } from './style.js';
20
+ export type { CreateNodeContextOptions, InitDefaultContextOptions, NodeThemeEntry, NodeThemeMode, NodeThemeOptions, } from './options.js';
19
21
  /** Re-export Worker utilities for multi-threaded applications. */
20
22
  export { isBijouWorker, runInWorker, sendToMain, startWorkerApp, type RunWorkerOptions } from './worker/worker.js';
21
23
  export { recordDemoGif, rasterizeSurface, writeSurfaceGif, type NativeDemoSpec, type RecorderResult, type SurfaceGifOptions, } from './recorder.js';
@@ -34,48 +36,8 @@ export declare class BijouBootstrapError extends Error {
34
36
  */
35
37
  constructor(reason: string, hint: string, cause?: unknown);
36
38
  }
37
- /** Theme-selection options for Node-hosted context creation. */
38
- export interface NodeThemeEntry {
39
- /** Stable selection id for env/config or app-owned override state. */
40
- readonly id: string;
41
- /** Theme value associated with this entry. */
42
- readonly theme: Theme;
43
- /**
44
- * Optional light/dark hint used by automatic selection.
45
- *
46
- * When omitted, `id === "light"` and `id === "dark"` are treated as the
47
- * corresponding scheme.
48
- */
49
- readonly scheme?: ColorScheme;
50
- }
51
- /** Host-level theme mode for automatic selection. */
52
- export type NodeThemeMode = 'auto' | ColorScheme;
53
- /** Theme-selection options for Node-hosted context creation. */
54
- export interface NodeThemeOptions {
55
- /**
56
- * Explicit fallback theme object to use for this host context.
57
- *
58
- * This wins whenever the selected env var does not point at a known preset or
59
- * a valid DTCG JSON file.
60
- */
61
- theme?: Theme;
62
- /** Named preset themes available to env-var selection. */
63
- presets?: Record<string, Theme>;
64
- /** Environment variable name that selects a preset or JSON theme path. */
65
- envVar?: string;
66
- /** Named theme entries available for auto-selection or app-owned overrides. */
67
- themes?: readonly NodeThemeEntry[];
68
- /** Automatic or forced light/dark selection mode for `themes`. */
69
- themeMode?: NodeThemeMode;
70
- /** Explicit theme-entry id override that wins over env-driven selection. */
71
- themeOverride?: string;
72
- }
73
- /** Options for {@link createNodeContext}. */
74
- export type CreateNodeContextOptions = NodeThemeOptions;
75
- /** Options for {@link initDefaultContext}. */
76
- export type InitDefaultContextOptions = NodeThemeOptions;
77
39
  /** Options for {@link startApp}. */
78
- export type StartAppOptions<M = unknown> = RunOptions<M> & NodeThemeOptions;
40
+ export type StartAppOptions<M = unknown> = RunOptions<M> & CreateNodeContextOptions;
79
41
  /** Test-only helper that restores the Node ambient-context initializer after resets. */
80
42
  export declare function _registerDefaultContextInitializerForTesting(): void;
81
43
  /**
@@ -100,8 +62,7 @@ export declare function _resetInitializedForTesting(): void;
100
62
  * Initialize and register the global default {@link BijouContext}.
101
63
  *
102
64
  * On the first call, creates a Node.js context via {@link createNodeContext}
103
- * and registers it with `setDefaultContext` so that bijou components
104
- * omitting the optional `ctx` parameter automatically use it.
65
+ * and registers it with `setDefaultContext` for ambient `ctx` use.
105
66
  *
106
67
  * Subsequent calls return a fresh (unregistered) context without
107
68
  * overwriting the global default.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQ5E,OAAO,EAAO,KAAK,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKzE,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC9D,oDAAoD;AACpD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,SAAS,CAAC;AACjB,gFAAgF;AAChF,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEhE,kEAAkE;AAClE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnH,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAIvB,iEAAiE;AACjE,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAS1D;AAED,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,qDAAqD;AACrD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;AAEjD,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACnC,kEAAkE;IAClE,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,6CAA6C;AAC7C,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAExD,8CAA8C;AAC9C,MAAM,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAEzD,oCAAoC;AACpC,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;AA8G5E,wFAAwF;AACxF,wBAAgB,4CAA4C,IAAI,IAAI,CAEnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,YAAY,CAetF;AAUD;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,yBAA8B,GAAG,YAAY,CA8CxF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,CAAC,EACrC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAClB,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CAiCf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAQ5E,OAAO,EAAO,KAAK,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIzE,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAG1B,MAAM,cAAc,CAAC;AAEtB,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC9D,oDAAoD;AACpD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,SAAS,CAAC;AACjB,gFAAgF;AAChF,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,kEAAkE;AAClE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnH,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAIvB,iEAAiE;AACjE,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAS1D;AAED,oCAAoC;AACpC,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC;AA8GpF,wFAAwF;AACxF,wBAAgB,4CAA4C,IAAI,IAAI,CAEnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,YAAY,CAetF;AAUD;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,yBAA8B,GAAG,YAAY,CA8CxF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,CAAC,EACrC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAClB,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CA8Cf"}
package/dist/index.js CHANGED
@@ -47,7 +47,7 @@ export class BijouBootstrapError extends Error {
47
47
  }
48
48
  }
49
49
  function isSelfRunningApp(app) {
50
- return typeof app.run === 'function';
50
+ return 'run' in app && typeof app.run === 'function';
51
51
  }
52
52
  function inferThemeEntryScheme(entry) {
53
53
  if (entry.scheme !== undefined)
@@ -148,7 +148,7 @@ export function createNodeContext(options = {}) {
148
148
  // as the user is explicitly requesting a rich dashboard experience.
149
149
  return createBijou({
150
150
  runtime,
151
- io: nodeIO(),
151
+ io: options.io ?? nodeIO(options.nodeIO),
152
152
  style: chalkStyle({ noColor, level: noColor ? 0 : 3 }),
153
153
  theme: selection.fallbackTheme,
154
154
  presets: selection.presets,
@@ -175,8 +175,7 @@ export function _resetInitializedForTesting() {
175
175
  * Initialize and register the global default {@link BijouContext}.
176
176
  *
177
177
  * On the first call, creates a Node.js context via {@link createNodeContext}
178
- * and registers it with `setDefaultContext` so that bijou components
179
- * omitting the optional `ctx` parameter automatically use it.
178
+ * and registers it with `setDefaultContext` for ambient `ctx` use.
180
179
  *
181
180
  * Subsequent calls return a fresh (unregistered) context without
182
181
  * overwriting the global default.
@@ -191,13 +190,13 @@ export function initDefaultContext(options = {}) {
191
190
  throw new BijouBootstrapError('stdout reported zero columns/rows', 'stdout is not a TTY — use pipe mode or redirect to a file, or run in a real terminal.');
192
191
  }
193
192
  try {
194
- const hasExplicitThemeSelection = options.theme !== undefined
193
+ const hasExplicitOptions = options.theme !== undefined
195
194
  || options.presets !== undefined
196
195
  || options.envVar !== undefined
197
196
  || options.themes !== undefined
198
197
  || options.themeMode !== undefined
199
- || options.themeOverride !== undefined;
200
- if (!initialized && !hasExplicitThemeSelection) {
198
+ || options.themeOverride !== undefined || options.io !== undefined || options.nodeIO !== undefined;
199
+ if (!initialized && !hasExplicitOptions) {
201
200
  const existing = resolveSafeCtx();
202
201
  if (existing != null) {
203
202
  initialized = true;
@@ -238,7 +237,7 @@ export function initDefaultContext(options = {}) {
238
237
  * @param options - Runtime options forwarded to {@link run}.
239
238
  */
240
239
  export async function startApp(app, options) {
241
- const { ctx: explicitCtx, theme, presets, envVar, themes, themeMode, themeOverride, ...runOptions } = options ?? {};
240
+ const { ctx: explicitCtx, theme, presets, envVar, themes, themeMode, themeOverride, io: ioOverride, nodeIO: nodeIOOptions, ...runOptions } = options ?? {};
242
241
  let ctx = explicitCtx;
243
242
  if (!ctx) {
244
243
  if (theme !== undefined
@@ -246,8 +245,19 @@ export async function startApp(app, options) {
246
245
  || envVar !== undefined
247
246
  || themes !== undefined
248
247
  || themeMode !== undefined
249
- || themeOverride !== undefined) {
250
- ctx = createNodeContext({ theme, presets, envVar, themes, themeMode, themeOverride });
248
+ || themeOverride !== undefined
249
+ || ioOverride !== undefined
250
+ || nodeIOOptions !== undefined) {
251
+ ctx = createNodeContext({
252
+ theme,
253
+ presets,
254
+ envVar,
255
+ themes,
256
+ themeMode,
257
+ themeOverride,
258
+ io: ioOverride,
259
+ nodeIO: nodeIOOptions,
260
+ });
251
261
  setDefaultContext(ctx);
252
262
  initialized = true;
253
263
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { describe, it, expect, expectTypeOf, afterEach, beforeEach, vi } from 'vitest';
2
+ import { BijouBootstrapError, createNodeContext, initDefaultContext, startApp, type StartAppOptions, _resetInitializedForTesting, _registerDefaultContextInitializerForTesting } from './index.js';
3
+ import { getDefaultContext, setDefaultContext, stringToSurface, type Surface, type Theme } from '@flyingrobots/bijou';
4
+ import { _resetDefaultContextForTesting, createTestContext } from '@flyingrobots/bijou/adapters/test';
5
+ import { run, type App, type RunOptions } from '@flyingrobots/bijou-tui';
6
+ export { _registerDefaultContextInitializerForTesting, _resetDefaultContextForTesting, _resetInitializedForTesting, afterEach, beforeEach, BijouBootstrapError, createNodeContext, createTestContext, describe, expect, expectTypeOf, getDefaultContext, initDefaultContext, it, run, setDefaultContext, startApp, stringToSurface, vi, };
7
+ export type { App, RunOptions, StartAppOptions, Surface, Theme };
8
+ export { CUSTOM_ID_THEME_SET, DARK_THEME, LIGHT_THEME, TEST_THEME, TEST_THEME_SET, makeTheme, textSurface, withStdoutSize, } from './index.test-support.part01.js';
9
+ export type { Opts } from './index.test-support.part01.js';
10
+ export { LEGACY_TEST_THEME, UNUSED_THEME } from './index.test-support.part02.js';
11
+ //# sourceMappingURL=index.test-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test-support.d.ts","sourceRoot":"","sources":["../src/index.test-support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEvF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,KAAK,eAAe,EACpB,2BAA2B,EAC3B,4CAA4C,EAC7C,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEtH,OAAO,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtG,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EACL,4CAA4C,EAC5C,8BAA8B,EAC9B,2BAA2B,EAC3B,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,EAAE,EACF,GAAG,EACH,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,EAAE,GACH,CAAC;AAEF,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjE,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,cAAc,GACf,MAAM,gCAAgC,CAAC;AAExC,YAAY,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { describe, it, expect, expectTypeOf, afterEach, beforeEach, vi } from 'vitest';
2
+ import { BijouBootstrapError, createNodeContext, initDefaultContext, startApp, _resetInitializedForTesting, _registerDefaultContextInitializerForTesting, } from './index.js';
3
+ import { getDefaultContext, setDefaultContext, stringToSurface } from '@flyingrobots/bijou';
4
+ import { _resetDefaultContextForTesting, createTestContext } from '@flyingrobots/bijou/adapters/test';
5
+ import { run } from '@flyingrobots/bijou-tui';
6
+ export { _registerDefaultContextInitializerForTesting, _resetDefaultContextForTesting, _resetInitializedForTesting, afterEach, beforeEach, BijouBootstrapError, createNodeContext, createTestContext, describe, expect, expectTypeOf, getDefaultContext, initDefaultContext, it, run, setDefaultContext, startApp, stringToSurface, vi, };
7
+ export { CUSTOM_ID_THEME_SET, DARK_THEME, LIGHT_THEME, TEST_THEME, TEST_THEME_SET, makeTheme, textSurface, withStdoutSize, } from './index.test-support.part01.js';
8
+ export { LEGACY_TEST_THEME, UNUSED_THEME } from './index.test-support.part02.js';
9
+ //# sourceMappingURL=index.test-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test-support.js","sourceRoot":"","sources":["../src/index.test-support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEvF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EAER,2BAA2B,EAC3B,4CAA4C,GAC7C,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAA4B,MAAM,qBAAqB,CAAC;AAEtH,OAAO,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtG,OAAO,EAAE,GAAG,EAA6B,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EACL,4CAA4C,EAC5C,8BAA8B,EAC9B,2BAA2B,EAC3B,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,EAAE,EACF,GAAG,EACH,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,EAAE,GACH,CAAC;AAIF,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,cAAc,GACf,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { StartAppOptions } from './index.js';
2
+ import type { Surface, Theme } from '@flyingrobots/bijou';
3
+ type Opts<M> = StartAppOptions<M>;
4
+ declare function textSurface(text: string): Surface;
5
+ declare function makeTheme(name: string, primaryHex: string, primaryBg: string, accentHex?: string): Theme;
6
+ declare const TEST_THEME: Theme;
7
+ declare const LIGHT_THEME: Theme;
8
+ declare const DARK_THEME: Theme;
9
+ declare const TEST_THEME_SET: readonly [{
10
+ readonly id: "light";
11
+ readonly theme: Theme<import("@flyingrobots/bijou").BaseStatusKey, import("@flyingrobots/bijou").BaseUiKey, import("@flyingrobots/bijou").BaseGradientKey>;
12
+ }, {
13
+ readonly id: "dark";
14
+ readonly theme: Theme<import("@flyingrobots/bijou").BaseStatusKey, import("@flyingrobots/bijou").BaseUiKey, import("@flyingrobots/bijou").BaseGradientKey>;
15
+ }];
16
+ declare const CUSTOM_ID_THEME_SET: readonly [{
17
+ readonly id: "sunrise";
18
+ readonly scheme: "light";
19
+ readonly theme: Theme<import("@flyingrobots/bijou").BaseStatusKey, import("@flyingrobots/bijou").BaseUiKey, import("@flyingrobots/bijou").BaseGradientKey>;
20
+ }, {
21
+ readonly id: "midnight";
22
+ readonly scheme: "dark";
23
+ readonly theme: Theme<import("@flyingrobots/bijou").BaseStatusKey, import("@flyingrobots/bijou").BaseUiKey, import("@flyingrobots/bijou").BaseGradientKey>;
24
+ }];
25
+ declare function withStdoutSize<T>(columns: number | undefined, rows: number | undefined, runTest: () => T): T;
26
+ export { CUSTOM_ID_THEME_SET, DARK_THEME, LIGHT_THEME, makeTheme, TEST_THEME, TEST_THEME_SET, textSurface, withStdoutSize, };
27
+ export type { Opts };
28
+ //# sourceMappingURL=index.test-support.part01.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test-support.part01.d.ts","sourceRoot":"","sources":["../src/index.test-support.part01.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE1D,KAAK,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;AAElC,iBAAS,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG1C;AAED,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,SAAY,GAAG,KAAK,CAyDpG;AAED,QAAA,MAAM,UAAU,EAAE,KAAqD,CAAC;AAExE,QAAA,MAAM,WAAW,EAAE,KAAiE,CAAC;AAErF,QAAA,MAAM,UAAU,EAAE,KAAgE,CAAC;AAEnF,QAAA,MAAM,cAAc;;;;;;EAGV,CAAC;AAEX,QAAA,MAAM,mBAAmB;;;;;;;;EAGf,CAAC;AAEX,iBAAS,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAWrG;AAED,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,cAAc,EACd,WAAW,EACX,cAAc,GACf,CAAC;AAEF,YAAY,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { stringToSurface } from '@flyingrobots/bijou';
2
+ function textSurface(text) {
3
+ const lines = text.split('\n');
4
+ return stringToSurface(text, Math.max(1, ...lines.map((line) => line.length)), Math.max(1, lines.length));
5
+ }
6
+ function makeTheme(name, primaryHex, primaryBg, accentHex = '#c084fc') {
7
+ return {
8
+ name,
9
+ status: {
10
+ success: { hex: '#22c55e' },
11
+ error: { hex: '#ef4444' },
12
+ warning: { hex: '#f59e0b' },
13
+ info: { hex: '#38bdf8' },
14
+ pending: { hex: '#64748b', modifiers: ['dim'] },
15
+ active: { hex: '#38bdf8' },
16
+ muted: { hex: '#64748b', modifiers: ['dim', 'strikethrough'] },
17
+ },
18
+ semantic: {
19
+ success: { hex: '#22c55e' },
20
+ error: { hex: '#ef4444' },
21
+ warning: { hex: '#f59e0b' },
22
+ info: { hex: '#38bdf8' },
23
+ accent: { hex: accentHex },
24
+ muted: { hex: '#94a3b8', modifiers: ['dim'] },
25
+ primary: { hex: primaryHex, modifiers: ['bold'] },
26
+ },
27
+ gradient: {
28
+ brand: [
29
+ { pos: 0, color: [56, 189, 248] },
30
+ { pos: 1, color: [192, 132, 252] },
31
+ ],
32
+ progress: [
33
+ { pos: 0, color: [34, 197, 94] },
34
+ { pos: 1, color: [56, 189, 248] },
35
+ ],
36
+ },
37
+ border: {
38
+ primary: { hex: '#38bdf8' },
39
+ secondary: { hex: accentHex },
40
+ success: { hex: '#22c55e' },
41
+ warning: { hex: '#f59e0b' },
42
+ error: { hex: '#ef4444' },
43
+ muted: { hex: '#64748b' },
44
+ },
45
+ ui: {
46
+ cursor: { hex: '#38bdf8' },
47
+ focusGutter: { hex: accentHex },
48
+ scrollThumb: { hex: '#38bdf8' },
49
+ scrollTrack: { hex: '#334155' },
50
+ sectionHeader: { hex: primaryHex, modifiers: ['bold'] },
51
+ logo: { hex: '#38bdf8' },
52
+ tableHeader: { hex: primaryHex },
53
+ trackEmpty: { hex: '#1e293b' },
54
+ },
55
+ surface: {
56
+ primary: { hex: primaryHex, bg: primaryBg },
57
+ secondary: { hex: '#e2e8f0', bg: '#1e293b' },
58
+ elevated: { hex: primaryHex, bg: '#334155' },
59
+ overlay: { hex: primaryHex, bg: primaryBg },
60
+ muted: { hex: '#94a3b8', bg: '#020617' },
61
+ },
62
+ };
63
+ }
64
+ const TEST_THEME = makeTheme('test-theme', '#f8fafc', '#0f172a');
65
+ const LIGHT_THEME = makeTheme('light-theme', '#0f172a', '#f8fafc', '#2563eb');
66
+ const DARK_THEME = makeTheme('dark-theme', '#f8fafc', '#020617', '#c084fc');
67
+ const TEST_THEME_SET = [
68
+ { id: 'light', theme: LIGHT_THEME },
69
+ { id: 'dark', theme: DARK_THEME },
70
+ ];
71
+ const CUSTOM_ID_THEME_SET = [
72
+ { id: 'sunrise', scheme: 'light', theme: LIGHT_THEME },
73
+ { id: 'midnight', scheme: 'dark', theme: DARK_THEME },
74
+ ];
75
+ function withStdoutSize(columns, rows, runTest) {
76
+ const originalColumns = process.stdout.columns;
77
+ const originalRows = process.stdout.rows;
78
+ Object.defineProperty(process.stdout, 'columns', { configurable: true, value: columns });
79
+ Object.defineProperty(process.stdout, 'rows', { configurable: true, value: rows });
80
+ try {
81
+ return runTest();
82
+ }
83
+ finally {
84
+ Object.defineProperty(process.stdout, 'columns', { configurable: true, value: originalColumns });
85
+ Object.defineProperty(process.stdout, 'rows', { configurable: true, value: originalRows });
86
+ }
87
+ }
88
+ export { CUSTOM_ID_THEME_SET, DARK_THEME, LIGHT_THEME, makeTheme, TEST_THEME, TEST_THEME_SET, textSurface, withStdoutSize, };
89
+ //# sourceMappingURL=index.test-support.part01.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test-support.part01.js","sourceRoot":"","sources":["../src/index.test-support.part01.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Theme } from '@flyingrobots/bijou';
2
+ declare const UNUSED_THEME: Theme;
3
+ declare const LEGACY_TEST_THEME: Theme;
4
+ export { LEGACY_TEST_THEME, UNUSED_THEME };
5
+ //# sourceMappingURL=index.test-support.part02.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test-support.part02.d.ts","sourceRoot":"","sources":["../src/index.test-support.part02.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD,QAAA,MAAM,YAAY,EAAE,KAGnB,CAAC;AAEF,QAAA,MAAM,iBAAiB,EAAE,KAuDxB,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { TEST_THEME } from './index.test-support.part01.js';
2
+ const UNUSED_THEME = {
3
+ ...TEST_THEME,
4
+ name: 'unused-theme',
5
+ };
6
+ const LEGACY_TEST_THEME = {
7
+ name: 'test-theme',
8
+ status: {
9
+ success: { hex: '#22c55e' },
10
+ error: { hex: '#ef4444' },
11
+ warning: { hex: '#f59e0b' },
12
+ info: { hex: '#38bdf8' },
13
+ pending: { hex: '#64748b', modifiers: ['dim'] },
14
+ active: { hex: '#38bdf8' },
15
+ muted: { hex: '#64748b', modifiers: ['dim', 'strikethrough'] },
16
+ },
17
+ semantic: {
18
+ success: { hex: '#22c55e' },
19
+ error: { hex: '#ef4444' },
20
+ warning: { hex: '#f59e0b' },
21
+ info: { hex: '#38bdf8' },
22
+ accent: { hex: '#c084fc' },
23
+ muted: { hex: '#94a3b8', modifiers: ['dim'] },
24
+ primary: { hex: '#f8fafc', modifiers: ['bold'] },
25
+ },
26
+ gradient: {
27
+ brand: [
28
+ { pos: 0, color: [56, 189, 248] },
29
+ { pos: 1, color: [192, 132, 252] },
30
+ ],
31
+ progress: [
32
+ { pos: 0, color: [34, 197, 94] },
33
+ { pos: 1, color: [56, 189, 248] },
34
+ ],
35
+ },
36
+ border: {
37
+ primary: { hex: '#38bdf8' },
38
+ secondary: { hex: '#c084fc' },
39
+ success: { hex: '#22c55e' },
40
+ warning: { hex: '#f59e0b' },
41
+ error: { hex: '#ef4444' },
42
+ muted: { hex: '#64748b' },
43
+ },
44
+ ui: {
45
+ cursor: { hex: '#38bdf8' },
46
+ focusGutter: { hex: '#c084fc' },
47
+ scrollThumb: { hex: '#38bdf8' },
48
+ scrollTrack: { hex: '#334155' },
49
+ sectionHeader: { hex: '#f8fafc', modifiers: ['bold'] },
50
+ logo: { hex: '#38bdf8' },
51
+ tableHeader: { hex: '#f8fafc' },
52
+ trackEmpty: { hex: '#1e293b' },
53
+ },
54
+ surface: {
55
+ primary: { hex: '#f8fafc', bg: '#0f172a' },
56
+ secondary: { hex: '#e2e8f0', bg: '#1e293b' },
57
+ elevated: { hex: '#f8fafc', bg: '#334155' },
58
+ overlay: { hex: '#f8fafc', bg: '#0f172a' },
59
+ muted: { hex: '#94a3b8', bg: '#020617' },
60
+ },
61
+ };
62
+ export { LEGACY_TEST_THEME, UNUSED_THEME };
63
+ //# sourceMappingURL=index.test-support.part02.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test-support.part02.js","sourceRoot":"","sources":["../src/index.test-support.part02.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ClockPort, IOPort } from '@flyingrobots/bijou';
2
+ /** Optional overrides for `nodeIO`. */
3
+ export interface NodeIOOptions {
4
+ /** Clock override for deterministic timer scheduling in tests. */
5
+ clock?: ClockPort;
6
+ /** Writable stdout override for deterministic host tests. */
7
+ stdout?: NodeWriteStream;
8
+ /** Writable stderr override for deterministic host tests. */
9
+ stderr?: NodeWriteStream;
10
+ }
11
+ export interface NodeWriteStream {
12
+ write(data: string | Uint8Array): unknown;
13
+ }
14
+ export interface ScopedNodeIOOptions extends NodeIOOptions {
15
+ /** Root directory that all file access must stay inside. */
16
+ readonly root: string;
17
+ /** Optional base adapter for stdout/stdin/timer behavior. Defaults to `nodeIO`. */
18
+ readonly baseIO?: IOPort;
19
+ }
20
+ export interface ScopedNodeIO extends IOPort {
21
+ /** Absolute root directory that constrains filesystem access. */
22
+ readonly root: string;
23
+ /** Resolve a relative or absolute path and reject anything outside `root`. */
24
+ resolvePath(path: string): string;
25
+ }
26
+ //# sourceMappingURL=io-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io-types.d.ts","sourceRoot":"","sources":["../src/io-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7D,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=io-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io-types.js","sourceRoot":"","sources":["../src/io-types.ts"],"names":[],"mappings":""}
package/dist/io.d.ts CHANGED
@@ -1,21 +1,6 @@
1
- import { type ClockPort, type IOPort } from '@flyingrobots/bijou';
2
- /** Optional overrides for {@link nodeIO}. */
3
- export interface NodeIOOptions {
4
- /** Clock override for deterministic timer scheduling in tests. */
5
- clock?: ClockPort;
6
- }
7
- export interface ScopedNodeIOOptions extends NodeIOOptions {
8
- /** Root directory that all file access must stay inside. */
9
- readonly root: string;
10
- /** Optional base adapter for stdout/stdin/timer behavior. Defaults to {@link nodeIO}. */
11
- readonly baseIO?: IOPort;
12
- }
13
- export interface ScopedNodeIO extends IOPort {
14
- /** Absolute root directory that constrains filesystem access. */
15
- readonly root: string;
16
- /** Resolve a relative or absolute path and reject anything outside {@link root}. */
17
- resolvePath(path: string): string;
18
- }
1
+ import { type IOPort } from '@flyingrobots/bijou';
2
+ import type { NodeIOOptions, ScopedNodeIO, ScopedNodeIOOptions } from './io-types.js';
3
+ export type { NodeIOOptions, NodeWriteStream, ScopedNodeIO, ScopedNodeIOOptions } from './io-types.js';
19
4
  export declare class ScopedNodeIOError extends Error {
20
5
  constructor(root: string, requestedPath: string);
21
6
  }
package/dist/io.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,SAAS,EAAE,KAAK,MAAM,EAAyC,MAAM,qBAAqB,CAAC;AAEvH,6CAA6C;AAC7C,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAIhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CAoK1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAmDvE"}
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,MAAM,EAAyC,MAAM,qBAAqB,CAAC;AACvG,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGtF,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACvG,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAIhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CA4J1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAmDvE"}