@flyingrobots/bijou 7.0.0 → 7.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-scene-ir.d.ts","sourceRoot":"","sources":["../../src/core/ui-scene-ir.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,571 @@
1
+ import { createSurface } from '../ports/surface.js';
2
+ import { segmentSurfaceText } from './components/surface-text.js';
3
+ export const UI_SCENE_IR_VERSION = 'ui-scene-ir/1';
4
+ export const UI_SCENE_RECEIPT_VERSION = 'ui-scene-receipt/1';
5
+ const DEFAULT_SUPPORTED_BIJOU_REQUIREMENTS = new Set([
6
+ 'ui-scene/core/1',
7
+ 'ui-scene/text/1',
8
+ 'ui-scene/tokens/1',
9
+ 'ui-scene/i18n/1',
10
+ 'ui-scene/actions/1',
11
+ 'ui-scene/bindings/1',
12
+ ]);
13
+ export function stableUiSceneStringify(value) {
14
+ const normalized = normalizeStableJson(value);
15
+ if (normalized === undefined) {
16
+ throw new Error('ui-scene-ir/1 JSON value cannot be top-level undefined');
17
+ }
18
+ return JSON.stringify(normalized);
19
+ }
20
+ export function hashUiSceneValue(value) {
21
+ const source = stableUiSceneStringify(value);
22
+ return `sha256:${sha256Hex(source)}`;
23
+ }
24
+ const SHA256_K = [
25
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
26
+ 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
27
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
28
+ 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
29
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
30
+ 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
31
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
32
+ 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
33
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
34
+ 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
35
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
36
+ 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
37
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
38
+ 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
39
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
40
+ 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
41
+ ];
42
+ function sha256Hex(source) {
43
+ const sourceBytes = new TextEncoder().encode(source);
44
+ const bitLength = sourceBytes.length * 8;
45
+ const paddedLength = Math.ceil((sourceBytes.length + 9) / 64) * 64;
46
+ const bytes = new Uint8Array(paddedLength);
47
+ bytes.set(sourceBytes);
48
+ bytes[sourceBytes.length] = 0x80;
49
+ const view = new DataView(bytes.buffer);
50
+ view.setUint32(paddedLength - 8, Math.floor(bitLength / 0x1_0000_0000));
51
+ view.setUint32(paddedLength - 4, bitLength >>> 0);
52
+ let h0 = 0x6a09e667;
53
+ let h1 = 0xbb67ae85;
54
+ let h2 = 0x3c6ef372;
55
+ let h3 = 0xa54ff53a;
56
+ let h4 = 0x510e527f;
57
+ let h5 = 0x9b05688c;
58
+ let h6 = 0x1f83d9ab;
59
+ let h7 = 0x5be0cd19;
60
+ const words = new Uint32Array(64);
61
+ for (let offset = 0; offset < bytes.length; offset += 64) {
62
+ for (let index = 0; index < 16; index++) {
63
+ words[index] = view.getUint32(offset + index * 4);
64
+ }
65
+ for (let index = 16; index < 64; index++) {
66
+ words[index] = (sha256SmallSigma1(words[index - 2])
67
+ + words[index - 7]
68
+ + sha256SmallSigma0(words[index - 15])
69
+ + words[index - 16]) >>> 0;
70
+ }
71
+ let a = h0;
72
+ let b = h1;
73
+ let c = h2;
74
+ let d = h3;
75
+ let e = h4;
76
+ let f = h5;
77
+ let g = h6;
78
+ let h = h7;
79
+ for (let index = 0; index < 64; index++) {
80
+ const temp1 = (h
81
+ + sha256BigSigma1(e)
82
+ + ((e & f) ^ (~e & g))
83
+ + SHA256_K[index]
84
+ + words[index]) >>> 0;
85
+ const temp2 = (sha256BigSigma0(a) + ((a & b) ^ (a & c) ^ (b & c))) >>> 0;
86
+ h = g;
87
+ g = f;
88
+ f = e;
89
+ e = (d + temp1) >>> 0;
90
+ d = c;
91
+ c = b;
92
+ b = a;
93
+ a = (temp1 + temp2) >>> 0;
94
+ }
95
+ h0 = (h0 + a) >>> 0;
96
+ h1 = (h1 + b) >>> 0;
97
+ h2 = (h2 + c) >>> 0;
98
+ h3 = (h3 + d) >>> 0;
99
+ h4 = (h4 + e) >>> 0;
100
+ h5 = (h5 + f) >>> 0;
101
+ h6 = (h6 + g) >>> 0;
102
+ h7 = (h7 + h) >>> 0;
103
+ }
104
+ return [h0, h1, h2, h3, h4, h5, h6, h7]
105
+ .map((word) => word.toString(16).padStart(8, '0'))
106
+ .join('');
107
+ }
108
+ function sha256RotateRight(value, bits) {
109
+ return (value >>> bits) | (value << (32 - bits));
110
+ }
111
+ function sha256BigSigma0(value) {
112
+ return sha256RotateRight(value, 2) ^ sha256RotateRight(value, 13) ^ sha256RotateRight(value, 22);
113
+ }
114
+ function sha256BigSigma1(value) {
115
+ return sha256RotateRight(value, 6) ^ sha256RotateRight(value, 11) ^ sha256RotateRight(value, 25);
116
+ }
117
+ function sha256SmallSigma0(value) {
118
+ return sha256RotateRight(value, 7) ^ sha256RotateRight(value, 18) ^ (value >>> 3);
119
+ }
120
+ function sha256SmallSigma1(value) {
121
+ return sha256RotateRight(value, 17) ^ sha256RotateRight(value, 19) ^ (value >>> 10);
122
+ }
123
+ export function validateUiSceneIr(scene) {
124
+ const issues = [];
125
+ if (scene.irVersion !== UI_SCENE_IR_VERSION) {
126
+ issues.push({
127
+ code: 'unsupported-ir-version',
128
+ message: `Unsupported UI scene IR version: ${scene.irVersion}`,
129
+ id: scene.irVersion,
130
+ });
131
+ }
132
+ const nodeIds = new Set();
133
+ const duplicateNodeIds = new Set();
134
+ for (const node of scene.nodes) {
135
+ if (nodeIds.has(node.id)) {
136
+ duplicateNodeIds.add(node.id);
137
+ continue;
138
+ }
139
+ nodeIds.add(node.id);
140
+ }
141
+ if (!nodeIds.has(scene.rootNodeId)) {
142
+ issues.push({
143
+ code: 'root-node-missing',
144
+ message: `Root node does not exist: ${scene.rootNodeId}`,
145
+ id: scene.rootNodeId,
146
+ });
147
+ }
148
+ for (const id of duplicateNodeIds) {
149
+ issues.push({
150
+ code: 'duplicate-node-id',
151
+ message: `Duplicate node id: ${id}`,
152
+ id,
153
+ });
154
+ }
155
+ const actionIds = new Set();
156
+ const duplicateActionIds = new Set();
157
+ for (const action of scene.actions) {
158
+ if (actionIds.has(action.id)) {
159
+ duplicateActionIds.add(action.id);
160
+ continue;
161
+ }
162
+ actionIds.add(action.id);
163
+ }
164
+ for (const id of duplicateActionIds) {
165
+ issues.push({
166
+ code: 'duplicate-action-id',
167
+ message: `Duplicate action id: ${id}`,
168
+ id,
169
+ });
170
+ }
171
+ const bindingIds = new Set();
172
+ const duplicateBindingIds = new Set();
173
+ for (const binding of scene.bindings) {
174
+ if (bindingIds.has(binding.id)) {
175
+ duplicateBindingIds.add(binding.id);
176
+ continue;
177
+ }
178
+ bindingIds.add(binding.id);
179
+ }
180
+ for (const id of duplicateBindingIds) {
181
+ issues.push({
182
+ code: 'duplicate-binding-id',
183
+ message: `Duplicate binding id: ${id}`,
184
+ id,
185
+ });
186
+ }
187
+ for (const node of scene.nodes) {
188
+ if (node.parentId != null && !nodeIds.has(node.parentId)) {
189
+ issues.push({
190
+ code: 'parent-node-missing',
191
+ message: `Node ${node.id} references missing parent ${node.parentId}`,
192
+ id: node.id,
193
+ });
194
+ }
195
+ for (const childId of node.children ?? []) {
196
+ if (!nodeIds.has(childId)) {
197
+ issues.push({
198
+ code: 'child-node-missing',
199
+ message: `Node ${node.id} references missing child ${childId}`,
200
+ id: node.id,
201
+ });
202
+ }
203
+ }
204
+ for (const actionId of node.actions ?? []) {
205
+ if (!actionIds.has(actionId)) {
206
+ issues.push({
207
+ code: 'node-action-missing',
208
+ message: `Node ${node.id} references missing action ${actionId}`,
209
+ id: node.id,
210
+ });
211
+ }
212
+ }
213
+ }
214
+ for (const action of scene.actions) {
215
+ if (action.targetNodeId != null && !nodeIds.has(action.targetNodeId)) {
216
+ issues.push({
217
+ code: 'action-target-missing',
218
+ message: `Action ${action.id} references missing target ${action.targetNodeId}`,
219
+ id: action.id,
220
+ });
221
+ }
222
+ }
223
+ for (const binding of scene.bindings) {
224
+ if (!nodeIds.has(binding.targetNodeId)) {
225
+ issues.push({
226
+ code: 'binding-target-missing',
227
+ message: `Binding ${binding.id} references missing target ${binding.targetNodeId}`,
228
+ id: binding.id,
229
+ });
230
+ }
231
+ }
232
+ for (const tokenUse of scene.tokenUses) {
233
+ if (!nodeIds.has(tokenUse.nodeId)) {
234
+ issues.push({
235
+ code: 'token-node-missing',
236
+ message: `Token ${tokenUse.token} references missing node ${tokenUse.nodeId}`,
237
+ id: tokenUse.nodeId,
238
+ });
239
+ }
240
+ }
241
+ for (const i18nUse of scene.i18nUses) {
242
+ if (i18nUse.nodeId != null && !nodeIds.has(i18nUse.nodeId)) {
243
+ issues.push({
244
+ code: 'i18n-node-missing',
245
+ message: `I18n key ${i18nUse.key} references missing node ${i18nUse.nodeId}`,
246
+ id: i18nUse.nodeId,
247
+ });
248
+ }
249
+ if (i18nUse.actionId != null && !actionIds.has(i18nUse.actionId)) {
250
+ issues.push({
251
+ code: 'i18n-action-missing',
252
+ message: `I18n key ${i18nUse.key} references missing action ${i18nUse.actionId}`,
253
+ id: i18nUse.actionId,
254
+ });
255
+ }
256
+ }
257
+ for (const sourceMapEntry of scene.sourceMap) {
258
+ if (!nodeIds.has(sourceMapEntry.nodeId)) {
259
+ issues.push({
260
+ code: 'source-map-node-missing',
261
+ message: `Source map references missing node ${sourceMapEntry.nodeId}`,
262
+ id: sourceMapEntry.nodeId,
263
+ });
264
+ }
265
+ }
266
+ for (let index = 0; index < scene.targetProfiles.length; index++) {
267
+ const profile = scene.targetProfiles[index];
268
+ const issue = validateTargetProfile(profile, index);
269
+ if (issue != null) {
270
+ issues.push(issue);
271
+ }
272
+ }
273
+ return {
274
+ ok: issues.length === 0,
275
+ issues,
276
+ };
277
+ }
278
+ export function createUiSceneReceipt(scene, outputs = {}) {
279
+ return {
280
+ receiptVersion: UI_SCENE_RECEIPT_VERSION,
281
+ sceneHash: hashUiSceneValue(scene),
282
+ sourceHash: scene.sourceHash,
283
+ nodeIds: sortedUnique(scene.nodes.map((node) => node.id)),
284
+ componentIds: sortedUnique(scene.nodes.flatMap((node) => node.component == null ? [] : [node.component])),
285
+ i18nKeys: sceneI18nKeys(scene),
286
+ tokenRefs: sceneTokenRefs(scene),
287
+ actionIds: sortedUnique(scene.actions.map((action) => action.id)),
288
+ bindingIds: sortedUnique(scene.bindings.map((binding) => binding.id)),
289
+ outputs,
290
+ };
291
+ }
292
+ function sceneI18nKeys(scene) {
293
+ return sortedUnique([
294
+ ...scene.i18nUses.map((use) => use.key),
295
+ ...scene.nodes.flatMap((node) => node.text?.kind === 'i18n' ? [node.text.key] : []),
296
+ ...scene.actions.flatMap((action) => action.label?.kind === 'i18n' ? [action.label.key] : []),
297
+ ]);
298
+ }
299
+ function sceneTokenRefs(scene) {
300
+ return sortedUnique([
301
+ ...scene.tokenUses.map((use) => use.token),
302
+ ...scene.nodes.flatMap(nodeStyleTokenRefs),
303
+ ]);
304
+ }
305
+ function nodeStyleTokenRefs(node) {
306
+ return [
307
+ node.style?.fg?.token,
308
+ node.style?.bg?.token,
309
+ node.style?.border?.token,
310
+ ].filter((token) => token != null);
311
+ }
312
+ export function lowerUiSceneToSurface(scene, options = {}) {
313
+ const validation = validateUiSceneIr(scene);
314
+ if (!validation.ok) {
315
+ throw new Error(`Invalid ui-scene-ir/1: ${validation.issues.map((issue) => issue.message).join('; ')}`);
316
+ }
317
+ const targetProfile = scene.targetProfiles.find((profile) => profile.kind === 'bijou-terminal');
318
+ if (targetProfile == null) {
319
+ throw new Error('Cannot lower ui-scene-ir/1 without a bijou-terminal target profile.');
320
+ }
321
+ assertSupportedBijouRequirements(targetProfile, options.supportedRequirements);
322
+ assertTextOnlyBijouNodes(scene);
323
+ const surface = createSurface(targetProfile.cols, targetProfile.rows);
324
+ const cellSourceMap = [];
325
+ const lowerMode = options.lowerMode ?? 'normal';
326
+ const sourceByNodeId = new Map(scene.sourceMap.map((entry) => [entry.nodeId, entry.source]));
327
+ for (const node of scene.nodes) {
328
+ if (node.kind !== 'text') {
329
+ continue;
330
+ }
331
+ const text = nodeTextForMode(node, lowerMode);
332
+ const graphemes = segmentSurfaceText(text, 'lowerUiSceneToSurface');
333
+ const x = sanitizeLayoutCoordinate(node.layout?.x);
334
+ const y = sanitizeLayoutCoordinate(node.layout?.y);
335
+ const style = cellStyleForNode(node, options.tokenColors);
336
+ const visibleSpan = visibleTextSpan(x, y, graphemes.length, targetProfile);
337
+ if (visibleSpan == null) {
338
+ continue;
339
+ }
340
+ for (let offset = visibleSpan.startOffset; offset < visibleSpan.endOffset; offset++) {
341
+ surface.set(x + offset, y, {
342
+ char: graphemes[offset],
343
+ ...style,
344
+ empty: false,
345
+ });
346
+ }
347
+ cellSourceMap.push(cellSourceMapEntryForNode(node, visibleSpan.x, y, visibleSpan.width, sourceByNodeId.get(node.id)));
348
+ }
349
+ return {
350
+ surface,
351
+ targetProfile,
352
+ cellSourceMap,
353
+ sceneHash: hashUiSceneValue(scene),
354
+ surfaceHash: hashSurface(surface),
355
+ };
356
+ }
357
+ export function createUiSceneTerminalReceipt(scene, lowering) {
358
+ const sceneHash = hashUiSceneValue(scene);
359
+ if (lowering.sceneHash !== sceneHash) {
360
+ throw new Error('Terminal lowering was created for a different ui-scene-ir/1 scene.');
361
+ }
362
+ return createUiSceneReceipt(scene, {
363
+ terminal: {
364
+ layoutHash: hashUiSceneValue({
365
+ cellSourceMap: lowering.cellSourceMap,
366
+ targetProfile: lowering.targetProfile,
367
+ }),
368
+ surfaceHash: lowering.surfaceHash,
369
+ },
370
+ });
371
+ }
372
+ export function lowerUiSceneToTerminalProof(scene, options = {}) {
373
+ const lowering = lowerUiSceneToSurface(scene, options);
374
+ return {
375
+ lowering,
376
+ receipt: createUiSceneTerminalReceipt(scene, lowering),
377
+ };
378
+ }
379
+ function assertTextOnlyBijouNodes(scene) {
380
+ for (const node of scene.nodes) {
381
+ if (node.kind === 'group' || node.kind === 'text') {
382
+ continue;
383
+ }
384
+ throw new Error(`Cannot lower ui-scene-ir/1 node ${node.id} (${node.kind}) to bijou-terminal text Surface.`);
385
+ }
386
+ }
387
+ function assertSupportedBijouRequirements(targetProfile, supportedRequirements) {
388
+ const supported = supportedRequirements == null
389
+ ? DEFAULT_SUPPORTED_BIJOU_REQUIREMENTS
390
+ : new Set(supportedRequirements);
391
+ for (const requirement of targetProfile.requires ?? []) {
392
+ if (!supported.has(requirement)) {
393
+ throw new Error(`Unsupported ui-scene-ir/1 requirement for bijou-terminal: ${requirement}`);
394
+ }
395
+ }
396
+ }
397
+ function nodeTextForMode(node, lowerMode) {
398
+ switch (lowerMode) {
399
+ case 'node-ids':
400
+ return node.id;
401
+ case 'i18n-keys':
402
+ return node.text?.kind === 'i18n' ? node.text.key : node.id;
403
+ case 'token-refs':
404
+ return [
405
+ node.style?.fg?.token,
406
+ node.style?.bg?.token,
407
+ node.style?.border?.token,
408
+ ].filter((token) => token != null).join(' ') || node.id;
409
+ case 'normal':
410
+ return normalNodeText(node);
411
+ }
412
+ }
413
+ function normalNodeText(node) {
414
+ if (node.text?.kind === 'literal') {
415
+ return node.text.value;
416
+ }
417
+ if (node.text?.kind === 'i18n') {
418
+ return node.text.fallback ?? node.text.key;
419
+ }
420
+ return '';
421
+ }
422
+ function cellStyleForNode(node, tokenColors) {
423
+ const style = {};
424
+ const fgToken = node.style?.fg?.token;
425
+ const bgToken = node.style?.bg?.token;
426
+ if (fgToken != null && tokenColors?.[fgToken] != null) {
427
+ style.fg = tokenColors[fgToken];
428
+ }
429
+ if (bgToken != null && tokenColors?.[bgToken] != null) {
430
+ style.bg = tokenColors[bgToken];
431
+ }
432
+ if (node.style?.modifiers != null) {
433
+ style.modifiers = [...node.style.modifiers];
434
+ }
435
+ return style;
436
+ }
437
+ function cellSourceMapEntryForNode(node, x, y, width, source) {
438
+ const entry = {
439
+ nodeId: node.id,
440
+ x,
441
+ y,
442
+ width,
443
+ height: 1,
444
+ };
445
+ if (source != null) {
446
+ entry.source = source;
447
+ }
448
+ if (node.text?.kind === 'i18n') {
449
+ entry.textKey = node.text.key;
450
+ }
451
+ if (node.style?.fg?.token != null) {
452
+ entry.fgToken = node.style.fg.token;
453
+ }
454
+ if (node.style?.bg?.token != null) {
455
+ entry.bgToken = node.style.bg.token;
456
+ }
457
+ return entry;
458
+ }
459
+ function hashSurface(surface) {
460
+ const cells = [];
461
+ for (let y = 0; y < surface.height; y++) {
462
+ for (let x = 0; x < surface.width; x++) {
463
+ const cell = surface.get(x, y);
464
+ cells.push({
465
+ bg: cell.bg,
466
+ bgRGB: cell.bgRGB,
467
+ char: cell.char,
468
+ empty: cell.empty,
469
+ fg: cell.fg,
470
+ fgRGB: cell.fgRGB,
471
+ modifiers: cell.modifiers,
472
+ opacity: cell.opacity,
473
+ });
474
+ }
475
+ }
476
+ return hashUiSceneValue({
477
+ cells,
478
+ height: surface.height,
479
+ width: surface.width,
480
+ });
481
+ }
482
+ function sanitizeLayoutCoordinate(value) {
483
+ return Number.isFinite(value) ? Math.trunc(value) : 0;
484
+ }
485
+ function sortedUnique(values) {
486
+ return [...new Set(values)].sort(compareCodeUnits);
487
+ }
488
+ function visibleTextSpan(x, y, width, targetProfile) {
489
+ if (width <= 0 || y < 0 || y >= targetProfile.rows) {
490
+ return null;
491
+ }
492
+ const startOffset = Math.max(0, -x);
493
+ const endOffset = Math.min(width, targetProfile.cols - x);
494
+ const visibleWidth = endOffset - startOffset;
495
+ if (visibleWidth <= 0) {
496
+ return null;
497
+ }
498
+ return {
499
+ x: x + startOffset,
500
+ startOffset,
501
+ endOffset,
502
+ width: visibleWidth,
503
+ };
504
+ }
505
+ function validateTargetProfile(profile, index) {
506
+ switch (profile.kind) {
507
+ case 'bijou-terminal':
508
+ return validPositiveDimension(profile.cols) && validPositiveDimension(profile.rows)
509
+ ? null
510
+ : invalidTargetProfile(profile.kind, index, 'bijou-terminal target profiles require positive integer cols and rows');
511
+ case 'geordi-browser':
512
+ case 'geordi-image':
513
+ return validPositiveDimension(profile.width) && validPositiveDimension(profile.height)
514
+ ? null
515
+ : invalidTargetProfile(profile.kind, index, `${profile.kind} target profiles require positive integer width and height`);
516
+ case 'geordi-packed-bijou-cells':
517
+ return validPositiveDimension(profile.cols) && validPositiveDimension(profile.rows)
518
+ ? null
519
+ : invalidTargetProfile(profile.kind, index, 'geordi-packed-bijou-cells target profiles require positive integer cols and rows');
520
+ case 'geordi-unity':
521
+ case 'external-visual-import':
522
+ return null;
523
+ default:
524
+ return profile.kind.startsWith('custom:')
525
+ ? null
526
+ : invalidTargetProfile(profile.kind, index, `Unknown target profile kind: ${profile.kind}`);
527
+ }
528
+ }
529
+ function invalidTargetProfile(kind, index, reason) {
530
+ return {
531
+ code: 'invalid-target-profile',
532
+ message: `Invalid target profile ${kind} at index ${index}: ${reason}`,
533
+ id: `${kind}:${index}`,
534
+ };
535
+ }
536
+ function validPositiveDimension(value) {
537
+ return Number.isInteger(value) && value > 0;
538
+ }
539
+ function compareCodeUnits(a, b) {
540
+ return a < b ? -1 : a > b ? 1 : 0;
541
+ }
542
+ function normalizeStableJson(value) {
543
+ if (value === undefined) {
544
+ return undefined;
545
+ }
546
+ if (value === null || typeof value === 'string' || typeof value === 'boolean') {
547
+ return value;
548
+ }
549
+ if (typeof value === 'number') {
550
+ if (!Number.isFinite(value)) {
551
+ throw new Error(`ui-scene-ir/1 JSON value must be finite; got ${String(value)}`);
552
+ }
553
+ return Object.is(value, -0) ? 0 : value;
554
+ }
555
+ if (Array.isArray(value)) {
556
+ return value.map((item) => normalizeStableJson(item));
557
+ }
558
+ if (typeof value === 'object') {
559
+ const input = value;
560
+ const output = {};
561
+ for (const key of Object.keys(input).sort(compareCodeUnits)) {
562
+ const normalized = normalizeStableJson(input[key]);
563
+ if (normalized !== undefined) {
564
+ output[key] = normalized;
565
+ }
566
+ }
567
+ return output;
568
+ }
569
+ throw new Error(`ui-scene-ir/1 JSON value cannot contain ${typeof value}`);
570
+ }
571
+ //# sourceMappingURL=ui-scene-ir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-scene-ir.js","sourceRoot":"","sources":["../../src/core/ui-scene-ir.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -17,6 +17,8 @@ export { sanitizeNonNegativeInt, sanitizeOptionalNonNegativeInt, sanitizeOptiona
17
17
  export { solveGridRects, solveSplitAxisSizes, solveSplitPaneRects, type GridTrack, type SplitAxisOptions, type SplitAxisSizes, type SplitLayoutDirection, type SplitPaneRectOptions, type SplitPaneRects, type GridRectOptions, } from './core/layout/geometry.js';
