4runr-os 2.0.8 → 2.0.10
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/ui/v3/tui/geometry.d.ts.map +1 -1
- package/dist/ui/v3/tui/geometry.js +5 -3
- package/dist/ui/v3/tui/geometry.js.map +1 -1
- package/dist/ui/v3/ui/layout/phase1Layout.d.ts.map +1 -1
- package/dist/ui/v3/ui/layout/phase1Layout.js +14 -6
- package/dist/ui/v3/ui/layout/phase1Layout.js.map +1 -1
- package/dist/ui/v3/ui/layout/phase1Layout.test.js +38 -10
- package/dist/ui/v3/ui/layout/phase1Layout.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/tui/geometry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAU3C,MAAM,WAAW,gBAAgB;IAE/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/tui/geometry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAU3C,MAAM,WAAW,gBAAgB;IAE/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAuE7E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAQnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CASjE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM,CAG5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,GAAG,MAAM,CAG9E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAE5D"}
|
|
@@ -56,12 +56,14 @@ export function getTerminalGeometry(screen) {
|
|
|
56
56
|
rows = Math.max(MIN_ROWS, Math.floor(rows));
|
|
57
57
|
// CRITICAL: CloudShell/browser terminals often report widths that cause horizontal scrollbars
|
|
58
58
|
// Detect browser-like environment and apply aggressive clamping
|
|
59
|
+
// ONLY detect CloudShell explicitly - don't assume all wide terminals are browser terminals
|
|
59
60
|
const isBrowserTerminal = typeof process.env.CLOUDSHELL_SESSION !== 'undefined' ||
|
|
60
|
-
process.env.AWS_EXECUTION_ENV?.includes('CloudShell')
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
process.env.AWS_EXECUTION_ENV?.includes('CloudShell');
|
|
62
|
+
// Removed: (process.stdout.columns && cols === process.stdout.columns && cols > 200)
|
|
63
|
+
// This was incorrectly detecting Windows Terminal and other local terminals as browser terminals
|
|
63
64
|
// Apply extra safety margin for browser terminals (prevents horizontal scrollbar)
|
|
64
65
|
// CloudShell reports 282 but actual usable width is ~270-275 (need 10-12 char margin)
|
|
66
|
+
// Local terminals like Windows Terminal don't need this margin
|
|
65
67
|
const browserTerminalMargin = isBrowserTerminal ? 12 : 0; // 12-char margin for CloudShell
|
|
66
68
|
// Additional: Hard cap for CloudShell if width is suspiciously large
|
|
67
69
|
// CloudShell viewport is often 270-275 even when it reports 282+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../../src/ui/v3/tui/geometry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,kDAAkD;AAClD,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,+CAA+C;AAC/C,MAAM,iBAAiB,GAAG,CAAC,CAAC,CAAC,qCAAqC;AAClE,MAAM,eAAe,GAAG,CAAC,CAAC,CAAG,qCAAqC;AAgBlE,IAAI,YAAY,GAA4B,IAAI,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAuB;IACzD,IAAI,IAAY,CAAC;IACjB,IAAI,IAAY,CAAC;IACjB,IAAI,MAAkC,CAAC;IAEvC,0EAA0E;IAC1E,IAAI,MAAM,IAAI,OAAQ,MAAc,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAQ,MAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnG,IAAI,GAAI,MAAc,CAAC,IAAI,CAAC;QAC5B,IAAI,GAAI,MAAc,CAAC,IAAI,CAAC;QAC5B,MAAM,GAAG,QAAQ,CAAC;IACpB,CAAC;IACD,4DAA4D;SACvD,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzF,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;QACpB,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACrB,MAAM,GAAG,QAAQ,CAAC;IACpB,CAAC;IACD,qBAAqB;SAChB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3B,MAAM,GAAG,QAAQ,CAAC;IACpB,CAAC;IACD,kBAAkB;SACb,CAAC;QACJ,IAAI,GAAG,QAAQ,CAAC;QAChB,IAAI,GAAG,QAAQ,CAAC;QAChB,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IAED,mEAAmE;IACnE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5C,8FAA8F;IAC9F,gEAAgE;IAChE,MAAM,iBAAiB,GACrB,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,WAAW;QACrD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../../src/ui/v3/tui/geometry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase1Layout.d.ts","sourceRoot":"","sources":["../../../../../src/ui/v3/ui/layout/phase1Layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAGD,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,UAAU,KAAK,CAAC;AAM7B;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"phase1Layout.d.ts","sourceRoot":"","sources":["../../../../../src/ui/v3/ui/layout/phase1Layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAGD,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,UAAU,KAAK,CAAC;AAM7B;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,YAAY,CA+MxG"}
|
|
@@ -63,8 +63,16 @@ export function computePhase1Layout(width, height, screen) {
|
|
|
63
63
|
(process.stdout.columns && geo.cols === process.stdout.columns && geo.cols > 200);
|
|
64
64
|
// For local terminals: use FULL width (safeWidth = cols for local terminals)
|
|
65
65
|
// For browser terminals: geometry.ts already subtracted browser margin, so use safeWidth as-is
|
|
66
|
-
//
|
|
67
|
-
|
|
66
|
+
// Use full safeWidth minus only the gutters needed for column spacing
|
|
67
|
+
// This ensures we fill the entire terminal width
|
|
68
|
+
const availableWidth = safeWidth - totalGutters;
|
|
69
|
+
// Ensure minimum width but don't artificially limit large terminals
|
|
70
|
+
if (availableWidth < MIN_WIDTH) {
|
|
71
|
+
return {
|
|
72
|
+
ok: false,
|
|
73
|
+
errorMessage: `Terminal too narrow: ${safeWidth} (need ${MIN_WIDTH + totalGutters})`,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
68
76
|
// Step 4: Percentage-based widths (scale with terminal size, not fixed)
|
|
69
77
|
// Left column: 22% with minimum of 28 (allows scaling in fullscreen)
|
|
70
78
|
const leftColWidth = Math.max(28, Math.floor(availableWidth * 0.22));
|
|
@@ -152,14 +160,14 @@ export function computePhase1Layout(width, height, screen) {
|
|
|
152
160
|
width: rightColWidth,
|
|
153
161
|
height: capabilitiesHeight,
|
|
154
162
|
},
|
|
155
|
-
// Command line (bottom,
|
|
156
|
-
//
|
|
157
|
-
// For local terminals: use full width (no extra margin)
|
|
163
|
+
// Command line (bottom, use FULL terminal width for local terminals)
|
|
164
|
+
// For local terminals: extend to full safeWidth (no extra margin)
|
|
158
165
|
// For browser terminals: geometry.ts already applied margin, use safeWidth as-is
|
|
159
166
|
commandLine: {
|
|
160
167
|
top: contentHeight + GUTTER,
|
|
161
168
|
left: 0,
|
|
162
|
-
|
|
169
|
+
// Use full width - extend command line to match terminal width
|
|
170
|
+
width: Math.max(MIN_WIDTH, safeWidth - commandLineSafetyMargin),
|
|
163
171
|
height: COMMAND_LINE_HEIGHT,
|
|
164
172
|
},
|
|
165
173
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase1Layout.js","sourceRoot":"","sources":["../../../../../src/ui/v3/ui/layout/phase1Layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAqC,MAAM,uBAAuB,CAAC;AA0B/F,oDAAoD;AACpD,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAE7B,mFAAmF;AACnF,MAAM,mBAAmB,GAAG,CAAC,CAAC,CAAC,gCAAgC;AAC/D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,8DAA8D;AAEhF;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,MAAc,EAAE,MAAuB;IACxF,+EAA+E;IAC/E,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAExC,+FAA+F;IAC/F,+EAA+E;IAC/E,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC/B,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC;IAEhC,gCAAgC;IAChC,IAAI,SAAS,GAAG,SAAS,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;QACrD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,YAAY,EAAE,uBAAuB,SAAS,IAAI,UAAU,UAAU,SAAS,IAAI,UAAU,GAAG;SACjG,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,4DAA4D;IAC5D,+EAA+E;IAC/E,MAAM,aAAa,GAAG,UAAU,GAAG,mBAAmB,GAAG,MAAM,CAAC;IAEhE,+EAA+E;IAC/E,mEAAmE;IACnE,kEAAkE;IAClE,0EAA0E;IAC1E,oEAAoE;IACpE,+EAA+E;IAC/E,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,8BAA8B;IAE/D,4EAA4E;IAC5E,MAAM,iBAAiB,GACrB,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,WAAW;QACrD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAAC;QACrD,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAEpF,6EAA6E;IAC7E,+FAA+F;IAC/F,
|
|
1
|
+
{"version":3,"file":"phase1Layout.js","sourceRoot":"","sources":["../../../../../src/ui/v3/ui/layout/phase1Layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,24 +2,40 @@
|
|
|
2
2
|
* Layout Tests - Verify bulletproof layout on multiple terminal sizes
|
|
3
3
|
*/
|
|
4
4
|
import { computePhase1Layout } from './phase1Layout.js';
|
|
5
|
+
import { getTerminalGeometry } from '../../tui/geometry.js';
|
|
5
6
|
// Test terminal sizes (common real-world sizes)
|
|
6
7
|
const TEST_SIZES = [
|
|
7
|
-
{ width: 80, height: 24, name: 'Small (80x24)' },
|
|
8
8
|
{ width: 100, height: 30, name: 'Medium (100x30)' },
|
|
9
9
|
{ width: 120, height: 40, name: 'Large (120x40)' },
|
|
10
10
|
{ width: 160, height: 50, name: 'XLarge (160x50)' },
|
|
11
11
|
{ width: 200, height: 60, name: 'XXLarge (200x60)' },
|
|
12
|
+
{ width: 282, height: 61, name: 'CloudShell (282x61) - must clamp to 258' },
|
|
12
13
|
{ width: 280, height: 70, name: 'Ultrawide (280x70)' },
|
|
13
14
|
];
|
|
14
15
|
function validateLayout(width, height) {
|
|
15
|
-
|
|
16
|
+
// Simulate CloudShell environment for CloudShell test sizes
|
|
17
|
+
if (width === 282) {
|
|
18
|
+
process.env.AWS_EXECUTION_ENV = 'AWS-CloudShell';
|
|
19
|
+
}
|
|
20
|
+
// Create a mock screen object for geometry detection
|
|
21
|
+
const mockScreen = {
|
|
22
|
+
cols: width,
|
|
23
|
+
rows: height,
|
|
24
|
+
width: width,
|
|
25
|
+
height: height,
|
|
26
|
+
};
|
|
27
|
+
const result = computePhase1Layout(width, height, mockScreen);
|
|
16
28
|
const errors = [];
|
|
17
29
|
if (!result.ok || !result.layout) {
|
|
18
30
|
errors.push(`Layout failed: ${result.errorMessage}`);
|
|
19
31
|
return { ok: false, errors };
|
|
20
32
|
}
|
|
21
33
|
const layout = result.layout;
|
|
22
|
-
//
|
|
34
|
+
// Get the actual safe dimensions (after clamping)
|
|
35
|
+
const geo = getTerminalGeometry(mockScreen);
|
|
36
|
+
const safeWidth = geo.safeCols;
|
|
37
|
+
const safeHeight = geo.safeRows;
|
|
38
|
+
// Test 1: No panel exceeds safe screen bounds (after clamping)
|
|
23
39
|
const panels = [
|
|
24
40
|
{ name: 'posture', rect: layout.posture },
|
|
25
41
|
{ name: 'resources', rect: layout.resources },
|
|
@@ -32,11 +48,12 @@ function validateLayout(width, height) {
|
|
|
32
48
|
for (const panel of panels) {
|
|
33
49
|
const right = panel.rect.left + panel.rect.width;
|
|
34
50
|
const bottom = panel.rect.top + panel.rect.height;
|
|
35
|
-
|
|
36
|
-
|
|
51
|
+
// Use safeWidth/safeHeight (after clamping) instead of raw width/height
|
|
52
|
+
if (right > safeWidth) {
|
|
53
|
+
errors.push(`${panel.name} exceeds safe width: ${right} > ${safeWidth} (raw width: ${width})`);
|
|
37
54
|
}
|
|
38
|
-
if (bottom >
|
|
39
|
-
errors.push(`${panel.name} exceeds height: ${bottom} > ${height}`);
|
|
55
|
+
if (bottom > safeHeight) {
|
|
56
|
+
errors.push(`${panel.name} exceeds safe height: ${bottom} > ${safeHeight} (raw height: ${height})`);
|
|
40
57
|
}
|
|
41
58
|
if (panel.rect.width <= 0) {
|
|
42
59
|
errors.push(`${panel.name} has invalid width: ${panel.rect.width}`);
|
|
@@ -58,9 +75,20 @@ function validateLayout(width, height) {
|
|
|
58
75
|
}
|
|
59
76
|
}
|
|
60
77
|
}
|
|
61
|
-
// Test 3: Command line
|
|
62
|
-
if (layout.commandLine.width
|
|
63
|
-
errors.push(`Command line width
|
|
78
|
+
// Test 3: Command line doesn't exceed safe width (after clamping)
|
|
79
|
+
if (layout.commandLine.width > safeWidth) {
|
|
80
|
+
errors.push(`Command line width exceeds safe width: ${layout.commandLine.width} > ${safeWidth} (raw width: ${width})`);
|
|
81
|
+
}
|
|
82
|
+
// Test 4: For CloudShell (282 width), verify clamping is applied
|
|
83
|
+
if (width === 282) {
|
|
84
|
+
if (safeWidth > 260) {
|
|
85
|
+
errors.push(`CloudShell clamping failed: safeWidth ${safeWidth} should be <= 258 (got ${safeWidth})`);
|
|
86
|
+
}
|
|
87
|
+
console.log(` CloudShell test: raw=${width}, safe=${safeWidth}, clamped=${width - safeWidth} chars`);
|
|
88
|
+
}
|
|
89
|
+
// Cleanup environment variable
|
|
90
|
+
if (width === 282) {
|
|
91
|
+
delete process.env.AWS_EXECUTION_ENV;
|
|
64
92
|
}
|
|
65
93
|
return { ok: errors.length === 0, errors };
|
|
66
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase1Layout.test.js","sourceRoot":"","sources":["../../../../../src/ui/v3/ui/layout/phase1Layout.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAyB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"phase1Layout.test.js","sourceRoot":"","sources":["../../../../../src/ui/v3/ui/layout/phase1Layout.test.ts"],"names":[],"mappings":"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"}
|