@opensumi/ide-extension 3.7.2-next-1739945875.0 → 3.7.2-next-1740016705.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/lib/worker-host.js +223 -52
- package/package.json +35 -35
package/lib/worker-host.js
CHANGED
|
@@ -50894,9 +50894,10 @@ exports["default"] = warningOnce;
|
|
|
50894
50894
|
* Where possible, operations execute without creating a new Buffer and copying everything over.
|
|
50895
50895
|
*/
|
|
50896
50896
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
50897
|
-
exports.Cursor = exports.Buffers = exports.emptyBuffer = void 0;
|
|
50897
|
+
exports.Cursor = exports.Buffers = exports.buffer4Capacity = exports.emptyBuffer = void 0;
|
|
50898
50898
|
exports.copy = copy;
|
|
50899
50899
|
exports.emptyBuffer = new Uint8Array(0);
|
|
50900
|
+
exports.buffer4Capacity = new Uint8Array(4);
|
|
50900
50901
|
function copy(source, target, targetStart, sourceStart, sourceEnd) {
|
|
50901
50902
|
target.set(source.subarray(sourceStart, sourceEnd), targetStart);
|
|
50902
50903
|
}
|
|
@@ -50946,6 +50947,31 @@ class Buffers {
|
|
|
50946
50947
|
}
|
|
50947
50948
|
return target;
|
|
50948
50949
|
}
|
|
50950
|
+
slice4(start) {
|
|
50951
|
+
let end = start + 4;
|
|
50952
|
+
const buffers = this.buffers;
|
|
50953
|
+
if (end > this.size) {
|
|
50954
|
+
end = this.size;
|
|
50955
|
+
}
|
|
50956
|
+
if (start >= end) {
|
|
50957
|
+
return exports.emptyBuffer;
|
|
50958
|
+
}
|
|
50959
|
+
let startBytes = 0;
|
|
50960
|
+
let si = 0;
|
|
50961
|
+
for (; si < buffers.length && startBytes + buffers[si].length <= start; si++) {
|
|
50962
|
+
startBytes += buffers[si].length;
|
|
50963
|
+
}
|
|
50964
|
+
const target = exports.buffer4Capacity;
|
|
50965
|
+
let ti = 0;
|
|
50966
|
+
for (let ii = si; ti < end - start && ii < buffers.length; ii++) {
|
|
50967
|
+
const len = buffers[ii].length;
|
|
50968
|
+
const _start = ti === 0 ? start - startBytes : 0;
|
|
50969
|
+
const _end = ti + len >= end - start ? Math.min(_start + (end - start) - ti, len) : len;
|
|
50970
|
+
copy(buffers[ii], target, ti, _start, _end);
|
|
50971
|
+
ti += _end - _start;
|
|
50972
|
+
}
|
|
50973
|
+
return target;
|
|
50974
|
+
}
|
|
50949
50975
|
pos(i) {
|
|
50950
50976
|
if (i < 0 || i >= this.size) {
|
|
50951
50977
|
throw new Error(`out of range, ${i} not in [0, ${this.size})`);
|
|
@@ -51117,6 +51143,11 @@ class Cursor {
|
|
|
51117
51143
|
this.skip(n);
|
|
51118
51144
|
return buffers;
|
|
51119
51145
|
}
|
|
51146
|
+
read4() {
|
|
51147
|
+
const buffers = this.buffers.slice4(this.offset);
|
|
51148
|
+
this.skip(4);
|
|
51149
|
+
return buffers;
|
|
51150
|
+
}
|
|
51120
51151
|
skip(n) {
|
|
51121
51152
|
let count = 0;
|
|
51122
51153
|
while (this.chunkIndex < this.buffers.buffers.length) {
|
|
@@ -51419,6 +51450,7 @@ exports.BaseConnection = BaseConnection;
|
|
|
51419
51450
|
|
|
51420
51451
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
51421
51452
|
exports.LengthFieldBasedFrameDecoder = exports.indicator = void 0;
|
|
51453
|
+
/* eslint-disable no-console */
|
|
51422
51454
|
const writer_1 = __webpack_require__(/*! @furyjs/fury/dist/lib/writer */ "../../node_modules/@furyjs/fury/dist/lib/writer.js");
|
|
51423
51455
|
const ide_core_common_1 = __webpack_require__(/*! @opensumi/ide-core-common */ "../core-common/lib/index.js");
|
|
51424
51456
|
const buffers_1 = __webpack_require__(/*! ../../buffers/buffers */ "../connection/lib/common/buffers/buffers.js");
|
|
@@ -51426,26 +51458,33 @@ const buffers_1 = __webpack_require__(/*! ../../buffers/buffers */ "../connectio
|
|
|
51426
51458
|
* You can use `Buffer.from('\r\n\r\n')` to get this indicator.
|
|
51427
51459
|
*/
|
|
51428
51460
|
exports.indicator = new Uint8Array([0x0d, 0x0a, 0x0d, 0x0a]);
|
|
51461
|
+
/**
|
|
51462
|
+
* The number of bytes in the length field.
|
|
51463
|
+
*
|
|
51464
|
+
* How many bytes are used to represent data length.
|
|
51465
|
+
*
|
|
51466
|
+
* For example, if the length field is 4 bytes, then the maximum length of the data is 2^32 = 4GB
|
|
51467
|
+
*/
|
|
51468
|
+
const lengthFieldLength = 4;
|
|
51429
51469
|
/**
|
|
51430
51470
|
* sticky packet unpacking problems are generally problems at the transport layer.
|
|
51431
51471
|
* we use a length field to represent the length of the data, and then read the data according to the length
|
|
51432
51472
|
*/
|
|
51433
51473
|
class LengthFieldBasedFrameDecoder {
|
|
51434
51474
|
constructor() {
|
|
51435
|
-
this.dataEmitter = new ide_core_common_1.Emitter();
|
|
51436
|
-
this.onData = this.dataEmitter.event;
|
|
51437
51475
|
this.buffers = new buffers_1.Buffers();
|
|
51438
51476
|
this.cursor = this.buffers.cursor();
|
|
51477
|
+
this.processingPromise = null;
|
|
51439
51478
|
this.contentLength = -1;
|
|
51440
51479
|
this.state = 0;
|
|
51441
|
-
|
|
51442
|
-
|
|
51443
|
-
|
|
51444
|
-
|
|
51445
|
-
|
|
51446
|
-
|
|
51447
|
-
|
|
51448
|
-
|
|
51480
|
+
}
|
|
51481
|
+
onData(listener) {
|
|
51482
|
+
this._onDataListener = listener;
|
|
51483
|
+
return {
|
|
51484
|
+
dispose: () => {
|
|
51485
|
+
this._onDataListener = null;
|
|
51486
|
+
},
|
|
51487
|
+
};
|
|
51449
51488
|
}
|
|
51450
51489
|
reset() {
|
|
51451
51490
|
this.contentLength = -1;
|
|
@@ -51454,30 +51493,70 @@ class LengthFieldBasedFrameDecoder {
|
|
|
51454
51493
|
}
|
|
51455
51494
|
push(chunk) {
|
|
51456
51495
|
this.buffers.push(chunk);
|
|
51457
|
-
|
|
51458
|
-
|
|
51459
|
-
|
|
51496
|
+
// 确保同一时间只有一个处理过程
|
|
51497
|
+
if (!this.processingPromise) {
|
|
51498
|
+
this.processingPromise = this.processBuffers().finally(() => {
|
|
51499
|
+
this.processingPromise = null;
|
|
51500
|
+
});
|
|
51460
51501
|
}
|
|
51461
51502
|
}
|
|
51462
|
-
|
|
51463
|
-
|
|
51464
|
-
|
|
51503
|
+
async processBuffers() {
|
|
51504
|
+
let iterations = 0;
|
|
51505
|
+
let hasMoreData = false;
|
|
51506
|
+
do {
|
|
51507
|
+
hasMoreData = false;
|
|
51508
|
+
while (iterations < LengthFieldBasedFrameDecoder.MAX_ITERATIONS) {
|
|
51509
|
+
if (this.buffers.byteLength === 0) {
|
|
51510
|
+
break;
|
|
51511
|
+
}
|
|
51512
|
+
const result = await this.readFrame();
|
|
51513
|
+
if (result === true) {
|
|
51514
|
+
break;
|
|
51515
|
+
}
|
|
51516
|
+
iterations++;
|
|
51517
|
+
if (iterations % 10 === 0) {
|
|
51518
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
51519
|
+
}
|
|
51520
|
+
}
|
|
51521
|
+
// 检查剩余数据
|
|
51522
|
+
if (this.buffers.byteLength > 0) {
|
|
51523
|
+
hasMoreData = true;
|
|
51524
|
+
// 异步继续处理,避免阻塞
|
|
51525
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
51526
|
+
iterations = 0; // 重置迭代计数器
|
|
51527
|
+
}
|
|
51528
|
+
} while (hasMoreData);
|
|
51529
|
+
}
|
|
51530
|
+
async readFrame() {
|
|
51531
|
+
try {
|
|
51532
|
+
const found = this.readLengthField();
|
|
51533
|
+
if (!found) {
|
|
51534
|
+
return true;
|
|
51535
|
+
}
|
|
51465
51536
|
const start = this.cursor.offset;
|
|
51466
51537
|
const end = start + this.contentLength;
|
|
51467
|
-
|
|
51468
|
-
|
|
51469
|
-
if (this.buffers.byteLength > end) {
|
|
51470
|
-
this.contentLength = -1;
|
|
51471
|
-
this.state = 0;
|
|
51472
|
-
this.cursor.moveTo(end);
|
|
51473
|
-
// has more data, continue to parse
|
|
51474
|
-
return false;
|
|
51538
|
+
if (end > this.buffers.byteLength) {
|
|
51539
|
+
return true;
|
|
51475
51540
|
}
|
|
51476
|
-
|
|
51541
|
+
const binary = this.buffers.slice(start, end);
|
|
51542
|
+
// 立即清理已处理的数据
|
|
51477
51543
|
this.buffers.splice(0, end);
|
|
51478
51544
|
this.reset();
|
|
51545
|
+
if (this._onDataListener) {
|
|
51546
|
+
try {
|
|
51547
|
+
await Promise.resolve().then(() => { var _a; return (_a = this._onDataListener) === null || _a === void 0 ? void 0 : _a.call(this, binary); });
|
|
51548
|
+
}
|
|
51549
|
+
catch (error) {
|
|
51550
|
+
console.error('[Frame Decoder] Error in data listener:', error);
|
|
51551
|
+
}
|
|
51552
|
+
}
|
|
51553
|
+
return false;
|
|
51554
|
+
}
|
|
51555
|
+
catch (error) {
|
|
51556
|
+
console.error('[Frame Decoder] Error processing frame:', error);
|
|
51557
|
+
this.reset();
|
|
51558
|
+
return true;
|
|
51479
51559
|
}
|
|
51480
|
-
return true;
|
|
51481
51560
|
}
|
|
51482
51561
|
readLengthField() {
|
|
51483
51562
|
const bufferLength = this.buffers.byteLength;
|
|
@@ -51493,12 +51572,12 @@ class LengthFieldBasedFrameDecoder {
|
|
|
51493
51572
|
return false;
|
|
51494
51573
|
}
|
|
51495
51574
|
if (this.contentLength === -1) {
|
|
51496
|
-
if (this.cursor.offset +
|
|
51575
|
+
if (this.cursor.offset + lengthFieldLength > bufferLength) {
|
|
51497
51576
|
// Not enough data yet, wait for more data
|
|
51498
51577
|
return false;
|
|
51499
51578
|
}
|
|
51500
51579
|
// read the content length
|
|
51501
|
-
const buf = this.cursor.
|
|
51580
|
+
const buf = this.cursor.read4();
|
|
51502
51581
|
// fury writer use little endian
|
|
51503
51582
|
this.contentLength = (0, ide_core_common_1.readUInt32LE)(buf, 0);
|
|
51504
51583
|
}
|
|
@@ -51513,12 +51592,12 @@ class LengthFieldBasedFrameDecoder {
|
|
|
51513
51592
|
let result = iter.next();
|
|
51514
51593
|
while (!result.done) {
|
|
51515
51594
|
switch (result.value) {
|
|
51516
|
-
case 0x0d:
|
|
51595
|
+
case 0x0d: // \r
|
|
51517
51596
|
switch (this.state) {
|
|
51518
51597
|
case 0:
|
|
51519
51598
|
this.state = 1;
|
|
51520
51599
|
break;
|
|
51521
|
-
case 2:
|
|
51600
|
+
case 2: // 第二个 \r
|
|
51522
51601
|
this.state = 3;
|
|
51523
51602
|
break;
|
|
51524
51603
|
default:
|
|
@@ -51526,12 +51605,12 @@ class LengthFieldBasedFrameDecoder {
|
|
|
51526
51605
|
break;
|
|
51527
51606
|
}
|
|
51528
51607
|
break;
|
|
51529
|
-
case 0x0a:
|
|
51608
|
+
case 0x0a: // \n
|
|
51530
51609
|
switch (this.state) {
|
|
51531
51610
|
case 1:
|
|
51532
51611
|
this.state = 2;
|
|
51533
51612
|
break;
|
|
51534
|
-
case 3:
|
|
51613
|
+
case 3: // 第二个 \n
|
|
51535
51614
|
this.state = 4;
|
|
51536
51615
|
iter.return();
|
|
51537
51616
|
break;
|
|
@@ -51548,19 +51627,27 @@ class LengthFieldBasedFrameDecoder {
|
|
|
51548
51627
|
}
|
|
51549
51628
|
}
|
|
51550
51629
|
dispose() {
|
|
51551
|
-
this.
|
|
51630
|
+
this._onDataListener = null;
|
|
51552
51631
|
this.buffers.dispose();
|
|
51632
|
+
this.reset();
|
|
51553
51633
|
}
|
|
51554
51634
|
static construct(content) {
|
|
51555
|
-
|
|
51556
|
-
|
|
51557
|
-
|
|
51558
|
-
|
|
51559
|
-
|
|
51635
|
+
// 每次都创建新的 writer,避免所有权问题
|
|
51636
|
+
const writer = (0, writer_1.BinaryWriter)({});
|
|
51637
|
+
try {
|
|
51638
|
+
writer.buffer(exports.indicator);
|
|
51639
|
+
writer.uint32(content.byteLength);
|
|
51640
|
+
writer.buffer(content);
|
|
51641
|
+
return writer;
|
|
51642
|
+
}
|
|
51643
|
+
catch (error) {
|
|
51644
|
+
console.warn('[Frame Decoder] Error constructing frame:', error);
|
|
51645
|
+
throw error;
|
|
51646
|
+
}
|
|
51560
51647
|
}
|
|
51561
51648
|
}
|
|
51562
51649
|
exports.LengthFieldBasedFrameDecoder = LengthFieldBasedFrameDecoder;
|
|
51563
|
-
LengthFieldBasedFrameDecoder.
|
|
51650
|
+
LengthFieldBasedFrameDecoder.MAX_ITERATIONS = 50;
|
|
51564
51651
|
//# sourceMappingURL=frame-decoder.js.map
|
|
51565
51652
|
|
|
51566
51653
|
/***/ }),
|
|
@@ -51739,10 +51826,17 @@ class StreamConnection extends base_1.BaseConnection {
|
|
|
51739
51826
|
});
|
|
51740
51827
|
}
|
|
51741
51828
|
send(data) {
|
|
51742
|
-
const
|
|
51743
|
-
|
|
51744
|
-
|
|
51745
|
-
|
|
51829
|
+
const handle = frame_decoder_1.LengthFieldBasedFrameDecoder.construct(data).dumpAndOwn();
|
|
51830
|
+
try {
|
|
51831
|
+
this.writable.write(handle.get(), (error) => {
|
|
51832
|
+
if (error) {
|
|
51833
|
+
console.error('Failed to write data:', error);
|
|
51834
|
+
}
|
|
51835
|
+
});
|
|
51836
|
+
}
|
|
51837
|
+
finally {
|
|
51838
|
+
handle.dispose();
|
|
51839
|
+
}
|
|
51746
51840
|
}
|
|
51747
51841
|
onMessage(cb) {
|
|
51748
51842
|
return this.decoder.onData(cb);
|
|
@@ -51811,22 +51905,84 @@ exports.StreamConnection = StreamConnection;
|
|
|
51811
51905
|
|
|
51812
51906
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
51813
51907
|
exports.WSWebSocketConnection = void 0;
|
|
51908
|
+
const constants_1 = __webpack_require__(/*! ../../constants */ "../connection/lib/common/constants.js");
|
|
51814
51909
|
const base_1 = __webpack_require__(/*! ./base */ "../connection/lib/common/connection/drivers/base.js");
|
|
51910
|
+
const frame_decoder_1 = __webpack_require__(/*! ./frame-decoder */ "../connection/lib/common/connection/drivers/frame-decoder.js");
|
|
51815
51911
|
class WSWebSocketConnection extends base_1.BaseConnection {
|
|
51816
51912
|
constructor(socket) {
|
|
51817
51913
|
super();
|
|
51818
51914
|
this.socket = socket;
|
|
51915
|
+
this.decoder = new frame_decoder_1.LengthFieldBasedFrameDecoder();
|
|
51916
|
+
this.sendQueue = [];
|
|
51917
|
+
this.pendingSize = 0;
|
|
51918
|
+
this.sending = false;
|
|
51919
|
+
this.socket.on('message', (data) => {
|
|
51920
|
+
this.decoder.push(data);
|
|
51921
|
+
});
|
|
51922
|
+
}
|
|
51923
|
+
async processSendQueue() {
|
|
51924
|
+
if (this.sending) {
|
|
51925
|
+
return;
|
|
51926
|
+
}
|
|
51927
|
+
this.sending = true;
|
|
51928
|
+
while (this.sendQueue.length > 0) {
|
|
51929
|
+
const { data, resolve, reject } = this.sendQueue[0];
|
|
51930
|
+
let handle = null;
|
|
51931
|
+
try {
|
|
51932
|
+
handle = frame_decoder_1.LengthFieldBasedFrameDecoder.construct(data).dumpAndOwn();
|
|
51933
|
+
const packet = handle.get();
|
|
51934
|
+
for (let i = 0; i < packet.byteLength; i += constants_1.chunkSize) {
|
|
51935
|
+
if (!this.isOpen()) {
|
|
51936
|
+
throw new Error('Connection closed while sending');
|
|
51937
|
+
}
|
|
51938
|
+
await new Promise((resolve, reject) => {
|
|
51939
|
+
const chunk = packet.subarray(i, Math.min(i + constants_1.chunkSize, packet.byteLength));
|
|
51940
|
+
this.socket.send(chunk, { binary: true }, (error) => {
|
|
51941
|
+
if (error) {
|
|
51942
|
+
reject(error);
|
|
51943
|
+
}
|
|
51944
|
+
else {
|
|
51945
|
+
resolve();
|
|
51946
|
+
}
|
|
51947
|
+
});
|
|
51948
|
+
});
|
|
51949
|
+
}
|
|
51950
|
+
resolve();
|
|
51951
|
+
}
|
|
51952
|
+
catch (error) {
|
|
51953
|
+
reject(error instanceof Error ? error : new Error(String(error)));
|
|
51954
|
+
}
|
|
51955
|
+
finally {
|
|
51956
|
+
if (handle) {
|
|
51957
|
+
try {
|
|
51958
|
+
handle.dispose();
|
|
51959
|
+
}
|
|
51960
|
+
catch (error) {
|
|
51961
|
+
console.warn('[WSWebSocket] Error disposing handle:', error);
|
|
51962
|
+
}
|
|
51963
|
+
}
|
|
51964
|
+
this.pendingSize -= this.sendQueue[0].data.byteLength;
|
|
51965
|
+
this.sendQueue.shift();
|
|
51966
|
+
}
|
|
51967
|
+
}
|
|
51968
|
+
this.sending = false;
|
|
51819
51969
|
}
|
|
51820
51970
|
send(data) {
|
|
51821
|
-
|
|
51971
|
+
return new Promise((resolve, reject) => {
|
|
51972
|
+
// 检查队列大小限制
|
|
51973
|
+
if (this.sendQueue.length >= WSWebSocketConnection.MAX_QUEUE_SIZE) {
|
|
51974
|
+
reject(new Error('Send queue full'));
|
|
51975
|
+
return;
|
|
51976
|
+
}
|
|
51977
|
+
this.pendingSize += data.byteLength;
|
|
51978
|
+
this.sendQueue.push({ data, resolve, reject });
|
|
51979
|
+
this.processSendQueue().catch((error) => {
|
|
51980
|
+
console.error('[WSWebSocket] Error processing queue:', error);
|
|
51981
|
+
});
|
|
51982
|
+
});
|
|
51822
51983
|
}
|
|
51823
51984
|
onMessage(cb) {
|
|
51824
|
-
this.
|
|
51825
|
-
return {
|
|
51826
|
-
dispose: () => {
|
|
51827
|
-
this.socket.off('message', cb);
|
|
51828
|
-
},
|
|
51829
|
-
};
|
|
51985
|
+
return this.decoder.onData(cb);
|
|
51830
51986
|
}
|
|
51831
51987
|
onceClose(cb) {
|
|
51832
51988
|
this.socket.once('close', cb);
|
|
@@ -51841,9 +51997,17 @@ class WSWebSocketConnection extends base_1.BaseConnection {
|
|
|
51841
51997
|
}
|
|
51842
51998
|
dispose() {
|
|
51843
51999
|
this.socket.removeAllListeners();
|
|
52000
|
+
// 拒绝所有待发送的消息
|
|
52001
|
+
while (this.sendQueue.length > 0) {
|
|
52002
|
+
const { reject } = this.sendQueue.shift();
|
|
52003
|
+
reject(new Error('Connection disposed'));
|
|
52004
|
+
}
|
|
52005
|
+
this.pendingSize = 0;
|
|
52006
|
+
this.sending = false;
|
|
51844
52007
|
}
|
|
51845
52008
|
}
|
|
51846
52009
|
exports.WSWebSocketConnection = WSWebSocketConnection;
|
|
52010
|
+
WSWebSocketConnection.MAX_QUEUE_SIZE = 1000; // 限制队列长度
|
|
51847
52011
|
//# sourceMappingURL=ws-websocket.js.map
|
|
51848
52012
|
|
|
51849
52013
|
/***/ }),
|
|
@@ -51872,8 +52036,12 @@ tslib_1.__exportStar(__webpack_require__(/*! ./drivers */ "../connection/lib/com
|
|
|
51872
52036
|
"use strict";
|
|
51873
52037
|
|
|
51874
52038
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
51875
|
-
exports.METHOD_NOT_REGISTERED = void 0;
|
|
52039
|
+
exports.chunkSize = exports.METHOD_NOT_REGISTERED = void 0;
|
|
51876
52040
|
exports.METHOD_NOT_REGISTERED = '$$METHOD_NOT_REGISTERED';
|
|
52041
|
+
/**
|
|
52042
|
+
* 分片大小, 1MB
|
|
52043
|
+
*/
|
|
52044
|
+
exports.chunkSize = 1 * 1024 * 1024;
|
|
51877
52045
|
//# sourceMappingURL=constants.js.map
|
|
51878
52046
|
|
|
51879
52047
|
/***/ }),
|
|
@@ -52130,6 +52298,9 @@ const oneOf = (schemas, context) => {
|
|
|
52130
52298
|
case 7:
|
|
52131
52299
|
v = serializers[7].read();
|
|
52132
52300
|
break;
|
|
52301
|
+
default: {
|
|
52302
|
+
throw new Error('unknown index: ' + idx);
|
|
52303
|
+
}
|
|
52133
52304
|
}
|
|
52134
52305
|
v.kind = kinds[idx];
|
|
52135
52306
|
return v;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensumi/ide-extension",
|
|
3
|
-
"version": "3.7.2-next-
|
|
3
|
+
"version": "3.7.2-next-1740016705.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"lib",
|
|
6
6
|
"hosted"
|
|
@@ -23,18 +23,18 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@opensumi/events": "^1.0.0",
|
|
26
|
-
"@opensumi/ide-connection": "3.7.2-next-
|
|
27
|
-
"@opensumi/ide-core-browser": "3.7.2-next-
|
|
28
|
-
"@opensumi/ide-core-node": "3.7.2-next-
|
|
29
|
-
"@opensumi/ide-debug": "3.7.2-next-
|
|
30
|
-
"@opensumi/ide-file-search": "3.7.2-next-
|
|
31
|
-
"@opensumi/ide-file-service": "3.7.2-next-
|
|
32
|
-
"@opensumi/ide-logs": "3.7.2-next-
|
|
33
|
-
"@opensumi/ide-markdown": "3.7.2-next-
|
|
34
|
-
"@opensumi/ide-task": "3.7.2-next-
|
|
35
|
-
"@opensumi/ide-terminal-next": "3.7.2-next-
|
|
36
|
-
"@opensumi/ide-utils": "3.7.2-next-
|
|
37
|
-
"@opensumi/ide-webview": "3.7.2-next-
|
|
26
|
+
"@opensumi/ide-connection": "3.7.2-next-1740016705.0",
|
|
27
|
+
"@opensumi/ide-core-browser": "3.7.2-next-1740016705.0",
|
|
28
|
+
"@opensumi/ide-core-node": "3.7.2-next-1740016705.0",
|
|
29
|
+
"@opensumi/ide-debug": "3.7.2-next-1740016705.0",
|
|
30
|
+
"@opensumi/ide-file-search": "3.7.2-next-1740016705.0",
|
|
31
|
+
"@opensumi/ide-file-service": "3.7.2-next-1740016705.0",
|
|
32
|
+
"@opensumi/ide-logs": "3.7.2-next-1740016705.0",
|
|
33
|
+
"@opensumi/ide-markdown": "3.7.2-next-1740016705.0",
|
|
34
|
+
"@opensumi/ide-task": "3.7.2-next-1740016705.0",
|
|
35
|
+
"@opensumi/ide-terminal-next": "3.7.2-next-1740016705.0",
|
|
36
|
+
"@opensumi/ide-utils": "3.7.2-next-1740016705.0",
|
|
37
|
+
"@opensumi/ide-webview": "3.7.2-next-1740016705.0",
|
|
38
38
|
"address": "^1.1.2",
|
|
39
39
|
"glob-to-regexp": "0.4.1",
|
|
40
40
|
"is-running": "^2.1.0",
|
|
@@ -45,28 +45,28 @@
|
|
|
45
45
|
"v8-inspect-profiler": "^0.1.1"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@opensumi/ide-ai-native": "3.7.2-next-
|
|
49
|
-
"@opensumi/ide-comments": "3.7.2-next-
|
|
50
|
-
"@opensumi/ide-components": "3.7.2-next-
|
|
48
|
+
"@opensumi/ide-ai-native": "3.7.2-next-1740016705.0",
|
|
49
|
+
"@opensumi/ide-comments": "3.7.2-next-1740016705.0",
|
|
50
|
+
"@opensumi/ide-components": "3.7.2-next-1740016705.0",
|
|
51
51
|
"@opensumi/ide-core-browser": "workspace:*",
|
|
52
|
-
"@opensumi/ide-core-common": "3.7.2-next-
|
|
53
|
-
"@opensumi/ide-decoration": "3.7.2-next-
|
|
54
|
-
"@opensumi/ide-dev-tool": "3.7.2-next-
|
|
55
|
-
"@opensumi/ide-editor": "3.7.2-next-
|
|
56
|
-
"@opensumi/ide-extension-storage": "3.7.2-next-
|
|
57
|
-
"@opensumi/ide-file-tree-next": "3.7.2-next-
|
|
58
|
-
"@opensumi/ide-i18n": "3.7.2-next-
|
|
59
|
-
"@opensumi/ide-main-layout": "3.7.2-next-
|
|
60
|
-
"@opensumi/ide-monaco": "3.7.2-next-
|
|
61
|
-
"@opensumi/ide-output": "3.7.2-next-
|
|
62
|
-
"@opensumi/ide-overlay": "3.7.2-next-
|
|
63
|
-
"@opensumi/ide-quick-open": "3.7.2-next-
|
|
64
|
-
"@opensumi/ide-scm": "3.7.2-next-
|
|
65
|
-
"@opensumi/ide-testing": "3.7.2-next-
|
|
66
|
-
"@opensumi/ide-theme": "3.7.2-next-
|
|
67
|
-
"@opensumi/ide-toolbar": "3.7.2-next-
|
|
68
|
-
"@opensumi/ide-workspace": "3.7.2-next-
|
|
69
|
-
"@opensumi/ide-workspace-edit": "3.7.2-next-
|
|
52
|
+
"@opensumi/ide-core-common": "3.7.2-next-1740016705.0",
|
|
53
|
+
"@opensumi/ide-decoration": "3.7.2-next-1740016705.0",
|
|
54
|
+
"@opensumi/ide-dev-tool": "3.7.2-next-1740016705.0",
|
|
55
|
+
"@opensumi/ide-editor": "3.7.2-next-1740016705.0",
|
|
56
|
+
"@opensumi/ide-extension-storage": "3.7.2-next-1740016705.0",
|
|
57
|
+
"@opensumi/ide-file-tree-next": "3.7.2-next-1740016705.0",
|
|
58
|
+
"@opensumi/ide-i18n": "3.7.2-next-1740016705.0",
|
|
59
|
+
"@opensumi/ide-main-layout": "3.7.2-next-1740016705.0",
|
|
60
|
+
"@opensumi/ide-monaco": "3.7.2-next-1740016705.0",
|
|
61
|
+
"@opensumi/ide-output": "3.7.2-next-1740016705.0",
|
|
62
|
+
"@opensumi/ide-overlay": "3.7.2-next-1740016705.0",
|
|
63
|
+
"@opensumi/ide-quick-open": "3.7.2-next-1740016705.0",
|
|
64
|
+
"@opensumi/ide-scm": "3.7.2-next-1740016705.0",
|
|
65
|
+
"@opensumi/ide-testing": "3.7.2-next-1740016705.0",
|
|
66
|
+
"@opensumi/ide-theme": "3.7.2-next-1740016705.0",
|
|
67
|
+
"@opensumi/ide-toolbar": "3.7.2-next-1740016705.0",
|
|
68
|
+
"@opensumi/ide-workspace": "3.7.2-next-1740016705.0",
|
|
69
|
+
"@opensumi/ide-workspace-edit": "3.7.2-next-1740016705.0"
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "7c37a4e83a01dd8978ba55fc4b69e9ebb1f0b1f3"
|
|
72
72
|
}
|