arc402-cli 1.7.6 → 1.8.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.
- package/dist/renderer/index.d.ts +1 -0
- package/dist/renderer/index.d.ts.map +1 -1
- package/dist/renderer/index.js +1 -0
- package/dist/renderer/index.js.map +1 -1
- package/dist/renderer/ink.d.ts +29 -11
- package/dist/renderer/ink.d.ts.map +1 -1
- package/dist/renderer/ink.js +13 -9
- package/dist/renderer/ink.js.map +1 -1
- package/dist/renderer/render-frame.d.ts +8 -0
- package/dist/renderer/render-frame.d.ts.map +1 -0
- package/dist/renderer/render-frame.js +96 -0
- package/dist/renderer/render-frame.js.map +1 -0
- package/dist/tui/index.js +2 -2
- package/dist/tui/index.js.map +1 -1
- package/package.json +1 -1
package/dist/renderer/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AACA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AACA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC"}
|
package/dist/renderer/index.js
CHANGED
|
@@ -26,4 +26,5 @@ __exportStar(require("./layout.js"), exports);
|
|
|
26
26
|
__exportStar(require("./dom.js"), exports);
|
|
27
27
|
__exportStar(require("./reconciler.js"), exports);
|
|
28
28
|
__exportStar(require("./ink.js"), exports);
|
|
29
|
+
__exportStar(require("./render-frame.js"), exports);
|
|
29
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,4CAA0B;AAC1B,4CAA0B;AAC1B,gDAA8B;AAC9B,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B;AAC5B,0CAA0C;AAC1C,2CAAyB;AACzB,kDAAgC;AAChC,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,4CAA0B;AAC1B,4CAA0B;AAC1B,gDAA8B;AAC9B,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B;AAC5B,0CAA0C;AAC1C,2CAAyB;AACzB,kDAAgC;AAChC,2CAAyB;AACzB,oDAAkC"}
|
package/dist/renderer/ink.d.ts
CHANGED
|
@@ -18,16 +18,27 @@ export interface BoxProps extends BoxStyle {
|
|
|
18
18
|
style?: BoxStyle;
|
|
19
19
|
children?: React.ReactNode;
|
|
20
20
|
}
|
|
21
|
-
export declare function Box({ style, children, ...flatProps }: BoxProps): React.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
export declare function Box({ style, children, ...flatProps }: BoxProps): React.ReactElement<{
|
|
22
|
+
style: {
|
|
23
|
+
width?: number | string;
|
|
24
|
+
height?: number | string;
|
|
25
|
+
flexDirection?: "row" | "column";
|
|
26
|
+
flexGrow?: number;
|
|
27
|
+
flexShrink?: number;
|
|
28
|
+
padding?: number;
|
|
29
|
+
paddingTop?: number;
|
|
30
|
+
paddingBottom?: number;
|
|
31
|
+
paddingLeft?: number;
|
|
32
|
+
paddingRight?: number;
|
|
33
|
+
margin?: number;
|
|
34
|
+
marginTop?: number;
|
|
35
|
+
marginBottom?: number;
|
|
36
|
+
marginLeft?: number;
|
|
37
|
+
marginRight?: number;
|
|
38
|
+
alignItems?: "flex-start" | "flex-end" | "center" | "stretch";
|
|
39
|
+
justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around";
|
|
40
|
+
};
|
|
41
|
+
}, string | React.JSXElementConstructor<any>>;
|
|
31
42
|
export interface TextProps {
|
|
32
43
|
color?: Color | string;
|
|
33
44
|
bold?: boolean;
|
|
@@ -38,5 +49,12 @@ export interface TextProps {
|
|
|
38
49
|
inverse?: boolean;
|
|
39
50
|
children?: React.ReactNode;
|
|
40
51
|
}
|
|
41
|
-
export declare function Text({ color, bold, dim, dimColor, italic, underline, inverse, children }: TextProps): React.
|
|
52
|
+
export declare function Text({ color, bold, dim, dimColor, italic, underline, inverse, children }: TextProps): React.ReactElement<{
|
|
53
|
+
color: string | Color | undefined;
|
|
54
|
+
bold: boolean | undefined;
|
|
55
|
+
dim: boolean | undefined;
|
|
56
|
+
italic: boolean | undefined;
|
|
57
|
+
underline: boolean | undefined;
|
|
58
|
+
inverse: boolean | undefined;
|
|
59
|
+
}, string | React.JSXElementConstructor<any>>;
|
|
42
60
|
//# sourceMappingURL=ink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../../src/renderer/ink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,MAAM,KAAK,CAAC;AAO9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../../src/renderer/ink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,MAAM,KAAK,CAAC;AAO9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAKvC,eAAO,MAAM,MAAM,0DAAgB,CAAC;AAKpC,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACvC,OAAO,IAAI,IAAI,CAAC;IAChB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,GAAE,aAAkB,GAAG,cAAc,CA8C5F;AAGD,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAMD,wBAAgB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;8CAG9D;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS;;;;;;;8CAGnG"}
|
package/dist/renderer/ink.js
CHANGED
|
@@ -48,6 +48,8 @@ const cell_js_1 = require("./cell.js");
|
|
|
48
48
|
const diff_js_1 = require("./diff.js");
|
|
49
49
|
const terminal_js_1 = require("./terminal.js");
|
|
50
50
|
const loop_js_1 = require("./loop.js");
|
|
51
|
+
const render_frame_js_1 = require("./render-frame.js");
|
|
52
|
+
const layout_js_1 = require("./layout.js");
|
|
51
53
|
// useApp is safe to re-export (no problematic internal types)
|
|
52
54
|
exports.useApp = inkPkg.useApp;
|
|
53
55
|
function render(node, options = {}) {
|
|
@@ -57,11 +59,19 @@ function render(node, options = {}) {
|
|
|
57
59
|
let frontFrame = (0, cell_js_1.createFrame)(rows, cols);
|
|
58
60
|
const container = (0, dom_js_1.createNode)('root');
|
|
59
61
|
const { schedule } = (0, loop_js_1.createRenderLoop)(() => {
|
|
60
|
-
//
|
|
62
|
+
// 1. Build layout tree from DOM
|
|
63
|
+
const layoutRoot = (0, render_frame_js_1.buildLayoutTree)(container);
|
|
64
|
+
// 2. Calculate Yoga layout
|
|
65
|
+
(0, layout_js_1.calculateLayout)(layoutRoot, cols, rows);
|
|
66
|
+
// 3. Render DOM → cell buffer
|
|
61
67
|
const backFrame = (0, cell_js_1.createFrame)(rows, cols);
|
|
68
|
+
(0, render_frame_js_1.renderToFrame)(container, layoutRoot, backFrame);
|
|
69
|
+
// 4. Diff + write
|
|
62
70
|
const patches = (0, diff_js_1.diff)(frontFrame, backFrame);
|
|
63
71
|
(0, terminal_js_1.writePatches)(patches, stdout);
|
|
72
|
+
// 5. Swap + cleanup
|
|
64
73
|
frontFrame = backFrame;
|
|
74
|
+
(0, layout_js_1.freeLayoutNode)(layoutRoot);
|
|
65
75
|
});
|
|
66
76
|
(0, reconciler_js_1.setOnCommit)(schedule);
|
|
67
77
|
// react-reconciler v0.26 createContainer(containerInfo, tag, hydrate, hydrationCallbacks)
|
|
@@ -87,17 +97,11 @@ function render(node, options = {}) {
|
|
|
87
97
|
// when ink's render() is used (which is the current state while the
|
|
88
98
|
// custom cell-buffer renderer is being completed).
|
|
89
99
|
function Box({ style, children, ...flatProps }) {
|
|
90
|
-
// Merge flat layout props with style object, pass as ink-compatible props
|
|
91
100
|
const merged = { ...flatProps, ...style };
|
|
92
|
-
return react_1.default.createElement(
|
|
101
|
+
return react_1.default.createElement('arc-box', { style: merged }, children);
|
|
93
102
|
}
|
|
94
103
|
function Text({ color, bold, dim, dimColor, italic, underline, inverse, children }) {
|
|
95
|
-
const resolvedColor = color && typeof color === 'object'
|
|
96
|
-
? `rgb(${color.r},${color.g},${color.b})`
|
|
97
|
-
: color;
|
|
98
104
|
const resolvedDim = dim ?? dimColor;
|
|
99
|
-
return react_1.default.createElement(
|
|
100
|
-
color: resolvedColor, bold, dimColor: resolvedDim, italic, underline, inverse
|
|
101
|
-
}, children);
|
|
105
|
+
return react_1.default.createElement('arc-text', { color, bold, dim: resolvedDim, italic, underline, inverse }, children);
|
|
102
106
|
}
|
|
103
107
|
//# sourceMappingURL=ink.js.map
|
package/dist/renderer/ink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ink.js","sourceRoot":"","sources":["../../src/renderer/ink.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ink.js","sourceRoot":"","sources":["../../src/renderer/ink.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DOMNode } from './dom.js';
|
|
2
|
+
import { LayoutNode } from './layout.js';
|
|
3
|
+
import { Frame } from './cell.js';
|
|
4
|
+
/** Build a LayoutNode tree mirroring the DOMNode tree */
|
|
5
|
+
export declare function buildLayoutTree(dom: DOMNode): LayoutNode;
|
|
6
|
+
/** Walk DOMNode + LayoutNode trees in parallel, write to frame */
|
|
7
|
+
export declare function renderToFrame(dom: DOMNode, layout: LayoutNode, frame: Frame): void;
|
|
8
|
+
//# sourceMappingURL=render-frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-frame.d.ts","sourceRoot":"","sources":["../../src/renderer/render-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAA+D,MAAM,aAAa,CAAC;AACtG,OAAO,EAAE,KAAK,EAAe,MAAM,WAAW,CAAC;AAoB/C,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAiBxD;AAOD,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAElF"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildLayoutTree = buildLayoutTree;
|
|
4
|
+
exports.renderToFrame = renderToFrame;
|
|
5
|
+
const layout_js_1 = require("./layout.js");
|
|
6
|
+
const DEFAULT_STYLE = {
|
|
7
|
+
fg: null, bg: null, bold: false, dim: false, italic: false, underline: false,
|
|
8
|
+
};
|
|
9
|
+
/** Build a LayoutNode tree mirroring the DOMNode tree */
|
|
10
|
+
function buildLayoutTree(dom) {
|
|
11
|
+
if (dom.type === 'root' || dom.type === 'box') {
|
|
12
|
+
const layout = (0, layout_js_1.createLayoutNode)(dom.style ?? {});
|
|
13
|
+
for (const child of dom.children) {
|
|
14
|
+
const childLayout = buildLayoutTree(child);
|
|
15
|
+
layout.children.push(childLayout);
|
|
16
|
+
}
|
|
17
|
+
return layout;
|
|
18
|
+
}
|
|
19
|
+
// Text node: width = text length, height = 1
|
|
20
|
+
const flatText = flattenText(dom);
|
|
21
|
+
const textLen = flatText.length;
|
|
22
|
+
return (0, layout_js_1.createLayoutNode)({
|
|
23
|
+
width: textLen || 1,
|
|
24
|
+
height: textLen > 0 ? 1 : 0,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function flattenText(dom) {
|
|
28
|
+
if (dom.text !== undefined)
|
|
29
|
+
return dom.text;
|
|
30
|
+
return dom.children.map(flattenText).join('');
|
|
31
|
+
}
|
|
32
|
+
/** Walk DOMNode + LayoutNode trees in parallel, write to frame */
|
|
33
|
+
function renderToFrame(dom, layout, frame) {
|
|
34
|
+
renderNode(dom, layout, frame, DEFAULT_STYLE);
|
|
35
|
+
}
|
|
36
|
+
function renderNode(dom, layout, frame, inherited) {
|
|
37
|
+
const rows = frame.length;
|
|
38
|
+
const cols = rows > 0 ? frame[0].length : 0;
|
|
39
|
+
const { x, y, width, height } = layout;
|
|
40
|
+
if (dom.type === 'root' || dom.type === 'box') {
|
|
41
|
+
for (let i = 0; i < dom.children.length; i++) {
|
|
42
|
+
if (i < layout.children.length) {
|
|
43
|
+
renderNode(dom.children[i], layout.children[i], frame, inherited);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
// Text node
|
|
49
|
+
const chars = collectStyledChars(dom, inherited);
|
|
50
|
+
let cx = 0, cy = 0;
|
|
51
|
+
for (const { char, style } of chars) {
|
|
52
|
+
if (cx >= width) {
|
|
53
|
+
cx = 0;
|
|
54
|
+
cy++;
|
|
55
|
+
}
|
|
56
|
+
if (cy >= height)
|
|
57
|
+
break;
|
|
58
|
+
const row = Math.floor(y + cy);
|
|
59
|
+
const col = Math.floor(x + cx);
|
|
60
|
+
if (row >= 0 && row < rows && col >= 0 && col < cols) {
|
|
61
|
+
const cell = frame[row][col];
|
|
62
|
+
cell.char = char;
|
|
63
|
+
cell.fg = style.fg;
|
|
64
|
+
cell.bg = style.bg;
|
|
65
|
+
cell.bold = style.bold;
|
|
66
|
+
cell.dim = style.dim;
|
|
67
|
+
cell.italic = style.italic;
|
|
68
|
+
cell.underline = style.underline;
|
|
69
|
+
}
|
|
70
|
+
cx++;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function collectStyledChars(dom, inherited) {
|
|
74
|
+
const merged = mergeStyle(inherited, dom.textStyle);
|
|
75
|
+
if (dom.text !== undefined) {
|
|
76
|
+
return [...dom.text].map(ch => ({ char: ch, style: merged }));
|
|
77
|
+
}
|
|
78
|
+
const result = [];
|
|
79
|
+
for (const child of dom.children) {
|
|
80
|
+
result.push(...collectStyledChars(child, merged));
|
|
81
|
+
}
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
function mergeStyle(parent, child) {
|
|
85
|
+
if (!child)
|
|
86
|
+
return parent;
|
|
87
|
+
return {
|
|
88
|
+
fg: child.fg !== undefined ? child.fg : parent.fg,
|
|
89
|
+
bg: child.bg !== undefined ? child.bg : parent.bg,
|
|
90
|
+
bold: child.bold !== undefined ? child.bold : parent.bold,
|
|
91
|
+
dim: child.dim !== undefined ? child.dim : parent.dim,
|
|
92
|
+
italic: child.italic !== undefined ? child.italic : parent.italic,
|
|
93
|
+
underline: child.underline !== undefined ? child.underline : parent.underline,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=render-frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-frame.js","sourceRoot":"","sources":["../../src/renderer/render-frame.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/index.js
CHANGED
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.launchTUI = launchTUI;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const
|
|
8
|
+
const ink_js_1 = require("../renderer/ink.js");
|
|
9
9
|
const index_js_1 = require("../renderer/index.js");
|
|
10
10
|
const App_1 = require("./App");
|
|
11
11
|
const fs_1 = __importDefault(require("fs"));
|
|
@@ -74,7 +74,7 @@ async function launchTUI() {
|
|
|
74
74
|
// but also wire process-level signals to be safe)
|
|
75
75
|
process.on('SIGINT', () => { screen.exit(); process.exit(0); });
|
|
76
76
|
process.on('SIGTERM', () => { screen.exit(); process.exit(0); });
|
|
77
|
-
const { waitUntilExit } = (0,
|
|
77
|
+
const { waitUntilExit } = (0, ink_js_1.render)((0, jsx_runtime_1.jsx)(App_1.App, { version: pkg.version, network: config.network, wallet: walletDisplay, balance: balance }));
|
|
78
78
|
await waitUntilExit();
|
|
79
79
|
screen.exit();
|
|
80
80
|
}
|
package/dist/tui/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":";;;;;AAqDA,8BAyCC;;AA7FD
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":"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"}
|