18
18
  export { RE035_LAYOUT_SCOPE, assignLayoutChild, assignedLayoutRect, contentExtentFromBuffer, contentExtentFromSurface, defineLayoutEnvelope, isResolvedLayoutEnvelope, layoutConstraints, layoutExplanationFacts, layoutExplanationText, layoutPreference, measureTextContent, placeInRect, renderWithResolvedLayout, resolveStackLayout, type AssignedLayoutRect, type AssignedLayoutRectInput, type ContentExtent, type ContentExtentInput, type LayoutBound, type LayoutConstraints, type LayoutConstraintsInput, type LayoutDirection, type LayoutEnvelope, type LayoutEnvelopeInput, type LayoutFact, type LayoutFitPolicy, type LayoutPreference, type LayoutPreferenceInput, type LayoutRenderInput, type LayoutRenderResult, type LogicalAlign, type LogicalAxis, type MeasureTextContentInput, type PlaceInRectInput, type ResolvedLayoutEnvelope, type StackLayoutChildInput, type StackLayoutInput, type StackLayoutResult, type StackTrack, type TextMeasurementAdapter, type TextMeasurementInput, } from './core/layout/envelope.js';
19
19
  export { renderByMode, type ModeHandler, type ModeMap, } from './core/mode-render.js';
20
+ export { BIJOU_BLOCK_ARTIFACT_VERSION, GRAPHQL_BIJOU_BLOCK_DEBUG_SUMMARY_VERSION, compileGraphqlBijouBlock, createGraphqlBijouBlockDebugSummary, lowerBijouBlockToUiScene, type BijouBlockArtifact, type BijouBlockArtifactVersion, type BijouBlockField, type BijouBlockFieldAction, type BijouBlockFieldBinding, type BijouBlockGroup, type CompileGraphqlBijouBlockOptions, type GraphqlBijouBlockDebugFieldFact, type GraphqlBijouBlockDebugGroupFact, type GraphqlBijouBlockDebugLowerModeFact, type GraphqlBijouBlockDebugSummary, type GraphqlBijouBlockDebugSummaryVersion, } from './core/graphql-bijou-block.js';
21
+ export { UI_SCENE_IR_VERSION, UI_SCENE_RECEIPT_VERSION, createUiSceneTerminalReceipt, createUiSceneReceipt, hashUiSceneValue, lowerUiSceneToTerminalProof, lowerUiSceneToSurface, stableUiSceneStringify, validateUiSceneIr, type UiAction, type UiBinding, type UiCellSourceMapEntry, type UiI18nUse, type UiLayoutIntent, type UiNode, type UiNodeKind, type UiPortabilityClaim, type UiPortabilityLevel, type UiSceneIr, type UiSceneIrVersion, type UiSceneIssueCode, type UiSceneLowerMode, type UiSceneLoweringOptions, type UiSceneReceipt, type UiSceneReceiptVersion, type UiSceneSurfaceLowering, type UiSceneTerminalProof, type UiSceneValidationIssue, type UiSceneValidationResult, type UiSourceMapEntry, type UiStyleRef, type UiTargetProfile, type UiTextRef, type UiTokenUse, } from './core/ui-scene-ir.js';
20
22
  export { BindingFrame, bindingFrame, bindingFrameFromSnapshots, bindingSnapshot, commandIntent, defineDataRequirement, defineDataProvider, defineViewData, isBindingSnapshot, isCommandIntent, isDataProvider, isDataRequirement, isProviderResolution, isProviderScope, isViewDataContract, provide, providerScope, ProviderScope, resolveProviderRequirement, resolveProviderRequirements, ViewDataContract, type BindingFact, type BindingIssue, type BindingIssueSeverity, type BindingFrameAssembly, type BindingFrameFromSnapshotsInput, type BindingSnapshot, type BindingSnapshotInput, type BindingStatus, type CommandIntent, type CommandIntentId, type CommandIntentOptions, type DataProvider, type DataProviderInput, type DataRequirement, type DataRequirementInput, type DeepReadonly, type ProviderId, type ProviderResolution, type ProviderResolutionStatus, type ProviderScopeEntry, type ProviderScopeOptions, type RequirementId, type ViewDataInput, type ViewDataRequirementEntry, } from './core/binding.js';
