custom-electron-titlebar 3.2.6 → 3.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/FUNDING.yml +1 -0
- package/README.md +15 -24
- package/_config.yml +1 -0
- package/{lib → build}/browser/browser.d.ts +0 -0
- package/{lib → build}/browser/browser.js +0 -0
- package/{lib → build}/browser/browser.js.map +0 -0
- package/{lib → build}/browser/event.d.ts +0 -0
- package/{lib → build}/browser/event.js +2 -1
- package/{lib → build}/browser/event.js.map +1 -1
- package/{lib → build}/browser/iframe.d.ts +0 -0
- package/{lib → build}/browser/iframe.js +0 -0
- package/{lib → build}/browser/iframe.js.map +0 -0
- package/{lib → build}/browser/keyboardEvent.d.ts +0 -0
- package/{lib → build}/browser/keyboardEvent.js +0 -0
- package/{lib → build}/browser/keyboardEvent.js.map +0 -0
- package/{lib → build}/browser/mouseEvent.d.ts +0 -0
- package/{lib → build}/browser/mouseEvent.js +0 -0
- package/{lib → build}/browser/mouseEvent.js.map +0 -0
- package/{lib → build}/common/arrays.d.ts +0 -0
- package/{lib → build}/common/arrays.js +0 -0
- package/{lib → build}/common/arrays.js.map +0 -0
- package/{lib → build}/common/async.d.ts +0 -0
- package/{lib → build}/common/async.js +0 -0
- package/{lib → build}/common/async.js.map +0 -0
- package/{lib → build}/common/charCode.d.ts +0 -0
- package/{lib → build}/common/charCode.js +0 -0
- package/{lib → build}/common/charCode.js.map +0 -0
- package/{lib → build}/common/color.d.ts +0 -0
- package/{lib → build}/common/color.js +0 -0
- package/{lib → build}/common/color.js.map +0 -0
- package/{lib → build}/common/dom.d.ts +0 -0
- package/{lib → build}/common/dom.js +16 -14
- package/build/common/dom.js.map +1 -0
- package/{lib → build}/common/event.d.ts +0 -0
- package/{lib → build}/common/event.js +1 -1
- package/build/common/event.js.map +1 -0
- package/{lib → build}/common/iterator.d.ts +0 -0
- package/{lib → build}/common/iterator.js +0 -0
- package/{lib → build}/common/iterator.js.map +0 -0
- package/{lib → build}/common/keyCodes.d.ts +0 -0
- package/{lib → build}/common/keyCodes.js +0 -0
- package/{lib → build}/common/keyCodes.js.map +0 -0
- package/{lib → build}/common/lifecycle.d.ts +0 -0
- package/{lib → build}/common/lifecycle.js +0 -0
- package/{lib → build}/common/lifecycle.js.map +0 -0
- package/{lib → build}/common/linkedList.d.ts +0 -0
- package/{lib → build}/common/linkedList.js +0 -0
- package/{lib → build}/common/linkedList.js.map +0 -0
- package/{lib → build}/common/platform.d.ts +0 -0
- package/{lib → build}/common/platform.js +0 -0
- package/{lib → build}/common/platform.js.map +0 -0
- package/{lib → build}/index.d.ts +0 -0
- package/{lib → build}/index.js +0 -0
- package/{lib → build}/index.js.map +0 -0
- package/{lib → build}/menu/menu.d.ts +0 -0
- package/{lib → build}/menu/menu.js +38 -38
- package/build/menu/menu.js.map +1 -0
- package/{lib → build}/menu/menuitem.d.ts +10 -2
- package/{lib → build}/menu/menuitem.js +70 -34
- package/build/menu/menuitem.js.map +1 -0
- package/{lib → build}/menubar.d.ts +0 -0
- package/{lib → build}/menubar.js +29 -30
- package/build/menubar.js.map +1 -0
- package/{lib → build}/themebar.d.ts +0 -0
- package/{lib → build}/themebar.js +2 -2
- package/build/themebar.js.map +1 -0
- package/{lib → build}/titlebar.d.ts +0 -0
- package/{lib → build}/titlebar.js +61 -58
- package/build/titlebar.js.map +1 -0
- package/package.json +13 -7
- package/lib/common/dom.js.map +0 -1
- package/lib/common/enableNativeMenuCommands.d.ts +0 -1
- package/lib/common/enableNativeMenuCommands.js +0 -32
- package/lib/common/enableNativeMenuCommands.js.map +0 -1
- package/lib/common/event.js.map +0 -1
- package/lib/main.d.ts +0 -1
- package/lib/main.js +0 -14
- package/lib/main.js.map +0 -1
- package/lib/menu/menu.js.map +0 -1
- package/lib/menu/menuitem.js.map +0 -1
- package/lib/menubar.js.map +0 -1
- package/lib/themebar.js.map +0 -1
- package/lib/titlebar.js.map +0 -1
- package/lib/vs/base/browser/browser.js +0 -150
- package/lib/vs/base/browser/canIUse.js +0 -58
- package/lib/vs/base/browser/codicons.js +0 -37
- package/lib/vs/base/browser/contextmenu.js +0 -9
- package/lib/vs/base/browser/dnd.js +0 -113
- package/lib/vs/base/browser/dom.js +0 -1417
- package/lib/vs/base/browser/event.js +0 -36
- package/lib/vs/base/browser/fastDomNode.js +0 -265
- package/lib/vs/base/browser/formattedTextRenderer.js +0 -248
- package/lib/vs/base/browser/globalMouseMoveMonitor.js +0 -137
- package/lib/vs/base/browser/history.js +0 -9
- package/lib/vs/base/browser/iframe.js +0 -126
- package/lib/vs/base/browser/keyboardEvent.js +0 -599
- package/lib/vs/base/browser/mouseEvent.js +0 -155
- package/lib/vs/base/browser/touch.js +0 -315
- package/lib/vs/base/browser/ui/actionbar/actionViewItems.js +0 -397
- package/lib/vs/base/browser/ui/actionbar/actionbar.js +0 -583
- package/lib/vs/base/browser/ui/checkbox/checkbox.js +0 -251
- package/lib/vs/base/browser/ui/codicons/codiconLabel.js +0 -31
- package/lib/vs/base/browser/ui/codicons/codiconStyles.js +0 -47
- package/lib/vs/base/browser/ui/contextview/contextview.js +0 -367
- package/lib/vs/base/browser/ui/dropdown/dropdown.js +0 -256
- package/lib/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +0 -120
- package/lib/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +0 -118
- package/lib/vs/base/browser/ui/list/list.js +0 -54
- package/lib/vs/base/browser/ui/list/listPaging.js +0 -322
- package/lib/vs/base/browser/ui/list/listView.js +0 -1388
- package/lib/vs/base/browser/ui/list/listWidget.js +0 -1709
- package/lib/vs/base/browser/ui/list/rangeMap.js +0 -223
- package/lib/vs/base/browser/ui/list/rowCache.js +0 -113
- package/lib/vs/base/browser/ui/list/splice.js +0 -23
- package/lib/vs/base/browser/ui/menu/menu.js +0 -1371
- package/lib/vs/base/browser/ui/menu/menubar.js +0 -1139
- package/lib/vs/base/browser/ui/scrollbar/abstractScrollbar.js +0 -278
- package/lib/vs/base/browser/ui/scrollbar/horizontalScrollbar.js +0 -115
- package/lib/vs/base/browser/ui/scrollbar/scrollableElement.js +0 -646
- package/lib/vs/base/browser/ui/scrollbar/scrollableElementOptions.js +0 -9
- package/lib/vs/base/browser/ui/scrollbar/scrollbarArrow.js +0 -106
- package/lib/vs/base/browser/ui/scrollbar/scrollbarState.js +0 -184
- package/lib/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.js +0 -116
- package/lib/vs/base/browser/ui/scrollbar/verticalScrollbar.js +0 -114
- package/lib/vs/base/browser/ui/selectBox/selectBox.js +0 -85
- package/lib/vs/base/browser/ui/selectBox/selectBoxCustom.js +0 -985
- package/lib/vs/base/browser/ui/selectBox/selectBoxNative.js +0 -188
- package/lib/vs/base/browser/ui/toolbar/toolbar.js +0 -206
- package/lib/vs/base/browser/ui/widget.js +0 -69
- package/lib/vs/base/common/actions.js +0 -224
- package/lib/vs/base/common/amd.js +0 -31
- package/lib/vs/base/common/arrays.js +0 -641
- package/lib/vs/base/common/assert.js +0 -21
- package/lib/vs/base/common/async.js +0 -966
- package/lib/vs/base/common/buffer.js +0 -250
- package/lib/vs/base/common/cache.js +0 -40
- package/lib/vs/base/common/cancellation.js +0 -146
- package/lib/vs/base/common/charCode.js +0 -9
- package/lib/vs/base/common/codicon.js +0 -136
- package/lib/vs/base/common/codicons.js +0 -1378
- package/lib/vs/base/common/collections.js +0 -133
- package/lib/vs/base/common/color.js +0 -716
- package/lib/vs/base/common/comparers.js +0 -280
- package/lib/vs/base/common/console.js +0 -142
- package/lib/vs/base/common/date.js +0 -113
- package/lib/vs/base/common/decorators.js +0 -169
- package/lib/vs/base/common/errorMessage.js +0 -93
- package/lib/vs/base/common/errors.js +0 -213
- package/lib/vs/base/common/errorsWithActions.js +0 -28
- package/lib/vs/base/common/event.js +0 -873
- package/lib/vs/base/common/extpath.js +0 -401
- package/lib/vs/base/common/filters.js +0 -948
- package/lib/vs/base/common/functional.js +0 -28
- package/lib/vs/base/common/fuzzyScorer.js +0 -811
- package/lib/vs/base/common/glob.js +0 -696
- package/lib/vs/base/common/hash.js +0 -359
- package/lib/vs/base/common/history.js +0 -116
- package/lib/vs/base/common/htmlContent.js +0 -162
- package/lib/vs/base/common/idGenerator.js +0 -25
- package/lib/vs/base/common/iterator.js +0 -118
- package/lib/vs/base/common/json.js +0 -1624
- package/lib/vs/base/common/jsonEdit.js +0 -272
- package/lib/vs/base/common/jsonErrorMessages.js +0 -69
- package/lib/vs/base/common/jsonFormatter.js +0 -316
- package/lib/vs/base/common/jsonSchema.js +0 -9
- package/lib/vs/base/common/keyCodes.js +0 -591
- package/lib/vs/base/common/keybindingLabels.js +0 -231
- package/lib/vs/base/common/keybindingParser.js +0 -142
- package/lib/vs/base/common/labels.js +0 -430
- package/lib/vs/base/common/lazy.js +0 -71
- package/lib/vs/base/common/lifecycle.js +0 -308
- package/lib/vs/base/common/linkedList.js +0 -152
- package/lib/vs/base/common/linkedText.js +0 -73
- package/lib/vs/base/common/map.js +0 -1108
- package/lib/vs/base/common/marshalling.js +0 -80
- package/lib/vs/base/common/mime.js +0 -321
- package/lib/vs/base/common/navigator.js +0 -50
- package/lib/vs/base/common/network.js +0 -160
- package/lib/vs/base/common/normalization.js +0 -78
- package/lib/vs/base/common/numbers.js +0 -55
- package/lib/vs/base/common/objects.js +0 -268
- package/lib/vs/base/common/paging.js +0 -190
- package/lib/vs/base/common/parsers.js +0 -78
- package/lib/vs/base/common/path.js +0 -1550
- package/lib/vs/base/common/platform.js +0 -245
- package/lib/vs/base/common/process.js +0 -52
- package/lib/vs/base/common/processes.js +0 -32
- package/lib/vs/base/common/range.js +0 -79
- package/lib/vs/base/common/resourceTree.js +0 -185
- package/lib/vs/base/common/resources.js +0 -421
- package/lib/vs/base/common/scanCode.js +0 -1472
- package/lib/vs/base/common/scrollable.js +0 -397
- package/lib/vs/base/common/search.js +0 -55
- package/lib/vs/base/common/sequence.js +0 -64
- package/lib/vs/base/common/severity.js +0 -55
- package/lib/vs/base/common/skipList.js +0 -234
- package/lib/vs/base/common/stopwatch.js +0 -45
- package/lib/vs/base/common/stream.js +0 -418
- package/lib/vs/base/common/strings.js +0 -1283
- package/lib/vs/base/common/styler.js +0 -9
- package/lib/vs/base/common/types.js +0 -296
- package/lib/vs/base/common/uint.js +0 -46
- package/lib/vs/base/common/uri.js +0 -756
- package/lib/vs/base/common/uriIpc.js +0 -154
- package/lib/vs/base/common/uuid.js +0 -70
- package/lib/vs/nls.mock.js +0 -31
- package/lib/vs/platform/actions/browser/menuEntryActionViewItem.js +0 -342
- package/lib/vs/platform/actions/common/actions.js +0 -456
- package/lib/vs/platform/actions/common/menuService.js +0 -194
- package/lib/vs/platform/clipboard/browser/clipboardService.js +0 -99
- package/lib/vs/platform/clipboard/common/clipboardService.js +0 -14
- package/lib/vs/platform/contextkey/common/contextkey.js +0 -1210
- package/lib/vs/platform/contextkey/common/contextkeys.js +0 -23
- package/lib/vs/platform/contextview/browser/contextView.js +0 -15
- package/lib/vs/platform/contextview/browser/contextViewService.js +0 -96
- package/lib/vs/platform/environment/common/argv.js +0 -9
- package/lib/vs/platform/environment/common/environment.js +0 -15
- package/lib/vs/platform/instantiation/common/descriptors.js +0 -25
- package/lib/vs/platform/instantiation/common/extensions.js +0 -26
- package/lib/vs/platform/instantiation/common/graph.js +0 -93
- package/lib/vs/platform/instantiation/common/instantiation.js +0 -84
- package/lib/vs/platform/instantiation/common/instantiationService.js +0 -361
- package/lib/vs/platform/instantiation/common/serviceCollection.js +0 -39
- package/lib/vs/platform/keybinding/common/baseResolvedKeybinding.js +0 -73
- package/lib/vs/platform/keybinding/common/keybinding.js +0 -14
- package/lib/vs/platform/keybinding/common/keybindingResolver.js +0 -391
- package/lib/vs/platform/keybinding/common/keybindingsRegistry.js +0 -229
- package/lib/vs/platform/keybinding/common/resolvedKeybindingItem.js +0 -47
- package/lib/vs/platform/keybinding/common/usLayoutResolvedKeybinding.js +0 -160
- package/lib/vs/platform/layout/browser/layoutService.js +0 -14
- package/lib/vs/platform/menubar/common/menubar.js +0 -34
- package/lib/vs/platform/registry/common/platform.js +0 -38
- package/lib/vs/platform/theme/browser/checkbox.js +0 -32
- package/lib/vs/platform/theme/common/colorRegistry.js +0 -1154
- package/lib/vs/platform/theme/common/styler.js +0 -290
- package/lib/vs/platform/theme/common/theme.js +0 -21
- package/lib/vs/platform/theme/common/themeService.js +0 -176
- package/lib/vs/platform/theme/common/tokenClassificationRegistry.js +0 -540
- package/lib/vs/platform/theme/test/common/testThemeService.js +0 -98
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.SkipList = void 0;
|
|
11
|
-
|
|
12
|
-
class Node {
|
|
13
|
-
constructor(level, key, value) {
|
|
14
|
-
this.level = level;
|
|
15
|
-
this.key = key;
|
|
16
|
-
this.value = value;
|
|
17
|
-
this.forward = [];
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const NIL = undefined;
|
|
23
|
-
|
|
24
|
-
class SkipList {
|
|
25
|
-
/**
|
|
26
|
-
*
|
|
27
|
-
* @param capacity Capacity at which the list performs best
|
|
28
|
-
*/
|
|
29
|
-
constructor(comparator, capacity = 2 ** 16) {
|
|
30
|
-
this.comparator = comparator;
|
|
31
|
-
this[Symbol.toStringTag] = 'SkipList';
|
|
32
|
-
this._level = 0;
|
|
33
|
-
this._size = 0;
|
|
34
|
-
this._maxLevel = Math.max(1, Math.log2(capacity) | 0);
|
|
35
|
-
this._header = new Node(this._maxLevel, NIL, NIL);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
get size() {
|
|
39
|
-
return this._size;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
clear() {
|
|
43
|
-
this._header = new Node(this._maxLevel, NIL, NIL);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
has(key) {
|
|
47
|
-
return Boolean(SkipList._search(this, key, this.comparator));
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
get(key) {
|
|
51
|
-
var _a;
|
|
52
|
-
|
|
53
|
-
return (_a = SkipList._search(this, key, this.comparator)) === null || _a === void 0 ? void 0 : _a.value;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
set(key, value) {
|
|
57
|
-
if (SkipList._insert(this, key, value, this.comparator)) {
|
|
58
|
-
this._size += 1;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return this;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
delete(key) {
|
|
65
|
-
const didDelete = SkipList._delete(this, key, this.comparator);
|
|
66
|
-
|
|
67
|
-
if (didDelete) {
|
|
68
|
-
this._size -= 1;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return didDelete;
|
|
72
|
-
} // --- iteration
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
forEach(callbackfn, thisArg) {
|
|
76
|
-
let node = this._header.forward[0];
|
|
77
|
-
|
|
78
|
-
while (node) {
|
|
79
|
-
callbackfn.call(thisArg, node.value, node.key, this);
|
|
80
|
-
node = node.forward[0];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
[Symbol.iterator]() {
|
|
85
|
-
return this.entries();
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
*entries() {
|
|
89
|
-
let node = this._header.forward[0];
|
|
90
|
-
|
|
91
|
-
while (node) {
|
|
92
|
-
yield [node.key, node.value];
|
|
93
|
-
node = node.forward[0];
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
*keys() {
|
|
98
|
-
let node = this._header.forward[0];
|
|
99
|
-
|
|
100
|
-
while (node) {
|
|
101
|
-
yield node.key;
|
|
102
|
-
node = node.forward[0];
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
*values() {
|
|
107
|
-
let node = this._header.forward[0];
|
|
108
|
-
|
|
109
|
-
while (node) {
|
|
110
|
-
yield node.value;
|
|
111
|
-
node = node.forward[0];
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
toString() {
|
|
116
|
-
// debug string...
|
|
117
|
-
let result = '[SkipList]:';
|
|
118
|
-
let node = this._header.forward[0];
|
|
119
|
-
|
|
120
|
-
while (node) {
|
|
121
|
-
result += `node(${node.key}, ${node.value}, lvl:${node.level})`;
|
|
122
|
-
node = node.forward[0];
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return result;
|
|
126
|
-
} // from https://www.epaperpress.com/sortsearch/download/skiplist.pdf
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
static _search(list, searchKey, comparator) {
|
|
130
|
-
let x = list._header;
|
|
131
|
-
|
|
132
|
-
for (let i = list._level - 1; i >= 0; i--) {
|
|
133
|
-
while (x.forward[i] && comparator(x.forward[i].key, searchKey) < 0) {
|
|
134
|
-
x = x.forward[i];
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
x = x.forward[0];
|
|
139
|
-
|
|
140
|
-
if (x && comparator(x.key, searchKey) === 0) {
|
|
141
|
-
return x;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
return undefined;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
static _insert(list, searchKey, value, comparator) {
|
|
148
|
-
let update = [];
|
|
149
|
-
let x = list._header;
|
|
150
|
-
|
|
151
|
-
for (let i = list._level - 1; i >= 0; i--) {
|
|
152
|
-
while (x.forward[i] && comparator(x.forward[i].key, searchKey) < 0) {
|
|
153
|
-
x = x.forward[i];
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
update[i] = x;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
x = x.forward[0];
|
|
160
|
-
|
|
161
|
-
if (x && comparator(x.key, searchKey) === 0) {
|
|
162
|
-
// update
|
|
163
|
-
x.value = value;
|
|
164
|
-
return false;
|
|
165
|
-
} else {
|
|
166
|
-
// insert
|
|
167
|
-
let lvl = SkipList._randomLevel(list);
|
|
168
|
-
|
|
169
|
-
if (lvl > list._level) {
|
|
170
|
-
for (let i = list._level; i < lvl; i++) {
|
|
171
|
-
update[i] = list._header;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
list._level = lvl;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
x = new Node(lvl, searchKey, value);
|
|
178
|
-
|
|
179
|
-
for (let i = 0; i < lvl; i++) {
|
|
180
|
-
x.forward[i] = update[i].forward[i];
|
|
181
|
-
update[i].forward[i] = x;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
return true;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
static _randomLevel(list, p = 0.5) {
|
|
189
|
-
let lvl = 1;
|
|
190
|
-
|
|
191
|
-
while (Math.random() < p && lvl < list._maxLevel) {
|
|
192
|
-
lvl += 1;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
return lvl;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
static _delete(list, searchKey, comparator) {
|
|
199
|
-
let update = [];
|
|
200
|
-
let x = list._header;
|
|
201
|
-
|
|
202
|
-
for (let i = list._level - 1; i >= 0; i--) {
|
|
203
|
-
while (x.forward[i] && comparator(x.forward[i].key, searchKey) < 0) {
|
|
204
|
-
x = x.forward[i];
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
update[i] = x;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
x = x.forward[0];
|
|
211
|
-
|
|
212
|
-
if (!x || comparator(x.key, searchKey) !== 0) {
|
|
213
|
-
// not found
|
|
214
|
-
return false;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
for (let i = 0; i < list._level; i++) {
|
|
218
|
-
if (update[i].forward[i] !== x) {
|
|
219
|
-
break;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
update[i].forward[i] = x.forward[i];
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
while (list._level > 0 && list._header.forward[list._level - 1] === NIL) {
|
|
226
|
-
list._level -= 1;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
return true;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
exports.SkipList = SkipList;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.StopWatch = void 0;
|
|
11
|
-
|
|
12
|
-
const platform_1 = require("./platform");
|
|
13
|
-
|
|
14
|
-
const hasPerformanceNow = platform_1.globals.performance && typeof platform_1.globals.performance.now === 'function';
|
|
15
|
-
|
|
16
|
-
class StopWatch {
|
|
17
|
-
constructor(highResolution) {
|
|
18
|
-
this._highResolution = hasPerformanceNow && highResolution;
|
|
19
|
-
this._startTime = this._now();
|
|
20
|
-
this._stopTime = -1;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
static create(highResolution = true) {
|
|
24
|
-
return new StopWatch(highResolution);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
stop() {
|
|
28
|
-
this._stopTime = this._now();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
elapsed() {
|
|
32
|
-
if (this._stopTime !== -1) {
|
|
33
|
-
return this._stopTime - this._startTime;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return this._now() - this._startTime;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
_now() {
|
|
40
|
-
return this._highResolution ? platform_1.globals.performance.now() : new Date().getTime();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
exports.StopWatch = StopWatch;
|
|
@@ -1,418 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.transform = exports.toReadable = exports.toStream = exports.peekStream = exports.consumeStream = exports.peekReadable = exports.consumeReadable = exports.newWriteableStream = exports.isReadableBufferedStream = exports.isReadableStream = void 0;
|
|
11
|
-
|
|
12
|
-
const lifecycle_1 = require("./lifecycle");
|
|
13
|
-
|
|
14
|
-
function isReadableStream(obj) {
|
|
15
|
-
const candidate = obj;
|
|
16
|
-
return candidate && [candidate.on, candidate.pause, candidate.resume, candidate.destroy].every(fn => typeof fn === 'function');
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
exports.isReadableStream = isReadableStream;
|
|
20
|
-
|
|
21
|
-
function isReadableBufferedStream(obj) {
|
|
22
|
-
const candidate = obj;
|
|
23
|
-
return candidate && isReadableStream(candidate.stream) && Array.isArray(candidate.buffer) && typeof candidate.ended === 'boolean';
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
exports.isReadableBufferedStream = isReadableBufferedStream;
|
|
27
|
-
|
|
28
|
-
function newWriteableStream(reducer, options) {
|
|
29
|
-
return new WriteableStreamImpl(reducer, options);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
exports.newWriteableStream = newWriteableStream;
|
|
33
|
-
|
|
34
|
-
class WriteableStreamImpl {
|
|
35
|
-
constructor(reducer, options) {
|
|
36
|
-
this.reducer = reducer;
|
|
37
|
-
this.options = options;
|
|
38
|
-
this.state = {
|
|
39
|
-
flowing: false,
|
|
40
|
-
ended: false,
|
|
41
|
-
destroyed: false
|
|
42
|
-
};
|
|
43
|
-
this.buffer = {
|
|
44
|
-
data: [],
|
|
45
|
-
error: []
|
|
46
|
-
};
|
|
47
|
-
this.listeners = {
|
|
48
|
-
data: [],
|
|
49
|
-
error: [],
|
|
50
|
-
end: []
|
|
51
|
-
};
|
|
52
|
-
this.pendingWritePromises = [];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
pause() {
|
|
56
|
-
if (this.state.destroyed) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
this.state.flowing = false;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
resume() {
|
|
64
|
-
if (this.state.destroyed) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
if (!this.state.flowing) {
|
|
69
|
-
this.state.flowing = true; // emit buffered events
|
|
70
|
-
|
|
71
|
-
this.flowData();
|
|
72
|
-
this.flowErrors();
|
|
73
|
-
this.flowEnd();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
write(data) {
|
|
78
|
-
var _a;
|
|
79
|
-
|
|
80
|
-
if (this.state.destroyed) {
|
|
81
|
-
return;
|
|
82
|
-
} // flowing: directly send the data to listeners
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (this.state.flowing) {
|
|
86
|
-
this.listeners.data.forEach(listener => listener(data));
|
|
87
|
-
} // not yet flowing: buffer data until flowing
|
|
88
|
-
else {
|
|
89
|
-
this.buffer.data.push(data); // highWaterMark: if configured, signal back when buffer reached limits
|
|
90
|
-
|
|
91
|
-
if (typeof ((_a = this.options) === null || _a === void 0 ? void 0 : _a.highWaterMark) === 'number' && this.buffer.data.length > this.options.highWaterMark) {
|
|
92
|
-
return new Promise(resolve => this.pendingWritePromises.push(resolve));
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
error(error) {
|
|
98
|
-
if (this.state.destroyed) {
|
|
99
|
-
return;
|
|
100
|
-
} // flowing: directly send the error to listeners
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (this.state.flowing) {
|
|
104
|
-
this.listeners.error.forEach(listener => listener(error));
|
|
105
|
-
} // not yet flowing: buffer errors until flowing
|
|
106
|
-
else {
|
|
107
|
-
this.buffer.error.push(error);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
end(result) {
|
|
112
|
-
if (this.state.destroyed) {
|
|
113
|
-
return;
|
|
114
|
-
} // end with data or error if provided
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (result instanceof Error) {
|
|
118
|
-
this.error(result);
|
|
119
|
-
} else if (result) {
|
|
120
|
-
this.write(result);
|
|
121
|
-
} // flowing: send end event to listeners
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
if (this.state.flowing) {
|
|
125
|
-
this.listeners.end.forEach(listener => listener());
|
|
126
|
-
this.destroy();
|
|
127
|
-
} // not yet flowing: remember state
|
|
128
|
-
else {
|
|
129
|
-
this.state.ended = true;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
on(event, callback) {
|
|
134
|
-
if (this.state.destroyed) {
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
switch (event) {
|
|
139
|
-
case 'data':
|
|
140
|
-
this.listeners.data.push(callback); // switch into flowing mode as soon as the first 'data'
|
|
141
|
-
// listener is added and we are not yet in flowing mode
|
|
142
|
-
|
|
143
|
-
this.resume();
|
|
144
|
-
break;
|
|
145
|
-
|
|
146
|
-
case 'end':
|
|
147
|
-
this.listeners.end.push(callback); // emit 'end' event directly if we are flowing
|
|
148
|
-
// and the end has already been reached
|
|
149
|
-
//
|
|
150
|
-
// finish() when it went through
|
|
151
|
-
|
|
152
|
-
if (this.state.flowing && this.flowEnd()) {
|
|
153
|
-
this.destroy();
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
break;
|
|
157
|
-
|
|
158
|
-
case 'error':
|
|
159
|
-
this.listeners.error.push(callback); // emit buffered 'error' events unless done already
|
|
160
|
-
// now that we know that we have at least one listener
|
|
161
|
-
|
|
162
|
-
if (this.state.flowing) {
|
|
163
|
-
this.flowErrors();
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
break;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
removeListener(event, callback) {
|
|
171
|
-
if (this.state.destroyed) {
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
let listeners = undefined;
|
|
176
|
-
|
|
177
|
-
switch (event) {
|
|
178
|
-
case 'data':
|
|
179
|
-
listeners = this.listeners.data;
|
|
180
|
-
break;
|
|
181
|
-
|
|
182
|
-
case 'end':
|
|
183
|
-
listeners = this.listeners.end;
|
|
184
|
-
break;
|
|
185
|
-
|
|
186
|
-
case 'error':
|
|
187
|
-
listeners = this.listeners.error;
|
|
188
|
-
break;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
if (listeners) {
|
|
192
|
-
const index = listeners.indexOf(callback);
|
|
193
|
-
|
|
194
|
-
if (index >= 0) {
|
|
195
|
-
listeners.splice(index, 1);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
flowData() {
|
|
201
|
-
if (this.buffer.data.length > 0) {
|
|
202
|
-
const fullDataBuffer = this.reducer(this.buffer.data);
|
|
203
|
-
this.listeners.data.forEach(listener => listener(fullDataBuffer));
|
|
204
|
-
this.buffer.data.length = 0; // When the buffer is empty, resolve all pending writers
|
|
205
|
-
|
|
206
|
-
const pendingWritePromises = [...this.pendingWritePromises];
|
|
207
|
-
this.pendingWritePromises.length = 0;
|
|
208
|
-
pendingWritePromises.forEach(pendingWritePromise => pendingWritePromise());
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
flowErrors() {
|
|
213
|
-
if (this.listeners.error.length > 0) {
|
|
214
|
-
for (const error of this.buffer.error) {
|
|
215
|
-
this.listeners.error.forEach(listener => listener(error));
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
this.buffer.error.length = 0;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
flowEnd() {
|
|
223
|
-
if (this.state.ended) {
|
|
224
|
-
this.listeners.end.forEach(listener => listener());
|
|
225
|
-
return this.listeners.end.length > 0;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
return false;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
destroy() {
|
|
232
|
-
if (!this.state.destroyed) {
|
|
233
|
-
this.state.destroyed = true;
|
|
234
|
-
this.state.ended = true;
|
|
235
|
-
this.buffer.data.length = 0;
|
|
236
|
-
this.buffer.error.length = 0;
|
|
237
|
-
this.listeners.data.length = 0;
|
|
238
|
-
this.listeners.error.length = 0;
|
|
239
|
-
this.listeners.end.length = 0;
|
|
240
|
-
this.pendingWritePromises.length = 0;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Helper to fully read a T readable into a T.
|
|
247
|
-
*/
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
function consumeReadable(readable, reducer) {
|
|
251
|
-
const chunks = [];
|
|
252
|
-
let chunk;
|
|
253
|
-
|
|
254
|
-
while ((chunk = readable.read()) !== null) {
|
|
255
|
-
chunks.push(chunk);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
return reducer(chunks);
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
exports.consumeReadable = consumeReadable;
|
|
262
|
-
/**
|
|
263
|
-
* Helper to read a T readable up to a maximum of chunks. If the limit is
|
|
264
|
-
* reached, will return a readable instead to ensure all data can still
|
|
265
|
-
* be read.
|
|
266
|
-
*/
|
|
267
|
-
|
|
268
|
-
function peekReadable(readable, reducer, maxChunks) {
|
|
269
|
-
const chunks = [];
|
|
270
|
-
let chunk = undefined;
|
|
271
|
-
|
|
272
|
-
while ((chunk = readable.read()) !== null && chunks.length < maxChunks) {
|
|
273
|
-
chunks.push(chunk);
|
|
274
|
-
} // If the last chunk is null, it means we reached the end of
|
|
275
|
-
// the readable and return all the data at once
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
if (chunk === null && chunks.length > 0) {
|
|
279
|
-
return reducer(chunks);
|
|
280
|
-
} // Otherwise, we still have a chunk, it means we reached the maxChunks
|
|
281
|
-
// value and as such we return a new Readable that first returns
|
|
282
|
-
// the existing read chunks and then continues with reading from
|
|
283
|
-
// the underlying readable.
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
return {
|
|
287
|
-
read: () => {
|
|
288
|
-
// First consume chunks from our array
|
|
289
|
-
if (chunks.length > 0) {
|
|
290
|
-
return chunks.shift();
|
|
291
|
-
} // Then ensure to return our last read chunk
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
if (typeof chunk !== 'undefined') {
|
|
295
|
-
const lastReadChunk = chunk; // explicitly use undefined here to indicate that we consumed
|
|
296
|
-
// the chunk, which could have either been null or valued.
|
|
297
|
-
|
|
298
|
-
chunk = undefined;
|
|
299
|
-
return lastReadChunk;
|
|
300
|
-
} // Finally delegate back to the Readable
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
return readable.read();
|
|
304
|
-
}
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
exports.peekReadable = peekReadable;
|
|
309
|
-
/**
|
|
310
|
-
* Helper to fully read a T stream into a T.
|
|
311
|
-
*/
|
|
312
|
-
|
|
313
|
-
function consumeStream(stream, reducer) {
|
|
314
|
-
return new Promise((resolve, reject) => {
|
|
315
|
-
const chunks = [];
|
|
316
|
-
stream.on('data', data => chunks.push(data));
|
|
317
|
-
stream.on('error', error => reject(error));
|
|
318
|
-
stream.on('end', () => resolve(reducer(chunks)));
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
exports.consumeStream = consumeStream;
|
|
323
|
-
/**
|
|
324
|
-
* Helper to peek up to `maxChunks` into a stream. The return type signals if
|
|
325
|
-
* the stream has ended or not. If not, caller needs to add a `data` listener
|
|
326
|
-
* to continue reading.
|
|
327
|
-
*/
|
|
328
|
-
|
|
329
|
-
function peekStream(stream, maxChunks) {
|
|
330
|
-
return new Promise((resolve, reject) => {
|
|
331
|
-
const streamListeners = new lifecycle_1.DisposableStore(); // Data Listener
|
|
332
|
-
|
|
333
|
-
const buffer = [];
|
|
334
|
-
|
|
335
|
-
const dataListener = chunk => {
|
|
336
|
-
// Add to buffer
|
|
337
|
-
buffer.push(chunk); // We reached maxChunks and thus need to return
|
|
338
|
-
|
|
339
|
-
if (buffer.length > maxChunks) {
|
|
340
|
-
// Dispose any listeners and ensure to pause the
|
|
341
|
-
// stream so that it can be consumed again by caller
|
|
342
|
-
streamListeners.dispose();
|
|
343
|
-
stream.pause();
|
|
344
|
-
return resolve({
|
|
345
|
-
stream,
|
|
346
|
-
buffer,
|
|
347
|
-
ended: false
|
|
348
|
-
});
|
|
349
|
-
}
|
|
350
|
-
};
|
|
351
|
-
|
|
352
|
-
streamListeners.add(lifecycle_1.toDisposable(() => stream.removeListener('data', dataListener)));
|
|
353
|
-
stream.on('data', dataListener); // Error Listener
|
|
354
|
-
|
|
355
|
-
const errorListener = error => {
|
|
356
|
-
return reject(error);
|
|
357
|
-
};
|
|
358
|
-
|
|
359
|
-
streamListeners.add(lifecycle_1.toDisposable(() => stream.removeListener('error', errorListener)));
|
|
360
|
-
stream.on('error', errorListener);
|
|
361
|
-
|
|
362
|
-
const endListener = () => {
|
|
363
|
-
return resolve({
|
|
364
|
-
stream,
|
|
365
|
-
buffer,
|
|
366
|
-
ended: true
|
|
367
|
-
});
|
|
368
|
-
};
|
|
369
|
-
|
|
370
|
-
streamListeners.add(lifecycle_1.toDisposable(() => stream.removeListener('end', endListener)));
|
|
371
|
-
stream.on('end', endListener);
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
exports.peekStream = peekStream;
|
|
376
|
-
/**
|
|
377
|
-
* Helper to create a readable stream from an existing T.
|
|
378
|
-
*/
|
|
379
|
-
|
|
380
|
-
function toStream(t, reducer) {
|
|
381
|
-
const stream = newWriteableStream(reducer);
|
|
382
|
-
stream.end(t);
|
|
383
|
-
return stream;
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
exports.toStream = toStream;
|
|
387
|
-
/**
|
|
388
|
-
* Helper to convert a T into a Readable<T>.
|
|
389
|
-
*/
|
|
390
|
-
|
|
391
|
-
function toReadable(t) {
|
|
392
|
-
let consumed = false;
|
|
393
|
-
return {
|
|
394
|
-
read: () => {
|
|
395
|
-
if (consumed) {
|
|
396
|
-
return null;
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
consumed = true;
|
|
400
|
-
return t;
|
|
401
|
-
}
|
|
402
|
-
};
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
exports.toReadable = toReadable;
|
|
406
|
-
/**
|
|
407
|
-
* Helper to transform a readable stream into another stream.
|
|
408
|
-
*/
|
|
409
|
-
|
|
410
|
-
function transform(stream, transformer, reducer) {
|
|
411
|
-
const target = newWriteableStream(reducer);
|
|
412
|
-
stream.on('data', data => target.write(transformer.data(data)));
|
|
413
|
-
stream.on('end', () => target.end());
|
|
414
|
-
stream.on('error', error => target.error(transformer.error ? transformer.error(error) : error));
|
|
415
|
-
return target;
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
exports.transform = transform;
|