@fast-china/utils 2.1.5 → 2.1.6
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/CHANGELOG.md +8 -0
- package/README.md +12 -4
- package/README.zh.md +12 -4
- package/dist/index.d.mts +7 -1
- package/dist/index.global.min.js +1 -1
- package/dist/index.global.min.js.map +1 -1
- package/dist/index.mjs +7 -1
- package/dist/internal/runtime.mjs.map +1 -1
- package/dist/vue/breakpoints.d.mts +21 -0
- package/dist/vue/breakpoints.mjs +46 -0
- package/dist/vue/breakpoints.mjs.map +1 -0
- package/dist/vue/element-size.d.mts +25 -0
- package/dist/vue/element-size.mjs +33 -0
- package/dist/vue/element-size.mjs.map +1 -0
- package/dist/vue/event-listener.d.mts +16 -0
- package/dist/vue/event-listener.mjs +30 -0
- package/dist/vue/event-listener.mjs.map +1 -0
- package/dist/vue/index.d.mts +7 -1
- package/dist/vue/now.d.mts +13 -0
- package/dist/vue/now.mjs +29 -0
- package/dist/vue/now.mjs.map +1 -0
- package/dist/vue/resize-observer.d.mts +15 -0
- package/dist/vue/resize-observer.mjs +31 -0
- package/dist/vue/resize-observer.mjs.map +1 -0
- package/dist/vue/window-size.d.mts +16 -0
- package/dist/vue/window-size.mjs +32 -0
- package/dist/vue/window-size.mjs.map +1 -0
- package/docs/API.md +1 -1
- package/docs/API.zh-CN.md +1 -1
- package/docs/RUNTIME_CONTRACT.md +4 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to Fast.Utils are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [2.1.6] - 2026-09-13
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added lightweight Vue 3 composables for native event listeners, window size, ResizeObserver, element size, current time, and minimum-width breakpoints.
|
|
10
|
+
- Added automatic Vue scope cleanup, manual stop handles where applicable, SSR-safe initial state, runtime validation, and public type coverage for the new composables.
|
|
11
|
+
|
|
5
12
|
## [2.1.5] - 2026-09-12
|
|
6
13
|
|
|
7
14
|
### Added
|
|
@@ -113,6 +120,7 @@ All notable changes to Fast.Utils are documented in this file.
|
|
|
113
120
|
|
|
114
121
|
- Added authenticated ciphertext validation, bounded crypto parameters and payloads, unbiased Web Crypto randomness, prototype-safe query/object transforms, and namespace-scoped Storage cleanup.
|
|
115
122
|
|
|
123
|
+
[2.1.6]: https://github.com/China-xiaoFang/Fast.Utils/compare/v2.1.5...v2.1.6
|
|
116
124
|
[2.1.5]: https://github.com/China-xiaoFang/Fast.Utils/compare/v2.1.4...v2.1.5
|
|
117
125
|
[2.1.4]: https://github.com/China-xiaoFang/Fast.Utils/compare/v2.1.3...v2.1.4
|
|
118
126
|
[2.1.3]: https://github.com/China-xiaoFang/Fast.Utils/compare/v2.1.2...v2.1.3
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
Browser-first TypeScript utilities for modern browsers, WebViews, Vue 3, and uni-app.
|
|
12
12
|
|
|
13
|
-
[](https://www.npmjs.com/package/@fast-china/utils) [](https://nodejs.org/) [](https://www.npmjs.com/package/@fast-china/utils) [](https://nodejs.org/) [](https://vuejs.org/) [](./LICENSE)
|
|
14
14
|
|
|
15
15
|
## Highlights
|
|
16
16
|
|
|
@@ -136,10 +136,18 @@ Store passwords with `HashPasswordPBKDF2SHA256` and `VerifyPasswordPBKDF2SHA256`
|
|
|
136
136
|
## Vue 3
|
|
137
137
|
|
|
138
138
|
```ts
|
|
139
|
-
import {
|
|
139
|
+
import { useBreakpoints, useElementSize, useEventListener, useNow, useWindowSize } from "@fast-china/utils";
|
|
140
|
+
import { useTemplateRef } from "vue";
|
|
141
|
+
|
|
142
|
+
const elementRef = useTemplateRef<HTMLElement>("element");
|
|
143
|
+
const { width: windowWidth } = useWindowSize();
|
|
144
|
+
const { width: elementWidth } = useElementSize(elementRef);
|
|
145
|
+
const now = useNow();
|
|
146
|
+
const breakpoints = useBreakpoints({ desktop: 1280, mobile: 0, tablet: 768 });
|
|
147
|
+
useEventListener(document, "visibilitychange", () => console.log(document.visibilityState));
|
|
140
148
|
```
|
|
141
149
|
|
|
142
|
-
The package provides Vue 3 `app.use()` registration,
|
|
150
|
+
The package provides lightweight native-backed browser composables, Vue 3 `app.use()` registration, typed props/emits/slots, and TSX rendering. Browser composables clean up with the current Vue scope; advanced scheduling, controls, SSR configuration, and device APIs remain outside this package. Vue remains external to the build and is required as a peer dependency.
|
|
143
151
|
|
|
144
152
|
## Modules
|
|
145
153
|
|
|
@@ -153,7 +161,7 @@ The `object` module includes dependency-free deep cloning and equality plus pred
|
|
|
153
161
|
|
|
154
162
|
- The package-manager entry is pure ESM; the CDN entry is a separately minified IIFE.
|
|
155
163
|
- ES2022 modern browsers and WebViews.
|
|
156
|
-
- Vue 3.
|
|
164
|
+
- Vue 3.5.11 or newer through a required peer dependency.
|
|
157
165
|
- uni-app through automatic global `uni` detection when Storage is configured.
|
|
158
166
|
- No import-time access to `window`, Storage, or `uni`; unsupported calls fail explicitly.
|
|
159
167
|
- Web Crypto, URL, Intl, TextEncoder, and related platform capabilities are not polyfilled.
|
package/README.zh.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
面向现代浏览器、WebView、Vue 3 与 uni-app 的 TypeScript 前端工具库。
|
|
12
12
|
|
|
13
|
-
[](https://www.npmjs.com/package/@fast-china/utils) [](https://nodejs.org/) [](https://www.npmjs.com/package/@fast-china/utils) [](https://nodejs.org/) [](https://vuejs.org/) [](./LICENSE)
|
|
14
14
|
|
|
15
15
|
## 特性
|
|
16
16
|
|
|
@@ -136,10 +136,18 @@ Base64 与 Crypto 的文本解码/解密入口返回原始字符串类型 `Decod
|
|
|
136
136
|
## Vue 3
|
|
137
137
|
|
|
138
138
|
```ts
|
|
139
|
-
import {
|
|
139
|
+
import { useBreakpoints, useElementSize, useEventListener, useNow, useWindowSize } from "@fast-china/utils";
|
|
140
|
+
import { useTemplateRef } from "vue";
|
|
141
|
+
|
|
142
|
+
const elementRef = useTemplateRef<HTMLElement>("element");
|
|
143
|
+
const { width: windowWidth } = useWindowSize();
|
|
144
|
+
const { width: elementWidth } = useElementSize(elementRef);
|
|
145
|
+
const now = useNow();
|
|
146
|
+
const breakpoints = useBreakpoints({ desktop: 1280, mobile: 0, tablet: 768 });
|
|
147
|
+
useEventListener(document, "visibilitychange", () => console.log(document.visibilityState));
|
|
140
148
|
```
|
|
141
149
|
|
|
142
|
-
|
|
150
|
+
包内提供基于原生浏览器 API 的轻量 Composable、Vue 3 `app.use()` 注册、Props/Emits/Slots 类型和 TSX 渲染。浏览器 Composable 随当前 Vue 作用域自动清理;高级调度、控制、SSR 配置和设备 API 不在本包范围内。Vue 不会打进构建产物,并作为必须安装的 Peer Dependency。
|
|
143
151
|
|
|
144
152
|
## 模块
|
|
145
153
|
|
|
@@ -153,7 +161,7 @@ import { useEmits, useProps, withInstall } from "@fast-china/utils";
|
|
|
153
161
|
|
|
154
162
|
- 包管理器入口为纯 ESM;CDN 入口为单独压缩的 IIFE。
|
|
155
163
|
- 面向 ES2022 现代浏览器与 WebView。
|
|
156
|
-
- Vue 3.
|
|
164
|
+
- Vue 3.5.11 及以上版本通过必须安装的 Peer Dependency 接入。
|
|
157
165
|
- 配置 Storage 时自动检测全局 `uni` 并接入 uni-app。
|
|
158
166
|
- 导入阶段不访问 `window`、Storage 或 `uni`;不支持的调用明确失败。
|
|
159
167
|
- 不注入 Web Crypto、URL、Intl、TextEncoder 等 Polyfill。
|
package/dist/index.d.mts
CHANGED
|
@@ -14,13 +14,19 @@ import { FormatBytesOptions, average, clamp, formatBytes, inRange, lerp, randomI
|
|
|
14
14
|
import { QueryPrimitive, QueryStringOptions, QueryValue, cloneDeep, hasOwn, isEqual, isPlainObject, mapValues, omit, omitBy, pick, pickBy, shallowEqual, toQueryString } from "./object/index.mjs";
|
|
15
15
|
import { Local, Session, StorageArea, StorageCodec, StorageConfiguration, StorageReadOptions, StorageWriteOptions, base64StorageCodec, configureStorage, isStorageConfigured } from "./storage/index.mjs";
|
|
16
16
|
import { ParsedQueryParameters, StringLocale, camelCase, copy, decodeURIComponentRepeatedly, escapeHtml, generateUuidV4, isUuidV4, isValidJson, kebabCase, lowerFirst, normalizeWhitespace, parseQueryString, pascalCase, randomString, splitWords, truncateGraphemes, upperFirst } from "./string/index.mjs";
|
|
17
|
+
import { Breakpoints, UseBreakpointsReturn, useBreakpoints } from "./vue/breakpoints.mjs";
|
|
18
|
+
import { ResizeObserverTarget, useResizeObserver } from "./vue/resize-observer.mjs";
|
|
19
|
+
import { ElementSize, UseElementSizeReturn, useElementSize } from "./vue/element-size.mjs";
|
|
17
20
|
import { EmitHandlers, useEmits } from "./vue/emits.mjs";
|
|
21
|
+
import { EventTargetSource, useEventListener } from "./vue/event-listener.mjs";
|
|
18
22
|
import { useExpose } from "./vue/expose.mjs";
|
|
19
23
|
import { AwaitableFunction, callOptionalFunction } from "./vue/func.mjs";
|
|
20
24
|
import { Installable, TSXWithInstall, VueInstallValue, withInstall, withInstallDirective, withNoopInstall } from "./vue/install.mjs";
|
|
25
|
+
import { useNow } from "./vue/now.mjs";
|
|
21
26
|
import { definePropType, useProps } from "./vue/props.mjs";
|
|
22
27
|
import { useRender } from "./vue/render.mjs";
|
|
23
28
|
import { TypedSlots, TypedSlotsDeclaration, makeSlots } from "./vue/slots.mjs";
|
|
29
|
+
import { UseWindowSizeReturn, useWindowSize } from "./vue/window-size.mjs";
|
|
24
30
|
import { withDefineType } from "./vue/with.mjs";
|
|
25
31
|
import "./vue/index.mjs";
|
|
26
|
-
export { AESDecrypt, AESDecryptAuthenticated, AESDecryptWithPassword, AESEncrypt, AESEncryptAuthenticated, AESEncryptWithPassword, AbortOptions, AesCipherMode, AesPaddingMode, AwaitableFunction, ConcurrentMapOptions, DateInput, DateRangeShortcut, DateShortcut, DebouncedFunction, type DecodedText, DeriveECDHKeySHA256, DeriveECDHSecret, ECDSASign, ECDSAVerify, EcNamedCurve, EmitHandlers, FixedTimeEquals, FormatBytesOptions, GenerateECDHKeyPair, GenerateECDSAKeyPair, GenerateRSAKeyPair, GenerateRandomBytes, HKDFSHA256, HMACSHA256Encrypt, HMACSHA384Encrypt, HMACSHA512Encrypt, HashPasswordPBKDF2SHA256, Installable, InstallationIdentity, InstallationIdentityConfiguration, KeySelector, Local, LogLevel, Logger, LoggerOptions, LoggerSink, MD5Encrypt, PBKDF2SHA256, ParsedQueryParameters, PemKeyPair, QueryPrimitive, QueryStringOptions, QueryValue, RSADecryptOAEP, RSAEncryptOAEP, RSASignPSS, RSAVerifyPSS, RelativeTimeOptions, RetryContext, RetryOptions, RgbColor, RgbaColor, RuntimeKind, SHA1Encrypt, SHA256Bytes, SHA256Encrypt, SHA384Bytes, SHA384Encrypt, SHA512Bytes, SHA512Encrypt, Session, StorageArea, StorageCodec, StorageConfiguration, StorageReadOptions, StorageWriteOptions, StringLocale, StyleInput, StyleObject, StyleValue, TSXWithInstall, ThrottledFunction, TimeoutOptions, TypedSlots, TypedSlotsDeclaration, VerifyPasswordPBKDF2SHA256, VueInstallValue, addCssUnit, addDays, addMonths, addYears, allEqualBy, average, base64StorageCodec, callOptionalFunction, camelCase, chunk, clamp, cloneDeep, configureInstallationIdentity, configureLogger, configureStorage, contrastRatio, copy, createDateRangeShortcuts, createDateShortcuts, createLogger, createOneMonthRangeFromToday, debounce, decodeBase64, decodeBase64Bytes, decodeBase64Url, decodeBase64UrlBytes, decodeLatin1Base64, decodeSecureBase64, decodeURIComponentRepeatedly, definePropType, detectRuntime, difference, encodeBase64, encodeBase64Bytes, encodeBase64Url, encodeBase64UrlBytes, encodeLatin1Base64, encodeSecureBase64, endOfDay, escapeHtml, formatBytes, formatChineseRelativeTime, formatHexColor, formatRelativeTime, generateUuidV4, getLocalDayBounds, getLocalTimeGreeting, getOrCreateInstallationId, getStartOfToday, groupBy, hasDuplicatesBy, hasOwn, hasWebCrypto, inRange, installationIdentity, intersection, isBrowser, isDateAfterNow, isEqual, isFuture, isMobileUserAgent, isNode, isPlainObject, isSameDay, isStorageConfigured, isTabletUserAgent, isUniApp, isUuidV4, isValidDate, isValidJson, isWebWorker, isWithinInterval, kebabCase, lerp, logger, lowerFirst, makeSlots, mapConcurrent, mapValues, mixHexColorWithBlack, mixHexColorWithWhite, mixHexColors, normalizeWhitespace, omit, omitBy, once, parseHexColor, parseQueryString, partition, pascalCase, pick, pickBy, pickHigherContrastColor, randomInt, randomString, relativeLuminance, removeNullishValues, retry, roundTo, serializeStyle, shallowEqual, sleep, splitWords, startOfDay, sum, symmetricDifference, throttle, toDate, toQueryString, truncateGraphemes, unique, uniqueBy, upperFirst, useEmits, useExpose, useProps, useRender, withDefineType, withInstall, withInstallDirective, withNoopInstall, withTimeout };
|
|
32
|
+
export { AESDecrypt, AESDecryptAuthenticated, AESDecryptWithPassword, AESEncrypt, AESEncryptAuthenticated, AESEncryptWithPassword, AbortOptions, AesCipherMode, AesPaddingMode, AwaitableFunction, Breakpoints, ConcurrentMapOptions, DateInput, DateRangeShortcut, DateShortcut, DebouncedFunction, type DecodedText, DeriveECDHKeySHA256, DeriveECDHSecret, ECDSASign, ECDSAVerify, EcNamedCurve, ElementSize, EmitHandlers, EventTargetSource, FixedTimeEquals, FormatBytesOptions, GenerateECDHKeyPair, GenerateECDSAKeyPair, GenerateRSAKeyPair, GenerateRandomBytes, HKDFSHA256, HMACSHA256Encrypt, HMACSHA384Encrypt, HMACSHA512Encrypt, HashPasswordPBKDF2SHA256, Installable, InstallationIdentity, InstallationIdentityConfiguration, KeySelector, Local, LogLevel, Logger, LoggerOptions, LoggerSink, MD5Encrypt, PBKDF2SHA256, ParsedQueryParameters, PemKeyPair, QueryPrimitive, QueryStringOptions, QueryValue, RSADecryptOAEP, RSAEncryptOAEP, RSASignPSS, RSAVerifyPSS, RelativeTimeOptions, ResizeObserverTarget, RetryContext, RetryOptions, RgbColor, RgbaColor, RuntimeKind, SHA1Encrypt, SHA256Bytes, SHA256Encrypt, SHA384Bytes, SHA384Encrypt, SHA512Bytes, SHA512Encrypt, Session, StorageArea, StorageCodec, StorageConfiguration, StorageReadOptions, StorageWriteOptions, StringLocale, StyleInput, StyleObject, StyleValue, TSXWithInstall, ThrottledFunction, TimeoutOptions, TypedSlots, TypedSlotsDeclaration, UseBreakpointsReturn, UseElementSizeReturn, UseWindowSizeReturn, VerifyPasswordPBKDF2SHA256, VueInstallValue, addCssUnit, addDays, addMonths, addYears, allEqualBy, average, base64StorageCodec, callOptionalFunction, camelCase, chunk, clamp, cloneDeep, configureInstallationIdentity, configureLogger, configureStorage, contrastRatio, copy, createDateRangeShortcuts, createDateShortcuts, createLogger, createOneMonthRangeFromToday, debounce, decodeBase64, decodeBase64Bytes, decodeBase64Url, decodeBase64UrlBytes, decodeLatin1Base64, decodeSecureBase64, decodeURIComponentRepeatedly, definePropType, detectRuntime, difference, encodeBase64, encodeBase64Bytes, encodeBase64Url, encodeBase64UrlBytes, encodeLatin1Base64, encodeSecureBase64, endOfDay, escapeHtml, formatBytes, formatChineseRelativeTime, formatHexColor, formatRelativeTime, generateUuidV4, getLocalDayBounds, getLocalTimeGreeting, getOrCreateInstallationId, getStartOfToday, groupBy, hasDuplicatesBy, hasOwn, hasWebCrypto, inRange, installationIdentity, intersection, isBrowser, isDateAfterNow, isEqual, isFuture, isMobileUserAgent, isNode, isPlainObject, isSameDay, isStorageConfigured, isTabletUserAgent, isUniApp, isUuidV4, isValidDate, isValidJson, isWebWorker, isWithinInterval, kebabCase, lerp, logger, lowerFirst, makeSlots, mapConcurrent, mapValues, mixHexColorWithBlack, mixHexColorWithWhite, mixHexColors, normalizeWhitespace, omit, omitBy, once, parseHexColor, parseQueryString, partition, pascalCase, pick, pickBy, pickHigherContrastColor, randomInt, randomString, relativeLuminance, removeNullishValues, retry, roundTo, serializeStyle, shallowEqual, sleep, splitWords, startOfDay, sum, symmetricDifference, throttle, toDate, toQueryString, truncateGraphemes, unique, uniqueBy, upperFirst, useBreakpoints, useElementSize, useEmits, useEventListener, useExpose, useNow, useProps, useRender, useResizeObserver, useWindowSize, withDefineType, withInstall, withInstallDirective, withNoopInstall, withTimeout };
|
package/dist/index.global.min.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
var FastUtils=(function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),l=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e},u=(e,t,i)=>(i=e==null?{}:n(o(e)),l(t||!e||!e.__esModule||!s.call(e,`default`)?r(i,`default`,{value:e,enumerable:!0}):i,e));function d(e,t){if(!Number.isSafeInteger(t)||t<=0)throw RangeError("`size` 必须是正安全整数。");let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}function f(e){return e.filter(e=>e!=null)}function p(e){let t=[],n=new Set;for(let r=0;r<e.length;r+=1){if(!(r in e))continue;let i=e[r];n.has(i)||(n.add(i),t.push(i))}return t}function m(e,t){let n=new Set,r=[];for(let i=0;i<e.length;i+=1){let a=e[i];if(a===void 0&&!(i in e))continue;let o=t(a,i);n.has(o)||(n.add(o),r.push(a))}return r}function h(e,t){let n=new Map;return e.forEach((e,r)=>{let i=t(e,r),a=n.get(i);a===void 0?n.set(i,[e]):a.push(e)}),n}function g(e,t){let n=[],r=[];return e.forEach((e,i)=>(t(e,i)?n:r).push(e)),[n,r]}function _(e,t){let n=new Set(p(t));return p(e).filter(e=>!n.has(e))}function v(e,t){let n=new Set(p(t));return p(e).filter(e=>n.has(e))}function y(e,t){let n=p(e),r=p(t),i=new Set(n),a=new Set(r);return[...n.filter(e=>!a.has(e)),...r.filter(e=>!i.has(e))]}function b(e,t){let n=new Set;for(let r=0;r<e.length;r+=1){let i=e[r];if(i===void 0&&!(r in e))continue;let a=t(i,r);if(n.has(a))return!0;n.add(a)}return!1}function x(e,t){let n,r=!1;for(let i=0;i<e.length;i+=1){let a=e[i];if(a===void 0&&!(i in e))continue;let o=t(a,i);if(!r){n=o,r=!0;continue}if(!(n===o||Number.isNaN(n)&&Number.isNaN(o)))return!1}return!0}let S=2147483647,C=e=>{let t=Error(`操作已取消。`,{cause:e.reason});return t.name=`AbortError`,t},w=e=>{if(e?.aborted)throw C(e)},T=(e,t=`milliseconds`)=>{if(!Number.isFinite(e)||e<0||e>S)throw RangeError(`\`${t}\` 必须是 0 到 ${S} 之间的有限数。`);return e};function E(e,t={}){let n=T(e),r=t.signal;return w(r),new Promise((e,t)=>{let i;function a(){r!==void 0&&(clearTimeout(i),t(C(r)))}i=setTimeout(()=>{r?.removeEventListener(`abort`,a),e()},n),r?.addEventListener(`abort`,a,{once:!0})})}function D(e,t,n={}){let r=T(t,`timeoutMs`),i=n.signal;return w(i),new Promise((t,a)=>{let o=!1,s;function c(){clearTimeout(s),i?.removeEventListener(`abort`,u)}function l(e){o||(o=!0,c(),e())}function u(){i!==void 0&&l(()=>{a(C(i))})}s=setTimeout(()=>{l(()=>{a(Error(n.message??`操作超过 ${r} 毫秒仍未完成。`))})},r),i?.addEventListener(`abort`,u,{once:!0}),Promise.resolve(e).then(e=>{l(()=>{t(e)})},e=>{l(()=>{a(e)})})})}async function O(e,t={}){let n=t.attempts??3,r=T(t.delayMs??200,`delayMs`),i=T(t.maxDelayMs??3e4,`maxDelayMs`),a=t.factor??2;if(!Number.isSafeInteger(n)||n<=0)throw RangeError("`attempts` 必须是正安全整数。");if(!Number.isFinite(a)||a<1)throw RangeError("`factor` 必须是大于或等于 1 的有限数。");for(let o=1;o<=n;o+=1){w(t.signal);let s=t.signal===void 0?{attempt:o}:{attempt:o,signal:t.signal};try{return await e(s)}catch(e){if(o===n||t.shouldRetry!==void 0&&!await t.shouldRetry(e,s))throw e;await E(r===0?0:Math.min(r*a**(o-1),i),t.signal===void 0?{}:{signal:t.signal})}}throw Error(`重试结束但未获得结果。`)}async function k(e,t,n,r={}){if(!Number.isSafeInteger(t)||t<=0)throw RangeError("`concurrency` 必须是正安全整数。");w(r.signal);let i=Array(e.length),a=0,o=!1,s=async()=>{for(;!o;){w(r.signal);let t=a;if(t>=e.length)return;if(a+=1,t in e)try{i[t]=await n(e[t],t,r.signal)}catch(e){throw o=!0,e}}},c=Math.min(t,e.length);return await Promise.all(Array.from({length:c},s)),i}function A(e,t=300){let n=T(t,`delayMs`),r,i,a=[],o=async()=>{let t=i;if(t===void 0)throw Error(`当前没有待处理的防抖调用。`);i=void 0,r=void 0;let n=a;a=[];try{let r=await e(...t);return n.forEach(e=>{e.resolve(r)}),r}catch(e){throw n.forEach(t=>{t.reject(e)}),e}},s=(...e)=>(i=e,r!==void 0&&clearTimeout(r),r=setTimeout(()=>{o().catch(()=>void 0)},n),new Promise((e,t)=>{a.push({reject:t,resolve:e})}));return s.cancel=e=>{r!==void 0&&clearTimeout(r),r=void 0,i=void 0;let t=e??Error(`防抖调用已取消。`);a.forEach(e=>{e.reject(t)}),a=[]},s.flush=()=>{if(r!==void 0)return clearTimeout(r),o()},s.pending=()=>r!==void 0,s}function ee(e,t=300){let n=T(t,`delayMs`),r,i,a=!1,o=!1,s=()=>{!a&&o&&(i=void 0)},c=(...t)=>{if(i!==void 0)return i;a=!0,o=!1;let c;try{c=Promise.resolve(e(...t))}catch(e){c=Promise.reject(e)}return i=c,c.then(()=>{o=!0,s()},()=>{o=!0,s()}),r=setTimeout(()=>{r=void 0,a=!1,s()},n),c};return c.cancel=()=>{r!==void 0&&clearTimeout(r),r=void 0,a=!1,s()},c.pending=()=>i!==void 0,c}let te=()=>{let e=globalThis.TextDecoder;if(typeof e!=`function`)throw Error(`当前运行环境不支持 TextDecoder。`);return new e(`utf-8`,{fatal:!0})},ne=()=>{let e=globalThis.TextEncoder;if(typeof e!=`function`)throw Error(`当前运行环境不支持 TextEncoder。`);return new e},j=e=>ne().encode(e),re=Symbol.for(`@fast-china/utils/parse-json`),ie=function(){let e=this.valueOf();try{return JSON.parse(e)}catch{return e}};Object.defineProperty(ie,re,{value:!0});let ae=()=>{let e=Object.getOwnPropertyDescriptor(String.prototype,`parseJson`);if(e!==void 0){if(typeof e.value==`function`&&Reflect.get(e.value,re)===!0)return;throw TypeError(`String.prototype.parseJson 已被其他实现占用。`)}try{Object.defineProperty(String.prototype,"parseJson",{configurable:!0,enumerable:!1,value:ie,writable:!0})}catch(e){throw TypeError(`当前运行环境不允许安装 String.prototype.parseJson。`,{cause:e})}},M=e=>(ae(),e),N=globalThis,oe=[`B`,`kB`,`MB`,`GB`,`TB`,`PB`,`EB`,`ZB`,`YB`],se=[`B`,`KiB`,`MiB`,`GiB`,`TiB`,`PiB`,`EiB`,`ZiB`,`YiB`],P=(e,t)=>{if(Number.isNaN(e))throw RangeError(`\`${t}\` 不能是 NaN。`)},F=(e,t)=>{if(!Number.isFinite(e))throw RangeError(`\`${t}\` 必须是有限数。`)},ce=(e,t)=>{if(Object.is(e,-0))return-0;let[n=`0`,r=`0`]=e.toString().split(`e`);return Number(`${n}e${Number(r)+t}`)};function le(e,t,n){if(P(e,`value`),P(t,`minimum`),P(n,`maximum`),t>n)throw RangeError("`minimum` 不能大于 `maximum`。");return Math.min(Math.max(e,t),n)}function ue(e,t,n,r=!1){if(P(e,`value`),P(t,`minimum`),P(n,`maximum`),t>n)throw RangeError("`minimum` 不能大于 `maximum`。");return e>=t&&(r?e<=n:e<n)}function de(e,t=0){if(F(e,`value`),!Number.isSafeInteger(t)||t<-15||t>15)throw RangeError("`digits` 必须是 -15 到 15 之间的安全整数。");let n=ce(e,t);return Number.isFinite(n)?ce(Math.round(n),-t):e}function fe(e){let t=0,n=0;return e.forEach(e=>{F(e,`value`);let r=e-n,i=t+r;if(!Number.isFinite(i))throw RangeError(`总和超出有限数范围。`);n=i-t-r,t=i}),t}function pe(e){let t=0,n=0;return e.forEach(e=>{F(e,`value`),t+=1,n=n*((t-1)/t)+e/t}),t===0?void 0:n}function me(e,t,n){F(e,`start`),F(t,`end`),F(n,`amount`);let r=e*(1-n)+t*n;if(!Number.isFinite(r))throw RangeError(`插值结果超出有限数范围。`);return r}function he(e,t={}){if(F(e,`bytes`),e<0)throw RangeError("`bytes` 不能为负数。");let n=t.base??1024;if(n!==1e3&&n!==1024)throw RangeError("`base` 必须是 1000 或 1024。");let r=n,i=t.decimals??2;if(!Number.isSafeInteger(i)||i<0||i>20)throw RangeError("`decimals` 必须是 0 到 20 之间的安全整数。");if(e===0)return`0 B`;let a=r===1024?se:oe,o=Math.min(Math.floor(Math.log(e)/Math.log(r)),a.length-1),s=e/r**o;return`${new Intl.NumberFormat(t.locale??`en-US`,{maximumFractionDigits:i,minimumFractionDigits:0,useGrouping:!1}).format(s)} ${a[o]??a.at(-1)}`}function ge(e,t){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t))throw RangeError("`minimum` 和 `maximumExclusive` 必须是安全整数。");let n=t-e,r=4294967296;if(n<=0||n>r)throw RangeError(`区间不能为空且宽度不能超过 2^32。`);let i=N.crypto,a=i?.getRandomValues?.bind(i),o=Math.floor(r/n)*n,s=new Uint32Array(1),c;do a===void 0?s[0]=Math.floor(Math.random()*r):a(s),c=s[0]??r;while(c>=o);return e+c%n}let I=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,_e=e=>TypeError(`该值不是有效的 ${e===`url`?`Base64URL`:`Base64`}。`),ve=(e,t)=>{let n=t===`standard`?e.replace(/[\t\n\f\r ]+/gu,``):e;if(!(t===`url`?/^[\w-]*={0,2}$/u:/^[A-Za-z\d+/]*={0,2}$/u).test(n)||n.length%4==1||n.includes(`=`)&&n.length%4!=0)throw _e(t);let r=(t===`url`?n.replace(/-/gu,`+`).replace(/_/gu,`/`):n).replace(/=+$/u,``);return r.padEnd(Math.ceil(r.length/4)*4,`=`)},ye=e=>{let t=``;for(let n=0;n<e.length;n+=3){let r=e[n]??0,i=e[n+1],a=e[n+2],o=r<<16|(i??0)<<8|(a??0);t+=I[o>>18&63]??``,t+=I[o>>12&63]??``,t+=i===void 0?`=`:I[o>>6&63]??``,t+=a===void 0?`=`:I[o&63]??``}return t},be=(e,t)=>{let n=ve(e,t);if(n.length===0)return new Uint8Array;let r=n.endsWith(`==`)?2:+!!n.endsWith(`=`),i=new Uint8Array(n.length/4*3-r),a=0;for(let e=0;e<n.length;e+=4){let o=I.indexOf(n[e]??``),s=I.indexOf(n[e+1]??``),c=n[e+2]??`=`,l=n[e+3]??`=`,u=c===`=`?0:I.indexOf(c),d=l===`=`?0:I.indexOf(l);if(o<0||s<0||u<0||d<0||e+4===n.length&&(r===2&&s&15||r===1&&u&3))throw _e(t);let f=o<<18|s<<12|u<<6|d;a<i.length&&(i[a++]=f>>16&255),a<i.length&&(i[a++]=f>>8&255),a<i.length&&(i[a++]=f&255)}return i},xe=e=>{let t=te();try{return t.decode(e)}catch(e){throw TypeError(`解码后的字节不是有效的 UTF-8。`,{cause:e})}};function L(e){return ye(e)}function R(e){return be(e,`standard`)}function Se(e){return ye(j(e))}function Ce(e){return M(xe(R(e)))}function z(e){return ye(e).replace(/\+/gu,`-`).replace(/\//gu,`_`).replace(/=+$/u,``)}function B(e){return be(e,`url`)}function we(e){return z(j(e))}function Te(e){return M(xe(B(e)))}function Ee(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n+=1){let r=e.charCodeAt(n);if(r>255)throw TypeError(`待编码字符串包含超出 Latin-1 范围的字符。`);t[n]=r}return L(t)}function De(e){let t=R(e),n=``;for(let e of t)n+=String.fromCharCode(e);return M(n)}let Oe=Object.freeze([{index:977,randomIndex:188},{index:926,randomIndex:201},{index:851,randomIndex:225},{index:700,randomIndex:255},{index:600,randomIndex:268},{index:500,randomIndex:277},{index:400,randomIndex:288},{index:330,randomIndex:327},{index:300,randomIndex:180},{index:200,randomIndex:178},{index:100,randomIndex:124},{index:98,randomIndex:95},{index:92,randomIndex:90},{index:91,randomIndex:87},{index:88,randomIndex:84},{index:82,randomIndex:79},{index:78,randomIndex:71},{index:72,randomIndex:69},{index:68,randomIndex:66},{index:59,randomIndex:55},{index:48,randomIndex:43},{index:42,randomIndex:37},{index:36,randomIndex:30},{index:33,randomIndex:27},{index:24,randomIndex:20},{index:23,randomIndex:18},{index:21,randomIndex:16},{index:17,randomIndex:14},{index:13,randomIndex:9},{index:7,randomIndex:4},{index:5,randomIndex:3},{index:2,randomIndex:1}]),ke=e=>{if(!Number.isSafeInteger(e)||e<0)throw RangeError("`prefixStrLength` 必须是非负安全整数。")},Ae=e=>{let t=``;for(let n=0;n<e;n+=1)t+=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`[ge(0,52)]??``;return t},je=e=>{let t=e;for(let n of Oe){if(n.index>=e.length)continue;let r=e[n.randomIndex]??e.at(-1)??``;t=t.slice(0,n.index)+r+t.slice(n.index)}return t},Me=e=>{let t=e;for(let n=Oe.length-1;n>=0;--n){let r=Oe[n];r!==void 0&&r.index<e.length&&(t=t.slice(0,r.index)+t.slice(r.index+1))}return t};function Ne(e,t=6){if(e.length===0)return``;ke(t);let n=Ae(t),r=Ee(encodeURIComponent(e));return t!==0&&(r=je(r)),n+r}function Pe(e,t=6){if(e.length===0)return M(``);if(ke(t),t>e.length)throw TypeError(`Base64 值的长度小于配置的前缀长度。`);let n=e.slice(t);return t!==0&&(n=Me(n)),M(decodeURIComponent(De(n)))}let Fe=(e,t)=>{if(!Number.isFinite(e)||e<0||e>255)throw RangeError(`\`${t}\` 必须是 0 到 255 之间的有限数。`)},Ie=e=>{if(!Number.isFinite(e)||e<0||e>1)throw RangeError("`alpha` 必须是 0 到 1 之间的有限数。")},Le=e=>{let t=e.startsWith(`#`)?e.slice(1):e;if(![3,4,6,8].includes(t.length)||!/^[\dA-F]+$/iu.test(t))throw TypeError(`十六进制颜色必须包含 3、4、6 或 8 个十六进制字符。`);return t.length<=4?Array.from(t,e=>`${e}${e}`).join(``):t},Re=e=>Math.round(e).toString(16).padStart(2,`0`);function ze(e){let t=Le(e);return{red:Number.parseInt(t.slice(0,2),16),green:Number.parseInt(t.slice(2,4),16),blue:Number.parseInt(t.slice(4,6),16),alpha:t.length===8?Number.parseInt(t.slice(6,8),16)/255:1}}function Be(e,t=`alpha`in e&&e.alpha<1){Fe(e.red,`red`),Fe(e.green,`green`),Fe(e.blue,`blue`);let n=`alpha`in e?e.alpha:1;return Ie(n),`#${`${Re(e.red)}${Re(e.green)}${Re(e.blue)}`}${t?Re(n*255):``}`}function Ve(e,t,n){if(!Number.isFinite(n)||n<0||n>1)throw RangeError("`amount` 必须是 0 到 1 之间的有限数。");let r=ze(e),i=ze(t),a=(e,t)=>e+(t-e)*n;return Be({red:a(r.red,i.red),green:a(r.green,i.green),blue:a(r.blue,i.blue),alpha:a(r.alpha,i.alpha)},r.alpha<1||i.alpha<1)}function He(e,t){return Ve(e,`#000000`,t)}function Ue(e,t){return Ve(e,`#ffffff`,t)}let We=e=>{let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4};function Ge(e){let{red:t,green:n,blue:r}=ze(e);return .2126*We(t)+.7152*We(n)+.0722*We(r)}function Ke(e,t){let n=Ge(e),r=Ge(t),i=Math.max(n,r),a=Math.min(n,r);return(i+.05)/(a+.05)}function qe(e,t=`#000000`,n=`#ffffff`){return Ke(e,t)>=Ke(e,n)?t:n}var Je=c((()=>{})),V=c(((e,t)=>{(function(n,r){typeof e==`object`?t.exports=e=r():typeof define==`function`&&define.amd?define([],r):n.CryptoJS=r()})(e,function(){var e=e||function(e,t){var n;if(typeof window<`u`&&window.crypto&&(n=window.crypto),typeof self<`u`&&self.crypto&&(n=self.crypto),typeof globalThis<`u`&&globalThis.crypto&&(n=globalThis.crypto),!n&&typeof window<`u`&&window.msCrypto&&(n=window.msCrypto),!n&&typeof global<`u`&&global.crypto&&(n=global.crypto),!n&&typeof require==`function`)try{n=Je()}catch{}var r=function(){if(n){if(typeof n.getRandomValues==`function`)try{return n.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof n.randomBytes==`function`)try{return n.randomBytes(4).readInt32LE()}catch{}}throw Error(`Native crypto module could not be used to get secure random number.`)},i=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),a={},o=a.lib={},s=o.Base=function(){return{extend:function(e){var t=i(this);return e&&t.mixIn(e),(!t.hasOwnProperty(`init`)||this.init===t.init)&&(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty(`toString`)&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),c=o.WordArray=s.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n==t?e.length*4:n},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var a=0;a<i;a++){var o=n[a>>>2]>>>24-a%4*8&255;t[r+a>>>2]|=o<<24-(r+a)%4*8}else for(var s=0;s<i;s+=4)t[r+s>>>2]=n[s>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=s.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(r());return new c.init(t,e)}}),l=a.enc={},u=l.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var a=t[i>>>2]>>>24-i%4*8&255;r.push((a>>>4).toString(16)),r.push((a&15).toString(16))}return r.join(``)},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},d=l.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var a=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(a))}return r.join(``)},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(e.charCodeAt(r)&255)<<24-r%4*8;return new c.init(n,t)}},f=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(d.stringify(e)))}catch{throw Error(`Malformed UTF-8 data`)}},parse:function(e){return d.parse(unescape(encodeURIComponent(e)))}},p=o.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){typeof e==`string`&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,r=this._data,i=r.words,a=r.sigBytes,o=this.blockSize,s=a/(o*4);s=t?e.ceil(s):e.max((s|0)-this._minBufferSize,0);var l=s*o,u=e.min(l*4,a);if(l){for(var d=0;d<l;d+=o)this._doProcessBlock(i,d);n=i.splice(0,l),r.sigBytes-=u}return new c.init(n,u)},clone:function(){var e=s.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});o.Hasher=p.extend({cfg:s.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new m.HMAC.init(e,n).finalize(t)}}});var m=a.algo={};return a}(Math);return e})})),Ye=c(((e,t)=>{(function(n,r){typeof e==`object`?t.exports=e=r(V()):typeof define==`function`&&define.amd?define([`./core`],r):r(n.CryptoJS)})(e,function(e){return(function(){var t=e,n=t.lib.WordArray,r=t.enc;r.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],a=0;a<n;a+=3)for(var o=t[a>>>2]>>>24-a%4*8&255,s=t[a+1>>>2]>>>24-(a+1)%4*8&255,c=t[a+2>>>2]>>>24-(a+2)%4*8&255,l=o<<16|s<<8|c,u=0;u<4&&a+u*.75<n;u++)i.push(r.charAt(l>>>6*(3-u)&63));var d=r.charAt(64);if(d)for(;i.length%4;)i.push(d);return i.join(``)},parse:function(e){var t=e.length,n=this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var a=0;a<n.length;a++)r[n.charCodeAt(a)]=a}var o=n.charAt(64);if(o){var s=e.indexOf(o);s!==-1&&(t=s)}return i(e,t,r)},_map:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`};function i(e,t,r){for(var i=[],a=0,o=0;o<t;o++)if(o%4){var s=r[e.charCodeAt(o-1)]<<o%4*2|r[e.charCodeAt(o)]>>>6-o%4*2;i[a>>>2]|=s<<24-a%4*8,a++}return n.create(i,a)}})(),e.enc.Base64})})),Xe=c(((e,t)=>{(function(n,r){typeof e==`object`?t.exports=e=r(V()):typeof define==`function`&&define.amd?define([`./core`],r):r(n.CryptoJS)})(e,function(e){return(function(t){var n=e,r=n.lib,i=r.WordArray,a=r.Hasher,o=n.algo,s=[];(function(){for(var e=0;e<64;e++)s[e]=t.abs(t.sin(e+1))*4294967296|0})();var c=o.MD5=a.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=t+n,i=e[r];e[r]=(i<<8|i>>>24)&16711935|(i<<24|i>>>8)&4278255360}var a=this._hash.words,o=e[t+0],c=e[t+1],p=e[t+2],m=e[t+3],h=e[t+4],g=e[t+5],_=e[t+6],v=e[t+7],y=e[t+8],b=e[t+9],x=e[t+10],S=e[t+11],C=e[t+12],w=e[t+13],T=e[t+14],E=e[t+15],D=a[0],O=a[1],k=a[2],A=a[3];D=l(D,O,k,A,o,7,s[0]),A=l(A,D,O,k,c,12,s[1]),k=l(k,A,D,O,p,17,s[2]),O=l(O,k,A,D,m,22,s[3]),D=l(D,O,k,A,h,7,s[4]),A=l(A,D,O,k,g,12,s[5]),k=l(k,A,D,O,_,17,s[6]),O=l(O,k,A,D,v,22,s[7]),D=l(D,O,k,A,y,7,s[8]),A=l(A,D,O,k,b,12,s[9]),k=l(k,A,D,O,x,17,s[10]),O=l(O,k,A,D,S,22,s[11]),D=l(D,O,k,A,C,7,s[12]),A=l(A,D,O,k,w,12,s[13]),k=l(k,A,D,O,T,17,s[14]),O=l(O,k,A,D,E,22,s[15]),D=u(D,O,k,A,c,5,s[16]),A=u(A,D,O,k,_,9,s[17]),k=u(k,A,D,O,S,14,s[18]),O=u(O,k,A,D,o,20,s[19]),D=u(D,O,k,A,g,5,s[20]),A=u(A,D,O,k,x,9,s[21]),k=u(k,A,D,O,E,14,s[22]),O=u(O,k,A,D,h,20,s[23]),D=u(D,O,k,A,b,5,s[24]),A=u(A,D,O,k,T,9,s[25]),k=u(k,A,D,O,m,14,s[26]),O=u(O,k,A,D,y,20,s[27]),D=u(D,O,k,A,w,5,s[28]),A=u(A,D,O,k,p,9,s[29]),k=u(k,A,D,O,v,14,s[30]),O=u(O,k,A,D,C,20,s[31]),D=d(D,O,k,A,g,4,s[32]),A=d(A,D,O,k,y,11,s[33]),k=d(k,A,D,O,S,16,s[34]),O=d(O,k,A,D,T,23,s[35]),D=d(D,O,k,A,c,4,s[36]),A=d(A,D,O,k,h,11,s[37]),k=d(k,A,D,O,v,16,s[38]),O=d(O,k,A,D,x,23,s[39]),D=d(D,O,k,A,w,4,s[40]),A=d(A,D,O,k,o,11,s[41]),k=d(k,A,D,O,m,16,s[42]),O=d(O,k,A,D,_,23,s[43]),D=d(D,O,k,A,b,4,s[44]),A=d(A,D,O,k,C,11,s[45]),k=d(k,A,D,O,E,16,s[46]),O=d(O,k,A,D,p,23,s[47]),D=f(D,O,k,A,o,6,s[48]),A=f(A,D,O,k,v,10,s[49]),k=f(k,A,D,O,T,15,s[50]),O=f(O,k,A,D,g,21,s[51]),D=f(D,O,k,A,C,6,s[52]),A=f(A,D,O,k,m,10,s[53]),k=f(k,A,D,O,x,15,s[54]),O=f(O,k,A,D,c,21,s[55]),D=f(D,O,k,A,y,6,s[56]),A=f(A,D,O,k,E,10,s[57]),k=f(k,A,D,O,_,15,s[58]),O=f(O,k,A,D,w,21,s[59]),D=f(D,O,k,A,h,6,s[60]),A=f(A,D,O,k,S,10,s[61]),k=f(k,A,D,O,p,15,s[62]),O=f(O,k,A,D,b,21,s[63]),a[0]=a[0]+D|0,a[1]=a[1]+O|0,a[2]=a[2]+k|0,a[3]=a[3]+A|0},_doFinalize:function(){var e=this._data,n=e.words,r=this._nDataBytes*8,i=e.sigBytes*8;n[i>>>5]|=128<<24-i%32;var a=t.floor(r/4294967296),o=r;n[(i+64>>>9<<4)+15]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360,n[(i+64>>>9<<4)+14]=(o<<8|o>>>24)&16711935|(o<<24|o>>>8)&4278255360,e.sigBytes=(n.length+1)*4,this._process();for(var s=this._hash,c=s.words,l=0;l<4;l++){var u=c[l];c[l]=(u<<8|u>>>24)&16711935|(u<<24|u>>>8)&4278255360}return s},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});function l(e,t,n,r,i,a,o){var s=e+(t&n|~t&r)+i+o;return(s<<a|s>>>32-a)+t}function u(e,t,n,r,i,a,o){var s=e+(t&r|n&~r)+i+o;return(s<<a|s>>>32-a)+t}function d(e,t,n,r,i,a,o){var s=e+(t^n^r)+i+o;return(s<<a|s>>>32-a)+t}function f(e,t,n,r,i,a,o){var s=e+(n^(t|~r))+i+o;return(s<<a|s>>>32-a)+t}n.MD5=a._createHelper(c),n.HmacMD5=a._createHmacHelper(c)})(Math),e.MD5})})),Ze=c(((e,t)=>{(function(n,r){typeof e==`object`?t.exports=e=r(V()):typeof define==`function`&&define.amd?define([`./core`],r):r(n.CryptoJS)})(e,function(e){return(function(){var t=e,n=t.lib,r=n.WordArray,i=n.Hasher,a=t.algo,o=[],s=a.SHA1=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],s=n[3],c=n[4],l=0;l<80;l++){if(l<16)o[l]=e[t+l]|0;else{var u=o[l-3]^o[l-8]^o[l-14]^o[l-16];o[l]=u<<1|u>>>31}var d=(r<<5|r>>>27)+c+o[l];d+=l<20?(i&a|~i&s)+1518500249:l<40?(i^a^s)+1859775393:l<60?(i&a|i&s|a&s)-1894007588:(i^a^s)-899497514,c=s,s=a,a=i<<30|i>>>2,i=r,r=d}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+s|0,n[4]=n[4]+c|0},_doFinalize:function(){var e=this._data,t=e.words,n=this._nDataBytes*8,r=e.sigBytes*8;return t[r>>>5]|=128<<24-r%32,t[(r+64>>>9<<4)+14]=Math.floor(n/4294967296),t[(r+64>>>9<<4)+15]=n,e.sigBytes=t.length*4,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA1=i._createHelper(s),t.HmacSHA1=i._createHmacHelper(s)})(),e.SHA1})})),Qe=c(((e,t)=>{(function(n,r){typeof e==`object`?t.exports=e=r(V()):typeof define==`function`&&define.amd?define([`./core`],r):r(n.CryptoJS)})(e,function(e){(function(){var t=e,n=t.lib.Base,r=t.enc.Utf8,i=t.algo;i.HMAC=n.extend({init:function(e,t){e=this._hasher=new e.init,typeof t==`string`&&(t=r.parse(t));var n=e.blockSize,i=n*4;t.sigBytes>i&&(t=e.finalize(t)),t.clamp();for(var a=this._oKey=t.clone(),o=this._iKey=t.clone(),s=a.words,c=o.words,l=0;l<n;l++)s[l]^=1549556828,c[l]^=909522486;a.sigBytes=o.sigBytes=i,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}})})()})})),$e=c(((e,t)=>{(function(n,r,i){typeof e==`object`?t.exports=e=r(V(),Ze(),Qe()):typeof define==`function`&&define.amd?define([`./core`,`./sha1`,`./hmac`],r):r(n.CryptoJS)})(e,function(e){return(function(){var t=e,n=t.lib,r=n.Base,i=n.WordArray,a=t.algo,o=a.MD5,s=a.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:o,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n,r=this.cfg,a=r.hasher.create(),o=i.create(),s=o.words,c=r.keySize,l=r.iterations;s.length<c;){n&&a.update(n),n=a.update(e).finalize(t),a.reset();for(var u=1;u<l;u++)n=a.finalize(n),a.reset();o.concat(n)}return o.sigBytes=c*4,o}});t.EvpKDF=function(e,t,n){return s.create(n).compute(e,t)}})(),e.EvpKDF})})),H=c(((e,t)=>{(function(n,r,i){typeof e==`object`?t.exports=e=r(V(),$e()):typeof define==`function`&&define.amd?define([`./core`,`./evpkdf`],r):r(n.CryptoJS)})(e,function(e){e.lib.Cipher||function(t){var n=e,r=n.lib,i=r.Base,a=r.WordArray,o=r.BufferedBlockAlgorithm,s=n.enc;s.Utf8;var c=s.Base64,l=n.algo.EvpKDF,u=r.Cipher=o.extend({cfg:i.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return typeof e==`string`?S:y}return function(t){return{encrypt:function(n,r,i){return e(r).encrypt(t,n,r,i)},decrypt:function(n,r,i){return e(r).decrypt(t,n,r,i)}}}}()});r.StreamCipher=u.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var d=n.mode={},f=r.BlockCipherMode=i.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),p=d.CBC=function(){var e=f.extend();e.Encryptor=e.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;n.call(this,e,t,i),r.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),e.Decryptor=e.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,a=e.slice(t,t+i);r.decryptBlock(e,t),n.call(this,e,t,i),this._prevBlock=a}});function n(e,n,r){var i,a=this._iv;a?(i=a,this._iv=t):i=this._prevBlock;for(var o=0;o<r;o++)e[n+o]^=i[o]}return e}(),m=n.pad={},h=m.Pkcs7={pad:function(e,t){for(var n=t*4,r=n-e.sigBytes%n,i=r<<24|r<<16|r<<8|r,o=[],s=0;s<r;s+=4)o.push(i);var c=a.create(o,r);e.concat(c)},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}};r.BlockCipher=u.extend({cfg:u.cfg.extend({mode:p,padding:h}),reset:function(){var e;u.reset.call(this);var t=this.cfg,n=t.iv,r=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=r.createEncryptor:(e=r.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,n&&n.words):(this._mode=e.call(r,this,n&&n.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4});var g=r.CipherParams=i.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),_=n.format={},v=_.OpenSSL={stringify:function(e){var t,n=e.ciphertext,r=e.salt;return t=r?a.create([1398893684,1701076831]).concat(r).concat(n):n,t.toString(c)},parse:function(e){var t,n=c.parse(e),r=n.words;return r[0]==1398893684&&r[1]==1701076831&&(t=a.create(r.slice(2,4)),r.splice(0,4),n.sigBytes-=16),g.create({ciphertext:n,salt:t})}},y=r.SerializableCipher=i.extend({cfg:i.extend({format:v}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r),a=i.finalize(t),o=i.cfg;return g.create({ciphertext:a,key:n,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return typeof e==`string`?t.parse(e,this):e}}),b=n.kdf={},x=b.OpenSSL={execute:function(e,t,n,r,i){if(r||=a.random(8),i)var o=l.create({keySize:t+n,hasher:i}).compute(e,r);else var o=l.create({keySize:t+n}).compute(e,r);var s=a.create(o.words.slice(t),n*4);return o.sigBytes=t*4,g.create({key:o,iv:s,salt:r})}},S=r.PasswordBasedCipher=y.extend({cfg:y.cfg.extend({kdf:x}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=r.kdf.execute(n,e.keySize,e.ivSize,r.salt,r.hasher);r.iv=i.iv;var a=y.encrypt.call(this,e,t,i.key,r);return a.mixIn(i),a},decrypt:function(e,t,n,r){r=this.cfg.extend(r),t=this._parse(t,r.format);var i=r.kdf.execute(n,e.keySize,e.ivSize,t.salt,r.hasher);return r.iv=i.iv,y.decrypt.call(this,e,t,i.key,r)}})}()})})),et=c(((e,t)=>{(function(n,r,i){typeof e==`object`?t.exports=e=r(V(),Ye(),Xe(),$e(),H()):typeof define==`function`&&define.amd?define([`./core`,`./enc-base64`,`./md5`,`./evpkdf`,`./cipher-core`],r):r(n.CryptoJS)})(e,function(e){return(function(){var t=e,n=t.lib.BlockCipher,r=t.algo,i=[],a=[],o=[],s=[],c=[],l=[],u=[],d=[],f=[],p=[];(function(){for(var e=[],t=0;t<256;t++)t<128?e[t]=t<<1:e[t]=t<<1^283;for(var n=0,r=0,t=0;t<256;t++){var m=r^r<<1^r<<2^r<<3^r<<4;m=m>>>8^m&255^99,i[n]=m,a[m]=n;var h=e[n],g=e[h],_=e[g],v=e[m]*257^m*16843008;o[n]=v<<24|v>>>8,s[n]=v<<16|v>>>16,c[n]=v<<8|v>>>24,l[n]=v;var v=_*16843009^g*65537^h*257^n*16843008;u[m]=v<<24|v>>>8,d[m]=v<<16|v>>>16,f[m]=v<<8|v>>>24,p[m]=v,n?(n=h^e[e[e[_^h]]],r^=e[e[r]]):n=r=1}})();var m=[0,1,2,4,8,16,32,64,128,27,54],h=r.AES=n.extend({_doReset:function(){var e;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var t=this._keyPriorReset=this._key,n=t.words,r=t.sigBytes/4,a=((this._nRounds=r+6)+1)*4,o=this._keySchedule=[],s=0;s<a;s++)s<r?o[s]=n[s]:(e=o[s-1],s%r?r>6&&s%r==4&&(e=i[e>>>24]<<24|i[e>>>16&255]<<16|i[e>>>8&255]<<8|i[e&255]):(e=e<<8|e>>>24,e=i[e>>>24]<<24|i[e>>>16&255]<<16|i[e>>>8&255]<<8|i[e&255],e^=m[s/r|0]<<24),o[s]=o[s-r]^e);for(var c=this._invKeySchedule=[],l=0;l<a;l++){var s=a-l;if(l%4)var e=o[s];else var e=o[s-4];l<4||s<=4?c[l]=e:c[l]=u[i[e>>>24]]^d[i[e>>>16&255]]^f[i[e>>>8&255]]^p[i[e&255]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,s,c,l,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,u,d,f,p,a);var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,a,o,s){for(var c=this._nRounds,l=e[t]^n[0],u=e[t+1]^n[1],d=e[t+2]^n[2],f=e[t+3]^n[3],p=4,m=1;m<c;m++){var h=r[l>>>24]^i[u>>>16&255]^a[d>>>8&255]^o[f&255]^n[p++],g=r[u>>>24]^i[d>>>16&255]^a[f>>>8&255]^o[l&255]^n[p++],_=r[d>>>24]^i[f>>>16&255]^a[l>>>8&255]^o[u&255]^n[p++],v=r[f>>>24]^i[l>>>16&255]^a[u>>>8&255]^o[d&255]^n[p++];l=h,u=g,d=_,f=v}var h=(s[l>>>24]<<24|s[u>>>16&255]<<16|s[d>>>8&255]<<8|s[f&255])^n[p++],g=(s[u>>>24]<<24|s[d>>>16&255]<<16|s[f>>>8&255]<<8|s[l&255])^n[p++],_=(s[d>>>24]<<24|s[f>>>16&255]<<16|s[l>>>8&255]<<8|s[u&255])^n[p++],v=(s[f>>>24]<<24|s[l>>>16&255]<<16|s[u>>>8&255]<<8|s[d&255])^n[p++];e[t]=h,e[t+1]=g,e[t+2]=_,e[t+3]=v},keySize:8});t.AES=n._createHelper(h)})(),e.AES})})),tt=c(((e,t)=>{(function(n,r){typeof e==`object`?t.exports=e=r(V()):typeof define==`function`&&define.amd?define([`./core`],r):r(n.CryptoJS)})(e,function(e){return e.enc.Hex})})),nt=c(((e,t)=>{(function(n,r){typeof e==`object`?t.exports=e=r(V()):typeof define==`function`&&define.amd?define([`./core`],r):r(n.CryptoJS)})(e,function(e){return e.enc.Utf8})})),rt=c(((e,t)=>{(function(n,r,i){typeof e==`object`?t.exports=e=r(V(),H()):typeof define==`function`&&define.amd?define([`./core`,`./cipher-core`],r):r(n.CryptoJS)})(e,function(e){return e.mode.ECB=function(){var t=e.lib.BlockCipherMode.extend();return t.Encryptor=t.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),t.Decryptor=t.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),t}(),e.mode.ECB})})),it=c(((e,t)=>{(function(n,r,i){typeof e==`object`?t.exports=e=r(V(),H()):typeof define==`function`&&define.amd?define([`./core`,`./cipher-core`],r):r(n.CryptoJS)})(e,function(e){return e.pad.AnsiX923={pad:function(e,t){var n=e.sigBytes,r=t*4,i=r-n%r,a=n+i-1;e.clamp(),e.words[a>>>2]|=i<<24-a%4*8,e.sigBytes+=i},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},e.pad.Ansix923})})),at=c(((e,t)=>{(function(n,r,i){typeof e==`object`?t.exports=e=r(V(),H()):typeof define==`function`&&define.amd?define([`./core`,`./cipher-core`],r):r(n.CryptoJS)})(e,function(e){return e.pad.Iso10126={pad:function(t,n){var r=n*4,i=r-t.sigBytes%r;t.concat(e.lib.WordArray.random(i-1)).concat(e.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},e.pad.Iso10126})})),ot=c(((e,t)=>{(function(n,r,i){typeof e==`object`?t.exports=e=r(V(),H()):typeof define==`function`&&define.amd?define([`./core`,`./cipher-core`],r):r(n.CryptoJS)})(e,function(e){return e.pad.NoPadding={pad:function(){},unpad:function(){}},e.pad.NoPadding})})),st=c(((e,t)=>{(function(n,r,i){typeof e==`object`?t.exports=e=r(V(),H()):typeof define==`function`&&define.amd?define([`./core`,`./cipher-core`],r):r(n.CryptoJS)})(e,function(e){return e.pad.Pkcs7})})),ct=c(((e,t)=>{(function(n,r,i){typeof e==`object`?t.exports=e=r(V(),H()):typeof define==`function`&&define.amd?define([`./core`,`./cipher-core`],r):r(n.CryptoJS)})(e,function(e){return e.pad.ZeroPadding={pad:function(e,t){var n=t*4;e.clamp(),e.sigBytes+=n-(e.sigBytes%n||n)},unpad:function(e){for(var t=e.words,n=e.sigBytes-1,n=e.sigBytes-1;n>=0;n--)if(t[n>>>2]>>>24-n%4*8&255){e.sigBytes=n+1;break}}},e.pad.ZeroPadding})})),lt=u(et(),1),ut=u(V(),1),dt=u(tt(),1),ft=u(nt(),1),pt=u(Xe(),1),mt=u(rt(),1);it();var ht=u(at(),1),gt=u(ot(),1),_t=u(st(),1),vt=u(ct(),1),yt=u(Ze(),1);let bt=6e5,xt=1e5,St=5e6,Ct=1024,wt=8388608,Tt=`FAST-AES-256-GCM-V1`,Et=`FAST-PBKDF2-SHA256-V1`,Dt=e=>{if(e!==`CBC`&&e!==`ECB`)throw RangeError("`cipherMode` 必须是 `CBC` 或 `ECB`。")},U=()=>{let e=N.crypto,t=e?.subtle;if(typeof t?.decrypt!=`function`||typeof t.deriveBits!=`function`||typeof t.deriveKey!=`function`||typeof t.digest!=`function`||typeof t.encrypt!=`function`||typeof t.exportKey!=`function`||typeof t.generateKey!=`function`||typeof t.importKey!=`function`||typeof t.sign!=`function`||typeof t.verify!=`function`)throw Error(`当前运行环境不支持 Web Crypto SubtleCrypto。`);return e},W=e=>{let t=new Uint8Array(e.byteLength);return t.set(e),t.buffer},G={private:`PRIVATE KEY`,public:`PUBLIC KEY`},Ot=(e,t)=>`-----BEGIN ${e}-----\n${L(new Uint8Array(t)).match(/.{1,64}/gu)?.join(`
|
|
2
|
-
`)??``}\n-----END ${e}-----`,K=(e,t)=>{let n=`-----BEGIN ${t}-----`,r=`-----END ${t}-----`,i=e.trim();if(!i.startsWith(n)||!i.endsWith(r))throw TypeError(`应提供 ${t} 格式的 PEM 值。`);let a=i.slice(n.length,-r.length).replace(/\s+/gu,``);return W(R(a))},kt=async e=>{let t=U(),[n,r]=await Promise.all([t.subtle.exportKey(`pkcs8`,e.privateKey),t.subtle.exportKey(`spki`,e.publicKey)]);return{privateKey:Ot(G.private,n),publicKey:Ot(G.public,r)}},At=e=>{if(`privateKey`in e&&`publicKey`in e)return e;throw Error(`当前运行环境未生成密钥对。`)},jt=e=>{let t=j(e);if(t.length===0)throw TypeError(`加密密码不能为空。`);if(t.length>Ct)throw RangeError(`UTF-8 密码不能超过 ${Ct} 字节。`);return t},Mt=e=>{if(!Number.isSafeInteger(e)||e<xt||e>St)throw RangeError(`\`iterations\` 必须是 ${xt} 到 ${St} 之间的安全整数。`);return e},Nt=e=>Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``),Pt=e=>Nt(e).toUpperCase(),Ft=async(e,t,n)=>{let r=j(t);if(r.length===0)throw TypeError(`HMAC 密钥不能为空。`);let i=U(),a=await i.subtle.importKey(`raw`,W(r),{hash:n,name:`HMAC`},!1,[`sign`]),o=await i.subtle.sign(`HMAC`,a,W(j(e)));return new Uint8Array(o)};function It(e){if(!Number.isSafeInteger(e)||e<0||e>65536)throw RangeError("`length` 必须是 0 到 65,536 之间的安全整数。");let t=new Uint8Array(e),n=N.crypto;if(typeof n?.getRandomValues==`function`)return n.getRandomValues(t);for(let e=0;e<t.length;e+=1)t[e]=Math.floor(Math.random()*256);return t}function Lt(e,t){let n=Math.max(e.length,t.length),r=e.length===t.length?0:1;for(let i=0;i<n;i+=1)r|=(e[i]??0)^(t[i]??0);return r===0}function Rt(e){return(0,pt.default)(e).toString(dt.default)}function zt(e){return(0,yt.default)(e).toString(dt.default).toUpperCase()}async function Bt(e){let t=await U().subtle.digest(`SHA-256`,W(j(e)));return new Uint8Array(t)}async function Vt(e){return Pt(await Bt(e))}async function Ht(e){let t=await U().subtle.digest(`SHA-384`,W(j(e)));return new Uint8Array(t)}async function Ut(e){return Pt(await Ht(e))}async function Wt(e){let t=await U().subtle.digest(`SHA-512`,W(j(e)));return new Uint8Array(t)}async function Gt(e){return Pt(await Wt(e))}async function Kt(e,t){return Nt(await Ft(e,t,`SHA-256`))}async function qt(e,t){return Nt(await Ft(e,t,`SHA-384`))}async function Jt(e,t){return Nt(await Ft(e,t,`SHA-512`))}async function Yt(e,t,n=bt,r=32){let i=jt(e);if(t.length<8)throw RangeError(`PBKDF2 盐值必须至少包含 8 字节,建议不少于 16 字节。`);if(!Number.isSafeInteger(r)||r<1||r>1024)throw RangeError("`outputLength` 必须是 1 到 1,024 之间的安全整数。");let a=U(),o=await a.subtle.importKey(`raw`,W(i),`PBKDF2`,!1,[`deriveBits`]),s=await a.subtle.deriveBits({hash:`SHA-256`,iterations:Mt(n),name:`PBKDF2`,salt:W(t)},o,r*8);return new Uint8Array(s)}async function Xt(e,t=bt){let n=It(16),r=await Yt(e,n,t);return[Et,String(t),z(n),z(r)].join(`:`)}async function Zt(e,t){try{let n=t.split(`:`);if(n.length!==4||n[0]!==Et)return!1;let r=Mt(Number(n[1])),i=B(n[2]??``),a=B(n[3]??``);return i.length!==16||a.length!==32?!1:Lt(await Yt(e,i,r,a.length),a)}catch{return!1}}async function Qt(e,t=new Uint8Array,n=new Uint8Array,r=32){if(!Number.isSafeInteger(r)||r<1||r>8160)throw RangeError("`outputLength` 必须是 1 到 8,160 之间的安全整数。");let i=U(),a=await i.subtle.importKey(`raw`,W(e),`HKDF`,!1,[`deriveBits`]),o=await i.subtle.deriveBits({hash:`SHA-256`,info:W(n),name:`HKDF`,salt:W(t)},a,r*8);return new Uint8Array(o)}function $t(e,t,n,r=`CBC`,i=`PKCS7`){if(e.trim().length===0||t.trim().length===0||n.trim().length===0)return null;Dt(r);let a=_t.default;switch(i){case`None`:a=gt.default;break;case`PKCS7`:break;case`Zeros`:a=vt.default;break;case`ANSIX923`:a=ut.default.pad.AnsiX923;break;case`ISO10126`:a=ht.default;break;default:throw RangeError("不支持当前 `paddingMode`。")}if(i===`None`&&j(e).length%16!=0)throw RangeError("当 `paddingMode` 为 `None` 时,AES 明文长度必须是 16 字节的整数倍。");let o=ft.default.parse(t.padEnd(32,`f`).slice(0,32)),s=ft.default.parse(n.padEnd(16,`f`).slice(0,16));return lt.default.encrypt(e,o,r===`CBC`?{iv:s,padding:a}:{iv:s,mode:mt.default,padding:a}).toString()}function en(e,t,n,r=`CBC`,i=`PKCS7`){if(e.trim().length===0||t.trim().length===0||n.trim().length===0)return null;Dt(r);let a=_t.default;switch(i){case`None`:a=gt.default;break;case`PKCS7`:break;case`Zeros`:a=gt.default;break;case`ANSIX923`:a=ut.default.pad.AnsiX923;break;case`ISO10126`:a=ht.default;break;default:throw RangeError("不支持当前 `paddingMode`。")}let o=R(e);if(o.length===0||o.length%16!=0)throw RangeError(`AES 密文必须至少包含一个完整的 16 字节块。`);let s=ft.default.parse(t.padEnd(32,`f`).slice(0,32)),c=ft.default.parse(n.padEnd(16,`f`).slice(0,16));return M(lt.default.decrypt(e,s,r===`CBC`?{iv:c,padding:a}:{iv:c,mode:mt.default,padding:a}).toString(ft.default))}async function tn(e,t){if(t.trim().length===0)throw TypeError(`加密密钥不能为空。`);let n=U(),r=await Bt(t),i=await n.subtle.importKey(`raw`,W(r),{name:`AES-GCM`},!1,[`encrypt`]),a=It(12),o=new Uint8Array(await n.subtle.encrypt({iv:W(a),name:`AES-GCM`,tagLength:128},i,W(j(e)))),s=o.length-16,c=new Uint8Array(1+a.length+16+s);return c[0]=1,c.set(a,1),c.set(o.subarray(s),1+a.length),c.set(o.subarray(0,s),1+a.length+16),L(c)}async function nn(e,t){if(t.trim().length===0)throw TypeError(`加密密钥不能为空。`);let n=R(e);if(n.length<29||n[0]!==1)throw TypeError(`不支持该 AES-GCM 载荷格式或版本。`);let r=n.subarray(1,13),i=n.subarray(13,29),a=n.subarray(29),o=new Uint8Array(a.length+i.length);o.set(a),o.set(i,a.length);let s=U(),c=await Bt(t),l=await s.subtle.importKey(`raw`,W(c),{name:`AES-GCM`},!1,[`decrypt`]),u=await s.subtle.decrypt({iv:W(r),name:`AES-GCM`,tagLength:128},l,W(o));return M(te().decode(u))}async function rn(e,t,n=bt){let r=jt(t),i=j(e);if(i.length>wt)throw RangeError(`UTF-8 明文不能超过 ${wt} 字节。`);let a=Mt(n),o=U(),s=It(16),c=It(12),l=await o.subtle.importKey(`raw`,W(r),`PBKDF2`,!1,[`deriveKey`]),u=await o.subtle.deriveKey({hash:`SHA-256`,iterations:a,name:`PBKDF2`,salt:W(s)},l,{length:256,name:`AES-GCM`},!1,[`encrypt`]),d=await o.subtle.encrypt({additionalData:W(j(Tt)),iv:W(c),name:`AES-GCM`,tagLength:128},u,i);return[Tt,String(a),z(s),z(c),z(new Uint8Array(d))].join(`:`)}async function an(e,t){let n=jt(t);if(e.length>16777216)throw RangeError(`加密载荷超出支持的大小。`);let r=e.split(`:`);if(r.length!==5||r[0]!==Tt)throw TypeError(`不支持该加密载荷格式。`);let i,a,o,s;try{if(i=Mt(Number(r[1])),a=B(r[2]??``),o=B(r[3]??``),s=B(r[4]??``),a.length!==16||o.length!==12||s.length<16)throw TypeError(`加密载荷的字段长度无效。`)}catch(e){throw TypeError(`加密载荷包含无效字段。`,{cause:e})}let c=U(),l=te();try{let e=await c.subtle.importKey(`raw`,W(n),`PBKDF2`,!1,[`deriveKey`]),t=await c.subtle.deriveKey({hash:`SHA-256`,iterations:i,name:`PBKDF2`,salt:W(a)},e,{length:256,name:`AES-GCM`},!1,[`decrypt`]),r=await c.subtle.decrypt({additionalData:W(j(Tt)),iv:W(o),name:`AES-GCM`,tagLength:128},t,W(s));return M(l.decode(r))}catch(e){throw Error(`无法认证或解密载荷。`,{cause:e})}}async function on(e=2048){if(!Number.isSafeInteger(e)||e<2048||e%256!=0)throw RangeError("`modulusLength` 必须是大于或等于 2048 且能被 256 整除的安全整数。");let t=U(),n=At(await t.subtle.generateKey({hash:`SHA-256`,modulusLength:e,name:`RSA-OAEP`,publicExponent:Uint8Array.of(1,0,1)},!0,[`decrypt`,`encrypt`]));return kt(n)}async function sn(e,t){let n=U(),r=await n.subtle.importKey(`spki`,K(t,G.public),{hash:`SHA-256`,name:`RSA-OAEP`},!1,[`encrypt`]),i=await n.subtle.encrypt({name:`RSA-OAEP`},r,W(j(e)));return L(new Uint8Array(i))}async function cn(e,t){let n=U(),r=await n.subtle.importKey(`pkcs8`,K(t,G.private),{hash:`SHA-256`,name:`RSA-OAEP`},!1,[`decrypt`]),i=await n.subtle.decrypt({name:`RSA-OAEP`},r,W(R(e)));return M(te().decode(i))}async function ln(e,t){let n=U(),r=await n.subtle.importKey(`pkcs8`,K(t,G.private),{hash:`SHA-256`,name:`RSA-PSS`},!1,[`sign`]),i=await n.subtle.sign({name:`RSA-PSS`,saltLength:32},r,W(j(e)));return L(new Uint8Array(i))}async function un(e,t,n){let r=U(),i=await r.subtle.importKey(`spki`,K(n,G.public),{hash:`SHA-256`,name:`RSA-PSS`},!1,[`verify`]);return r.subtle.verify({name:`RSA-PSS`,saltLength:32},i,W(R(t)),W(j(e)))}async function dn(e=`P-256`){let t=U(),n=At(await t.subtle.generateKey({name:`ECDSA`,namedCurve:e},!0,[`sign`,`verify`]));return kt(n)}async function fn(e,t,n=`P-256`){let r=U(),i=await r.subtle.importKey(`pkcs8`,K(t,G.private),{name:`ECDSA`,namedCurve:n},!1,[`sign`]),a=n===`P-256`?`SHA-256`:n===`P-384`?`SHA-384`:`SHA-512`,o=await r.subtle.sign({hash:a,name:`ECDSA`},i,W(j(e)));return L(new Uint8Array(o))}async function pn(e,t,n,r=`P-256`){let i=U(),a=await i.subtle.importKey(`spki`,K(n,G.public),{name:`ECDSA`,namedCurve:r},!1,[`verify`]),o=r===`P-256`?`SHA-256`:r===`P-384`?`SHA-384`:`SHA-512`;return i.subtle.verify({hash:o,name:`ECDSA`},a,W(R(t)),W(j(e)))}async function mn(e=`P-256`){let t=U(),n=At(await t.subtle.generateKey({name:`ECDH`,namedCurve:e},!0,[`deriveBits`]));return kt(n)}async function hn(e,t,n=`P-256`){let r=U(),[i,a]=await Promise.all([r.subtle.importKey(`pkcs8`,K(e,G.private),{name:`ECDH`,namedCurve:n},!1,[`deriveBits`]),r.subtle.importKey(`spki`,K(t,G.public),{name:`ECDH`,namedCurve:n},!1,[])]),o=n===`P-256`?256:n===`P-384`?384:528,s=await r.subtle.deriveBits({name:`ECDH`,public:a},i,o);return new Uint8Array(s)}async function gn(e,t,n=`P-256`){let r=await hn(e,t,n),i=await U().subtle.digest(`SHA-256`,W(r));return new Uint8Array(i)}let _n=e=>{if(!Number.isSafeInteger(e))throw RangeError("`amount` 必须是安全整数。")};function q(e){let t=e instanceof Date?new Date(e.getTime()):new Date(e);if(!Number.isFinite(t.getTime()))throw TypeError(`该值不是有效日期。`);return t}function vn(e){return e instanceof Date||typeof e==`number`||typeof e==`string`?Number.isFinite(new Date(e).getTime()):!1}function yn(e){let t=q(e);return t.setHours(0,0,0,0),q(t)}function bn(e){let t=q(e);return t.setHours(23,59,59,999),q(t)}function xn(e,t){_n(t);let n=q(e);return n.setDate(n.getDate()+t),q(n)}function Sn(e,t){_n(t);let n=q(e),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);let i=new Date(n.getTime());i.setMonth(i.getMonth()+1,0);let a=i.getDate();return n.setDate(Math.min(r,a)),q(n)}function Cn(e,t){return _n(t),Sn(e,t*12)}function wn(e,t){let n=q(e),r=q(t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function Tn(e,t=Date.now()){return q(e).getTime()>q(t).getTime()}function En(e=Date.now()){return[yn(e),bn(e)]}function Dn(e,t,n){let r=q(e).getTime(),i=q(t).getTime(),a=q(n).getTime();if(i>a)throw RangeError("`start` 不能晚于 `end`。");return r>=i&&r<=a}function On(e,t={}){let n=(q(e).getTime()-q(t.now??Date.now()).getTime())/1e3,r=Math.abs(n),i,a;return r<60?(i=1,a=`second`):r<3600?(i=60,a=`minute`):r<86400?(i=3600,a=`hour`):r<604800?(i=86400,a=`day`):r<2629800?(i=604800,a=`week`):r<31557600?(i=2629800,a=`month`):(i=31557600,a=`year`),new Intl.RelativeTimeFormat(t.locale??`zh-CN`,{numeric:t.numeric??`auto`,style:t.style??`long`}).format(Math.round(n/i),a)}let kn=(e,t,n)=>{switch(n){case`day`:e.setDate(e.getDate()+t);break;case`month`:e.setMonth(e.getMonth()+t);break;case`year`:e.setFullYear(e.getFullYear()+t)}},J=(e,t,n)=>({text:e,value:()=>{let e=new Date;return kn(e,t,n),e.setHours(0,0,0,0),e}}),Y=(e,t,n,r)=>({text:e,value:()=>{let e=new Date,i=new Date;return kn(r?i:e,r?t:-t,n),e.setHours(0,0,0,0),i.setHours(23,59,59,999),[e,i]}});function An(e){if(e==null)return``;let t;if(t=typeof e==`string`?new Date(e).getTime():typeof e==`number`?e.toString().length<=10?e*1e3:e:e.getTime(),!Number.isFinite(t))return``;let n=Date.now(),r=n-t,i=Math.abs(r)/6e4,a=Math.abs(r)/36e5,o=Math.abs(r)/864e5,s=new Date(n),c=new Date(t),l=(s.getFullYear()-c.getFullYear())*12+s.getMonth()-c.getMonth(),u=r<0?`后`:`前`;return Math.abs(l)>=12?`${Math.floor(Math.abs(l)/12)}年${u}`:Math.abs(l)>=6?`半年${u}`:Math.abs(l)>=1?`${Math.abs(l)}月${u}`:o>=15?`半月${u}`:o>=7?`${Math.floor(o/7)}周${u}`:o>=1?`${Math.floor(o)}天${u}`:a>=1?`${Math.floor(a)}小时${u}`:i>=1?`${Math.floor(i)}分钟${u}`:`刚刚`}function jn(e=!1){let t=new Date,n=new Date;return kn(e?n:t,e?1:-1,`month`),t.setHours(0,0,0,0),n.setHours(23,59,59,999),[t,n]}function Mn(e){return e.getTime()>Date.now()}function Nn(){let e=new Date().getHours();return e<5?`夜深了,注意身体哦!`:e<9?`早上好!欢迎回来!`:e<12?`上午好!欢迎回来!`:e<14?`中午好!欢迎回来!`:e<18?`下午好!欢迎回来!`:e<24?`晚上好!欢迎回来!`:`您好!欢迎回来!`}function Pn(e=!1){return e?[Y(`后1天`,1,`day`,!0),Y(`后3天`,3,`day`,!0),Y(`后1周`,7,`day`,!0),Y(`后1月`,1,`month`,!0),Y(`后3月`,3,`month`,!0),Y(`后6月`,6,`month`,!0),Y(`后1年`,1,`year`,!0)]:[Y(`近1天`,1,`day`,!1),Y(`近3天`,3,`day`,!1),Y(`近1周`,7,`day`,!1),Y(`近1月`,1,`month`,!1),Y(`近3月`,3,`month`,!1),Y(`近6月`,6,`month`,!1),Y(`近1年`,1,`year`,!1)]}function Fn(e=!1){return e?[J(`今天`,0,`day`),J(`明天`,1,`day`),J(`一周后`,7,`day`),J(`一月后`,1,`month`),J(`一年后`,1,`year`)]:[J(`今天`,0,`day`),J(`昨天`,-1,`day`),J(`一周前`,-7,`day`),J(`一月前`,-1,`month`),J(`一年前`,-1,`year`)]}function In(){return yn(new Date)}let Ln=e=>Array.isArray(e),Rn=e=>{if(e.length===0||!Number.isFinite(Number(e)))return!1;let t=e.startsWith(`+`)||e.startsWith(`-`)?e.slice(1):e;return!/^0[box]/iu.test(t)},zn=e=>e.startsWith(`--`)?e:(e.startsWith(`ms`)?`-${e}`:e).replace(/([A-Z])/gu,`-$1`).toLowerCase();function Bn(e,t=`px`){if(e==null||e===``)return``;if(t.length===0)throw RangeError("`unit` 不能为空。");if(typeof e==`number`){if(!Number.isFinite(e))throw RangeError("`value` 必须是有限数。");return e===0?`0`:`${e}${t}`}let n=e.trim();return Rn(n)?Number(n)===0?`0`:`${n}${t}`:e}function Vn(e){if(e==null||e===``)return``;if(Ln(e))return e.map(e=>Vn(e)).filter(e=>e.length>0).join(` `);if(typeof e==`string`){let t=e.trim();return t.length===0?``:t.endsWith(`;`)?t:`${t};`}return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>{if(typeof t==`number`&&!Number.isFinite(t))throw RangeError(`样式属性“${e}”必须是有限数。`);return`${zn(e)}:${String(t)};`}).join(` `)}let Hn=()=>{let e=N.navigator?.userAgent;return typeof e==`string`?e:``},Un=()=>{let e=N.navigator?.maxTouchPoints;return typeof e==`number`?e:0};function Wn(){return N.window?.document!==void 0}function Gn(){return!Wn()&&typeof N.importScripts==`function`}function Kn(){let e=N.process;if(typeof e!=`object`&&typeof e!=`function`||e===null)return!1;let t=e.versions;return typeof t!=`object`&&typeof t!=`function`||t===null?!1:typeof t.node==`string`}function qn(){return N.uni!==void 0}function Jn(){let e=N.crypto,t=e?.subtle;return typeof e?.getRandomValues==`function`&&typeof t?.decrypt==`function`&&typeof t.deriveBits==`function`&&typeof t.deriveKey==`function`&&typeof t.digest==`function`&&typeof t.encrypt==`function`&&typeof t.exportKey==`function`&&typeof t.generateKey==`function`&&typeof t.importKey==`function`&&typeof t.sign==`function`&&typeof t.verify==`function`}function Yn(){return Wn()?`browser`:Gn()?`worker`:Kn()?`node`:`unknown`}function Xn(e=Hn()){return/Mobile|iPhone|Android.*Mobile|Windows Phone/iu.test(e)}function Zn(e=Hn(),t=Un()){return/iPad|Android(?!.*Mobile)|Tablet/iu.test(e)||/Macintosh/iu.test(e)&&t>1}function Qn(e){if(typeof e!=`function`)throw TypeError("`callback` 必须是函数。");let t={status:`pending`};return function(...n){switch(t.status){case`returned`:return t.value;case`threw`:throw t.error;case`pending`:try{let r=e.apply(this,n);return t={status:`returned`,value:r},r}catch(e){throw t={error:e,status:`threw`},e}}}}let $n=()=>{let e=N.uni;if(e===void 0)return;if(typeof e!=`object`&&typeof e!=`function`||e===null)throw TypeError(`全局 uni 对象未提供同步 Storage API。`);let t=e;if(typeof t.getStorageSync!=`function`||typeof t.getStorageInfoSync!=`function`||typeof t.removeStorageSync!=`function`||typeof t.setStorageSync!=`function`)throw TypeError(`全局 uni 对象未提供同步 Storage API。`);return t},er={decode:e=>JSON.parse(e),encode:e=>{let t=JSON.stringify(e);if(typeof t!=`string`)throw TypeError(`存储值无法序列化为 JSON。`);return t}},tr={decode:e=>JSON.parse(Pe(e)),encode:e=>{let t=JSON.stringify(e);if(typeof t!=`string`)throw TypeError(`存储值无法序列化为 JSON。`);return Ne(t)}},X,nr=e=>typeof e==`object`&&!!e&&!Array.isArray(e),rr=e=>{if(typeof e!=`string`||e.length===0)throw TypeError(`Storage 键必须是非空字符串。`)},ir=e=>{let t=e===`local`?N.localStorage:N.sessionStorage;if(t===void 0)throw Error(`当前运行环境不支持 ${e}Storage。`);return{getItem:e=>t.getItem(e),keys:()=>{let e=[];for(let n=0;n<t.length;n+=1){let r=t.key(n);r!==null&&e.push(r)}return e},removeItem:e=>{t.removeItem(e)},setItem:(e,n)=>{t.setItem(e,n)}}},ar=e=>({getItem:t=>{let n=e.getStorageSync(t);return n===``?e.getStorageInfoSync().keys.includes(t)?n:void 0:n},keys:()=>[...e.getStorageInfoSync().keys],removeItem:t=>{e.removeStorageSync(t)},setItem:(t,n)=>{e.setStorageSync(t,n)}}),or=(e,t)=>{if(typeof e!=`string`)throw TypeError(`Storage 条目“${t}”不是字符串。`);try{let t=JSON.parse(e);if(!nr(t)||t.version!==3||typeof t.data!=`string`||!(t.expiresAt===null||typeof t.expiresAt==`number`&&Number.isFinite(t.expiresAt)))throw TypeError(`不支持该存储包络。`);return{data:t.data,expiresAt:t.expiresAt,version:3}}catch(e){throw TypeError(`Storage 条目“${t}”已损坏或不受支持。`,{cause:e})}},sr=(e,t,n,r)=>{let i=e=>`${t}${e}`,a=e=>{if(e===void 0)return n;if(typeof e!=`boolean`)throw TypeError("Storage 单次 `crypto` 选项必须是布尔值。");return e?tr:er},o=e=>{let n=e.keys();if(!Array.isArray(n)||!n.every(e=>typeof e==`string`))throw TypeError(`Storage 后端返回的键必须是字符串。`);return[...new Set(n.filter(e=>e.startsWith(t)).map(e=>e.slice(t.length)))].sort()},s=(e,t)=>{rr(t);let n=i(t),a=e.getItem(n);if(a==null)return;let o=or(a,n);if(o.expiresAt===null)return o;let s=r();if(!Number.isFinite(s))throw RangeError(`Storage 时钟必须返回有限时间戳。`);if(s<o.expiresAt)return o;e.removeItem(n)};return{prefix:t,clear(){let t=e();for(let e of o(t))t.removeItem(i(e))},get(t,n={}){let r=s(e(),t);if(r!==void 0)try{return a(n.crypto).decode(r.data)}catch(e){throw TypeError(`无法解码 Storage 条目“${i(t)}”。`,{cause:e})}},has:t=>s(e(),t)!==void 0,keys:()=>o(e()),pruneExpired(){let t=e(),n=0;for(let e of o(t))t.getItem(i(e))!=null&&s(t,e)===void 0&&(n+=1);return n},remove(t){rr(t),e().removeItem(i(t))},removeByPrefix(t){rr(t);let n=e();for(let e of o(n))e.startsWith(t)&&n.removeItem(i(e))},set(t,n,o={}){if(rr(t),n===void 0)throw TypeError("不能存储顶层 `undefined`,请改为移除对应的键。");let s=null;if(o.ttlMs!==void 0){if(!Number.isFinite(o.ttlMs)||o.ttlMs<=0)throw RangeError("`ttlMs` 必须是大于 0 的有限数。");let e=r();if(!Number.isFinite(e)||!Number.isFinite(e+o.ttlMs))throw RangeError(`Storage 过期时间超出支持的时间戳范围。`);s=e+o.ttlMs}let c;try{if(c=a(o.crypto).encode(n),typeof c!=`string`)throw TypeError(`Storage Codec 必须返回字符串。`)}catch(e){throw TypeError(`无法编码存储值。`,{cause:e})}e().setItem(i(t),JSON.stringify({data:c,expiresAt:s,version:3}))}}},cr=()=>{if(X===void 0&&fr(),X===void 0)throw Error(`无法初始化 Storage 配置。`);return X},lr=(e,t)=>{let n=()=>{let n=e(cr());if(n===void 0)throw Error(`uni-app 中不支持 ${t}。`);return n};return{get prefix(){return n().prefix},clear:()=>{n().clear()},get:(e,t)=>n().get(e,t),has:e=>n().has(e),keys:()=>n().keys(),pruneExpired:()=>n().pruneExpired(),remove:e=>{n().remove(e)},removeByPrefix:e=>{n().removeByPrefix(e)},set:(e,t,r)=>{n().set(e,t,r)}}},ur=lr(e=>e.local,`Local`),dr=lr(e=>e.session,`Session`);function fr(e={}){let t=e.prefix??`fast__`;if(typeof t!=`string`||t.length===0)throw TypeError(`Storage 前缀必须是非空字符串。`);if(e.codec!==void 0&&e.crypto===!0)throw TypeError(`Storage 的 Codec 和加密选项不能同时使用。`);let n=e.codec??(e.crypto===!0?tr:er),r=e.now??Date.now;if(X!==void 0){if(X.prefix===t&&X.codec===n&&X.now===r)return;throw Error(`Storage 已使用其他选项完成配置。`)}let i=$n(),a={codec:n,local:sr(i===void 0?()=>ir(`local`):()=>ar(i),t,n,r),now:r,prefix:t};i===void 0&&(a.session=sr(()=>ir(`session`),t,n,r)),X=a}function pr(){return X!==void 0}let mr=`en-US`,hr=1e6,gr=4294967296,_r=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu,vr=e=>{let t=N.crypto;if(typeof t?.getRandomValues==`function`){t.getRandomValues(e);return}let n=e.BYTES_PER_ELEMENT===Uint8Array.BYTES_PER_ELEMENT?256:gr;for(let t=0;t<e.length;t+=1)e[t]=Math.floor(Math.random()*n)},yr=e=>{e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`},br=(e,t)=>{let n=N.Intl?.Segmenter;if(typeof n!=`function`)throw Error(`当前运行环境不支持 Intl.Segmenter。`);let r=new n(t??mr,{granularity:`grapheme`});return Array.from(r.segment(e),({segment:e})=>e)};function xr(e,t=10){if(!Number.isSafeInteger(t)||t<0)throw RangeError("`maxDepth` 必须是非负安全整数。");let n=e;for(let e=0;e<t;e+=1){let e=decodeURIComponent(n);if(e===n)break;n=e}return n}function Sr(e){let t=e.indexOf(`#`),n=t<0?e:e.slice(0,t),r=/^[a-z][a-z\d+.-]*:\/\//iu.test(n),i=n.indexOf(`?`);if(r&&i<0)return{};let a=r?n.slice(i+1):n.replace(/^\?/u,``),o={};for(let[e,t]of new URLSearchParams(a)){let n=Object.hasOwn(o,e)?o[e]:void 0;n===void 0?Object.defineProperty(o,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):Array.isArray(n)?n.push(t):Object.defineProperty(o,e,{configurable:!0,enumerable:!0,value:[n,t],writable:!0})}return o}function Cr(e){if(e.trim().length===0)return!1;try{return JSON.parse(e),!0}catch{return!1}}function wr(e){return e.trim().replace(/(\p{Ll}|\p{N})(\p{Lu})/gu,`$1 $2`).replace(/(\p{Lu})(\p{Lu}\p{Ll})/gu,`$1 $2`).split(/[\s_-]+/u).filter(e=>e.length>0)}function Tr(e,t){let n=Array.from(e),r=n.shift();return r===void 0?``:r.toLocaleUpperCase(t??mr)+n.join(``)}function Er(e,t){let n=Array.from(e),r=n.shift();return r===void 0?``:r.toLocaleLowerCase(t??mr)+n.join(``)}function Dr(e,t){return wr(e).map((e,n)=>{let r=e.toLocaleLowerCase(t??mr);return n===0?r:Tr(r,t)}).join(``)}function Or(e,t){return Tr(Dr(e,t),t)}function kr(e,t){return wr(e).map(e=>e.toLocaleLowerCase(t??mr)).join(`-`)}function Ar(e,t,n=`…`,r){if(!Number.isSafeInteger(t)||t<0)throw RangeError("`maxLength` 必须是非负安全整数。");let i=br(e,r);return i.length>t?i.slice(0,t).join(``)+n:e}async function jr(e){let t=N.uni;if(t!==void 0){if(typeof t!=`object`&&typeof t!=`function`||t===null)throw TypeError("全局 uni 对象未提供 `setClipboardData`。");let n=t,r=n.setClipboardData?.bind(n);if(r===void 0)throw TypeError("全局 uni 对象未提供 `setClipboardData`。");await new Promise((t,n)=>{r({data:e,fail:e=>{n(e instanceof Error?e:Error(`文本复制到剪贴板失败。`,{cause:e}))},success:t})});return}let n=N.navigator?.clipboard;if(N.isSecureContext===!0&&typeof n?.writeText==`function`){await n.writeText(e);return}let r=N.document;if(typeof r?.createElement!=`function`||r.body==null||typeof r.execCommand!=`function`)throw Error(`当前运行环境不支持访问剪贴板。`);let i=r.createElement(`textarea`);i.value=e,i.style.left=`-999999px`,i.style.opacity=`0`,i.style.position=`fixed`,i.style.top=`-999999px`,r.body.appendChild(i);let a;try{i.focus(),i.select(),a=r.execCommand(`copy`)}finally{i.remove()}if(!a)throw Error(`文本复制到剪贴板失败。`)}function Mr(e,t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`){if(!Number.isSafeInteger(e)||e<0||e>hr)throw RangeError(`\`length\` 必须是 0 到 ${hr} 之间的安全整数。`);let n=Array.from(t);if(n.length===0)throw RangeError("`alphabet` 不能为空。");if(new Set(n).size!==n.length)throw RangeError("`alphabet` 不能包含重复字符。");if(n.length>4294967296)throw RangeError("`alphabet` 不能包含超过 2^32 个字符。");if(e===0)return``;let r=Math.floor(gr/n.length)*n.length,i=[];for(;i.length<e;){let t=e-i.length,a=new Uint32Array(Math.min(t,16384));vr(a);for(let t of a){if(t>=r)continue;let a=n[t%n.length];if(a!==void 0&&(i.push(a),i.length===e))break}}return i.join(``)}function Nr(){let e=N.crypto;if(typeof e?.randomUUID==`function`)return e.randomUUID();let t=new Uint8Array(16);return vr(t),yr(t)}function Pr(e){return _r.test(e)}function Fr(e){return e.replace(/[&<>"']/gu,e=>{switch(e){case`&`:return`&`;case`<`:return`<`;case`>`:return`>`;case`"`:return`"`;default:return`'`}})}function Ir(e){return e.trim().replace(/\s+/gu,` `)}let Lr=`identity:installation-id`,Rr=e=>{if(!Pr(e))throw TypeError(`安装标识值必须是符合 RFC 4122 的 UUID v4。`)},zr,Br=()=>(zr??=Lr,zr);function Vr(e={}){let t=e.cacheKey??Lr;if(typeof t!=`string`||t.length===0||t.trim()!==t)throw TypeError("安装标识的 `cacheKey` 必须是无外围空白的非空字符串。");if(zr===void 0){zr=t;return}if(zr!==t)throw Error("安装标识已使用其他 `cacheKey` 完成配置。")}let Z={get cacheKey(){return Br()},deviceId:``,clear(){ur.remove(Z.cacheKey),Z.deviceId=``},getOrCreate(e){let t=e??(Z.deviceId.length>0?Z.deviceId:Z.read())??Nr();return Rr(t),ur.set(Z.cacheKey,t),Z.deviceId=t,t},read(){let e=ur.get(Z.cacheKey);if(e!==void 0){if(typeof e!=`string`)throw TypeError(`存储的安装标识已损坏。`);return Rr(e),e}}};function Hr(e){return Z.getOrCreate(e)}let Ur={debug:10,log:20,warn:30,error:40},Wr=e=>typeof e==`string`&&Object.hasOwn(Ur,e),Gr=()=>N.uni!==void 0&&N.plus!==void 0,Kr=e=>{if(typeof e==`string`)return e;if(typeof e==`bigint`)return`${e.toString()}n`;if(e instanceof Error)return e.stack??`${e.name}: ${e.message}`;let t=new WeakSet;try{let n=JSON.stringify(e,(e,n)=>typeof n==`bigint`?`${n.toString()}n`:typeof n!=`object`||!n?n:t.has(n)?`[Circular]`:(t.add(n),n),2);return typeof n==`string`?n:String(e)}catch{return String(e)}},qr={debug:(...e)=>{typeof console.debug==`function`?console.debug(...e):console.log(...e)},log:(...e)=>{console.log(...e)},warn:(...e)=>{console.warn(...e)},error:(...e)=>{console.error(...e)}};function Jr(e={}){let t=e.level??`debug`,n=e.prefix??`Fast`,r=e.sink??qr;if(!Wr(t))throw RangeError(`未知的日志级别:${String(t)}。`);if(typeof n!=`string`||n.length===0)throw RangeError(`日志前缀必须是非空字符串。`);let i=e.uniAppPlusSplit??!1,a=(e,a,o)=>{if(typeof a!=`string`)throw TypeError(`日志作用域必须是字符串。`);if(a.length===0||a.trim()!==a)throw RangeError(`日志作用域必须是无外围空白的非空字符串。`);if(Ur[e]<Ur[t])return;let s=`[${n}:${a}]`,c=e;if(i&&Gr()){let[e,...t]=o;if(typeof e==`string`){r[c](`${s} ${e}`);for(let e of t)r[c](Kr(e))}else{r[c](s);for(let e of o)r[c](Kr(e))}return}r[c](s,...o)};return{debug:(e,...t)=>{a(`debug`,e,t)},log:(e,...t)=>{a(`log`,e,t)},warn:(e,...t)=>{a(`warn`,e,t)},error:(e,...t)=>{a(`error`,e,t)}}}let Yr=Jr();function Xr(e={}){Yr=Jr(e)}let Zr={debug:(e,...t)=>{Yr.debug(e,...t)},log:(e,...t)=>{Yr.log(e,...t)},warn:(e,...t)=>{Yr.warn(e,...t)},error:(e,...t)=>{Yr.error(e,...t)}},Qr=e=>Array.isArray(e),Q=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0})},$r=new Set([`[object BigInt64Array]`,`[object BigUint64Array]`,`[object Float32Array]`,`[object Float64Array]`,`[object Int8Array]`,`[object Int16Array]`,`[object Int32Array]`,`[object Uint8Array]`,`[object Uint8ClampedArray]`,`[object Uint16Array]`,`[object Uint32Array]`]),$=(e,t)=>{let n=Reflect.get(e,`constructor`);return typeof n==`function`?Reflect.construct(n,t):{}},ei=e=>{let t=$(e,[e.byteLength]);return new Uint8Array(t).set(new Uint8Array(e)),t},ti=(e,t,n)=>{if(typeof e!=`object`&&typeof e!=`function`||e===null)return e;let r=e,i=t.get(r);if(i!==void 0)return i;if(typeof r==`function`&&!n)return r;if(Array.isArray(r)){let e=$(r,[r.length]);t.set(r,e);for(let n=0;n<r.length;n+=1)Q(e,n,ti(r[n],t,!1));return e}let a=Object.prototype.toString.call(r),o;if(typeof r==`function`)o={};else switch(a){case`[object Arguments]`:o={};break;case`[object ArrayBuffer]`:case`[object SharedArrayBuffer]`:o=ei(r);break;case`[object Boolean]`:o=$(r,[r.valueOf()]);break;case`[object DataView]`:{let e=r;o=$(r,[ei(e.buffer),e.byteOffset,e.byteLength]);break}case`[object Date]`:o=$(r,[r.getTime()]);break;case`[object Map]`:case`[object Set]`:o=$(r,[]);break;case`[object Number]`:o=$(r,[r.valueOf()]);break;case`[object Object]`:{let e=Object.getPrototypeOf(r);o=Object.create(e);break}case`[object RegExp]`:{let e=r,t=new RegExp(e.source,e.flags);t.lastIndex=e.lastIndex,o=t;break}case`[object String]`:o=$(r,[r.valueOf()]);break;case`[object Symbol]`:o=Object(r.valueOf());break;default:{if(!$r.has(a))return n?{}:r;let e=r;o=$(r,[ei(e.buffer),e.byteOffset,e.length])}}if(t.set(r,o),a===`[object Map]`)for(let[e,n]of r)o.set(e,ti(n,t,!1));else if(a===`[object Set]`)for(let e of r)o.add(ti(e,t,!1));for(let e of Reflect.ownKeys(r)){if(!Object.prototype.propertyIsEnumerable.call(r,e))continue;let n=ti(Reflect.get(r,e),t,!1);e===`__proto__`?Q(o,e,n):Reflect.set(o,e,n)}return o},ni=(e,t)=>e===t||typeof e==`number`&&typeof t==`number`&&Number.isNaN(e)&&Number.isNaN(t),ri=e=>Reflect.ownKeys(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t)),ii=(e,t,n,r)=>{let i=n.leftObjects.get(e),a=n.rightObjects.get(t);if(i!==void 0||a!==void 0)return i===t&&a===e;n.leftObjects.set(e,t),n.rightObjects.set(t,e);try{return r()}finally{n.leftObjects.delete(e),n.rightObjects.delete(t)}},ai=(e,t)=>{if(e.byteLength!==t.byteLength)return!1;let n=new Uint8Array(e),r=new Uint8Array(t);for(let e=0;e<n.length;e+=1)if(n[e]!==r[e])return!1;return!0},oi=(e,t,n)=>e.length===t.length&&ii(e,t,n,()=>{for(let r=0;r<e.length;r+=1)if(!li(e[r],t[r],n))return!1;return!0}),si=(e,t,n)=>{if(e.length!==t.length)return!1;let r=new Set;for(let i of e){let e=-1;for(let a=0;a<t.length;a+=1)if(!r.has(a)&&li(i,t[a],n)){e=a;break}if(e<0)return!1;r.add(e)}return!0},ci=(e,t,n)=>{let r=ri(e),i=ri(t);if(r.length!==i.length)return!1;for(let e of r)if(!Object.hasOwn(t,e))return!1;return ii(e,t,n,()=>{let i=!0;for(let a of r){if(!li(Reflect.get(e,a),Reflect.get(t,a),n))return!1;a===`constructor`&&(i=!1)}if(!i)return!0;let a=Reflect.get(e,`constructor`),o=Reflect.get(t,`constructor`);return a===o||!(`constructor`in e&&`constructor`in t)||typeof a==`function`&&typeof o==`function`&&a instanceof a&&o instanceof o})};function li(e,t,n){if(ni(e,t))return!0;if(e==null||t==null)return!1;let r=Object.prototype.toString.call(e),i=Object.prototype.toString.call(t),a=r===`[object Arguments]`?`[object Object]`:r;if(a!==(i===`[object Arguments]`?`[object Object]`:i))return!1;switch(a){case`[object Boolean]`:case`[object Date]`:case`[object Number]`:return ni(Number(e),Number(t));case`[object Error]`:return e.name===t.name&&e.message===t.message;case`[object RegExp]`:return RegExp.prototype.toString.call(e)===RegExp.prototype.toString.call(t);case`[object String]`:return String.prototype.valueOf.call(e)===String.prototype.valueOf.call(t);case`[object Symbol]`:return Symbol.prototype.valueOf.call(e)===Symbol.prototype.valueOf.call(t)}if(typeof e!=`object`||typeof t!=`object`)return!1;if(Array.isArray(e)&&Array.isArray(t))return oi(e,t,n);if(a===`[object ArrayBuffer]`||a===`[object SharedArrayBuffer]`)return ai(e,t);if(a===`[object DataView]`){let n=e,r=t;return n.byteLength===r.byteLength&&n.byteOffset===r.byteOffset&&ai(n.buffer,r.buffer)}return $r.has(a)?oi(e,t,n):a===`[object Map]`||a===`[object Set]`?ii(e,t,n,()=>si([...e],[...t],n)):a===`[object Object]`&&ci(e,t,n)}function ui(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function di(e,t){return Object.hasOwn(e,t)}function fi(e){return ti(e,new WeakMap,!0)}function pi(e,t){return li(e,t,{leftObjects:new WeakMap,rightObjects:new WeakMap})}function mi(e,t){let n={};for(let r of t)Object.prototype.propertyIsEnumerable.call(e,r)&&Q(n,r,Reflect.get(e,r));return n}function hi(e,t){let n={...e};for(let e of t)Reflect.deleteProperty(n,e);return n}function gi(e,t){let n={};for(let r of ri(e))t(e[r],r,e)||Q(n,r,e[r]);return n}function _i(e,t){let n={};for(let r of ri(e))t(e[r],r,e)&&Q(n,r,e[r]);return n}function vi(e,t){let n={};for(let r of Reflect.ownKeys(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Q(n,r,t(e[r],r,e));return n}function yi(e,t){if(Object.is(e,t))return!0;let n=Reflect.ownKeys(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t)),r=Reflect.ownKeys(t).filter(e=>Object.prototype.propertyIsEnumerable.call(t,e));return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&Object.is(Reflect.get(e,n),Reflect.get(t,n)))}let bi=e=>{if(typeof e==`number`&&!Number.isFinite(e))throw RangeError(`查询参数中的数字必须是有限数。`);return String(e)};function xi(e,t={}){let n=Object.entries(e);t.sort&&n.sort(([e],[t])=>e<t?-1:+(e>t));let r=new URLSearchParams;for(let[e,t]of n){let n=Qr(t)?t:[t];for(let t of n)t!=null&&r.append(e,bi(t))}let i=r.toString();return t.space===`percent`&&(i=i.replace(/\+/gu,`%20`)),i&&t.prefixQuestionMark?`?${i}`:i}let Si=e=>`on${e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}`;function Ci(e,n,r=[]){let i=new Set(r),a=n;return(0,t.computed)(()=>{let t={},n=new Set;for(let r of Object.keys(e)){if(i.has(r))continue;if(r.length===0||/\s/u.test(r))throw TypeError(`无效的 Vue 事件名称:“${r}”。`);let e=Si(r);if(n.has(e))throw TypeError(`多个 Vue 事件映射到同一处理器属性:“${e}”。`);n.add(e),Object.defineProperty(t,e,{enumerable:!0,value:(...e)=>{a(r,...e)},writable:!0})}return t})}function wi(e,t){return e(t),t}async function Ti(e,...t){if(e!=null)return Promise.resolve(e(...t))}let Ei=e=>{if(typeof e!=`object`||!e)throw TypeError(`安装 Vue 插件需要 Vue 3 App 实例。`);let t=e;if(typeof t.component!=`function`||typeof t.directive!=`function`)throw TypeError("安装 Vue 插件需要 `component()` 和 `directive()` 注册方法。");return t},Di=e=>{let t=e.name;if(typeof t!=`string`||t.length===0||/\s/u.test(t))throw TypeError(`可安装的 Vue 组件必须公开不含空白的非空名称。`);return t},Oi=(e,t)=>{let n=Di(t),r=e.component(n);if(r!==void 0&&r!==t)throw Error(`Vue 组件名称“${n}”已被其他组件注册。`);return{component:t,name:n,registered:r===t}};function ki(e,t){let n=new Set([Di(e)]);if(`install`in Object(e))throw TypeError("Vue 组件已定义 `install` 属性。");let r=Object.entries(t??{});if(t!==void 0&&Object.getOwnPropertySymbols(t).some(e=>Object.prototype.propertyIsEnumerable.call(t,e)))throw TypeError(`Vue 组件附属项必须使用字符串属性名。`);for(let[t,i]of r){let r=Di(i);if(n.has(r))throw TypeError(`Vue 组件名称“${r}”被重复注册。`);if(n.add(r),t===`install`||t in Object(e))throw TypeError(`Vue 组件附属项“${t}”会覆盖主组件上的属性。`)}let i=e;for(let[e,t]of r)Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0});return i.install=t=>{let n=Ei(t),i=[e,...r.map(([,e])=>e)].map(e=>Oi(n,e));for(let e of i)e.registered||n.component(e.name,e.component)},i}function Ai(e){if(`install`in Object(e))throw TypeError("Vue 组件已定义 `install` 属性。");let t=e;return t.install=()=>void 0,t}function ji(e,t){if(t.length===0||/\s/u.test(t)||t.startsWith(`v-`))throw TypeError("可安装的 Vue 指令名称不能包含空白或 `v-` 前缀。");if(`install`in Object(e))throw TypeError("Vue 指令已定义 `install` 属性。");let n=e;return n.install=n=>{let r=Ei(n),i=r.directive(t);if(i!==void 0&&i!==e)throw Error(`Vue 指令名称“${t}”已被其他指令注册。`);i!==e&&r.directive(t,e)},n}function Mi(e){return e}function Ni(e,n,r=[]){let i=new Set(r);return(0,t.computed)(()=>{let t={};for(let r of Reflect.ownKeys(n))!i.has(r)&&Object.hasOwn(e,r)&&Object.defineProperty(t,r,{configurable:!0,enumerable:!0,value:Reflect.get(e,r),writable:!0});return t})}function Pi(e){let n=(0,t.getCurrentInstance)();if(n===null)throw Error("`useRender` 必须在 `setup` 函数内部调用。");n.render=e}function Fi(){return Object}function Ii(e){return e}return e.AESDecrypt=en,e.AESDecryptAuthenticated=nn,e.AESDecryptWithPassword=an,e.AESEncrypt=$t,e.AESEncryptAuthenticated=tn,e.AESEncryptWithPassword=rn,e.DeriveECDHKeySHA256=gn,e.DeriveECDHSecret=hn,e.ECDSASign=fn,e.ECDSAVerify=pn,e.FixedTimeEquals=Lt,e.GenerateECDHKeyPair=mn,e.GenerateECDSAKeyPair=dn,e.GenerateRSAKeyPair=on,e.GenerateRandomBytes=It,e.HKDFSHA256=Qt,e.HMACSHA256Encrypt=Kt,e.HMACSHA384Encrypt=qt,e.HMACSHA512Encrypt=Jt,e.HashPasswordPBKDF2SHA256=Xt,e.Local=ur,e.MD5Encrypt=Rt,e.PBKDF2SHA256=Yt,e.RSADecryptOAEP=cn,e.RSAEncryptOAEP=sn,e.RSASignPSS=ln,e.RSAVerifyPSS=un,e.SHA1Encrypt=zt,e.SHA256Bytes=Bt,e.SHA256Encrypt=Vt,e.SHA384Bytes=Ht,e.SHA384Encrypt=Ut,e.SHA512Bytes=Wt,e.SHA512Encrypt=Gt,e.Session=dr,e.VerifyPasswordPBKDF2SHA256=Zt,e.addCssUnit=Bn,e.addDays=xn,e.addMonths=Sn,e.addYears=Cn,e.allEqualBy=x,e.average=pe,e.base64StorageCodec=tr,e.callOptionalFunction=Ti,e.camelCase=Dr,e.chunk=d,e.clamp=le,e.cloneDeep=fi,e.configureInstallationIdentity=Vr,e.configureLogger=Xr,e.configureStorage=fr,e.contrastRatio=Ke,e.copy=jr,e.createDateRangeShortcuts=Pn,e.createDateShortcuts=Fn,e.createLogger=Jr,e.createOneMonthRangeFromToday=jn,e.debounce=A,e.decodeBase64=Ce,e.decodeBase64Bytes=R,e.decodeBase64Url=Te,e.decodeBase64UrlBytes=B,e.decodeLatin1Base64=De,e.decodeSecureBase64=Pe,e.decodeURIComponentRepeatedly=xr,e.definePropType=Mi,e.detectRuntime=Yn,e.difference=_,e.encodeBase64=Se,e.encodeBase64Bytes=L,e.encodeBase64Url=we,e.encodeBase64UrlBytes=z,e.encodeLatin1Base64=Ee,e.encodeSecureBase64=Ne,e.endOfDay=bn,e.escapeHtml=Fr,e.formatBytes=he,e.formatChineseRelativeTime=An,e.formatHexColor=Be,e.formatRelativeTime=On,e.generateUuidV4=Nr,e.getLocalDayBounds=En,e.getLocalTimeGreeting=Nn,e.getOrCreateInstallationId=Hr,e.getStartOfToday=In,e.groupBy=h,e.hasDuplicatesBy=b,e.hasOwn=di,e.hasWebCrypto=Jn,e.inRange=ue,e.installationIdentity=Z,e.intersection=v,e.isBrowser=Wn,e.isDateAfterNow=Mn,e.isEqual=pi,e.isFuture=Tn,e.isMobileUserAgent=Xn,e.isNode=Kn,e.isPlainObject=ui,e.isSameDay=wn,e.isStorageConfigured=pr,e.isTabletUserAgent=Zn,e.isUniApp=qn,e.isUuidV4=Pr,e.isValidDate=vn,e.isValidJson=Cr,e.isWebWorker=Gn,e.isWithinInterval=Dn,e.kebabCase=kr,e.lerp=me,e.logger=Zr,e.lowerFirst=Er,e.makeSlots=Fi,e.mapConcurrent=k,e.mapValues=vi,e.mixHexColorWithBlack=He,e.mixHexColorWithWhite=Ue,e.mixHexColors=Ve,e.normalizeWhitespace=Ir,e.omit=hi,e.omitBy=gi,e.once=Qn,e.parseHexColor=ze,e.parseQueryString=Sr,e.partition=g,e.pascalCase=Or,e.pick=mi,e.pickBy=_i,e.pickHigherContrastColor=qe,e.randomInt=ge,e.randomString=Mr,e.relativeLuminance=Ge,e.removeNullishValues=f,e.retry=O,e.roundTo=de,e.serializeStyle=Vn,e.shallowEqual=yi,e.sleep=E,e.splitWords=wr,e.startOfDay=yn,e.sum=fe,e.symmetricDifference=y,e.throttle=ee,e.toDate=q,e.toQueryString=xi,e.truncateGraphemes=Ar,e.unique=p,e.uniqueBy=m,e.upperFirst=Tr,e.useEmits=Ci,e.useExpose=wi,e.useProps=Ni,e.useRender=Pi,e.withDefineType=Ii,e.withInstall=ki,e.withInstallDirective=ji,e.withNoopInstall=Ai,e.withTimeout=D,e})({},Vue);
|
|
2
|
+
`)??``}\n-----END ${e}-----`,K=(e,t)=>{let n=`-----BEGIN ${t}-----`,r=`-----END ${t}-----`,i=e.trim();if(!i.startsWith(n)||!i.endsWith(r))throw TypeError(`应提供 ${t} 格式的 PEM 值。`);let a=i.slice(n.length,-r.length).replace(/\s+/gu,``);return W(R(a))},kt=async e=>{let t=U(),[n,r]=await Promise.all([t.subtle.exportKey(`pkcs8`,e.privateKey),t.subtle.exportKey(`spki`,e.publicKey)]);return{privateKey:Ot(G.private,n),publicKey:Ot(G.public,r)}},At=e=>{if(`privateKey`in e&&`publicKey`in e)return e;throw Error(`当前运行环境未生成密钥对。`)},jt=e=>{let t=j(e);if(t.length===0)throw TypeError(`加密密码不能为空。`);if(t.length>Ct)throw RangeError(`UTF-8 密码不能超过 ${Ct} 字节。`);return t},Mt=e=>{if(!Number.isSafeInteger(e)||e<xt||e>St)throw RangeError(`\`iterations\` 必须是 ${xt} 到 ${St} 之间的安全整数。`);return e},Nt=e=>Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``),Pt=e=>Nt(e).toUpperCase(),Ft=async(e,t,n)=>{let r=j(t);if(r.length===0)throw TypeError(`HMAC 密钥不能为空。`);let i=U(),a=await i.subtle.importKey(`raw`,W(r),{hash:n,name:`HMAC`},!1,[`sign`]),o=await i.subtle.sign(`HMAC`,a,W(j(e)));return new Uint8Array(o)};function It(e){if(!Number.isSafeInteger(e)||e<0||e>65536)throw RangeError("`length` 必须是 0 到 65,536 之间的安全整数。");let t=new Uint8Array(e),n=N.crypto;if(typeof n?.getRandomValues==`function`)return n.getRandomValues(t);for(let e=0;e<t.length;e+=1)t[e]=Math.floor(Math.random()*256);return t}function Lt(e,t){let n=Math.max(e.length,t.length),r=e.length===t.length?0:1;for(let i=0;i<n;i+=1)r|=(e[i]??0)^(t[i]??0);return r===0}function Rt(e){return(0,pt.default)(e).toString(dt.default)}function zt(e){return(0,yt.default)(e).toString(dt.default).toUpperCase()}async function Bt(e){let t=await U().subtle.digest(`SHA-256`,W(j(e)));return new Uint8Array(t)}async function Vt(e){return Pt(await Bt(e))}async function Ht(e){let t=await U().subtle.digest(`SHA-384`,W(j(e)));return new Uint8Array(t)}async function Ut(e){return Pt(await Ht(e))}async function Wt(e){let t=await U().subtle.digest(`SHA-512`,W(j(e)));return new Uint8Array(t)}async function Gt(e){return Pt(await Wt(e))}async function Kt(e,t){return Nt(await Ft(e,t,`SHA-256`))}async function qt(e,t){return Nt(await Ft(e,t,`SHA-384`))}async function Jt(e,t){return Nt(await Ft(e,t,`SHA-512`))}async function Yt(e,t,n=bt,r=32){let i=jt(e);if(t.length<8)throw RangeError(`PBKDF2 盐值必须至少包含 8 字节,建议不少于 16 字节。`);if(!Number.isSafeInteger(r)||r<1||r>1024)throw RangeError("`outputLength` 必须是 1 到 1,024 之间的安全整数。");let a=U(),o=await a.subtle.importKey(`raw`,W(i),`PBKDF2`,!1,[`deriveBits`]),s=await a.subtle.deriveBits({hash:`SHA-256`,iterations:Mt(n),name:`PBKDF2`,salt:W(t)},o,r*8);return new Uint8Array(s)}async function Xt(e,t=bt){let n=It(16),r=await Yt(e,n,t);return[Et,String(t),z(n),z(r)].join(`:`)}async function Zt(e,t){try{let n=t.split(`:`);if(n.length!==4||n[0]!==Et)return!1;let r=Mt(Number(n[1])),i=B(n[2]??``),a=B(n[3]??``);return i.length!==16||a.length!==32?!1:Lt(await Yt(e,i,r,a.length),a)}catch{return!1}}async function Qt(e,t=new Uint8Array,n=new Uint8Array,r=32){if(!Number.isSafeInteger(r)||r<1||r>8160)throw RangeError("`outputLength` 必须是 1 到 8,160 之间的安全整数。");let i=U(),a=await i.subtle.importKey(`raw`,W(e),`HKDF`,!1,[`deriveBits`]),o=await i.subtle.deriveBits({hash:`SHA-256`,info:W(n),name:`HKDF`,salt:W(t)},a,r*8);return new Uint8Array(o)}function $t(e,t,n,r=`CBC`,i=`PKCS7`){if(e.trim().length===0||t.trim().length===0||n.trim().length===0)return null;Dt(r);let a=_t.default;switch(i){case`None`:a=gt.default;break;case`PKCS7`:break;case`Zeros`:a=vt.default;break;case`ANSIX923`:a=ut.default.pad.AnsiX923;break;case`ISO10126`:a=ht.default;break;default:throw RangeError("不支持当前 `paddingMode`。")}if(i===`None`&&j(e).length%16!=0)throw RangeError("当 `paddingMode` 为 `None` 时,AES 明文长度必须是 16 字节的整数倍。");let o=ft.default.parse(t.padEnd(32,`f`).slice(0,32)),s=ft.default.parse(n.padEnd(16,`f`).slice(0,16));return lt.default.encrypt(e,o,r===`CBC`?{iv:s,padding:a}:{iv:s,mode:mt.default,padding:a}).toString()}function en(e,t,n,r=`CBC`,i=`PKCS7`){if(e.trim().length===0||t.trim().length===0||n.trim().length===0)return null;Dt(r);let a=_t.default;switch(i){case`None`:a=gt.default;break;case`PKCS7`:break;case`Zeros`:a=gt.default;break;case`ANSIX923`:a=ut.default.pad.AnsiX923;break;case`ISO10126`:a=ht.default;break;default:throw RangeError("不支持当前 `paddingMode`。")}let o=R(e);if(o.length===0||o.length%16!=0)throw RangeError(`AES 密文必须至少包含一个完整的 16 字节块。`);let s=ft.default.parse(t.padEnd(32,`f`).slice(0,32)),c=ft.default.parse(n.padEnd(16,`f`).slice(0,16));return M(lt.default.decrypt(e,s,r===`CBC`?{iv:c,padding:a}:{iv:c,mode:mt.default,padding:a}).toString(ft.default))}async function tn(e,t){if(t.trim().length===0)throw TypeError(`加密密钥不能为空。`);let n=U(),r=await Bt(t),i=await n.subtle.importKey(`raw`,W(r),{name:`AES-GCM`},!1,[`encrypt`]),a=It(12),o=new Uint8Array(await n.subtle.encrypt({iv:W(a),name:`AES-GCM`,tagLength:128},i,W(j(e)))),s=o.length-16,c=new Uint8Array(1+a.length+16+s);return c[0]=1,c.set(a,1),c.set(o.subarray(s),1+a.length),c.set(o.subarray(0,s),1+a.length+16),L(c)}async function nn(e,t){if(t.trim().length===0)throw TypeError(`加密密钥不能为空。`);let n=R(e);if(n.length<29||n[0]!==1)throw TypeError(`不支持该 AES-GCM 载荷格式或版本。`);let r=n.subarray(1,13),i=n.subarray(13,29),a=n.subarray(29),o=new Uint8Array(a.length+i.length);o.set(a),o.set(i,a.length);let s=U(),c=await Bt(t),l=await s.subtle.importKey(`raw`,W(c),{name:`AES-GCM`},!1,[`decrypt`]),u=await s.subtle.decrypt({iv:W(r),name:`AES-GCM`,tagLength:128},l,W(o));return M(te().decode(u))}async function rn(e,t,n=bt){let r=jt(t),i=j(e);if(i.length>wt)throw RangeError(`UTF-8 明文不能超过 ${wt} 字节。`);let a=Mt(n),o=U(),s=It(16),c=It(12),l=await o.subtle.importKey(`raw`,W(r),`PBKDF2`,!1,[`deriveKey`]),u=await o.subtle.deriveKey({hash:`SHA-256`,iterations:a,name:`PBKDF2`,salt:W(s)},l,{length:256,name:`AES-GCM`},!1,[`encrypt`]),d=await o.subtle.encrypt({additionalData:W(j(Tt)),iv:W(c),name:`AES-GCM`,tagLength:128},u,i);return[Tt,String(a),z(s),z(c),z(new Uint8Array(d))].join(`:`)}async function an(e,t){let n=jt(t);if(e.length>16777216)throw RangeError(`加密载荷超出支持的大小。`);let r=e.split(`:`);if(r.length!==5||r[0]!==Tt)throw TypeError(`不支持该加密载荷格式。`);let i,a,o,s;try{if(i=Mt(Number(r[1])),a=B(r[2]??``),o=B(r[3]??``),s=B(r[4]??``),a.length!==16||o.length!==12||s.length<16)throw TypeError(`加密载荷的字段长度无效。`)}catch(e){throw TypeError(`加密载荷包含无效字段。`,{cause:e})}let c=U(),l=te();try{let e=await c.subtle.importKey(`raw`,W(n),`PBKDF2`,!1,[`deriveKey`]),t=await c.subtle.deriveKey({hash:`SHA-256`,iterations:i,name:`PBKDF2`,salt:W(a)},e,{length:256,name:`AES-GCM`},!1,[`decrypt`]),r=await c.subtle.decrypt({additionalData:W(j(Tt)),iv:W(o),name:`AES-GCM`,tagLength:128},t,W(s));return M(l.decode(r))}catch(e){throw Error(`无法认证或解密载荷。`,{cause:e})}}async function on(e=2048){if(!Number.isSafeInteger(e)||e<2048||e%256!=0)throw RangeError("`modulusLength` 必须是大于或等于 2048 且能被 256 整除的安全整数。");let t=U(),n=At(await t.subtle.generateKey({hash:`SHA-256`,modulusLength:e,name:`RSA-OAEP`,publicExponent:Uint8Array.of(1,0,1)},!0,[`decrypt`,`encrypt`]));return kt(n)}async function sn(e,t){let n=U(),r=await n.subtle.importKey(`spki`,K(t,G.public),{hash:`SHA-256`,name:`RSA-OAEP`},!1,[`encrypt`]),i=await n.subtle.encrypt({name:`RSA-OAEP`},r,W(j(e)));return L(new Uint8Array(i))}async function cn(e,t){let n=U(),r=await n.subtle.importKey(`pkcs8`,K(t,G.private),{hash:`SHA-256`,name:`RSA-OAEP`},!1,[`decrypt`]),i=await n.subtle.decrypt({name:`RSA-OAEP`},r,W(R(e)));return M(te().decode(i))}async function ln(e,t){let n=U(),r=await n.subtle.importKey(`pkcs8`,K(t,G.private),{hash:`SHA-256`,name:`RSA-PSS`},!1,[`sign`]),i=await n.subtle.sign({name:`RSA-PSS`,saltLength:32},r,W(j(e)));return L(new Uint8Array(i))}async function un(e,t,n){let r=U(),i=await r.subtle.importKey(`spki`,K(n,G.public),{hash:`SHA-256`,name:`RSA-PSS`},!1,[`verify`]);return r.subtle.verify({name:`RSA-PSS`,saltLength:32},i,W(R(t)),W(j(e)))}async function dn(e=`P-256`){let t=U(),n=At(await t.subtle.generateKey({name:`ECDSA`,namedCurve:e},!0,[`sign`,`verify`]));return kt(n)}async function fn(e,t,n=`P-256`){let r=U(),i=await r.subtle.importKey(`pkcs8`,K(t,G.private),{name:`ECDSA`,namedCurve:n},!1,[`sign`]),a=n===`P-256`?`SHA-256`:n===`P-384`?`SHA-384`:`SHA-512`,o=await r.subtle.sign({hash:a,name:`ECDSA`},i,W(j(e)));return L(new Uint8Array(o))}async function pn(e,t,n,r=`P-256`){let i=U(),a=await i.subtle.importKey(`spki`,K(n,G.public),{name:`ECDSA`,namedCurve:r},!1,[`verify`]),o=r===`P-256`?`SHA-256`:r===`P-384`?`SHA-384`:`SHA-512`;return i.subtle.verify({hash:o,name:`ECDSA`},a,W(R(t)),W(j(e)))}async function mn(e=`P-256`){let t=U(),n=At(await t.subtle.generateKey({name:`ECDH`,namedCurve:e},!0,[`deriveBits`]));return kt(n)}async function hn(e,t,n=`P-256`){let r=U(),[i,a]=await Promise.all([r.subtle.importKey(`pkcs8`,K(e,G.private),{name:`ECDH`,namedCurve:n},!1,[`deriveBits`]),r.subtle.importKey(`spki`,K(t,G.public),{name:`ECDH`,namedCurve:n},!1,[])]),o=n===`P-256`?256:n===`P-384`?384:528,s=await r.subtle.deriveBits({name:`ECDH`,public:a},i,o);return new Uint8Array(s)}async function gn(e,t,n=`P-256`){let r=await hn(e,t,n),i=await U().subtle.digest(`SHA-256`,W(r));return new Uint8Array(i)}let _n=e=>{if(!Number.isSafeInteger(e))throw RangeError("`amount` 必须是安全整数。")};function q(e){let t=e instanceof Date?new Date(e.getTime()):new Date(e);if(!Number.isFinite(t.getTime()))throw TypeError(`该值不是有效日期。`);return t}function vn(e){return e instanceof Date||typeof e==`number`||typeof e==`string`?Number.isFinite(new Date(e).getTime()):!1}function yn(e){let t=q(e);return t.setHours(0,0,0,0),q(t)}function bn(e){let t=q(e);return t.setHours(23,59,59,999),q(t)}function xn(e,t){_n(t);let n=q(e);return n.setDate(n.getDate()+t),q(n)}function Sn(e,t){_n(t);let n=q(e),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);let i=new Date(n.getTime());i.setMonth(i.getMonth()+1,0);let a=i.getDate();return n.setDate(Math.min(r,a)),q(n)}function Cn(e,t){return _n(t),Sn(e,t*12)}function wn(e,t){let n=q(e),r=q(t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function Tn(e,t=Date.now()){return q(e).getTime()>q(t).getTime()}function En(e=Date.now()){return[yn(e),bn(e)]}function Dn(e,t,n){let r=q(e).getTime(),i=q(t).getTime(),a=q(n).getTime();if(i>a)throw RangeError("`start` 不能晚于 `end`。");return r>=i&&r<=a}function On(e,t={}){let n=(q(e).getTime()-q(t.now??Date.now()).getTime())/1e3,r=Math.abs(n),i,a;return r<60?(i=1,a=`second`):r<3600?(i=60,a=`minute`):r<86400?(i=3600,a=`hour`):r<604800?(i=86400,a=`day`):r<2629800?(i=604800,a=`week`):r<31557600?(i=2629800,a=`month`):(i=31557600,a=`year`),new Intl.RelativeTimeFormat(t.locale??`zh-CN`,{numeric:t.numeric??`auto`,style:t.style??`long`}).format(Math.round(n/i),a)}let kn=(e,t,n)=>{switch(n){case`day`:e.setDate(e.getDate()+t);break;case`month`:e.setMonth(e.getMonth()+t);break;case`year`:e.setFullYear(e.getFullYear()+t)}},J=(e,t,n)=>({text:e,value:()=>{let e=new Date;return kn(e,t,n),e.setHours(0,0,0,0),e}}),Y=(e,t,n,r)=>({text:e,value:()=>{let e=new Date,i=new Date;return kn(r?i:e,r?t:-t,n),e.setHours(0,0,0,0),i.setHours(23,59,59,999),[e,i]}});function An(e){if(e==null)return``;let t;if(t=typeof e==`string`?new Date(e).getTime():typeof e==`number`?e.toString().length<=10?e*1e3:e:e.getTime(),!Number.isFinite(t))return``;let n=Date.now(),r=n-t,i=Math.abs(r)/6e4,a=Math.abs(r)/36e5,o=Math.abs(r)/864e5,s=new Date(n),c=new Date(t),l=(s.getFullYear()-c.getFullYear())*12+s.getMonth()-c.getMonth(),u=r<0?`后`:`前`;return Math.abs(l)>=12?`${Math.floor(Math.abs(l)/12)}年${u}`:Math.abs(l)>=6?`半年${u}`:Math.abs(l)>=1?`${Math.abs(l)}月${u}`:o>=15?`半月${u}`:o>=7?`${Math.floor(o/7)}周${u}`:o>=1?`${Math.floor(o)}天${u}`:a>=1?`${Math.floor(a)}小时${u}`:i>=1?`${Math.floor(i)}分钟${u}`:`刚刚`}function jn(e=!1){let t=new Date,n=new Date;return kn(e?n:t,e?1:-1,`month`),t.setHours(0,0,0,0),n.setHours(23,59,59,999),[t,n]}function Mn(e){return e.getTime()>Date.now()}function Nn(){let e=new Date().getHours();return e<5?`夜深了,注意身体哦!`:e<9?`早上好!欢迎回来!`:e<12?`上午好!欢迎回来!`:e<14?`中午好!欢迎回来!`:e<18?`下午好!欢迎回来!`:e<24?`晚上好!欢迎回来!`:`您好!欢迎回来!`}function Pn(e=!1){return e?[Y(`后1天`,1,`day`,!0),Y(`后3天`,3,`day`,!0),Y(`后1周`,7,`day`,!0),Y(`后1月`,1,`month`,!0),Y(`后3月`,3,`month`,!0),Y(`后6月`,6,`month`,!0),Y(`后1年`,1,`year`,!0)]:[Y(`近1天`,1,`day`,!1),Y(`近3天`,3,`day`,!1),Y(`近1周`,7,`day`,!1),Y(`近1月`,1,`month`,!1),Y(`近3月`,3,`month`,!1),Y(`近6月`,6,`month`,!1),Y(`近1年`,1,`year`,!1)]}function Fn(e=!1){return e?[J(`今天`,0,`day`),J(`明天`,1,`day`),J(`一周后`,7,`day`),J(`一月后`,1,`month`),J(`一年后`,1,`year`)]:[J(`今天`,0,`day`),J(`昨天`,-1,`day`),J(`一周前`,-7,`day`),J(`一月前`,-1,`month`),J(`一年前`,-1,`year`)]}function In(){return yn(new Date)}let Ln=e=>Array.isArray(e),Rn=e=>{if(e.length===0||!Number.isFinite(Number(e)))return!1;let t=e.startsWith(`+`)||e.startsWith(`-`)?e.slice(1):e;return!/^0[box]/iu.test(t)},zn=e=>e.startsWith(`--`)?e:(e.startsWith(`ms`)?`-${e}`:e).replace(/([A-Z])/gu,`-$1`).toLowerCase();function Bn(e,t=`px`){if(e==null||e===``)return``;if(t.length===0)throw RangeError("`unit` 不能为空。");if(typeof e==`number`){if(!Number.isFinite(e))throw RangeError("`value` 必须是有限数。");return e===0?`0`:`${e}${t}`}let n=e.trim();return Rn(n)?Number(n)===0?`0`:`${n}${t}`:e}function Vn(e){if(e==null||e===``)return``;if(Ln(e))return e.map(e=>Vn(e)).filter(e=>e.length>0).join(` `);if(typeof e==`string`){let t=e.trim();return t.length===0?``:t.endsWith(`;`)?t:`${t};`}return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>{if(typeof t==`number`&&!Number.isFinite(t))throw RangeError(`样式属性“${e}”必须是有限数。`);return`${zn(e)}:${String(t)};`}).join(` `)}let Hn=()=>{let e=N.navigator?.userAgent;return typeof e==`string`?e:``},Un=()=>{let e=N.navigator?.maxTouchPoints;return typeof e==`number`?e:0};function Wn(){return N.window?.document!==void 0}function Gn(){return!Wn()&&typeof N.importScripts==`function`}function Kn(){let e=N.process;if(typeof e!=`object`&&typeof e!=`function`||e===null)return!1;let t=e.versions;return typeof t!=`object`&&typeof t!=`function`||t===null?!1:typeof t.node==`string`}function qn(){return N.uni!==void 0}function Jn(){let e=N.crypto,t=e?.subtle;return typeof e?.getRandomValues==`function`&&typeof t?.decrypt==`function`&&typeof t.deriveBits==`function`&&typeof t.deriveKey==`function`&&typeof t.digest==`function`&&typeof t.encrypt==`function`&&typeof t.exportKey==`function`&&typeof t.generateKey==`function`&&typeof t.importKey==`function`&&typeof t.sign==`function`&&typeof t.verify==`function`}function Yn(){return Wn()?`browser`:Gn()?`worker`:Kn()?`node`:`unknown`}function Xn(e=Hn()){return/Mobile|iPhone|Android.*Mobile|Windows Phone/iu.test(e)}function Zn(e=Hn(),t=Un()){return/iPad|Android(?!.*Mobile)|Tablet/iu.test(e)||/Macintosh/iu.test(e)&&t>1}function Qn(e){if(typeof e!=`function`)throw TypeError("`callback` 必须是函数。");let t={status:`pending`};return function(...n){switch(t.status){case`returned`:return t.value;case`threw`:throw t.error;case`pending`:try{let r=e.apply(this,n);return t={status:`returned`,value:r},r}catch(e){throw t={error:e,status:`threw`},e}}}}let $n=()=>{let e=N.uni;if(e===void 0)return;if(typeof e!=`object`&&typeof e!=`function`||e===null)throw TypeError(`全局 uni 对象未提供同步 Storage API。`);let t=e;if(typeof t.getStorageSync!=`function`||typeof t.getStorageInfoSync!=`function`||typeof t.removeStorageSync!=`function`||typeof t.setStorageSync!=`function`)throw TypeError(`全局 uni 对象未提供同步 Storage API。`);return t},er={decode:e=>JSON.parse(e),encode:e=>{let t=JSON.stringify(e);if(typeof t!=`string`)throw TypeError(`存储值无法序列化为 JSON。`);return t}},tr={decode:e=>JSON.parse(Pe(e)),encode:e=>{let t=JSON.stringify(e);if(typeof t!=`string`)throw TypeError(`存储值无法序列化为 JSON。`);return Ne(t)}},X,nr=e=>typeof e==`object`&&!!e&&!Array.isArray(e),rr=e=>{if(typeof e!=`string`||e.length===0)throw TypeError(`Storage 键必须是非空字符串。`)},ir=e=>{let t=e===`local`?N.localStorage:N.sessionStorage;if(t===void 0)throw Error(`当前运行环境不支持 ${e}Storage。`);return{getItem:e=>t.getItem(e),keys:()=>{let e=[];for(let n=0;n<t.length;n+=1){let r=t.key(n);r!==null&&e.push(r)}return e},removeItem:e=>{t.removeItem(e)},setItem:(e,n)=>{t.setItem(e,n)}}},ar=e=>({getItem:t=>{let n=e.getStorageSync(t);return n===``?e.getStorageInfoSync().keys.includes(t)?n:void 0:n},keys:()=>[...e.getStorageInfoSync().keys],removeItem:t=>{e.removeStorageSync(t)},setItem:(t,n)=>{e.setStorageSync(t,n)}}),or=(e,t)=>{if(typeof e!=`string`)throw TypeError(`Storage 条目“${t}”不是字符串。`);try{let t=JSON.parse(e);if(!nr(t)||t.version!==3||typeof t.data!=`string`||!(t.expiresAt===null||typeof t.expiresAt==`number`&&Number.isFinite(t.expiresAt)))throw TypeError(`不支持该存储包络。`);return{data:t.data,expiresAt:t.expiresAt,version:3}}catch(e){throw TypeError(`Storage 条目“${t}”已损坏或不受支持。`,{cause:e})}},sr=(e,t,n,r)=>{let i=e=>`${t}${e}`,a=e=>{if(e===void 0)return n;if(typeof e!=`boolean`)throw TypeError("Storage 单次 `crypto` 选项必须是布尔值。");return e?tr:er},o=e=>{let n=e.keys();if(!Array.isArray(n)||!n.every(e=>typeof e==`string`))throw TypeError(`Storage 后端返回的键必须是字符串。`);return[...new Set(n.filter(e=>e.startsWith(t)).map(e=>e.slice(t.length)))].sort()},s=(e,t)=>{rr(t);let n=i(t),a=e.getItem(n);if(a==null)return;let o=or(a,n);if(o.expiresAt===null)return o;let s=r();if(!Number.isFinite(s))throw RangeError(`Storage 时钟必须返回有限时间戳。`);if(s<o.expiresAt)return o;e.removeItem(n)};return{prefix:t,clear(){let t=e();for(let e of o(t))t.removeItem(i(e))},get(t,n={}){let r=s(e(),t);if(r!==void 0)try{return a(n.crypto).decode(r.data)}catch(e){throw TypeError(`无法解码 Storage 条目“${i(t)}”。`,{cause:e})}},has:t=>s(e(),t)!==void 0,keys:()=>o(e()),pruneExpired(){let t=e(),n=0;for(let e of o(t))t.getItem(i(e))!=null&&s(t,e)===void 0&&(n+=1);return n},remove(t){rr(t),e().removeItem(i(t))},removeByPrefix(t){rr(t);let n=e();for(let e of o(n))e.startsWith(t)&&n.removeItem(i(e))},set(t,n,o={}){if(rr(t),n===void 0)throw TypeError("不能存储顶层 `undefined`,请改为移除对应的键。");let s=null;if(o.ttlMs!==void 0){if(!Number.isFinite(o.ttlMs)||o.ttlMs<=0)throw RangeError("`ttlMs` 必须是大于 0 的有限数。");let e=r();if(!Number.isFinite(e)||!Number.isFinite(e+o.ttlMs))throw RangeError(`Storage 过期时间超出支持的时间戳范围。`);s=e+o.ttlMs}let c;try{if(c=a(o.crypto).encode(n),typeof c!=`string`)throw TypeError(`Storage Codec 必须返回字符串。`)}catch(e){throw TypeError(`无法编码存储值。`,{cause:e})}e().setItem(i(t),JSON.stringify({data:c,expiresAt:s,version:3}))}}},cr=()=>{if(X===void 0&&fr(),X===void 0)throw Error(`无法初始化 Storage 配置。`);return X},lr=(e,t)=>{let n=()=>{let n=e(cr());if(n===void 0)throw Error(`uni-app 中不支持 ${t}。`);return n};return{get prefix(){return n().prefix},clear:()=>{n().clear()},get:(e,t)=>n().get(e,t),has:e=>n().has(e),keys:()=>n().keys(),pruneExpired:()=>n().pruneExpired(),remove:e=>{n().remove(e)},removeByPrefix:e=>{n().removeByPrefix(e)},set:(e,t,r)=>{n().set(e,t,r)}}},ur=lr(e=>e.local,`Local`),dr=lr(e=>e.session,`Session`);function fr(e={}){let t=e.prefix??`fast__`;if(typeof t!=`string`||t.length===0)throw TypeError(`Storage 前缀必须是非空字符串。`);if(e.codec!==void 0&&e.crypto===!0)throw TypeError(`Storage 的 Codec 和加密选项不能同时使用。`);let n=e.codec??(e.crypto===!0?tr:er),r=e.now??Date.now;if(X!==void 0){if(X.prefix===t&&X.codec===n&&X.now===r)return;throw Error(`Storage 已使用其他选项完成配置。`)}let i=$n(),a={codec:n,local:sr(i===void 0?()=>ir(`local`):()=>ar(i),t,n,r),now:r,prefix:t};i===void 0&&(a.session=sr(()=>ir(`session`),t,n,r)),X=a}function pr(){return X!==void 0}let mr=`en-US`,hr=1e6,gr=4294967296,_r=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu,vr=e=>{let t=N.crypto;if(typeof t?.getRandomValues==`function`){t.getRandomValues(e);return}let n=e.BYTES_PER_ELEMENT===Uint8Array.BYTES_PER_ELEMENT?256:gr;for(let t=0;t<e.length;t+=1)e[t]=Math.floor(Math.random()*n)},yr=e=>{e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`},br=(e,t)=>{let n=N.Intl?.Segmenter;if(typeof n!=`function`)throw Error(`当前运行环境不支持 Intl.Segmenter。`);let r=new n(t??mr,{granularity:`grapheme`});return Array.from(r.segment(e),({segment:e})=>e)};function xr(e,t=10){if(!Number.isSafeInteger(t)||t<0)throw RangeError("`maxDepth` 必须是非负安全整数。");let n=e;for(let e=0;e<t;e+=1){let e=decodeURIComponent(n);if(e===n)break;n=e}return n}function Sr(e){let t=e.indexOf(`#`),n=t<0?e:e.slice(0,t),r=/^[a-z][a-z\d+.-]*:\/\//iu.test(n),i=n.indexOf(`?`);if(r&&i<0)return{};let a=r?n.slice(i+1):n.replace(/^\?/u,``),o={};for(let[e,t]of new URLSearchParams(a)){let n=Object.hasOwn(o,e)?o[e]:void 0;n===void 0?Object.defineProperty(o,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):Array.isArray(n)?n.push(t):Object.defineProperty(o,e,{configurable:!0,enumerable:!0,value:[n,t],writable:!0})}return o}function Cr(e){if(e.trim().length===0)return!1;try{return JSON.parse(e),!0}catch{return!1}}function wr(e){return e.trim().replace(/(\p{Ll}|\p{N})(\p{Lu})/gu,`$1 $2`).replace(/(\p{Lu})(\p{Lu}\p{Ll})/gu,`$1 $2`).split(/[\s_-]+/u).filter(e=>e.length>0)}function Tr(e,t){let n=Array.from(e),r=n.shift();return r===void 0?``:r.toLocaleUpperCase(t??mr)+n.join(``)}function Er(e,t){let n=Array.from(e),r=n.shift();return r===void 0?``:r.toLocaleLowerCase(t??mr)+n.join(``)}function Dr(e,t){return wr(e).map((e,n)=>{let r=e.toLocaleLowerCase(t??mr);return n===0?r:Tr(r,t)}).join(``)}function Or(e,t){return Tr(Dr(e,t),t)}function kr(e,t){return wr(e).map(e=>e.toLocaleLowerCase(t??mr)).join(`-`)}function Ar(e,t,n=`…`,r){if(!Number.isSafeInteger(t)||t<0)throw RangeError("`maxLength` 必须是非负安全整数。");let i=br(e,r);return i.length>t?i.slice(0,t).join(``)+n:e}async function jr(e){let t=N.uni;if(t!==void 0){if(typeof t!=`object`&&typeof t!=`function`||t===null)throw TypeError("全局 uni 对象未提供 `setClipboardData`。");let n=t,r=n.setClipboardData?.bind(n);if(r===void 0)throw TypeError("全局 uni 对象未提供 `setClipboardData`。");await new Promise((t,n)=>{r({data:e,fail:e=>{n(e instanceof Error?e:Error(`文本复制到剪贴板失败。`,{cause:e}))},success:t})});return}let n=N.navigator?.clipboard;if(N.isSecureContext===!0&&typeof n?.writeText==`function`){await n.writeText(e);return}let r=N.document;if(typeof r?.createElement!=`function`||r.body==null||typeof r.execCommand!=`function`)throw Error(`当前运行环境不支持访问剪贴板。`);let i=r.createElement(`textarea`);i.value=e,i.style.left=`-999999px`,i.style.opacity=`0`,i.style.position=`fixed`,i.style.top=`-999999px`,r.body.appendChild(i);let a;try{i.focus(),i.select(),a=r.execCommand(`copy`)}finally{i.remove()}if(!a)throw Error(`文本复制到剪贴板失败。`)}function Mr(e,t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`){if(!Number.isSafeInteger(e)||e<0||e>hr)throw RangeError(`\`length\` 必须是 0 到 ${hr} 之间的安全整数。`);let n=Array.from(t);if(n.length===0)throw RangeError("`alphabet` 不能为空。");if(new Set(n).size!==n.length)throw RangeError("`alphabet` 不能包含重复字符。");if(n.length>4294967296)throw RangeError("`alphabet` 不能包含超过 2^32 个字符。");if(e===0)return``;let r=Math.floor(gr/n.length)*n.length,i=[];for(;i.length<e;){let t=e-i.length,a=new Uint32Array(Math.min(t,16384));vr(a);for(let t of a){if(t>=r)continue;let a=n[t%n.length];if(a!==void 0&&(i.push(a),i.length===e))break}}return i.join(``)}function Nr(){let e=N.crypto;if(typeof e?.randomUUID==`function`)return e.randomUUID();let t=new Uint8Array(16);return vr(t),yr(t)}function Pr(e){return _r.test(e)}function Fr(e){return e.replace(/[&<>"']/gu,e=>{switch(e){case`&`:return`&`;case`<`:return`<`;case`>`:return`>`;case`"`:return`"`;default:return`'`}})}function Ir(e){return e.trim().replace(/\s+/gu,` `)}let Lr=`identity:installation-id`,Rr=e=>{if(!Pr(e))throw TypeError(`安装标识值必须是符合 RFC 4122 的 UUID v4。`)},zr,Br=()=>(zr??=Lr,zr);function Vr(e={}){let t=e.cacheKey??Lr;if(typeof t!=`string`||t.length===0||t.trim()!==t)throw TypeError("安装标识的 `cacheKey` 必须是无外围空白的非空字符串。");if(zr===void 0){zr=t;return}if(zr!==t)throw Error("安装标识已使用其他 `cacheKey` 完成配置。")}let Z={get cacheKey(){return Br()},deviceId:``,clear(){ur.remove(Z.cacheKey),Z.deviceId=``},getOrCreate(e){let t=e??(Z.deviceId.length>0?Z.deviceId:Z.read())??Nr();return Rr(t),ur.set(Z.cacheKey,t),Z.deviceId=t,t},read(){let e=ur.get(Z.cacheKey);if(e!==void 0){if(typeof e!=`string`)throw TypeError(`存储的安装标识已损坏。`);return Rr(e),e}}};function Hr(e){return Z.getOrCreate(e)}let Ur={debug:10,log:20,warn:30,error:40},Wr=e=>typeof e==`string`&&Object.hasOwn(Ur,e),Gr=()=>N.uni!==void 0&&N.plus!==void 0,Kr=e=>{if(typeof e==`string`)return e;if(typeof e==`bigint`)return`${e.toString()}n`;if(e instanceof Error)return e.stack??`${e.name}: ${e.message}`;let t=new WeakSet;try{let n=JSON.stringify(e,(e,n)=>typeof n==`bigint`?`${n.toString()}n`:typeof n!=`object`||!n?n:t.has(n)?`[Circular]`:(t.add(n),n),2);return typeof n==`string`?n:String(e)}catch{return String(e)}},qr={debug:(...e)=>{typeof console.debug==`function`?console.debug(...e):console.log(...e)},log:(...e)=>{console.log(...e)},warn:(...e)=>{console.warn(...e)},error:(...e)=>{console.error(...e)}};function Jr(e={}){let t=e.level??`debug`,n=e.prefix??`Fast`,r=e.sink??qr;if(!Wr(t))throw RangeError(`未知的日志级别:${String(t)}。`);if(typeof n!=`string`||n.length===0)throw RangeError(`日志前缀必须是非空字符串。`);let i=e.uniAppPlusSplit??!1,a=(e,a,o)=>{if(typeof a!=`string`)throw TypeError(`日志作用域必须是字符串。`);if(a.length===0||a.trim()!==a)throw RangeError(`日志作用域必须是无外围空白的非空字符串。`);if(Ur[e]<Ur[t])return;let s=`[${n}:${a}]`,c=e;if(i&&Gr()){let[e,...t]=o;if(typeof e==`string`){r[c](`${s} ${e}`);for(let e of t)r[c](Kr(e))}else{r[c](s);for(let e of o)r[c](Kr(e))}return}r[c](s,...o)};return{debug:(e,...t)=>{a(`debug`,e,t)},log:(e,...t)=>{a(`log`,e,t)},warn:(e,...t)=>{a(`warn`,e,t)},error:(e,...t)=>{a(`error`,e,t)}}}let Yr=Jr();function Xr(e={}){Yr=Jr(e)}let Zr={debug:(e,...t)=>{Yr.debug(e,...t)},log:(e,...t)=>{Yr.log(e,...t)},warn:(e,...t)=>{Yr.warn(e,...t)},error:(e,...t)=>{Yr.error(e,...t)}},Qr=e=>Array.isArray(e),Q=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0})},$r=new Set([`[object BigInt64Array]`,`[object BigUint64Array]`,`[object Float32Array]`,`[object Float64Array]`,`[object Int8Array]`,`[object Int16Array]`,`[object Int32Array]`,`[object Uint8Array]`,`[object Uint8ClampedArray]`,`[object Uint16Array]`,`[object Uint32Array]`]),$=(e,t)=>{let n=Reflect.get(e,`constructor`);return typeof n==`function`?Reflect.construct(n,t):{}},ei=e=>{let t=$(e,[e.byteLength]);return new Uint8Array(t).set(new Uint8Array(e)),t},ti=(e,t,n)=>{if(typeof e!=`object`&&typeof e!=`function`||e===null)return e;let r=e,i=t.get(r);if(i!==void 0)return i;if(typeof r==`function`&&!n)return r;if(Array.isArray(r)){let e=$(r,[r.length]);t.set(r,e);for(let n=0;n<r.length;n+=1)Q(e,n,ti(r[n],t,!1));return e}let a=Object.prototype.toString.call(r),o;if(typeof r==`function`)o={};else switch(a){case`[object Arguments]`:o={};break;case`[object ArrayBuffer]`:case`[object SharedArrayBuffer]`:o=ei(r);break;case`[object Boolean]`:o=$(r,[r.valueOf()]);break;case`[object DataView]`:{let e=r;o=$(r,[ei(e.buffer),e.byteOffset,e.byteLength]);break}case`[object Date]`:o=$(r,[r.getTime()]);break;case`[object Map]`:case`[object Set]`:o=$(r,[]);break;case`[object Number]`:o=$(r,[r.valueOf()]);break;case`[object Object]`:{let e=Object.getPrototypeOf(r);o=Object.create(e);break}case`[object RegExp]`:{let e=r,t=new RegExp(e.source,e.flags);t.lastIndex=e.lastIndex,o=t;break}case`[object String]`:o=$(r,[r.valueOf()]);break;case`[object Symbol]`:o=Object(r.valueOf());break;default:{if(!$r.has(a))return n?{}:r;let e=r;o=$(r,[ei(e.buffer),e.byteOffset,e.length])}}if(t.set(r,o),a===`[object Map]`)for(let[e,n]of r)o.set(e,ti(n,t,!1));else if(a===`[object Set]`)for(let e of r)o.add(ti(e,t,!1));for(let e of Reflect.ownKeys(r)){if(!Object.prototype.propertyIsEnumerable.call(r,e))continue;let n=ti(Reflect.get(r,e),t,!1);e===`__proto__`?Q(o,e,n):Reflect.set(o,e,n)}return o},ni=(e,t)=>e===t||typeof e==`number`&&typeof t==`number`&&Number.isNaN(e)&&Number.isNaN(t),ri=e=>Reflect.ownKeys(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t)),ii=(e,t,n,r)=>{let i=n.leftObjects.get(e),a=n.rightObjects.get(t);if(i!==void 0||a!==void 0)return i===t&&a===e;n.leftObjects.set(e,t),n.rightObjects.set(t,e);try{return r()}finally{n.leftObjects.delete(e),n.rightObjects.delete(t)}},ai=(e,t)=>{if(e.byteLength!==t.byteLength)return!1;let n=new Uint8Array(e),r=new Uint8Array(t);for(let e=0;e<n.length;e+=1)if(n[e]!==r[e])return!1;return!0},oi=(e,t,n)=>e.length===t.length&&ii(e,t,n,()=>{for(let r=0;r<e.length;r+=1)if(!li(e[r],t[r],n))return!1;return!0}),si=(e,t,n)=>{if(e.length!==t.length)return!1;let r=new Set;for(let i of e){let e=-1;for(let a=0;a<t.length;a+=1)if(!r.has(a)&&li(i,t[a],n)){e=a;break}if(e<0)return!1;r.add(e)}return!0},ci=(e,t,n)=>{let r=ri(e),i=ri(t);if(r.length!==i.length)return!1;for(let e of r)if(!Object.hasOwn(t,e))return!1;return ii(e,t,n,()=>{let i=!0;for(let a of r){if(!li(Reflect.get(e,a),Reflect.get(t,a),n))return!1;a===`constructor`&&(i=!1)}if(!i)return!0;let a=Reflect.get(e,`constructor`),o=Reflect.get(t,`constructor`);return a===o||!(`constructor`in e&&`constructor`in t)||typeof a==`function`&&typeof o==`function`&&a instanceof a&&o instanceof o})};function li(e,t,n){if(ni(e,t))return!0;if(e==null||t==null)return!1;let r=Object.prototype.toString.call(e),i=Object.prototype.toString.call(t),a=r===`[object Arguments]`?`[object Object]`:r;if(a!==(i===`[object Arguments]`?`[object Object]`:i))return!1;switch(a){case`[object Boolean]`:case`[object Date]`:case`[object Number]`:return ni(Number(e),Number(t));case`[object Error]`:return e.name===t.name&&e.message===t.message;case`[object RegExp]`:return RegExp.prototype.toString.call(e)===RegExp.prototype.toString.call(t);case`[object String]`:return String.prototype.valueOf.call(e)===String.prototype.valueOf.call(t);case`[object Symbol]`:return Symbol.prototype.valueOf.call(e)===Symbol.prototype.valueOf.call(t)}if(typeof e!=`object`||typeof t!=`object`)return!1;if(Array.isArray(e)&&Array.isArray(t))return oi(e,t,n);if(a===`[object ArrayBuffer]`||a===`[object SharedArrayBuffer]`)return ai(e,t);if(a===`[object DataView]`){let n=e,r=t;return n.byteLength===r.byteLength&&n.byteOffset===r.byteOffset&&ai(n.buffer,r.buffer)}return $r.has(a)?oi(e,t,n):a===`[object Map]`||a===`[object Set]`?ii(e,t,n,()=>si([...e],[...t],n)):a===`[object Object]`&&ci(e,t,n)}function ui(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function di(e,t){return Object.hasOwn(e,t)}function fi(e){return ti(e,new WeakMap,!0)}function pi(e,t){return li(e,t,{leftObjects:new WeakMap,rightObjects:new WeakMap})}function mi(e,t){let n={};for(let r of t)Object.prototype.propertyIsEnumerable.call(e,r)&&Q(n,r,Reflect.get(e,r));return n}function hi(e,t){let n={...e};for(let e of t)Reflect.deleteProperty(n,e);return n}function gi(e,t){let n={};for(let r of ri(e))t(e[r],r,e)||Q(n,r,e[r]);return n}function _i(e,t){let n={};for(let r of ri(e))t(e[r],r,e)&&Q(n,r,e[r]);return n}function vi(e,t){let n={};for(let r of Reflect.ownKeys(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Q(n,r,t(e[r],r,e));return n}function yi(e,t){if(Object.is(e,t))return!0;let n=Reflect.ownKeys(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t)),r=Reflect.ownKeys(t).filter(e=>Object.prototype.propertyIsEnumerable.call(t,e));return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&Object.is(Reflect.get(e,n),Reflect.get(t,n)))}let bi=e=>{if(typeof e==`number`&&!Number.isFinite(e))throw RangeError(`查询参数中的数字必须是有限数。`);return String(e)};function xi(e,t={}){let n=Object.entries(e);t.sort&&n.sort(([e],[t])=>e<t?-1:+(e>t));let r=new URLSearchParams;for(let[e,t]of n){let n=Qr(t)?t:[t];for(let t of n)t!=null&&r.append(e,bi(t))}let i=r.toString();return t.space===`percent`&&(i=i.replace(/\+/gu,`%20`)),i&&t.prefixQuestionMark?`?${i}`:i}function Si(e,n,r,i){let a=r,o=(0,t.watch)(()=>(0,t.toValue)(e),(e,t,r)=>{e!=null&&(e.addEventListener(n,a,i),r(()=>{e.removeEventListener(n,a,i)}))},{flush:`sync`,immediate:!0});return(0,t.onScopeDispose)(o,!0),o}function Ci(e){let n=Object.entries(e);n.sort((e,t)=>e[1]-t[1]);for(let[e,t]of n){if(e===`active`)throw TypeError(`断点名称不能使用保留名称“active”。`);if(!Number.isFinite(t)||t<0)throw RangeError(`断点“${e}”必须是非负有限数值。`)}let r=Object.create(null),i=N.window;if(i!==void 0&&(0,t.getCurrentScope)()===void 0)throw Error("`useBreakpoints` 必须在 Vue 响应式作用域内调用。");for(let[e,a]of n){let n=(0,t.shallowRef)(!1);if(i!==void 0&&typeof i.matchMedia==`function`){let e=i.matchMedia(`(min-width: ${a}px)`),t=()=>{n.value=e.matches};t(),Si(e,`change`,t)}r[e]=(0,t.readonly)(n)}let a=(0,t.computed)(()=>{let e=``;for(let[t]of n)r[t].value&&(e=t);return e});return Object.assign(r,{active:()=>a})}function wi(e,n,r){let i=(0,t.watch)(()=>(0,t.toValue)(e),(e,t,i)=>{let a=N.ResizeObserver;if(e==null||a===void 0)return;let o=new a(n);o.observe(e,r),i(()=>{o.disconnect()})},{flush:`sync`,immediate:!0});return(0,t.onScopeDispose)(i,!0),i}function Ti(e,n={height:0,width:0},r){let i=(0,t.shallowRef)(n.width),a=(0,t.shallowRef)(n.height),o=wi(e,e=>{let t=e[0];t!==void 0&&(i.value=t.contentRect.width,a.value=t.contentRect.height)},r);return{height:(0,t.readonly)(a),stop:o,width:(0,t.readonly)(i)}}let Ei=e=>`on${e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}`;function Di(e,n,r=[]){let i=new Set(r),a=n;return(0,t.computed)(()=>{let t={},n=new Set;for(let r of Object.keys(e)){if(i.has(r))continue;if(r.length===0||/\s/u.test(r))throw TypeError(`无效的 Vue 事件名称:“${r}”。`);let e=Ei(r);if(n.has(e))throw TypeError(`多个 Vue 事件映射到同一处理器属性:“${e}”。`);n.add(e),Object.defineProperty(t,e,{enumerable:!0,value:(...e)=>{a(r,...e)},writable:!0})}return t})}function Oi(e,t){return e(t),t}async function ki(e,...t){if(e!=null)return Promise.resolve(e(...t))}let Ai=e=>{if(typeof e!=`object`||!e)throw TypeError(`安装 Vue 插件需要 Vue 3 App 实例。`);let t=e;if(typeof t.component!=`function`||typeof t.directive!=`function`)throw TypeError("安装 Vue 插件需要 `component()` 和 `directive()` 注册方法。");return t},ji=e=>{let t=e.name;if(typeof t!=`string`||t.length===0||/\s/u.test(t))throw TypeError(`可安装的 Vue 组件必须公开不含空白的非空名称。`);return t},Mi=(e,t)=>{let n=ji(t),r=e.component(n);if(r!==void 0&&r!==t)throw Error(`Vue 组件名称“${n}”已被其他组件注册。`);return{component:t,name:n,registered:r===t}};function Ni(e,t){let n=new Set([ji(e)]);if(`install`in Object(e))throw TypeError("Vue 组件已定义 `install` 属性。");let r=Object.entries(t??{});if(t!==void 0&&Object.getOwnPropertySymbols(t).some(e=>Object.prototype.propertyIsEnumerable.call(t,e)))throw TypeError(`Vue 组件附属项必须使用字符串属性名。`);for(let[t,i]of r){let r=ji(i);if(n.has(r))throw TypeError(`Vue 组件名称“${r}”被重复注册。`);if(n.add(r),t===`install`||t in Object(e))throw TypeError(`Vue 组件附属项“${t}”会覆盖主组件上的属性。`)}let i=e;for(let[e,t]of r)Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0});return i.install=t=>{let n=Ai(t),i=[e,...r.map(([,e])=>e)].map(e=>Mi(n,e));for(let e of i)e.registered||n.component(e.name,e.component)},i}function Pi(e){if(`install`in Object(e))throw TypeError("Vue 组件已定义 `install` 属性。");let t=e;return t.install=()=>void 0,t}function Fi(e,t){if(t.length===0||/\s/u.test(t)||t.startsWith(`v-`))throw TypeError("可安装的 Vue 指令名称不能包含空白或 `v-` 前缀。");if(`install`in Object(e))throw TypeError("Vue 指令已定义 `install` 属性。");let n=e;return n.install=n=>{let r=Ai(n),i=r.directive(t);if(i!==void 0&&i!==e)throw Error(`Vue 指令名称“${t}”已被其他指令注册。`);i!==e&&r.directive(t,e)},n}function Ii(e=1e3){if(!Number.isInteger(e)||e<0||e>2147483647)throw RangeError("`intervalMilliseconds` 必须是 0 至 2,147,483,647 的整数。");let n=(0,t.shallowRef)(new Date);if(N.window!==void 0||N.uni!==void 0){if((0,t.getCurrentScope)()===void 0)throw Error("`useNow` 必须在 Vue 响应式作用域内调用。");let r=setInterval(()=>{n.value=new Date},e);(0,t.onScopeDispose)(()=>{clearInterval(r)})}return(0,t.readonly)(n)}function Li(e){return e}function Ri(e,n,r=[]){let i=new Set(r);return(0,t.computed)(()=>{let t={};for(let r of Reflect.ownKeys(n))!i.has(r)&&Object.hasOwn(e,r)&&Object.defineProperty(t,r,{configurable:!0,enumerable:!0,value:Reflect.get(e,r),writable:!0});return t})}function zi(e){let n=(0,t.getCurrentInstance)();if(n===null)throw Error("`useRender` 必须在 `setup` 函数内部调用。");n.render=e}function Bi(){return Object}function Vi(){let e=(0,t.shallowRef)(0),n=(0,t.shallowRef)(0),r=N.window;if(r!==void 0){if((0,t.getCurrentScope)()===void 0)throw Error("`useWindowSize` 必须在 Vue 响应式作用域内调用。");let i=()=>{e.value=r.innerWidth,n.value=r.innerHeight};i(),Si(r,`resize`,i,{passive:!0})}return{height:(0,t.readonly)(n),width:(0,t.readonly)(e)}}function Hi(e){return e}return e.AESDecrypt=en,e.AESDecryptAuthenticated=nn,e.AESDecryptWithPassword=an,e.AESEncrypt=$t,e.AESEncryptAuthenticated=tn,e.AESEncryptWithPassword=rn,e.DeriveECDHKeySHA256=gn,e.DeriveECDHSecret=hn,e.ECDSASign=fn,e.ECDSAVerify=pn,e.FixedTimeEquals=Lt,e.GenerateECDHKeyPair=mn,e.GenerateECDSAKeyPair=dn,e.GenerateRSAKeyPair=on,e.GenerateRandomBytes=It,e.HKDFSHA256=Qt,e.HMACSHA256Encrypt=Kt,e.HMACSHA384Encrypt=qt,e.HMACSHA512Encrypt=Jt,e.HashPasswordPBKDF2SHA256=Xt,e.Local=ur,e.MD5Encrypt=Rt,e.PBKDF2SHA256=Yt,e.RSADecryptOAEP=cn,e.RSAEncryptOAEP=sn,e.RSASignPSS=ln,e.RSAVerifyPSS=un,e.SHA1Encrypt=zt,e.SHA256Bytes=Bt,e.SHA256Encrypt=Vt,e.SHA384Bytes=Ht,e.SHA384Encrypt=Ut,e.SHA512Bytes=Wt,e.SHA512Encrypt=Gt,e.Session=dr,e.VerifyPasswordPBKDF2SHA256=Zt,e.addCssUnit=Bn,e.addDays=xn,e.addMonths=Sn,e.addYears=Cn,e.allEqualBy=x,e.average=pe,e.base64StorageCodec=tr,e.callOptionalFunction=ki,e.camelCase=Dr,e.chunk=d,e.clamp=le,e.cloneDeep=fi,e.configureInstallationIdentity=Vr,e.configureLogger=Xr,e.configureStorage=fr,e.contrastRatio=Ke,e.copy=jr,e.createDateRangeShortcuts=Pn,e.createDateShortcuts=Fn,e.createLogger=Jr,e.createOneMonthRangeFromToday=jn,e.debounce=A,e.decodeBase64=Ce,e.decodeBase64Bytes=R,e.decodeBase64Url=Te,e.decodeBase64UrlBytes=B,e.decodeLatin1Base64=De,e.decodeSecureBase64=Pe,e.decodeURIComponentRepeatedly=xr,e.definePropType=Li,e.detectRuntime=Yn,e.difference=_,e.encodeBase64=Se,e.encodeBase64Bytes=L,e.encodeBase64Url=we,e.encodeBase64UrlBytes=z,e.encodeLatin1Base64=Ee,e.encodeSecureBase64=Ne,e.endOfDay=bn,e.escapeHtml=Fr,e.formatBytes=he,e.formatChineseRelativeTime=An,e.formatHexColor=Be,e.formatRelativeTime=On,e.generateUuidV4=Nr,e.getLocalDayBounds=En,e.getLocalTimeGreeting=Nn,e.getOrCreateInstallationId=Hr,e.getStartOfToday=In,e.groupBy=h,e.hasDuplicatesBy=b,e.hasOwn=di,e.hasWebCrypto=Jn,e.inRange=ue,e.installationIdentity=Z,e.intersection=v,e.isBrowser=Wn,e.isDateAfterNow=Mn,e.isEqual=pi,e.isFuture=Tn,e.isMobileUserAgent=Xn,e.isNode=Kn,e.isPlainObject=ui,e.isSameDay=wn,e.isStorageConfigured=pr,e.isTabletUserAgent=Zn,e.isUniApp=qn,e.isUuidV4=Pr,e.isValidDate=vn,e.isValidJson=Cr,e.isWebWorker=Gn,e.isWithinInterval=Dn,e.kebabCase=kr,e.lerp=me,e.logger=Zr,e.lowerFirst=Er,e.makeSlots=Bi,e.mapConcurrent=k,e.mapValues=vi,e.mixHexColorWithBlack=He,e.mixHexColorWithWhite=Ue,e.mixHexColors=Ve,e.normalizeWhitespace=Ir,e.omit=hi,e.omitBy=gi,e.once=Qn,e.parseHexColor=ze,e.parseQueryString=Sr,e.partition=g,e.pascalCase=Or,e.pick=mi,e.pickBy=_i,e.pickHigherContrastColor=qe,e.randomInt=ge,e.randomString=Mr,e.relativeLuminance=Ge,e.removeNullishValues=f,e.retry=O,e.roundTo=de,e.serializeStyle=Vn,e.shallowEqual=yi,e.sleep=E,e.splitWords=wr,e.startOfDay=yn,e.sum=fe,e.symmetricDifference=y,e.throttle=ee,e.toDate=q,e.toQueryString=xi,e.truncateGraphemes=Ar,e.unique=p,e.uniqueBy=m,e.upperFirst=Tr,e.useBreakpoints=Ci,e.useElementSize=Ti,e.useEmits=Di,e.useEventListener=Si,e.useExpose=Oi,e.useNow=Ii,e.useProps=Ri,e.useRender=zi,e.useResizeObserver=wi,e.useWindowSize=Vi,e.withDefineType=Hi,e.withInstall=Ni,e.withInstallDirective=Fi,e.withNoopInstall=Pi,e.withTimeout=D,e})({},Vue);
|
|
3
3
|
//# sourceMappingURL=index.global.min.js.map
|