@mnaoumov/typescript-lib 0.0.0 → 1.0.1
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/@types/debug/package.json +4 -0
- package/LICENSE +21 -0
- package/README.md +15 -1
- package/dist/lib/cjs/@types/debug.d.cts +21 -0
- package/dist/lib/cjs/abort-controller.cjs +144 -0
- package/dist/lib/cjs/abort-controller.d.cts +136 -0
- package/dist/lib/cjs/aggregate-error.cjs +40 -0
- package/dist/lib/cjs/aggregate-error.d.cts +24 -0
- package/dist/lib/cjs/array-buffer.cjs +38 -0
- package/dist/lib/cjs/array-buffer.d.cts +16 -0
- package/dist/lib/cjs/array.cjs +76 -0
- package/dist/lib/cjs/array.d.cts +46 -0
- package/dist/lib/cjs/async-events.cjs +408 -0
- package/dist/lib/cjs/async-events.d.cts +456 -0
- package/dist/lib/cjs/async-operation-hook.cjs +55 -0
- package/dist/lib/cjs/async-operation-hook.d.cts +59 -0
- package/dist/lib/cjs/async.cjs +463 -0
- package/dist/lib/cjs/async.d.cts +415 -0
- package/dist/lib/cjs/beeper.cjs +68 -0
- package/dist/lib/cjs/beeper.d.cts +21 -0
- package/dist/lib/cjs/blob.cjs +102 -0
- package/dist/lib/cjs/blob.d.cts +60 -0
- package/dist/lib/cjs/bytes.cjs +56 -0
- package/dist/lib/cjs/bytes.d.cts +17 -0
- package/dist/lib/cjs/debug-controller.cjs +22 -0
- package/dist/lib/cjs/debug-controller.d.cts +87 -0
- package/dist/lib/cjs/debug.cjs +204 -0
- package/dist/lib/cjs/debug.d.cts +66 -0
- package/dist/lib/cjs/desktop-zip-extractor.cjs +157 -0
- package/dist/lib/cjs/desktop-zip-extractor.d.cts +96 -0
- package/dist/lib/cjs/disposable.cjs +364 -0
- package/dist/lib/cjs/disposable.d.cts +387 -0
- package/dist/lib/cjs/enum.cjs +42 -0
- package/dist/lib/cjs/enum.d.cts +24 -0
- package/dist/lib/cjs/error.cjs +239 -0
- package/dist/lib/cjs/error.d.cts +182 -0
- package/dist/lib/cjs/function.cjs +83 -0
- package/dist/lib/cjs/function.d.cts +128 -0
- package/dist/lib/cjs/html-element.cjs +283 -0
- package/dist/lib/cjs/html-element.d.cts +200 -0
- package/dist/lib/cjs/index.cjs +137 -0
- package/dist/lib/cjs/index.d.cts +33 -0
- package/dist/lib/cjs/jpeg-metadata.cjs +170 -0
- package/dist/lib/cjs/jpeg-metadata.d.cts +42 -0
- package/dist/lib/cjs/library-references.d.cts +2 -0
- package/dist/lib/cjs/library.cjs +100 -0
- package/dist/lib/cjs/library.d.cts +96 -0
- package/dist/lib/cjs/object-utils.cjs +559 -0
- package/dist/lib/cjs/object-utils.d.cts +298 -0
- package/dist/lib/cjs/path.cjs +171 -0
- package/dist/lib/cjs/path.d.cts +155 -0
- package/dist/lib/cjs/reg-exp.cjs +196 -0
- package/dist/lib/cjs/reg-exp.d.cts +87 -0
- package/dist/lib/cjs/string.cjs +268 -0
- package/dist/lib/cjs/string.d.cts +362 -0
- package/dist/lib/cjs/transformers/date-transformer.cjs +71 -0
- package/dist/lib/cjs/transformers/date-transformer.d.cts +39 -0
- package/dist/lib/cjs/transformers/group-transformer.cjs +115 -0
- package/dist/lib/cjs/transformers/group-transformer.d.cts +70 -0
- package/dist/lib/cjs/transformers/index.cjs +65 -0
- package/dist/lib/cjs/transformers/index.d.cts +9 -0
- package/dist/lib/cjs/transformers/map-transformer.cjs +71 -0
- package/dist/lib/cjs/transformers/map-transformer.d.cts +41 -0
- package/dist/lib/cjs/transformers/set-transformer.cjs +71 -0
- package/dist/lib/cjs/transformers/set-transformer.d.cts +39 -0
- package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +69 -0
- package/dist/lib/cjs/transformers/skip-private-property-transformer.d.cts +36 -0
- package/dist/lib/cjs/transformers/transformer.cjs +112 -0
- package/dist/lib/cjs/transformers/transformer.d.cts +70 -0
- package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +72 -0
- package/dist/lib/cjs/transformers/two-way-map-transformer.d.cts +42 -0
- package/dist/lib/cjs/transformers/typed-transformer.cjs +36 -0
- package/dist/lib/cjs/transformers/typed-transformer.d.cts +39 -0
- package/dist/lib/cjs/two-way-map.cjs +150 -0
- package/dist/lib/cjs/two-way-map.d.cts +101 -0
- package/dist/lib/cjs/type-guards.cjs +70 -0
- package/dist/lib/cjs/type-guards.d.cts +84 -0
- package/dist/lib/cjs/type.cjs +63 -0
- package/dist/lib/cjs/type.d.cts +122 -0
- package/dist/lib/cjs/typescript-lib-state.cjs +68 -0
- package/dist/lib/cjs/typescript-lib-state.d.cts +56 -0
- package/dist/lib/cjs/url.cjs +78 -0
- package/dist/lib/cjs/url.d.cts +74 -0
- package/dist/lib/cjs/value-provider.cjs +42 -0
- package/dist/lib/cjs/value-provider.d.cts +29 -0
- package/dist/lib/cjs/value-wrapper.cjs +86 -0
- package/dist/lib/cjs/value-wrapper.d.cts +47 -0
- package/dist/lib/esm/@types/debug.d.mts +21 -0
- package/dist/lib/esm/abort-controller.d.mts +136 -0
- package/dist/lib/esm/abort-controller.mjs +115 -0
- package/dist/lib/esm/aggregate-error.d.mts +24 -0
- package/dist/lib/esm/aggregate-error.mjs +16 -0
- package/dist/lib/esm/array-buffer.d.mts +16 -0
- package/dist/lib/esm/array-buffer.mjs +14 -0
- package/dist/lib/esm/array.d.mts +46 -0
- package/dist/lib/esm/array.mjs +49 -0
- package/dist/lib/esm/async-events.d.mts +456 -0
- package/dist/lib/esm/async-events.mjs +383 -0
- package/dist/lib/esm/async-operation-hook.d.mts +59 -0
- package/dist/lib/esm/async-operation-hook.mjs +27 -0
- package/dist/lib/esm/async.d.mts +415 -0
- package/dist/lib/esm/async.mjs +435 -0
- package/dist/lib/esm/beeper.d.mts +21 -0
- package/dist/lib/esm/beeper.mjs +44 -0
- package/dist/lib/esm/blob.d.mts +60 -0
- package/dist/lib/esm/blob.mjs +77 -0
- package/dist/lib/esm/bytes.d.mts +17 -0
- package/dist/lib/esm/bytes.mjs +32 -0
- package/dist/lib/esm/debug-controller.d.mts +87 -0
- package/dist/lib/esm/debug-controller.mjs +6 -0
- package/dist/lib/esm/debug.d.mts +66 -0
- package/dist/lib/esm/debug.mjs +168 -0
- package/dist/lib/esm/desktop-zip-extractor.d.mts +96 -0
- package/dist/lib/esm/desktop-zip-extractor.mjs +136 -0
- package/dist/lib/esm/disposable.d.mts +387 -0
- package/dist/lib/esm/disposable.mjs +324 -0
- package/dist/lib/esm/enum.d.mts +24 -0
- package/dist/lib/esm/enum.mjs +17 -0
- package/dist/lib/esm/error.d.mts +182 -0
- package/dist/lib/esm/error.mjs +204 -0
- package/dist/lib/esm/function.d.mts +128 -0
- package/dist/lib/esm/function.mjs +52 -0
- package/dist/lib/esm/html-element.d.mts +200 -0
- package/dist/lib/esm/html-element.mjs +247 -0
- package/dist/lib/esm/index.d.mts +33 -0
- package/dist/lib/esm/index.mjs +72 -0
- package/dist/lib/esm/jpeg-metadata.d.mts +42 -0
- package/dist/lib/esm/jpeg-metadata.mjs +145 -0
- package/dist/lib/esm/library-references.d.mts +2 -0
- package/dist/lib/esm/library.d.mts +96 -0
- package/dist/lib/esm/library.mjs +74 -0
- package/dist/lib/esm/object-utils.d.mts +298 -0
- package/dist/lib/esm/object-utils.mjs +523 -0
- package/dist/lib/esm/path.d.mts +155 -0
- package/dist/lib/esm/path.mjs +122 -0
- package/dist/lib/esm/reg-exp.d.mts +87 -0
- package/dist/lib/esm/reg-exp.mjs +169 -0
- package/dist/lib/esm/string.d.mts +362 -0
- package/dist/lib/esm/string.mjs +230 -0
- package/dist/lib/esm/transformers/date-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/date-transformer.mjs +47 -0
- package/dist/lib/esm/transformers/group-transformer.d.mts +70 -0
- package/dist/lib/esm/transformers/group-transformer.mjs +94 -0
- package/dist/lib/esm/transformers/index.d.mts +9 -0
- package/dist/lib/esm/transformers/index.mjs +24 -0
- package/dist/lib/esm/transformers/map-transformer.d.mts +41 -0
- package/dist/lib/esm/transformers/map-transformer.mjs +47 -0
- package/dist/lib/esm/transformers/set-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/set-transformer.mjs +47 -0
- package/dist/lib/esm/transformers/skip-private-property-transformer.d.mts +36 -0
- package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +45 -0
- package/dist/lib/esm/transformers/transformer.d.mts +70 -0
- package/dist/lib/esm/transformers/transformer.mjs +88 -0
- package/dist/lib/esm/transformers/two-way-map-transformer.d.mts +42 -0
- package/dist/lib/esm/transformers/two-way-map-transformer.mjs +48 -0
- package/dist/lib/esm/transformers/typed-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/typed-transformer.mjs +12 -0
- package/dist/lib/esm/two-way-map.d.mts +101 -0
- package/dist/lib/esm/two-way-map.mjs +126 -0
- package/dist/lib/esm/type-guards.d.mts +84 -0
- package/dist/lib/esm/type-guards.mjs +41 -0
- package/dist/lib/esm/type.d.mts +122 -0
- package/dist/lib/esm/type.mjs +39 -0
- package/dist/lib/esm/typescript-lib-state.d.mts +56 -0
- package/dist/lib/esm/typescript-lib-state.mjs +40 -0
- package/dist/lib/esm/url.d.mts +74 -0
- package/dist/lib/esm/url.mjs +50 -0
- package/dist/lib/esm/value-provider.d.mts +29 -0
- package/dist/lib/esm/value-provider.mjs +18 -0
- package/dist/lib/esm/value-wrapper.d.mts +47 -0
- package/dist/lib/esm/value-wrapper.mjs +62 -0
- package/package.json +153 -13
- package/transformers/date-transformer/package.json +6 -0
- package/transformers/group-transformer/package.json +6 -0
- package/transformers/index/package.json +6 -0
- package/transformers/map-transformer/package.json +6 -0
- package/transformers/package.json +6 -0
- package/transformers/set-transformer/package.json +6 -0
- package/transformers/skip-private-property-transformer/package.json +6 -0
- package/transformers/transformer/package.json +6 -0
- package/transformers/two-way-map-transformer/package.json +6 -0
- package/transformers/typed-transformer/package.json +6 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (C) 2024-2026 by Michael Naumov
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
1
|
# @mnaoumov/typescript-lib
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Generic TypeScript utilities, usable in any TypeScript project: async helpers, errors, disposables, strings, paths, debug logging, value transformers and DOM helpers.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @mnaoumov/typescript-lib
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Where it fits
|
|
12
|
+
|
|
13
|
+
It is one of five packages that replace [`obsidian-dev-utils`](https://github.com/mnaoumov/obsidian-dev-utils): [`@mnaoumov/typescript-lib`](https://github.com/mnaoumov/typescript-lib), [`@mnaoumov/typescript-test-toolkit`](https://github.com/mnaoumov/typescript-test-toolkit), [`@mnaoumov/typescript-dev-toolkit`](https://github.com/mnaoumov/typescript-dev-toolkit), [`@mnaoumov/obsidian-lib`](https://github.com/mnaoumov/obsidian-lib) and [`@mnaoumov/obsidian-dev-toolkit`](https://github.com/mnaoumov/obsidian-dev-toolkit). It depends on none of the other `@mnaoumov` packages. It moved here from that repository with its history.
|
|
14
|
+
|
|
15
|
+
## License
|
|
16
|
+
|
|
17
|
+
© [Michael Naumov](https://github.com/mnaoumov/)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference path="../library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Fixed typings for the `debug` package.
|
|
6
|
+
*
|
|
7
|
+
* @see {@link https://www.npmjs.com/package/debug} for more information.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export {};
|
|
11
|
+
|
|
12
|
+
declare module 'debug' {
|
|
13
|
+
interface Debug {
|
|
14
|
+
/**
|
|
15
|
+
* Loads the debug configuration from the environment.
|
|
16
|
+
*
|
|
17
|
+
* @returns The loaded debug configuration.
|
|
18
|
+
*/
|
|
19
|
+
load(): null | string;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __export = (target, all) => {
|
|
12
|
+
for (var name in all)
|
|
13
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from))
|
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
19
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var abort_controller_exports = {};
|
|
25
|
+
__export(abort_controller_exports, {
|
|
26
|
+
INFINITE_TIMEOUT: () => INFINITE_TIMEOUT,
|
|
27
|
+
ResettableAbortController: () => ResettableAbortController,
|
|
28
|
+
abortSignalAny: () => abortSignalAny,
|
|
29
|
+
abortSignalNever: () => abortSignalNever,
|
|
30
|
+
abortSignalTimeout: () => abortSignalTimeout,
|
|
31
|
+
getSharedAbortController: () => getSharedAbortController,
|
|
32
|
+
getSharedAbortSignal: () => getSharedAbortSignal,
|
|
33
|
+
onAbort: () => onAbort,
|
|
34
|
+
waitForAbort: () => waitForAbort
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(abort_controller_exports);
|
|
37
|
+
var import_disposable = require('./disposable.cjs');
|
|
38
|
+
var import_function = require('./function.cjs');
|
|
39
|
+
var import_typescript_lib_state = require('./typescript-lib-state.cjs');
|
|
40
|
+
const INFINITE_TIMEOUT = Infinity;
|
|
41
|
+
class ResettableAbortController {
|
|
42
|
+
/**
|
|
43
|
+
* The current abort signal.
|
|
44
|
+
*
|
|
45
|
+
* @returns The {@link AbortSignal} that aborts on the next {@link ResettableAbortController.abort} call.
|
|
46
|
+
*/
|
|
47
|
+
get signal() {
|
|
48
|
+
return this.abortController.signal;
|
|
49
|
+
}
|
|
50
|
+
abortController = new AbortController();
|
|
51
|
+
/**
|
|
52
|
+
* Aborts the current signal and replaces it with a fresh, non-aborted one.
|
|
53
|
+
*
|
|
54
|
+
* @param reason - The reason to abort with. When omitted, the signal is aborted with the native
|
|
55
|
+
* `AbortError` {@link DOMException}, exactly as {@link AbortController.abort} does.
|
|
56
|
+
*/
|
|
57
|
+
abort(reason) {
|
|
58
|
+
this.abortController.abort(reason);
|
|
59
|
+
this.abortController = new AbortController();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function abortSignalAny(...maybeAbortSignals) {
|
|
63
|
+
const abortSignals = maybeAbortSignals.filter((abortSignal) => !!abortSignal);
|
|
64
|
+
if (typeof AbortSignal.any === "function") {
|
|
65
|
+
return AbortSignal.any(abortSignals);
|
|
66
|
+
}
|
|
67
|
+
if (abortSignals.length === 0) {
|
|
68
|
+
return abortSignalNever();
|
|
69
|
+
}
|
|
70
|
+
if (abortSignals.length === 1 && abortSignals[0]) {
|
|
71
|
+
return abortSignals[0];
|
|
72
|
+
}
|
|
73
|
+
const abortController = new AbortController();
|
|
74
|
+
for (const abortSignal of abortSignals) {
|
|
75
|
+
if (abortSignal.aborted) {
|
|
76
|
+
return abortSignal;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const abortHandlerDisposables = Array.from(abortSignals, (abortSignal) => onAbort(abortSignal, handleAbort));
|
|
80
|
+
const combinedAbortHandlerDisposable = new import_disposable.CombineDisposable({ disposables: abortHandlerDisposables });
|
|
81
|
+
return abortController.signal;
|
|
82
|
+
function handleAbort(abortSignal) {
|
|
83
|
+
combinedAbortHandlerDisposable.dispose();
|
|
84
|
+
abortController.abort(abortSignal.reason);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function abortSignalNever() {
|
|
88
|
+
return new AbortController().signal;
|
|
89
|
+
}
|
|
90
|
+
function abortSignalTimeout(timeoutInMilliseconds) {
|
|
91
|
+
if (timeoutInMilliseconds === INFINITE_TIMEOUT) {
|
|
92
|
+
return abortSignalNever();
|
|
93
|
+
}
|
|
94
|
+
const abortController = new AbortController();
|
|
95
|
+
globalThis.setTimeout(() => {
|
|
96
|
+
abortController.abort(new DOMException(`Timed out in ${String(timeoutInMilliseconds)} milliseconds`, "TimeoutError"));
|
|
97
|
+
}, timeoutInMilliseconds);
|
|
98
|
+
return abortController.signal;
|
|
99
|
+
}
|
|
100
|
+
function getSharedAbortController() {
|
|
101
|
+
return (0, import_typescript_lib_state.getTypescriptLibState)("sharedAbortController", new ResettableAbortController()).value;
|
|
102
|
+
}
|
|
103
|
+
function getSharedAbortSignal() {
|
|
104
|
+
return getSharedAbortController().signal;
|
|
105
|
+
}
|
|
106
|
+
function onAbort(abortSignal, callback) {
|
|
107
|
+
if (abortSignal.aborted) {
|
|
108
|
+
callback(abortSignal);
|
|
109
|
+
return new import_disposable.CallbackDisposable({ callback: import_function.noop });
|
|
110
|
+
}
|
|
111
|
+
abortSignal.addEventListener("abort", wrappedCallback, { once: true });
|
|
112
|
+
return new import_disposable.CallbackDisposable({
|
|
113
|
+
callback: () => {
|
|
114
|
+
abortSignal.removeEventListener("abort", wrappedCallback);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
function wrappedCallback($event) {
|
|
118
|
+
callback($event.target);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function waitForAbort(abortSignal, shouldRejectOnAbort) {
|
|
122
|
+
return new Promise((resolve, reject) => {
|
|
123
|
+
onAbort(abortSignal, () => {
|
|
124
|
+
if (shouldRejectOnAbort) {
|
|
125
|
+
reject(abortSignal.reason);
|
|
126
|
+
} else {
|
|
127
|
+
resolve(abortSignal.reason);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
133
|
+
0 && (module.exports = {
|
|
134
|
+
INFINITE_TIMEOUT,
|
|
135
|
+
ResettableAbortController,
|
|
136
|
+
abortSignalAny,
|
|
137
|
+
abortSignalNever,
|
|
138
|
+
abortSignalTimeout,
|
|
139
|
+
getSharedAbortController,
|
|
140
|
+
getSharedAbortSignal,
|
|
141
|
+
onAbort,
|
|
142
|
+
waitForAbort
|
|
143
|
+
});
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Fib3J0LWNvbnRyb2xsZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBYm9ydENvbnRyb2xsZXIgdXRpbGl0aWVzLlxuICovXG5cbmltcG9ydCB7XG4gIENhbGxiYWNrRGlzcG9zYWJsZSxcbiAgQ29tYmluZURpc3Bvc2FibGVcbn0gZnJvbSAnLi9kaXNwb3NhYmxlLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGdldFR5cGVzY3JpcHRMaWJTdGF0ZSB9IGZyb20gJy4vdHlwZXNjcmlwdC1saWItc3RhdGUudHMnO1xuXG4vKipcbiAqIEEgY29uc3RhbnQgcmVwcmVzZW50aW5nIGFuIGluZmluaXRlIHRpbWVvdXQuXG4gKi9cbmV4cG9ydCBjb25zdCBJTkZJTklURV9USU1FT1VUID0gSW5maW5pdHk7XG5cbi8qKlxuICogQW4ge0BsaW5rIEFib3J0Q29udHJvbGxlcn0gdGhhdCBjYW4gYmUgYWJvcnRlZCBtb3JlIHRoYW4gb25jZS5cbiAqXG4gKiBBIHBsYWluIHtAbGluayBBYm9ydENvbnRyb2xsZXJ9IGlzIHNpbmdsZS11c2U6IG9uY2UgYWJvcnRlZCwgaXRzIHNpZ25hbCBzdGF5cyBhYm9ydGVkIGZvcmV2ZXIsIHNvIGl0XG4gKiBjYW5ub3QgYmFjayBhIGNhbmNlbCBidXR0b24gdGhhdCB0aGUgdXNlciBtYXkgcHJlc3MgbW9yZSB0aGFuIG9uY2UuIFRoaXMgb25lIGFib3J0cyB0aGUgY3VycmVudCBzaWduYWxcbiAqIGFuZCBpbW1lZGlhdGVseSByZXBsYWNlcyBpdCwgc28gdGhlIG5leHQgb3BlcmF0aW9uIHN0YXJ0cyB3aXRoIGEgZnJlc2gsIG5vbi1hYm9ydGVkIHNpZ25hbCB3aGlsZSB0aGUgd29ya1xuICogdGhhdCBjYXB0dXJlZCB0aGUgcHJldmlvdXMgc2lnbmFsIHN0aWxsIG9ic2VydmVzIHRoZSBhYm9ydC5cbiAqXG4gKiBSZWFkIHtAbGluayBSZXNldHRhYmxlQWJvcnRDb250cm9sbGVyLnNpZ25hbH0gYXQgdGhlIHN0YXJ0IG9mIGVhY2ggb3BlcmF0aW9uLiBOZXZlciBjYWNoZSBpdCwgb3IgdGhlXG4gKiBvcGVyYXRpb24gYWZ0ZXIgdGhlIGZpcnN0IGFib3J0IHN0YXJ0cyBhbHJlYWR5IGFib3J0ZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlc2V0dGFibGVBYm9ydENvbnRyb2xsZXIgPSBuZXcgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlcigpO1xuICpcbiAqIGF3YWl0IGxvb3Aoe1xuICogICBhYm9ydFNpZ25hbDogcmVzZXR0YWJsZUFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gKiAgIGJ1aWxkTm90aWNlTWVzc2FnZTogKGZpbGUpID0+IGBQcm9jZXNzaW5nICR7ZmlsZS5wYXRofWAsXG4gKiAgIGl0ZW1zOiBhcHAudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpLFxuICogICBwcm9jZXNzSXRlbTogYXN5bmMgKGZpbGUpID0+IHsgYXdhaXQgcHJvY2Vzc0ZpbGUoZmlsZSk7IH1cbiAqIH0pO1xuICpcbiAqIC8vIEZyb20gYSBjYW5jZWwgYnV0dG9uLCBhIGNvbW1hbmQsIG9yIHRoZSBkZXZ0b29scyBjb25zb2xlLlxuICogcmVzZXR0YWJsZUFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgZ2V0U2hhcmVkQWJvcnRDb250cm9sbGVyfSBmb3IgdGhlIGFwcC13aWRlIGluc3RhbmNlLlxuICovXG5leHBvcnQgY2xhc3MgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlciB7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBhYm9ydCBzaWduYWwuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB7QGxpbmsgQWJvcnRTaWduYWx9IHRoYXQgYWJvcnRzIG9uIHRoZSBuZXh0IHtAbGluayBSZXNldHRhYmxlQWJvcnRDb250cm9sbGVyLmFib3J0fSBjYWxsLlxuICAgKi9cbiAgcHVibGljIGdldCBzaWduYWwoKTogQWJvcnRTaWduYWwge1xuICAgIHJldHVybiB0aGlzLmFib3J0Q29udHJvbGxlci5zaWduYWw7XG4gIH1cblxuICBwcml2YXRlIGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAvKipcbiAgICogQWJvcnRzIHRoZSBjdXJyZW50IHNpZ25hbCBhbmQgcmVwbGFjZXMgaXQgd2l0aCBhIGZyZXNoLCBub24tYWJvcnRlZCBvbmUuXG4gICAqXG4gICAqIEBwYXJhbSByZWFzb24gLSBUaGUgcmVhc29uIHRvIGFib3J0IHdpdGguIFdoZW4gb21pdHRlZCwgdGhlIHNpZ25hbCBpcyBhYm9ydGVkIHdpdGggdGhlIG5hdGl2ZVxuICAgKiBgQWJvcnRFcnJvcmAge0BsaW5rIERPTUV4Y2VwdGlvbn0sIGV4YWN0bHkgYXMge0BsaW5rIEFib3J0Q29udHJvbGxlci5hYm9ydH0gZG9lcy5cbiAgICovXG4gIHB1YmxpYyBhYm9ydChyZWFzb24/OiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5hYm9ydENvbnRyb2xsZXIuYWJvcnQocmVhc29uKTtcbiAgICB0aGlzLmFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGFib3J0IHNpZ25hbCB0aGF0IGFib3J0cyB3aGVuIGFueSBvZiB0aGUgZ2l2ZW4gYWJvcnQgc2lnbmFscyBhYm9ydC5cbiAqXG4gKiBAcGFyYW0gbWF5YmVBYm9ydFNpZ25hbHMgLSBUaGUgYWJvcnQgc2lnbmFscyB0byBhYm9ydCB3aGVuIGFueSBvZiB0aGVtIGFib3J0LlxuICogQHJldHVybnMgVGhlIGFib3J0IHNpZ25hbCB0aGF0IGFib3J0cyB3aGVuIGFueSBvZiB0aGUgZ2l2ZW4gYWJvcnQgc2lnbmFscyBhYm9ydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFib3J0U2lnbmFsQW55KC4uLm1heWJlQWJvcnRTaWduYWxzOiAoQWJvcnRTaWduYWwgfCB1bmRlZmluZWQpW10pOiBBYm9ydFNpZ25hbCB7XG4gIGNvbnN0IGFib3J0U2lnbmFscyA9IG1heWJlQWJvcnRTaWduYWxzLmZpbHRlcigoYWJvcnRTaWduYWwpID0+ICEhYWJvcnRTaWduYWwpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gYEFib3J0U2lnbmFsLmFueWAgaXMgZmVhdHVyZS1kZXRlY3RlZCBoZXJlIHdpdGggYSBtYW51YWwgZmFsbGJhY2sgYmVsb3csIHNvIGl0IGlzIG5vdCByZXF1aXJlZCBvbiBvbGRlciBPYnNpZGlhbi9FbGVjdHJvbiAoQ2hyb21pdW0pIHZlcnNpb25zIHRoYXQgbGFjayBpdC5cbiAgaWYgKHR5cGVvZiBBYm9ydFNpZ25hbC5hbnkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbi9uby11bnN1cHBvcnRlZC1mZWF0dXJlcy9ub2RlLWJ1aWx0aW5zIC0tIGBBYm9ydFNpZ25hbC5hbnlgIGlzIGZlYXR1cmUtZGV0ZWN0ZWQgYnkgdGhlIGd1YXJkIGFib3ZlIHdpdGggYSBtYW51YWwgZmFsbGJhY2sgYmVsb3csIHNvIGl0IGlzIG5vdCByZXF1aXJlZCBvbiBvbGRlciBPYnNpZGlhbi9FbGVjdHJvbiAoQ2hyb21pdW0pIHZlcnNpb25zIHRoYXQgbGFjayBpdC5cbiAgICByZXR1cm4gQWJvcnRTaWduYWwuYW55KGFib3J0U2lnbmFscyk7XG4gIH1cblxuICBpZiAoYWJvcnRTaWduYWxzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBhYm9ydFNpZ25hbE5ldmVyKCk7XG4gIH1cblxuICBpZiAoYWJvcnRTaWduYWxzLmxlbmd0aCA9PT0gMSAmJiBhYm9ydFNpZ25hbHNbMF0pIHtcbiAgICByZXR1cm4gYWJvcnRTaWduYWxzWzBdO1xuICB9XG5cbiAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gIGZvciAoY29uc3QgYWJvcnRTaWduYWwgb2YgYWJvcnRTaWduYWxzKSB7XG4gICAgaWYgKGFib3J0U2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIHJldHVybiBhYm9ydFNpZ25hbDtcbiAgICB9XG4gIH1cblxuICBjb25zdCBhYm9ydEhhbmRsZXJEaXNwb3NhYmxlczogRGlzcG9zYWJsZVtdID0gQXJyYXkuZnJvbShhYm9ydFNpZ25hbHMsIChhYm9ydFNpZ25hbCkgPT4gb25BYm9ydChhYm9ydFNpZ25hbCwgaGFuZGxlQWJvcnQpKTtcblxuICBjb25zdCBjb21iaW5lZEFib3J0SGFuZGxlckRpc3Bvc2FibGUgPSBuZXcgQ29tYmluZURpc3Bvc2FibGUoeyBkaXNwb3NhYmxlczogYWJvcnRIYW5kbGVyRGlzcG9zYWJsZXMgfSk7XG5cbiAgcmV0dXJuIGFib3J0Q29udHJvbGxlci5zaWduYWw7XG5cbiAgZnVuY3Rpb24gaGFuZGxlQWJvcnQoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKTogdm9pZCB7XG4gICAgY29tYmluZWRBYm9ydEhhbmRsZXJEaXNwb3NhYmxlLmRpc3Bvc2UoKTtcbiAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoYWJvcnRTaWduYWwucmVhc29uKTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGFib3J0IHNpZ25hbCB0aGF0IG5ldmVyIGFib3J0cy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYWJvcnQgc2lnbmFsIHRoYXQgbmV2ZXIgYWJvcnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWJvcnRTaWduYWxOZXZlcigpOiBBYm9ydFNpZ25hbCB7XG4gIHJldHVybiBuZXcgQWJvcnRDb250cm9sbGVyKCkuc2lnbmFsO1xufVxuXG4vKipcbiAqIEFuIGFib3J0IHNpZ25hbCB0aGF0IGFib3J0cyBhZnRlciBhIHRpbWVvdXQuXG4gKlxuICogQHBhcmFtIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyAtIFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwgdGhhdCBhYm9ydHMgYWZ0ZXIgYSB0aW1lb3V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWJvcnRTaWduYWxUaW1lb3V0KHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyKTogQWJvcnRTaWduYWwge1xuICBpZiAodGltZW91dEluTWlsbGlzZWNvbmRzID09PSBJTkZJTklURV9USU1FT1VUKSB7XG4gICAgcmV0dXJuIGFib3J0U2lnbmFsTmV2ZXIoKTtcbiAgfVxuXG4gIC8vIEludGVudGlvbmFsbHkgTk9UIHRoZSBuYXRpdmUgYEFib3J0U2lnbmFsLnRpbWVvdXRgLCB3aG9zZSBpbnRlcm5hbCB0aW1lciBjYW5ub3QgYmUgYWR2YW5jZWQgYnlcbiAgLy8gYHZpLnVzZUZha2VUaW1lcnMoKWAsIHNvIGBzbGVlcGAgKGl0cyBzb2xlIGNvbnN1bWVyKSB3b3VsZCBiZSB1bmNvbnRyb2xsYWJsZSBpbiB0ZXN0cy4gQnVpbGRpbmdcbiAgLy8gYHNsZWVwYCdzIHNpZ25hbCBvZmYgYGdsb2JhbFRoaXMuc2V0VGltZW91dGAga2VlcHMgaXQgZmFrZS10aW1lciBjb250cm9sbGFibGUgKGxpa2VcbiAgLy8gYHNldFRpbWVvdXRBc3luY2ApIGFuZCBhbHNvIHdvcmtzIGluIGEgTm9kZSBlbnZpcm9ubWVudCB3aGVyZSBgd2luZG93YCBpcyB1bmRlZmluZWQsIHNpbmNlXG4gIC8vIGBnbG9iYWxUaGlzYCBleGlzdHMgaW4gTm9kZSB0b28uIENvbnN1bWVyIGludGVncmF0aW9uLXRlc3QgcHJvamVjdHMgcnVuIHZpdGVzdCB1bmRlclxuICAvLyBgZW52aXJvbm1lbnQ6ICdub2RlJ2AsIGluIHdoaWNoIGEgYHdpbmRvd2AtYmFzZWQgcHJpbWl0aXZlIHRocm93cyBhIGBSZWZlcmVuY2VFcnJvcmAuXG4gIC8vIFRoZSBhYm9ydCByZWFzb24gbWlycm9ycyB0aGUgbmF0aXZlIG9uZSAtLSBhIGBET01FeGNlcHRpb25gIG5hbWVkIGBUaW1lb3V0RXJyb3JgIC0tIG1hdGNoaW5nXG4gIC8vIGBBYm9ydFNpZ25hbC50aW1lb3V0YCBmb3IgYHJlYXNvbi5uYW1lYCBjaGVja3MuXG4gIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICBnbG9iYWxUaGlzLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gYERPTUV4Y2VwdGlvbmAgaXMgYSBET00gZ2xvYmFsIGFsd2F5cyBwcmVzZW50IGluIHRoZSBPYnNpZGlhbi9FbGVjdHJvbiAoQ2hyb21pdW0pIHJ1bnRpbWUgdGhpcyBjb2RlIHRhcmdldHMsIGFuZCBpcyBhbHNvIGEgTm9kZSBnbG9iYWwgZnJvbSBOb2RlIDE3IG9ud2FyZC5cbiAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQobmV3IERPTUV4Y2VwdGlvbihgVGltZWQgb3V0IGluICR7U3RyaW5nKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyl9IG1pbGxpc2Vjb25kc2AsICdUaW1lb3V0RXJyb3InKSk7XG4gIH0sIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyk7XG4gIHJldHVybiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsO1xufVxuXG4vKipcbiAqIFRoZSBhcHAtd2lkZSBzaGFyZWQge0BsaW5rIFJlc2V0dGFibGVBYm9ydENvbnRyb2xsZXJ9LlxuICpcbiAqIEV2ZXJ5IHBsdWdpbiBidWlsdCBvbiB0aGlzIGxpYnJhcnkgc2hhcmVzIG9uZSBpbnN0YW5jZSwgc28gYSBzaW5nbGUge0BsaW5rIFJlc2V0dGFibGVBYm9ydENvbnRyb2xsZXIuYWJvcnR9XG4gKiBjYWxsIGNhbmNlbHMgd2hhdGV2ZXIgbG9uZy1ydW5uaW5nIG9wZXJhdGlvbiBpcyBpbiBmbGlnaHQsIHdoaWNoZXZlciBwbHVnaW4gc3RhcnRlZCBpdC4gQSBwbHVnaW4gdGhhdCBuZWVkc1xuICogYSBjYW5jZWwgYnV0dG9uIG9mIGl0cyBvd24gc2NvcGUgY29uc3RydWN0cyBpdHMgb3duIHtAbGluayBSZXNldHRhYmxlQWJvcnRDb250cm9sbGVyfSBpbnN0ZWFkLlxuICpcbiAqIEl0IGxpdmVzIGluIHRoZSBzaGFyZWQgc3RhdGUsIHNvIGl0IGlzIHJlYWNoYWJsZSBmcm9tIHRoZSBkZXZ0b29scyBjb25zb2xlOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIGdsb2JhbFRoaXNbU3ltYm9sLmZvcignQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0YXRlJyldLnZhbHVlcy5zaGFyZWRBYm9ydENvbnRyb2xsZXIudmFsdWUuYWJvcnQoKTtcbiAqIGBgYFxuICpcbiAqIEluIGFuIE9ic2lkaWFuIHBsdWdpbiB0aGUgc2FtZSBpbnN0YW5jZSBpcyBhbHNvIHJlYWNoYWJsZSBhcyBgX19vYnNpZGlhbkRldlV0aWxzLnNoYXJlZEFib3J0Q29udHJvbGxlci52YWx1ZWAuXG4gKlxuICogQHJldHVybnMgVGhlIHNoYXJlZCB7QGxpbmsgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlcn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaGFyZWRBYm9ydENvbnRyb2xsZXIoKTogUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlciB7XG4gIHJldHVybiBnZXRUeXBlc2NyaXB0TGliU3RhdGUoJ3NoYXJlZEFib3J0Q29udHJvbGxlcicsIG5ldyBSZXNldHRhYmxlQWJvcnRDb250cm9sbGVyKCkpLnZhbHVlO1xufVxuXG4vKipcbiAqIFRoZSBzaWduYWwgb2YgdGhlIGFwcC13aWRlIHNoYXJlZCB7QGxpbmsgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlcn0uXG4gKlxuICogQ2FsbCBpdCBhdCB0aGUgc3RhcnQgb2YgZWFjaCBvcGVyYXRpb24uIE5ldmVyIGNhY2hlIGl0LCBvciB0aGUgb3BlcmF0aW9uIGFmdGVyIHRoZSBmaXJzdCBhYm9ydCBzdGFydHNcbiAqIGFscmVhZHkgYWJvcnRlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgbG9vcCh7XG4gKiAgIGFib3J0U2lnbmFsOiBnZXRTaGFyZWRBYm9ydFNpZ25hbCgpLFxuICogICBidWlsZE5vdGljZU1lc3NhZ2U6IChmaWxlKSA9PiBgUHJvY2Vzc2luZyAke2ZpbGUucGF0aH1gLFxuICogICBpdGVtczogYXBwLnZhdWx0LmdldE1hcmtkb3duRmlsZXMoKSxcbiAqICAgcHJvY2Vzc0l0ZW06IGFzeW5jIChmaWxlKSA9PiB7IGF3YWl0IHByb2Nlc3NGaWxlKGZpbGUpOyB9XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIFRoZSB7QGxpbmsgQWJvcnRTaWduYWx9IG9mIHRoZSBzaGFyZWQge0BsaW5rIFJlc2V0dGFibGVBYm9ydENvbnRyb2xsZXJ9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2hhcmVkQWJvcnRTaWduYWwoKTogQWJvcnRTaWduYWwge1xuICByZXR1cm4gZ2V0U2hhcmVkQWJvcnRDb250cm9sbGVyKCkuc2lnbmFsO1xufVxuXG4vKipcbiAqIEFkZHMgYW4gYWJvcnQgbGlzdGVuZXIgdG8gYW4gYWJvcnQgc2lnbmFsIGFuZCBjYWxscyB0aGUgY2FsbGJhY2sgaWYgdGhlIGFib3J0IHNpZ25hbCBpcyBhbHJlYWR5IGFib3J0ZWQuXG4gKlxuICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byBhZGQgdGhlIGxpc3RlbmVyIHRvLlxuICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgYWJvcnQgc2lnbmFsIGFib3J0cy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIERpc3Bvc2FibGV9IHRoYXQgcmVtb3ZlcyB0aGUgYWJvcnQgbGlzdGVuZXIgd2hlbiBkaXNwb3NlZCwgZm9yIHVzZSB3aXRoIGB1c2luZ2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbkFib3J0KGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCwgY2FsbGJhY2s6IChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpID0+IHZvaWQpOiBEaXNwb3NhYmxlIHtcbiAgaWYgKGFib3J0U2lnbmFsLmFib3J0ZWQpIHtcbiAgICBjYWxsYmFjayhhYm9ydFNpZ25hbCk7XG4gICAgcmV0dXJuIG5ldyBDYWxsYmFja0Rpc3Bvc2FibGUoeyBjYWxsYmFjazogbm9vcCB9KTtcbiAgfVxuXG4gIGFib3J0U2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgd3JhcHBlZENhbGxiYWNrLCB7IG9uY2U6IHRydWUgfSk7XG4gIHJldHVybiBuZXcgQ2FsbGJhY2tEaXNwb3NhYmxlKHtcbiAgICBjYWxsYmFjazogKCk6IHZvaWQgPT4ge1xuICAgICAgYWJvcnRTaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCB3cmFwcGVkQ2FsbGJhY2spO1xuICAgIH1cbiAgfSk7XG5cbiAgZnVuY3Rpb24gd3JhcHBlZENhbGxiYWNrKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjYWxsYmFjaygkZXZlbnQudGFyZ2V0IGFzIEFib3J0U2lnbmFsKTtcbiAgfVxufVxuXG4vKipcbiAqIFdhaXRzIGZvciBhbiBhYm9ydCBzaWduYWwgdG8gYWJvcnQgYW5kIHJlc29sdmVzIHdpdGggaXRzIHJlYXNvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBFeHBlY3RlZCB0eXBlIG9mIGBhYm9ydFNpZ25hbC5yZWFzb25gLlxuICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byB3YWl0IGZvci5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgcmVhc29uIG9mIHRoZSBhYm9ydCBzaWduYWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3YWl0Rm9yQWJvcnQ8VCA9IHVua25vd24+KGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2U8VD47XG4vKipcbiAqIFdhaXRzIGZvciBhbiBhYm9ydCBzaWduYWwgdG8gYWJvcnQgYW5kIHJlamVjdHMgd2l0aCBpdHMgcmVhc29uLlxuICpcbiAqIEBwYXJhbSBhYm9ydFNpZ25hbCAtIFRoZSBhYm9ydCBzaWduYWwgdG8gd2FpdCBmb3IuXG4gKiBAcGFyYW0gc2hvdWxkUmVqZWN0T25BYm9ydCAtIFdoZXRoZXIgdG8gcmVqZWN0IHRoZSBwcm9taXNlIGlmIHRoZSBhYm9ydCBzaWduYWwgaXMgYWJvcnRlZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVqZWN0cyB3aXRoIHRoZSByZWFzb24gb2YgdGhlIGFib3J0IHNpZ25hbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3JBYm9ydChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwsIHNob3VsZFJlamVjdE9uQWJvcnQ6IHRydWUpOiBQcm9taXNlPG5ldmVyPjtcbi8qKlxuICogV2FpdHMgZm9yIGFuIGFib3J0IHNpZ25hbCB0byBhYm9ydCBhbmQgcmVzb2x2ZXMgd2l0aCBpdHMgcmVhc29uLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIEV4cGVjdGVkIHR5cGUgb2YgYGFib3J0U2lnbmFsLnJlYXNvbmAuXG4gKiBAcGFyYW0gYWJvcnRTaWduYWwgLSBUaGUgYWJvcnQgc2lnbmFsIHRvIHdhaXQgZm9yLlxuICogQHBhcmFtIHNob3VsZFJlamVjdE9uQWJvcnQgLSBXaGV0aGVyIHRvIHJlamVjdCB0aGUgcHJvbWlzZSBpZiB0aGUgYWJvcnQgc2lnbmFsIGlzIGFib3J0ZWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHJlYXNvbiBvZiB0aGUgYWJvcnQgc2lnbmFsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2FpdEZvckFib3J0PFQgPSB1bmtub3duPihhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwsIHNob3VsZFJlamVjdE9uQWJvcnQ/OiBib29sZWFuKTogUHJvbWlzZTxUPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxUPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgb25BYm9ydChhYm9ydFNpZ25hbCwgKCkgPT4ge1xuICAgICAgaWYgKHNob3VsZFJlamVjdE9uQWJvcnQpIHtcbiAgICAgICAgcmVqZWN0KGFib3J0U2lnbmFsLnJlYXNvbiBhcyBFcnJvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKGFib3J0U2lnbmFsLnJlYXNvbiBhcyBUKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsd0JBR087QUFDUCxzQkFBcUI7QUFDckIsa0NBQXNDO0FBSy9CLE1BQU0sbUJBQW1CO0FBOEJ6QixNQUFNLDBCQUEwQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1yQyxJQUFXLFNBQXNCO0FBQy9CLFdBQU8sS0FBSyxnQkFBZ0I7QUFBQSxFQUM5QjtBQUFBLEVBRVEsa0JBQWtCLElBQUksZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRdkMsTUFBTSxRQUF3QjtBQUNuQyxTQUFLLGdCQUFnQixNQUFNLE1BQU07QUFDakMsU0FBSyxrQkFBa0IsSUFBSSxnQkFBZ0I7QUFBQSxFQUM3QztBQUNGO0FBUU8sU0FBUyxrQkFBa0IsbUJBQTZEO0FBQzdGLFFBQU0sZUFBZSxrQkFBa0IsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsV0FBVztBQUc1RSxNQUFJLE9BQU8sWUFBWSxRQUFRLFlBQVk7QUFFekMsV0FBTyxZQUFZLElBQUksWUFBWTtBQUFBLEVBQ3JDO0FBRUEsTUFBSSxhQUFhLFdBQVcsR0FBRztBQUM3QixXQUFPLGlCQUFpQjtBQUFBLEVBQzFCO0FBRUEsTUFBSSxhQUFhLFdBQVcsS0FBSyxhQUFhLENBQUMsR0FBRztBQUNoRCxXQUFPLGFBQWEsQ0FBQztBQUFBLEVBQ3ZCO0FBRUEsUUFBTSxrQkFBa0IsSUFBSSxnQkFBZ0I7QUFFNUMsYUFBVyxlQUFlLGNBQWM7QUFDdEMsUUFBSSxZQUFZLFNBQVM7QUFDdkIsYUFBTztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBRUEsUUFBTSwwQkFBd0MsTUFBTSxLQUFLLGNBQWMsQ0FBQyxnQkFBZ0IsUUFBUSxhQUFhLFdBQVcsQ0FBQztBQUV6SCxRQUFNLGlDQUFpQyxJQUFJLG9DQUFrQixFQUFFLGFBQWEsd0JBQXdCLENBQUM7QUFFckcsU0FBTyxnQkFBZ0I7QUFFdkIsV0FBUyxZQUFZLGFBQWdDO0FBQ25ELG1DQUErQixRQUFRO0FBQ3ZDLG9CQUFnQixNQUFNLFlBQVksTUFBTTtBQUFBLEVBQzFDO0FBQ0Y7QUFPTyxTQUFTLG1CQUFnQztBQUM5QyxTQUFPLElBQUksZ0JBQWdCLEVBQUU7QUFDL0I7QUFRTyxTQUFTLG1CQUFtQix1QkFBNEM7QUFDN0UsTUFBSSwwQkFBMEIsa0JBQWtCO0FBQzlDLFdBQU8saUJBQWlCO0FBQUEsRUFDMUI7QUFVQSxRQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtBQUU1QyxhQUFXLFdBQVcsTUFBTTtBQUUxQixvQkFBZ0IsTUFBTSxJQUFJLGFBQWEsZ0JBQWdCLE9BQU8scUJBQXFCLENBQUMsaUJBQWlCLGNBQWMsQ0FBQztBQUFBLEVBQ3RILEdBQUcscUJBQXFCO0FBQ3hCLFNBQU8sZ0JBQWdCO0FBQ3pCO0FBbUJPLFNBQVMsMkJBQXNEO0FBQ3BFLGFBQU8sbURBQXNCLHlCQUF5QixJQUFJLDBCQUEwQixDQUFDLEVBQUU7QUFDekY7QUFvQk8sU0FBUyx1QkFBb0M7QUFDbEQsU0FBTyx5QkFBeUIsRUFBRTtBQUNwQztBQVNPLFNBQVMsUUFBUSxhQUEwQixVQUEwRDtBQUMxRyxNQUFJLFlBQVksU0FBUztBQUN2QixhQUFTLFdBQVc7QUFDcEIsV0FBTyxJQUFJLHFDQUFtQixFQUFFLFVBQVUscUJBQUssQ0FBQztBQUFBLEVBQ2xEO0FBRUEsY0FBWSxpQkFBaUIsU0FBUyxpQkFBaUIsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNyRSxTQUFPLElBQUkscUNBQW1CO0FBQUEsSUFDNUIsVUFBVSxNQUFZO0FBQ3BCLGtCQUFZLG9CQUFvQixTQUFTLGVBQWU7QUFBQSxJQUMxRDtBQUFBLEVBQ0YsQ0FBQztBQUVELFdBQVMsZ0JBQWdCLFFBQXFCO0FBQzVDLGFBQVMsT0FBTyxNQUFxQjtBQUFBLEVBQ3ZDO0FBQ0Y7QUEwQk8sU0FBUyxhQUEwQixhQUEwQixxQkFBMkM7QUFDN0csU0FBTyxJQUFJLFFBQVcsQ0FBQyxTQUFTLFdBQVc7QUFDekMsWUFBUSxhQUFhLE1BQU07QUFDekIsVUFBSSxxQkFBcUI7QUFDdkIsZUFBTyxZQUFZLE1BQWU7QUFBQSxNQUNwQyxPQUFPO0FBQ0wsZ0JBQVEsWUFBWSxNQUFXO0FBQUEsTUFDakM7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNILENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/// <reference lib="dom" />
|
|
3
|
+
/**
|
|
4
|
+
* @file
|
|
5
|
+
*
|
|
6
|
+
* AbortController utilities.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* A constant representing an infinite timeout.
|
|
10
|
+
*/
|
|
11
|
+
export declare const INFINITE_TIMEOUT: number;
|
|
12
|
+
/**
|
|
13
|
+
* An {@link AbortController} that can be aborted more than once.
|
|
14
|
+
*
|
|
15
|
+
* A plain {@link AbortController} is single-use: once aborted, its signal stays aborted forever, so it
|
|
16
|
+
* cannot back a cancel button that the user may press more than once. This one aborts the current signal
|
|
17
|
+
* and immediately replaces it, so the next operation starts with a fresh, non-aborted signal while the work
|
|
18
|
+
* that captured the previous signal still observes the abort.
|
|
19
|
+
*
|
|
20
|
+
* Read {@link ResettableAbortController.signal} at the start of each operation. Never cache it, or the
|
|
21
|
+
* operation after the first abort starts already aborted.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const resettableAbortController = new ResettableAbortController();
|
|
26
|
+
*
|
|
27
|
+
* await loop({
|
|
28
|
+
* abortSignal: resettableAbortController.signal,
|
|
29
|
+
* buildNoticeMessage: (file) => `Processing ${file.path}`,
|
|
30
|
+
* items: app.vault.getMarkdownFiles(),
|
|
31
|
+
* processItem: async (file) => { await processFile(file); }
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* // From a cancel button, a command, or the devtools console.
|
|
35
|
+
* resettableAbortController.abort();
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @see {@link getSharedAbortController} for the app-wide instance.
|
|
39
|
+
*/
|
|
40
|
+
export declare class ResettableAbortController {
|
|
41
|
+
/**
|
|
42
|
+
* The current abort signal.
|
|
43
|
+
*
|
|
44
|
+
* @returns The {@link AbortSignal} that aborts on the next {@link ResettableAbortController.abort} call.
|
|
45
|
+
*/
|
|
46
|
+
get signal(): AbortSignal;
|
|
47
|
+
private abortController;
|
|
48
|
+
/**
|
|
49
|
+
* Aborts the current signal and replaces it with a fresh, non-aborted one.
|
|
50
|
+
*
|
|
51
|
+
* @param reason - The reason to abort with. When omitted, the signal is aborted with the native
|
|
52
|
+
* `AbortError` {@link DOMException}, exactly as {@link AbortController.abort} does.
|
|
53
|
+
*/
|
|
54
|
+
abort(reason?: unknown): void;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* An abort signal that aborts when any of the given abort signals abort.
|
|
58
|
+
*
|
|
59
|
+
* @param maybeAbortSignals - The abort signals to abort when any of them abort.
|
|
60
|
+
* @returns The abort signal that aborts when any of the given abort signals abort.
|
|
61
|
+
*/
|
|
62
|
+
export declare function abortSignalAny(...maybeAbortSignals: (AbortSignal | undefined)[]): AbortSignal;
|
|
63
|
+
/**
|
|
64
|
+
* An abort signal that never aborts.
|
|
65
|
+
*
|
|
66
|
+
* @returns The abort signal that never aborts.
|
|
67
|
+
*/
|
|
68
|
+
export declare function abortSignalNever(): AbortSignal;
|
|
69
|
+
/**
|
|
70
|
+
* An abort signal that aborts after a timeout.
|
|
71
|
+
*
|
|
72
|
+
* @param timeoutInMilliseconds - The timeout in milliseconds.
|
|
73
|
+
* @returns The abort signal that aborts after a timeout.
|
|
74
|
+
*/
|
|
75
|
+
export declare function abortSignalTimeout(timeoutInMilliseconds: number): AbortSignal;
|
|
76
|
+
/**
|
|
77
|
+
* The app-wide shared {@link ResettableAbortController}.
|
|
78
|
+
*
|
|
79
|
+
* Every plugin built on this library shares one instance, so a single {@link ResettableAbortController.abort}
|
|
80
|
+
* call cancels whatever long-running operation is in flight, whichever plugin started it. A plugin that needs
|
|
81
|
+
* a cancel button of its own scope constructs its own {@link ResettableAbortController} instead.
|
|
82
|
+
*
|
|
83
|
+
* It lives in the shared state, so it is reachable from the devtools console:
|
|
84
|
+
*
|
|
85
|
+
* ```javascript
|
|
86
|
+
* globalThis[Symbol.for('@mnaoumov/typescript-lib/state')].values.sharedAbortController.value.abort();
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* In an Obsidian plugin the same instance is also reachable as `__obsidianDevUtils.sharedAbortController.value`.
|
|
90
|
+
*
|
|
91
|
+
* @returns The shared {@link ResettableAbortController}.
|
|
92
|
+
*/
|
|
93
|
+
export declare function getSharedAbortController(): ResettableAbortController;
|
|
94
|
+
/**
|
|
95
|
+
* The signal of the app-wide shared {@link ResettableAbortController}.
|
|
96
|
+
*
|
|
97
|
+
* Call it at the start of each operation. Never cache it, or the operation after the first abort starts
|
|
98
|
+
* already aborted.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* await loop({
|
|
103
|
+
* abortSignal: getSharedAbortSignal(),
|
|
104
|
+
* buildNoticeMessage: (file) => `Processing ${file.path}`,
|
|
105
|
+
* items: app.vault.getMarkdownFiles(),
|
|
106
|
+
* processItem: async (file) => { await processFile(file); }
|
|
107
|
+
* });
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* @returns The {@link AbortSignal} of the shared {@link ResettableAbortController}.
|
|
111
|
+
*/
|
|
112
|
+
export declare function getSharedAbortSignal(): AbortSignal;
|
|
113
|
+
/**
|
|
114
|
+
* Adds an abort listener to an abort signal and calls the callback if the abort signal is already aborted.
|
|
115
|
+
*
|
|
116
|
+
* @param abortSignal - The abort signal to add the listener to.
|
|
117
|
+
* @param callback - The callback to call when the abort signal aborts.
|
|
118
|
+
* @returns A {@link Disposable} that removes the abort listener when disposed, for use with `using`.
|
|
119
|
+
*/
|
|
120
|
+
export declare function onAbort(abortSignal: AbortSignal, callback: (abortSignal: AbortSignal) => void): Disposable;
|
|
121
|
+
/**
|
|
122
|
+
* Waits for an abort signal to abort and resolves with its reason.
|
|
123
|
+
*
|
|
124
|
+
* @typeParam T - Expected type of `abortSignal.reason`.
|
|
125
|
+
* @param abortSignal - The abort signal to wait for.
|
|
126
|
+
* @returns A {@link Promise} that resolves with the reason of the abort signal.
|
|
127
|
+
*/
|
|
128
|
+
export declare function waitForAbort<T = unknown>(abortSignal: AbortSignal): Promise<T>;
|
|
129
|
+
/**
|
|
130
|
+
* Waits for an abort signal to abort and rejects with its reason.
|
|
131
|
+
*
|
|
132
|
+
* @param abortSignal - The abort signal to wait for.
|
|
133
|
+
* @param shouldRejectOnAbort - Whether to reject the promise if the abort signal is aborted.
|
|
134
|
+
* @returns A {@link Promise} that rejects with the reason of the abort signal.
|
|
135
|
+
*/
|
|
136
|
+
export declare function waitForAbort(abortSignal: AbortSignal, shouldRejectOnAbort: true): Promise<never>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __export = (target, all) => {
|
|
12
|
+
for (var name in all)
|
|
13
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from))
|
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
19
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var aggregate_error_exports = {};
|
|
25
|
+
__export(aggregate_error_exports, {
|
|
26
|
+
createAggregateError: () => createAggregateError
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(aggregate_error_exports);
|
|
29
|
+
function createAggregateError(errors) {
|
|
30
|
+
return new AggregateError(errors, getAggregateErrorMessage(errors));
|
|
31
|
+
}
|
|
32
|
+
function getAggregateErrorMessage(errors) {
|
|
33
|
+
const [singleError] = errors;
|
|
34
|
+
return errors.length === 1 && singleError instanceof Error && singleError.message !== "" ? singleError.message : `${String(errors.length)} error(s) occurred`;
|
|
35
|
+
}
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 && (module.exports = {
|
|
38
|
+
createAggregateError
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FnZ3JlZ2F0ZS1lcnJvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGEgdXRpbGl0eSBmdW5jdGlvbiBmb3IgYnVpbGRpbmcgYW4gYEFnZ3JlZ2F0ZUVycm9yYCB0aGF0IG5hbWVzIHdoYXQgZmFpbGVkLlxuICovXG5cbi8qKlxuICogQnVpbGRzIGFuIGBBZ2dyZWdhdGVFcnJvcmAgb3ZlciBjb2xsZWN0ZWQgZXJyb3JzLCBnaXZpbmcgaXQgYSBtZXNzYWdlIHRoYXQgbmFtZXMgd2hhdCBmYWlsZWQuXG4gKlxuICogYEFnZ3JlZ2F0ZUVycm9yYCdzIG93biBtZXNzYWdlIGlzIG9wdGlvbmFsLCBhbmQgb21pdHRpbmcgaXQgaXMgbG9zc3kgaW4gYSB3YXkgdGhhdCBvbmx5IHNob3dzIHVwXG4gKiBvdXRzaWRlIHRoaXMgbGlicmFyeS4ge0BsaW5rIGVycm9yIWVycm9yVG9TdHJpbmd9IHdhbGtzIGBlcnJvcnNgIGFuZCBwcmludHMgdGhlIHdob2xlIHRyZWUsIHNvIHRoZVxuICogY29uc29sZSBpcyBmaW5lOyBldmVyeXRoaW5nIHRoYXQgcmVhZHMgYG1lc3NhZ2VgIGlzIG5vdC4gT2JzaWRpYW4ncyBvd24gcGx1Z2luLWxvYWQgZmFpbHVyZSByZXBvcnQsIGFcbiAqIGBOb3RpY2VgIGJ1aWx0IGZyb20gYW4gZXJyb3IsIGFuZCBhIGNvbnN1bWVyJ3MgYHJlamVjdHMudG9UaHJvdyhtZXNzYWdlKWAgYWxsIHNlZSBhbiBlbXB0eSBzdHJpbmcgYW5kXG4gKiByZWFkIGl0IGFzIFwibm90aGluZyB3YXMgdGhyb3duXCIuIE5lc3RpbmcgY29tcG91bmRzIGl0OiBhbiBhZ2dyZWdhdGUgaG9sZGluZyBvbmUgYWdncmVnYXRlIHB1dHMgdHdvIGVtcHR5XG4gKiBsYXllcnMgYWJvdmUgdGhlIG9ubHkgc2VudGVuY2UgdGhhdCBzYXlzIHdoYXQgd2VudCB3cm9uZy5cbiAqXG4gKiBBIHNpbmdsZSBjb2xsZWN0ZWQgZXJyb3IgdGhlcmVmb3JlIGxlbmRzIGl0cyBvd24gbWVzc2FnZSB0byB0aGUgYWdncmVnYXRlLCB3aGljaCBtYWtlcyBhIG9uZS1jYXVzZVxuICogY2hhaW4gcmVhZCBpZGVudGljYWxseSBhdCBldmVyeSBsZXZlbC4gU2V2ZXJhbCBiZWNvbWUgYSBjb3VudCwgd2l0aCB0aGUgZGV0YWlsIG9uZSBsZXZlbCBkb3duIHdoZXJlXG4gKiB7QGxpbmsgZXJyb3IhZXJyb3JUb1N0cmluZ30gYWxyZWFkeSBwcmludHMgaXQuXG4gKlxuICogQHBhcmFtIGVycm9ycyAtIFRoZSBjb2xsZWN0ZWQgZXJyb3JzIHRvIGFnZ3JlZ2F0ZS5cbiAqIEByZXR1cm5zIEFuIGBBZ2dyZWdhdGVFcnJvcmAgaG9sZGluZyBldmVyeSBjb2xsZWN0ZWQgZXJyb3IsIHdpdGggYSBub24tZW1wdHkgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFnZ3JlZ2F0ZUVycm9yKGVycm9yczogcmVhZG9ubHkgdW5rbm93bltdKTogQWdncmVnYXRlRXJyb3Ige1xuICByZXR1cm4gbmV3IEFnZ3JlZ2F0ZUVycm9yKGVycm9ycywgZ2V0QWdncmVnYXRlRXJyb3JNZXNzYWdlKGVycm9ycykpO1xufVxuXG5mdW5jdGlvbiBnZXRBZ2dyZWdhdGVFcnJvck1lc3NhZ2UoZXJyb3JzOiByZWFkb25seSB1bmtub3duW10pOiBzdHJpbmcge1xuICBjb25zdCBbc2luZ2xlRXJyb3JdID0gZXJyb3JzO1xuICAvLyBBIGxvbmUgZmFpbHVyZSBsZW5kcyBpdHMgb3duIG1lc3NhZ2UsIHdoaWNoIGlzIHdoYXQgbWFrZXMgYSBvbmUtY2F1c2UgY2hhaW4gcmVhZCBpZGVudGljYWxseSBhdCBldmVyeVxuICAvLyBsZXZlbCBvZiBuZXN0aW5nLiBBbnl0aGluZyBlbHNlIGlzIGEgY291bnQsIGJlY2F1c2UgcGlja2luZyBvbmUgb2Ygc2V2ZXJhbCBtZXNzYWdlcyB0byBwcm9tb3RlIHdvdWxkXG4gIC8vIGRlc2NyaWJlIHRoZSBmYWlsdXJlIGFzIGlmIHRoZSBvdGhlcnMgaGFkIG5vdCBoYXBwZW5lZC5cbiAgcmV0dXJuIGVycm9ycy5sZW5ndGggPT09IDEgJiYgc2luZ2xlRXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBzaW5nbGVFcnJvci5tZXNzYWdlICE9PSAnJyA/IHNpbmdsZUVycm9yLm1lc3NhZ2UgOiBgJHtTdHJpbmcoZXJyb3JzLmxlbmd0aCl9IGVycm9yKHMpIG9jY3VycmVkYDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVCTyxTQUFTLHFCQUFxQixRQUE0QztBQUMvRSxTQUFPLElBQUksZUFBZSxRQUFRLHlCQUF5QixNQUFNLENBQUM7QUFDcEU7QUFFQSxTQUFTLHlCQUF5QixRQUFvQztBQUNwRSxRQUFNLENBQUMsV0FBVyxJQUFJO0FBSXRCLFNBQU8sT0FBTyxXQUFXLEtBQUssdUJBQXVCLFNBQVMsWUFBWSxZQUFZLEtBQUssWUFBWSxVQUFVLEdBQUcsT0FBTyxPQUFPLE1BQU0sQ0FBQztBQUMzSTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Contains a utility function for building an `AggregateError` that names what failed.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Builds an `AggregateError` over collected errors, giving it a message that names what failed.
|
|
9
|
+
*
|
|
10
|
+
* `AggregateError`'s own message is optional, and omitting it is lossy in a way that only shows up
|
|
11
|
+
* outside this library. {@link error!errorToString} walks `errors` and prints the whole tree, so the
|
|
12
|
+
* console is fine; everything that reads `message` is not. Obsidian's own plugin-load failure report, a
|
|
13
|
+
* `Notice` built from an error, and a consumer's `rejects.toThrow(message)` all see an empty string and
|
|
14
|
+
* read it as "nothing was thrown". Nesting compounds it: an aggregate holding one aggregate puts two empty
|
|
15
|
+
* layers above the only sentence that says what went wrong.
|
|
16
|
+
*
|
|
17
|
+
* A single collected error therefore lends its own message to the aggregate, which makes a one-cause
|
|
18
|
+
* chain read identically at every level. Several become a count, with the detail one level down where
|
|
19
|
+
* {@link error!errorToString} already prints it.
|
|
20
|
+
*
|
|
21
|
+
* @param errors - The collected errors to aggregate.
|
|
22
|
+
* @returns An `AggregateError` holding every collected error, with a non-empty message.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createAggregateError(errors: readonly unknown[]): AggregateError;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __export = (target, all) => {
|
|
12
|
+
for (var name in all)
|
|
13
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from))
|
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
19
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var array_buffer_exports = {};
|
|
25
|
+
__export(array_buffer_exports, {
|
|
26
|
+
toArrayBuffer: () => toArrayBuffer
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(array_buffer_exports);
|
|
29
|
+
function toArrayBuffer(data) {
|
|
30
|
+
const buffer = new ArrayBuffer(data.byteLength);
|
|
31
|
+
new Uint8Array(buffer).set(data);
|
|
32
|
+
return buffer;
|
|
33
|
+
}
|
|
34
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
35
|
+
0 && (module.exports = {
|
|
36
|
+
toArrayBuffer
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FycmF5LWJ1ZmZlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB7QGxpbmsgQXJyYXlCdWZmZXJ9IG9iamVjdHMuXG4gKi9cblxuLyoqXG4gKiBDb3BpZXMgYnl0ZXMgaW50byBhIGZyZXNoIHtAbGluayBBcnJheUJ1ZmZlcn0uXG4gKlxuICogUmVhY2hpbmcgZm9yIGBkYXRhLmJ1ZmZlcmAgd291bGQgYmUgY2hlYXBlciBidXQgd3Jvbmc6IGl0cyB0eXBlIGlzIGBBcnJheUJ1ZmZlckxpa2VgLCBhbmQgdGhlIHZpZXcgbWF5XG4gKiBjb3ZlciBvbmx5IHBhcnQgb2YgYSBsYXJnZXIgYnVmZmVyLCBzbyB0aGUgY2FsbGVyIGNhbiBlbmQgdXAgaGFuZGVkIGJ5dGVzIGl0IG5ldmVyIGFza2VkIGZvci5cbiAqXG4gKiBAcGFyYW0gZGF0YSAtIFRoZSBieXRlcyB0byBjb3B5LlxuICogQHJldHVybnMgQW4ge0BsaW5rIEFycmF5QnVmZmVyfSBob2xkaW5nIGV4YWN0bHkgdGhvc2UgYnl0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0FycmF5QnVmZmVyKGRhdGE6IFVpbnQ4QXJyYXkpOiBBcnJheUJ1ZmZlciB7XG4gIGNvbnN0IGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihkYXRhLmJ5dGVMZW5ndGgpO1xuICBuZXcgVWludDhBcnJheShidWZmZXIpLnNldChkYXRhKTtcbiAgcmV0dXJuIGJ1ZmZlcjtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWVPLFNBQVMsY0FBYyxNQUErQjtBQUMzRCxRQUFNLFNBQVMsSUFBSSxZQUFZLEtBQUssVUFBVTtBQUM5QyxNQUFJLFdBQVcsTUFBTSxFQUFFLElBQUksSUFBSTtBQUMvQixTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Contains utility functions for {@link ArrayBuffer} objects.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Copies bytes into a fresh {@link ArrayBuffer}.
|
|
9
|
+
*
|
|
10
|
+
* Reaching for `data.buffer` would be cheaper but wrong: its type is `ArrayBufferLike`, and the view may
|
|
11
|
+
* cover only part of a larger buffer, so the caller can end up handed bytes it never asked for.
|
|
12
|
+
*
|
|
13
|
+
* @param data - The bytes to copy.
|
|
14
|
+
* @returns An {@link ArrayBuffer} holding exactly those bytes.
|
|
15
|
+
*/
|
|
16
|
+
export declare function toArrayBuffer(data: Uint8Array): ArrayBuffer;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __export = (target, all) => {
|
|
12
|
+
for (var name in all)
|
|
13
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from))
|
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
19
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var array_exports = {};
|
|
25
|
+
__export(array_exports, {
|
|
26
|
+
filterInPlace: () => filterInPlace,
|
|
27
|
+
snapshot: () => snapshot,
|
|
28
|
+
unique: () => unique,
|
|
29
|
+
uniqueInPlace: () => uniqueInPlace
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(array_exports);
|
|
32
|
+
function filterInPlace(array, shouldKeep) {
|
|
33
|
+
const length = array.length;
|
|
34
|
+
let writeIndex = 0;
|
|
35
|
+
for (let readIndex = 0; readIndex < length; readIndex++) {
|
|
36
|
+
if (!Object.hasOwn(array, readIndex)) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const current = array[readIndex];
|
|
40
|
+
if (shouldKeep(current, readIndex, array)) {
|
|
41
|
+
array[writeIndex++] = current;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
array.length = writeIndex;
|
|
45
|
+
}
|
|
46
|
+
function snapshot(collection) {
|
|
47
|
+
return [...collection];
|
|
48
|
+
}
|
|
49
|
+
function unique(array) {
|
|
50
|
+
const set = /* @__PURE__ */ new Set();
|
|
51
|
+
return array.filter((value) => {
|
|
52
|
+
if (set.has(value)) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
set.add(value);
|
|
56
|
+
return true;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function uniqueInPlace(array) {
|
|
60
|
+
const set = /* @__PURE__ */ new Set();
|
|
61
|
+
filterInPlace(array, (value) => {
|
|
62
|
+
if (set.has(value)) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
set.add(value);
|
|
66
|
+
return true;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
70
|
+
0 && (module.exports = {
|
|
71
|
+
filterInPlace,
|
|
72
|
+
snapshot,
|
|
73
|
+
unique,
|
|
74
|
+
uniqueInPlace
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FycmF5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQXJyYXkgdXRpbGl0aWVzLlxuICovXG5cbi8qKlxuICogRmlsdGVyIGFuIGFycmF5IGluIHBsYWNlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBhcnJheSBlbGVtZW50cy5cbiAqIEBwYXJhbSBhcnJheSAtIFRoZSBhcnJheSB0byBmaWx0ZXIuXG4gKiBAcGFyYW0gc2hvdWxkS2VlcCAtIFRoZSBwcmVkaWNhdGUgdG8gZmlsdGVyIHRoZSBhcnJheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckluUGxhY2U8VD4oYXJyYXk6IFRbXSwgc2hvdWxkS2VlcDogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBib29sZWFuKTogdm9pZCB7XG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgbGV0IHdyaXRlSW5kZXggPSAwO1xuICBmb3IgKGxldCByZWFkSW5kZXggPSAwOyByZWFkSW5kZXggPCBsZW5ndGg7IHJlYWRJbmRleCsrKSB7XG4gICAgaWYgKCFPYmplY3QuaGFzT3duKGFycmF5LCByZWFkSW5kZXgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50ID0gYXJyYXlbcmVhZEluZGV4XSBhcyBUO1xuICAgIGlmIChzaG91bGRLZWVwKGN1cnJlbnQsIHJlYWRJbmRleCwgYXJyYXkpKSB7XG4gICAgICBhcnJheVt3cml0ZUluZGV4KytdID0gY3VycmVudDtcbiAgICB9XG4gIH1cbiAgYXJyYXkubGVuZ3RoID0gd3JpdGVJbmRleDtcbn1cblxuLyoqXG4gKiBDb3BpZXMgYW4gaXRlcmFibGUgaW50byBhIG5ldyBhcnJheSwgc28gaXQgY2FuIGJlIHNhZmVseSBpdGVyYXRlZCB3aGlsZSB0aGUgb3JpZ2luYWwgaXMgbW9kaWZpZWQuXG4gKlxuICogVXNlIHRoaXMgd2hlbmV2ZXIgdGhlIGxvb3AgYm9keSAob3IgYW4gYXdhaXRlZCBjYWxsIGluc2lkZSBpdCkgYWRkcyB0byBvciByZW1vdmVzIGZyb20gdGhlIGNvbGxlY3Rpb25cbiAqIGJlaW5nIGl0ZXJhdGVkIFx1MjAxNCByZWxlYXNpbmcgbG9ja3MsIGNhbmNlbGxpbmcgdGltZXJzLCBzZXR0bGluZyBwZW5kaW5nIG9wZXJhdGlvbnMuIEl0ZXJhdGluZyB0aGUgbGl2ZVxuICogY29sbGVjdGlvbiBpbiB0aG9zZSBjYXNlcyBzaWxlbnRseSBza2lwcyBlbnRyaWVzLlxuICpcbiAqIFByZWZlciB0aGlzIG92ZXIgYW4gaW5saW5lIGBbLi4uY29sbGVjdGlvbl1gOiBpdCBzYXlzIHdoeSB0aGUgY29weSBleGlzdHMsIGFuZCBpdCBrZWVwcyB0aGUgY2FsbCBzaXRlXG4gKiBjbGVhciBvZiBgdW5pY29ybi9uby11c2VsZXNzLXNwcmVhZGAsIHdoaWNoIGNhbm5vdCB0ZWxsIGEgZGVmZW5zaXZlIGNvcHkgZnJvbSBhIHJlZHVuZGFudCBvbmUuXG4gKlxuICogVGhlIHJlc3VsdCBpcyBgcmVhZG9ubHlgOiBpdCBleGlzdHMgdG8gYmUgaXRlcmF0ZWQsIG5vdCB3b3JrZWQgb24uIE11dGF0aW5nIGl0IHdvdWxkIGNoYW5nZSBhIHRocm93YXdheVxuICogY29weSBhbmQgbGVhdmUgdGhlIG9yaWdpbmFsIHVudG91Y2hlZCwgd2hpY2ggaXMgbmV2ZXIgd2hhdCB0aGUgY2FsbGVyIHdhbnRzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBlbGVtZW50cy5cbiAqIEBwYXJhbSBjb2xsZWN0aW9uIC0gVGhlIGNvbGxlY3Rpb24gdG8gY29weS5cbiAqIEByZXR1cm5zIEEgbmV3IGFycmF5IGhvbGRpbmcgdGhlIGNvbGxlY3Rpb24ncyBlbGVtZW50cyBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNuYXBzaG90PFQ+KGNvbGxlY3Rpb246IEl0ZXJhYmxlPFQ+KTogcmVhZG9ubHkgVFtdIHtcbiAgcmV0dXJuIFsuLi5jb2xsZWN0aW9uXTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZHVwbGljYXRlcyBmcm9tIGFuIGFycmF5LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBhcnJheSBlbGVtZW50cy5cbiAqIEBwYXJhbSBhcnJheSAtIFRoZSBhcnJheSB0byByZW1vdmUgZHVwbGljYXRlcyBmcm9tLlxuICogQHJldHVybnMgVGhlIGFycmF5IHdpdGggZHVwbGljYXRlcyByZW1vdmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5pcXVlPFQ+KGFycmF5OiByZWFkb25seSBUW10pOiBUW10ge1xuICBjb25zdCBzZXQgPSBuZXcgU2V0PFQ+KCk7XG4gIHJldHVybiBhcnJheS5maWx0ZXIoKHZhbHVlKSA9PiB7XG4gICAgaWYgKHNldC5oYXModmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNldC5hZGQodmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZHVwbGljYXRlcyBmcm9tIGFuIGFycmF5IGluIHBsYWNlLlxuICpcbiAqIEBwYXJhbSBhcnJheSAtIFRoZSBhcnJheSB0byByZW1vdmUgZHVwbGljYXRlcyBmcm9tLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5pcXVlSW5QbGFjZShhcnJheTogdW5rbm93bltdKTogdm9pZCB7XG4gIGNvbnN0IHNldCA9IG5ldyBTZXQ8dW5rbm93bj4oKTtcbiAgZmlsdGVySW5QbGFjZShhcnJheSwgKHZhbHVlKSA9PiB7XG4gICAgaWYgKHNldC5oYXModmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNldC5hZGQodmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFPLFNBQVMsY0FBaUIsT0FBWSxZQUFvRTtBQUMvRyxRQUFNLFNBQVMsTUFBTTtBQUNyQixNQUFJLGFBQWE7QUFDakIsV0FBUyxZQUFZLEdBQUcsWUFBWSxRQUFRLGFBQWE7QUFDdkQsUUFBSSxDQUFDLE9BQU8sT0FBTyxPQUFPLFNBQVMsR0FBRztBQUNwQztBQUFBLElBQ0Y7QUFFQSxVQUFNLFVBQVUsTUFBTSxTQUFTO0FBQy9CLFFBQUksV0FBVyxTQUFTLFdBQVcsS0FBSyxHQUFHO0FBQ3pDLFlBQU0sWUFBWSxJQUFJO0FBQUEsSUFDeEI7QUFBQSxFQUNGO0FBQ0EsUUFBTSxTQUFTO0FBQ2pCO0FBbUJPLFNBQVMsU0FBWSxZQUF1QztBQUNqRSxTQUFPLENBQUMsR0FBRyxVQUFVO0FBQ3ZCO0FBU08sU0FBUyxPQUFVLE9BQTBCO0FBQ2xELFFBQU0sTUFBTSxvQkFBSSxJQUFPO0FBQ3ZCLFNBQU8sTUFBTSxPQUFPLENBQUMsVUFBVTtBQUM3QixRQUFJLElBQUksSUFBSSxLQUFLLEdBQUc7QUFDbEIsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLElBQUksS0FBSztBQUNiLFdBQU87QUFBQSxFQUNULENBQUM7QUFDSDtBQU9PLFNBQVMsY0FBYyxPQUF3QjtBQUNwRCxRQUFNLE1BQU0sb0JBQUksSUFBYTtBQUM3QixnQkFBYyxPQUFPLENBQUMsVUFBVTtBQUM5QixRQUFJLElBQUksSUFBSSxLQUFLLEdBQUc7QUFDbEIsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLElBQUksS0FBSztBQUNiLFdBQU87QUFBQSxFQUNULENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Array utilities.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Filter an array in place.
|
|
9
|
+
*
|
|
10
|
+
* @typeParam T - The type of the array elements.
|
|
11
|
+
* @param array - The array to filter.
|
|
12
|
+
* @param shouldKeep - The predicate to filter the array.
|
|
13
|
+
*/
|
|
14
|
+
export declare function filterInPlace<T>(array: T[], shouldKeep: (value: T, index: number, array: T[]) => boolean): void;
|
|
15
|
+
/**
|
|
16
|
+
* Copies an iterable into a new array, so it can be safely iterated while the original is modified.
|
|
17
|
+
*
|
|
18
|
+
* Use this whenever the loop body (or an awaited call inside it) adds to or removes from the collection
|
|
19
|
+
* being iterated — releasing locks, cancelling timers, settling pending operations. Iterating the live
|
|
20
|
+
* collection in those cases silently skips entries.
|
|
21
|
+
*
|
|
22
|
+
* Prefer this over an inline `[...collection]`: it says why the copy exists, and it keeps the call site
|
|
23
|
+
* clear of `unicorn/no-useless-spread`, which cannot tell a defensive copy from a redundant one.
|
|
24
|
+
*
|
|
25
|
+
* The result is `readonly`: it exists to be iterated, not worked on. Mutating it would change a throwaway
|
|
26
|
+
* copy and leave the original untouched, which is never what the caller wants.
|
|
27
|
+
*
|
|
28
|
+
* @typeParam T - The type of the elements.
|
|
29
|
+
* @param collection - The collection to copy.
|
|
30
|
+
* @returns A new array holding the collection's elements at the time of the call.
|
|
31
|
+
*/
|
|
32
|
+
export declare function snapshot<T>(collection: Iterable<T>): readonly T[];
|
|
33
|
+
/**
|
|
34
|
+
* Remove duplicates from an array.
|
|
35
|
+
*
|
|
36
|
+
* @typeParam T - The type of the array elements.
|
|
37
|
+
* @param array - The array to remove duplicates from.
|
|
38
|
+
* @returns The array with duplicates removed.
|
|
39
|
+
*/
|
|
40
|
+
export declare function unique<T>(array: readonly T[]): T[];
|
|
41
|
+
/**
|
|
42
|
+
* Remove duplicates from an array in place.
|
|
43
|
+
*
|
|
44
|
+
* @param array - The array to remove duplicates from.
|
|
45
|
+
*/
|
|
46
|
+
export declare function uniqueInPlace(array: unknown[]): void;
|