@simon_he/vue-tui 1.0.2 → 1.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.
- package/README.md +84 -26
- package/dist/TMermaidText-frVr8Ysb.js +885 -0
- package/dist/{TSelect-DR0FomSu.js → TSelect-tJ87rKPM.js} +59 -242
- package/dist/{TTree-kzhlB5P0.js → TTree-CGdE-CYu.js} +138 -102
- package/dist/agent/mermaid.cjs +2 -0
- package/dist/agent/mermaid.d.cts +2 -0
- package/dist/agent/mermaid.d.ts +2 -0
- package/dist/agent/mermaid.js +1 -0
- package/dist/agent.cjs +31188 -24907
- package/dist/agent.d.cts +11 -1
- package/dist/agent.d.ts +11 -1
- package/dist/agent.js +516 -11
- package/dist/{block-source-CKUOnkgT.js → block-source-CrlmaBM5.js} +1039 -66
- package/dist/cli/input.d.ts +8 -0
- package/dist/cli/stdin-buffer.d.ts +1 -1
- package/dist/cli/video/ffmpeg-frame-source.d.ts +10 -0
- package/dist/cli/video/png-frame-parser.d.ts +4 -0
- package/dist/cli/video/raw-frame-parser.d.ts +1 -0
- package/dist/cli/video/yt-dlp-frame-source.d.ts +11 -0
- package/dist/cli.cjs +5146 -6767
- package/dist/cli.d.cts +5 -1
- package/dist/cli.d.ts +5 -1
- package/dist/cli.js +2869 -154
- package/dist/core/buffer/eaw-ranges-unicode-17.d.ts +14 -0
- package/dist/core/perf/instrumentation-noop.d.ts +48 -0
- package/dist/core/perf/instrumentation.d.ts +136 -0
- package/dist/core/terminal/create-terminal.d.ts +1 -0
- package/dist/core.cjs +843 -1469
- package/dist/core.js +4 -5
- package/dist/create-terminal-app.d.ts +24 -1
- package/dist/debug-logger-CmsGI4of.js +74 -0
- package/dist/{dom-renderer-BniJSQyX.js → dom-renderer-DXx8fWzD.js} +2 -3
- package/dist/experimental/3d/bun/contributor-avatar-atlas.d.ts +12 -0
- package/dist/experimental/3d/bun/png.d.ts +1 -0
- package/dist/experimental/3d/bun/terminal-badge-scene.d.ts +11 -0
- package/dist/experimental/3d/bun/terminal-badge.wgsl.d.ts +1 -0
- package/dist/experimental/3d/bun/webgpu-renderer.d.ts +26 -0
- package/dist/experimental/3d/bun.cjs +7271 -0
- package/dist/experimental/3d/bun.d.cts +4 -0
- package/dist/experimental/3d/bun.d.ts +4 -0
- package/dist/experimental/3d/bun.js +7390 -0
- package/dist/experimental/video/node.cjs +497 -0
- package/dist/experimental/video/node.d.cts +4 -0
- package/dist/experimental/video/node.d.ts +4 -0
- package/dist/experimental/video/node.js +610 -0
- package/dist/experimental.cjs +6876 -6192
- package/dist/experimental.d.cts +7 -0
- package/dist/experimental.d.ts +7 -0
- package/dist/experimental.js +3005 -9
- package/dist/frame-perf-CHpWhbC4.js +111 -0
- package/dist/{create-terminal-DBFNYr8f.js → hyperlink-_1FAj7Wq.js} +440 -13
- package/dist/index.cjs +5017 -10339
- package/dist/index.js +14 -13
- package/dist/{linkify-D_gzn9Xq.js → linkify-D68T7rdW.js} +193 -3
- package/dist/markdown.cjs +21295 -12691
- package/dist/markdown.d.cts +1 -1
- package/dist/markdown.d.ts +1 -1
- package/dist/markdown.js +211 -51
- package/dist/mermaid-BNhM1jAZ.js +123 -0
- package/dist/mermaid.cjs +1707 -0
- package/dist/mermaid.d.cts +3 -0
- package/dist/mermaid.d.ts +3 -0
- package/dist/mermaid.js +6 -0
- package/dist/observability/frame-perf-store.d.ts +2 -1
- package/dist/observability/frame-perf.d.ts +33 -0
- package/dist/observability.cjs +106 -107
- package/dist/observability.d.cts +2 -2
- package/dist/observability.d.ts +2 -2
- package/dist/observability.js +3 -3
- package/dist/{wheel-scroll-vBRaQ7p-.js → rect-DUpeDfBg.js} +253 -117
- package/dist/renderer/cli/stdout-metrics.d.ts +10 -0
- package/dist/renderer/cli/stdout-renderer.d.ts +3 -0
- package/dist/renderer/terminal-graphic-render-queue.d.ts +50 -0
- package/dist/renderer/terminal-graphics-trace.d.ts +53 -0
- package/dist/renderer/terminal-graphics.d.ts +147 -0
- package/dist/renderer-dom.cjs +364 -903
- package/dist/renderer-dom.js +4 -5
- package/dist/runtime/index.d.ts +2 -0
- package/dist/{runtime-rfcZCyJq.js → runtime-Byf8XXOT.js} +28 -15
- package/dist/runtime.cjs +427 -889
- package/dist/runtime.js +2 -2
- package/dist/terminal-graphics-Bbe83wSr.js +597 -0
- package/dist/{terminal-selection-DBinO6p5.js → terminal-selection-4W1SJj4c.js} +4 -1
- package/dist/{tlog-theme-CvLFNMwk.js → tlog-theme-Bul2Na3u.js} +1237 -12
- package/dist/{trace-CjzYeIxN.js → trace-Bh8WnoMo.js} +5 -0
- package/dist/vue/agent/create-png-terminal-graphic-renderer.d.ts +19 -0
- package/dist/vue/components/T3DViewport.d.ts +473 -0
- package/dist/vue/components/TAgentTerminalGraphic.d.ts +494 -0
- package/dist/vue/components/TCharts.d.ts +1121 -0
- package/dist/vue/components/TFeedback.d.ts +1 -1
- package/dist/vue/components/TFlex.d.ts +389 -0
- package/dist/vue/components/TForm.d.ts +4 -4
- package/dist/vue/components/TLogSearchBar.d.ts +3 -3
- package/dist/vue/components/TLogSearchPager.d.ts +2 -2
- package/dist/vue/components/TMarkdownText.d.ts +162 -4
- package/dist/vue/components/TMermaidText.d.ts +900 -0
- package/dist/vue/components/TVideo.d.ts +291 -0
- package/dist/vue/components/TVirtualList.d.ts +9 -0
- package/dist/vue/components/TVirtualMarkdown.d.ts +170 -9
- package/dist/vue/components/TVirtualRows.d.ts +9 -0
- package/dist/vue/components/TerminalProvider.d.ts +2 -0
- package/dist/vue/context.d.ts +24 -0
- package/dist/vue/index.d.ts +5 -0
- package/dist/vue/layout/flex.d.ts +67 -0
- package/dist/vue/markdown/ast.d.ts +5 -2
- package/dist/vue/markdown/document.d.ts +5 -0
- package/dist/vue/markdown/image-actions.d.ts +14 -0
- package/dist/vue/markdown/image.d.ts +11 -0
- package/dist/vue/markdown/link-actions.d.ts +14 -0
- package/dist/vue/markdown/math-actions.d.ts +14 -0
- package/dist/vue/markdown/math.d.ts +6 -0
- package/dist/vue/markdown/render.d.ts +28 -0
- package/dist/vue/markdown/types.d.ts +78 -0
- package/dist/vue/mermaid/beautiful-mermaid.d.ts +1436 -0
- package/dist/vue/render/render-manager.d.ts +7 -0
- package/dist/vue/video/types.d.ts +39 -0
- package/dist/vue.cjs +7207 -12437
- package/dist/vue.js +704 -38
- package/dist/wheel-scroll-DASkEZr-.js +106 -0
- package/dist/{hyperlink-Bn02UXJb.js → width-GqllnV8C.js} +166 -111
- package/package.json +119 -14
- package/dist/frame-perf-C6Xfg85O.js +0 -24
- package/dist/sgr-BmzxEjAO.js +0 -304
- /package/dist/{ansi-palette-CNXqFciC.js → ansi-palette-CH6jc2Z7.js} +0 -0
- /package/dist/{path-suggest-BNqcuE3-.js → path-suggest-Dndu4dTi.js} +0 -0
package/package.json
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simon_he/vue-tui",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Vue 3 terminal UI components and renderers for browser DOM, CLI stdout, logs, markdown transcripts, and agent consoles",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-console",
|
|
7
7
|
"agent-ui",
|
|
8
|
+
"ai-agent",
|
|
8
9
|
"ansi",
|
|
9
10
|
"ansi-renderer",
|
|
10
11
|
"browser-terminal",
|
|
12
|
+
"chat-ui",
|
|
11
13
|
"cli",
|
|
12
14
|
"cli-ui",
|
|
13
15
|
"component-library",
|
|
@@ -30,6 +32,7 @@
|
|
|
30
32
|
"virtual-list",
|
|
31
33
|
"vue",
|
|
32
34
|
"vue-cli-ui",
|
|
35
|
+
"vue-component-library",
|
|
33
36
|
"vue-terminal",
|
|
34
37
|
"vue-tui",
|
|
35
38
|
"vue3"
|
|
@@ -58,6 +61,9 @@
|
|
|
58
61
|
"core": [
|
|
59
62
|
"./dist/core.d.ts"
|
|
60
63
|
],
|
|
64
|
+
"mermaid": [
|
|
65
|
+
"./dist/mermaid.d.ts"
|
|
66
|
+
],
|
|
61
67
|
"runtime": [
|
|
62
68
|
"./dist/runtime.d.ts"
|
|
63
69
|
],
|
|
@@ -79,8 +85,17 @@
|
|
|
79
85
|
"experimental": [
|
|
80
86
|
"./dist/experimental.d.ts"
|
|
81
87
|
],
|
|
88
|
+
"experimental/video/node": [
|
|
89
|
+
"./dist/experimental/video/node.d.ts"
|
|
90
|
+
],
|
|
91
|
+
"experimental/3d/bun": [
|
|
92
|
+
"./dist/experimental/3d/bun.d.ts"
|
|
93
|
+
],
|
|
82
94
|
"agent": [
|
|
83
95
|
"./dist/agent.d.ts"
|
|
96
|
+
],
|
|
97
|
+
"agent/mermaid": [
|
|
98
|
+
"./dist/agent/mermaid.d.ts"
|
|
84
99
|
]
|
|
85
100
|
}
|
|
86
101
|
},
|
|
@@ -175,6 +190,26 @@
|
|
|
175
190
|
"default": "./dist/experimental.cjs"
|
|
176
191
|
}
|
|
177
192
|
},
|
|
193
|
+
"./experimental/video/node": {
|
|
194
|
+
"import": {
|
|
195
|
+
"types": "./dist/experimental/video/node.d.ts",
|
|
196
|
+
"default": "./dist/experimental/video/node.js"
|
|
197
|
+
},
|
|
198
|
+
"require": {
|
|
199
|
+
"types": "./dist/experimental/video/node.d.cts",
|
|
200
|
+
"default": "./dist/experimental/video/node.cjs"
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"./experimental/3d/bun": {
|
|
204
|
+
"import": {
|
|
205
|
+
"types": "./dist/experimental/3d/bun.d.ts",
|
|
206
|
+
"default": "./dist/experimental/3d/bun.js"
|
|
207
|
+
},
|
|
208
|
+
"require": {
|
|
209
|
+
"types": "./dist/experimental/3d/bun.d.cts",
|
|
210
|
+
"default": "./dist/experimental/3d/bun.cjs"
|
|
211
|
+
}
|
|
212
|
+
},
|
|
178
213
|
"./agent": {
|
|
179
214
|
"import": {
|
|
180
215
|
"types": "./dist/agent.d.ts",
|
|
@@ -185,25 +220,48 @@
|
|
|
185
220
|
"default": "./dist/agent.cjs"
|
|
186
221
|
}
|
|
187
222
|
},
|
|
223
|
+
"./agent/mermaid": {
|
|
224
|
+
"import": {
|
|
225
|
+
"types": "./dist/agent/mermaid.d.ts",
|
|
226
|
+
"default": "./dist/agent/mermaid.js"
|
|
227
|
+
},
|
|
228
|
+
"require": {
|
|
229
|
+
"types": "./dist/agent/mermaid.d.cts",
|
|
230
|
+
"default": "./dist/agent/mermaid.cjs"
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
"./mermaid": {
|
|
234
|
+
"import": {
|
|
235
|
+
"types": "./dist/mermaid.d.ts",
|
|
236
|
+
"default": "./dist/mermaid.js"
|
|
237
|
+
},
|
|
238
|
+
"require": {
|
|
239
|
+
"types": "./dist/mermaid.d.cts",
|
|
240
|
+
"default": "./dist/mermaid.cjs"
|
|
241
|
+
}
|
|
242
|
+
},
|
|
188
243
|
"./package.json": "./package.json"
|
|
189
244
|
},
|
|
190
245
|
"publishConfig": {
|
|
191
246
|
"access": "public"
|
|
192
247
|
},
|
|
193
248
|
"dependencies": {
|
|
194
|
-
"
|
|
249
|
+
"katex": "^0.16.47",
|
|
250
|
+
"stream-markdown-parser": "1.0.7"
|
|
195
251
|
},
|
|
196
252
|
"devDependencies": {
|
|
197
253
|
"@arethetypeswrong/core": "^0.18.3",
|
|
198
|
-
"@playwright/test": "^1.
|
|
254
|
+
"@playwright/test": "^1.61.0",
|
|
199
255
|
"@types/node": "^18.19.130",
|
|
200
|
-
"@vitest/coverage-v8": "^4.1.
|
|
256
|
+
"@vitest/coverage-v8": "^4.1.9",
|
|
257
|
+
"beautiful-mermaid": "^1.1.3",
|
|
201
258
|
"bumpp": "^8.2.1",
|
|
259
|
+
"bun-webgpu": "0.1.7",
|
|
202
260
|
"esbuild": "^0.20.2",
|
|
203
261
|
"happy-dom": "^17.6.3",
|
|
204
262
|
"lint-staged": "^13.3.0",
|
|
205
263
|
"oxfmt": "^0.47.0",
|
|
206
|
-
"oxlint": "^1.
|
|
264
|
+
"oxlint": "^1.70.0",
|
|
207
265
|
"picocolors": "^1.1.1",
|
|
208
266
|
"pinia": "^3.0.4",
|
|
209
267
|
"publint": "^0.3.21",
|
|
@@ -211,14 +269,24 @@
|
|
|
211
269
|
"tsdown": "^0.9.9",
|
|
212
270
|
"tsx": "^4.22.4",
|
|
213
271
|
"typescript": "^5.9.3",
|
|
214
|
-
"vite": "
|
|
272
|
+
"vite": "8.0.16",
|
|
215
273
|
"vitepress": "^1.6.4",
|
|
216
|
-
"vitest": "^4.1.
|
|
217
|
-
"vue": "^3.5.
|
|
274
|
+
"vitest": "^4.1.9",
|
|
275
|
+
"vue": "^3.5.38"
|
|
218
276
|
},
|
|
219
277
|
"peerDependencies": {
|
|
278
|
+
"beautiful-mermaid": "^1.1.3",
|
|
279
|
+
"bun-webgpu": "^0.1.7",
|
|
220
280
|
"vue": ">=3.3.0 <4"
|
|
221
281
|
},
|
|
282
|
+
"peerDependenciesMeta": {
|
|
283
|
+
"beautiful-mermaid": {
|
|
284
|
+
"optional": true
|
|
285
|
+
},
|
|
286
|
+
"bun-webgpu": {
|
|
287
|
+
"optional": true
|
|
288
|
+
}
|
|
289
|
+
},
|
|
222
290
|
"lint-staged": {
|
|
223
291
|
"*": "oxfmt --write",
|
|
224
292
|
"*.{vue,js,ts,jsx,tsx}": "oxlint --fix"
|
|
@@ -229,16 +297,25 @@
|
|
|
229
297
|
"scripts": {
|
|
230
298
|
"build": "pnpm run build:checked",
|
|
231
299
|
"build:fast": "pnpm run build:raw",
|
|
232
|
-
"build:raw": "rimraf dist && tsdown && node scripts/build-cjs.mjs && tsc -p tsconfig.build.json --emitDeclarationOnly && node scripts/fix-vue-dts-compat.mjs && node scripts/create-cjs-dts.mjs",
|
|
300
|
+
"build:raw": "rimraf dist && node scripts/prepare-build-metafiles.mjs && tsdown && node scripts/build-cjs.mjs && tsc -p tsconfig.build.json --emitDeclarationOnly && node scripts/fix-vue-dts-compat.mjs && node scripts/create-cjs-dts.mjs",
|
|
233
301
|
"build:checked": "node scripts/run-build-checked.mjs && node scripts/check-build-warnings.mjs .tmp/build.log",
|
|
234
302
|
"dev": "tsdown --watch",
|
|
235
303
|
"build:examples": "pnpm run build && pnpm -C examples/basic build",
|
|
236
304
|
"build:examples:terminal": "pnpm run build && pnpm -C examples/basic build:terminal",
|
|
305
|
+
"showcase": "pnpm -C examples/basic dev",
|
|
306
|
+
"showcase:terminal": "pnpm run build && pnpm -C examples/basic terminal",
|
|
237
307
|
"example:basic:terminal-table:smoke": "pnpm run build && VT_SMOKE=1 pnpm -C examples/basic terminal:table",
|
|
238
308
|
"example:agent-console": "pnpm run build && pnpm -C examples/agent-console dev",
|
|
239
309
|
"example:agent-console:smoke": "pnpm run build && pnpm -C examples/agent-console smoke",
|
|
240
310
|
"example:agent-console:terminal": "pnpm run build && pnpm -C examples/agent-console terminal",
|
|
241
311
|
"example:agent-console:terminal:smoke": "pnpm run build && pnpm -C examples/agent-console terminal:smoke",
|
|
312
|
+
"profile:agent-console:cli": "tsx scripts/profile-agent-console-cli.ts",
|
|
313
|
+
"profile:agent-console:browser": "tsx scripts/profile-agent-console-browser.ts",
|
|
314
|
+
"profile:agent-console:summarize": "tsx scripts/summarize-agent-console-profile.ts",
|
|
315
|
+
"profile:agent-console": "tsx scripts/profile-agent-console.ts",
|
|
316
|
+
"profile:agent-console:smoke": "AGENT_CONSOLE_PROFILE_SMOKE=1 pnpm run profile:agent-console",
|
|
317
|
+
"profile:agent-console:abc": "tsx scripts/profile-agent-console-abc.ts",
|
|
318
|
+
"profile:agent-console:abc:smoke": "AGENT_CONSOLE_PROFILE_SMOKE=1 tsx scripts/profile-agent-console-abc.ts",
|
|
242
319
|
"example:tlog-view-lab": "pnpm run build && VT_SMOKE=1 tsx examples/tlog-view-lab.ts",
|
|
243
320
|
"run:basic:terminal": "pnpm run build && pnpm -C examples/basic terminal",
|
|
244
321
|
"run:agent-console:terminal": "pnpm run build && pnpm -C examples/agent-console terminal",
|
|
@@ -246,7 +323,16 @@
|
|
|
246
323
|
"run:tlog-view-lab": "pnpm run build && VT_INTERACTIVE=1 tsx examples/tlog-view-lab.ts",
|
|
247
324
|
"run:component:terminal": "tsx scripts/run-component-terminal.ts",
|
|
248
325
|
"run:component:terminal:list": "tsx scripts/run-component-terminal.ts --list",
|
|
326
|
+
"run:github-contribution-card": "pnpm -C apps/simon-terminal-card dev",
|
|
327
|
+
"run:logo:terminal": "tsx examples/vue-tui-logo-terminal.ts",
|
|
328
|
+
"run:3d:terminal": "bun examples/t3d-terminal-badge.ts",
|
|
329
|
+
"example:3d:smoke": "VT_SMOKE=1 bun examples/t3d-terminal-badge.ts",
|
|
330
|
+
"test:3d:bun": "bun scripts/smoke-bun-3d.ts",
|
|
331
|
+
"run:image-showcase:terminal": "tsx examples/image-showcase.ts",
|
|
332
|
+
"run:katex-showcase:terminal": "tsx examples/katex-showcase.ts",
|
|
333
|
+
"trace:terminal-resize": "node scripts/trace-terminal-resize.mjs",
|
|
249
334
|
"test:component-terminal:smoke": "VT_SMOKE=1 tsx scripts/run-component-terminal.ts --all",
|
|
335
|
+
"e2e:component-terminal-charts": "tsx scripts/run-component-terminal.ts --capture-charts",
|
|
250
336
|
"docs:gen": "tsx scripts/generate-component-api-docs.ts",
|
|
251
337
|
"docs:check-public-descriptions": "tsx scripts/check-public-api-docs.ts",
|
|
252
338
|
"docs:dev": "pnpm run docs:gen && vitepress dev docs",
|
|
@@ -260,6 +346,10 @@
|
|
|
260
346
|
"lint:fix": "oxlint . --fix",
|
|
261
347
|
"check:hidden-unicode": "node scripts/check-hidden-unicode.cjs",
|
|
262
348
|
"check:tracked-build-output": "node scripts/check-tracked-build-output.cjs",
|
|
349
|
+
"check:production-instrumentation-strip": "node scripts/check-production-instrumentation-strip.mjs && node scripts/check-production-instrumentation-negative-control.mjs",
|
|
350
|
+
"check:consumer-bundle": "tsx scripts/check-consumer-bundle.ts",
|
|
351
|
+
"validate:consumer-bundle-abc": "tsx scripts/validate-consumer-bundle-abc.ts",
|
|
352
|
+
"validate:built-dist-abc": "tsx scripts/validate-built-dist-abc.ts",
|
|
263
353
|
"release:workflow-only": "node -e \"console.error('Use GitHub Release workflow'); process.exit(1)\"",
|
|
264
354
|
"release": "pnpm run release:workflow-only",
|
|
265
355
|
"release:verify": "pnpm run release:dry-run",
|
|
@@ -267,16 +357,16 @@
|
|
|
267
357
|
"publish:npm:patch": "pnpm exec bumpp patch --yes --no-commit --no-tag --no-push && (npm whoami >/dev/null 2>&1 || npm login) && VUE_TUI_ALLOW_DIRECT_PUBLISH=1 pnpm publish --access public --no-git-checks",
|
|
268
358
|
"release:local": "pnpm run release:dry-run && VUE_TUI_ALLOW_DIRECT_PUBLISH=1 npm publish .release/*.tgz --access public --tag rc",
|
|
269
359
|
"release:local:dry-run": "pnpm run release:dry-run && VUE_TUI_ALLOW_DIRECT_PUBLISH=1 npm publish .release/*.tgz --access public --dry-run --tag rc",
|
|
270
|
-
"release:bench": "pnpm run bench:baseline && FRAMES=2000 pnpm run bench:stdout-column-diff",
|
|
271
|
-
"release:check": "pnpm run check:hidden-unicode && pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run test && pnpm run test:coverage:core && pnpm run build:checked && pnpm run test:package-exports:dist && pnpm run check:dist-dts && pnpm run test:types:dist && pnpm run test:browser-vite-import:dist && pnpm run docs:build && pnpm run api:diff && git diff --exit-code -- docs/generated",
|
|
360
|
+
"release:bench": "pnpm run bench:baseline && pnpm run bench:perf-baseline:smoke && FRAMES=2000 pnpm run bench:stdout-column-diff",
|
|
361
|
+
"release:check": "pnpm run check:hidden-unicode && pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run test && pnpm run test:coverage:core && pnpm run build:checked && pnpm run check:production-instrumentation-strip && pnpm run check:consumer-bundle && pnpm run test:package-exports:dist && pnpm run check:dist-dts && pnpm run test:types:dist && pnpm run test:browser-vite-import:dist && pnpm run docs:build && pnpm run api:diff && git diff --exit-code -- docs/generated",
|
|
272
362
|
"release:dry-run": "pnpm run release:check && pnpm run release:bench && pnpm run release:smoke && pnpm run release:pack-smoke",
|
|
273
363
|
"release:pack": "rimraf .release && pnpm run build:checked && pnpm pack --pack-destination .release",
|
|
274
364
|
"release:pack-smoke": "pnpm run release:pack && pnpm run test:package-contract:existing && pnpm run release:pack-smoke:existing",
|
|
275
|
-
"release:pack-smoke:existing": "node scripts/smoke-packed-package.mjs .release/*.tgz && node scripts/smoke-packed-ssr-import.mjs .release/*.tgz",
|
|
365
|
+
"release:pack-smoke:existing": "node scripts/smoke-packed-package.mjs .release/*.tgz && node scripts/smoke-packed-ssr-import.mjs .release/*.tgz && node scripts/smoke-packed-no-mermaid-peer.mjs .release/*.tgz",
|
|
276
366
|
"release:smoke": "pnpm run example:tlog-view-lab && pnpm run example:agent-console:smoke && pnpm run example:agent-console:terminal:smoke && pnpm run example:basic:terminal-table:smoke",
|
|
277
367
|
"start": "esno src/index.ts",
|
|
278
368
|
"test": "vitest run",
|
|
279
|
-
"test:coverage:core": "vitest run test/unicode-width.test.ts test/hyperlink-sanitizer.test.ts test/dom-renderer.test.ts test/render-manager.test.ts test/terminal-selection.test.ts test/terminal-scroll-operations.test.ts test/plane-compositor.test.ts --coverage.enabled true --coverage.reporter text-summary",
|
|
369
|
+
"test:coverage:core": "vitest run test/unicode-width.test.ts test/core/buffer/unicode-17-eaw.test.ts test/hyperlink-sanitizer.test.ts test/dom-renderer.test.ts test/render-manager.test.ts test/terminal-selection.test.ts test/terminal-scroll-operations.test.ts test/plane-compositor.test.ts --coverage.enabled true --coverage.reporter text-summary",
|
|
280
370
|
"test:browser-packed-vite-import": "pnpm run test:browser-vite-import:package",
|
|
281
371
|
"test:browser-vite-import": "pnpm run build:checked && pnpm run test:browser-vite-import:dist",
|
|
282
372
|
"test:browser-vite-import:dist": "pnpm exec vite build --config test/fixtures/browser-vite-import/vite.config.ts && node scripts/check-browser-vite-import.mjs",
|
|
@@ -293,6 +383,8 @@
|
|
|
293
383
|
"typecheck": "tsc -p tsconfig.runtime.json --noEmit && tsc -p tsconfig.json --noEmit",
|
|
294
384
|
"e2e": "playwright test --project=smoke",
|
|
295
385
|
"e2e:smoke": "playwright test --project=smoke",
|
|
386
|
+
"e2e:charts": "tsx scripts/e2e-charts.ts",
|
|
387
|
+
"e2e:terminal-resize": "tsx scripts/e2e-terminal-resize.ts",
|
|
296
388
|
"e2e:browser-regressions": "playwright test --project=browser-regressions-chromium --project=browser-regressions-firefox --project=browser-regressions-webkit",
|
|
297
389
|
"bench:vfor": "tsx scripts/bench-vfor.ts",
|
|
298
390
|
"bench:dom-renderer": "tsx scripts/bench-dom-renderer.ts",
|
|
@@ -300,6 +392,19 @@
|
|
|
300
392
|
"bench:baseline:timing": "BENCH_TIMING=1 tsx scripts/check-bench-baselines.ts",
|
|
301
393
|
"bench:phase2": "tsx scripts/bench-phase2.ts",
|
|
302
394
|
"bench:scroll-mailbox": "tsx scripts/bench-scroll-mailbox.ts",
|
|
303
|
-
"bench:stdout-column-diff": "tsx scripts/bench-stdout-column-diff.ts"
|
|
395
|
+
"bench:stdout-column-diff": "tsx scripts/bench-stdout-column-diff.ts",
|
|
396
|
+
"unicode:eaw:generate": "tsx scripts/generate-eaw-ranges.ts",
|
|
397
|
+
"unicode:eaw:check": "tsx scripts/generate-eaw-ranges.ts && git diff --exit-code -- src/core/buffer/eaw-ranges-unicode-17.ts",
|
|
398
|
+
"bench:perf-baseline": "tsx scripts/bench-perf-baseline.ts",
|
|
399
|
+
"bench:perf-baseline:json": "tsx scripts/bench-perf-baseline.ts --output .tmp/perf-baseline.json",
|
|
400
|
+
"bench:perf-baseline:smoke": "BENCH_SMOKE=1 tsx scripts/bench-perf-baseline.ts --output .tmp/perf-baseline-smoke.json",
|
|
401
|
+
"bench:profiler": "tsx scripts/bench-profiler-complete.ts",
|
|
402
|
+
"bench:profiler:gc": "node --expose-gc --import=tsx scripts/bench-profiler-complete.ts",
|
|
403
|
+
"bench:profiler:legacy": "tsx scripts/bench-profiler-legacy.ts",
|
|
404
|
+
"bench:overhead": "tsx scripts/bench-instrumentation-overhead.ts",
|
|
405
|
+
"bench:bundle-size": "tsx scripts/bench-bundle-size.ts",
|
|
406
|
+
"validate:agent-console:abc": "tsx scripts/validate-agent-console-abc.ts",
|
|
407
|
+
"profile:agent-console:record": "tsx scripts/record-agent-console-profile.ts",
|
|
408
|
+
"check:agent-console-profile-baseline": "tsx scripts/check-agent-console-profile-baseline.ts"
|
|
304
409
|
}
|
|
305
410
|
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
//#region src/observability/frame-perf.ts
|
|
2
|
-
const FRAME_PERF_REASON_PRIORITY = {
|
|
3
|
-
unknown: 0,
|
|
4
|
-
manual: 1,
|
|
5
|
-
data: 2,
|
|
6
|
-
selection: 3,
|
|
7
|
-
stream: 4,
|
|
8
|
-
resize: 5,
|
|
9
|
-
scroll: 6,
|
|
10
|
-
input: 7
|
|
11
|
-
};
|
|
12
|
-
function framePerfNow() {
|
|
13
|
-
const p = globalThis.performance;
|
|
14
|
-
if (p && typeof p.now === "function") return p.now();
|
|
15
|
-
return Date.now();
|
|
16
|
-
}
|
|
17
|
-
function mergeFramePerfReason(prev, next) {
|
|
18
|
-
const a = prev ?? "unknown";
|
|
19
|
-
const b = next ?? "unknown";
|
|
20
|
-
return FRAME_PERF_REASON_PRIORITY[b] > FRAME_PERF_REASON_PRIORITY[a] ? b : a;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
//#endregion
|
|
24
|
-
export { framePerfNow, mergeFramePerfReason };
|
package/dist/sgr-BmzxEjAO.js
DELETED
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
//#region src/core/ansi/sgr.ts
|
|
2
|
-
const ESC = "\x1B";
|
|
3
|
-
function ansi16ToColorName(code) {
|
|
4
|
-
switch (code) {
|
|
5
|
-
case 30: return "black";
|
|
6
|
-
case 31: return "red";
|
|
7
|
-
case 32: return "green";
|
|
8
|
-
case 33: return "yellow";
|
|
9
|
-
case 34: return "blue";
|
|
10
|
-
case 35: return "magenta";
|
|
11
|
-
case 36: return "cyan";
|
|
12
|
-
case 37: return "white";
|
|
13
|
-
case 90: return "blackBright";
|
|
14
|
-
case 91: return "redBright";
|
|
15
|
-
case 92: return "greenBright";
|
|
16
|
-
case 93: return "yellowBright";
|
|
17
|
-
case 94: return "blueBright";
|
|
18
|
-
case 95: return "magentaBright";
|
|
19
|
-
case 96: return "cyanBright";
|
|
20
|
-
case 97: return "whiteBright";
|
|
21
|
-
default: return void 0;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
function ansi16BgToColorName(code) {
|
|
25
|
-
const fgCode = code >= 40 && code <= 47 ? code - 10 : code >= 100 && code <= 107 ? code - 10 : null;
|
|
26
|
-
if (fgCode == null) return void 0;
|
|
27
|
-
return ansi16ToColorName(fgCode);
|
|
28
|
-
}
|
|
29
|
-
const ANSI16_RGB = {
|
|
30
|
-
black: {
|
|
31
|
-
r: 0,
|
|
32
|
-
g: 0,
|
|
33
|
-
b: 0
|
|
34
|
-
},
|
|
35
|
-
red: {
|
|
36
|
-
r: 201,
|
|
37
|
-
g: 27,
|
|
38
|
-
b: 0
|
|
39
|
-
},
|
|
40
|
-
green: {
|
|
41
|
-
r: 0,
|
|
42
|
-
g: 194,
|
|
43
|
-
b: 0
|
|
44
|
-
},
|
|
45
|
-
yellow: {
|
|
46
|
-
r: 199,
|
|
47
|
-
g: 196,
|
|
48
|
-
b: 0
|
|
49
|
-
},
|
|
50
|
-
blue: {
|
|
51
|
-
r: 2,
|
|
52
|
-
g: 37,
|
|
53
|
-
b: 199
|
|
54
|
-
},
|
|
55
|
-
magenta: {
|
|
56
|
-
r: 201,
|
|
57
|
-
g: 48,
|
|
58
|
-
b: 199
|
|
59
|
-
},
|
|
60
|
-
cyan: {
|
|
61
|
-
r: 0,
|
|
62
|
-
g: 197,
|
|
63
|
-
b: 199
|
|
64
|
-
},
|
|
65
|
-
white: {
|
|
66
|
-
r: 199,
|
|
67
|
-
g: 199,
|
|
68
|
-
b: 199
|
|
69
|
-
},
|
|
70
|
-
blackBright: {
|
|
71
|
-
r: 104,
|
|
72
|
-
g: 104,
|
|
73
|
-
b: 104
|
|
74
|
-
},
|
|
75
|
-
redBright: {
|
|
76
|
-
r: 255,
|
|
77
|
-
g: 110,
|
|
78
|
-
b: 103
|
|
79
|
-
},
|
|
80
|
-
greenBright: {
|
|
81
|
-
r: 95,
|
|
82
|
-
g: 250,
|
|
83
|
-
b: 104
|
|
84
|
-
},
|
|
85
|
-
yellowBright: {
|
|
86
|
-
r: 255,
|
|
87
|
-
g: 252,
|
|
88
|
-
b: 103
|
|
89
|
-
},
|
|
90
|
-
blueBright: {
|
|
91
|
-
r: 104,
|
|
92
|
-
g: 113,
|
|
93
|
-
b: 255
|
|
94
|
-
},
|
|
95
|
-
magentaBright: {
|
|
96
|
-
r: 255,
|
|
97
|
-
g: 118,
|
|
98
|
-
b: 255
|
|
99
|
-
},
|
|
100
|
-
cyanBright: {
|
|
101
|
-
r: 95,
|
|
102
|
-
g: 253,
|
|
103
|
-
b: 255
|
|
104
|
-
},
|
|
105
|
-
whiteBright: {
|
|
106
|
-
r: 255,
|
|
107
|
-
g: 255,
|
|
108
|
-
b: 255
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
function nearestAnsi16(r, g, b) {
|
|
112
|
-
let best = "white";
|
|
113
|
-
let bestDist = Number.POSITIVE_INFINITY;
|
|
114
|
-
for (const [name, rgb] of Object.entries(ANSI16_RGB)) {
|
|
115
|
-
const dr = r - rgb.r;
|
|
116
|
-
const dg = g - rgb.g;
|
|
117
|
-
const db = b - rgb.b;
|
|
118
|
-
const d = dr * dr + dg * dg + db * db;
|
|
119
|
-
if (d < bestDist) {
|
|
120
|
-
bestDist = d;
|
|
121
|
-
best = name;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return best;
|
|
125
|
-
}
|
|
126
|
-
function ansi256ToRgb(index) {
|
|
127
|
-
const n = Math.max(0, Math.min(255, Math.trunc(index)));
|
|
128
|
-
if (n < 16) {
|
|
129
|
-
const map = [
|
|
130
|
-
"black",
|
|
131
|
-
"red",
|
|
132
|
-
"green",
|
|
133
|
-
"yellow",
|
|
134
|
-
"blue",
|
|
135
|
-
"magenta",
|
|
136
|
-
"cyan",
|
|
137
|
-
"white",
|
|
138
|
-
"blackBright",
|
|
139
|
-
"redBright",
|
|
140
|
-
"greenBright",
|
|
141
|
-
"yellowBright",
|
|
142
|
-
"blueBright",
|
|
143
|
-
"magentaBright",
|
|
144
|
-
"cyanBright",
|
|
145
|
-
"whiteBright"
|
|
146
|
-
];
|
|
147
|
-
const name = map[n] ?? "white";
|
|
148
|
-
return ANSI16_RGB[name];
|
|
149
|
-
}
|
|
150
|
-
if (n >= 232) {
|
|
151
|
-
const c = 8 + (n - 232) * 10;
|
|
152
|
-
return {
|
|
153
|
-
r: c,
|
|
154
|
-
g: c,
|
|
155
|
-
b: c
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
const i = n - 16;
|
|
159
|
-
const rr = Math.floor(i / 36);
|
|
160
|
-
const gg = Math.floor(i % 36 / 6);
|
|
161
|
-
const bb = i % 6;
|
|
162
|
-
const toComponent = (v) => v === 0 ? 0 : 55 + v * 40;
|
|
163
|
-
return {
|
|
164
|
-
r: toComponent(rr),
|
|
165
|
-
g: toComponent(gg),
|
|
166
|
-
b: toComponent(bb)
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
function applyAnsiSgrStyle(current, codes) {
|
|
170
|
-
let next = { ...current };
|
|
171
|
-
for (let i = 0; i < codes.length; i++) {
|
|
172
|
-
const code = codes[i];
|
|
173
|
-
if (code === 0) {
|
|
174
|
-
next = {};
|
|
175
|
-
continue;
|
|
176
|
-
}
|
|
177
|
-
if (code === 1) next = {
|
|
178
|
-
...next,
|
|
179
|
-
bold: true
|
|
180
|
-
};
|
|
181
|
-
else if (code === 2) next = {
|
|
182
|
-
...next,
|
|
183
|
-
dim: true
|
|
184
|
-
};
|
|
185
|
-
else if (code === 3) next = {
|
|
186
|
-
...next,
|
|
187
|
-
italic: true
|
|
188
|
-
};
|
|
189
|
-
else if (code === 4) next = {
|
|
190
|
-
...next,
|
|
191
|
-
underline: true
|
|
192
|
-
};
|
|
193
|
-
else if (code === 7) next = {
|
|
194
|
-
...next,
|
|
195
|
-
inverse: true
|
|
196
|
-
};
|
|
197
|
-
else if (code === 22) next = {
|
|
198
|
-
...next,
|
|
199
|
-
bold: false,
|
|
200
|
-
dim: false
|
|
201
|
-
};
|
|
202
|
-
else if (code === 23) next = {
|
|
203
|
-
...next,
|
|
204
|
-
italic: false
|
|
205
|
-
};
|
|
206
|
-
else if (code === 24) next = {
|
|
207
|
-
...next,
|
|
208
|
-
underline: false
|
|
209
|
-
};
|
|
210
|
-
else if (code === 27) next = {
|
|
211
|
-
...next,
|
|
212
|
-
inverse: false
|
|
213
|
-
};
|
|
214
|
-
else if (code === 39) next = {
|
|
215
|
-
...next,
|
|
216
|
-
fg: void 0
|
|
217
|
-
};
|
|
218
|
-
else if (code === 49) next = {
|
|
219
|
-
...next,
|
|
220
|
-
bg: void 0
|
|
221
|
-
};
|
|
222
|
-
else if (code >= 30 && code <= 37 || code >= 90 && code <= 97) {
|
|
223
|
-
const fg = ansi16ToColorName(code);
|
|
224
|
-
next = {
|
|
225
|
-
...next,
|
|
226
|
-
fg: fg ?? next.fg
|
|
227
|
-
};
|
|
228
|
-
} else if (code >= 40 && code <= 47 || code >= 100 && code <= 107) {
|
|
229
|
-
const bg = ansi16BgToColorName(code);
|
|
230
|
-
next = {
|
|
231
|
-
...next,
|
|
232
|
-
bg: bg ?? next.bg
|
|
233
|
-
};
|
|
234
|
-
} else if (code === 38 || code === 48) {
|
|
235
|
-
const mode = codes[i + 1];
|
|
236
|
-
if (mode === 5) {
|
|
237
|
-
const idx = codes[i + 2];
|
|
238
|
-
if (idx != null) {
|
|
239
|
-
const { r, g, b } = ansi256ToRgb(idx);
|
|
240
|
-
const name = nearestAnsi16(r, g, b);
|
|
241
|
-
next = code === 38 ? {
|
|
242
|
-
...next,
|
|
243
|
-
fg: name
|
|
244
|
-
} : {
|
|
245
|
-
...next,
|
|
246
|
-
bg: name
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
i += 2;
|
|
250
|
-
} else if (mode === 2) {
|
|
251
|
-
const r = codes[i + 2];
|
|
252
|
-
const g = codes[i + 3];
|
|
253
|
-
const b = codes[i + 4];
|
|
254
|
-
if (r != null && g != null && b != null) {
|
|
255
|
-
const name = nearestAnsi16(r, g, b);
|
|
256
|
-
next = code === 38 ? {
|
|
257
|
-
...next,
|
|
258
|
-
fg: name
|
|
259
|
-
} : {
|
|
260
|
-
...next,
|
|
261
|
-
bg: name
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
i += 4;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
return next;
|
|
269
|
-
}
|
|
270
|
-
function parseAnsiSgr(input, baseStyle = {}) {
|
|
271
|
-
const segments = [];
|
|
272
|
-
let style = { ...baseStyle };
|
|
273
|
-
let lastIndex = 0;
|
|
274
|
-
for (let i = 0; i < input.length; i++) {
|
|
275
|
-
if (input[i] !== ESC || input[i + 1] !== "[") continue;
|
|
276
|
-
let j = i + 2;
|
|
277
|
-
while (j < input.length) {
|
|
278
|
-
const c = input.charCodeAt(j);
|
|
279
|
-
if (c >= 48 && c <= 57 || c === 59) {
|
|
280
|
-
j++;
|
|
281
|
-
continue;
|
|
282
|
-
}
|
|
283
|
-
break;
|
|
284
|
-
}
|
|
285
|
-
if (j >= input.length || input[j] !== "m") continue;
|
|
286
|
-
if (i > lastIndex) segments.push({
|
|
287
|
-
text: input.slice(lastIndex, i),
|
|
288
|
-
style
|
|
289
|
-
});
|
|
290
|
-
const body = input.slice(i + 2, j);
|
|
291
|
-
const codes = body.split(";").filter(Boolean).map((n) => Number.parseInt(n, 10)).filter((n) => Number.isFinite(n));
|
|
292
|
-
style = applyAnsiSgrStyle(style, codes.length ? codes : [0]);
|
|
293
|
-
lastIndex = j + 1;
|
|
294
|
-
i = j;
|
|
295
|
-
}
|
|
296
|
-
if (lastIndex < input.length) segments.push({
|
|
297
|
-
text: input.slice(lastIndex),
|
|
298
|
-
style
|
|
299
|
-
});
|
|
300
|
-
return segments;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
//#endregion
|
|
304
|
-
export { applyAnsiSgrStyle, parseAnsiSgr };
|
|
File without changes
|
|
File without changes
|