@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.
- package/@types/debug/package.json +4 -0
- package/LICENSE +21 -0
- package/README.md +7 -1
- package/dist/lib/cjs/@types/debug.d.cts +21 -0
- package/dist/lib/cjs/abort-controller.cjs +202 -0
- package/dist/lib/cjs/abort-controller.d.cts +135 -0
- package/dist/lib/cjs/aggregate-error.cjs +98 -0
- package/dist/lib/cjs/aggregate-error.d.cts +24 -0
- package/dist/lib/cjs/array-buffer.cjs +96 -0
- package/dist/lib/cjs/array-buffer.d.cts +16 -0
- package/dist/lib/cjs/array.cjs +134 -0
- package/dist/lib/cjs/array.d.cts +46 -0
- package/dist/lib/cjs/async-events.cjs +466 -0
- package/dist/lib/cjs/async-events.d.cts +456 -0
- package/dist/lib/cjs/async-operation-hook.cjs +113 -0
- package/dist/lib/cjs/async-operation-hook.d.cts +59 -0
- package/dist/lib/cjs/async.cjs +521 -0
- package/dist/lib/cjs/async.d.cts +414 -0
- package/dist/lib/cjs/beeper.cjs +126 -0
- package/dist/lib/cjs/beeper.d.cts +21 -0
- package/dist/lib/cjs/blob.cjs +160 -0
- package/dist/lib/cjs/blob.d.cts +59 -0
- package/dist/lib/cjs/bytes.cjs +114 -0
- package/dist/lib/cjs/bytes.d.cts +17 -0
- package/dist/lib/cjs/debug-controller.cjs +80 -0
- package/dist/lib/cjs/debug-controller.d.cts +87 -0
- package/dist/lib/cjs/debug.cjs +235 -0
- package/dist/lib/cjs/debug.d.cts +66 -0
- package/dist/lib/cjs/desktop-zip-extractor.cjs +215 -0
- package/dist/lib/cjs/desktop-zip-extractor.d.cts +95 -0
- package/dist/lib/cjs/disposable.cjs +414 -0
- package/dist/lib/cjs/disposable.d.cts +387 -0
- package/dist/lib/cjs/enum.cjs +100 -0
- package/dist/lib/cjs/enum.d.cts +24 -0
- package/dist/lib/cjs/error.cjs +297 -0
- package/dist/lib/cjs/error.d.cts +181 -0
- package/dist/lib/cjs/function.cjs +141 -0
- package/dist/lib/cjs/function.d.cts +128 -0
- package/dist/lib/cjs/html-element.cjs +341 -0
- package/dist/lib/cjs/html-element.d.cts +199 -0
- package/dist/lib/cjs/index.cjs +195 -0
- package/dist/lib/cjs/index.d.cts +33 -0
- package/dist/lib/cjs/jpeg-metadata.cjs +228 -0
- package/dist/lib/cjs/jpeg-metadata.d.cts +42 -0
- package/dist/lib/cjs/library.cjs +158 -0
- package/dist/lib/cjs/library.d.cts +96 -0
- package/dist/lib/cjs/object-utils.cjs +617 -0
- package/dist/lib/cjs/object-utils.d.cts +298 -0
- package/dist/lib/cjs/path.cjs +202 -0
- package/dist/lib/cjs/path.d.cts +154 -0
- package/dist/lib/cjs/reg-exp.cjs +254 -0
- package/dist/lib/cjs/reg-exp.d.cts +87 -0
- package/dist/lib/cjs/string.cjs +326 -0
- package/dist/lib/cjs/string.d.cts +361 -0
- package/dist/lib/cjs/transformers/date-transformer.cjs +129 -0
- package/dist/lib/cjs/transformers/date-transformer.d.cts +39 -0
- package/dist/lib/cjs/transformers/group-transformer.cjs +173 -0
- package/dist/lib/cjs/transformers/group-transformer.d.cts +70 -0
- package/dist/lib/cjs/transformers/index.cjs +123 -0
- package/dist/lib/cjs/transformers/index.d.cts +9 -0
- package/dist/lib/cjs/transformers/map-transformer.cjs +129 -0
- package/dist/lib/cjs/transformers/map-transformer.d.cts +41 -0
- package/dist/lib/cjs/transformers/set-transformer.cjs +129 -0
- package/dist/lib/cjs/transformers/set-transformer.d.cts +39 -0
- package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +127 -0
- package/dist/lib/cjs/transformers/skip-private-property-transformer.d.cts +36 -0
- package/dist/lib/cjs/transformers/transformer.cjs +170 -0
- package/dist/lib/cjs/transformers/transformer.d.cts +70 -0
- package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +130 -0
- package/dist/lib/cjs/transformers/two-way-map-transformer.d.cts +42 -0
- package/dist/lib/cjs/transformers/typed-transformer.cjs +94 -0
- package/dist/lib/cjs/transformers/typed-transformer.d.cts +39 -0
- package/dist/lib/cjs/two-way-map.cjs +208 -0
- package/dist/lib/cjs/two-way-map.d.cts +101 -0
- package/dist/lib/cjs/type-guards.cjs +128 -0
- package/dist/lib/cjs/type-guards.d.cts +84 -0
- package/dist/lib/cjs/type.cjs +121 -0
- package/dist/lib/cjs/type.d.cts +122 -0
- package/dist/lib/cjs/typescript-lib-state.cjs +126 -0
- package/dist/lib/cjs/typescript-lib-state.d.cts +56 -0
- package/dist/lib/cjs/url.cjs +136 -0
- package/dist/lib/cjs/url.d.cts +74 -0
- package/dist/lib/cjs/value-provider.cjs +100 -0
- package/dist/lib/cjs/value-provider.d.cts +28 -0
- package/dist/lib/cjs/value-wrapper.cjs +144 -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 +135 -0
- package/dist/lib/esm/abort-controller.mjs +159 -0
- package/dist/lib/esm/aggregate-error.d.mts +24 -0
- package/dist/lib/esm/aggregate-error.mjs +60 -0
- package/dist/lib/esm/array-buffer.d.mts +16 -0
- package/dist/lib/esm/array-buffer.mjs +58 -0
- package/dist/lib/esm/array.d.mts +46 -0
- package/dist/lib/esm/array.mjs +93 -0
- package/dist/lib/esm/async-events.d.mts +456 -0
- package/dist/lib/esm/async-events.mjs +427 -0
- package/dist/lib/esm/async-operation-hook.d.mts +59 -0
- package/dist/lib/esm/async-operation-hook.mjs +71 -0
- package/dist/lib/esm/async.d.mts +414 -0
- package/dist/lib/esm/async.mjs +479 -0
- package/dist/lib/esm/beeper.d.mts +21 -0
- package/dist/lib/esm/beeper.mjs +88 -0
- package/dist/lib/esm/blob.d.mts +59 -0
- package/dist/lib/esm/blob.mjs +121 -0
- package/dist/lib/esm/bytes.d.mts +17 -0
- package/dist/lib/esm/bytes.mjs +76 -0
- package/dist/lib/esm/debug-controller.d.mts +87 -0
- package/dist/lib/esm/debug-controller.mjs +50 -0
- package/dist/lib/esm/debug.d.mts +66 -0
- package/dist/lib/esm/debug.mjs +185 -0
- package/dist/lib/esm/desktop-zip-extractor.d.mts +95 -0
- package/dist/lib/esm/desktop-zip-extractor.mjs +180 -0
- package/dist/lib/esm/disposable.d.mts +387 -0
- package/dist/lib/esm/disposable.mjs +360 -0
- package/dist/lib/esm/enum.d.mts +24 -0
- package/dist/lib/esm/enum.mjs +61 -0
- package/dist/lib/esm/error.d.mts +181 -0
- package/dist/lib/esm/error.mjs +248 -0
- package/dist/lib/esm/function.d.mts +128 -0
- package/dist/lib/esm/function.mjs +96 -0
- package/dist/lib/esm/html-element.d.mts +199 -0
- package/dist/lib/esm/html-element.mjs +291 -0
- package/dist/lib/esm/index.d.mts +33 -0
- package/dist/lib/esm/index.mjs +116 -0
- package/dist/lib/esm/jpeg-metadata.d.mts +42 -0
- package/dist/lib/esm/jpeg-metadata.mjs +189 -0
- package/dist/lib/esm/library.d.mts +96 -0
- package/dist/lib/esm/library.mjs +118 -0
- package/dist/lib/esm/object-utils.d.mts +298 -0
- package/dist/lib/esm/object-utils.mjs +567 -0
- package/dist/lib/esm/path.d.mts +154 -0
- package/dist/lib/esm/path.mjs +139 -0
- package/dist/lib/esm/reg-exp.d.mts +87 -0
- package/dist/lib/esm/reg-exp.mjs +213 -0
- package/dist/lib/esm/string.d.mts +361 -0
- package/dist/lib/esm/string.mjs +274 -0
- package/dist/lib/esm/transformers/date-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/date-transformer.mjs +91 -0
- package/dist/lib/esm/transformers/group-transformer.d.mts +70 -0
- package/dist/lib/esm/transformers/group-transformer.mjs +138 -0
- package/dist/lib/esm/transformers/index.d.mts +9 -0
- package/dist/lib/esm/transformers/index.mjs +68 -0
- package/dist/lib/esm/transformers/map-transformer.d.mts +41 -0
- package/dist/lib/esm/transformers/map-transformer.mjs +91 -0
- package/dist/lib/esm/transformers/set-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/set-transformer.mjs +91 -0
- package/dist/lib/esm/transformers/skip-private-property-transformer.d.mts +36 -0
- package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +89 -0
- package/dist/lib/esm/transformers/transformer.d.mts +70 -0
- package/dist/lib/esm/transformers/transformer.mjs +132 -0
- package/dist/lib/esm/transformers/two-way-map-transformer.d.mts +42 -0
- package/dist/lib/esm/transformers/two-way-map-transformer.mjs +92 -0
- package/dist/lib/esm/transformers/typed-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/typed-transformer.mjs +56 -0
- package/dist/lib/esm/two-way-map.d.mts +101 -0
- package/dist/lib/esm/two-way-map.mjs +170 -0
- package/dist/lib/esm/type-guards.d.mts +84 -0
- package/dist/lib/esm/type-guards.mjs +85 -0
- package/dist/lib/esm/type.d.mts +122 -0
- package/dist/lib/esm/type.mjs +83 -0
- package/dist/lib/esm/typescript-lib-state.d.mts +56 -0
- package/dist/lib/esm/typescript-lib-state.mjs +84 -0
- package/dist/lib/esm/url.d.mts +74 -0
- package/dist/lib/esm/url.mjs +94 -0
- package/dist/lib/esm/value-provider.d.mts +28 -0
- package/dist/lib/esm/value-provider.mjs +62 -0
- package/dist/lib/esm/value-wrapper.d.mts +47 -0
- package/dist/lib/esm/value-wrapper.mjs +106 -0
- package/package.json +111 -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
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/// <reference path="./library.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Provides access to the process-wide shared-state bag of the generic, non-Obsidian part of the library.
|
|
6
|
+
*
|
|
7
|
+
* The bag lives on `globalThis` under a `Symbol.for` key, so every copy of this module loaded in one realm shares
|
|
8
|
+
* it, whichever version it is. It holds what must exist once per realm: the debuggers, the `debug` instance and the
|
|
9
|
+
* shared abort controller. Obsidian-specific state stays in `obsidian-dev-utils-state.ts`.
|
|
10
|
+
*
|
|
11
|
+
* The slot is a cross-version wire format: its key and the {@link TypescriptLibStateSlot} shape only ever change
|
|
12
|
+
* additively.
|
|
13
|
+
*/
|
|
14
|
+
import { ValueWrapper } from './value-wrapper.cjs';
|
|
15
|
+
/**
|
|
16
|
+
* The version of the {@link TypescriptLibStateSlot} shape this copy writes.
|
|
17
|
+
*/
|
|
18
|
+
export declare const TYPESCRIPT_LIB_STATE_VERSION = 1;
|
|
19
|
+
/**
|
|
20
|
+
* The key of the global slot holding the {@link TypescriptLibStateSlot}.
|
|
21
|
+
*/
|
|
22
|
+
export declare const TYPESCRIPT_LIB_STATE_KEY: unique symbol;
|
|
23
|
+
/**
|
|
24
|
+
* The shared-state slot stored on `globalThis`.
|
|
25
|
+
*/
|
|
26
|
+
export interface TypescriptLibStateSlot {
|
|
27
|
+
/**
|
|
28
|
+
* The shared values, each in a {@link ValueWrapper} so a holder can replace the value in place.
|
|
29
|
+
*/
|
|
30
|
+
readonly values: Record<string, ValueWrapper>;
|
|
31
|
+
/**
|
|
32
|
+
* The version of the slot shape the creator wrote. Informational: the shape only changes additively.
|
|
33
|
+
*/
|
|
34
|
+
readonly version: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Retrieves or creates a shared-state {@link ValueWrapper} for a given key.
|
|
38
|
+
*
|
|
39
|
+
* @typeParam T - The type of the shared state value.
|
|
40
|
+
* @param key - The key to store or retrieve the shared state under.
|
|
41
|
+
* @param defaultValue - The default value to use if the shared state does not exist yet.
|
|
42
|
+
* @returns The {@link ValueWrapper} that stores the shared state.
|
|
43
|
+
*/
|
|
44
|
+
export declare function getTypescriptLibState<T>(key: string, defaultValue: T): ValueWrapper<T>;
|
|
45
|
+
/**
|
|
46
|
+
* Retrieves or creates the shared-state slot.
|
|
47
|
+
*
|
|
48
|
+
* @returns The {@link TypescriptLibStateSlot}.
|
|
49
|
+
*/
|
|
50
|
+
export declare function getTypescriptLibStateSlot(): TypescriptLibStateSlot;
|
|
51
|
+
/**
|
|
52
|
+
* Clears the shared-state bag.
|
|
53
|
+
*
|
|
54
|
+
* Intended for test isolation: call it before each test so accumulated state does not leak between tests.
|
|
55
|
+
*/
|
|
56
|
+
export declare function resetTypescriptLibState(): void;
|
|
@@ -0,0 +1,136 @@
|
|
|
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 keepName($unknown) {
|
|
45
|
+
return $unknown;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
(function initCjs() {
|
|
49
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
|
+
const globalThisRecord = globalThis;
|
|
51
|
+
ensureDisposeSymbols();
|
|
52
|
+
globalThisRecord['__name'] ??= keepName;
|
|
53
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
54
|
+
|
|
55
|
+
ensureBrowserProcess();
|
|
56
|
+
|
|
57
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
|
+
function extractDefault(module) {
|
|
59
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
60
|
+
}
|
|
61
|
+
})();
|
|
62
|
+
})();
|
|
63
|
+
|
|
64
|
+
"use strict";
|
|
65
|
+
var __defProp = Object.defineProperty;
|
|
66
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
67
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
68
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
69
|
+
var __export = (target, all) => {
|
|
70
|
+
for (var name in all)
|
|
71
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
72
|
+
};
|
|
73
|
+
var __copyProps = (to, from, except, desc) => {
|
|
74
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
75
|
+
for (let key of __getOwnPropNames(from))
|
|
76
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
77
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
78
|
+
}
|
|
79
|
+
return to;
|
|
80
|
+
};
|
|
81
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
82
|
+
var url_exports = {};
|
|
83
|
+
__export(url_exports, {
|
|
84
|
+
encodeUrl: () => encodeUrl,
|
|
85
|
+
isFileUrl: () => isFileUrl,
|
|
86
|
+
isUrl: () => isUrl,
|
|
87
|
+
normalizeFileUrl: () => normalizeFileUrl,
|
|
88
|
+
pathToFileUrl: () => pathToFileUrl
|
|
89
|
+
});
|
|
90
|
+
module.exports = __toCommonJS(url_exports);
|
|
91
|
+
var import_string = require('./string.cjs');
|
|
92
|
+
const SCHEME_REG_EXP = /^[A-Za-z][A-Za-z0-9+\-.]*:\S+$/;
|
|
93
|
+
const FILE_SCHEME_REG_EXP = /^file:/i;
|
|
94
|
+
const LEADING_SLASHES_REG_EXP = /^\/+/;
|
|
95
|
+
const SPECIAL_URL_SYMBOLS_REG_EXP = /[\\\x00\x08\x0B\x0C\x0E-\x1F ]/g;
|
|
96
|
+
const SPECIAL_URL_SYMBOLS_WITH_PERCENT_REG_EXP = /[%\\\x00\x08\x0B\x0C\x0E-\x1F ]/g;
|
|
97
|
+
function encodeUrl(url, shouldEncodePercent) {
|
|
98
|
+
return (0, import_string.replaceAll)({
|
|
99
|
+
$string: url,
|
|
100
|
+
replacer: ({ substring: specialUrlSymbol }) => encodeURIComponent(specialUrlSymbol),
|
|
101
|
+
searchValue: shouldEncodePercent ? SPECIAL_URL_SYMBOLS_WITH_PERCENT_REG_EXP : SPECIAL_URL_SYMBOLS_REG_EXP
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
function isFileUrl($string) {
|
|
105
|
+
return FILE_SCHEME_REG_EXP.test($string);
|
|
106
|
+
}
|
|
107
|
+
function isUrl($string) {
|
|
108
|
+
if (/\s/.test($string)) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
if ($string.includes("://")) {
|
|
112
|
+
try {
|
|
113
|
+
new URL($string);
|
|
114
|
+
return true;
|
|
115
|
+
} catch {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return SCHEME_REG_EXP.test($string);
|
|
120
|
+
}
|
|
121
|
+
function normalizeFileUrl(url) {
|
|
122
|
+
return isFileUrl(url) ? url.replaceAll("\\", "/") : url;
|
|
123
|
+
}
|
|
124
|
+
function pathToFileUrl(path, shouldEncodePercent) {
|
|
125
|
+
const encodedPath = encodeUrl(path, shouldEncodePercent).replaceAll("%5C", "/");
|
|
126
|
+
return `file:///${encodedPath.replace(LEADING_SLASHES_REG_EXP, "")}`;
|
|
127
|
+
}
|
|
128
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
129
|
+
0 && (module.exports = {
|
|
130
|
+
encodeUrl,
|
|
131
|
+
isFileUrl,
|
|
132
|
+
isUrl,
|
|
133
|
+
normalizeFileUrl,
|
|
134
|
+
pathToFileUrl
|
|
135
|
+
});
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3VybC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB2YWxpZGF0aW5nLCBlbmNvZGluZyBhbmQgbm9ybWFsaXppbmcgVVJMcy5cbiAqL1xuXG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnLi9zdHJpbmcudHMnO1xuXG5jb25zdCBTQ0hFTUVfUkVHX0VYUCA9IC9eW0EtWmEtel1bQS1aYS16MC05K1xcLS5dKjpcXFMrJC87XG5cbmNvbnN0IEZJTEVfU0NIRU1FX1JFR19FWFAgPSAvXmZpbGU6L2k7XG5cbmNvbnN0IExFQURJTkdfU0xBU0hFU19SRUdfRVhQID0gL15cXC8rLztcblxuLyoqXG4gKiBSZWd1bGFyIGV4cHJlc3Npb24gZm9yIHRoZSBzeW1ib2xzIHRoYXQgaGF2ZSB0byBiZSBwZXJjZW50LWVuY29kZWQgaW4gYSBVUkwuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250cm9sLXJlZ2V4LCB1bmljb3JuL3ByZWZlci11bmljb2RlLWNvZGUtcG9pbnQtZXNjYXBlcyAtLSBUaGUgcmVndWxhciBleHByZXNzaW9uIGlzIHdyaXR0ZW4gdG8gY2FwdHVyZSBjb250cm9sIGNoYXJhY3RlcnMsIHdoaWNoIGFyZSBjb252ZW50aW9uYWxseSBzcGVsbGVkIGFzIGBcXHhgIGVzY2FwZXM7IGBcXHV7MH1gLXN0eWxlIGVzY2FwZXMgd291bGQgb2JzY3VyZSB0aGUgYFxceDBFLVxceDFGYCByYW5nZSB3aXRob3V0IGV4cHJlc3NpbmcgYW55dGhpbmcgdGhlIHR3by1kaWdpdCBmb3JtIGNhbm5vdC5cbmNvbnN0IFNQRUNJQUxfVVJMX1NZTUJPTFNfUkVHX0VYUCA9IC9bXFxcXFxceDAwXFx4MDhcXHgwQlxceDBDXFx4MEUtXFx4MUYgXS9nO1xuXG4vKipcbiAqIFNhbWUgYXMge0BsaW5rIFNQRUNJQUxfVVJMX1NZTUJPTFNfUkVHX0VYUH0sIGJ1dCBhZGRpdGlvbmFsbHkgbWF0Y2hlcyBhIGxpdGVyYWwgYCVgLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleCwgdW5pY29ybi9wcmVmZXItdW5pY29kZS1jb2RlLXBvaW50LWVzY2FwZXMgLS0gVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpcyB3cml0dGVuIHRvIGNhcHR1cmUgY29udHJvbCBjaGFyYWN0ZXJzLCB3aGljaCBhcmUgY29udmVudGlvbmFsbHkgc3BlbGxlZCBhcyBgXFx4YCBlc2NhcGVzOyBgXFx1ezB9YC1zdHlsZSBlc2NhcGVzIHdvdWxkIG9ic2N1cmUgdGhlIGBcXHgwRS1cXHgxRmAgcmFuZ2Ugd2l0aG91dCBleHByZXNzaW5nIGFueXRoaW5nIHRoZSB0d28tZGlnaXQgZm9ybSBjYW5ub3QuXG5jb25zdCBTUEVDSUFMX1VSTF9TWU1CT0xTX1dJVEhfUEVSQ0VOVF9SRUdfRVhQID0gL1slXFxcXFxceDAwXFx4MDhcXHgwQlxceDBDXFx4MEUtXFx4MUYgXS9nO1xuXG4vKipcbiAqIFBlcmNlbnQtZW5jb2RlcyB0aGUgc3ltYm9scyB0aGF0IGJyZWFrIGEgVVJMOiBiYWNrc2xhc2hlcywgc3BhY2VzIGFuZCB0aGUgY29udHJvbCBjaGFyYWN0ZXJzLiBFdmVyeVxuICogb3RoZXIgY2hhcmFjdGVyIFx1MjAxNCBpbmNsdWRpbmcgbm9uLUFTQ0lJIG9uZXMgYW5kIGEgbGl0ZXJhbCBgJWAgXHUyMDE0IGlzIGxlZnQgYXMgaXMsIHNvIHRoZSByZXN1bHQgc3RheXNcbiAqIHJlYWRhYmxlLlxuICpcbiAqIEEgbGl0ZXJhbCBgJWAgaXMgb25seSBlbmNvZGVkIHdoZW4gYHNob3VsZEVuY29kZVBlcmNlbnRgIGlzIHNldC4gTGVhdmluZyBpdCBhbG9uZSBpcyB0aGUgZGVmYXVsdFxuICogYmVjYXVzZSBpdCBrZWVwcyB0aGUgZW5jb2RpbmcgaWRlbXBvdGVudCBmb3IgYWxyZWFkeS1lbmNvZGVkIGlucHV0OyB0aGUgY29zdCBpcyB0aGF0IGEgcGF0aCB3aGljaFxuICogZ2VudWluZWx5IGNvbnRhaW5zIGAlYCAoYSBmb2xkZXIgYWN0dWFsbHkgbmFtZWQgYGElMjBiYCkgZGVjb2RlcyBiYWNrIHRvIHNvbWV0aGluZyBlbHNlLiBUdXJuIHRoZSBmbGFnXG4gKiBvbiB3aGVuZXZlciB0aGUgaW5wdXQgaXMgYSByYXcgZmlsZXN5c3RlbSBwYXRoIHRoYXQgbWF5IGNvbnRhaW4gYCVgLlxuICpcbiAqIEBwYXJhbSB1cmwgLSBUaGUgVVJMIHRvIGVuY29kZS5cbiAqIEBwYXJhbSBzaG91bGRFbmNvZGVQZXJjZW50IC0gV2hldGhlciB0byBlbmNvZGUgYSBsaXRlcmFsIGAlYCBhcyBgJTI1YC4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAqIEByZXR1cm5zIFRoZSBlbmNvZGVkIFVSTC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGVuY29kZVVybChTdHJpbmcucmF3YHBhdGhcXHRvIHRoZVxcZmlsZS5tZGApIC8vICdwYXRoJTVDdG8lMjB0aGUlNUNmaWxlLm1kJ1xuICogZW5jb2RlVXJsKCdhJTIwYicpIC8vICdhJTIwYidcbiAqIGVuY29kZVVybCgnYSUyMGInLCB0cnVlKSAvLyAnYSUyNTIwYidcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlVXJsKHVybDogc3RyaW5nLCBzaG91bGRFbmNvZGVQZXJjZW50PzogYm9vbGVhbik6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiB1cmwsXG4gICAgcmVwbGFjZXI6ICh7IHN1YnN0cmluZzogc3BlY2lhbFVybFN5bWJvbCB9KSA9PiBlbmNvZGVVUklDb21wb25lbnQoc3BlY2lhbFVybFN5bWJvbCksXG4gICAgc2VhcmNoVmFsdWU6IHNob3VsZEVuY29kZVBlcmNlbnQgPyBTUEVDSUFMX1VSTF9TWU1CT0xTX1dJVEhfUEVSQ0VOVF9SRUdfRVhQIDogU1BFQ0lBTF9VUkxfU1lNQk9MU19SRUdfRVhQXG4gIH0pO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGdpdmVuIHN0cmluZyBpcyBhIGBmaWxlOi8vYCBVUkwuXG4gKlxuICogQHBhcmFtICRzdHJpbmcgLSBUaGUgc3RyaW5nIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBzdHJpbmcgdXNlcyB0aGUgYGZpbGU6YCBzY2hlbWUsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGaWxlVXJsKCRzdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gRklMRV9TQ0hFTUVfUkVHX0VYUC50ZXN0KCRzdHJpbmcpO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGdpdmVuIHN0cmluZyBpcyBhIHZhbGlkIFVSTFxuICpcbiAqIEBwYXJhbSAkc3RyaW5nIC0gVGhlIHN0cmluZyB0byB2YWxpZGF0ZSBhcyBhIFVSTC5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgVVJMLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVXJsKCRzdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoL1xccy8udGVzdCgkc3RyaW5nKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoJHN0cmluZy5pbmNsdWRlcygnOi8vJykpIHtcbiAgICB0cnkge1xuICAgICAgbmV3IFVSTCgkc3RyaW5nKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTQ0hFTUVfUkVHX0VYUC50ZXN0KCRzdHJpbmcpO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBgZmlsZTovL2AgVVJMIHRvIGEgcHJldHR5IGZvcm0gYnkgY29udmVydGluZyBiYWNrc2xhc2hlcyB0byBmb3J3YXJkIHNsYXNoZXMuIFRoZSBVUkwgaXNcbiAqIGV4cGVjdGVkIHRvIGFscmVhZHkgYmUgZGVjb2RlZC4gTm9uLWBmaWxlOi8vYCBVUkxzIGFyZSByZXR1cm5lZCB1bmNoYW5nZWQuXG4gKlxuICogQHBhcmFtIHVybCAtIFRoZSBVUkwgdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgVVJMLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRmlsZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBpc0ZpbGVVcmwodXJsKSA/IHVybC5yZXBsYWNlQWxsKCdcXFxcJywgJy8nKSA6IHVybDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGZpbGVzeXN0ZW0gcGF0aCBpbnRvIGEgYGZpbGU6Ly8vYCBVUkwsIHBlcmNlbnQtZW5jb2RpbmcgaXQgd2l0aCB7QGxpbmsgZW5jb2RlVXJsfS5cbiAqXG4gKiBUaGUgYmFja3NsYXNoZXMgYXJlIHR1cm5lZCBpbnRvIGZvcndhcmQgc2xhc2hlcyAqKmFmdGVyKiogdGhlIGVuY29kaW5nLCBub3QgYmVmb3JlIFx1MjAxNCBhIFdpbmRvd3MgcGF0aCBpc1xuICogZW5jb2RlZCB0byBgJTVDYCBmaXJzdCBhbmQgb25seSB0aGVuIHJld3JpdHRlbiB0byBgL2AsIHdoaWNoIGlzIHdoYXQgbWFrZXMgYEM6XFxhIGJcXGNgIHByb2R1Y2UgdGhlXG4gKiB3b3JraW5nIGBmaWxlOi8vL0M6L2ElMjBiL2NgIHJhdGhlciB0aGFuIGEgbGluayBicm9rZW4gYXQgdGhlIGZpcnN0IHNwYWNlLlxuICpcbiAqIFRoZSBgZmlsZTovLy9gIHByZWZpeCBhbHdheXMgZW5kcyB1cCB3aXRoIGV4YWN0bHkgdGhyZWUgc2xhc2hlczogYW55IGxlYWRpbmcgc2xhc2hlcyB0aGUgcGF0aCBhbHJlYWR5XG4gKiBoYXMgYXJlIGRyb3BwZWQgZmlyc3QsIGJlY2F1c2UgYGZpbGU6Ly8vL2hvbWUveGAgcGFyc2VzIGFzIHRoZSBwYXRoIGAvL2hvbWUveGAsIG5vdCBgL2hvbWUveGAuIEFcbiAqIFdpbmRvd3MgVU5DIHBhdGggKGBcXFxcc2VydmVyXFxzaGFyZWApIGlzIHRoZXJlZm9yZSByZW5kZXJlZCBhcyBgZmlsZTovLy9zZXJ2ZXIvc2hhcmVgIHJhdGhlciB0aGFuIHRoZVxuICogY2Fub25pY2FsIGhvc3QgZm9ybSBgZmlsZTovL3NlcnZlci9zaGFyZWAsIHdoaWNoIHRoaXMgZnVuY3Rpb24gZGVsaWJlcmF0ZWx5IGRvZXMgbm90IHByb2R1Y2UuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgZmlsZXN5c3RlbSBwYXRoIHRvIGNvbnZlcnQuXG4gKiBAcGFyYW0gc2hvdWxkRW5jb2RlUGVyY2VudCAtIFdoZXRoZXIgdG8gZW5jb2RlIGEgbGl0ZXJhbCBgJWAgaW4gdGhlIHBhdGggYXMgYCUyNWAuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gKiAgIFNlZSB7QGxpbmsgZW5jb2RlVXJsfSBmb3IgdGhlIHRyYWRlLW9mZi5cbiAqIEByZXR1cm5zIFRoZSBgZmlsZTovLy9gIFVSTC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIHBhdGhUb0ZpbGVVcmwoU3RyaW5nLnJhd2BDOlxcYSBiXFxjLnR4dGApIC8vICdmaWxlOi8vL0M6L2ElMjBiL2MudHh0J1xuICogcGF0aFRvRmlsZVVybCgnL2hvbWUvdXNlci9hIGIudHh0JykgLy8gJ2ZpbGU6Ly8vaG9tZS91c2VyL2ElMjBiLnR4dCdcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aFRvRmlsZVVybChwYXRoOiBzdHJpbmcsIHNob3VsZEVuY29kZVBlcmNlbnQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgY29uc3QgZW5jb2RlZFBhdGggPSBlbmNvZGVVcmwocGF0aCwgc2hvdWxkRW5jb2RlUGVyY2VudCkucmVwbGFjZUFsbCgnJTVDJywgJy8nKTtcbiAgcmV0dXJuIGBmaWxlOi8vLyR7ZW5jb2RlZFBhdGgucmVwbGFjZShMRUFESU5HX1NMQVNIRVNfUkVHX0VYUCwgJycpfWA7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxvQkFBMkI7QUFFM0IsTUFBTSxpQkFBaUI7QUFFdkIsTUFBTSxzQkFBc0I7QUFFNUIsTUFBTSwwQkFBMEI7QUFNaEMsTUFBTSw4QkFBOEI7QUFNcEMsTUFBTSwyQ0FBMkM7QUF1QjFDLFNBQVMsVUFBVSxLQUFhLHFCQUF1QztBQUM1RSxhQUFPLDBCQUFXO0FBQUEsSUFDaEIsU0FBUztBQUFBLElBQ1QsVUFBVSxDQUFDLEVBQUUsV0FBVyxpQkFBaUIsTUFBTSxtQkFBbUIsZ0JBQWdCO0FBQUEsSUFDbEYsYUFBYSxzQkFBc0IsMkNBQTJDO0FBQUEsRUFDaEYsQ0FBQztBQUNIO0FBUU8sU0FBUyxVQUFVLFNBQTBCO0FBQ2xELFNBQU8sb0JBQW9CLEtBQUssT0FBTztBQUN6QztBQVFPLFNBQVMsTUFBTSxTQUEwQjtBQUM5QyxNQUFJLEtBQUssS0FBSyxPQUFPLEdBQUc7QUFDdEIsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJLFFBQVEsU0FBUyxLQUFLLEdBQUc7QUFDM0IsUUFBSTtBQUNGLFVBQUksSUFBSSxPQUFPO0FBQ2YsYUFBTztBQUFBLElBQ1QsUUFBUTtBQUNOLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLFNBQU8sZUFBZSxLQUFLLE9BQU87QUFDcEM7QUFTTyxTQUFTLGlCQUFpQixLQUFxQjtBQUNwRCxTQUFPLFVBQVUsR0FBRyxJQUFJLElBQUksV0FBVyxNQUFNLEdBQUcsSUFBSTtBQUN0RDtBQXlCTyxTQUFTLGNBQWMsTUFBYyxxQkFBdUM7QUFDakYsUUFBTSxjQUFjLFVBQVUsTUFBTSxtQkFBbUIsRUFBRSxXQUFXLE9BQU8sR0FBRztBQUM5RSxTQUFPLFdBQVcsWUFBWSxRQUFRLHlCQUF5QixFQUFFLENBQUM7QUFDcEU7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/// <reference path="./library.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Contains utility functions for validating, encoding and normalizing URLs.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Percent-encodes the symbols that break a URL: backslashes, spaces and the control characters. Every
|
|
9
|
+
* other character — including non-ASCII ones and a literal `%` — is left as is, so the result stays
|
|
10
|
+
* readable.
|
|
11
|
+
*
|
|
12
|
+
* A literal `%` is only encoded when `shouldEncodePercent` is set. Leaving it alone is the default
|
|
13
|
+
* because it keeps the encoding idempotent for already-encoded input; the cost is that a path which
|
|
14
|
+
* genuinely contains `%` (a folder actually named `a%20b`) decodes back to something else. Turn the flag
|
|
15
|
+
* on whenever the input is a raw filesystem path that may contain `%`.
|
|
16
|
+
*
|
|
17
|
+
* @param url - The URL to encode.
|
|
18
|
+
* @param shouldEncodePercent - Whether to encode a literal `%` as `%25`. Defaults to `false`.
|
|
19
|
+
* @returns The encoded URL.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* encodeUrl(String.raw`path\to the\file.md`) // 'path%5Cto%20the%5Cfile.md'
|
|
24
|
+
* encodeUrl('a%20b') // 'a%20b'
|
|
25
|
+
* encodeUrl('a%20b', true) // 'a%2520b'
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function encodeUrl(url: string, shouldEncodePercent?: boolean): string;
|
|
29
|
+
/**
|
|
30
|
+
* Determines whether a given string is a `file://` URL.
|
|
31
|
+
*
|
|
32
|
+
* @param $string - The string to check.
|
|
33
|
+
* @returns `true` if the string uses the `file:` scheme, otherwise `false`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function isFileUrl($string: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Determines whether a given string is a valid URL
|
|
38
|
+
*
|
|
39
|
+
* @param $string - The string to validate as a URL.
|
|
40
|
+
* @returns `true` if the string is a valid URL, otherwise `false`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isUrl($string: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Normalizes a `file://` URL to a pretty form by converting backslashes to forward slashes. The URL is
|
|
45
|
+
* expected to already be decoded. Non-`file://` URLs are returned unchanged.
|
|
46
|
+
*
|
|
47
|
+
* @param url - The URL to normalize.
|
|
48
|
+
* @returns The normalized URL.
|
|
49
|
+
*/
|
|
50
|
+
export declare function normalizeFileUrl(url: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* Converts a filesystem path into a `file:///` URL, percent-encoding it with {@link encodeUrl}.
|
|
53
|
+
*
|
|
54
|
+
* The backslashes are turned into forward slashes **after** the encoding, not before — a Windows path is
|
|
55
|
+
* encoded to `%5C` first and only then rewritten to `/`, which is what makes `C:\a b\c` produce the
|
|
56
|
+
* working `file:///C:/a%20b/c` rather than a link broken at the first space.
|
|
57
|
+
*
|
|
58
|
+
* The `file:///` prefix always ends up with exactly three slashes: any leading slashes the path already
|
|
59
|
+
* has are dropped first, because `file:////home/x` parses as the path `//home/x`, not `/home/x`. A
|
|
60
|
+
* Windows UNC path (`\\server\share`) is therefore rendered as `file:///server/share` rather than the
|
|
61
|
+
* canonical host form `file://server/share`, which this function deliberately does not produce.
|
|
62
|
+
*
|
|
63
|
+
* @param path - The filesystem path to convert.
|
|
64
|
+
* @param shouldEncodePercent - Whether to encode a literal `%` in the path as `%25`. Defaults to `false`.
|
|
65
|
+
* See {@link encodeUrl} for the trade-off.
|
|
66
|
+
* @returns The `file:///` URL.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* pathToFileUrl(String.raw`C:\a b\c.txt`) // 'file:///C:/a%20b/c.txt'
|
|
71
|
+
* pathToFileUrl('/home/user/a b.txt') // 'file:///home/user/a%20b.txt'
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function pathToFileUrl(path: string, shouldEncodePercent?: boolean): string;
|
|
@@ -0,0 +1,100 @@
|
|
|
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 keepName($unknown) {
|
|
45
|
+
return $unknown;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
(function initCjs() {
|
|
49
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
|
+
const globalThisRecord = globalThis;
|
|
51
|
+
ensureDisposeSymbols();
|
|
52
|
+
globalThisRecord['__name'] ??= keepName;
|
|
53
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
54
|
+
|
|
55
|
+
ensureBrowserProcess();
|
|
56
|
+
|
|
57
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
|
+
function extractDefault(module) {
|
|
59
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
60
|
+
}
|
|
61
|
+
})();
|
|
62
|
+
})();
|
|
63
|
+
|
|
64
|
+
"use strict";
|
|
65
|
+
var __defProp = Object.defineProperty;
|
|
66
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
67
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
68
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
69
|
+
var __export = (target, all) => {
|
|
70
|
+
for (var name in all)
|
|
71
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
72
|
+
};
|
|
73
|
+
var __copyProps = (to, from, except, desc) => {
|
|
74
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
75
|
+
for (let key of __getOwnPropNames(from))
|
|
76
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
77
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
78
|
+
}
|
|
79
|
+
return to;
|
|
80
|
+
};
|
|
81
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
82
|
+
var value_provider_exports = {};
|
|
83
|
+
__export(value_provider_exports, {
|
|
84
|
+
resolveValue: () => resolveValue
|
|
85
|
+
});
|
|
86
|
+
module.exports = __toCommonJS(value_provider_exports);
|
|
87
|
+
var import_abort_controller = require('./abort-controller.cjs');
|
|
88
|
+
async function resolveValue(provider, $arguments) {
|
|
89
|
+
const fullArguments = { ...$arguments, abortSignal: $arguments.abortSignal ?? (0, import_abort_controller.abortSignalNever)() };
|
|
90
|
+
fullArguments.abortSignal.throwIfAborted();
|
|
91
|
+
return isFunction(provider) ? await provider(fullArguments) : provider;
|
|
92
|
+
}
|
|
93
|
+
function isFunction(value) {
|
|
94
|
+
return typeof value === "function";
|
|
95
|
+
}
|
|
96
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
97
|
+
0 && (module.exports = {
|
|
98
|
+
resolveValue
|
|
99
|
+
});
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZhbHVlLXByb3ZpZGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSB0eXBlcyBhbmQgZnVuY3Rpb25zIGZvciBoYW5kbGluZyB2YWx1ZSBwcm92aWRlcnMsIHdoaWNoIGNhbiBiZSBlaXRoZXIgZGlyZWN0IHZhbHVlcyBvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gdmFsdWVzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7IGFib3J0U2lnbmFsTmV2ZXIgfSBmcm9tICcuL2Fib3J0LWNvbnRyb2xsZXIudHMnO1xuXG4vKipcbiAqIFZhbHVlIHByb3ZpZGVyIHRoYXQgY2FuIGVpdGhlciBiZSBhIGRpcmVjdCB2YWx1ZSBvZiB0eXBlIHtAbGluayBWYWx1ZX0gb3IgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSB2YWx1ZSBvZiB0eXBlIHtAbGluayBWYWx1ZX0uXG4gKlxuICogQHR5cGVQYXJhbSBWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBwcm92aWRlZC5cbiAqIEB0eXBlUGFyYW0gQXJndW1lbnRzIC0gVGhlIHR5cGVzIG9mIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGlmIHRoZSBwcm92aWRlciBpcyBhIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBWYWx1ZVByb3ZpZGVyPFZhbHVlLCBBcmd1bWVudHMgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3Q+ID0gKCgkYXJndW1lbnRzOiBBcmd1bWVudHMgJiBDb21tb25Bcmd1bWVudHMpID0+IFByb21pc2FibGU8VmFsdWU+KSB8IFZhbHVlO1xuXG5pbnRlcmZhY2UgQ29tbW9uQXJndW1lbnRzIHtcbiAgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgdmFsdWUgZnJvbSBhIHZhbHVlIHByb3ZpZGVyLCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgZGlyZWN0IHZhbHVlIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgdmFsdWUuXG4gKlxuICogQHR5cGVQYXJhbSBBcmd1bWVudHMgLSBUaGUgdHlwZXMgb2YgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gaWYgdGhlIHByb3ZpZGVyIGlzIGEgZnVuY3Rpb24uXG4gKiBAdHlwZVBhcmFtIFZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHByb3ZpZGVkLlxuICogQHBhcmFtIHByb3ZpZGVyIC0gVGhlIHZhbHVlIHByb3ZpZGVyIHRvIHJlc29sdmUuXG4gKiBAcGFyYW0gJGFyZ3VtZW50cyAtIFRoZSBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgZnVuY3Rpb24gaWYgdGhlIHByb3ZpZGVyIGlzIGEgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSB2YWx1ZSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVWYWx1ZTxWYWx1ZSwgQXJndW1lbnRzIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0PihcbiAgcHJvdmlkZXI6IFZhbHVlUHJvdmlkZXI8VmFsdWUsIEFyZ3VtZW50cz4sXG4gICRhcmd1bWVudHM6IEFyZ3VtZW50cyAmIFBhcnRpYWw8Q29tbW9uQXJndW1lbnRzPlxuKTogUHJvbWlzZTxWYWx1ZT4ge1xuICBjb25zdCBmdWxsQXJndW1lbnRzID0geyAuLi4kYXJndW1lbnRzLCBhYm9ydFNpZ25hbDogJGFyZ3VtZW50cy5hYm9ydFNpZ25hbCA/PyBhYm9ydFNpZ25hbE5ldmVyKCkgfTtcbiAgZnVsbEFyZ3VtZW50cy5hYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICByZXR1cm4gaXNGdW5jdGlvbihwcm92aWRlcikgPyAoYXdhaXQgcHJvdmlkZXIoZnVsbEFyZ3VtZW50cykpIDogcHJvdmlkZXI7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZ2l2ZW4gdmFsdWUgcHJvdmlkZXIgaXMgYSBmdW5jdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHByb3ZpZGVkLlxuICogQHR5cGVQYXJhbSBBcmd1bWVudHMgLSBUaGUgdHlwZXMgb2YgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gaWYgdGhlIHByb3ZpZGVyIGlzIGEgZnVuY3Rpb24uXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgcHJvdmlkZXIgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlIHByb3ZpZGVyIGlzIGEgZnVuY3Rpb24sIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uPFZhbHVlLCBBcmd1bWVudHMgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3Q+KHZhbHVlOiBWYWx1ZVByb3ZpZGVyPFZhbHVlLCBBcmd1bWVudHM+KTogdmFsdWUgaXMgKCRhcmd1bWVudHM6IEFyZ3VtZW50cyAmIENvbW1vbkFyZ3VtZW50cykgPT4gUHJvbWlzYWJsZTxWYWx1ZT4ge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLDhCQUFpQztBQXVCakMsZUFBc0IsYUFDcEIsVUFDQSxZQUNnQjtBQUNoQixRQUFNLGdCQUFnQixFQUFFLEdBQUcsWUFBWSxhQUFhLFdBQVcsbUJBQWUsMENBQWlCLEVBQUU7QUFDakcsZ0JBQWMsWUFBWSxlQUFlO0FBQ3pDLFNBQU8sV0FBVyxRQUFRLElBQUssTUFBTSxTQUFTLGFBQWEsSUFBSztBQUNsRTtBQVVBLFNBQVMsV0FBcUQsT0FBaUg7QUFDN0ssU0FBTyxPQUFPLFVBQVU7QUFDMUI7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/// <reference path="./library.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Contains utility types and functions for handling value providers, which can be either direct values or functions that return values.
|
|
6
|
+
*/
|
|
7
|
+
import type { Promisable } from 'type-fest' with { 'resolution-mode': 'import' };
|
|
8
|
+
/**
|
|
9
|
+
* Value provider that can either be a direct value of type {@link Value} or a function that returns a value of type {@link Value}.
|
|
10
|
+
*
|
|
11
|
+
* @typeParam Value - The type of the value provided.
|
|
12
|
+
* @typeParam Arguments - The types of arguments passed to the function if the provider is a function.
|
|
13
|
+
*/
|
|
14
|
+
export type ValueProvider<Value, Arguments extends object = object> = (($arguments: Arguments & CommonArguments) => Promisable<Value>) | Value;
|
|
15
|
+
interface CommonArguments {
|
|
16
|
+
abortSignal: AbortSignal;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Resolves a value from a value provider, which can be either a direct value or a function that returns a value.
|
|
20
|
+
*
|
|
21
|
+
* @typeParam Arguments - The types of arguments passed to the function if the provider is a function.
|
|
22
|
+
* @typeParam Value - The type of the value provided.
|
|
23
|
+
* @param provider - The value provider to resolve.
|
|
24
|
+
* @param $arguments - The arguments to pass to the function if the provider is a function.
|
|
25
|
+
* @returns A {@link Promise} that resolves with the value provided by the value provider.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveValue<Value, Arguments extends object = object>(provider: ValueProvider<Value, Arguments>, $arguments: Arguments & Partial<CommonArguments>): Promise<Value>;
|
|
28
|
+
export {};
|
|
@@ -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
|
+
(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 keepName($unknown) {
|
|
45
|
+
return $unknown;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
(function initCjs() {
|
|
49
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
|
+
const globalThisRecord = globalThis;
|
|
51
|
+
ensureDisposeSymbols();
|
|
52
|
+
globalThisRecord['__name'] ??= keepName;
|
|
53
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
54
|
+
|
|
55
|
+
ensureBrowserProcess();
|
|
56
|
+
|
|
57
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
|
+
function extractDefault(module) {
|
|
59
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
60
|
+
}
|
|
61
|
+
})();
|
|
62
|
+
})();
|
|
63
|
+
|
|
64
|
+
"use strict";
|
|
65
|
+
var __defProp = Object.defineProperty;
|
|
66
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
67
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
68
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
69
|
+
var __export = (target, all) => {
|
|
70
|
+
for (var name in all)
|
|
71
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
72
|
+
};
|
|
73
|
+
var __copyProps = (to, from, except, desc) => {
|
|
74
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
75
|
+
for (let key of __getOwnPropNames(from))
|
|
76
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
77
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
78
|
+
}
|
|
79
|
+
return to;
|
|
80
|
+
};
|
|
81
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
82
|
+
var value_wrapper_exports = {};
|
|
83
|
+
__export(value_wrapper_exports, {
|
|
84
|
+
ValueWrapper: () => ValueWrapper
|
|
85
|
+
});
|
|
86
|
+
module.exports = __toCommonJS(value_wrapper_exports);
|
|
87
|
+
var import_function = require('./function.cjs');
|
|
88
|
+
class ValueWrapper {
|
|
89
|
+
/**
|
|
90
|
+
* Gets the wrapped value.
|
|
91
|
+
*
|
|
92
|
+
* @returns The wrapped value.
|
|
93
|
+
* @throws An {@link Error} if the value has not been set.
|
|
94
|
+
*/
|
|
95
|
+
get value() {
|
|
96
|
+
if (!this.hasValue) {
|
|
97
|
+
throw new Error("Value is not set");
|
|
98
|
+
}
|
|
99
|
+
return this._value;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Sets the wrapped value.
|
|
103
|
+
*
|
|
104
|
+
* @param value - The value to wrap.
|
|
105
|
+
*/
|
|
106
|
+
set value(value) {
|
|
107
|
+
this._value = value;
|
|
108
|
+
this.hasValue = true;
|
|
109
|
+
}
|
|
110
|
+
_value = null;
|
|
111
|
+
hasValue = false;
|
|
112
|
+
/**
|
|
113
|
+
* Creates a new value wrapper. Use {@link ValueWrapper.of} or {@link ValueWrapper.unset} instead.
|
|
114
|
+
*/
|
|
115
|
+
constructor() {
|
|
116
|
+
(0, import_function.noop)();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Make wrapper from the value.
|
|
120
|
+
*
|
|
121
|
+
* @typeParam T - Type of the value to wrap.
|
|
122
|
+
* @param value - The value to wrap.
|
|
123
|
+
* @returns The wrapper.
|
|
124
|
+
*/
|
|
125
|
+
static of(value) {
|
|
126
|
+
const wrapper = new ValueWrapper();
|
|
127
|
+
wrapper.value = value;
|
|
128
|
+
return wrapper;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Make the wrapper with unset value.
|
|
132
|
+
*
|
|
133
|
+
* @typeParam T - Type of the value to wrap.
|
|
134
|
+
* @returns The wrapper.
|
|
135
|
+
*/
|
|
136
|
+
static unset() {
|
|
137
|
+
return new ValueWrapper();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
141
|
+
0 && (module.exports = {
|
|
142
|
+
ValueWrapper
|
|
143
|
+
});
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZhbHVlLXdyYXBwZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBXcmFwcGVyIHR5cGUgZm9yIHN0b3JpbmcgdmFsdWVzLlxuICovXG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL2Z1bmN0aW9uLnRzJztcblxuLyoqXG4gKiBXcmFwcGVyIHR5cGUgZm9yIHN0b3JpbmcgdmFsdWVzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB3cmFwcGVkIHZhbHVlLlxuICovXG5leHBvcnQgY2xhc3MgVmFsdWVXcmFwcGVyPFQgPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSB3cmFwcGVkIHZhbHVlLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgd3JhcHBlZCB2YWx1ZS5cbiAgICogQHRocm93cyBBbiB7QGxpbmsgRXJyb3J9IGlmIHRoZSB2YWx1ZSBoYXMgbm90IGJlZW4gc2V0LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHtcbiAgICBpZiAoIXRoaXMuaGFzVmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgaXMgbm90IHNldCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl92YWx1ZSBhcyBUO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHdyYXBwZWQgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB3cmFwLlxuICAgKi9cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5oYXNWYWx1ZSA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZTogbnVsbCB8IFQgPSBudWxsO1xuXG4gIHByaXZhdGUgaGFzVmFsdWUgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyB2YWx1ZSB3cmFwcGVyLiBVc2Uge0BsaW5rIFZhbHVlV3JhcHBlci5vZn0gb3Ige0BsaW5rIFZhbHVlV3JhcHBlci51bnNldH0gaW5zdGVhZC5cbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2Ugd3JhcHBlciBmcm9tIHRoZSB2YWx1ZS5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gVHlwZSBvZiB0aGUgdmFsdWUgdG8gd3JhcC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAqIEByZXR1cm5zIFRoZSB3cmFwcGVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZjxUPih2YWx1ZTogVCk6IFZhbHVlV3JhcHBlcjxUPiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG5ldyBWYWx1ZVdyYXBwZXI8VD4oKTtcbiAgICB3cmFwcGVyLnZhbHVlID0gdmFsdWU7XG4gICAgcmV0dXJuIHdyYXBwZXI7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSB0aGUgd3JhcHBlciB3aXRoIHVuc2V0IHZhbHVlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFQgLSBUeXBlIG9mIHRoZSB2YWx1ZSB0byB3cmFwLlxuICAgKiBAcmV0dXJucyBUaGUgd3JhcHBlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdW5zZXQ8VD4oKTogVmFsdWVXcmFwcGVyPFQ+IHtcbiAgICByZXR1cm4gbmV3IFZhbHVlV3JhcHBlcjxUPigpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsc0JBQXFCO0FBT2QsTUFBTSxhQUEwQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT3JDLElBQVcsUUFBVztBQUNwQixRQUFJLENBQUMsS0FBSyxVQUFVO0FBQ2xCLFlBQU0sSUFBSSxNQUFNLGtCQUFrQjtBQUFBLElBQ3BDO0FBRUEsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQVcsTUFBTSxPQUFVO0FBQ3pCLFNBQUssU0FBUztBQUNkLFNBQUssV0FBVztBQUFBLEVBQ2xCO0FBQUEsRUFFUSxTQUFtQjtBQUFBLEVBRW5CLFdBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtYLGNBQWM7QUFDcEIsOEJBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNBLE9BQWMsR0FBTSxPQUEyQjtBQUM3QyxVQUFNLFVBQVUsSUFBSSxhQUFnQjtBQUNwQyxZQUFRLFFBQVE7QUFDaEIsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsUUFBNEI7QUFDeEMsV0FBTyxJQUFJLGFBQWdCO0FBQUEsRUFDN0I7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/// <reference path="./library.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Wrapper type for storing values.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Wrapper type for storing values.
|
|
9
|
+
*
|
|
10
|
+
* @typeParam T - The type of the wrapped value.
|
|
11
|
+
*/
|
|
12
|
+
export declare class ValueWrapper<T = unknown> {
|
|
13
|
+
/**
|
|
14
|
+
* Gets the wrapped value.
|
|
15
|
+
*
|
|
16
|
+
* @returns The wrapped value.
|
|
17
|
+
* @throws An {@link Error} if the value has not been set.
|
|
18
|
+
*/
|
|
19
|
+
get value(): T;
|
|
20
|
+
/**
|
|
21
|
+
* Sets the wrapped value.
|
|
22
|
+
*
|
|
23
|
+
* @param value - The value to wrap.
|
|
24
|
+
*/
|
|
25
|
+
set value(value: T);
|
|
26
|
+
private _value;
|
|
27
|
+
private hasValue;
|
|
28
|
+
/**
|
|
29
|
+
* Creates a new value wrapper. Use {@link ValueWrapper.of} or {@link ValueWrapper.unset} instead.
|
|
30
|
+
*/
|
|
31
|
+
private constructor();
|
|
32
|
+
/**
|
|
33
|
+
* Make wrapper from the value.
|
|
34
|
+
*
|
|
35
|
+
* @typeParam T - Type of the value to wrap.
|
|
36
|
+
* @param value - The value to wrap.
|
|
37
|
+
* @returns The wrapper.
|
|
38
|
+
*/
|
|
39
|
+
static of<T>(value: T): ValueWrapper<T>;
|
|
40
|
+
/**
|
|
41
|
+
* Make the wrapper with unset value.
|
|
42
|
+
*
|
|
43
|
+
* @typeParam T - Type of the value to wrap.
|
|
44
|
+
* @returns The wrapper.
|
|
45
|
+
*/
|
|
46
|
+
static unset<T>(): ValueWrapper<T>;
|
|
47
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference path="../library.d.mts" />
|
|
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
|
+
}
|