21
23
  export { coordinateSelection, defineSelectionOwner, extractSelectionText, isSelectionOwner, selectionClipboardEffect, selectionRange, selectionRegion, type CoordinateSelectionInput, type CoordinateSelectionResult, type MixedSelectionContentModel, type MixedSelectionContentRegion, type ProseSelectionContentModel, type SelectionBlocker, type SelectionBlockerReason, type SelectionClipboardEffect, type SelectionContentModel, type SelectionDirection, type SelectionDragSource, type SelectionFact, type SelectionOwner, type SelectionOwnerInput, type SelectionPoint, type SelectionPolicy, type SelectionRange, type SelectionRangeInput, type SelectionRegion, type SelectionViewportTransform, type SurfaceSelectionContentModel, type TableSelectionContentModel, } from './core/selection.js';
22
24
  export { bindingFrameUpdateFromSnapshots, type BindingFrameUpdate, type BindingFrameUpdateFromSnapshotsInput, } from './core/binding-frame-update.js';
@@ -33,7 +35,7 @@ export { createFixturePromotionRecord, fixturePromotionText, reverseFixturePromo
33
35
  export { lintModeLowering, modeLoweringReportText, type ModeLoweringAssertionResult, type ModeLoweringFact, type ModeLoweringFactKind, type ModeLoweringFactValue, type ModeLoweringIssue, type ModeLoweringIssueKind, type ModeLoweringModeFacts, type ModeLoweringOptions, type ModeLoweringReport, type ModeLoweringSeverity, } from './core/mode-lowering.js';
34
36
  export { shouldApplyBg, makeBgFill } from './core/bg-fill.js';
35
37
  export { createBijou, type CreateBijouOptions } from './factory.js';
36
- export { type RGB, type GradientStop, type TextModifier, type TokenValue, type InkColor, type BaseStatusKey, type BaseUiKey, type BaseGradientKey, type Theme, CYAN_MAGENTA, TEAL_ORANGE_PINK, PRESETS, tv, styled, styledStatus, extendTheme, doctorTheme, themeContrastRatio, type ThemeContrastPair, type ThemeDoctorIssue, type ThemeDoctorIssueKind, type ThemeDoctorOptions, type ThemeDoctorReport, type ThemeDoctorSeverity, lerp3, gradientText, type GradientTextOptions, isNoColor, createThemeResolver, createResolved, type ResolvedTheme, type ThemeResolver, type ThemeResolverOptions, fromDTCG, toDTCG, type DTCGDocument, type DTCGToken, type DTCGGroup, rgbToAnsi256, nearestAnsi256, rgbToAnsi16, ansi256ToAnsi16, type ColorLevel, createThemeAccessors, type ThemeAccessors, color, colorHex, colorRgb, hexToRgb, isResolvedColor, resolveColor, rgbToHex, tryResolveColor, lighten, darken, mix, complementary, saturate, desaturate, type ColorRef, type ResolvedColor, createTokenGraph, type TokenGraph, type ThemeMode, type ColorDefinition, type TokenDefinition, type TokenDefinitions, type ColorTransform, } from './core/theme/index.js';
38
+ export { type RGB, type GradientStop, type TextModifier, type TokenValue, type InkColor, type BaseStatusKey, type BaseUiKey, type BaseGradientKey, type Theme, defineTheme, isTokenRef, resolveThemeColorRef, tokenRef, type ResolveThemeColorRefOptions, type ThemeBuilder, type ThemeBuilderModeId, type ThemeBuilderRequiredMode, type ThemeColorInput, type ThemeColorRef, type ThemeColorResolution, type ThemeColorTokenValue, type ThemeModeBuilder, type ThemeModeTokenColorBuilder, type ThemeModeTokenDraftBuilder, type ThemeModeTokenIdBuilder, type ThemeModeTokenRegistrationBuilder, type ThemeRgbObject, type ThemeTokenRef, type TokenTheme, type TokenThemeMode, BIJOU_DARK, BIJOU_LIGHT, CYAN_MAGENTA, TEAL_ORANGE_PINK, PRESETS, tv, styled, styledStatus, extendTheme, defineThemeSafePairs, doctorTheme, themeContrastRatio, type ThemeContrastPair, type ThemeDoctorIssue, type ThemeDoctorIssueKind, type ThemeDoctorOptions, type ThemeDoctorReport, type ThemeDoctorSeverity, type ThemeSafePair, type ThemeSafePairBuilder, type ThemeSafePairKind, type ThemeSafePairOptions, lerp3, gradientText, type GradientTextOptions, isNoColor, createThemeResolver, createResolved, type ResolvedTheme, type ThemeResolver, type ThemeResolverOptions, fromDTCG, toDTCG, type DTCGDocument, type DTCGToken, type DTCGGroup, rgbToAnsi256, nearestAnsi256, rgbToAnsi16, ansi256ToAnsi16, type ColorLevel, createThemeAccessors, type ThemeAccessors, color, colorHex, colorRgb, hexToRgb, isResolvedColor, resolveColor, rgbToHex, tryResolveColor, lighten, darken, mix, complementary, saturate, desaturate, type ColorRef, type ResolvedColor, createTokenGraph, type TokenGraph, type ThemeMode, type ColorDefinition, type TokenDefinition, type TokenDefinitions, type ColorTransform, } from './core/theme/index.js';
37
39
  export { forceTextPresentation, TEXT_PRESENTATION_SELECTOR, isWideChar, segmentGraphemes, graphemeClusterWidth, graphemeWidth, sanitizeTerminalText, sanitizePlainTerminalText, prepareWrappedText, wrapPreparedTextToWidth, clipToWidth, wrapToWidth, ANSI_CONTROL_SEQUENCE_RE, ANSI_SGR_RE, stripAnsi, } from './core/text/index.js';
38
40
  export type { PreparedWrappedLine, PreparedWrappedText, } from './core/text/index.js';
39
41
  export { detectOutputMode, detectColorScheme, type OutputMode, type ColorScheme, } from './core/detect/index.js';