@flyingrobots/bijou-node 7.1.0 → 8.0.0-rc.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.
- package/dist/chalk-token-styler.d.ts +4 -0
- package/dist/chalk-token-styler.d.ts.map +1 -0
- package/dist/chalk-token-styler.js +79 -0
- package/dist/chalk-token-styler.js.map +1 -0
- package/dist/gifenc-runtime.d.ts +5 -0
- package/dist/gifenc-runtime.d.ts.map +1 -0
- package/dist/gifenc-runtime.js +30 -0
- package/dist/gifenc-runtime.js.map +1 -0
- package/dist/index.d.ts +7 -56
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -117
- package/dist/index.js.map +1 -1
- package/dist/index.test-support.d.ts +11 -0
- package/dist/index.test-support.d.ts.map +1 -0
- package/dist/index.test-support.js +9 -0
- package/dist/index.test-support.js.map +1 -0
- package/dist/index.test-support.part01.d.ts +28 -0
- package/dist/index.test-support.part01.d.ts.map +1 -0
- package/dist/index.test-support.part01.js +89 -0
- package/dist/index.test-support.part01.js.map +1 -0
- package/dist/index.test-support.part02.d.ts +5 -0
- package/dist/index.test-support.part02.d.ts.map +1 -0
- package/dist/index.test-support.part02.js +63 -0
- package/dist/index.test-support.part02.js.map +1 -0
- package/dist/io-types.d.ts +26 -0
- package/dist/io-types.d.ts.map +1 -0
- package/dist/io-types.js +2 -0
- package/dist/io-types.js.map +1 -0
- package/dist/io.d.ts +3 -18
- package/dist/io.d.ts.map +1 -1
- package/dist/io.js +10 -17
- package/dist/io.js.map +1 -1
- package/dist/io.test-support.d.ts +5 -0
- package/dist/io.test-support.d.ts.map +1 -0
- package/dist/io.test-support.js +13 -0
- package/dist/io.test-support.js.map +1 -0
- package/dist/node-context-selection.d.ts +11 -0
- package/dist/node-context-selection.d.ts.map +1 -0
- package/dist/node-context-selection.js +77 -0
- package/dist/node-context-selection.js.map +1 -0
- package/dist/node-context.d.ts +14 -0
- package/dist/node-context.d.ts.map +1 -0
- package/dist/node-context.js +30 -0
- package/dist/node-context.js.map +1 -0
- package/dist/oled-font.d.ts +8 -0
- package/dist/oled-font.d.ts.map +1 -0
- package/dist/oled-font.js +28 -0
- package/dist/oled-font.js.map +1 -0
- package/dist/options.d.ts +48 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +2 -0
- package/dist/options.js.map +1 -0
- package/dist/readline-output.d.ts +3 -0
- package/dist/readline-output.d.ts.map +1 -0
- package/dist/readline-output.js +20 -0
- package/dist/readline-output.js.map +1 -0
- package/dist/recorder.d.ts +2 -40
- package/dist/recorder.d.ts.map +1 -1
- package/dist/recorder.js +1 -240
- package/dist/recorder.js.map +1 -1
- package/dist/recorder.part01.d.ts +56 -0
- package/dist/recorder.part01.d.ts.map +1 -0
- package/dist/recorder.part01.js +76 -0
- package/dist/recorder.part01.js.map +1 -0
- package/dist/recorder.part02.d.ts +5 -0
- package/dist/recorder.part02.d.ts.map +1 -0
- package/dist/recorder.part02.js +54 -0
- package/dist/recorder.part02.js.map +1 -0
- package/dist/recorder.part03.d.ts +6 -0
- package/dist/recorder.part03.d.ts.map +1 -0
- package/dist/recorder.part03.js +118 -0
- package/dist/recorder.part03.js.map +1 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +10 -4
- package/dist/runtime.js.map +1 -1
- package/dist/style.d.ts +1 -8
- package/dist/style.d.ts.map +1 -1
- package/dist/style.js +10 -98
- package/dist/style.js.map +1 -1
- package/dist/worker/fixtures/echo-worker.js +7 -6
- package/dist/worker/fixtures/echo-worker.js.map +1 -1
- package/dist/worker/worker-data.d.ts +25 -0
- package/dist/worker/worker-data.d.ts.map +1 -0
- package/dist/worker/worker-data.js +44 -0
- package/dist/worker/worker-data.js.map +1 -0
- package/dist/worker/worker-mouse-mode.d.ts +10 -0
- package/dist/worker/worker-mouse-mode.d.ts.map +1 -0
- package/dist/worker/worker-mouse-mode.js +14 -0
- package/dist/worker/worker-mouse-mode.js.map +1 -0
- package/dist/worker/worker-options.d.ts +33 -0
- package/dist/worker/worker-options.d.ts.map +1 -0
- package/dist/worker/worker-options.js +2 -0
- package/dist/worker/worker-options.js.map +1 -0
- package/dist/worker/worker.d.ts +5 -106
- package/dist/worker/worker.d.ts.map +1 -1
- package/dist/worker/worker.js +3 -228
- package/dist/worker/worker.js.map +1 -1
- package/dist/worker/worker.part01.d.ts +59 -0
- package/dist/worker/worker.part01.d.ts.map +1 -0
- package/dist/worker/worker.part01.js +40 -0
- package/dist/worker/worker.part01.js.map +1 -0
- package/dist/worker/worker.part02.d.ts +12 -0
- package/dist/worker/worker.part02.d.ts.map +1 -0
- package/dist/worker/worker.part02.js +121 -0
- package/dist/worker/worker.part02.js.map +1 -0
- package/dist/worker/worker.part03.d.ts +13 -0
- package/dist/worker/worker.part03.d.ts.map +1 -0
- package/dist/worker/worker.part03.js +106 -0
- package/dist/worker/worker.part03.js.map +1 -0
- package/package.json +3 -3
|
@@ -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 @@
|
|
|
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"}
|
package/dist/io-types.js
ADDED
|
@@ -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
|
|
2
|
-
|
|
3
|
-
export
|
|
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,
|
|
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"}
|
package/dist/io.js
CHANGED
|
@@ -2,6 +2,7 @@ import * as readline from 'readline';
|
|
|
2
2
|
import { existsSync, readFileSync, readdirSync, realpathSync } from 'fs';
|
|
3
3
|
import { basename, dirname, isAbsolute, join, relative, resolve } from 'path';
|
|
4
4
|
import { resolveClock } from '@flyingrobots/bijou';
|
|
5
|
+
import { createReadlineOutput } from './readline-output.js';
|
|
5
6
|
export class ScopedNodeIOError extends Error {
|
|
6
7
|
constructor(root, requestedPath) {
|
|
7
8
|
super(`Scoped node IO path escapes root "${root}": ${requestedPath}`);
|
|
@@ -21,14 +22,11 @@ export class ScopedNodeIOError extends Error {
|
|
|
21
22
|
*/
|
|
22
23
|
export function nodeIO(options = {}) {
|
|
23
24
|
const clock = resolveClock(options.clock);
|
|
25
|
+
const stdout = options.stdout ?? process.stdout;
|
|
26
|
+
const stderr = options.stderr ?? process.stderr;
|
|
24
27
|
return {
|
|
25
|
-
/**
|
|
26
|
-
* Write a string directly to `process.stdout`.
|
|
27
|
-
*
|
|
28
|
-
* @param data - Text to write.
|
|
29
|
-
*/
|
|
30
28
|
write(data) {
|
|
31
|
-
|
|
29
|
+
stdout.write(data);
|
|
32
30
|
},
|
|
33
31
|
/**
|
|
34
32
|
* Write raw bytes directly to `process.stdout`. Allows the
|
|
@@ -43,19 +41,14 @@ export function nodeIO(options = {}) {
|
|
|
43
41
|
if (len <= 0)
|
|
44
42
|
return;
|
|
45
43
|
if (len === buf.length) {
|
|
46
|
-
|
|
44
|
+
stdout.write(buf);
|
|
47
45
|
}
|
|
48
46
|
else {
|
|
49
|
-
|
|
47
|
+
stdout.write(buf.subarray(0, len));
|
|
50
48
|
}
|
|
51
49
|
},
|
|
52
|
-
/**
|
|
53
|
-
* Write a string directly to `process.stderr`.
|
|
54
|
-
*
|
|
55
|
-
* @param data - Text to write.
|
|
56
|
-
*/
|
|
57
50
|
writeError(data) {
|
|
58
|
-
|
|
51
|
+
stderr.write(data);
|
|
59
52
|
},
|
|
60
53
|
/**
|
|
61
54
|
* Prompt the user for a single line of input using a readline interface.
|
|
@@ -72,7 +65,7 @@ export function nodeIO(options = {}) {
|
|
|
72
65
|
question(prompt) {
|
|
73
66
|
const rl = readline.createInterface({
|
|
74
67
|
input: process.stdin,
|
|
75
|
-
output: process.stdout,
|
|
68
|
+
output: options.stdout === undefined ? process.stdout : createReadlineOutput(stdout),
|
|
76
69
|
});
|
|
77
70
|
return new Promise((resolve) => {
|
|
78
71
|
rl.question(prompt, (answer) => {
|
|
@@ -119,7 +112,7 @@ export function nodeIO(options = {}) {
|
|
|
119
112
|
*/
|
|
120
113
|
onResize(callback) {
|
|
121
114
|
const handler = () => {
|
|
122
|
-
callback(process.stdout.columns
|
|
115
|
+
callback(process.stdout.columns, process.stdout.rows);
|
|
123
116
|
};
|
|
124
117
|
process.stdout.on('resize', handler);
|
|
125
118
|
return {
|
|
@@ -187,7 +180,7 @@ export function nodeIO(options = {}) {
|
|
|
187
180
|
* @returns An {@link ScopedNodeIO} rooted at the provided directory.
|
|
188
181
|
*/
|
|
189
182
|
export function scopedNodeIO(options) {
|
|
190
|
-
const baseIO = options.baseIO ?? nodeIO({ clock: options.clock });
|
|
183
|
+
const baseIO = options.baseIO ?? nodeIO({ clock: options.clock, stdout: options.stdout, stderr: options.stderr });
|
|
191
184
|
const root = resolve(options.root);
|
|
192
185
|
const realRoot = realpathSync.native(root);
|
|
193
186
|
function assertWithinRoot(realCandidate, requestedPath) {
|
package/dist/io.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"io.js","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9E,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"io.js","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAsD,MAAM,qBAAqB,CAAC;AAEvG,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,IAAY,EAAE,aAAqB;QAC7C,KAAK,CAAC,qCAAqC,IAAI,MAAM,aAAa,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,UAAyB,EAAE;IAChD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,OAAO;QACL,KAAK,CAAC,IAAY;YAChB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED;;;;;;;;WAQG;QACH,UAAU,CAAC,GAAe,EAAE,GAAW;YACrC,IAAI,GAAG,IAAI,CAAC;gBAAE,OAAO;YACrB,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,UAAU,CAAC,IAAY;YACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED;;;;;;;;;;;WAWG;QACH,QAAQ,CAAC,MAAc;YACrB,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC;aACrF,CAAC,CAAC;YACH,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;gBACrC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;oBAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED;;;;;;;;;WASG;QACH,QAAQ,CAAC,KAA4B;YACnC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,CAAC,IAAY,EAAQ,EAAE;gBACrC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClC,OAAO;gBACL,8DAA8D;gBAC9D,OAAO;oBACL,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC9C,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBAChC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC;aACF,CAAC;QACJ,CAAC;QAED;;;;;;;;;WASG;QACH,QAAQ,CAAC,QAA8C;YACrD,MAAM,OAAO,GAAG,GAAS,EAAE;gBACzB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrC,OAAO;gBACL,wDAAwD;gBACxD,OAAO;oBACL,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnD,CAAC;aACF,CAAC;QACJ,CAAC;QAED;;;;;;WAMG;QACH,WAAW,CAAC,QAAoB,EAAE,EAAU;YAC1C,OAAO,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;QAED;;;;;;WAMG;QACH,QAAQ,CAAC,IAAY;YACnB,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QAED;;;;;;;;;;;WAWG;QACH,OAAO,CAAC,OAAe;YACrB,OAAO,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACjE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CACpD,CAAC;QACJ,CAAC;QAED;;;;;WAKG;QACH,QAAQ,CAAC,GAAG,QAAkB;YAC5B,OAAO,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,OAA4B;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClH,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE3C,SAAS,gBAAgB,CAAC,aAAqB,EAAE,aAAqB;QACpE,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC9C,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QACD,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,SAAS,qBAAqB,CAAC,aAAqB;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,YAAY,GAAG,SAAS,CAAC;QAE7B,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACrC,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;gBAC5B,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;YACvC,YAAY,GAAG,MAAM,CAAC;QACxB,CAAC;QAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC;YACvC,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,CAAC;QACzC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAC/C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,IAAI;QACJ,WAAW,CAAC,IAAY;YACtB,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,QAAQ,CAAC,IAAY;YACnB,OAAO,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,IAAY;YAClB,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,QAAQ,CAAC,GAAG,QAAkB;YAC5B,OAAO,qBAAqB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.test-support.d.ts","sourceRoot":"","sources":["../src/io.test-support.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,IAAI;IAAE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAAC,IAAI,IAAI,MAAM,CAAA;CAAE,CAW3F"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function capturedWriter() {
|
|
2
|
+
const chunks = [];
|
|
3
|
+
return {
|
|
4
|
+
write(data) {
|
|
5
|
+
chunks.push(data);
|
|
6
|
+
return true;
|
|
7
|
+
},
|
|
8
|
+
text() {
|
|
9
|
+
return chunks.map((chunk) => typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf8')).join('');
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=io.test-support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.test-support.js","sourceRoot":"","sources":["../src/io.test-support.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc;IAC5B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,OAAO;QACL,KAAK,CAAC,IAAyB;YAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI;YACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ColorScheme, Theme } from '@flyingrobots/bijou';
|
|
2
|
+
import type { NodeThemeOptions } from './options.js';
|
|
3
|
+
import { nodeRuntime } from './runtime.js';
|
|
4
|
+
export interface ResolvedNodeThemeSelection {
|
|
5
|
+
readonly fallbackTheme: Theme | undefined;
|
|
6
|
+
readonly colorScheme: ColorScheme;
|
|
7
|
+
readonly envVar: string | undefined;
|
|
8
|
+
readonly presets: Record<string, Theme> | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare function resolveNodeThemeSelection(runtime: ReturnType<typeof nodeRuntime>, options: NodeThemeOptions): ResolvedNodeThemeSelection;
|
|
11
|
+
//# sourceMappingURL=node-context-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-context-selection.d.ts","sourceRoot":"","sources":["../src/node-context-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC;CACrD;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,EACvC,OAAO,EAAE,gBAAgB,GACxB,0BAA0B,CAmD5B"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { detectColorScheme } from '@flyingrobots/bijou';
|
|
2
|
+
const DISABLED_THEME_ENV_VAR = '__BIJOU_THEME_DISABLED__';
|
|
3
|
+
export function resolveNodeThemeSelection(runtime, options) {
|
|
4
|
+
const colorScheme = resolveRequestedColorScheme(runtime, options);
|
|
5
|
+
const presets = mergeNodeThemePresets(options);
|
|
6
|
+
const envVar = options.envVar;
|
|
7
|
+
if (options.themeOverride !== undefined) {
|
|
8
|
+
const match = options.themes?.find((entry) => entry.id === options.themeOverride);
|
|
9
|
+
if (match !== undefined) {
|
|
10
|
+
return {
|
|
11
|
+
fallbackTheme: match.theme,
|
|
12
|
+
colorScheme: inferThemeEntryScheme(match) ?? colorScheme,
|
|
13
|
+
envVar: DISABLED_THEME_ENV_VAR,
|
|
14
|
+
presets,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const selectionEnvVar = envVar ?? 'BIJOU_THEME';
|
|
19
|
+
const envSelection = runtime.env(selectionEnvVar);
|
|
20
|
+
if (envSelection !== undefined) {
|
|
21
|
+
const match = options.themes?.find((entry) => entry.id === envSelection);
|
|
22
|
+
if (match !== undefined) {
|
|
23
|
+
return {
|
|
24
|
+
fallbackTheme: match.theme,
|
|
25
|
+
colorScheme: inferThemeEntryScheme(match) ?? colorScheme,
|
|
26
|
+
envVar: DISABLED_THEME_ENV_VAR,
|
|
27
|
+
presets,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
fallbackTheme: options.theme
|
|
32
|
+
?? resolveAutomaticThemeEntry(options, colorScheme)?.theme,
|
|
33
|
+
colorScheme,
|
|
34
|
+
envVar,
|
|
35
|
+
presets,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const automatic = resolveAutomaticThemeEntry(options, colorScheme);
|
|
39
|
+
return {
|
|
40
|
+
fallbackTheme: automatic?.theme ?? options.theme,
|
|
41
|
+
colorScheme: automatic == null
|
|
42
|
+
? colorScheme
|
|
43
|
+
: (inferThemeEntryScheme(automatic) ?? colorScheme),
|
|
44
|
+
envVar,
|
|
45
|
+
presets,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function inferThemeEntryScheme(entry) {
|
|
49
|
+
if (entry.scheme !== undefined)
|
|
50
|
+
return entry.scheme;
|
|
51
|
+
return entry.id === 'light' || entry.id === 'dark'
|
|
52
|
+
? entry.id
|
|
53
|
+
: undefined;
|
|
54
|
+
}
|
|
55
|
+
function mergeNodeThemePresets(options) {
|
|
56
|
+
if (options.themes === undefined || options.themes.length === 0) {
|
|
57
|
+
return options.presets;
|
|
58
|
+
}
|
|
59
|
+
const merged = { ...(options.presets ?? {}) };
|
|
60
|
+
for (const entry of options.themes) {
|
|
61
|
+
merged[entry.id] = entry.theme;
|
|
62
|
+
}
|
|
63
|
+
return merged;
|
|
64
|
+
}
|
|
65
|
+
function resolveRequestedColorScheme(runtime, options) {
|
|
66
|
+
const mode = options.themeMode ?? 'auto';
|
|
67
|
+
return mode === 'auto' ? detectColorScheme(runtime) : mode;
|
|
68
|
+
}
|
|
69
|
+
function resolveAutomaticThemeEntry(options, targetScheme) {
|
|
70
|
+
if (options.themes === undefined || options.themes.length === 0) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
return options.themes.find((entry) => inferThemeEntryScheme(entry) === targetScheme)
|
|
74
|
+
?? options.themes.find((entry) => entry.id === targetScheme)
|
|
75
|
+
?? options.themes[0];
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=node-context-selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-context-selection.js","sourceRoot":"","sources":["../src/node-context-selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BijouContext } from '@flyingrobots/bijou';
|
|
2
|
+
import type { CreateNodeContextOptions } from './options.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create a {@link BijouContext} wired to Node.js adapters.
|
|
5
|
+
*
|
|
6
|
+
* Assembles the Node runtime, I/O, and style adapters into one context. The
|
|
7
|
+
* style adapter honors `NO_COLOR`; theme selection remains explicit and
|
|
8
|
+
* deterministic through the supplied options and environment.
|
|
9
|
+
*
|
|
10
|
+
* @param options - Node I/O and theme-selection options.
|
|
11
|
+
* @returns A fresh {@link BijouContext} backed by the current Node.js process.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createNodeContext(options?: CreateNodeContextOptions): BijouContext;
|
|
14
|
+
//# sourceMappingURL=node-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-context.d.ts","sourceRoot":"","sources":["../src/node-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAM7D;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,YAAY,CAad"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createBijou } from '@flyingrobots/bijou';
|
|
2
|
+
import { nodeIO } from './io.js';
|
|
3
|
+
import { resolveNodeThemeSelection } from './node-context-selection.js';
|
|
4
|
+
import { nodeRuntime } from './runtime.js';
|
|
5
|
+
import { chalkStyle } from './style.js';
|
|
6
|
+
/**
|
|
7
|
+
* Create a {@link BijouContext} wired to Node.js adapters.
|
|
8
|
+
*
|
|
9
|
+
* Assembles the Node runtime, I/O, and style adapters into one context. The
|
|
10
|
+
* style adapter honors `NO_COLOR`; theme selection remains explicit and
|
|
11
|
+
* deterministic through the supplied options and environment.
|
|
12
|
+
*
|
|
13
|
+
* @param options - Node I/O and theme-selection options.
|
|
14
|
+
* @returns A fresh {@link BijouContext} backed by the current Node.js process.
|
|
15
|
+
*/
|
|
16
|
+
export function createNodeContext(options = {}) {
|
|
17
|
+
const runtime = nodeRuntime();
|
|
18
|
+
const noColor = runtime.env('NO_COLOR') !== undefined;
|
|
19
|
+
const selection = resolveNodeThemeSelection(runtime, options);
|
|
20
|
+
return createBijou({
|
|
21
|
+
runtime,
|
|
22
|
+
io: options.io ?? nodeIO(options.nodeIO),
|
|
23
|
+
style: chalkStyle({ noColor, level: noColor ? 0 : 3 }),
|
|
24
|
+
theme: selection.fallbackTheme,
|
|
25
|
+
presets: selection.presets,
|
|
26
|
+
envVar: selection.envVar,
|
|
27
|
+
colorScheme: selection.colorScheme,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=node-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-context.js","sourceRoot":"","sources":["../src/node-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAoC,EAAE;IAEtC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;IACtD,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,WAAW,CAAC;QACjB,OAAO;QACP,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,KAAK,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,KAAK,EAAE,SAAS,CAAC,aAAa;QAC9B,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,WAAW,EAAE,SAAS,CAAC,WAAW;KACnC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oled-font.d.ts","sourceRoot":"","sources":["../src/oled-font.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAcD,wBAAgB,YAAY,IAAI,QAAQ,CAiBvC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
const require = createRequire(import.meta.url);
|
|
3
|
+
function isRecord(value) {
|
|
4
|
+
return typeof value === 'object' && value !== null;
|
|
5
|
+
}
|
|
6
|
+
function isNumberArray(value) {
|
|
7
|
+
return Array.isArray(value) && value.every((item) => typeof item === 'number');
|
|
8
|
+
}
|
|
9
|
+
function isStringArray(value) {
|
|
10
|
+
return Array.isArray(value) && value.every((item) => typeof item === 'string');
|
|
11
|
+
}
|
|
12
|
+
export function loadOledFont() {
|
|
13
|
+
const loaded = require('oled-font-5x7');
|
|
14
|
+
if (!isRecord(loaded)
|
|
15
|
+
|| typeof loaded['width'] !== 'number'
|
|
16
|
+
|| typeof loaded['height'] !== 'number'
|
|
17
|
+
|| !isNumberArray(loaded['fontData'])
|
|
18
|
+
|| !isStringArray(loaded['lookup'])) {
|
|
19
|
+
throw new Error('Invalid oled-font-5x7 module shape');
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
width: loaded['width'],
|
|
23
|
+
height: loaded['height'],
|
|
24
|
+
fontData: loaded['fontData'],
|
|
25
|
+
lookup: loaded['lookup'],
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=oled-font.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oled-font.js","sourceRoot":"","sources":["../src/oled-font.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAS/C,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAY,OAAO,CAAC,eAAe,CAAC,CAAC;IACjD,IACE,CAAC,QAAQ,CAAC,MAAM,CAAC;WACd,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ;WACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ;WACpC,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;WAClC,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EACnC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;KACzB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ColorScheme, IOPort, Theme } from '@flyingrobots/bijou';
|
|
2
|
+
import type { NodeIOOptions } from './io-types.js';
|
|
3
|
+
/** Theme-selection options for Node-hosted context creation. */
|
|
4
|
+
export interface NodeThemeEntry {
|
|
5
|
+
/** Stable selection id for env/config or app-owned override state. */
|
|
6
|
+
readonly id: string;
|
|
7
|
+
/** Theme value associated with this entry. */
|
|
8
|
+
readonly theme: Theme;
|
|
9
|
+
/**
|
|
10
|
+
* Optional light/dark hint used by automatic selection.
|
|
11
|
+
*
|
|
12
|
+
* When omitted, `id === "light"` and `id === "dark"` are treated as the
|
|
13
|
+
* corresponding scheme.
|
|
14
|
+
*/
|
|
15
|
+
readonly scheme?: ColorScheme;
|
|
16
|
+
}
|
|
17
|
+
/** Host-level theme mode for automatic selection. */
|
|
18
|
+
export type NodeThemeMode = 'auto' | ColorScheme;
|
|
19
|
+
/** Theme-selection options for Node-hosted context creation. */
|
|
20
|
+
export interface NodeThemeOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Explicit fallback theme object to use for this host context.
|
|
23
|
+
*
|
|
24
|
+
* This wins whenever the selected env var does not point at a known preset or
|
|
25
|
+
* a valid DTCG JSON file.
|
|
26
|
+
*/
|
|
27
|
+
theme?: Theme;
|
|
28
|
+
/** Named preset themes available to env-var selection. */
|
|
29
|
+
presets?: Record<string, Theme>;
|
|
30
|
+
/** Environment variable name that selects a preset or JSON theme path. */
|
|
31
|
+
envVar?: string;
|
|
32
|
+
/** Named theme entries available for auto-selection or app-owned overrides. */
|
|
33
|
+
themes?: readonly NodeThemeEntry[];
|
|
34
|
+
/** Automatic or forced light/dark selection mode for `themes`. */
|
|
35
|
+
themeMode?: NodeThemeMode;
|
|
36
|
+
/** Explicit theme-entry id override that wins over env-driven selection. */
|
|
37
|
+
themeOverride?: string;
|
|
38
|
+
}
|
|
39
|
+
/** Options for `createNodeContext`. */
|
|
40
|
+
export interface CreateNodeContextOptions extends NodeThemeOptions {
|
|
41
|
+
/** Optional IO adapter override for tests or embedded hosts. */
|
|
42
|
+
readonly io?: IOPort;
|
|
43
|
+
/** Optional Node IO construction overrides when `io` is omitted. */
|
|
44
|
+
readonly nodeIO?: NodeIOOptions;
|
|
45
|
+
}
|
|
46
|
+
/** Options for `initDefaultContext`. */
|
|
47
|
+
export type InitDefaultContextOptions = CreateNodeContextOptions;
|
|
48
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,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,uCAAuC;AACvC,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;CACjC;AAED,wCAAwC;AACxC,MAAM,MAAM,yBAAyB,GAAG,wBAAwB,CAAC"}
|
package/dist/options.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readline-output.d.ts","sourceRoot":"","sources":["../src/readline-output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAqBrD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,cAAc,CAEnF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
class ReadlineOutputAdapter extends EventEmitter {
|
|
3
|
+
writer;
|
|
4
|
+
writable = true;
|
|
5
|
+
constructor(writer) {
|
|
6
|
+
super();
|
|
7
|
+
this.writer = writer;
|
|
8
|
+
}
|
|
9
|
+
write(buffer) {
|
|
10
|
+
const result = this.writer.write(buffer);
|
|
11
|
+
return typeof result === 'boolean' ? result : true;
|
|
12
|
+
}
|
|
13
|
+
end() {
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function createReadlineOutput(writer) {
|
|
18
|
+
return new ReadlineOutputAdapter(writer);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=readline-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readline-output.js","sourceRoot":"","sources":["../src/readline-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,qBAAsB,SAAQ,YAAY;IAGjB;IAFpB,QAAQ,GAAG,IAAI,CAAC;IAEzB,YAA6B,MAAuB;QAClD,KAAK,EAAE,CAAC;QADmB,WAAM,GAAN,MAAM,CAAiB;IAEpD,CAAC;IAID,KAAK,CAAC,MAA2B;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IAC1D,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC"}
|