@polyipseity/obsidian-plugin-library 1.24.0 → 1.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -16
- package/dist/assets/locales.d.ts +1 -1
- package/dist/assets/locales.d.ts.map +1 -1
- package/dist/esbuild-compress/index.js.map +2 -2
- package/dist/index.js +101 -131
- package/dist/index.js.map +4 -4
- package/dist/sources/@types/obsidian.d.ts +1 -3
- package/dist/sources/@types/obsidian.d.ts.map +1 -1
- package/dist/sources/import.d.ts.map +1 -1
- package/dist/sources/modals.d.ts.map +1 -1
- package/dist/sources/obsidian.d.ts.map +1 -1
- package/dist/sources/platform.d.ts.map +1 -1
- package/dist/sources/private.d.ts +3 -3
- package/dist/sources/private.d.ts.map +1 -1
- package/dist/sources/settings-tab.d.ts.map +1 -1
- package/dist/sources/types.d.ts.map +1 -1
- package/dist/sources/util.d.ts.map +1 -1
- package/package.json +46 -45
package/README.md
CHANGED
|
@@ -22,6 +22,16 @@ This is NOT an installable plugin.
|
|
|
22
22
|
|
|
23
23
|
Contributions are welcome!
|
|
24
24
|
|
|
25
|
+
This project uses [`changesets`](https://github.com/changesets/changesets) to manage the changelog. When creating a pull request, please [add a changeset](https://github.com/changesets/changesets/blob/main/docs/intro-to-using-changesets.md#adding-changesets) describing the changes. Add multiple changesets if your pull request changes several things. End each changeset with `([PR number](PR link) by [author username](author link))`. For example, the newly created file under the directory `.changeset` should look like:
|
|
26
|
+
|
|
27
|
+
```Markdown
|
|
28
|
+
---
|
|
29
|
+
"example": patch
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
This is an example change. ([GH#1](https://github.com/ghost/example/pull/1) by [@ghost](https://github.com/ghost))
|
|
33
|
+
```
|
|
34
|
+
|
|
25
35
|
### Todos
|
|
26
36
|
|
|
27
37
|
The todos here, ordered alphabetically, are things planned for the plugin. There are no guarantees that they will be completed. However, we are likely to accept contributions for them.
|
|
@@ -35,35 +45,40 @@ Translation files are under [`assets/locales/`](assets/locales/). Each locale ha
|
|
|
35
45
|
To contribute translation for an existing locale, modify the files in the corresponding directory.
|
|
36
46
|
|
|
37
47
|
For a new locale, create a new directory named with its language tag and copy [`assets/locales/en/translation.json`](assets/locales/en/translation.json) into it. Then, add an entry to [`assets/locales/en/language.json`](assets/locales/en/language.json) in this format:
|
|
48
|
+
|
|
38
49
|
```JSONc
|
|
39
50
|
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
// ...
|
|
52
|
+
"en": "English",
|
|
53
|
+
"(your-language-tag)": "(Native name of your language)",
|
|
54
|
+
"uwu": "Uwuish",
|
|
55
|
+
// ...
|
|
45
56
|
}
|
|
46
57
|
```
|
|
58
|
+
|
|
47
59
|
Sort the list of languages by the alphabetical order of their language tags. Then modify the files in the new directory. There will be errors in [`assets/locales.ts`](assets/locales.ts), which you can ignore and we will fix them for you. You are welcome to fix them yourself if you know TypeScript.
|
|
48
60
|
|
|
49
61
|
When translating, keep in mind the following things:
|
|
62
|
+
|
|
50
63
|
- Do not translate anything between `{{` and `}}` (`{{example}}`). They are __interpolations__ and will be replaced by localized strings at runtime.
|
|
51
64
|
- Do not translate anything between `$t(` and `)` (`$t(example)`). They refer to other localized strings. To find the localized string being referred to, follow the path of the key, which is separated by dots (`.`). For example, the key [`youtu.be./dQw4w9WgXcQ`](https://youtu.be./dQw4w9WgXcQ) refers to:
|
|
65
|
+
|
|
52
66
|
```JSONc
|
|
53
67
|
{
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
// ...
|
|
69
|
+
"youtu": {
|
|
70
|
+
// ...
|
|
71
|
+
"be": {
|
|
72
|
+
// ...
|
|
73
|
+
"/dQw4w9WgXcQ": "I am 'youtu.be./dQw4w9WgXcQ'!",
|
|
74
|
+
// ...
|
|
75
|
+
},
|
|
76
|
+
// ...
|
|
77
|
+
},
|
|
78
|
+
// ...
|
|
65
79
|
}
|
|
66
80
|
```
|
|
81
|
+
|
|
67
82
|
- The keys under `generic` are vocabularies. They can be referred in translation strings by `$t(generic.key)`. Refer to them as much as possible to standardize translations for vocabularies that appear in different places.
|
|
68
83
|
- It is okay to move interpolations and references to other localized strings around to make the translation natural. It is also okay to not use some references used in the original translation. However, it is NOT okay to not use all interpolations.
|
|
69
84
|
|
package/dist/assets/locales.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AsyncOrSyncType, Builtin, DeepReadonly, IsUnknown } from "ts-essentials";
|
|
2
2
|
import type { DistributeKeys, DistributeValues, Evaluate, IsExact } from "../sources/types.js";
|
|
3
3
|
import type { I18nNamespaces, I18nResources } from "../sources/i18n.js";
|
|
4
|
-
import merge from "ts-deepmerge";
|
|
4
|
+
import { merge } from "ts-deepmerge";
|
|
5
5
|
export type NormalizeLocale<T> = T extends Builtin ? T : T extends {} ? {
|
|
6
6
|
[K in keyof T as K extends `${infer K0}_${string}` ? K0 : K]: NormalizeLocale<T[K]>;
|
|
7
7
|
} : IsUnknown<T> extends true ? unknown : T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../assets/locales.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,eAAe,EACf,OAAO,EACP,YAAY,EACZ,SAAS,EACT,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAEX,cAAc,EACd,aAAa,EACb,MAAM,oBAAoB,CAAA;AAU3B,OAAO,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../assets/locales.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,eAAe,EACf,OAAO,EACP,YAAY,EACZ,SAAS,EACT,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAEX,cAAc,EACd,aAAa,EACb,MAAM,oBAAoB,CAAA;AAU3B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,CAAC,GAEnD,CAAC,SAAS,EAAE,GAAG;KACf,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAC3D,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,OAAO,GAAG,CAAC,CAAA;AAC5C,wBAAgB,UAAU,CAAC,QAAQ,sBAEzB,QAAQ,gBAAgB,QAAQ,CAAC,EAAE,gBAAgB,MAAM,CAAC,CACjE,SAAS,KAAK,GAAG,KAAK,GAAG,MAAM,KAC9B,MAAM,CAIT;AACD,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,aAAa,EAAE,OAAO,SAAS,MAAM,CAAC,IAAI;KAC7E,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3D,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,EAAE,SAAS,SAAS,aAAa,EAAE,IAAI;KAChE,CAAC,IAAI,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAChC,QAAQ,CAAC,eAAe,CAAC,SAAS,gBAAgB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACrE,CAAA;AACD,MAAM,MAAM,eAAe,CAAC,EAAE,SAAS,SAAS,cAAc,EAAE,IAAI;KAClE,CAAC,IAAI,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,WAAW,CAAC,UAAU,CAC9D,OAAO,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAExE,CAAC,CAAC,CAAC;CACL,CAAA;AACD,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,aAAa,EAAE,EACvE,GAAG,SAAS,EAAE,EAAE,GACd,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAwBlC;AAED,yBAAiB,cAAc,CAAC;IACxB,MACN,WAAW,QAAQ,EACnB,gBAAgB,OAAO,EACvB,iBAAiB,gBAAgB,EACjC,kBAAkB;;;;;KAOhB,EACF,UAAU;8EACmB,MAAM;6EACP,MAAM;gFACH,MAAM;KACV,CAAA;IAGrB,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2MI,CAAA;IAC1B,KAAY,SAAS,GACpB,cAAc,CAAC,OAAO,SAAS,EAAE,OAAO,gBAAgB,CAAC,CAAA;IAC1D,KAAY,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAC/D,MAAM,UAAU,+CAAuD,CAAA;IAC9E,KAAY,SAAS,GAAG,SAAS;QAChC,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,SAAS;KACT,CAAA;IACM,MAAM,SAAS,8TAEwC,CAAA;CAC9D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../sources/util.ts", "../../sources/esbuild-compress/index.ts"],
|
|
4
|
-
"sourcesContent": ["import {\r\n\tcheck_outros as $checkOutros,\r\n\tgroup_outros as $groupOutros,\r\n\ttransition_out as $transitionOut,\r\n} from \"svelte/internal\"\r\nimport {\r\n\ttype AnyObject,\r\n\ttype AsyncFunctionConstructor,\r\n\ttype Base64String,\r\n\ttype CodePoint,\r\n\ttype ReadonlyTuple,\r\n\tcontravariant,\r\n\tcorrectType,\r\n\tlaunderUnchecked,\r\n\tsimplifyType,\r\n} from \"./types.js\"\r\nimport type {\r\n\tAsyncOrSync,\r\n\tDeepReadonly,\r\n\tDeepWritable,\r\n\tNewable,\r\n} from \"ts-essentials\"\r\nimport { NEVER_REGEX_G, SI_PREFIX_SCALE } from \"./magic.js\"\r\nimport {\r\n\ttype PrimitiveTypeE,\r\n\ttype TypeofMapE,\r\n\tgenericTypeofGuardE,\r\n} from \"./typeof.js\"\r\nimport {\r\n\tescapeRegExp,\r\n\tidentity,\r\n\tisEmpty,\r\n\tisNil,\r\n\tisObject,\r\n\tnoop,\r\n\trange,\r\n} from \"lodash-es\"\r\nimport inspect, { type Options } from \"browser-util-inspect\"\r\nimport AsyncLock from \"async-lock\"\r\nimport { MAX_LOCK_PENDING } from \"./internals/magic.js\"\r\nimport type { SvelteComponent } from \"svelte\"\r\n\r\nexport type KeyModifier = \"Alt\" | \"Ctrl\" | \"Meta\" | \"Shift\"\r\n\r\nexport class EventEmitterLite<A extends readonly unknown[]> {\r\n\tprotected static readonly emitLock = \"emit\"\r\n\tprotected readonly lock = new AsyncLock({ maxPending: MAX_LOCK_PENDING })\r\n\treadonly #listeners: ((...args: A) => unknown)[] = []\r\n\r\n\tpublic async emit(...args: A): Promise<void> {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.lock.acquire(EventEmitterLite.emitLock, async () => {\r\n\t\t\t\t// Copy to prevent concurrent modification\r\n\t\t\t\tconst emitted = [...this.#listeners]\r\n\t\t\t\t\t.map(async list => { await list(...args) })\r\n\t\t\t\tresolve(Promise.all(emitted).then(noop))\r\n\t\t\t\tawait Promise.allSettled(emitted)\r\n\t\t\t}).catch(reject)\r\n\t\t})\r\n\t}\r\n\r\n\tpublic listen(listener: (...args: A) => unknown): () => void {\r\n\t\tthis.#listeners.push(listener)\r\n\t\treturn () => { remove(this.#listeners, listener) }\r\n\t}\r\n}\r\n\r\nexport type PromisePromise<T> = Promise<{\r\n\treadonly promise: Promise<T>\r\n\treadonly resolve: (value: AsyncOrSync<T>) => void\r\n\treadonly reject: (reason?: unknown) => void\r\n}>\r\n\r\nexport class Functions<\r\n\tAsync extends boolean = false,\r\n\tArgs extends readonly unknown[] = [],\r\n> extends Array<\r\n\tAsync extends true ? (\r\n\t\t...args: Args\r\n\t) => unknown : Async extends false ? (\r\n\t\t...args: Args\r\n\t) => void : never> {\r\n\tpublic constructor(\r\n\t\tprotected readonly options: {\r\n\t\t\treadonly async: Async\r\n\t\t\treadonly settled?: boolean\r\n\t\t},\r\n\t\t...args: readonly (Async extends true ? (\r\n\t\t\t...args: Args\r\n\t\t) => unknown : Async extends false ? (\r\n\t\t\t...args: Args\r\n\t\t) => void : never)[]\r\n\t) {\r\n\t\tsuper(...args)\r\n\t}\r\n\r\n\tpublic transform(func: (\r\n\t\tself0: this[number][],\r\n\t) => readonly this[number][]): Functions<Async, Args> {\r\n\t\treturn new Functions(this.options, ...func(this))\r\n\t}\r\n\r\n\tpublic call(...args: Args): Async extends true\r\n\t\t// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\r\n\t\t? Promise<void> : Async extends false ? void : never {\r\n\t\treturn this.call0(null, ...args)\r\n\t}\r\n\r\n\tpublic call0(\r\n\t\tthisArg: unknown,\r\n\t\t...args: Args\r\n\t): Async extends true\r\n\t\t// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\r\n\t\t? Promise<void> : Async extends false ? void : never\r\n\tpublic call0(thisArg: unknown, ...args: Args): AsyncOrSync<void> {\r\n\t\tconst { async, settled } = this.options\r\n\t\tif (async) {\r\n\t\t\treturn (async (): Promise<void> => {\r\n\t\t\t\tconst promises = this.map(async func => {\r\n\t\t\t\t\tawait func.call(thisArg, ...args)\r\n\t\t\t\t})\r\n\t\t\t\tif (settled ?? false) {\r\n\t\t\t\t\tawait Promise.allSettled(promises)\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\tawait Promise.all(promises)\r\n\t\t\t})()\r\n\t\t}\r\n\t\tthis.forEach(settled ?? false\r\n\t\t\t? (func): void => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tfunc.call(thisArg, ...args)\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\tself.console.error(error)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t: (func): void => { func.call(thisArg, ...args) })\r\n\t\treturn void 0\r\n\t}\r\n}\r\n\r\nexport async function acquireConditionally<T>(\r\n\tlock: AsyncLock,\r\n\tkey: string[] | string,\r\n\tcondition: boolean,\r\n\tfn: () => PromiseLike<T> | T,\r\n): Promise<T> {\r\n\treturn condition ? lock.acquire(key, fn) : fn()\r\n}\r\n\r\nexport function alternativeRegExp(strs: readonly string[]): RegExp {\r\n\treturn isEmpty(strs)\r\n\t\t? NEVER_REGEX_G\r\n\t\t: new RegExp(\r\n\t\t\t[...strs]\r\n\t\t\t\t.sort(({ length: left }, { length: right }) => right - left)\r\n\t\t\t\t.map(escapeRegExp)\r\n\t\t\t\t.join(\"|\"),\r\n\t\t\t\"gu\",\r\n\t\t)\r\n}\r\n\r\nexport function anyToError(obj: unknown): Error {\r\n\treturn obj instanceof Error ? obj : new Error(String(obj))\r\n}\r\n\r\nexport function aroundIdentityFactory<T extends (this: unknown,\r\n\t...args: readonly unknown[]\r\n) => unknown>() {\r\n\treturn (proto: T) => function fn(\r\n\t\tthis: ThisParameterType<T>,\r\n\t\t...args: Parameters<T>\r\n\t): ReturnType<T> {\r\n\t\treturn proto.apply(this, args) as ReturnType<T>\r\n\t}\r\n}\r\n\r\nexport function assignExact<K extends keyof any, T extends {\r\n\t[_ in K]?: unknown\r\n}>(self0: T, key: K & keyof T, value?: T[K]): typeof value {\r\n\tif (value === void 0) {\r\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\r\n\t\tdelete self0[key]\r\n\t} else {\r\n\t\tself0[key] = value\r\n\t}\r\n\treturn value\r\n}\r\n\r\nexport function asyncDebounce<\r\n\tA extends readonly unknown[], R,\r\n>(func: (\r\n\tresolve: (value: AsyncOrSync<R>) => void,\r\n\treject: (reason?: unknown) => void,\r\n\t...args: A) => unknown): (...args: A) => Promise<R> {\r\n\tconst promises: {\r\n\t\treadonly resolve: (value: AsyncOrSync<R>) => void\r\n\t\treadonly reject: (reason?: unknown) => void\r\n\t}[] = []\r\n\treturn async (...args: A): Promise<R> =>\r\n\t\tnew Promise((resolve, reject) => {\r\n\t\t\tpromises.push({ reject, resolve })\r\n\t\t\tfunc(value => {\r\n\t\t\t\tfor (const promise of promises.splice(0)) {\r\n\t\t\t\t\tpromise.resolve(value)\r\n\t\t\t\t}\r\n\t\t\t}, error => {\r\n\t\t\t\tfor (const promise of promises.splice(0)) {\r\n\t\t\t\t\tpromise.reject(error)\r\n\t\t\t\t}\r\n\t\t\t}, ...args)\r\n\t\t})\r\n}\r\n\r\nexport function asyncFunction(\r\n\tself0: typeof globalThis,\r\n): AsyncFunctionConstructor {\r\n\treturn self0.eval(\"(async()=>{}).constructor\") as AsyncFunctionConstructor\r\n}\r\n\r\nexport function base64ToBytes(base64: Base64String): Uint8Array {\r\n\treturn Uint8Array.from(self.atob(base64), byte => byte.codePointAt(0) ?? NaN)\r\n}\r\n\r\nexport function base64ToString(base64: Base64String): string {\r\n\treturn new TextDecoder().decode(base64ToBytes(base64))\r\n}\r\n\r\nexport function basename(path: string, ext = \"\"): string {\r\n\tconst ret = path.slice(Math.max(\r\n\t\tpath.lastIndexOf(\"/\"),\r\n\t\tpath.lastIndexOf(\"\\\\\"),\r\n\t) + 1)\r\n\treturn ret.endsWith(ext) ? ret.slice(0, ret.length - ext.length) : ret\r\n}\r\n\r\nexport function bigIntReplacer(): (key: string, value: unknown) => unknown {\r\n\treturn (_0, value) => {\r\n\t\tif (typeof value === \"bigint\") {\r\n\t\t\treturn value.toString()\r\n\t\t}\r\n\t\treturn value\r\n\t}\r\n}\r\n\r\nexport function bracket<T extends object, K extends keyof any>(\r\n\tself0: T,\r\n\tkey: K,\r\n): { readonly valid: false; readonly value?: never }\r\n\t| { readonly valid: true; readonly value: T[K & keyof T] } {\r\n\tconst proof = typedIn(self0, key)\r\n\treturn Object.freeze(proof\r\n\t\t? { valid: true, value: proof() }\r\n\t\t: { valid: false })\r\n}\r\n\r\nexport function bytesToBase64(bytes: Uint8Array): Base64String {\r\n\treturn self.btoa(Array\r\n\t\t.from(bytes, byte => String.fromCodePoint(byte))\r\n\t\t.join(\"\")) as Base64String\r\n}\r\n\r\nexport function capitalize(\r\n\tstr: string,\r\n\tlocales?: string[] | string,\r\n): string {\r\n\treturn mapFirstCodePoint(str, first => first.toLocaleUpperCase(locales))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\r\nexport function cartesianProduct<T extends readonly (readonly unknown[])[],\r\n>(...arrays: T) {\r\n\treturn deepFreeze(arrays.reduce((acc, arr) => acc\r\n\t\t.flatMap(comb => arr.map(ele => [comb, ele].flat())), [[]])) as\r\n\t\treadonly ({ readonly [I in keyof T]: T[I][number] } &\r\n\t\t{ readonly length: T[\"length\"] })[]\r\n}\r\n\r\nexport function clear(self0: unknown[]): void {\r\n\tself0.length = 0\r\n}\r\n\r\nexport function clearProperties(self0: object): void {\r\n\tfor (const key of typedOwnKeys(self0)) {\r\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\r\n\t\tdelete self0[key]\r\n\t}\r\n}\r\n\r\nexport function cloneAsFrozen<T>(\r\n\tobj: T,\r\n\tcloner: <V>(value: V) => V = structuredClone,\r\n): DeepReadonly<T> {\r\n\treturn simplifyType(deepFreeze(cloneAsWritable(obj, cloner)))\r\n}\r\n\r\nexport function cloneAsWritable<T>(\r\n\tobj: T,\r\n\tcloner: <V>(value: V) => V = structuredClone,\r\n): DeepWritable<T> {\r\n\t// `readonly` is fake at runtime\r\n\treturn cloner(obj) as DeepWritable<T>\r\n}\r\n\r\nexport function consumeEvent(event: Event): void {\r\n\tevent.preventDefault()\r\n\tevent.stopPropagation()\r\n}\r\n\r\nexport function copyOnWrite<T extends object>(\r\n\tobj: DeepReadonly<T>,\r\n\tmutator: (obj: DeepWritable<T>) => void,\r\n): DeepReadonly<T> {\r\n\tconst ret = simplifyType<T>(cloneAsWritable(obj))\r\n\tmutator(ret)\r\n\treturn simplifyType<T>(deepFreeze(ret))\r\n}\r\n\r\nexport async function copyOnWriteAsync<T extends object>(\r\n\tobj: DeepReadonly<T>,\r\n\tmutator: (obj: DeepWritable<T>) => unknown,\r\n): Promise<DeepReadonly<T>> {\r\n\tconst ret = simplifyType<T>(cloneAsWritable(obj))\r\n\tawait mutator(ret)\r\n\treturn simplifyType<T>(deepFreeze(ret))\r\n}\r\n\r\nexport function createChildElement<K extends keyof HTMLElementTagNameMap>(\r\n\telement: ParentNode & { readonly ownerDocument: Document },\r\n\ttype: K,\r\n\tcallback = (_element: HTMLElementTagNameMap[K]): void => { },\r\n\toptions?: ElementCreationOptions,\r\n): HTMLElementTagNameMap[K] {\r\n\tconst ret = element.ownerDocument.createElement(type, options)\r\n\telement.append(ret)\r\n\tcallback(ret)\r\n\treturn ret\r\n}\r\n\r\nexport function createDocumentFragment(\r\n\tself0: Document,\r\n\tcallback: (fragment: DocumentFragment) => void,\r\n): DocumentFragment {\r\n\tconst ret = self0.createDocumentFragment()\r\n\tcallback(ret)\r\n\treturn ret\r\n}\r\n\r\nexport function deepFreeze<const T>(value: T): DeepReadonly<T> {\r\n\treturn deepFreeze0(value, new WeakSet())\r\n}\r\nfunction deepFreeze0<T>(value: T, freezing: WeakSet<object>): DeepReadonly<T> {\r\n\tif (typeof value === \"object\" && value) {\r\n\t\tfreezing.add(value)\r\n\t\tfor (const subkey of typedOwnKeys(value)) {\r\n\t\t\tconst subvalue = value[subkey]\r\n\t\t\tif (isObject(subvalue) && !freezing.has(subvalue)) {\r\n\t\t\t\tdeepFreeze0(subvalue, freezing)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn Object.freeze(value) as DeepReadonly<T>\r\n}\r\n\r\n// Feature request: https://github.com/sveltejs/svelte/issues/4056\r\nexport function destroyWithOutro(self0: SvelteComponent): void {\r\n\tconst { $$: { fragment } } = self0\r\n\tif (fragment !== false && fragment) {\r\n\t\ttry {\r\n\t\t\t$groupOutros()\r\n\t\t\t$transitionOut(fragment, 0, 0, () => { self0.$destroy() })\r\n\t\t\t$checkOutros()\r\n\t\t} catch (error) {\r\n\t\t\tself.console.error(error)\r\n\t\t\tself0.$destroy()\r\n\t\t}\r\n\t} else {\r\n\t\tself0.$destroy()\r\n\t}\r\n}\r\n\r\nexport function escapeJavaScriptString(value: string): string {\r\n\treturn `\\`${value.replace(/(?<char>`|\\\\|\\$)/ug, \"\\\\$<char>\")}\\``\r\n}\r\n\r\nexport function escapeQuerySelectorAttribute(value: string): string {\r\n\treturn multireplace(value, new Map([\r\n\t\t[\"\\\"\", \"\\\\\\\"\"],\r\n\t\t[\"\\\\\", \"\\\\\\\\\"],\r\n\t]))\r\n}\r\n\r\nexport function extname(path: string): string {\r\n\tconst base = basename(path),\r\n\t\tidx = base.lastIndexOf(\".\")\r\n\treturn idx === -1 ? \"\" : base.slice(idx)\r\n}\r\n\r\nexport function getKeyModifiers(\r\n\tevent: KeyboardEvent,\r\n): readonly KeyModifier[] {\r\n\tconst ret: KeyModifier[] = []\r\n\tif (event.altKey) { ret.push(\"Alt\") }\r\n\tif (event.ctrlKey) { ret.push(\"Ctrl\") }\r\n\tif (event.metaKey) { ret.push(\"Meta\") }\r\n\tif (event.shiftKey) { ret.push(\"Shift\") }\r\n\treturn deepFreeze(ret)\r\n}\r\n\r\nexport function typedIn<T extends object, K extends keyof any>(\r\n\tself0: T,\r\n\tkey: K,\r\n): (() => T[K & keyof T]) | null {\r\n\tif (key in self0) {\r\n\t\treturn () => self0[key as K & keyof T]\r\n\t}\r\n\treturn null\r\n}\r\n\r\nexport function typedOwnKeys<T extends object>(\r\n\tself0: T,\r\n): (keyof T & (string | symbol))[] {\r\n\treturn Reflect.ownKeys(self0) as (keyof T & (string | symbol))[]\r\n}\r\n\r\nexport function typedKeys<T extends readonly (keyof any)[]>() {\r\n\treturn <O extends (keyof O extends T[number] ? {\r\n\t\treadonly [_ in T[number]]: unknown\r\n\t} : never)>(obj: O): Readonly<T> =>\r\n\t\tdeepFreeze(Object.keys(obj)) as T\r\n}\r\n\r\nexport function inSet<const T extends ReadonlyTuple>(\r\n\tset: T,\r\n\tobj: unknown,\r\n): obj is T[number] {\r\n\treturn contravariant(set).includes(obj)\r\n}\r\n\r\nexport function insertAt<T>(\r\n\tself0: T[],\r\n\tindex: number,\r\n\t...items: readonly T[]\r\n): void {\r\n\tself0.splice(index, 0, ...items)\r\n}\r\n\r\nexport function instanceOf<T extends Node | UIEvent>(\r\n\tself0: unknown,\r\n\ttype: Newable<T>,\r\n): self0 is T {\r\n\tif (!isObject(self0)) { return false }\r\n\tif (self0 instanceof type) { return true }\r\n\tconst { name } = type,\r\n\t\ttypeMain: unknown = Reflect.get(self, name)\r\n\tif (typeof typeMain === \"function\" && self0 instanceof typeMain) {\r\n\t\treturn true\r\n\t}\r\n\tconst\r\n\t\twin = \"ownerDocument\" in self0\r\n\t\t\t? launderUnchecked<AnyObject>(self0.ownerDocument)[\"defaultView\"]\r\n\t\t\t: launderUnchecked<AnyObject>(self0)[\"view\"],\r\n\t\ttypeWin: unknown = isObject(win) ? Reflect.get(win, name) : null\r\n\tif (typeof typeWin === \"function\" && self0 instanceof typeWin) {\r\n\t\treturn true\r\n\t}\r\n\treturn false\r\n}\r\n\r\nexport function isHomogenousArray<T extends PrimitiveTypeE>(\r\n\ttypes: readonly T[],\r\n\tvalue: unknown,\r\n): value is TypeofMapE[T][] {\r\n\tif (!Array.isArray(value)) { return false }\r\n\treturn value.every(element => genericTypeofGuardE(types, element))\r\n}\r\n\r\nexport function isNonNil<T>(\r\n\tvalue: (T & (null | undefined)) extends never ? never : T,\r\n): value is (T & (null | undefined)) extends never ? never : NonNullable<T> {\r\n\treturn !isNil(value)\r\n}\r\n\r\nexport function lazyInit<T>(initializer: () => T): () => T {\r\n\tlet cache: {\r\n\t\treadonly init: false\r\n\t\treadonly value: null\r\n\t} | {\r\n\t\treadonly init: true\r\n\t\treadonly value: T\r\n\t} = { init: false, value: null }\r\n\treturn () => {\r\n\t\tconst cache0 = cache.init\r\n\t\t\t? cache\r\n\t\t\t: cache = { init: true, value: initializer() }\r\n\t\treturn cache0.value\r\n\t}\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nexport function lazyProxy<T extends Function | object>(\r\n\tinitializer: () => T,\r\n): T {\r\n\tconst lazy = lazyInit(initializer),\r\n\t\tfunctions = new Map(),\r\n\t\tproxy = new Proxy(lazy, {\r\n\t\t\tapply(target, thisArg, argArray): unknown {\r\n\t\t\t\tconst target0 = target()\r\n\t\t\t\tif (typeof target0 !== \"function\") {\r\n\t\t\t\t\tthrow new TypeError(String(target0))\r\n\t\t\t\t}\r\n\t\t\t\treturn Reflect.apply(\r\n\t\t\t\t\ttarget0,\r\n\t\t\t\t\tthisArg === target ? target() : thisArg,\r\n\t\t\t\t\targArray,\r\n\t\t\t\t)\r\n\t\t\t},\r\n\t\t\tconstruct(target, argArray, newTarget): object {\r\n\t\t\t\tconst target0 = target()\r\n\t\t\t\tif (typeof target0 !== \"function\") {\r\n\t\t\t\t\tthrow new TypeError(String(target0))\r\n\t\t\t\t}\r\n\t\t\t\tconst ret: unknown = Reflect.construct(\r\n\t\t\t\t\ttarget0,\r\n\t\t\t\t\targArray,\r\n\t\t\t\t\tnewTarget === target ? target0 : newTarget,\r\n\t\t\t\t)\r\n\t\t\t\tif (isObject(ret)) { return ret }\r\n\t\t\t\tthrow new TypeError(String(ret))\r\n\t\t\t},\r\n\t\t\tdefineProperty(target, property, attributes): boolean {\r\n\t\t\t\tif (!(attributes.configurable ?? true) &&\r\n\t\t\t\t\t!Reflect.defineProperty(target, property, attributes)) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t\treturn Reflect.defineProperty(target(), property, attributes)\r\n\t\t\t},\r\n\t\t\tdeleteProperty(target, property): boolean {\r\n\t\t\t\tconst own = Reflect.getOwnPropertyDescriptor(target, property)\r\n\t\t\t\tif (!(own?.configurable ?? true) &&\r\n\t\t\t\t\t!Reflect.deleteProperty(target, property)) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t\treturn Reflect.deleteProperty(target(), property)\r\n\t\t\t},\r\n\t\t\tget(target, property, receiver): unknown {\r\n\t\t\t\tconst own = Reflect.getOwnPropertyDescriptor(target, property)\r\n\t\t\t\tif (!(own?.configurable ?? true) &&\r\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-extra-parens\r\n\t\t\t\t\t(!(own?.writable ?? true) || (own?.set && !own.get))) {\r\n\t\t\t\t\treturn Reflect.get(target, property, receiver)\r\n\t\t\t\t}\r\n\t\t\t\tconst ret = Reflect.get(\r\n\t\t\t\t\ttarget(),\r\n\t\t\t\t\tproperty,\r\n\t\t\t\t\treceiver === target ? target() : receiver,\r\n\t\t\t\t)\r\n\t\t\t\tif (typeof ret === \"function\") {\r\n\t\t\t\t\tconst ret0 = ret\r\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\n\t\t\t\t\treturn functions.get(ret) ?? (() => {\r\n\t\t\t\t\t\tfunction fn(\r\n\t\t\t\t\t\t\tthis: unknown,\r\n\t\t\t\t\t\t\t...args: readonly unknown[]\r\n\t\t\t\t\t\t): unknown {\r\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions\r\n\t\t\t\t\t\t\tif (new.target) {\r\n\t\t\t\t\t\t\t\treturn Reflect.construct(\r\n\t\t\t\t\t\t\t\t\tret0,\r\n\t\t\t\t\t\t\t\t\targs,\r\n\t\t\t\t\t\t\t\t\tnew.target === fn ? ret0 : new.target,\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn Reflect.apply(\r\n\t\t\t\t\t\t\t\tret0,\r\n\t\t\t\t\t\t\t\tthis === proxy ? target() : this,\r\n\t\t\t\t\t\t\t\targs,\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfunctions.set(ret, fn)\r\n\t\t\t\t\t\treturn fn\r\n\t\t\t\t\t})()\r\n\t\t\t\t}\r\n\t\t\t\treturn ret\r\n\t\t\t},\r\n\t\t\tgetOwnPropertyDescriptor(\r\n\t\t\t\ttarget,\r\n\t\t\t\tproperty,\r\n\t\t\t): PropertyDescriptor | undefined {\r\n\t\t\t\tlet ret = Reflect.getOwnPropertyDescriptor(target(), property)\r\n\t\t\t\tif (ret && !(ret.configurable ?? true) &&\r\n\t\t\t\t\t!Reflect.defineProperty(target, property, ret)) {\r\n\t\t\t\t\tret = void 0\r\n\t\t\t\t}\r\n\t\t\t\treturn ret\r\n\t\t\t},\r\n\t\t\tgetPrototypeOf(target): object | null {\r\n\t\t\t\treturn Reflect.getPrototypeOf(target())\r\n\t\t\t},\r\n\t\t\thas(target, property): boolean {\r\n\t\t\t\treturn Reflect.getOwnPropertyDescriptor(target, property)\r\n\t\t\t\t\t?.configurable ?? true\r\n\t\t\t\t\t? Reflect.has(target(), property)\r\n\t\t\t\t\t: Reflect.has(target, property)\r\n\t\t\t},\r\n\t\t\tisExtensible(target): boolean {\r\n\t\t\t\treturn Reflect.isExtensible(target)\r\n\t\t\t},\r\n\t\t\townKeys(target): ArrayLike<string | symbol> {\r\n\t\t\t\treturn [\r\n\t\t\t\t\t...new Set([\r\n\t\t\t\t\t\tReflect.ownKeys(target()),\r\n\t\t\t\t\t\tReflect.ownKeys(target)\r\n\t\t\t\t\t\t\t.filter(key => !(Reflect.getOwnPropertyDescriptor(target, key)\r\n\t\t\t\t\t\t\t\t?.configurable ?? true)),\r\n\t\t\t\t\t].flat()),\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\tpreventExtensions(target): boolean {\r\n\t\t\t\treturn Reflect.preventExtensions(target)\r\n\t\t\t},\r\n\t\t\tset(target, property, newValue, receiver): boolean {\r\n\t\t\t\tconst own = Reflect.getOwnPropertyDescriptor(target, property)\r\n\t\t\t\tif (!(own?.configurable ?? true) &&\r\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-extra-parens\r\n\t\t\t\t\t(!(own?.writable ?? true) || (own?.get && !own.set)) &&\r\n\t\t\t\t\t!Reflect.set(target, property, newValue, receiver)) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t\treturn Reflect.set(\r\n\t\t\t\t\ttarget(),\r\n\t\t\t\t\tproperty,\r\n\t\t\t\t\tnewValue,\r\n\t\t\t\t\treceiver === target ? target() : receiver,\r\n\t\t\t\t)\r\n\t\t\t},\r\n\t\t\tsetPrototypeOf(target, proto): boolean {\r\n\t\t\t\treturn Reflect.setPrototypeOf(target(), proto)\r\n\t\t\t},\r\n\t\t} satisfies Required<ProxyHandler<typeof lazy>>)\r\n\treturn proxy as T\r\n}\r\n\r\nexport function logFormat(\r\n\toptions: Options,\r\n\t...args: readonly unknown[]\r\n): string {\r\n\tif (isEmpty(args)) { return \"\" }\r\n\tconst\r\n\t\tstringify0 = (param: unknown): string => {\r\n\t\t\ttry {\r\n\t\t\t\treturn inspect(param, options)\r\n\t\t\t} catch {\r\n\t\t\t\t// Do not log\r\n\t\t\t\treturn String(param)\r\n\t\t\t}\r\n\t\t},\r\n\t\t[format, ...rest] = args\r\n\tif (typeof format === \"string\") {\r\n\t\treturn [\r\n\t\t\t...(function* fn(): Generator<string, void> {\r\n\t\t\t\tconst params = rest[Symbol.iterator]()\r\n\t\t\t\tlet back = 0\r\n\t\t\t\tfor (let sub = format.indexOf(\"%\");\r\n\t\t\t\t\tsub !== -1;\r\n\t\t\t\t\tsub = format.indexOf(\"%\", back)) {\r\n\t\t\t\t\tyield format.slice(back, sub)\r\n\t\t\t\t\tback = sub + \"%\".length\r\n\t\t\t\t\tconst type = format.codePointAt(back)\r\n\t\t\t\t\tif (type === void 0) {\r\n\t\t\t\t\t\tyield \"%\"\r\n\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst type0 = String.fromCodePoint(type)\r\n\t\t\t\t\tback += type0.length\r\n\t\t\t\t\tlet func: ((param: unknown) => string) | null = null\r\n\t\t\t\t\tswitch (type0) {\r\n\t\t\t\t\t\tcase \"%\":\r\n\t\t\t\t\t\t\tyield \"%%\"\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tcase \"s\":\r\n\t\t\t\t\t\t\tfunc = (param): string => String(param)\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tcase \"o\":\r\n\t\t\t\t\t\tcase \"O\":\r\n\t\t\t\t\t\t\tfunc = stringify0\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tcase \"f\":\r\n\t\t\t\t\t\t\tfunc = (param): string => Number(param).toString()\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tcase \"d\":\r\n\t\t\t\t\t\tcase \"i\":\r\n\t\t\t\t\t\t\tfunc = (param): string => Math.trunc(Number(param)).toString()\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tcase \"c\":\r\n\t\t\t\t\t\t\t// CSS unsupported\r\n\t\t\t\t\t\t\tfunc = (): string => \"\"\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tyield `%${type0}`\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (func) {\r\n\t\t\t\t\t\tconst param = params.next()\r\n\t\t\t\t\t\tif (param.done ?? false) {\r\n\t\t\t\t\t\t\tyield `%${type0}`\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tyield func(param.value)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tyield format.slice(back)\r\n\t\t\t\tfor (const param of params) {\r\n\t\t\t\t\tyield ` ${stringify0(param)}`\r\n\t\t\t\t}\r\n\t\t\t}()),\r\n\t\t].join(\"\")\r\n\t}\r\n\treturn args.map(stringify0).join(\" \")\r\n}\r\n\r\nexport function mapFirstCodePoint(\r\n\tstr: string,\r\n\tmap: (value: string) => string,\r\n\tmapRest: (value: string) => string = identity,\r\n): string {\r\n\tconst cp0 = str.codePointAt(0)\r\n\tif (cp0 === void 0) { return \"\" }\r\n\tconst char0 = String.fromCodePoint(cp0)\r\n\treturn `${map(char0)}${mapRest(str.slice(char0.length))}`\r\n}\r\n\r\nexport function multireplace(\r\n\tself0: string,\r\n\treplacements: Map<string, string>,\r\n): string {\r\n\treturn self0.replace(\r\n\t\talternativeRegExp([...replacements.keys()]),\r\n\t\tmatch => replacements.get(match) ?? match,\r\n\t)\r\n}\r\n\r\nexport function onResize(\r\n\telement: Element,\r\n\tcallback: (entry: ResizeObserverEntry) => void,\r\n): ResizeObserver {\r\n\tconst ret = new (activeSelf(element).ResizeObserver)(ents => {\r\n\t\tconst ent = ents.at(-1)\r\n\t\tif (ent) { callback(ent) }\r\n\t})\r\n\tret.observe(element)\r\n\treturn ret\r\n}\r\n\r\nexport function onVisible(\r\n\telement: Element,\r\n\tcallback: (entry: IntersectionObserverEntry) => void,\r\n\ttransient = false,\r\n): IntersectionObserver {\r\n\tconst ret = new (activeSelf(element).IntersectionObserver)(ents => {\r\n\t\tfor (const ent of transient\r\n\t\t\t? ents.reverse()\r\n\t\t\t: [ents.at(-1) ?? { isIntersecting: false }]) {\r\n\t\t\tif (ent.isIntersecting) {\r\n\t\t\t\tcallback(ent)\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n\tret.observe(element)\r\n\treturn ret\r\n}\r\n\r\nexport function openExternal(self0: Window, url?: URL | string): Window | null {\r\n\treturn self0.open(url, \"_blank\", \"noreferrer\")\r\n}\r\n\r\nexport async function promisePromise<T = void>(): PromisePromise<T> {\r\n\treturn new Promise(resolve0 => {\r\n\t\tconst promise = new Promise<T>((resolve, reject) => {\r\n\t\t\tresolve0(Promise.resolve()\r\n\t\t\t\t.then(() => ({ promise, reject, resolve })))\r\n\t\t})\r\n\t})\r\n}\r\n\r\nexport function randomNotIn(\r\n\tself0: readonly string[],\r\n\tgenerator = (): string => self.crypto.randomUUID(),\r\n): string {\r\n\tlet ret = generator()\r\n\twhile (self0.includes(ret)) { ret = generator() }\r\n\treturn ret\r\n}\r\n\r\nexport function rangeCodePoint(\r\n\tstart: CodePoint,\r\n\tend?: CodePoint,\r\n\tstep?: number,\r\n): readonly string[] {\r\n\treturn deepFreeze(\r\n\t\trange(start.codePointAt(0), end?.codePointAt(0), step)\r\n\t\t\t.map(cp => String.fromCodePoint(cp)),\r\n\t)\r\n}\r\n\r\nexport function remove<T>(self0: T[], item: T): T | undefined {\r\n\treturn removeAt(self0, self0.indexOf(item))\r\n}\r\n\r\nexport function removeAt<T>(self0: T[], index: number): T | undefined {\r\n\treturn self0.splice(index, 1)[0]\r\n}\r\n\r\nexport function replaceAllRegex(string: string): RegExp {\r\n\treturn new RegExp(escapeRegExp(string), \"ug\")\r\n}\r\n\r\nexport function splitLines(\r\n\tstr: string,\r\n\tdelimiter = /\\r\\n|[\\n\\v\\f\\r\\x85\\u2028\\u2029]/u,\r\n): readonly string[] {\r\n\treturn str.split(delimiter)\r\n}\r\n\r\nexport function startCase(str: string, locales?: string[] | string): string {\r\n\treturn str.replace(/\\w\\S*/gu, ss => mapFirstCodePoint(\r\n\t\tss,\r\n\t\tstr0 => str0.toLocaleUpperCase(locales),\r\n\t\tstr0 => str0.toLocaleLowerCase(locales),\r\n\t))\r\n}\r\n\r\nexport function stringToBase64(string: string): Base64String {\r\n\treturn bytesToBase64(new TextEncoder().encode(string))\r\n}\r\n\r\nexport function activeSelf(\r\n\treference?: Element | UIEvent | null,\r\n): Window & typeof globalThis {\r\n\tif (reference) {\r\n\t\tif (\"ownerDocument\" in reference) {\r\n\t\t\tconst { ownerDocument: { defaultView } } = reference\r\n\t\t\tif (defaultView) { return defaultView }\r\n\t\t}\r\n\t\tif (\"view\" in reference) {\r\n\t\t\tconst { view } = reference\r\n\t\t\tif (view) { return correctType(view) }\r\n\t\t}\r\n\t\tcorrectType(self.activeWindow).console.warn(reference)\r\n\t}\r\n\treturn correctType(self.activeWindow)\r\n}\r\n\r\nexport async function sleep2(\r\n\tself0: WindowOrWorkerGlobalScope,\r\n\ttimeInSeconds: number,\r\n): Promise<void> {\r\n\treturn new Promise(resolve => {\r\n\t\tself0.setTimeout(resolve, timeInSeconds * SI_PREFIX_SCALE)\r\n\t})\r\n}\r\n\r\nexport function swap(self0: unknown[], left: number, right: number): void {\r\n\t[self0[left], self0[right]] = [self0[right], self0[left]]\r\n}\r\n\r\nexport function uncapitalize(\r\n\tstr: string,\r\n\tlocales?: string[] | string,\r\n): string {\r\n\treturn mapFirstCodePoint(str, first => first.toLocaleLowerCase(locales))\r\n}\r\n\r\nexport function unexpected(): never {\r\n\tthrow new Error()\r\n}\r\n", "import type { Plugin, TransformOptions } from \"esbuild\"\r\nimport { assignExact, escapeJavaScriptString as escJSStr } from \"../util.js\"\r\nimport { readFile, writeFile } from \"node:fs/promises\"\r\nimport { fileURLToPath } from \"node:url\"\r\nimport { isEmpty } from \"lodash-es\"\r\nimport lzString from \"lz-string\"\r\nimport { resolve } from \"import-meta-resolve\"\r\n\r\nconst { compressToBase64 } = lzString,\r\n\tNAME = \"compress\"\r\n\r\nexport interface Options {\r\n\treadonly enable?: boolean | undefined\r\n\treadonly name?: string | undefined\r\n}\r\n\r\nexport default function esbuildCompress(options?: Options): Plugin {\r\n\treturn {\r\n\t\tname: options?.name ?? NAME,\r\n\t\tsetup(build): void {\r\n\t\t\tif (options?.enable === false) { return }\r\n\t\t\tconst { esbuild, initialOptions } = build,\r\n\t\t\t\twrite = initialOptions.write ?? true\r\n\t\t\t// Await https://github.com/evanw/esbuild/issues/2999\r\n\t\t\tinitialOptions.write = false\r\n\t\t\tbuild.onEnd(async ({ errors, outputFiles }) => {\r\n\t\t\t\tif (!isEmpty(errors) || !outputFiles) { return }\r\n\t\t\t\tconst main = outputFiles.find(({ path }) => path.endsWith(\".js\"))\r\n\t\t\t\tif (main) {\r\n\t\t\t\t\tconst { path, text } = main,\r\n\t\t\t\t\t\ttOpts: TransformOptions = {\r\n\t\t\t\t\t\t\tloader: \"js\",\r\n\t\t\t\t\t\t\tsourcefile: path,\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tfor (const key of [\r\n\t\t\t\t\t\t\"charset\",\r\n\t\t\t\t\t\t\"color\",\r\n\t\t\t\t\t\t\"define\",\r\n\t\t\t\t\t\t\"drop\",\r\n\t\t\t\t\t\t// \"dropLabels\",\r\n\t\t\t\t\t\t\"format\",\r\n\t\t\t\t\t\t\"globalName\",\r\n\t\t\t\t\t\t\"ignoreAnnotations\",\r\n\t\t\t\t\t\t\"jsx\",\r\n\t\t\t\t\t\t\"jsxDev\",\r\n\t\t\t\t\t\t\"jsxFactory\",\r\n\t\t\t\t\t\t\"jsxFragment\",\r\n\t\t\t\t\t\t\"jsxImportSource\",\r\n\t\t\t\t\t\t\"jsxSideEffects\",\r\n\t\t\t\t\t\t\"keepNames\",\r\n\t\t\t\t\t\t\"legalComments\",\r\n\t\t\t\t\t\t// \"lineLimit\",\r\n\t\t\t\t\t\t\"logLevel\",\r\n\t\t\t\t\t\t\"logLimit\",\r\n\t\t\t\t\t\t\"logOverride\",\r\n\t\t\t\t\t\t\"mangleCache\",\r\n\t\t\t\t\t\t\"mangleProps\",\r\n\t\t\t\t\t\t\"mangleQuoted\",\r\n\t\t\t\t\t\t\"minify\",\r\n\t\t\t\t\t\t\"minifyIdentifiers\",\r\n\t\t\t\t\t\t\"minifySyntax\",\r\n\t\t\t\t\t\t\"minifyWhitespace\",\r\n\t\t\t\t\t\t\"platform\",\r\n\t\t\t\t\t\t\"pure\",\r\n\t\t\t\t\t\t\"reserveProps\",\r\n\t\t\t\t\t\t\"sourceRoot\",\r\n\t\t\t\t\t\t\"sourcemap\",\r\n\t\t\t\t\t\t\"sourcesContent\",\r\n\t\t\t\t\t\t\"supported\",\r\n\t\t\t\t\t\t\"target\",\r\n\t\t\t\t\t\t\"treeShaking\",\r\n\t\t\t\t\t\t// \"tsconfigRaw\",\r\n\t\t\t\t\t] as const) {\r\n\t\t\t\t\t\tassignExact(tOpts, key, initialOptions[key])\r\n\t\t\t\t\t}\r\n\t\t\t\t\tassignExact(tOpts, \"banner\", initialOptions.banner?.[\"js\"])\r\n\t\t\t\t\tassignExact(tOpts, \"footer\", initialOptions.footer?.[\"js\"])\r\n\t\t\t\t\tconst { code: lzStringBundle } = await esbuild.transform(\r\n\t\t\t\t\t\tawait readFile(\r\n\t\t\t\t\t\t\tfileURLToPath(resolve(\"lz-string\", import.meta.url)),\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\ttOpts,\r\n\t\t\t\t\t)\r\n\t\t\t\t\tmain.contents = new TextEncoder().encode(\r\n\t\t\t\t\t\t(await esbuild.transform(\r\n\t\t\t\t\t\t\t`var a={};new Function(\"module\",${escJSStr(\r\n\t\t\t\t\t\t\t\tlzStringBundle,\r\n\t\t\t\t\t\t\t\t// eslint-disable-next-line max-len\r\n\t\t\t\t\t\t\t)})(a);new Function(\"require\",\"module\",\"exports\",a.exports.decompressFromBase64(${escJSStr(\r\n\t\t\t\t\t\t\t\tcompressToBase64(text),\r\n\t\t\t\t\t\t\t)}))(require,module,exports)`,\r\n\t\t\t\t\t\t\ttOpts,\r\n\t\t\t\t\t\t)).code,\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\tif (!write) { return }\r\n\t\t\t\tawait Promise.all(outputFiles\r\n\t\t\t\t\t.map(async ({ path, contents }) => writeFile(path, contents)))\r\n\t\t\t})\r\n\t\t},\r\n\t}\r\n}\r\n"],
|
|
5
|
-
"mappings": ";;;AAAA;AAAA,EACC,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,OACZ;AAwBP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,OAAO,aAA+B;
|
|
4
|
+
"sourcesContent": ["import {\r\n\tcheck_outros as $checkOutros,\r\n\tgroup_outros as $groupOutros,\r\n\ttransition_out as $transitionOut,\r\n} from \"svelte/internal\"\r\nimport {\r\n\ttype AnyObject,\r\n\ttype AsyncFunctionConstructor,\r\n\ttype Base64String,\r\n\ttype CodePoint,\r\n\ttype ReadonlyTuple,\r\n\tcontravariant,\r\n\tcorrectType,\r\n\tlaunderUnchecked,\r\n\tsimplifyType,\r\n} from \"./types.js\"\r\nimport type {\r\n\tAsyncOrSync,\r\n\tDeepReadonly,\r\n\tDeepWritable,\r\n\tNewable,\r\n} from \"ts-essentials\"\r\nimport { NEVER_REGEX_G, SI_PREFIX_SCALE } from \"./magic.js\"\r\nimport {\r\n\ttype PrimitiveTypeE,\r\n\ttype TypeofMapE,\r\n\tgenericTypeofGuardE,\r\n} from \"./typeof.js\"\r\nimport {\r\n\tescapeRegExp,\r\n\tidentity,\r\n\tisEmpty,\r\n\tisNil,\r\n\tisObject,\r\n\tnoop,\r\n\trange,\r\n} from \"lodash-es\"\r\nimport inspect, { type Options } from \"browser-util-inspect\"\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nimport AsyncLock from \"async-lock\"\r\nimport { MAX_LOCK_PENDING } from \"./internals/magic.js\"\r\nimport type { SvelteComponent } from \"svelte\"\r\n\r\nexport type KeyModifier = \"Alt\" | \"Ctrl\" | \"Meta\" | \"Shift\"\r\n\r\nexport class EventEmitterLite<A extends readonly unknown[]> {\r\n\tprotected static readonly emitLock = \"emit\"\r\n\tprotected readonly lock = new AsyncLock({ maxPending: MAX_LOCK_PENDING })\r\n\treadonly #listeners: ((...args: A) => unknown)[] = []\r\n\r\n\tpublic async emit(...args: A): Promise<void> {\r\n\t\treturn new Promise((resolve, reject: (reason?: unknown) => void) => {\r\n\t\t\tthis.lock.acquire(EventEmitterLite.emitLock, async () => {\r\n\t\t\t\t// Copy to prevent concurrent modification\r\n\t\t\t\tconst emitted = [...this.#listeners]\r\n\t\t\t\t\t.map(async list => { await list(...args) })\r\n\t\t\t\tresolve(Promise.all(emitted).then(noop))\r\n\t\t\t\tawait Promise.allSettled(emitted)\r\n\t\t\t}).catch(reject)\r\n\t\t})\r\n\t}\r\n\r\n\tpublic listen(listener: (...args: A) => unknown): () => void {\r\n\t\tthis.#listeners.push(listener)\r\n\t\treturn () => { remove(this.#listeners, listener) }\r\n\t}\r\n}\r\n\r\nexport type PromisePromise<T> = Promise<{\r\n\treadonly promise: Promise<T>\r\n\treadonly resolve: (value: AsyncOrSync<T>) => void\r\n\treadonly reject: (reason?: unknown) => void\r\n}>\r\n\r\nexport class Functions<\r\n\tAsync extends boolean = false,\r\n\tArgs extends readonly unknown[] = [],\r\n> extends Array<\r\n\tAsync extends true ? (\r\n\t\t...args: Args\r\n\t) => unknown : Async extends false ? (\r\n\t\t...args: Args\r\n\t) => void : never> {\r\n\tpublic constructor(\r\n\t\tprotected readonly options: {\r\n\t\t\treadonly async: Async\r\n\t\t\treadonly settled?: boolean\r\n\t\t},\r\n\t\t...args: readonly (Async extends true ? (\r\n\t\t\t...args: Args\r\n\t\t) => unknown : Async extends false ? (\r\n\t\t\t...args: Args\r\n\t\t) => void : never)[]\r\n\t) {\r\n\t\tsuper(...args)\r\n\t}\r\n\r\n\tpublic transform(func: (\r\n\t\tself0: this[number][],\r\n\t) => readonly this[number][]): Functions<Async, Args> {\r\n\t\treturn new Functions(this.options, ...func(this))\r\n\t}\r\n\r\n\tpublic call(...args: Args): Async extends true\r\n\t\t// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\r\n\t\t? Promise<void> : Async extends false ? void : never {\r\n\t\treturn this.call0(null, ...args)\r\n\t}\r\n\r\n\tpublic call0(\r\n\t\tthisArg: unknown,\r\n\t\t...args: Args\r\n\t): Async extends true\r\n\t\t// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\r\n\t\t? Promise<void> : Async extends false ? void : never\r\n\tpublic call0(thisArg: unknown, ...args: Args): AsyncOrSync<void> {\r\n\t\tconst { async, settled } = this.options\r\n\t\tif (async) {\r\n\t\t\treturn (async (): Promise<void> => {\r\n\t\t\t\tconst promises = this.map(async func => {\r\n\t\t\t\t\tawait func.call(thisArg, ...args)\r\n\t\t\t\t})\r\n\t\t\t\tif (settled ?? false) {\r\n\t\t\t\t\tawait Promise.allSettled(promises)\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\tawait Promise.all(promises)\r\n\t\t\t})()\r\n\t\t}\r\n\t\tthis.forEach(settled ?? false\r\n\t\t\t? (func): void => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tfunc.call(thisArg, ...args)\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\tself.console.error(error)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t: (func): void => { func.call(thisArg, ...args) })\r\n\t\treturn void 0\r\n\t}\r\n}\r\n\r\nexport async function acquireConditionally<T>(\r\n\tlock: AsyncLock,\r\n\tkey: string[] | string,\r\n\tcondition: boolean,\r\n\tfn: () => PromiseLike<T> | T,\r\n): Promise<T> {\r\n\treturn condition ? lock.acquire(key, fn) : fn()\r\n}\r\n\r\nexport function alternativeRegExp(strs: readonly string[]): RegExp {\r\n\treturn isEmpty(strs)\r\n\t\t? NEVER_REGEX_G\r\n\t\t: new RegExp(\r\n\t\t\t[...strs]\r\n\t\t\t\t.sort(({ length: left }, { length: right }) => right - left)\r\n\t\t\t\t.map(escapeRegExp)\r\n\t\t\t\t.join(\"|\"),\r\n\t\t\t\"gu\",\r\n\t\t)\r\n}\r\n\r\nexport function anyToError(obj: unknown): Error {\r\n\treturn obj instanceof Error ? obj : new Error(String(obj))\r\n}\r\n\r\nexport function aroundIdentityFactory<T extends (this: unknown,\r\n\t...args: readonly unknown[]\r\n) => unknown>() {\r\n\treturn (proto: T) => function fn(\r\n\t\tthis: ThisParameterType<T>,\r\n\t\t...args: Parameters<T>\r\n\t): ReturnType<T> {\r\n\t\treturn proto.apply(this, args) as ReturnType<T>\r\n\t}\r\n}\r\n\r\nexport function assignExact<K extends keyof any, T extends {\r\n\t[_ in K]?: unknown\r\n}>(self0: T, key: K & keyof T, value?: T[K]): typeof value {\r\n\tif (value === void 0) {\r\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\r\n\t\tdelete self0[key]\r\n\t} else {\r\n\t\tself0[key] = value\r\n\t}\r\n\treturn value\r\n}\r\n\r\nexport function asyncDebounce<\r\n\tA extends readonly unknown[], R,\r\n>(func: (\r\n\tresolve: (value: AsyncOrSync<R>) => void,\r\n\treject: (reason?: unknown) => void,\r\n\t...args: A) => unknown): (...args: A) => Promise<R> {\r\n\tconst promises: {\r\n\t\treadonly resolve: (value: AsyncOrSync<R>) => void\r\n\t\treadonly reject: (reason?: unknown) => void\r\n\t}[] = []\r\n\treturn async (...args: A): Promise<R> =>\r\n\t\tnew Promise((resolve, reject) => {\r\n\t\t\tpromises.push({ reject, resolve })\r\n\t\t\tfunc(value => {\r\n\t\t\t\tfor (const promise of promises.splice(0)) {\r\n\t\t\t\t\tpromise.resolve(value)\r\n\t\t\t\t}\r\n\t\t\t}, error => {\r\n\t\t\t\tfor (const promise of promises.splice(0)) {\r\n\t\t\t\t\tpromise.reject(error)\r\n\t\t\t\t}\r\n\t\t\t}, ...args)\r\n\t\t})\r\n}\r\n\r\nexport function asyncFunction(\r\n\tself0: typeof globalThis,\r\n): AsyncFunctionConstructor {\r\n\treturn self0.eval(\"(async()=>{}).constructor\") as AsyncFunctionConstructor\r\n}\r\n\r\nexport function base64ToBytes(base64: Base64String): Uint8Array {\r\n\treturn Uint8Array.from(self.atob(base64), byte => byte.codePointAt(0) ?? NaN)\r\n}\r\n\r\nexport function base64ToString(base64: Base64String): string {\r\n\treturn new TextDecoder().decode(base64ToBytes(base64))\r\n}\r\n\r\nexport function basename(path: string, ext = \"\"): string {\r\n\tconst ret = path.slice(Math.max(\r\n\t\tpath.lastIndexOf(\"/\"),\r\n\t\tpath.lastIndexOf(\"\\\\\"),\r\n\t) + 1)\r\n\treturn ret.endsWith(ext) ? ret.slice(0, ret.length - ext.length) : ret\r\n}\r\n\r\nexport function bigIntReplacer(): (key: string, value: unknown) => unknown {\r\n\treturn (_0, value) => {\r\n\t\tif (typeof value === \"bigint\") {\r\n\t\t\treturn value.toString()\r\n\t\t}\r\n\t\treturn value\r\n\t}\r\n}\r\n\r\nexport function bracket<T extends object, K extends keyof any>(\r\n\tself0: T,\r\n\tkey: K,\r\n): { readonly valid: false; readonly value?: never }\r\n\t| { readonly valid: true; readonly value: T[K & keyof T] } {\r\n\tconst proof = typedIn(self0, key)\r\n\treturn Object.freeze(proof\r\n\t\t? { valid: true, value: proof() }\r\n\t\t: { valid: false })\r\n}\r\n\r\nexport function bytesToBase64(bytes: Uint8Array): Base64String {\r\n\treturn self.btoa(Array\r\n\t\t.from(bytes, byte => String.fromCodePoint(byte))\r\n\t\t.join(\"\")) as Base64String\r\n}\r\n\r\nexport function capitalize(\r\n\tstr: string,\r\n\tlocales?: string[] | string,\r\n): string {\r\n\treturn mapFirstCodePoint(str, first => first.toLocaleUpperCase(locales))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\r\nexport function cartesianProduct<T extends readonly (readonly unknown[])[],\r\n>(...arrays: T) {\r\n\treturn deepFreeze(arrays.reduce((acc, arr) => acc\r\n\t\t.flatMap(comb => arr.map(ele => [comb, ele].flat())), [[]])) as\r\n\t\treadonly ({ readonly [I in keyof T]: T[I][number] } &\r\n\t\t{ readonly length: T[\"length\"] })[]\r\n}\r\n\r\nexport function clear(self0: unknown[]): void {\r\n\tself0.length = 0\r\n}\r\n\r\nexport function clearProperties(self0: object): void {\r\n\tfor (const key of typedOwnKeys(self0)) {\r\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\r\n\t\tdelete self0[key]\r\n\t}\r\n}\r\n\r\nexport function cloneAsFrozen<T>(\r\n\tobj: T,\r\n\tcloner: <V>(value: V) => V = structuredClone,\r\n): DeepReadonly<T> {\r\n\treturn simplifyType<T>(deepFreeze(cloneAsWritable(obj, cloner)))\r\n}\r\n\r\nexport function cloneAsWritable<T>(\r\n\tobj: T,\r\n\tcloner: <V>(value: V) => V = structuredClone,\r\n): DeepWritable<T> {\r\n\t// `readonly` is fake at runtime\r\n\treturn cloner(obj) as DeepWritable<T>\r\n}\r\n\r\nexport function consumeEvent(event: Event): void {\r\n\tevent.preventDefault()\r\n\tevent.stopPropagation()\r\n}\r\n\r\nexport function copyOnWrite<T extends object>(\r\n\tobj: DeepReadonly<T>,\r\n\tmutator: (obj: DeepWritable<T>) => void,\r\n): DeepReadonly<T> {\r\n\tconst ret = simplifyType<T>(cloneAsWritable(obj))\r\n\tmutator(ret)\r\n\treturn simplifyType<T>(deepFreeze(ret))\r\n}\r\n\r\nexport async function copyOnWriteAsync<T extends object>(\r\n\tobj: DeepReadonly<T>,\r\n\tmutator: (obj: DeepWritable<T>) => unknown,\r\n): Promise<DeepReadonly<T>> {\r\n\tconst ret = simplifyType<T>(cloneAsWritable(obj))\r\n\tawait mutator(ret)\r\n\treturn simplifyType<T>(deepFreeze(ret))\r\n}\r\n\r\nexport function createChildElement<K extends keyof HTMLElementTagNameMap>(\r\n\telement: ParentNode & { readonly ownerDocument: Document },\r\n\ttype: K,\r\n\tcallback = (_element: HTMLElementTagNameMap[K]): void => { },\r\n\toptions?: ElementCreationOptions,\r\n): HTMLElementTagNameMap[K] {\r\n\tconst ret = element.ownerDocument.createElement(type, options)\r\n\telement.append(ret)\r\n\tcallback(ret)\r\n\treturn ret\r\n}\r\n\r\nexport function createDocumentFragment(\r\n\tself0: Document,\r\n\tcallback: (fragment: DocumentFragment) => void,\r\n): DocumentFragment {\r\n\tconst ret = self0.createDocumentFragment()\r\n\tcallback(ret)\r\n\treturn ret\r\n}\r\n\r\nexport function deepFreeze<const T>(value: T): DeepReadonly<T> {\r\n\treturn deepFreeze0(value, new WeakSet())\r\n}\r\nfunction deepFreeze0<T>(value: T, freezing: WeakSet<object>): DeepReadonly<T> {\r\n\tif (typeof value === \"object\" && value) {\r\n\t\tfreezing.add(value)\r\n\t\tfor (const subkey of typedOwnKeys(value)) {\r\n\t\t\tconst subvalue = value[subkey]\r\n\t\t\tif (isObject(subvalue) && !freezing.has(subvalue)) {\r\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n\t\t\t\tdeepFreeze0(subvalue, freezing)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn Object.freeze(value) as DeepReadonly<T>\r\n}\r\n\r\n// Feature request: https://github.com/sveltejs/svelte/issues/4056\r\nexport function destroyWithOutro(self0: SvelteComponent): void {\r\n\tconst { $$: { fragment } } = self0\r\n\tif (fragment !== false && fragment) {\r\n\t\ttry {\r\n\t\t\t$groupOutros()\r\n\t\t\t$transitionOut(fragment, 0, 0, () => { self0.$destroy() })\r\n\t\t\t$checkOutros()\r\n\t\t} catch (error) {\r\n\t\t\tself.console.error(error)\r\n\t\t\tself0.$destroy()\r\n\t\t}\r\n\t} else {\r\n\t\tself0.$destroy()\r\n\t}\r\n}\r\n\r\nexport function escapeJavaScriptString(value: string): string {\r\n\treturn `\\`${value.replace(/(?<char>`|\\\\|\\$)/ug, \"\\\\$<char>\")}\\``\r\n}\r\n\r\nexport function escapeQuerySelectorAttribute(value: string): string {\r\n\treturn multireplace(value, new Map([\r\n\t\t[\"\\\"\", \"\\\\\\\"\"],\r\n\t\t[\"\\\\\", \"\\\\\\\\\"],\r\n\t]))\r\n}\r\n\r\nexport function extname(path: string): string {\r\n\tconst base = basename(path),\r\n\t\tidx = base.lastIndexOf(\".\")\r\n\treturn idx === -1 ? \"\" : base.slice(idx)\r\n}\r\n\r\nexport function getKeyModifiers(\r\n\tevent: KeyboardEvent,\r\n): readonly KeyModifier[] {\r\n\tconst ret: KeyModifier[] = []\r\n\tif (event.altKey) { ret.push(\"Alt\") }\r\n\tif (event.ctrlKey) { ret.push(\"Ctrl\") }\r\n\tif (event.metaKey) { ret.push(\"Meta\") }\r\n\tif (event.shiftKey) { ret.push(\"Shift\") }\r\n\treturn deepFreeze(ret)\r\n}\r\n\r\nexport function typedIn<T extends object, K extends keyof any>(\r\n\tself0: T,\r\n\tkey: K,\r\n): (() => T[K & keyof T]) | null {\r\n\tif (key in self0) {\r\n\t\treturn () => self0[key as K & keyof T]\r\n\t}\r\n\treturn null\r\n}\r\n\r\nexport function typedOwnKeys<T extends object>(\r\n\tself0: T,\r\n): (keyof T & (string | symbol))[] {\r\n\treturn Reflect.ownKeys(self0) as (keyof T & (string | symbol))[]\r\n}\r\n\r\nexport function typedKeys<T extends readonly (keyof any)[]>() {\r\n\treturn <O extends (keyof O extends T[number] ? {\r\n\t\treadonly [_ in T[number]]: unknown\r\n\t} : never)>(obj: O): Readonly<T> =>\r\n\t\tdeepFreeze(Object.keys(obj)) as T\r\n}\r\n\r\nexport function inSet<const T extends ReadonlyTuple>(\r\n\tset: T,\r\n\tobj: unknown,\r\n): obj is T[number] {\r\n\treturn contravariant(set).includes(obj)\r\n}\r\n\r\nexport function insertAt<T>(\r\n\tself0: T[],\r\n\tindex: number,\r\n\t...items: readonly T[]\r\n): void {\r\n\tself0.splice(index, 0, ...items)\r\n}\r\n\r\nexport function instanceOf<T extends Node | UIEvent>(\r\n\tself0: unknown,\r\n\ttype: Newable<T>,\r\n): self0 is T {\r\n\tif (!isObject(self0)) { return false }\r\n\tif (self0 instanceof type) { return true }\r\n\tconst { name } = type,\r\n\t\ttypeMain: unknown = Reflect.get(self, name)\r\n\tif (typeof typeMain === \"function\" && self0 instanceof typeMain) {\r\n\t\treturn true\r\n\t}\r\n\tconst\r\n\t\twin = \"ownerDocument\" in self0\r\n\t\t\t? launderUnchecked<AnyObject>(self0.ownerDocument)[\"defaultView\"]\r\n\t\t\t: launderUnchecked<AnyObject>(self0)[\"view\"],\r\n\t\ttypeWin: unknown = isObject(win) ? Reflect.get(win, name) : null\r\n\tif (typeof typeWin === \"function\" && self0 instanceof typeWin) {\r\n\t\treturn true\r\n\t}\r\n\treturn false\r\n}\r\n\r\nexport function isHomogenousArray<T extends PrimitiveTypeE>(\r\n\ttypes: readonly T[],\r\n\tvalue: unknown,\r\n): value is TypeofMapE[T][] {\r\n\tif (!Array.isArray(value)) { return false }\r\n\treturn value.every(element => genericTypeofGuardE(types, element))\r\n}\r\n\r\nexport function isNonNil<T>(\r\n\tvalue: (T & (null | undefined)) extends never ? never : T,\r\n): value is (T & (null | undefined)) extends never ? never : NonNullable<T> {\r\n\treturn !isNil(value)\r\n}\r\n\r\nexport function lazyInit<T>(initializer: () => T): () => T {\r\n\tlet cache: {\r\n\t\treadonly init: false\r\n\t\treadonly value: null\r\n\t} | {\r\n\t\treadonly init: true\r\n\t\treadonly value: T\r\n\t} = { init: false, value: null }\r\n\treturn () => {\r\n\t\tconst cache0 = cache.init\r\n\t\t\t? cache\r\n\t\t\t: cache = { init: true, value: initializer() }\r\n\t\treturn cache0.value\r\n\t}\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nexport function lazyProxy<T extends Function | object>(\r\n\tinitializer: () => T,\r\n): T {\r\n\tconst lazy = lazyInit(initializer),\r\n\t\tfunctions = new Map(),\r\n\t\tproxy = new Proxy(lazy, {\r\n\t\t\tapply(target, thisArg, argArray): unknown {\r\n\t\t\t\tconst target0 = target()\r\n\t\t\t\tif (typeof target0 !== \"function\") {\r\n\t\t\t\t\tthrow new TypeError(String(target0))\r\n\t\t\t\t}\r\n\t\t\t\treturn Reflect.apply(\r\n\t\t\t\t\ttarget0,\r\n\t\t\t\t\tthisArg === target ? target() : thisArg,\r\n\t\t\t\t\targArray,\r\n\t\t\t\t)\r\n\t\t\t},\r\n\t\t\tconstruct(target, argArray, newTarget): object {\r\n\t\t\t\tconst target0 = target()\r\n\t\t\t\tif (typeof target0 !== \"function\") {\r\n\t\t\t\t\tthrow new TypeError(String(target0))\r\n\t\t\t\t}\r\n\t\t\t\tconst ret: unknown = Reflect.construct(\r\n\t\t\t\t\ttarget0,\r\n\t\t\t\t\targArray,\r\n\t\t\t\t\tnewTarget === target ? target0 : newTarget,\r\n\t\t\t\t)\r\n\t\t\t\tif (isObject(ret)) { return ret }\r\n\t\t\t\tthrow new TypeError(String(ret))\r\n\t\t\t},\r\n\t\t\tdefineProperty(target, property, attributes): boolean {\r\n\t\t\t\tif (!(attributes.configurable ?? true) &&\r\n\t\t\t\t\t!Reflect.defineProperty(target, property, attributes)) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t\treturn Reflect.defineProperty(target(), property, attributes)\r\n\t\t\t},\r\n\t\t\tdeleteProperty(target, property): boolean {\r\n\t\t\t\tconst own = Reflect.getOwnPropertyDescriptor(target, property)\r\n\t\t\t\tif (!(own?.configurable ?? true) &&\r\n\t\t\t\t\t!Reflect.deleteProperty(target, property)) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t\treturn Reflect.deleteProperty(target(), property)\r\n\t\t\t},\r\n\t\t\tget(target, property, receiver): unknown {\r\n\t\t\t\tconst own = Reflect.getOwnPropertyDescriptor(target, property)\r\n\t\t\t\tif (!(own?.configurable ?? true) &&\r\n\t\t\t\t\t(!(own?.writable ?? true) || (own?.set && !own.get))) {\r\n\t\t\t\t\treturn Reflect.get(target, property, receiver)\r\n\t\t\t\t}\r\n\t\t\t\tconst ret = Reflect.get(\r\n\t\t\t\t\ttarget(),\r\n\t\t\t\t\tproperty,\r\n\t\t\t\t\treceiver === target ? target() : receiver,\r\n\t\t\t\t)\r\n\t\t\t\tif (typeof ret === \"function\") {\r\n\t\t\t\t\tconst ret0 = ret\r\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\n\t\t\t\t\treturn functions.get(ret) ?? (() => {\r\n\t\t\t\t\t\tfunction fn(\r\n\t\t\t\t\t\t\tthis: unknown,\r\n\t\t\t\t\t\t\t...args: readonly unknown[]\r\n\t\t\t\t\t\t): unknown {\r\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions\r\n\t\t\t\t\t\t\tif (new.target) {\r\n\t\t\t\t\t\t\t\treturn Reflect.construct(\r\n\t\t\t\t\t\t\t\t\tret0,\r\n\t\t\t\t\t\t\t\t\targs,\r\n\t\t\t\t\t\t\t\t\tnew.target === fn ? ret0 : new.target,\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn Reflect.apply(\r\n\t\t\t\t\t\t\t\tret0,\r\n\t\t\t\t\t\t\t\tthis === proxy ? target() : this,\r\n\t\t\t\t\t\t\t\targs,\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfunctions.set(ret, fn)\r\n\t\t\t\t\t\treturn fn\r\n\t\t\t\t\t})()\r\n\t\t\t\t}\r\n\t\t\t\treturn ret\r\n\t\t\t},\r\n\t\t\tgetOwnPropertyDescriptor(\r\n\t\t\t\ttarget,\r\n\t\t\t\tproperty,\r\n\t\t\t): PropertyDescriptor | undefined {\r\n\t\t\t\tlet ret = Reflect.getOwnPropertyDescriptor(target(), property)\r\n\t\t\t\tif (ret && !(ret.configurable ?? true) &&\r\n\t\t\t\t\t!Reflect.defineProperty(target, property, ret)) {\r\n\t\t\t\t\tret = void 0\r\n\t\t\t\t}\r\n\t\t\t\treturn ret\r\n\t\t\t},\r\n\t\t\tgetPrototypeOf(target): object | null {\r\n\t\t\t\treturn Reflect.getPrototypeOf(target())\r\n\t\t\t},\r\n\t\t\thas(target, property): boolean {\r\n\t\t\t\treturn Reflect.getOwnPropertyDescriptor(target, property)\r\n\t\t\t\t\t?.configurable ?? true\r\n\t\t\t\t\t? Reflect.has(target(), property)\r\n\t\t\t\t\t: Reflect.has(target, property)\r\n\t\t\t},\r\n\t\t\tisExtensible(target): boolean {\r\n\t\t\t\treturn Reflect.isExtensible(target)\r\n\t\t\t},\r\n\t\t\townKeys(target): ArrayLike<string | symbol> {\r\n\t\t\t\treturn [\r\n\t\t\t\t\t...new Set([\r\n\t\t\t\t\t\tReflect.ownKeys(target()),\r\n\t\t\t\t\t\tReflect.ownKeys(target)\r\n\t\t\t\t\t\t\t.filter(key => !(Reflect.getOwnPropertyDescriptor(target, key)\r\n\t\t\t\t\t\t\t\t?.configurable ?? true)),\r\n\t\t\t\t\t].flat()),\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\tpreventExtensions(target): boolean {\r\n\t\t\t\treturn Reflect.preventExtensions(target)\r\n\t\t\t},\r\n\t\t\tset(target, property, newValue, receiver): boolean {\r\n\t\t\t\tconst own = Reflect.getOwnPropertyDescriptor(target, property)\r\n\t\t\t\tif (!(own?.configurable ?? true) &&\r\n\t\t\t\t\t(!(own?.writable ?? true) || (own?.get && !own.set)) &&\r\n\t\t\t\t\t!Reflect.set(target, property, newValue, receiver)) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t\treturn Reflect.set(\r\n\t\t\t\t\ttarget(),\r\n\t\t\t\t\tproperty,\r\n\t\t\t\t\tnewValue,\r\n\t\t\t\t\treceiver === target ? target() : receiver,\r\n\t\t\t\t)\r\n\t\t\t},\r\n\t\t\tsetPrototypeOf(target, proto): boolean {\r\n\t\t\t\treturn Reflect.setPrototypeOf(target(), proto)\r\n\t\t\t},\r\n\t\t} satisfies Required<ProxyHandler<typeof lazy>>)\r\n\treturn proxy as T\r\n}\r\n\r\nexport function logFormat(\r\n\toptions: Options,\r\n\t...args: readonly unknown[]\r\n): string {\r\n\tif (isEmpty(args)) { return \"\" }\r\n\tconst\r\n\t\tstringify0 = (param: unknown): string => {\r\n\t\t\ttry {\r\n\t\t\t\treturn inspect(param, options)\r\n\t\t\t} catch {\r\n\t\t\t\t// Do not log\r\n\t\t\t\treturn String(param)\r\n\t\t\t}\r\n\t\t},\r\n\t\t[format, ...rest] = args\r\n\tif (typeof format === \"string\") {\r\n\t\treturn [\r\n\t\t\t...(function* fn(): Generator<string, void> {\r\n\t\t\t\tconst params = rest[Symbol.iterator]()\r\n\t\t\t\tlet back = 0\r\n\t\t\t\tfor (let sub = format.indexOf(\"%\");\r\n\t\t\t\t\tsub !== -1;\r\n\t\t\t\t\tsub = format.indexOf(\"%\", back)) {\r\n\t\t\t\t\tyield format.slice(back, sub)\r\n\t\t\t\t\tback = sub + \"%\".length\r\n\t\t\t\t\tconst type = format.codePointAt(back)\r\n\t\t\t\t\tif (type === void 0) {\r\n\t\t\t\t\t\tyield \"%\"\r\n\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst type0 = String.fromCodePoint(type)\r\n\t\t\t\t\tback += type0.length\r\n\t\t\t\t\tlet func: ((param: unknown) => string) | null = null\r\n\t\t\t\t\tswitch (type0) {\r\n\t\t\t\t\t\tcase \"%\":\r\n\t\t\t\t\t\t\tyield \"%%\"\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tcase \"s\":\r\n\t\t\t\t\t\t\tfunc = (param): string => String(param)\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tcase \"o\":\r\n\t\t\t\t\t\tcase \"O\":\r\n\t\t\t\t\t\t\tfunc = stringify0\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tcase \"f\":\r\n\t\t\t\t\t\t\tfunc = (param): string => Number(param).toString()\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tcase \"d\":\r\n\t\t\t\t\t\tcase \"i\":\r\n\t\t\t\t\t\t\tfunc = (param): string => Math.trunc(Number(param)).toString()\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tcase \"c\":\r\n\t\t\t\t\t\t\t// CSS unsupported\r\n\t\t\t\t\t\t\tfunc = (): string => \"\"\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tyield `%${type0}`\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (func) {\r\n\t\t\t\t\t\tconst param = params.next()\r\n\t\t\t\t\t\tif (param.done ?? false) {\r\n\t\t\t\t\t\t\tyield `%${type0}`\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tyield func(param.value)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tyield format.slice(back)\r\n\t\t\t\tfor (const param of params) {\r\n\t\t\t\t\tyield ` ${stringify0(param)}`\r\n\t\t\t\t}\r\n\t\t\t}()),\r\n\t\t].join(\"\")\r\n\t}\r\n\treturn args.map(stringify0).join(\" \")\r\n}\r\n\r\nexport function mapFirstCodePoint(\r\n\tstr: string,\r\n\tmap: (value: string) => string,\r\n\tmapRest: (value: string) => string = identity,\r\n): string {\r\n\tconst cp0 = str.codePointAt(0)\r\n\tif (cp0 === void 0) { return \"\" }\r\n\tconst char0 = String.fromCodePoint(cp0)\r\n\treturn `${map(char0)}${mapRest(str.slice(char0.length))}`\r\n}\r\n\r\nexport function multireplace(\r\n\tself0: string,\r\n\treplacements: Map<string, string>,\r\n): string {\r\n\treturn self0.replace(\r\n\t\talternativeRegExp([...replacements.keys()]),\r\n\t\tmatch => replacements.get(match) ?? match,\r\n\t)\r\n}\r\n\r\nexport function onResize(\r\n\telement: Element,\r\n\tcallback: (entry: ResizeObserverEntry) => void,\r\n): ResizeObserver {\r\n\tconst ret = new (activeSelf(element).ResizeObserver)(ents => {\r\n\t\tconst ent = ents.at(-1)\r\n\t\tif (ent) { callback(ent) }\r\n\t})\r\n\tret.observe(element)\r\n\treturn ret\r\n}\r\n\r\nexport function onVisible(\r\n\telement: Element,\r\n\tcallback: (entry: IntersectionObserverEntry) => void,\r\n\ttransient = false,\r\n): IntersectionObserver {\r\n\tconst ret = new (activeSelf(element).IntersectionObserver)(ents => {\r\n\t\tfor (const ent of transient\r\n\t\t\t? ents.reverse()\r\n\t\t\t: [ents.at(-1) ?? { isIntersecting: false }]) {\r\n\t\t\tif (ent.isIntersecting) {\r\n\t\t\t\tcallback(ent)\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n\tret.observe(element)\r\n\treturn ret\r\n}\r\n\r\nexport function openExternal(self0: Window, url?: URL | string): Window | null {\r\n\treturn self0.open(url, \"_blank\", \"noreferrer\")\r\n}\r\n\r\nexport async function promisePromise<T = void>(): PromisePromise<T> {\r\n\treturn new Promise(resolve0 => {\r\n\t\tconst promise = new Promise<T>((resolve, reject) => {\r\n\t\t\tresolve0(Promise.resolve()\r\n\t\t\t\t.then(() => ({ promise, reject, resolve })))\r\n\t\t})\r\n\t})\r\n}\r\n\r\nexport function randomNotIn(\r\n\tself0: readonly string[],\r\n\tgenerator = (): string => self.crypto.randomUUID(),\r\n): string {\r\n\tlet ret = generator()\r\n\twhile (self0.includes(ret)) { ret = generator() }\r\n\treturn ret\r\n}\r\n\r\nexport function rangeCodePoint(\r\n\tstart: CodePoint,\r\n\tend?: CodePoint,\r\n\tstep?: number,\r\n): readonly string[] {\r\n\treturn deepFreeze(\r\n\t\trange(start.codePointAt(0), end?.codePointAt(0), step)\r\n\t\t\t.map(cp => String.fromCodePoint(cp)),\r\n\t)\r\n}\r\n\r\nexport function remove<T>(self0: T[], item: T): T | undefined {\r\n\treturn removeAt(self0, self0.indexOf(item))\r\n}\r\n\r\nexport function removeAt<T>(self0: T[], index: number): T | undefined {\r\n\treturn self0.splice(index, 1)[0]\r\n}\r\n\r\nexport function replaceAllRegex(string: string): RegExp {\r\n\treturn new RegExp(escapeRegExp(string), \"ug\")\r\n}\r\n\r\nexport function splitLines(\r\n\tstr: string,\r\n\tdelimiter = /\\r\\n|[\\n\\v\\f\\r\\x85\\u2028\\u2029]/u,\r\n): readonly string[] {\r\n\treturn str.split(delimiter)\r\n}\r\n\r\nexport function startCase(str: string, locales?: string[] | string): string {\r\n\treturn str.replace(/\\w\\S*/gu, ss => mapFirstCodePoint(\r\n\t\tss,\r\n\t\tstr0 => str0.toLocaleUpperCase(locales),\r\n\t\tstr0 => str0.toLocaleLowerCase(locales),\r\n\t))\r\n}\r\n\r\nexport function stringToBase64(string: string): Base64String {\r\n\treturn bytesToBase64(new TextEncoder().encode(string))\r\n}\r\n\r\nexport function activeSelf(\r\n\treference?: Element | UIEvent | null,\r\n): Window & typeof globalThis {\r\n\tif (reference) {\r\n\t\tif (\"ownerDocument\" in reference) {\r\n\t\t\tconst { ownerDocument: { defaultView } } = reference\r\n\t\t\tif (defaultView) { return defaultView }\r\n\t\t}\r\n\t\tif (\"view\" in reference) {\r\n\t\t\tconst { view } = reference\r\n\t\t\tif (view) { return correctType(view) }\r\n\t\t}\r\n\t\tcorrectType(self.activeWindow).console.warn(reference)\r\n\t}\r\n\treturn correctType(self.activeWindow)\r\n}\r\n\r\nexport async function sleep2(\r\n\tself0: WindowOrWorkerGlobalScope,\r\n\ttimeInSeconds: number,\r\n): Promise<void> {\r\n\treturn new Promise(resolve => {\r\n\t\tself0.setTimeout(resolve, timeInSeconds * SI_PREFIX_SCALE)\r\n\t})\r\n}\r\n\r\nexport function swap(self0: unknown[], left: number, right: number): void {\r\n\t[self0[left], self0[right]] = [self0[right], self0[left]]\r\n}\r\n\r\nexport function uncapitalize(\r\n\tstr: string,\r\n\tlocales?: string[] | string,\r\n): string {\r\n\treturn mapFirstCodePoint(str, first => first.toLocaleLowerCase(locales))\r\n}\r\n\r\nexport function unexpected(): never {\r\n\tthrow new Error()\r\n}\r\n", "import type { Plugin, TransformOptions } from \"esbuild\"\r\nimport { assignExact, escapeJavaScriptString as escJSStr } from \"../util.js\"\r\nimport { readFile, writeFile } from \"node:fs/promises\"\r\nimport { fileURLToPath } from \"node:url\"\r\nimport { isEmpty } from \"lodash-es\"\r\nimport lzString from \"lz-string\"\r\nimport { resolve } from \"import-meta-resolve\"\r\n\r\nconst { compressToBase64 } = lzString,\r\n\tNAME = \"compress\"\r\n\r\nexport interface Options {\r\n\treadonly enable?: boolean | undefined\r\n\treadonly name?: string | undefined\r\n}\r\n\r\nexport default function esbuildCompress(options?: Options): Plugin {\r\n\treturn {\r\n\t\tname: options?.name ?? NAME,\r\n\t\tsetup(build): void {\r\n\t\t\tif (options?.enable === false) { return }\r\n\t\t\tconst { esbuild, initialOptions } = build,\r\n\t\t\t\twrite = initialOptions.write ?? true\r\n\t\t\t// Await https://github.com/evanw/esbuild/issues/2999\r\n\t\t\tinitialOptions.write = false\r\n\t\t\tbuild.onEnd(async ({ errors, outputFiles }) => {\r\n\t\t\t\tif (!isEmpty(errors) || !outputFiles) { return }\r\n\t\t\t\tconst main = outputFiles.find(({ path }) => path.endsWith(\".js\"))\r\n\t\t\t\tif (main) {\r\n\t\t\t\t\tconst { path, text } = main,\r\n\t\t\t\t\t\ttOpts: TransformOptions = {\r\n\t\t\t\t\t\t\tloader: \"js\",\r\n\t\t\t\t\t\t\tsourcefile: path,\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tfor (const key of [\r\n\t\t\t\t\t\t\"charset\",\r\n\t\t\t\t\t\t\"color\",\r\n\t\t\t\t\t\t\"define\",\r\n\t\t\t\t\t\t\"drop\",\r\n\t\t\t\t\t\t// \"dropLabels\",\r\n\t\t\t\t\t\t\"format\",\r\n\t\t\t\t\t\t\"globalName\",\r\n\t\t\t\t\t\t\"ignoreAnnotations\",\r\n\t\t\t\t\t\t\"jsx\",\r\n\t\t\t\t\t\t\"jsxDev\",\r\n\t\t\t\t\t\t\"jsxFactory\",\r\n\t\t\t\t\t\t\"jsxFragment\",\r\n\t\t\t\t\t\t\"jsxImportSource\",\r\n\t\t\t\t\t\t\"jsxSideEffects\",\r\n\t\t\t\t\t\t\"keepNames\",\r\n\t\t\t\t\t\t\"legalComments\",\r\n\t\t\t\t\t\t// \"lineLimit\",\r\n\t\t\t\t\t\t\"logLevel\",\r\n\t\t\t\t\t\t\"logLimit\",\r\n\t\t\t\t\t\t\"logOverride\",\r\n\t\t\t\t\t\t\"mangleCache\",\r\n\t\t\t\t\t\t\"mangleProps\",\r\n\t\t\t\t\t\t\"mangleQuoted\",\r\n\t\t\t\t\t\t\"minify\",\r\n\t\t\t\t\t\t\"minifyIdentifiers\",\r\n\t\t\t\t\t\t\"minifySyntax\",\r\n\t\t\t\t\t\t\"minifyWhitespace\",\r\n\t\t\t\t\t\t\"platform\",\r\n\t\t\t\t\t\t\"pure\",\r\n\t\t\t\t\t\t\"reserveProps\",\r\n\t\t\t\t\t\t\"sourceRoot\",\r\n\t\t\t\t\t\t\"sourcemap\",\r\n\t\t\t\t\t\t\"sourcesContent\",\r\n\t\t\t\t\t\t\"supported\",\r\n\t\t\t\t\t\t\"target\",\r\n\t\t\t\t\t\t\"treeShaking\",\r\n\t\t\t\t\t\t// \"tsconfigRaw\",\r\n\t\t\t\t\t] as const) {\r\n\t\t\t\t\t\tassignExact(tOpts, key, initialOptions[key])\r\n\t\t\t\t\t}\r\n\t\t\t\t\tassignExact(tOpts, \"banner\", initialOptions.banner?.[\"js\"])\r\n\t\t\t\t\tassignExact(tOpts, \"footer\", initialOptions.footer?.[\"js\"])\r\n\t\t\t\t\tconst { code: lzStringBundle } = await esbuild.transform(\r\n\t\t\t\t\t\tawait readFile(\r\n\t\t\t\t\t\t\tfileURLToPath(resolve(\"lz-string\", import.meta.url)),\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\ttOpts,\r\n\t\t\t\t\t)\r\n\t\t\t\t\tmain.contents = new TextEncoder().encode(\r\n\t\t\t\t\t\t(await esbuild.transform(\r\n\t\t\t\t\t\t\t`var a={};new Function(\"module\",${escJSStr(\r\n\t\t\t\t\t\t\t\tlzStringBundle,\r\n\t\t\t\t\t\t\t\t// eslint-disable-next-line max-len\r\n\t\t\t\t\t\t\t)})(a);new Function(\"require\",\"module\",\"exports\",a.exports.decompressFromBase64(${escJSStr(\r\n\t\t\t\t\t\t\t\tcompressToBase64(text),\r\n\t\t\t\t\t\t\t)}))(require,module,exports)`,\r\n\t\t\t\t\t\t\ttOpts,\r\n\t\t\t\t\t\t)).code,\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\tif (!write) { return }\r\n\t\t\t\tawait Promise.all(outputFiles\r\n\t\t\t\t\t.map(async ({ path, contents }) => writeFile(path, contents)))\r\n\t\t\t})\r\n\t\t},\r\n\t}\r\n}\r\n"],
|
|
5
|
+
"mappings": ";;;AAAA;AAAA,EACC,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,OACZ;AAwBP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,OAAO,aAA+B;AAEtC,OAAO,eAAe;AA2If,SAAS,YAEb,OAAU,KAAkB,OAA4B;AAC1D,MAAI,UAAU,QAAQ;AAErB,WAAO,MAAM,GAAG;AAAA,EACjB,OAAO;AACN,UAAM,GAAG,IAAI;AAAA,EACd;AACA,SAAO;AACR;AAmMO,SAAS,uBAAuB,OAAuB;AAC7D,SAAO,KAAK,MAAM,QAAQ,sBAAsB,WAAW,CAAC;AAC7D;;;AC/XA,SAAS,UAAU,iBAAiB;AACpC,SAAS,qBAAqB;AAC9B,SAAS,WAAAA,gBAAe;AACxB,OAAO,cAAc;AACrB,SAAS,eAAe;AAExB,IAAM,EAAE,iBAAiB,IAAI;AAA7B,IACC,OAAO;AAOO,SAAR,gBAAiC,SAA2B;AAClE,SAAO;AAAA,IACN,MAAM,SAAS,QAAQ;AAAA,IACvB,MAAM,OAAa;AAClB,UAAI,SAAS,WAAW,OAAO;AAAE;AAAA,MAAO;AACxC,YAAM,EAAE,SAAS,eAAe,IAAI,OACnC,QAAQ,eAAe,SAAS;AAEjC,qBAAe,QAAQ;AACvB,YAAM,MAAM,OAAO,EAAE,QAAQ,YAAY,MAAM;AAC9C,YAAI,CAACA,SAAQ,MAAM,KAAK,CAAC,aAAa;AAAE;AAAA,QAAO;AAC/C,cAAM,OAAO,YAAY,KAAK,CAAC,EAAE,KAAK,MAAM,KAAK,SAAS,KAAK,CAAC;AAChE,YAAI,MAAM;AACT,gBAAM,EAAE,MAAM,KAAK,IAAI,MACtB,QAA0B;AAAA,YACzB,QAAQ;AAAA,YACR,YAAY;AAAA,UACb;AACD,qBAAW,OAAO;AAAA,YACjB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,YAEA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,YAEA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,UAED,GAAY;AACX,wBAAY,OAAO,KAAK,eAAe,GAAG,CAAC;AAAA,UAC5C;AACA,sBAAY,OAAO,UAAU,eAAe,SAAS,IAAI,CAAC;AAC1D,sBAAY,OAAO,UAAU,eAAe,SAAS,IAAI,CAAC;AAC1D,gBAAM,EAAE,MAAM,eAAe,IAAI,MAAM,QAAQ;AAAA,YAC9C,MAAM;AAAA,cACL,cAAc,QAAQ,aAAa,YAAY,GAAG,CAAC;AAAA,YACpD;AAAA,YACA;AAAA,UACD;AACA,eAAK,WAAW,IAAI,YAAY,EAAE;AAAA,aAChC,MAAM,QAAQ;AAAA,cACd,kCAAkC;AAAA,gBACjC;AAAA;AAAA,cAED,CAAC,iFAAiF;AAAA,gBACjF,iBAAiB,IAAI;AAAA,cACtB,CAAC;AAAA,cACD;AAAA,YACD,GAAG;AAAA,UACJ;AAAA,QACD;AACA,YAAI,CAAC,OAAO;AAAE;AAAA,QAAO;AACrB,cAAM,QAAQ,IAAI,YAChB,IAAI,OAAO,EAAE,MAAM,SAAS,MAAM,UAAU,MAAM,QAAQ,CAAC,CAAC;AAAA,MAC/D,CAAC;AAAA,IACF;AAAA,EACD;AACD;",
|
|
6
6
|
"names": ["isEmpty"]
|
|
7
7
|
}
|