@mnaoumov/typescript-lib 0.0.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/@types/debug/package.json +4 -0
  2. package/LICENSE +21 -0
  3. package/README.md +7 -1
  4. package/dist/lib/cjs/@types/debug.d.cts +21 -0
  5. package/dist/lib/cjs/abort-controller.cjs +202 -0
  6. package/dist/lib/cjs/abort-controller.d.cts +135 -0
  7. package/dist/lib/cjs/aggregate-error.cjs +98 -0
  8. package/dist/lib/cjs/aggregate-error.d.cts +24 -0
  9. package/dist/lib/cjs/array-buffer.cjs +96 -0
  10. package/dist/lib/cjs/array-buffer.d.cts +16 -0
  11. package/dist/lib/cjs/array.cjs +134 -0
  12. package/dist/lib/cjs/array.d.cts +46 -0
  13. package/dist/lib/cjs/async-events.cjs +466 -0
  14. package/dist/lib/cjs/async-events.d.cts +456 -0
  15. package/dist/lib/cjs/async-operation-hook.cjs +113 -0
  16. package/dist/lib/cjs/async-operation-hook.d.cts +59 -0
  17. package/dist/lib/cjs/async.cjs +521 -0
  18. package/dist/lib/cjs/async.d.cts +414 -0
  19. package/dist/lib/cjs/beeper.cjs +126 -0
  20. package/dist/lib/cjs/beeper.d.cts +21 -0
  21. package/dist/lib/cjs/blob.cjs +160 -0
  22. package/dist/lib/cjs/blob.d.cts +59 -0
  23. package/dist/lib/cjs/bytes.cjs +114 -0
  24. package/dist/lib/cjs/bytes.d.cts +17 -0
  25. package/dist/lib/cjs/debug-controller.cjs +80 -0
  26. package/dist/lib/cjs/debug-controller.d.cts +87 -0
  27. package/dist/lib/cjs/debug.cjs +235 -0
  28. package/dist/lib/cjs/debug.d.cts +66 -0
  29. package/dist/lib/cjs/desktop-zip-extractor.cjs +215 -0
  30. package/dist/lib/cjs/desktop-zip-extractor.d.cts +95 -0
  31. package/dist/lib/cjs/disposable.cjs +414 -0
  32. package/dist/lib/cjs/disposable.d.cts +387 -0
  33. package/dist/lib/cjs/enum.cjs +100 -0
  34. package/dist/lib/cjs/enum.d.cts +24 -0
  35. package/dist/lib/cjs/error.cjs +297 -0
  36. package/dist/lib/cjs/error.d.cts +181 -0
  37. package/dist/lib/cjs/function.cjs +141 -0
  38. package/dist/lib/cjs/function.d.cts +128 -0
  39. package/dist/lib/cjs/html-element.cjs +341 -0
  40. package/dist/lib/cjs/html-element.d.cts +199 -0
  41. package/dist/lib/cjs/index.cjs +195 -0
  42. package/dist/lib/cjs/index.d.cts +33 -0
  43. package/dist/lib/cjs/jpeg-metadata.cjs +228 -0
  44. package/dist/lib/cjs/jpeg-metadata.d.cts +42 -0
  45. package/dist/lib/cjs/library.cjs +158 -0
  46. package/dist/lib/cjs/library.d.cts +96 -0
  47. package/dist/lib/cjs/object-utils.cjs +617 -0
  48. package/dist/lib/cjs/object-utils.d.cts +298 -0
  49. package/dist/lib/cjs/path.cjs +202 -0
  50. package/dist/lib/cjs/path.d.cts +154 -0
  51. package/dist/lib/cjs/reg-exp.cjs +254 -0
  52. package/dist/lib/cjs/reg-exp.d.cts +87 -0
  53. package/dist/lib/cjs/string.cjs +326 -0
  54. package/dist/lib/cjs/string.d.cts +361 -0
  55. package/dist/lib/cjs/transformers/date-transformer.cjs +129 -0
  56. package/dist/lib/cjs/transformers/date-transformer.d.cts +39 -0
  57. package/dist/lib/cjs/transformers/group-transformer.cjs +173 -0
  58. package/dist/lib/cjs/transformers/group-transformer.d.cts +70 -0
  59. package/dist/lib/cjs/transformers/index.cjs +123 -0
  60. package/dist/lib/cjs/transformers/index.d.cts +9 -0
  61. package/dist/lib/cjs/transformers/map-transformer.cjs +129 -0
  62. package/dist/lib/cjs/transformers/map-transformer.d.cts +41 -0
  63. package/dist/lib/cjs/transformers/set-transformer.cjs +129 -0
  64. package/dist/lib/cjs/transformers/set-transformer.d.cts +39 -0
  65. package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +127 -0
  66. package/dist/lib/cjs/transformers/skip-private-property-transformer.d.cts +36 -0
  67. package/dist/lib/cjs/transformers/transformer.cjs +170 -0
  68. package/dist/lib/cjs/transformers/transformer.d.cts +70 -0
  69. package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +130 -0
  70. package/dist/lib/cjs/transformers/two-way-map-transformer.d.cts +42 -0
  71. package/dist/lib/cjs/transformers/typed-transformer.cjs +94 -0
  72. package/dist/lib/cjs/transformers/typed-transformer.d.cts +39 -0
  73. package/dist/lib/cjs/two-way-map.cjs +208 -0
  74. package/dist/lib/cjs/two-way-map.d.cts +101 -0
  75. package/dist/lib/cjs/type-guards.cjs +128 -0
  76. package/dist/lib/cjs/type-guards.d.cts +84 -0
  77. package/dist/lib/cjs/type.cjs +121 -0
  78. package/dist/lib/cjs/type.d.cts +122 -0
  79. package/dist/lib/cjs/typescript-lib-state.cjs +126 -0
  80. package/dist/lib/cjs/typescript-lib-state.d.cts +56 -0
  81. package/dist/lib/cjs/url.cjs +136 -0
  82. package/dist/lib/cjs/url.d.cts +74 -0
  83. package/dist/lib/cjs/value-provider.cjs +100 -0
  84. package/dist/lib/cjs/value-provider.d.cts +28 -0
  85. package/dist/lib/cjs/value-wrapper.cjs +144 -0
  86. package/dist/lib/cjs/value-wrapper.d.cts +47 -0
  87. package/dist/lib/esm/@types/debug.d.mts +21 -0
  88. package/dist/lib/esm/abort-controller.d.mts +135 -0
  89. package/dist/lib/esm/abort-controller.mjs +159 -0
  90. package/dist/lib/esm/aggregate-error.d.mts +24 -0
  91. package/dist/lib/esm/aggregate-error.mjs +60 -0
  92. package/dist/lib/esm/array-buffer.d.mts +16 -0
  93. package/dist/lib/esm/array-buffer.mjs +58 -0
  94. package/dist/lib/esm/array.d.mts +46 -0
  95. package/dist/lib/esm/array.mjs +93 -0
  96. package/dist/lib/esm/async-events.d.mts +456 -0
  97. package/dist/lib/esm/async-events.mjs +427 -0
  98. package/dist/lib/esm/async-operation-hook.d.mts +59 -0
  99. package/dist/lib/esm/async-operation-hook.mjs +71 -0
  100. package/dist/lib/esm/async.d.mts +414 -0
  101. package/dist/lib/esm/async.mjs +479 -0
  102. package/dist/lib/esm/beeper.d.mts +21 -0
  103. package/dist/lib/esm/beeper.mjs +88 -0
  104. package/dist/lib/esm/blob.d.mts +59 -0
  105. package/dist/lib/esm/blob.mjs +121 -0
  106. package/dist/lib/esm/bytes.d.mts +17 -0
  107. package/dist/lib/esm/bytes.mjs +76 -0
  108. package/dist/lib/esm/debug-controller.d.mts +87 -0
  109. package/dist/lib/esm/debug-controller.mjs +50 -0
  110. package/dist/lib/esm/debug.d.mts +66 -0
  111. package/dist/lib/esm/debug.mjs +185 -0
  112. package/dist/lib/esm/desktop-zip-extractor.d.mts +95 -0
  113. package/dist/lib/esm/desktop-zip-extractor.mjs +180 -0
  114. package/dist/lib/esm/disposable.d.mts +387 -0
  115. package/dist/lib/esm/disposable.mjs +360 -0
  116. package/dist/lib/esm/enum.d.mts +24 -0
  117. package/dist/lib/esm/enum.mjs +61 -0
  118. package/dist/lib/esm/error.d.mts +181 -0
  119. package/dist/lib/esm/error.mjs +248 -0
  120. package/dist/lib/esm/function.d.mts +128 -0
  121. package/dist/lib/esm/function.mjs +96 -0
  122. package/dist/lib/esm/html-element.d.mts +199 -0
  123. package/dist/lib/esm/html-element.mjs +291 -0
  124. package/dist/lib/esm/index.d.mts +33 -0
  125. package/dist/lib/esm/index.mjs +116 -0
  126. package/dist/lib/esm/jpeg-metadata.d.mts +42 -0
  127. package/dist/lib/esm/jpeg-metadata.mjs +189 -0
  128. package/dist/lib/esm/library.d.mts +96 -0
  129. package/dist/lib/esm/library.mjs +118 -0
  130. package/dist/lib/esm/object-utils.d.mts +298 -0
  131. package/dist/lib/esm/object-utils.mjs +567 -0
  132. package/dist/lib/esm/path.d.mts +154 -0
  133. package/dist/lib/esm/path.mjs +139 -0
  134. package/dist/lib/esm/reg-exp.d.mts +87 -0
  135. package/dist/lib/esm/reg-exp.mjs +213 -0
  136. package/dist/lib/esm/string.d.mts +361 -0
  137. package/dist/lib/esm/string.mjs +274 -0
  138. package/dist/lib/esm/transformers/date-transformer.d.mts +39 -0
  139. package/dist/lib/esm/transformers/date-transformer.mjs +91 -0
  140. package/dist/lib/esm/transformers/group-transformer.d.mts +70 -0
  141. package/dist/lib/esm/transformers/group-transformer.mjs +138 -0
  142. package/dist/lib/esm/transformers/index.d.mts +9 -0
  143. package/dist/lib/esm/transformers/index.mjs +68 -0
  144. package/dist/lib/esm/transformers/map-transformer.d.mts +41 -0
  145. package/dist/lib/esm/transformers/map-transformer.mjs +91 -0
  146. package/dist/lib/esm/transformers/set-transformer.d.mts +39 -0
  147. package/dist/lib/esm/transformers/set-transformer.mjs +91 -0
  148. package/dist/lib/esm/transformers/skip-private-property-transformer.d.mts +36 -0
  149. package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +89 -0
  150. package/dist/lib/esm/transformers/transformer.d.mts +70 -0
  151. package/dist/lib/esm/transformers/transformer.mjs +132 -0
  152. package/dist/lib/esm/transformers/two-way-map-transformer.d.mts +42 -0
  153. package/dist/lib/esm/transformers/two-way-map-transformer.mjs +92 -0
  154. package/dist/lib/esm/transformers/typed-transformer.d.mts +39 -0
  155. package/dist/lib/esm/transformers/typed-transformer.mjs +56 -0
  156. package/dist/lib/esm/two-way-map.d.mts +101 -0
  157. package/dist/lib/esm/two-way-map.mjs +170 -0
  158. package/dist/lib/esm/type-guards.d.mts +84 -0
  159. package/dist/lib/esm/type-guards.mjs +85 -0
  160. package/dist/lib/esm/type.d.mts +122 -0
  161. package/dist/lib/esm/type.mjs +83 -0
  162. package/dist/lib/esm/typescript-lib-state.d.mts +56 -0
  163. package/dist/lib/esm/typescript-lib-state.mjs +84 -0
  164. package/dist/lib/esm/url.d.mts +74 -0
  165. package/dist/lib/esm/url.mjs +94 -0
  166. package/dist/lib/esm/value-provider.d.mts +28 -0
  167. package/dist/lib/esm/value-provider.mjs +62 -0
  168. package/dist/lib/esm/value-wrapper.d.mts +47 -0
  169. package/dist/lib/esm/value-wrapper.mjs +106 -0
  170. package/package.json +111 -13
  171. package/transformers/date-transformer/package.json +6 -0
  172. package/transformers/group-transformer/package.json +6 -0
  173. package/transformers/index/package.json +6 -0
  174. package/transformers/map-transformer/package.json +6 -0
  175. package/transformers/package.json +6 -0
  176. package/transformers/set-transformer/package.json +6 -0
  177. package/transformers/skip-private-property-transformer/package.json +6 -0
  178. package/transformers/transformer/package.json +6 -0
  179. package/transformers/two-way-map-transformer/package.json +6 -0
  180. package/transformers/typed-transformer/package.json +6 -0
