@opentui/core 0.0.0-20250930-a8fe63ce → 0.0.0-20251001-886e38c1
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/3d.js +1 -1
- package/{index-h87jjatk.js → index-r19wz8xa.js} +146 -68
- package/{index-h87jjatk.js.map → index-r19wz8xa.js.map} +8 -7
- package/index.js +1 -1
- package/lib/tree-sitter/client.d.ts +2 -0
- package/lib/tree-sitter/default-parsers.d.ts +1 -1
- package/lib/tree-sitter/parser.worker.d.ts +2 -55
- package/lib/tree-sitter/parser.worker.path.d.ts +2 -0
- package/package.json +26 -8
- package/parser.worker.d.ts +2 -0
- package/parser.worker.js +612 -0
- package/parser.worker.js.map +11 -0
- package/parser.worker.path.d.ts +2 -0
- package/parser.worker.path.js +10 -0
- package/parser.worker.path.js.map +10 -0
- package/testing.js +1 -1
package/3d.js
CHANGED
|
@@ -5282,6 +5282,10 @@ class ProcessQueue {
|
|
|
5282
5282
|
}
|
|
5283
5283
|
}
|
|
5284
5284
|
|
|
5285
|
+
// src/lib/tree-sitter/default-parsers.ts
|
|
5286
|
+
import { resolve, dirname } from "path";
|
|
5287
|
+
import { fileURLToPath } from "url";
|
|
5288
|
+
|
|
5285
5289
|
// src/lib/tree-sitter/assets/javascript/highlights.scm
|
|
5286
5290
|
var highlights_default = "./highlights-ghv9g403.scm";
|
|
5287
5291
|
|
|
@@ -5295,32 +5299,43 @@ var highlights_default2 = "./highlights-eq9cgrbb.scm";
|
|
|
5295
5299
|
var tree_sitter_typescript_default = "./tree-sitter-typescript-zxjzwt75.wasm";
|
|
5296
5300
|
|
|
5297
5301
|
// src/lib/tree-sitter/default-parsers.ts
|
|
5298
|
-
var
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
|
|
5304
|
-
|
|
5305
|
-
|
|
5306
|
-
|
|
5307
|
-
|
|
5308
|
-
|
|
5309
|
-
|
|
5310
|
-
|
|
5311
|
-
|
|
5302
|
+
var _cachedParsers;
|
|
5303
|
+
function getParsers() {
|
|
5304
|
+
if (!_cachedParsers) {
|
|
5305
|
+
_cachedParsers = [
|
|
5306
|
+
{
|
|
5307
|
+
filetype: "javascript",
|
|
5308
|
+
queries: {
|
|
5309
|
+
highlights: [resolve(dirname(fileURLToPath(import.meta.url)), highlights_default)]
|
|
5310
|
+
},
|
|
5311
|
+
wasm: resolve(dirname(fileURLToPath(import.meta.url)), tree_sitter_javascript_default)
|
|
5312
|
+
},
|
|
5313
|
+
{
|
|
5314
|
+
filetype: "typescript",
|
|
5315
|
+
queries: {
|
|
5316
|
+
highlights: [resolve(dirname(fileURLToPath(import.meta.url)), highlights_default2)]
|
|
5317
|
+
},
|
|
5318
|
+
wasm: resolve(dirname(fileURLToPath(import.meta.url)), tree_sitter_typescript_default)
|
|
5319
|
+
}
|
|
5320
|
+
];
|
|
5312
5321
|
}
|
|
5313
|
-
|
|
5322
|
+
return _cachedParsers;
|
|
5323
|
+
}
|
|
5324
|
+
|
|
5325
|
+
// src/lib/tree-sitter/parser.worker.path.ts
|
|
5326
|
+
var workerPath = new URL("./parser.worker.js", import.meta.url).href;
|
|
5327
|
+
var parser_worker_path_default = workerPath;
|
|
5314
5328
|
|
|
5315
5329
|
// src/lib/tree-sitter/client.ts
|
|
5316
|
-
|
|
5330
|
+
import { resolve as resolve2, isAbsolute } from "path";
|
|
5331
|
+
var DEFAULT_PARSERS = getParsers();
|
|
5317
5332
|
function addDefaultParsers(parsers) {
|
|
5318
5333
|
for (const parser of parsers) {
|
|
5319
|
-
const existingIndex =
|
|
5334
|
+
const existingIndex = DEFAULT_PARSERS.findIndex((p) => p.filetype === parser.filetype);
|
|
5320
5335
|
if (existingIndex >= 0) {
|
|
5321
|
-
|
|
5336
|
+
DEFAULT_PARSERS[existingIndex] = parser;
|
|
5322
5337
|
} else {
|
|
5323
|
-
|
|
5338
|
+
DEFAULT_PARSERS.push(parser);
|
|
5324
5339
|
}
|
|
5325
5340
|
}
|
|
5326
5341
|
}
|
|
@@ -5342,13 +5357,32 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5342
5357
|
this.debouncer = createDebounce("tree-sitter-client");
|
|
5343
5358
|
this.startWorker();
|
|
5344
5359
|
}
|
|
5360
|
+
emitError(error, bufferId) {
|
|
5361
|
+
if (this.listenerCount("error") > 0) {
|
|
5362
|
+
this.emit("error", error, bufferId);
|
|
5363
|
+
}
|
|
5364
|
+
}
|
|
5365
|
+
emitWarning(warning, bufferId) {
|
|
5366
|
+
if (this.listenerCount("warning") > 0) {
|
|
5367
|
+
this.emit("warning", warning, bufferId);
|
|
5368
|
+
}
|
|
5369
|
+
}
|
|
5345
5370
|
startWorker() {
|
|
5346
5371
|
if (this.worker) {
|
|
5347
5372
|
return;
|
|
5348
5373
|
}
|
|
5349
|
-
const
|
|
5350
|
-
this.worker = new Worker(
|
|
5374
|
+
const workerPath2 = this.options.workerPath || parser_worker_path_default;
|
|
5375
|
+
this.worker = new Worker(workerPath2);
|
|
5351
5376
|
this.worker.onmessage = this.handleWorkerMessage.bind(this);
|
|
5377
|
+
this.worker.onerror = (error) => {
|
|
5378
|
+
console.error("TreeSitter worker error:", error.message);
|
|
5379
|
+
if (this.initializeResolvers) {
|
|
5380
|
+
clearTimeout(this.initializeResolvers.timeoutId);
|
|
5381
|
+
this.initializeResolvers.reject(new Error(`Worker error: ${error.message}`));
|
|
5382
|
+
this.initializeResolvers = undefined;
|
|
5383
|
+
}
|
|
5384
|
+
this.emitError(`Worker error: ${error.message}`);
|
|
5385
|
+
};
|
|
5352
5386
|
}
|
|
5353
5387
|
stopWorker() {
|
|
5354
5388
|
if (!this.worker) {
|
|
@@ -5369,13 +5403,15 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5369
5403
|
if (this.initializePromise) {
|
|
5370
5404
|
return this.initializePromise;
|
|
5371
5405
|
}
|
|
5372
|
-
this.initializePromise = new Promise((
|
|
5406
|
+
this.initializePromise = new Promise((resolve3, reject) => {
|
|
5373
5407
|
const timeoutMs = this.options.initTimeout ?? 1e4;
|
|
5374
5408
|
const timeoutId = setTimeout(() => {
|
|
5409
|
+
const error = new Error("Worker initialization timed out");
|
|
5410
|
+
console.error("TreeSitter client:", error.message);
|
|
5375
5411
|
this.initializeResolvers = undefined;
|
|
5376
|
-
reject(
|
|
5412
|
+
reject(error);
|
|
5377
5413
|
}, timeoutMs);
|
|
5378
|
-
this.initializeResolvers = { resolve, reject, timeoutId };
|
|
5414
|
+
this.initializeResolvers = { resolve: resolve3, reject, timeoutId };
|
|
5379
5415
|
this.worker?.postMessage({
|
|
5380
5416
|
type: "INIT",
|
|
5381
5417
|
dataPath: this.options.dataPath
|
|
@@ -5386,17 +5422,25 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5386
5422
|
return this.initializePromise;
|
|
5387
5423
|
}
|
|
5388
5424
|
async registerDefaultParsers() {
|
|
5389
|
-
for (const parser of
|
|
5425
|
+
for (const parser of DEFAULT_PARSERS) {
|
|
5390
5426
|
this.addFiletypeParser(parser);
|
|
5391
5427
|
}
|
|
5392
5428
|
}
|
|
5393
5429
|
addFiletypeParser(filetypeParser) {
|
|
5394
|
-
|
|
5430
|
+
const isUrl = (path) => path.startsWith("http://") || path.startsWith("https://");
|
|
5431
|
+
const resolvedParser = {
|
|
5432
|
+
...filetypeParser,
|
|
5433
|
+
wasm: isUrl(filetypeParser.wasm) || isAbsolute(filetypeParser.wasm) ? filetypeParser.wasm : resolve2(filetypeParser.wasm),
|
|
5434
|
+
queries: {
|
|
5435
|
+
highlights: filetypeParser.queries.highlights.map((path) => isUrl(path) || isAbsolute(path) ? path : resolve2(path))
|
|
5436
|
+
}
|
|
5437
|
+
};
|
|
5438
|
+
this.worker?.postMessage({ type: "ADD_FILETYPE_PARSER", filetypeParser: resolvedParser });
|
|
5395
5439
|
}
|
|
5396
5440
|
async getPerformance() {
|
|
5397
5441
|
const messageId = `performance_${this.messageIdCounter++}`;
|
|
5398
|
-
return new Promise((
|
|
5399
|
-
this.messageCallbacks.set(messageId,
|
|
5442
|
+
return new Promise((resolve3) => {
|
|
5443
|
+
this.messageCallbacks.set(messageId, resolve3);
|
|
5400
5444
|
this.worker?.postMessage({ type: "GET_PERFORMANCE", messageId });
|
|
5401
5445
|
});
|
|
5402
5446
|
}
|
|
@@ -5409,8 +5453,8 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5409
5453
|
}
|
|
5410
5454
|
}
|
|
5411
5455
|
const messageId = `oneshot_${this.messageIdCounter++}`;
|
|
5412
|
-
return new Promise((
|
|
5413
|
-
this.messageCallbacks.set(messageId,
|
|
5456
|
+
return new Promise((resolve3) => {
|
|
5457
|
+
this.messageCallbacks.set(messageId, resolve3);
|
|
5414
5458
|
this.worker?.postMessage({
|
|
5415
5459
|
type: "ONESHOT_HIGHLIGHT",
|
|
5416
5460
|
content,
|
|
@@ -5435,6 +5479,7 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5435
5479
|
if (this.initializeResolvers) {
|
|
5436
5480
|
clearTimeout(this.initializeResolvers.timeoutId);
|
|
5437
5481
|
if (error) {
|
|
5482
|
+
console.error("TreeSitter client initialization failed:", error);
|
|
5438
5483
|
this.initializeResolvers.reject(new Error(error));
|
|
5439
5484
|
} else {
|
|
5440
5485
|
this.initialized = true;
|
|
@@ -5494,11 +5539,11 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5494
5539
|
return;
|
|
5495
5540
|
}
|
|
5496
5541
|
if (warning) {
|
|
5497
|
-
this.
|
|
5542
|
+
this.emitWarning(warning, bufferId);
|
|
5498
5543
|
return;
|
|
5499
5544
|
}
|
|
5500
5545
|
if (error) {
|
|
5501
|
-
this.
|
|
5546
|
+
this.emitError(error, bufferId);
|
|
5502
5547
|
return;
|
|
5503
5548
|
}
|
|
5504
5549
|
if (type === "WORKER_LOG") {
|
|
@@ -5515,8 +5560,8 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5515
5560
|
}
|
|
5516
5561
|
async preloadParser(filetype) {
|
|
5517
5562
|
const messageId = `has_parser_${this.messageIdCounter++}`;
|
|
5518
|
-
const response = await new Promise((
|
|
5519
|
-
this.messageCallbacks.set(messageId,
|
|
5563
|
+
const response = await new Promise((resolve3) => {
|
|
5564
|
+
this.messageCallbacks.set(messageId, resolve3);
|
|
5520
5565
|
this.worker?.postMessage({
|
|
5521
5566
|
type: "PRELOAD_PARSER",
|
|
5522
5567
|
filetype,
|
|
@@ -5528,13 +5573,13 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5528
5573
|
async createBuffer(id, content, filetype, version = 1, autoInitialize = true) {
|
|
5529
5574
|
if (!this.initialized) {
|
|
5530
5575
|
if (!autoInitialize) {
|
|
5531
|
-
this.
|
|
5576
|
+
this.emitError("Could not create buffer because client is not initialized");
|
|
5532
5577
|
return false;
|
|
5533
5578
|
}
|
|
5534
5579
|
try {
|
|
5535
5580
|
await this.initialize();
|
|
5536
5581
|
} catch (error) {
|
|
5537
|
-
this.
|
|
5582
|
+
this.emitError("Could not create buffer because of initialization error");
|
|
5538
5583
|
return false;
|
|
5539
5584
|
}
|
|
5540
5585
|
}
|
|
@@ -5543,8 +5588,8 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5543
5588
|
}
|
|
5544
5589
|
this.buffers.set(id, { id, content, filetype, version, hasParser: false });
|
|
5545
5590
|
const messageId = `init_${this.messageIdCounter++}`;
|
|
5546
|
-
const response = await new Promise((
|
|
5547
|
-
this.messageCallbacks.set(messageId,
|
|
5591
|
+
const response = await new Promise((resolve3) => {
|
|
5592
|
+
this.messageCallbacks.set(messageId, resolve3);
|
|
5548
5593
|
this.worker?.postMessage({
|
|
5549
5594
|
type: "INITIALIZE_PARSER",
|
|
5550
5595
|
bufferId: id,
|
|
@@ -5557,7 +5602,7 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5557
5602
|
if (!response.hasParser) {
|
|
5558
5603
|
this.emit("buffer:initialized", id, false);
|
|
5559
5604
|
if (filetype !== "plaintext") {
|
|
5560
|
-
this.
|
|
5605
|
+
this.emitWarning(response.warning || response.error || "Buffer has no parser", id);
|
|
5561
5606
|
}
|
|
5562
5607
|
return false;
|
|
5563
5608
|
}
|
|
@@ -5600,9 +5645,9 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5600
5645
|
this.editQueues.delete(bufferId);
|
|
5601
5646
|
}
|
|
5602
5647
|
if (this.worker) {
|
|
5603
|
-
await new Promise((
|
|
5648
|
+
await new Promise((resolve3) => {
|
|
5604
5649
|
const messageId = `dispose_${bufferId}`;
|
|
5605
|
-
this.messageCallbacks.set(messageId,
|
|
5650
|
+
this.messageCallbacks.set(messageId, resolve3);
|
|
5606
5651
|
try {
|
|
5607
5652
|
this.worker.postMessage({
|
|
5608
5653
|
type: "DISPOSE_BUFFER",
|
|
@@ -5610,13 +5655,13 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5610
5655
|
});
|
|
5611
5656
|
} catch (error) {
|
|
5612
5657
|
console.error("Error disposing buffer", error);
|
|
5613
|
-
|
|
5658
|
+
resolve3(false);
|
|
5614
5659
|
}
|
|
5615
5660
|
setTimeout(() => {
|
|
5616
5661
|
if (this.messageCallbacks.has(messageId)) {
|
|
5617
5662
|
this.messageCallbacks.delete(messageId);
|
|
5618
5663
|
console.warn({ bufferId }, "Timed out waiting for buffer to be disposed");
|
|
5619
|
-
|
|
5664
|
+
resolve3(false);
|
|
5620
5665
|
}
|
|
5621
5666
|
}, 3000);
|
|
5622
5667
|
});
|
|
@@ -5628,10 +5673,19 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5628
5673
|
clearTimeout(this.initializeResolvers.timeoutId);
|
|
5629
5674
|
this.initializeResolvers = undefined;
|
|
5630
5675
|
}
|
|
5676
|
+
for (const [messageId, callback] of this.messageCallbacks.entries()) {
|
|
5677
|
+
if (typeof callback === "function") {
|
|
5678
|
+
try {
|
|
5679
|
+
callback({ error: "Client destroyed" });
|
|
5680
|
+
} catch (e) {}
|
|
5681
|
+
}
|
|
5682
|
+
}
|
|
5683
|
+
this.messageCallbacks.clear();
|
|
5631
5684
|
clearDebounceScope("tree-sitter-client");
|
|
5632
|
-
this.
|
|
5633
|
-
this.buffers.clear();
|
|
5685
|
+
this.debouncer.clear();
|
|
5634
5686
|
this.editQueues.clear();
|
|
5687
|
+
this.buffers.clear();
|
|
5688
|
+
this.stopWorker();
|
|
5635
5689
|
this.initialized = false;
|
|
5636
5690
|
this.initializePromise = undefined;
|
|
5637
5691
|
}
|
|
@@ -5641,7 +5695,7 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5641
5695
|
}
|
|
5642
5696
|
const buffer = this.buffers.get(bufferId);
|
|
5643
5697
|
if (!buffer || !buffer.hasParser) {
|
|
5644
|
-
this.
|
|
5698
|
+
this.emitError("Cannot reset buffer with no parser", bufferId);
|
|
5645
5699
|
return;
|
|
5646
5700
|
}
|
|
5647
5701
|
this.buffers.set(bufferId, { ...buffer, content, version });
|
|
@@ -5663,12 +5717,12 @@ class TreeSitterClient extends EventEmitter2 {
|
|
|
5663
5717
|
this.options.dataPath = dataPath;
|
|
5664
5718
|
if (this.initialized && this.worker) {
|
|
5665
5719
|
const messageId = `update_datapath_${this.messageIdCounter++}`;
|
|
5666
|
-
return new Promise((
|
|
5720
|
+
return new Promise((resolve3, reject) => {
|
|
5667
5721
|
this.messageCallbacks.set(messageId, (response) => {
|
|
5668
5722
|
if (response.error) {
|
|
5669
5723
|
reject(new Error(response.error));
|
|
5670
5724
|
} else {
|
|
5671
|
-
|
|
5725
|
+
resolve3();
|
|
5672
5726
|
}
|
|
5673
5727
|
});
|
|
5674
5728
|
this.worker.postMessage({
|
|
@@ -6037,13 +6091,13 @@ import ${safeFiletype}_language from "${parser.languagePath}" with { type: "file
|
|
|
6037
6091
|
`);
|
|
6038
6092
|
const parserDefinitions = parsers.map((parser) => {
|
|
6039
6093
|
const safeFiletype = parser.filetype.replace(/[^a-zA-Z0-9]/g, "_");
|
|
6040
|
-
return `
|
|
6041
|
-
|
|
6042
|
-
|
|
6043
|
-
|
|
6044
|
-
|
|
6045
|
-
|
|
6046
|
-
|
|
6094
|
+
return ` {
|
|
6095
|
+
filetype: "${parser.filetype}",
|
|
6096
|
+
queries: {
|
|
6097
|
+
highlights: [resolve(dirname(fileURLToPath(import.meta.url)), ${safeFiletype}_highlights)],
|
|
6098
|
+
},
|
|
6099
|
+
wasm: resolve(dirname(fileURLToPath(import.meta.url)), ${safeFiletype}_language),
|
|
6100
|
+
}`;
|
|
6047
6101
|
}).join(`,
|
|
6048
6102
|
`);
|
|
6049
6103
|
const fileContent = `// This file is generated by assets/update.ts - DO NOT EDIT MANUALLY
|
|
@@ -6051,12 +6105,22 @@ import ${safeFiletype}_language from "${parser.languagePath}" with { type: "file
|
|
|
6051
6105
|
// Last generated: ${new Date().toISOString()}
|
|
6052
6106
|
|
|
6053
6107
|
import type { FiletypeParserOptions } from "./types"
|
|
6108
|
+
import { resolve, dirname } from "path"
|
|
6109
|
+
import { fileURLToPath } from "url"
|
|
6054
6110
|
|
|
6055
6111
|
${imports}
|
|
6056
6112
|
|
|
6057
|
-
|
|
6113
|
+
// Cached parsers to avoid re-resolving paths on every call
|
|
6114
|
+
let _cachedParsers: FiletypeParserOptions[] | undefined
|
|
6115
|
+
|
|
6116
|
+
export function getParsers(): FiletypeParserOptions[] {
|
|
6117
|
+
if (!_cachedParsers) {
|
|
6118
|
+
_cachedParsers = [
|
|
6058
6119
|
${parserDefinitions},
|
|
6059
|
-
]
|
|
6120
|
+
]
|
|
6121
|
+
}
|
|
6122
|
+
return _cachedParsers
|
|
6123
|
+
}
|
|
6060
6124
|
`;
|
|
6061
6125
|
await mkdir2(path3.dirname(outputPath), { recursive: true });
|
|
6062
6126
|
await writeFile2(outputPath, fileContent, "utf-8");
|
|
@@ -9569,6 +9633,18 @@ registerEnvVar({
|
|
|
9569
9633
|
type: "boolean",
|
|
9570
9634
|
default: false
|
|
9571
9635
|
});
|
|
9636
|
+
registerEnvVar({
|
|
9637
|
+
name: "OTUI_USE_ALTERNATE_SCREEN",
|
|
9638
|
+
description: "Whether to use the console. Will not capture console output if set to false.",
|
|
9639
|
+
type: "boolean",
|
|
9640
|
+
default: true
|
|
9641
|
+
});
|
|
9642
|
+
registerEnvVar({
|
|
9643
|
+
name: "OTUI_OVERRIDE_STDOUT",
|
|
9644
|
+
description: "Override the stdout stream. This is useful for debugging.",
|
|
9645
|
+
type: "boolean",
|
|
9646
|
+
default: true
|
|
9647
|
+
});
|
|
9572
9648
|
|
|
9573
9649
|
class MouseEvent {
|
|
9574
9650
|
type;
|
|
@@ -9641,7 +9717,7 @@ var rendererTracker = singleton("RendererTracker", () => {
|
|
|
9641
9717
|
});
|
|
9642
9718
|
async function createCliRenderer(config = {}) {
|
|
9643
9719
|
if (process.argv.includes("--delay-start")) {
|
|
9644
|
-
await new Promise((
|
|
9720
|
+
await new Promise((resolve4) => setTimeout(resolve4, 5000));
|
|
9645
9721
|
}
|
|
9646
9722
|
const stdin = config.stdin || process.stdin;
|
|
9647
9723
|
const stdout = config.stdout || process.stdout;
|
|
@@ -9729,7 +9805,7 @@ class CliRenderer extends EventEmitter7 {
|
|
|
9729
9805
|
resizeDebounceDelay = 100;
|
|
9730
9806
|
enableMouseMovement = false;
|
|
9731
9807
|
_useMouse = true;
|
|
9732
|
-
_useAlternateScreen =
|
|
9808
|
+
_useAlternateScreen = env.OTUI_USE_ALTERNATE_SCREEN;
|
|
9733
9809
|
capturedRenderable;
|
|
9734
9810
|
lastOverRenderableNum = 0;
|
|
9735
9811
|
lastOverRenderable;
|
|
@@ -9760,9 +9836,9 @@ class CliRenderer extends EventEmitter7 {
|
|
|
9760
9836
|
handleError = ((error) => {
|
|
9761
9837
|
this.stop();
|
|
9762
9838
|
this.destroy();
|
|
9763
|
-
new Promise((
|
|
9839
|
+
new Promise((resolve4) => {
|
|
9764
9840
|
setTimeout(() => {
|
|
9765
|
-
|
|
9841
|
+
resolve4(true);
|
|
9766
9842
|
}, 100);
|
|
9767
9843
|
}).then(() => {
|
|
9768
9844
|
this.realStdoutWrite.call(this.stdout, `
|
|
@@ -9841,7 +9917,7 @@ Captured output:
|
|
|
9841
9917
|
this.maxStatSamples = config.maxStatSamples || 300;
|
|
9842
9918
|
this.enableMouseMovement = config.enableMouseMovement || true;
|
|
9843
9919
|
this._useMouse = config.useMouse ?? true;
|
|
9844
|
-
this._useAlternateScreen = config.useAlternateScreen ??
|
|
9920
|
+
this._useAlternateScreen = config.useAlternateScreen ?? env.OTUI_USE_ALTERNATE_SCREEN;
|
|
9845
9921
|
this.nextRenderBuffer = this.lib.getNextBuffer(this.rendererPtr);
|
|
9846
9922
|
this.currentRenderBuffer = this.lib.getCurrentBuffer(this.rendererPtr);
|
|
9847
9923
|
this.postProcessFns = config.postProcessFns || [];
|
|
@@ -9849,7 +9925,9 @@ Captured output:
|
|
|
9849
9925
|
if (this.memorySnapshotInterval > 0) {
|
|
9850
9926
|
this.startMemorySnapshotTimer();
|
|
9851
9927
|
}
|
|
9852
|
-
|
|
9928
|
+
if (env.OTUI_OVERRIDE_STDOUT) {
|
|
9929
|
+
this.stdout.write = this.interceptStdoutWrite.bind(this);
|
|
9930
|
+
}
|
|
9853
9931
|
process.on("SIGWINCH", this.sigwinchHandler);
|
|
9854
9932
|
process.on("warning", this.warningHandler);
|
|
9855
9933
|
process.on("uncaughtException", this.handleError);
|
|
@@ -10081,16 +10159,16 @@ Captured output:
|
|
|
10081
10159
|
if (this._terminalIsSetup)
|
|
10082
10160
|
return;
|
|
10083
10161
|
this._terminalIsSetup = true;
|
|
10084
|
-
await new Promise((
|
|
10162
|
+
await new Promise((resolve4) => {
|
|
10085
10163
|
const timeout = setTimeout(() => {
|
|
10086
10164
|
this.stdin.off("data", capListener);
|
|
10087
|
-
|
|
10165
|
+
resolve4(true);
|
|
10088
10166
|
}, 100);
|
|
10089
10167
|
const capListener = (str) => {
|
|
10090
10168
|
clearTimeout(timeout);
|
|
10091
10169
|
this.lib.processCapabilityResponse(this.rendererPtr, str);
|
|
10092
10170
|
this.stdin.off("data", capListener);
|
|
10093
|
-
|
|
10171
|
+
resolve4(true);
|
|
10094
10172
|
};
|
|
10095
10173
|
this.stdin.on("data", capListener);
|
|
10096
10174
|
this.lib.setupTerminal(this.rendererPtr, this._useAlternateScreen);
|
|
@@ -10734,5 +10812,5 @@ Captured output:
|
|
|
10734
10812
|
|
|
10735
10813
|
export { __toESM, __commonJS, __export, __require, Edge, Gutter, exports_src, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, nonAlphanumericKeys, parseKeypress, ANSI, KeyEvent, PasteEvent, KeyHandler, InternalKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, DebugOverlayCorner, createTextAttributes, visualizeRenderableTree, isStyledText, StyledText, stringToStyledText, black, red, green, yellow, blue, magenta, cyan, white, brightBlack, brightRed, brightGreen, brightYellow, brightBlue, brightMagenta, brightCyan, brightWhite, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bold, italic, underline, strikethrough, dim, reverse, blink, fg, bg, t, convertThemeToStyles, SyntaxStyle, hastToStyledText, parseAlign, parseBoxSizing, parseDimension, parseDirection, parseDisplay, parseEdge, parseFlexDirection, parseGutter, parseJustify, parseLogLevel, parseMeasureMode, parseOverflow, parsePositionType, parseUnit, parseWrap, MouseParser, Selection, convertGlobalToLocalSelection, ASCIIFontSelectionHelper, envRegistry, registerEnvVar, clearEnvCache, generateEnvMarkdown, generateEnvColored, env, treeSitterToTextChunks, treeSitterToStyledText, addDefaultParsers, TreeSitterClient, DataPathsManager, getDataPaths, extToFiletype, pathToFiletype, main, getTreeSitterClient, TextBuffer, LogLevel2 as LogLevel, setRenderLibPath, resolveRenderLib, OptimizedBuffer, h, isVNode, maybeMakeRenderable, wrapWithDelegates, instantiate, delegate, isValidPercentage, LayoutEvents, RenderableEvents, isRenderable, BaseRenderable, Renderable, RootRenderable, capture, ConsolePosition, TerminalConsole, getObjectsInViewport, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, CliRenderer };
|
|
10736
10814
|
|
|
10737
|
-
//# debugId=
|
|
10738
|
-
//# sourceMappingURL=index-
|
|
10815
|
+
//# debugId=3A66ED403B9C39DF64756E2164756E21
|
|
10816
|
+
//# sourceMappingURL=index-r19wz8xa.js.map
|