@@ -0,0 +1,135 @@
1
+ /// <reference path="./library.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * AbortController utilities.
6
+ */
7
+ /**
8
+ * A constant representing an infinite timeout.
9
+ */
10
+ export declare const INFINITE_TIMEOUT: number;
11
+ /**
12
+ * An {@link AbortController} that can be aborted more than once.
13
+ *
14
+ * A plain {@link AbortController} is single-use: once aborted, its signal stays aborted forever, so it
15
+ * cannot back a cancel button that the user may press more than once. This one aborts the current signal
16
+ * and immediately replaces it, so the next operation starts with a fresh, non-aborted signal while the work
17
+ * that captured the previous signal still observes the abort.
18
+ *
19
+ * Read {@link ResettableAbortController.signal} at the start of each operation. Never cache it, or the
20
+ * operation after the first abort starts already aborted.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const resettableAbortController = new ResettableAbortController();
25
+ *
26
+ * await loop({
27
+ * abortSignal: resettableAbortController.signal,
28
+ * buildNoticeMessage: (file) => `Processing ${file.path}`,
29
+ * items: app.vault.getMarkdownFiles(),
30
+ * processItem: async (file) => { await processFile(file); }
31
+ * });
32
+ *
33
+ * // From a cancel button, a command, or the devtools console.
34
+ * resettableAbortController.abort();
35
+ * ```
36
+ *
37
+ * @see {@link getSharedAbortController} for the app-wide instance.
38
+ */
39
+ export declare class ResettableAbortController {
40
+ /**
41
+ * The current abort signal.
42
+ *
43
+ * @returns The {@link AbortSignal} that aborts on the next {@link ResettableAbortController.abort} call.
44
+ */
45
+ get signal(): AbortSignal;
46
+ private abortController;
47
+ /**
48
+ * Aborts the current signal and replaces it with a fresh, non-aborted one.
49
+ *
50
+ * @param reason - The reason to abort with. When omitted, the signal is aborted with the native
51
+ * `AbortError` {@link DOMException}, exactly as {@link AbortController.abort} does.
52
+ */
53
+ abort(reason?: unknown): void;
54
+ }
55
+ /**
56
+ * An abort signal that aborts when any of the given abort signals abort.
57
+ *
58
+ * @param maybeAbortSignals - The abort signals to abort when any of them abort.
59
+ * @returns The abort signal that aborts when any of the given abort signals abort.
60
+ */
61
+ export declare function abortSignalAny(...maybeAbortSignals: (AbortSignal | undefined)[]): AbortSignal;
62
+ /**
63
+ * An abort signal that never aborts.
64
+ *
65
+ * @returns The abort signal that never aborts.
66
+ */
67
+ export declare function abortSignalNever(): AbortSignal;
68
+ /**
69
+ * An abort signal that aborts after a timeout.
70
+ *
71
+ * @param timeoutInMilliseconds - The timeout in milliseconds.
72
+ * @returns The abort signal that aborts after a timeout.
73
+ */
74
+ export declare function abortSignalTimeout(timeoutInMilliseconds: number): AbortSignal;
75
+ /**
76
+ * The app-wide shared {@link ResettableAbortController}.
77
+ *
78
+ * Every plugin built on this library shares one instance, so a single {@link ResettableAbortController.abort}
79
+ * call cancels whatever long-running operation is in flight, whichever plugin started it. A plugin that needs
80
+ * a cancel button of its own scope constructs its own {@link ResettableAbortController} instead.
81
+ *
82
+ * It lives in the shared state, so it is reachable from the devtools console:
83
+ *
84
+ * ```javascript
85
+ * globalThis[Symbol.for('@mnaoumov/typescript-lib/state')].values.sharedAbortController.value.abort();
86
+ * ```
87
+ *
88
+ * In an Obsidian plugin the same instance is also reachable as `__obsidianDevUtils.sharedAbortController.value`.
89
+ *
90
+ * @returns The shared {@link ResettableAbortController}.
91
+ */
92
+ export declare function getSharedAbortController(): ResettableAbortController;
93
+ /**
94
+ * The signal of the app-wide shared {@link ResettableAbortController}.
95
+ *
96
+ * Call it at the start of each operation. Never cache it, or the operation after the first abort starts
97
+ * already aborted.
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * await loop({
102
+ * abortSignal: getSharedAbortSignal(),
103
+ * buildNoticeMessage: (file) => `Processing ${file.path}`,
104
+ * items: app.vault.getMarkdownFiles(),
105
+ * processItem: async (file) => { await processFile(file); }
106
+ * });
107
+ * ```
108
+ *
109
+ * @returns The {@link AbortSignal} of the shared {@link ResettableAbortController}.
110
+ */
111
+ export declare function getSharedAbortSignal(): AbortSignal;
112
+ /**
113
+ * Adds an abort listener to an abort signal and calls the callback if the abort signal is already aborted.
114
+ *
115
+ * @param abortSignal - The abort signal to add the listener to.
116
+ * @param callback - The callback to call when the abort signal aborts.
117
+ * @returns A {@link Disposable} that removes the abort listener when disposed, for use with `using`.
118
+ */
119
+ export declare function onAbort(abortSignal: AbortSignal, callback: (abortSignal: AbortSignal) => void): Disposable;
120
+ /**
121
+ * Waits for an abort signal to abort and resolves with its reason.
122
+ *
123
+ * @typeParam T - Expected type of `abortSignal.reason`.
124
+ * @param abortSignal - The abort signal to wait for.
125
+ * @returns A {@link Promise} that resolves with the reason of the abort signal.
126
+ */
127
+ export declare function waitForAbort<T = unknown>(abortSignal: AbortSignal): Promise<T>;
128
+ /**
129
+ * Waits for an abort signal to abort and rejects with its reason.
130
+ *
131
+ * @param abortSignal - The abort signal to wait for.
132
+ * @param shouldRejectOnAbort - Whether to reject the promise if the abort signal is aborted.
133
+ * @returns A {@link Promise} that rejects with the reason of the abort signal.
134
+ */
135
+ export declare function waitForAbort(abortSignal: AbortSignal, shouldRejectOnAbort: true): Promise<never>;
@@ -0,0 +1,159 @@
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
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ // eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
23
+ const existingProcess = globalThis.process;
24
+
25
+ if (!existingProcess) {
26
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
27
+ globalThis.process = browserProcess;
28
+ return;
29
+ }
30
+
31
+ if (existingProcess.versions?.node) {
32
+ return;
33
+ }
34
+
35
+ const existingProcessRecord = existingProcess;
36
+
37
+ for (const [key, value] of Object.entries(browserProcess)) {
38
+ existingProcessRecord[key] ??= value;
39
+ }
40
+
41
+ existingProcessRecord['browser'] = true;
42
+ }
43
+
44
+ (function initEsm() {
45
+ ensureDisposeSymbols();
46
+ ensureBrowserProcess();
47
+ })();
48
+ })();
49
+
50
+ import {
51
+ CallbackDisposable,
52
+ CombineDisposable
53
+ } from "./disposable.mjs";
54
+ import { noop } from "./function.mjs";
55
+ import { getTypescriptLibState } from "./typescript-lib-state.mjs";
56
+ const INFINITE_TIMEOUT = Infinity;
57
+ class ResettableAbortController {
58
+ /**
59
+ * The current abort signal.
60
+ *
61
+ * @returns The {@link AbortSignal} that aborts on the next {@link ResettableAbortController.abort} call.
62
+ */
63
+ get signal() {
64
+ return this.abortController.signal;
65
+ }
66
+ abortController = new AbortController();
67
+ /**
68
+ * Aborts the current signal and replaces it with a fresh, non-aborted one.
69
+ *
70
+ * @param reason - The reason to abort with. When omitted, the signal is aborted with the native
71
+ * `AbortError` {@link DOMException}, exactly as {@link AbortController.abort} does.
72
+ */
73
+ abort(reason) {
74
+ this.abortController.abort(reason);
75
+ this.abortController = new AbortController();
76
+ }
77
+ }
78
+ function abortSignalAny(...maybeAbortSignals) {
79
+ const abortSignals = maybeAbortSignals.filter((abortSignal) => !!abortSignal);
80
+ if (typeof AbortSignal.any === "function") {
81
+ return AbortSignal.any(abortSignals);
82
+ }
83
+ if (abortSignals.length === 0) {
84
+ return abortSignalNever();
85
+ }
86
+ if (abortSignals.length === 1 && abortSignals[0]) {
87
+ return abortSignals[0];
88
+ }
89
+ const abortController = new AbortController();
90
+ for (const abortSignal of abortSignals) {
91
+ if (abortSignal.aborted) {
92
+ return abortSignal;
93
+ }
94
+ }
95
+ const abortHandlerDisposables = Array.from(abortSignals, (abortSignal) => onAbort(abortSignal, handleAbort));
96
+ const combinedAbortHandlerDisposable = new CombineDisposable({ disposables: abortHandlerDisposables });
97
+ return abortController.signal;
98
+ function handleAbort(abortSignal) {
99
+ combinedAbortHandlerDisposable.dispose();
100
+ abortController.abort(abortSignal.reason);
101
+ }
102
+ }
103
+ function abortSignalNever() {
104
+ return new AbortController().signal;
105
+ }
106
+ function abortSignalTimeout(timeoutInMilliseconds) {
107
+ if (timeoutInMilliseconds === INFINITE_TIMEOUT) {
108
+ return abortSignalNever();
109
+ }
110
+ const abortController = new AbortController();
111
+ globalThis.setTimeout(() => {
112
+ abortController.abort(new DOMException(`Timed out in ${String(timeoutInMilliseconds)} milliseconds`, "TimeoutError"));
113
+ }, timeoutInMilliseconds);
114
+ return abortController.signal;
115
+ }
116
+ function getSharedAbortController() {
117
+ return getTypescriptLibState("sharedAbortController", new ResettableAbortController()).value;
118
+ }
119
+ function getSharedAbortSignal() {
120
+ return getSharedAbortController().signal;
121
+ }
122
+ function onAbort(abortSignal, callback) {
123
+ if (abortSignal.aborted) {
124
+ callback(abortSignal);
125
+ return new CallbackDisposable({ callback: noop });
126
+ }
127
+ abortSignal.addEventListener("abort", wrappedCallback, { once: true });
128
+ return new CallbackDisposable({
129
+ callback: () => {
130
+ abortSignal.removeEventListener("abort", wrappedCallback);
131
+ }
132
+ });
133
+ function wrappedCallback($event) {
134
+ callback($event.target);
135
+ }
136
+ }
137
+ function waitForAbort(abortSignal, shouldRejectOnAbort) {
138
+ return new Promise((resolve, reject) => {
139
+ onAbort(abortSignal, () => {
140
+ if (shouldRejectOnAbort) {
141
+ reject(abortSignal.reason);
142
+ } else {
143
+ resolve(abortSignal.reason);
144
+ }
145
+ });
146
+ });
147
+ }
148
+ export {
149
+ INFINITE_TIMEOUT,
150
+ ResettableAbortController,
151
+ abortSignalAny,
152
+ abortSignalNever,
153
+ abortSignalTimeout,
154
+ getSharedAbortController,
155
+ getSharedAbortSignal,
156
+ onAbort,
157
+ waitForAbort
158
+ };
159
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Fib3J0LWNvbnRyb2xsZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBYm9ydENvbnRyb2xsZXIgdXRpbGl0aWVzLlxuICovXG5cbmltcG9ydCB7XG4gIENhbGxiYWNrRGlzcG9zYWJsZSxcbiAgQ29tYmluZURpc3Bvc2FibGVcbn0gZnJvbSAnLi9kaXNwb3NhYmxlLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGdldFR5cGVzY3JpcHRMaWJTdGF0ZSB9IGZyb20gJy4vdHlwZXNjcmlwdC1saWItc3RhdGUudHMnO1xuXG4vKipcbiAqIEEgY29uc3RhbnQgcmVwcmVzZW50aW5nIGFuIGluZmluaXRlIHRpbWVvdXQuXG4gKi9cbmV4cG9ydCBjb25zdCBJTkZJTklURV9USU1FT1VUID0gSW5maW5pdHk7XG5cbi8qKlxuICogQW4ge0BsaW5rIEFib3J0Q29udHJvbGxlcn0gdGhhdCBjYW4gYmUgYWJvcnRlZCBtb3JlIHRoYW4gb25jZS5cbiAqXG4gKiBBIHBsYWluIHtAbGluayBBYm9ydENvbnRyb2xsZXJ9IGlzIHNpbmdsZS11c2U6IG9uY2UgYWJvcnRlZCwgaXRzIHNpZ25hbCBzdGF5cyBhYm9ydGVkIGZvcmV2ZXIsIHNvIGl0XG4gKiBjYW5ub3QgYmFjayBhIGNhbmNlbCBidXR0b24gdGhhdCB0aGUgdXNlciBtYXkgcHJlc3MgbW9yZSB0aGFuIG9uY2UuIFRoaXMgb25lIGFib3J0cyB0aGUgY3VycmVudCBzaWduYWxcbiAqIGFuZCBpbW1lZGlhdGVseSByZXBsYWNlcyBpdCwgc28gdGhlIG5leHQgb3BlcmF0aW9uIHN0YXJ0cyB3aXRoIGEgZnJlc2gsIG5vbi1hYm9ydGVkIHNpZ25hbCB3aGlsZSB0aGUgd29ya1xuICogdGhhdCBjYXB0dXJlZCB0aGUgcHJldmlvdXMgc2lnbmFsIHN0aWxsIG9ic2VydmVzIHRoZSBhYm9ydC5cbiAqXG4gKiBSZWFkIHtAbGluayBSZXNldHRhYmxlQWJvcnRDb250cm9sbGVyLnNpZ25hbH0gYXQgdGhlIHN0YXJ0IG9mIGVhY2ggb3BlcmF0aW9uLiBOZXZlciBjYWNoZSBpdCwgb3IgdGhlXG4gKiBvcGVyYXRpb24gYWZ0ZXIgdGhlIGZpcnN0IGFib3J0IHN0YXJ0cyBhbHJlYWR5IGFib3J0ZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlc2V0dGFibGVBYm9ydENvbnRyb2xsZXIgPSBuZXcgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlcigpO1xuICpcbiAqIGF3YWl0IGxvb3Aoe1xuICogICBhYm9ydFNpZ25hbDogcmVzZXR0YWJsZUFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gKiAgIGJ1aWxkTm90aWNlTWVzc2FnZTogKGZpbGUpID0+IGBQcm9jZXNzaW5nICR7ZmlsZS5wYXRofWAsXG4gKiAgIGl0ZW1zOiBhcHAudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpLFxuICogICBwcm9jZXNzSXRlbTogYXN5bmMgKGZpbGUpID0+IHsgYXdhaXQgcHJvY2Vzc0ZpbGUoZmlsZSk7IH1cbiAqIH0pO1xuICpcbiAqIC8vIEZyb20gYSBjYW5jZWwgYnV0dG9uLCBhIGNvbW1hbmQsIG9yIHRoZSBkZXZ0b29scyBjb25zb2xlLlxuICogcmVzZXR0YWJsZUFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgZ2V0U2hhcmVkQWJvcnRDb250cm9sbGVyfSBmb3IgdGhlIGFwcC13aWRlIGluc3RhbmNlLlxuICovXG5leHBvcnQgY2xhc3MgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlciB7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBhYm9ydCBzaWduYWwuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB7QGxpbmsgQWJvcnRTaWduYWx9IHRoYXQgYWJvcnRzIG9uIHRoZSBuZXh0IHtAbGluayBSZXNldHRhYmxlQWJvcnRDb250cm9sbGVyLmFib3J0fSBjYWxsLlxuICAgKi9cbiAgcHVibGljIGdldCBzaWduYWwoKTogQWJvcnRTaWduYWwge1xuICAgIHJldHVybiB0aGlzLmFib3J0Q29udHJvbGxlci5zaWduYWw7XG4gIH1cblxuICBwcml2YXRlIGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAvKipcbiAgICogQWJvcnRzIHRoZSBjdXJyZW50IHNpZ25hbCBhbmQgcmVwbGFjZXMgaXQgd2l0aCBhIGZyZXNoLCBub24tYWJvcnRlZCBvbmUuXG4gICAqXG4gICAqIEBwYXJhbSByZWFzb24gLSBUaGUgcmVhc29uIHRvIGFib3J0IHdpdGguIFdoZW4gb21pdHRlZCwgdGhlIHNpZ25hbCBpcyBhYm9ydGVkIHdpdGggdGhlIG5hdGl2ZVxuICAgKiBgQWJvcnRFcnJvcmAge0BsaW5rIERPTUV4Y2VwdGlvbn0sIGV4YWN0bHkgYXMge0BsaW5rIEFib3J0Q29udHJvbGxlci5hYm9ydH0gZG9lcy5cbiAgICovXG4gIHB1YmxpYyBhYm9ydChyZWFzb24/OiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5hYm9ydENvbnRyb2xsZXIuYWJvcnQocmVhc29uKTtcbiAgICB0aGlzLmFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGFib3J0IHNpZ25hbCB0aGF0IGFib3J0cyB3aGVuIGFueSBvZiB0aGUgZ2l2ZW4gYWJvcnQgc2lnbmFscyBhYm9ydC5cbiAqXG4gKiBAcGFyYW0gbWF5YmVBYm9ydFNpZ25hbHMgLSBUaGUgYWJvcnQgc2lnbmFscyB0byBhYm9ydCB3aGVuIGFueSBvZiB0aGVtIGFib3J0LlxuICogQHJldHVybnMgVGhlIGFib3J0IHNpZ25hbCB0aGF0IGFib3J0cyB3aGVuIGFueSBvZiB0aGUgZ2l2ZW4gYWJvcnQgc2lnbmFscyBhYm9ydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFib3J0U2lnbmFsQW55KC4uLm1heWJlQWJvcnRTaWduYWxzOiAoQWJvcnRTaWduYWwgfCB1bmRlZmluZWQpW10pOiBBYm9ydFNpZ25hbCB7XG4gIGNvbnN0IGFib3J0U2lnbmFscyA9IG1heWJlQWJvcnRTaWduYWxzLmZpbHRlcigoYWJvcnRTaWduYWwpID0+ICEhYWJvcnRTaWduYWwpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gYEFib3J0U2lnbmFsLmFueWAgaXMgZmVhdHVyZS1kZXRlY3RlZCBoZXJlIHdpdGggYSBtYW51YWwgZmFsbGJhY2sgYmVsb3csIHNvIGl0IGlzIG5vdCByZXF1aXJlZCBvbiBvbGRlciBPYnNpZGlhbi9FbGVjdHJvbiAoQ2hyb21pdW0pIHZlcnNpb25zIHRoYXQgbGFjayBpdC5cbiAgaWYgKHR5cGVvZiBBYm9ydFNpZ25hbC5hbnkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbi9uby11bnN1cHBvcnRlZC1mZWF0dXJlcy9ub2RlLWJ1aWx0aW5zIC0tIGBBYm9ydFNpZ25hbC5hbnlgIGlzIGZlYXR1cmUtZGV0ZWN0ZWQgYnkgdGhlIGd1YXJkIGFib3ZlIHdpdGggYSBtYW51YWwgZmFsbGJhY2sgYmVsb3csIHNvIGl0IGlzIG5vdCByZXF1aXJlZCBvbiBvbGRlciBPYnNpZGlhbi9FbGVjdHJvbiAoQ2hyb21pdW0pIHZlcnNpb25zIHRoYXQgbGFjayBpdC5cbiAgICByZXR1cm4gQWJvcnRTaWduYWwuYW55KGFib3J0U2lnbmFscyk7XG4gIH1cblxuICBpZiAoYWJvcnRTaWduYWxzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBhYm9ydFNpZ25hbE5ldmVyKCk7XG4gIH1cblxuICBpZiAoYWJvcnRTaWduYWxzLmxlbmd0aCA9PT0gMSAmJiBhYm9ydFNpZ25hbHNbMF0pIHtcbiAgICByZXR1cm4gYWJvcnRTaWduYWxzWzBdO1xuICB9XG5cbiAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gIGZvciAoY29uc3QgYWJvcnRTaWduYWwgb2YgYWJvcnRTaWduYWxzKSB7XG4gICAgaWYgKGFib3J0U2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIHJldHVybiBhYm9ydFNpZ25hbDtcbiAgICB9XG4gIH1cblxuICBjb25zdCBhYm9ydEhhbmRsZXJEaXNwb3NhYmxlczogRGlzcG9zYWJsZVtdID0gQXJyYXkuZnJvbShhYm9ydFNpZ25hbHMsIChhYm9ydFNpZ25hbCkgPT4gb25BYm9ydChhYm9ydFNpZ25hbCwgaGFuZGxlQWJvcnQpKTtcblxuICBjb25zdCBjb21iaW5lZEFib3J0SGFuZGxlckRpc3Bvc2FibGUgPSBuZXcgQ29tYmluZURpc3Bvc2FibGUoeyBkaXNwb3NhYmxlczogYWJvcnRIYW5kbGVyRGlzcG9zYWJsZXMgfSk7XG5cbiAgcmV0dXJuIGFib3J0Q29udHJvbGxlci5zaWduYWw7XG5cbiAgZnVuY3Rpb24gaGFuZGxlQWJvcnQoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKTogdm9pZCB7XG4gICAgY29tYmluZWRBYm9ydEhhbmRsZXJEaXNwb3NhYmxlLmRpc3Bvc2UoKTtcbiAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoYWJvcnRTaWduYWwucmVhc29uKTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGFib3J0IHNpZ25hbCB0aGF0IG5ldmVyIGFib3J0cy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYWJvcnQgc2lnbmFsIHRoYXQgbmV2ZXIgYWJvcnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWJvcnRTaWduYWxOZXZlcigpOiBBYm9ydFNpZ25hbCB7XG4gIHJldHVybiBuZXcgQWJvcnRDb250cm9sbGVyKCkuc2lnbmFsO1xufVxuXG4vKipcbiAqIEFuIGFib3J0IHNpZ25hbCB0aGF0IGFib3J0cyBhZnRlciBhIHRpbWVvdXQuXG4gKlxuICogQHBhcmFtIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyAtIFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwgdGhhdCBhYm9ydHMgYWZ0ZXIgYSB0aW1lb3V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWJvcnRTaWduYWxUaW1lb3V0KHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyKTogQWJvcnRTaWduYWwge1xuICBpZiAodGltZW91dEluTWlsbGlzZWNvbmRzID09PSBJTkZJTklURV9USU1FT1VUKSB7XG4gICAgcmV0dXJuIGFib3J0U2lnbmFsTmV2ZXIoKTtcbiAgfVxuXG4gIC8vIEludGVudGlvbmFsbHkgTk9UIHRoZSBuYXRpdmUgYEFib3J0U2lnbmFsLnRpbWVvdXRgLCB3aG9zZSBpbnRlcm5hbCB0aW1lciBjYW5ub3QgYmUgYWR2YW5jZWQgYnlcbiAgLy8gYHZpLnVzZUZha2VUaW1lcnMoKWAsIHNvIGBzbGVlcGAgKGl0cyBzb2xlIGNvbnN1bWVyKSB3b3VsZCBiZSB1bmNvbnRyb2xsYWJsZSBpbiB0ZXN0cy4gQnVpbGRpbmdcbiAgLy8gYHNsZWVwYCdzIHNpZ25hbCBvZmYgYGdsb2JhbFRoaXMuc2V0VGltZW91dGAga2VlcHMgaXQgZmFrZS10aW1lciBjb250cm9sbGFibGUgKGxpa2VcbiAgLy8gYHNldFRpbWVvdXRBc3luY2ApIGFuZCBhbHNvIHdvcmtzIGluIGEgTm9kZSBlbnZpcm9ubWVudCB3aGVyZSBgd2luZG93YCBpcyB1bmRlZmluZWQsIHNpbmNlXG4gIC8vIGBnbG9iYWxUaGlzYCBleGlzdHMgaW4gTm9kZSB0b28uIENvbnN1bWVyIGludGVncmF0aW9uLXRlc3QgcHJvamVjdHMgcnVuIHZpdGVzdCB1bmRlclxuICAvLyBgZW52aXJvbm1lbnQ6ICdub2RlJ2AsIGluIHdoaWNoIGEgYHdpbmRvd2AtYmFzZWQgcHJpbWl0aXZlIHRocm93cyBhIGBSZWZlcmVuY2VFcnJvcmAuXG4gIC8vIFRoZSBhYm9ydCByZWFzb24gbWlycm9ycyB0aGUgbmF0aXZlIG9uZSAtLSBhIGBET01FeGNlcHRpb25gIG5hbWVkIGBUaW1lb3V0RXJyb3JgIC0tIG1hdGNoaW5nXG4gIC8vIGBBYm9ydFNpZ25hbC50aW1lb3V0YCBmb3IgYHJlYXNvbi5uYW1lYCBjaGVja3MuXG4gIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvbm8tZ2xvYmFsLXRoaXMsIHVuaWNvcm4vbm8tdW5uZWNlc3NhcnktZ2xvYmFsLXRoaXMgLS0gSW50ZW50aW9uYWw6IGBnbG9iYWxUaGlzLnNldFRpbWVvdXRgIChub3QgYHdpbmRvd2ApIHNvIHRoaXMgdGltZW91dCBwcmltaXRpdmUgYWxzbyB3b3JrcyBpbiBhIE5vZGUgZW52aXJvbm1lbnQgd2hlcmUgYHdpbmRvd2AgaXMgdW5kZWZpbmVkOyB0aGUgc3BlY2lmaWMgd2luZG93IGlzIGlycmVsZXZhbnQgZm9yIGEgcGxhaW4gdGltZXIuIFRoZSBleHBsaWNpdCBgZ2xvYmFsVGhpc2AgaXMgYWxzbyB3aGF0IGtlZXBzIHRoZSBzaWJsaW5nIGBvYnNpZGlhbm1kL3ByZWZlci13aW5kb3ctdGltZXJzYCBydWxlIGZyb20gcmV3cml0aW5nIGl0IGJhY2sgdG8gYHdpbmRvd2AuXG4gIGdsb2JhbFRoaXMuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG4vbm8tdW5zdXBwb3J0ZWQtZmVhdHVyZXMvbm9kZS1idWlsdGlucyAtLSBgRE9NRXhjZXB0aW9uYCBpcyBhIERPTSBnbG9iYWwgYWx3YXlzIHByZXNlbnQgaW4gdGhlIE9ic2lkaWFuL0VsZWN0cm9uIChDaHJvbWl1bSkgcnVudGltZSB0aGlzIGNvZGUgdGFyZ2V0cywgYW5kIGlzIGFsc28gYSBOb2RlIGdsb2JhbCBmcm9tIE5vZGUgMTcgb253YXJkLlxuICAgIGFib3J0Q29udHJvbGxlci5hYm9ydChuZXcgRE9NRXhjZXB0aW9uKGBUaW1lZCBvdXQgaW4gJHtTdHJpbmcodGltZW91dEluTWlsbGlzZWNvbmRzKX0gbWlsbGlzZWNvbmRzYCwgJ1RpbWVvdXRFcnJvcicpKTtcbiAgfSwgdGltZW91dEluTWlsbGlzZWNvbmRzKTtcbiAgcmV0dXJuIGFib3J0Q29udHJvbGxlci5zaWduYWw7XG59XG5cbi8qKlxuICogVGhlIGFwcC13aWRlIHNoYXJlZCB7QGxpbmsgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlcn0uXG4gKlxuICogRXZlcnkgcGx1Z2luIGJ1aWx0IG9uIHRoaXMgbGlicmFyeSBzaGFyZXMgb25lIGluc3RhbmNlLCBzbyBhIHNpbmdsZSB7QGxpbmsgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlci5hYm9ydH1cbiAqIGNhbGwgY2FuY2VscyB3aGF0ZXZlciBsb25nLXJ1bm5pbmcgb3BlcmF0aW9uIGlzIGluIGZsaWdodCwgd2hpY2hldmVyIHBsdWdpbiBzdGFydGVkIGl0LiBBIHBsdWdpbiB0aGF0IG5lZWRzXG4gKiBhIGNhbmNlbCBidXR0b24gb2YgaXRzIG93biBzY29wZSBjb25zdHJ1Y3RzIGl0cyBvd24ge0BsaW5rIFJlc2V0dGFibGVBYm9ydENvbnRyb2xsZXJ9IGluc3RlYWQuXG4gKlxuICogSXQgbGl2ZXMgaW4gdGhlIHNoYXJlZCBzdGF0ZSwgc28gaXQgaXMgcmVhY2hhYmxlIGZyb20gdGhlIGRldnRvb2xzIGNvbnNvbGU6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKCdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvc3RhdGUnKV0udmFsdWVzLnNoYXJlZEFib3J0Q29udHJvbGxlci52YWx1ZS5hYm9ydCgpO1xuICogYGBgXG4gKlxuICogSW4gYW4gT2JzaWRpYW4gcGx1Z2luIHRoZSBzYW1lIGluc3RhbmNlIGlzIGFsc28gcmVhY2hhYmxlIGFzIGBfX29ic2lkaWFuRGV2VXRpbHMuc2hhcmVkQWJvcnRDb250cm9sbGVyLnZhbHVlYC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgc2hhcmVkIHtAbGluayBSZXNldHRhYmxlQWJvcnRDb250cm9sbGVyfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNoYXJlZEFib3J0Q29udHJvbGxlcigpOiBSZXNldHRhYmxlQWJvcnRDb250cm9sbGVyIHtcbiAgcmV0dXJuIGdldFR5cGVzY3JpcHRMaWJTdGF0ZSgnc2hhcmVkQWJvcnRDb250cm9sbGVyJywgbmV3IFJlc2V0dGFibGVBYm9ydENvbnRyb2xsZXIoKSkudmFsdWU7XG59XG5cbi8qKlxuICogVGhlIHNpZ25hbCBvZiB0aGUgYXBwLXdpZGUgc2hhcmVkIHtAbGluayBSZXNldHRhYmxlQWJvcnRDb250cm9sbGVyfS5cbiAqXG4gKiBDYWxsIGl0IGF0IHRoZSBzdGFydCBvZiBlYWNoIG9wZXJhdGlvbi4gTmV2ZXIgY2FjaGUgaXQsIG9yIHRoZSBvcGVyYXRpb24gYWZ0ZXIgdGhlIGZpcnN0IGFib3J0IHN0YXJ0c1xuICogYWxyZWFkeSBhYm9ydGVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCBsb29wKHtcbiAqICAgYWJvcnRTaWduYWw6IGdldFNoYXJlZEFib3J0U2lnbmFsKCksXG4gKiAgIGJ1aWxkTm90aWNlTWVzc2FnZTogKGZpbGUpID0+IGBQcm9jZXNzaW5nICR7ZmlsZS5wYXRofWAsXG4gKiAgIGl0ZW1zOiBhcHAudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpLFxuICogICBwcm9jZXNzSXRlbTogYXN5bmMgKGZpbGUpID0+IHsgYXdhaXQgcHJvY2Vzc0ZpbGUoZmlsZSk7IH1cbiAqIH0pO1xuICogYGBgXG4gKlxuICogQHJldHVybnMgVGhlIHtAbGluayBBYm9ydFNpZ25hbH0gb2YgdGhlIHNoYXJlZCB7QGxpbmsgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlcn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaGFyZWRBYm9ydFNpZ25hbCgpOiBBYm9ydFNpZ25hbCB7XG4gIHJldHVybiBnZXRTaGFyZWRBYm9ydENvbnRyb2xsZXIoKS5zaWduYWw7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhYm9ydCBsaXN0ZW5lciB0byBhbiBhYm9ydCBzaWduYWwgYW5kIGNhbGxzIHRoZSBjYWxsYmFjayBpZiB0aGUgYWJvcnQgc2lnbmFsIGlzIGFscmVhZHkgYWJvcnRlZC5cbiAqXG4gKiBAcGFyYW0gYWJvcnRTaWduYWwgLSBUaGUgYWJvcnQgc2lnbmFsIHRvIGFkZCB0aGUgbGlzdGVuZXIgdG8uXG4gKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aGVuIHRoZSBhYm9ydCBzaWduYWwgYWJvcnRzLlxuICogQHJldHVybnMgQSB7QGxpbmsgRGlzcG9zYWJsZX0gdGhhdCByZW1vdmVzIHRoZSBhYm9ydCBsaXN0ZW5lciB3aGVuIGRpc3Bvc2VkLCBmb3IgdXNlIHdpdGggYHVzaW5nYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9uQWJvcnQoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsLCBjYWxsYmFjazogKGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCkgPT4gdm9pZCk6IERpc3Bvc2FibGUge1xuICBpZiAoYWJvcnRTaWduYWwuYWJvcnRlZCkge1xuICAgIGNhbGxiYWNrKGFib3J0U2lnbmFsKTtcbiAgICByZXR1cm4gbmV3IENhbGxiYWNrRGlzcG9zYWJsZSh7IGNhbGxiYWNrOiBub29wIH0pO1xuICB9XG5cbiAgYWJvcnRTaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCB3cmFwcGVkQ2FsbGJhY2ssIHsgb25jZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIG5ldyBDYWxsYmFja0Rpc3Bvc2FibGUoe1xuICAgIGNhbGxiYWNrOiAoKTogdm9pZCA9PiB7XG4gICAgICBhYm9ydFNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIHdyYXBwZWRDYWxsYmFjayk7XG4gICAgfVxuICB9KTtcblxuICBmdW5jdGlvbiB3cmFwcGVkQ2FsbGJhY2soJGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNhbGxiYWNrKCRldmVudC50YXJnZXQgYXMgQWJvcnRTaWduYWwpO1xuICB9XG59XG5cbi8qKlxuICogV2FpdHMgZm9yIGFuIGFib3J0IHNpZ25hbCB0byBhYm9ydCBhbmQgcmVzb2x2ZXMgd2l0aCBpdHMgcmVhc29uLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIEV4cGVjdGVkIHR5cGUgb2YgYGFib3J0U2lnbmFsLnJlYXNvbmAuXG4gKiBAcGFyYW0gYWJvcnRTaWduYWwgLSBUaGUgYWJvcnQgc2lnbmFsIHRvIHdhaXQgZm9yLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZWFzb24gb2YgdGhlIGFib3J0IHNpZ25hbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3JBYm9ydDxUID0gdW5rbm93bj4oYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKTogUHJvbWlzZTxUPjtcbi8qKlxuICogV2FpdHMgZm9yIGFuIGFib3J0IHNpZ25hbCB0byBhYm9ydCBhbmQgcmVqZWN0cyB3aXRoIGl0cyByZWFzb24uXG4gKlxuICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byB3YWl0IGZvci5cbiAqIEBwYXJhbSBzaG91bGRSZWplY3RPbkFib3J0IC0gV2hldGhlciB0byByZWplY3QgdGhlIHByb21pc2UgaWYgdGhlIGFib3J0IHNpZ25hbCBpcyBhYm9ydGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZWplY3RzIHdpdGggdGhlIHJlYXNvbiBvZiB0aGUgYWJvcnQgc2lnbmFsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2FpdEZvckFib3J0KGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCwgc2hvdWxkUmVqZWN0T25BYm9ydDogdHJ1ZSk6IFByb21pc2U8bmV2ZXI+O1xuLyoqXG4gKiBXYWl0cyBmb3IgYW4gYWJvcnQgc2lnbmFsIHRvIGFib3J0IGFuZCByZXNvbHZlcyB3aXRoIGl0cyByZWFzb24uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gRXhwZWN0ZWQgdHlwZSBvZiBgYWJvcnRTaWduYWwucmVhc29uYC5cbiAqIEBwYXJhbSBhYm9ydFNpZ25hbCAtIFRoZSBhYm9ydCBzaWduYWwgdG8gd2FpdCBmb3IuXG4gKiBAcGFyYW0gc2hvdWxkUmVqZWN0T25BYm9ydCAtIFdoZXRoZXIgdG8gcmVqZWN0IHRoZSBwcm9taXNlIGlmIHRoZSBhYm9ydCBzaWduYWwgaXMgYWJvcnRlZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgcmVhc29uIG9mIHRoZSBhYm9ydCBzaWduYWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3YWl0Rm9yQWJvcnQ8VCA9IHVua25vd24+KGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCwgc2hvdWxkUmVqZWN0T25BYm9ydD86IGJvb2xlYW4pOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPFQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBvbkFib3J0KGFib3J0U2lnbmFsLCAoKSA9PiB7XG4gICAgICBpZiAoc2hvdWxkUmVqZWN0T25BYm9ydCkge1xuICAgICAgICByZWplY3QoYWJvcnRTaWduYWwucmVhc29uIGFzIEVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoYWJvcnRTaWduYWwucmVhc29uIGFzIFQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsWUFBWTtBQUNyQixTQUFTLDZCQUE2QjtBQUsvQixNQUFNLG1CQUFtQjtBQThCekIsTUFBTSwwQkFBMEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNckMsSUFBVyxTQUFzQjtBQUMvQixXQUFPLEtBQUssZ0JBQWdCO0FBQUEsRUFDOUI7QUFBQSxFQUVRLGtCQUFrQixJQUFJLGdCQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUXZDLE1BQU0sUUFBd0I7QUFDbkMsU0FBSyxnQkFBZ0IsTUFBTSxNQUFNO0FBQ2pDLFNBQUssa0JBQWtCLElBQUksZ0JBQWdCO0FBQUEsRUFDN0M7QUFDRjtBQVFPLFNBQVMsa0JBQWtCLG1CQUE2RDtBQUM3RixRQUFNLGVBQWUsa0JBQWtCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFdBQVc7QUFHNUUsTUFBSSxPQUFPLFlBQVksUUFBUSxZQUFZO0FBRXpDLFdBQU8sWUFBWSxJQUFJLFlBQVk7QUFBQSxFQUNyQztBQUVBLE1BQUksYUFBYSxXQUFXLEdBQUc7QUFDN0IsV0FBTyxpQkFBaUI7QUFBQSxFQUMxQjtBQUVBLE1BQUksYUFBYSxXQUFXLEtBQUssYUFBYSxDQUFDLEdBQUc7QUFDaEQsV0FBTyxhQUFhLENBQUM7QUFBQSxFQUN2QjtBQUVBLFFBQU0sa0JBQWtCLElBQUksZ0JBQWdCO0FBRTVDLGFBQVcsZUFBZSxjQUFjO0FBQ3RDLFFBQUksWUFBWSxTQUFTO0FBQ3ZCLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLFFBQU0sMEJBQXdDLE1BQU0sS0FBSyxjQUFjLENBQUMsZ0JBQWdCLFFBQVEsYUFBYSxXQUFXLENBQUM7QUFFekgsUUFBTSxpQ0FBaUMsSUFBSSxrQkFBa0IsRUFBRSxhQUFhLHdCQUF3QixDQUFDO0FBRXJHLFNBQU8sZ0JBQWdCO0FBRXZCLFdBQVMsWUFBWSxhQUFnQztBQUNuRCxtQ0FBK0IsUUFBUTtBQUN2QyxvQkFBZ0IsTUFBTSxZQUFZLE1BQU07QUFBQSxFQUMxQztBQUNGO0FBT08sU0FBUyxtQkFBZ0M7QUFDOUMsU0FBTyxJQUFJLGdCQUFnQixFQUFFO0FBQy9CO0FBUU8sU0FBUyxtQkFBbUIsdUJBQTRDO0FBQzdFLE1BQUksMEJBQTBCLGtCQUFrQjtBQUM5QyxXQUFPLGlCQUFpQjtBQUFBLEVBQzFCO0FBVUEsUUFBTSxrQkFBa0IsSUFBSSxnQkFBZ0I7QUFFNUMsYUFBVyxXQUFXLE1BQU07QUFFMUIsb0JBQWdCLE1BQU0sSUFBSSxhQUFhLGdCQUFnQixPQUFPLHFCQUFxQixDQUFDLGlCQUFpQixjQUFjLENBQUM7QUFBQSxFQUN0SCxHQUFHLHFCQUFxQjtBQUN4QixTQUFPLGdCQUFnQjtBQUN6QjtBQW1CTyxTQUFTLDJCQUFzRDtBQUNwRSxTQUFPLHNCQUFzQix5QkFBeUIsSUFBSSwwQkFBMEIsQ0FBQyxFQUFFO0FBQ3pGO0FBb0JPLFNBQVMsdUJBQW9DO0FBQ2xELFNBQU8seUJBQXlCLEVBQUU7QUFDcEM7QUFTTyxTQUFTLFFBQVEsYUFBMEIsVUFBMEQ7QUFDMUcsTUFBSSxZQUFZLFNBQVM7QUFDdkIsYUFBUyxXQUFXO0FBQ3BCLFdBQU8sSUFBSSxtQkFBbUIsRUFBRSxVQUFVLEtBQUssQ0FBQztBQUFBLEVBQ2xEO0FBRUEsY0FBWSxpQkFBaUIsU0FBUyxpQkFBaUIsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNyRSxTQUFPLElBQUksbUJBQW1CO0FBQUEsSUFDNUIsVUFBVSxNQUFZO0FBQ3BCLGtCQUFZLG9CQUFvQixTQUFTLGVBQWU7QUFBQSxJQUMxRDtBQUFBLEVBQ0YsQ0FBQztBQUVELFdBQVMsZ0JBQWdCLFFBQXFCO0FBQzVDLGFBQVMsT0FBTyxNQUFxQjtBQUFBLEVBQ3ZDO0FBQ0Y7QUEwQk8sU0FBUyxhQUEwQixhQUEwQixxQkFBMkM7QUFDN0csU0FBTyxJQUFJLFFBQVcsQ0FBQyxTQUFTLFdBQVc7QUFDekMsWUFBUSxhQUFhLE1BQU07QUFDekIsVUFBSSxxQkFBcUI7QUFDdkIsZUFBTyxZQUFZLE1BQWU7QUFBQSxNQUNwQyxPQUFPO0FBQ0wsZ0JBQVEsWUFBWSxNQUFXO0FBQUEsTUFDakM7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNILENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,24 @@
1
+ /// <reference path="./library.d.mts" />
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,60 @@
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
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ // eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
23
+ const existingProcess = globalThis.process;
24
+
25
+ if (!existingProcess) {
26
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
27
+ globalThis.process = browserProcess;
28
+ return;
29
+ }
30
+
31
+ if (existingProcess.versions?.node) {
32
+ return;
33
+ }
34
+
35
+ const existingProcessRecord = existingProcess;
36
+
37
+ for (const [key, value] of Object.entries(browserProcess)) {
38
+ existingProcessRecord[key] ??= value;
39
+ }
40
+
41
+ existingProcessRecord['browser'] = true;
42
+ }
43
+
44
+ (function initEsm() {
45
+ ensureDisposeSymbols();
46
+ ensureBrowserProcess();
47
+ })();
48
+ })();
49
+
50
+ function createAggregateError(errors) {
51
+ return new AggregateError(errors, getAggregateErrorMessage(errors));
52
+ }
53
+ function getAggregateErrorMessage(errors) {
54
+ const [singleError] = errors;
55
+ return errors.length === 1 && singleError instanceof Error && singleError.message !== "" ? singleError.message : `${String(errors.length)} error(s) occurred`;
56
+ }
57
+ export {
58
+ createAggregateError
59
+ };
60
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FnZ3JlZ2F0ZS1lcnJvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGEgdXRpbGl0eSBmdW5jdGlvbiBmb3IgYnVpbGRpbmcgYW4gYEFnZ3JlZ2F0ZUVycm9yYCB0aGF0IG5hbWVzIHdoYXQgZmFpbGVkLlxuICovXG5cbi8qKlxuICogQnVpbGRzIGFuIGBBZ2dyZWdhdGVFcnJvcmAgb3ZlciBjb2xsZWN0ZWQgZXJyb3JzLCBnaXZpbmcgaXQgYSBtZXNzYWdlIHRoYXQgbmFtZXMgd2hhdCBmYWlsZWQuXG4gKlxuICogYEFnZ3JlZ2F0ZUVycm9yYCdzIG93biBtZXNzYWdlIGlzIG9wdGlvbmFsLCBhbmQgb21pdHRpbmcgaXQgaXMgbG9zc3kgaW4gYSB3YXkgdGhhdCBvbmx5IHNob3dzIHVwXG4gKiBvdXRzaWRlIHRoaXMgbGlicmFyeS4ge0BsaW5rIGVycm9yIWVycm9yVG9TdHJpbmd9IHdhbGtzIGBlcnJvcnNgIGFuZCBwcmludHMgdGhlIHdob2xlIHRyZWUsIHNvIHRoZVxuICogY29uc29sZSBpcyBmaW5lOyBldmVyeXRoaW5nIHRoYXQgcmVhZHMgYG1lc3NhZ2VgIGlzIG5vdC4gT2JzaWRpYW4ncyBvd24gcGx1Z2luLWxvYWQgZmFpbHVyZSByZXBvcnQsIGFcbiAqIGBOb3RpY2VgIGJ1aWx0IGZyb20gYW4gZXJyb3IsIGFuZCBhIGNvbnN1bWVyJ3MgYHJlamVjdHMudG9UaHJvdyhtZXNzYWdlKWAgYWxsIHNlZSBhbiBlbXB0eSBzdHJpbmcgYW5kXG4gKiByZWFkIGl0IGFzIFwibm90aGluZyB3YXMgdGhyb3duXCIuIE5lc3RpbmcgY29tcG91bmRzIGl0OiBhbiBhZ2dyZWdhdGUgaG9sZGluZyBvbmUgYWdncmVnYXRlIHB1dHMgdHdvIGVtcHR5XG4gKiBsYXllcnMgYWJvdmUgdGhlIG9ubHkgc2VudGVuY2UgdGhhdCBzYXlzIHdoYXQgd2VudCB3cm9uZy5cbiAqXG4gKiBBIHNpbmdsZSBjb2xsZWN0ZWQgZXJyb3IgdGhlcmVmb3JlIGxlbmRzIGl0cyBvd24gbWVzc2FnZSB0byB0aGUgYWdncmVnYXRlLCB3aGljaCBtYWtlcyBhIG9uZS1jYXVzZVxuICogY2hhaW4gcmVhZCBpZGVudGljYWxseSBhdCBldmVyeSBsZXZlbC4gU2V2ZXJhbCBiZWNvbWUgYSBjb3VudCwgd2l0aCB0aGUgZGV0YWlsIG9uZSBsZXZlbCBkb3duIHdoZXJlXG4gKiB7QGxpbmsgZXJyb3IhZXJyb3JUb1N0cmluZ30gYWxyZWFkeSBwcmludHMgaXQuXG4gKlxuICogQHBhcmFtIGVycm9ycyAtIFRoZSBjb2xsZWN0ZWQgZXJyb3JzIHRvIGFnZ3JlZ2F0ZS5cbiAqIEByZXR1cm5zIEFuIGBBZ2dyZWdhdGVFcnJvcmAgaG9sZGluZyBldmVyeSBjb2xsZWN0ZWQgZXJyb3IsIHdpdGggYSBub24tZW1wdHkgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFnZ3JlZ2F0ZUVycm9yKGVycm9yczogcmVhZG9ubHkgdW5rbm93bltdKTogQWdncmVnYXRlRXJyb3Ige1xuICByZXR1cm4gbmV3IEFnZ3JlZ2F0ZUVycm9yKGVycm9ycywgZ2V0QWdncmVnYXRlRXJyb3JNZXNzYWdlKGVycm9ycykpO1xufVxuXG5mdW5jdGlvbiBnZXRBZ2dyZWdhdGVFcnJvck1lc3NhZ2UoZXJyb3JzOiByZWFkb25seSB1bmtub3duW10pOiBzdHJpbmcge1xuICBjb25zdCBbc2luZ2xlRXJyb3JdID0gZXJyb3JzO1xuICAvLyBBIGxvbmUgZmFpbHVyZSBsZW5kcyBpdHMgb3duIG1lc3NhZ2UsIHdoaWNoIGlzIHdoYXQgbWFrZXMgYSBvbmUtY2F1c2UgY2hhaW4gcmVhZCBpZGVudGljYWxseSBhdCBldmVyeVxuICAvLyBsZXZlbCBvZiBuZXN0aW5nLiBBbnl0aGluZyBlbHNlIGlzIGEgY291bnQsIGJlY2F1c2UgcGlja2luZyBvbmUgb2Ygc2V2ZXJhbCBtZXNzYWdlcyB0byBwcm9tb3RlIHdvdWxkXG4gIC8vIGRlc2NyaWJlIHRoZSBmYWlsdXJlIGFzIGlmIHRoZSBvdGhlcnMgaGFkIG5vdCBoYXBwZW5lZC5cbiAgcmV0dXJuIGVycm9ycy5sZW5ndGggPT09IDEgJiYgc2luZ2xlRXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBzaW5nbGVFcnJvci5tZXNzYWdlICE9PSAnJyA/IHNpbmdsZUVycm9yLm1lc3NhZ2UgOiBgJHtTdHJpbmcoZXJyb3JzLmxlbmd0aCl9IGVycm9yKHMpIG9jY3VycmVkYDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Qk8sU0FBUyxxQkFBcUIsUUFBNEM7QUFDL0UsU0FBTyxJQUFJLGVBQWUsUUFBUSx5QkFBeUIsTUFBTSxDQUFDO0FBQ3BFO0FBRUEsU0FBUyx5QkFBeUIsUUFBb0M7QUFDcEUsUUFBTSxDQUFDLFdBQVcsSUFBSTtBQUl0QixTQUFPLE9BQU8sV0FBVyxLQUFLLHVCQUF1QixTQUFTLFlBQVksWUFBWSxLQUFLLFlBQVksVUFBVSxHQUFHLE9BQU8sT0FBTyxNQUFNLENBQUM7QUFDM0k7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,16 @@
1
+ /// <reference path="./library.d.mts" />
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,58 @@
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
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ // eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
23
+ const existingProcess = globalThis.process;
24
+
25
+ if (!existingProcess) {
26
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
27
+ globalThis.process = browserProcess;
28
+ return;
29
+ }
30
+
31
+ if (existingProcess.versions?.node) {
32
+ return;
33
+ }
34
+
35
+ const existingProcessRecord = existingProcess;
36
+
37
+ for (const [key, value] of Object.entries(browserProcess)) {
38
+ existingProcessRecord[key] ??= value;
39
+ }
40
+
41
+ existingProcessRecord['browser'] = true;
42
+ }
43
+
44
+ (function initEsm() {
45
+ ensureDisposeSymbols();
46
+ ensureBrowserProcess();
47
+ })();
48
+ })();
49
+
50
+ function toArrayBuffer(data) {
51
+ const buffer = new ArrayBuffer(data.byteLength);
52
+ new Uint8Array(buffer).set(data);
53
+ return buffer;
54
+ }
55
+ export {
56
+ toArrayBuffer
57
+ };
58
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FycmF5LWJ1ZmZlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB7QGxpbmsgQXJyYXlCdWZmZXJ9IG9iamVjdHMuXG4gKi9cblxuLyoqXG4gKiBDb3BpZXMgYnl0ZXMgaW50byBhIGZyZXNoIHtAbGluayBBcnJheUJ1ZmZlcn0uXG4gKlxuICogUmVhY2hpbmcgZm9yIGBkYXRhLmJ1ZmZlcmAgd291bGQgYmUgY2hlYXBlciBidXQgd3Jvbmc6IGl0cyB0eXBlIGlzIGBBcnJheUJ1ZmZlckxpa2VgLCBhbmQgdGhlIHZpZXcgbWF5XG4gKiBjb3ZlciBvbmx5IHBhcnQgb2YgYSBsYXJnZXIgYnVmZmVyLCBzbyB0aGUgY2FsbGVyIGNhbiBlbmQgdXAgaGFuZGVkIGJ5dGVzIGl0IG5ldmVyIGFza2VkIGZvci5cbiAqXG4gKiBAcGFyYW0gZGF0YSAtIFRoZSBieXRlcyB0byBjb3B5LlxuICogQHJldHVybnMgQW4ge0BsaW5rIEFycmF5QnVmZmVyfSBob2xkaW5nIGV4YWN0bHkgdGhvc2UgYnl0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0FycmF5QnVmZmVyKGRhdGE6IFVpbnQ4QXJyYXkpOiBBcnJheUJ1ZmZlciB7XG4gIGNvbnN0IGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihkYXRhLmJ5dGVMZW5ndGgpO1xuICBuZXcgVWludDhBcnJheShidWZmZXIpLnNldChkYXRhKTtcbiAgcmV0dXJuIGJ1ZmZlcjtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlTyxTQUFTLGNBQWMsTUFBK0I7QUFDM0QsUUFBTSxTQUFTLElBQUksWUFBWSxLQUFLLFVBQVU7QUFDOUMsTUFBSSxXQUFXLE1BQU0sRUFBRSxJQUFJLElBQUk7QUFDL0IsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,46 @@
1
+ /// <reference path="./library.d.mts" />
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;
@@ -0,0 +1,93 @@
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
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ // eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
23
+ const existingProcess = globalThis.process;
24
+
25
+ if (!existingProcess) {
26
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
27
+ globalThis.process = browserProcess;
28
+ return;
29
+ }
30
+
31
+ if (existingProcess.versions?.node) {
32
+ return;
33
+ }
34
+
35
+ const existingProcessRecord = existingProcess;
36
+
37
+ for (const [key, value] of Object.entries(browserProcess)) {
38
+ existingProcessRecord[key] ??= value;
39
+ }
40
+
41
+ existingProcessRecord['browser'] = true;
42
+ }
43
+
44
+ (function initEsm() {
45
+ ensureDisposeSymbols();
46
+ ensureBrowserProcess();
47
+ })();
48
+ })();
49
+
50
+ function filterInPlace(array, shouldKeep) {
51
+ const length = array.length;
52
+ let writeIndex = 0;
53
+ for (let readIndex = 0; readIndex < length; readIndex++) {
54
+ if (!Object.hasOwn(array, readIndex)) {
55
+ continue;
56
+ }
57
+ const current = array[readIndex];
58
+ if (shouldKeep(current, readIndex, array)) {
59
+ array[writeIndex++] = current;
60
+ }
61
+ }
62
+ array.length = writeIndex;
63
+ }
64
+ function snapshot(collection) {
65
+ return [...collection];
66
+ }
67
+ function unique(array) {
68
+ const set = /* @__PURE__ */ new Set();
69
+ return array.filter((value) => {
70
+ if (set.has(value)) {
71
+ return false;
72
+ }
73
+ set.add(value);
74
+ return true;
75
+ });
76
+ }
77
+ function uniqueInPlace(array) {
78
+ const set = /* @__PURE__ */ new Set();
79
+ filterInPlace(array, (value) => {
80
+ if (set.has(value)) {
81
+ return false;
82
+ }
83
+ set.add(value);
84
+ return true;
85
+ });
86
+ }
87
+ export {
88
+ filterInPlace,
89
+ snapshot,
90
+ unique,
91
+ uniqueInPlace
92
+ };
93
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FycmF5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQXJyYXkgdXRpbGl0aWVzLlxuICovXG5cbi8qKlxuICogRmlsdGVyIGFuIGFycmF5IGluIHBsYWNlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBhcnJheSBlbGVtZW50cy5cbiAqIEBwYXJhbSBhcnJheSAtIFRoZSBhcnJheSB0byBmaWx0ZXIuXG4gKiBAcGFyYW0gc2hvdWxkS2VlcCAtIFRoZSBwcmVkaWNhdGUgdG8gZmlsdGVyIHRoZSBhcnJheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckluUGxhY2U8VD4oYXJyYXk6IFRbXSwgc2hvdWxkS2VlcDogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBib29sZWFuKTogdm9pZCB7XG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgbGV0IHdyaXRlSW5kZXggPSAwO1xuICBmb3IgKGxldCByZWFkSW5kZXggPSAwOyByZWFkSW5kZXggPCBsZW5ndGg7IHJlYWRJbmRleCsrKSB7XG4gICAgaWYgKCFPYmplY3QuaGFzT3duKGFycmF5LCByZWFkSW5kZXgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50ID0gYXJyYXlbcmVhZEluZGV4XSBhcyBUO1xuICAgIGlmIChzaG91bGRLZWVwKGN1cnJlbnQsIHJlYWRJbmRleCwgYXJyYXkpKSB7XG4gICAgICBhcnJheVt3cml0ZUluZGV4KytdID0gY3VycmVudDtcbiAgICB9XG4gIH1cbiAgYXJyYXkubGVuZ3RoID0gd3JpdGVJbmRleDtcbn1cblxuLyoqXG4gKiBDb3BpZXMgYW4gaXRlcmFibGUgaW50byBhIG5ldyBhcnJheSwgc28gaXQgY2FuIGJlIHNhZmVseSBpdGVyYXRlZCB3aGlsZSB0aGUgb3JpZ2luYWwgaXMgbW9kaWZpZWQuXG4gKlxuICogVXNlIHRoaXMgd2hlbmV2ZXIgdGhlIGxvb3AgYm9keSAob3IgYW4gYXdhaXRlZCBjYWxsIGluc2lkZSBpdCkgYWRkcyB0byBvciByZW1vdmVzIGZyb20gdGhlIGNvbGxlY3Rpb25cbiAqIGJlaW5nIGl0ZXJhdGVkIFx1MjAxNCByZWxlYXNpbmcgbG9ja3MsIGNhbmNlbGxpbmcgdGltZXJzLCBzZXR0bGluZyBwZW5kaW5nIG9wZXJhdGlvbnMuIEl0ZXJhdGluZyB0aGUgbGl2ZVxuICogY29sbGVjdGlvbiBpbiB0aG9zZSBjYXNlcyBzaWxlbnRseSBza2lwcyBlbnRyaWVzLlxuICpcbiAqIFByZWZlciB0aGlzIG92ZXIgYW4gaW5saW5lIGBbLi4uY29sbGVjdGlvbl1gOiBpdCBzYXlzIHdoeSB0aGUgY29weSBleGlzdHMsIGFuZCBpdCBrZWVwcyB0aGUgY2FsbCBzaXRlXG4gKiBjbGVhciBvZiBgdW5pY29ybi9uby11c2VsZXNzLXNwcmVhZGAsIHdoaWNoIGNhbm5vdCB0ZWxsIGEgZGVmZW5zaXZlIGNvcHkgZnJvbSBhIHJlZHVuZGFudCBvbmUuXG4gKlxuICogVGhlIHJlc3VsdCBpcyBgcmVhZG9ubHlgOiBpdCBleGlzdHMgdG8gYmUgaXRlcmF0ZWQsIG5vdCB3b3JrZWQgb24uIE11dGF0aW5nIGl0IHdvdWxkIGNoYW5nZSBhIHRocm93YXdheVxuICogY29weSBhbmQgbGVhdmUgdGhlIG9yaWdpbmFsIHVudG91Y2hlZCwgd2hpY2ggaXMgbmV2ZXIgd2hhdCB0aGUgY2FsbGVyIHdhbnRzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBlbGVtZW50cy5cbiAqIEBwYXJhbSBjb2xsZWN0aW9uIC0gVGhlIGNvbGxlY3Rpb24gdG8gY29weS5cbiAqIEByZXR1cm5zIEEgbmV3IGFycmF5IGhvbGRpbmcgdGhlIGNvbGxlY3Rpb24ncyBlbGVtZW50cyBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNuYXBzaG90PFQ+KGNvbGxlY3Rpb246IEl0ZXJhYmxlPFQ+KTogcmVhZG9ubHkgVFtdIHtcbiAgcmV0dXJuIFsuLi5jb2xsZWN0aW9uXTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZHVwbGljYXRlcyBmcm9tIGFuIGFycmF5LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBhcnJheSBlbGVtZW50cy5cbiAqIEBwYXJhbSBhcnJheSAtIFRoZSBhcnJheSB0byByZW1vdmUgZHVwbGljYXRlcyBmcm9tLlxuICogQHJldHVybnMgVGhlIGFycmF5IHdpdGggZHVwbGljYXRlcyByZW1vdmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5pcXVlPFQ+KGFycmF5OiByZWFkb25seSBUW10pOiBUW10ge1xuICBjb25zdCBzZXQgPSBuZXcgU2V0PFQ+KCk7XG4gIHJldHVybiBhcnJheS5maWx0ZXIoKHZhbHVlKSA9PiB7XG4gICAgaWYgKHNldC5oYXModmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNldC5hZGQodmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZHVwbGljYXRlcyBmcm9tIGFuIGFycmF5IGluIHBsYWNlLlxuICpcbiAqIEBwYXJhbSBhcnJheSAtIFRoZSBhcnJheSB0byByZW1vdmUgZHVwbGljYXRlcyBmcm9tLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5pcXVlSW5QbGFjZShhcnJheTogdW5rbm93bltdKTogdm9pZCB7XG4gIGNvbnN0IHNldCA9IG5ldyBTZXQ8dW5rbm93bj4oKTtcbiAgZmlsdGVySW5QbGFjZShhcnJheSwgKHZhbHVlKSA9PiB7XG4gICAgaWYgKHNldC5oYXModmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNldC5hZGQodmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhTyxTQUFTLGNBQWlCLE9BQVksWUFBb0U7QUFDL0csUUFBTSxTQUFTLE1BQU07QUFDckIsTUFBSSxhQUFhO0FBQ2pCLFdBQVMsWUFBWSxHQUFHLFlBQVksUUFBUSxhQUFhO0FBQ3ZELFFBQUksQ0FBQyxPQUFPLE9BQU8sT0FBTyxTQUFTLEdBQUc7QUFDcEM7QUFBQSxJQUNGO0FBRUEsVUFBTSxVQUFVLE1BQU0sU0FBUztBQUMvQixRQUFJLFdBQVcsU0FBUyxXQUFXLEtBQUssR0FBRztBQUN6QyxZQUFNLFlBQVksSUFBSTtBQUFBLElBQ3hCO0FBQUEsRUFDRjtBQUNBLFFBQU0sU0FBUztBQUNqQjtBQW1CTyxTQUFTLFNBQVksWUFBdUM7QUFDakUsU0FBTyxDQUFDLEdBQUcsVUFBVTtBQUN2QjtBQVNPLFNBQVMsT0FBVSxPQUEwQjtBQUNsRCxRQUFNLE1BQU0sb0JBQUksSUFBTztBQUN2QixTQUFPLE1BQU0sT0FBTyxDQUFDLFVBQVU7QUFDN0IsUUFBSSxJQUFJLElBQUksS0FBSyxHQUFHO0FBQ2xCLGFBQU87QUFBQSxJQUNUO0FBQ0EsUUFBSSxJQUFJLEtBQUs7QUFDYixXQUFPO0FBQUEsRUFDVCxDQUFDO0FBQ0g7QUFPTyxTQUFTLGNBQWMsT0FBd0I7QUFDcEQsUUFBTSxNQUFNLG9CQUFJLElBQWE7QUFDN0IsZ0JBQWMsT0FBTyxDQUFDLFVBQVU7QUFDOUIsUUFBSSxJQUFJLElBQUksS0FBSyxHQUFHO0FBQ2xCLGFBQU87QUFBQSxJQUNUO0FBQ0EsUUFBSSxJQUFJLEtBQUs7QUFDYixXQUFPO0FBQUEsRUFDVCxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==