@nickyzj2023/utils 1.0.45 → 1.0.47
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/.github/workflows/docs.yml +39 -0
- package/dist/index.js +1 -1
- package/dist/network.d.ts +12 -1
- package/dist/string.d.ts +32 -5
- package/docs/assets/highlight.css +99 -92
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/functions/camelToSnake.html +178 -178
- package/docs/functions/capitalize.html +178 -178
- package/docs/functions/compactStr.html +182 -182
- package/docs/functions/debounce.html +187 -187
- package/docs/functions/decapitalize.html +178 -178
- package/docs/functions/fetcher.html +189 -188
- package/docs/functions/getRealURL.html +175 -175
- package/docs/functions/imageUrlToBase64.html +187 -184
- package/docs/functions/isFalsy.html +178 -178
- package/docs/functions/isNil.html +178 -178
- package/docs/functions/isObject.html +178 -178
- package/docs/functions/isPrimitive.html +178 -178
- package/docs/functions/isTruthy.html +178 -178
- package/docs/functions/loopUntil.html +180 -180
- package/docs/functions/mapKeys.html +180 -180
- package/docs/functions/mapValues.html +182 -182
- package/docs/functions/mergeObjects.html +184 -184
- package/docs/functions/randomInt.html +178 -178
- package/docs/functions/sleep.html +179 -179
- package/docs/functions/snakeToCamel.html +178 -178
- package/docs/functions/throttle.html +187 -187
- package/docs/functions/timeLog.html +178 -178
- package/docs/functions/to.html +180 -180
- package/docs/functions/withCache.html +185 -185
- package/docs/modules.html +174 -174
- package/docs/types/CamelToSnake.html +174 -174
- package/docs/types/Capitalize.html +174 -174
- package/docs/types/Decapitalize.html +174 -174
- package/docs/types/DeepMapKeys.html +174 -174
- package/docs/types/DeepMapValues.html +174 -174
- package/docs/types/Falsy.html +174 -174
- package/docs/types/ImageCompressionOptions.html +184 -0
- package/docs/types/Primitive.html +174 -174
- package/docs/types/RequestInit.html +174 -174
- package/docs/types/SetTtl.html +174 -174
- package/docs/types/SnakeToCamel.html +174 -174
- package/package.json +11 -14
- package/src/network.ts +158 -144
- package/src/string.ts +110 -27
- package/dist/tsdoc-metadata.json +0 -11
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: Generate Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, master]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main, master]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
docs:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout code
|
|
15
|
+
uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Setup Bun
|
|
18
|
+
uses: oven-sh/setup-bun@v2
|
|
19
|
+
with:
|
|
20
|
+
bun-version: latest
|
|
21
|
+
|
|
22
|
+
- name: Install dependencies
|
|
23
|
+
run: bun install
|
|
24
|
+
|
|
25
|
+
- name: Generate docs
|
|
26
|
+
run: bun run docs
|
|
27
|
+
|
|
28
|
+
- name: Commit and push docs
|
|
29
|
+
if: github.event_name == 'push'
|
|
30
|
+
run: |
|
|
31
|
+
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
|
32
|
+
git config --local user.name "github-actions[bot]"
|
|
33
|
+
git add docs/
|
|
34
|
+
if git diff --staged --quiet; then
|
|
35
|
+
echo "No changes to commit"
|
|
36
|
+
else
|
|
37
|
+
git commit -m "docs: auto-generate documentation"
|
|
38
|
+
git push
|
|
39
|
+
fi
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var A=(...I)=>{console.log(`${new Date().toLocaleTimeString()}`,...I)};var B=async(I,$)=>{let{maxRetries:M=5,shouldStop:W=()=>!0}=$??{};for(let z=0;z<M;z++){let H=await I(z);if(W(H))return H}throw Error(`\u8D85\u8FC7\u4E86\u6700\u5927\u5FAA\u73AF\u6B21\u6570\uFF08${M}\uFF09\u4E14\u672A\u6EE1\u8DB3\u505C\u6B62\u6267\u884C\u6761\u4EF6`)};var O=(I,$=-1)=>{let M=new Map,W=(...z)=>{let H=JSON.stringify(z),D=Date.now(),J=M.get(H);if(J&&D<J.expiresAt)return J.value;let G=$===-1?1/0:D+$*1000,Q={setTtl:(X)=>{G=D+X*1000}},_=I.apply(Q,z);if(_ instanceof Promise){let X=_.then((C)=>{return M.set(H,{value:C,expiresAt:G}),C});return M.set(H,{value:X,expiresAt:G}),X}return M.set(H,{value:_,expiresAt:G}),_};return W.clear=()=>M.clear(),W.updateTtl=(z)=>{$=z;let H=Date.now(),D=H+z*1000;for(let[J,G]of M.entries())if(G.expiresAt>H)G.expiresAt=D,M.set(J,G)},W};var Z=(I)=>{return I?.constructor===Object},P=(I)=>{return I===null||I===void 0||typeof I!=="object"&&typeof I!=="function"},V=(I)=>{return!I},N=(I)=>{return!!I},q=(I)=>{return I===null||I===void 0};var E=(I,$)=>{let M={...I};for(let W of Object.keys($)){let z=M[W],H=$[W];if(P(z)&&P(H)){M[W]=H;continue}if(Array.isArray(z)&&Array.isArray(H)){M[W]=z.concat(H);continue}if(Z(z)&&Z(H)){M[W]=E(z,H);continue}M[W]=H}return M},F=(I,$)=>{if(Array.isArray(I))return I.map((M)=>F(M,$));if(Z(I))return Object.keys(I).reduce((W,z)=>{let H=$(z),D=I[z];return W[H]=F(D,$),W},{});return I},T=(I,$,M)=>{let{filter:W}=M??{};if(Array.isArray(I)){let z=I.map((H,D)=>{if(Z(H))return T(H,$,M);return $(H,D)});if(W)return z.filter((H,D)=>W(H,D));return z}if(Z(I))return Object.keys(I).reduce((H,D)=>{let J=I[D],G;if(Z(J)||Array.isArray(J))G=T(J,$,M);else G=$(J,D);if(!W||W(G,D))H[D]=G;return H},{});return I};var d=(I="",$={})=>{let M=async(W,z={})=>{let H=new URL(I?`${I}${W}`:W),{params:D,parser:J,...G}=E($,z);if(Z(D))Object.entries(D).forEach(([X,C])=>{if(q(C))return;H.searchParams.append(X,C.toString())});if(Z(G.body))G.body=JSON.stringify(G.body),G.headers={...G.headers,"Content-Type":"application/json"};let Q=await fetch(H,G);if(!Q.ok){if(Q.headers.get("Content-Type")?.startsWith("application/json"))throw await Q.json();throw Error(Q.statusText)}return await(J?.(Q)??Q.json())};return{get:(W,z)=>M(W,{...z,method:"GET"}),post:(W,z,H)=>M(W,{...H,method:"POST",body:z}),put:(W,z,H)=>M(W,{...H,method:"PUT",body:z}),delete:(W,z)=>M(W,{...z,method:"DELETE"})}},K=async(I)=>{try{return[null,await I]}catch($){return[$,void 0]}},j=async(I)=>{let[$,M]=await K(fetch(I,{method:"HEAD",redirect:"manual"}));if($)return I;return M.headers.get("location")||I};var v=(I,$)=>{return Math.floor(Math.random()*($-I+1))+I};var b=(I)=>{return I.replace(/_([a-zA-Z])/g,($,M)=>M.toUpperCase())},y=(I)=>{return I.replace(/([A-Z])/g,($,M)=>`_${M.toLowerCase()}`)},p=(I)=>{return I.charAt(0).toUpperCase()+I.slice(1)},n=(I)=>{return I.charAt(0).toLowerCase()+I.slice(1)},Y=(I)=>{let $=new Uint8Array(I),M="";for(let W=0;W<$.byteLength;W++)M+=String.fromCharCode($[W]);return btoa(M)},u=async(I,$={})=>{let{quality:M=0.92,compressor:W}=$;if(!I.startsWith("http"))throw Error("\u56FE\u7247\u5730\u5740\u5FC5\u987B\u4EE5http\u6216https\u5F00\u5934");let z=await fetch(I);if(!z.ok)throw Error(`\u83B7\u53D6\u56FE\u7247\u5931\u8D25: ${z.statusText}`);let H=z.headers.get("Content-Type")||"image/jpeg",D=await z.arrayBuffer();if(H!=="image/jpeg"&&H!=="image/png"){let G=Y(D);return`data:${H};base64,${G}`}if(W)return await W(D,H,M);if(typeof OffscreenCanvas<"u"){let G=null;try{let Q=new Blob([D],{type:H});G=await createImageBitmap(Q);let _=new OffscreenCanvas(G.width,G.height),X=_.getContext("2d");if(!X)throw Error("\u65E0\u6CD5\u83B7\u53D6 canvas context");X.drawImage(G,0,0),G.close(),G=null;let x=await(await _.convertToBlob({type:H,quality:M})).arrayBuffer(),S=Y(x);return`data:${H};base64,${S}`}catch{G?.close();let Q=Y(D);return`data:${H};base64,${Q}`}}let J=Y(D);return`data:${H};base64,${J}`},o=(I="",$)=>{if(!I)return"";let{maxLength:M=1/0,disableNewLineReplace:W=!1,disableWhitespaceCollapse:z=!1,omission:H="..."}=$??{},D=I;if(!W)D=D.replace(/\r?\n/g,"\\n");else D=D.replace(/\r?\n/g," ");if(!z)D=D.replace(/\s+/g," ");if(D=D.trim(),M>0&&D.length>M)return D.slice(0,M)+H;return D};var i=async(I=150)=>{return new Promise(($)=>{setTimeout($,I)})},r=(I,$=300)=>{let M=null;return(...W)=>{if(M)clearTimeout(M);M=setTimeout(()=>{I(...W)},$)}},a=(I,$=300)=>{let M=null;return function(...W){if(!M)M=setTimeout(()=>{M=null,I.apply(this,W)},$)}};export{O as withCache,K as to,A as timeLog,a as throttle,b as snakeToCamel,i as sleep,v as randomInt,E as mergeObjects,T as mapValues,F as mapKeys,B as loopUntil,N as isTruthy,P as isPrimitive,Z as isObject,q as isNil,V as isFalsy,u as imageUrlToBase64,j as getRealURL,d as fetcher,n as decapitalize,r as debounce,o as compactStr,p as capitalize,y as camelToSnake};
|
package/dist/network.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
type BunFetchOptions = {
|
|
2
|
+
/** 代理服务器配置(仅 Bun 支持) */
|
|
3
|
+
proxy?: string;
|
|
4
|
+
};
|
|
5
|
+
export type RequestInit = globalThis.RequestInit & BunFetchOptions & {
|
|
2
6
|
params?: Record<string, any>;
|
|
3
7
|
parser?: (response: Response) => Promise<any>;
|
|
4
8
|
};
|
|
@@ -14,6 +18,7 @@ export type RequestInit = BunFetchRequestInit & {
|
|
|
14
18
|
* - 在 body 里传递对象,自动 JSON.stringify
|
|
15
19
|
* - 可选择使用 to() 转换请求结果为 [Error, Response]
|
|
16
20
|
* - 可选择使用 withCache() 缓存请求结果
|
|
21
|
+
* - 支持 proxy 选项(仅在 Bun 环境有效)
|
|
17
22
|
*
|
|
18
23
|
* @example
|
|
19
24
|
*
|
|
@@ -24,6 +29,11 @@ export type RequestInit = BunFetchRequestInit & {
|
|
|
24
29
|
* const api = fetcher("https://nickyzj.run:3030", { headers: { Authorization: "Bearer token" } });
|
|
25
30
|
* const res = await api.get<Blog>("/blogs/hello-world", { headers: {...}, params: { page: 1 } }); // 与实例相同的 headers 会覆盖上去,params 会转成 ?page=1 跟到 url 后面
|
|
26
31
|
*
|
|
32
|
+
* // 用法3:使用代理(仅 Bun 环境)
|
|
33
|
+
* const api = fetcher("https://api.example.com", {
|
|
34
|
+
* proxy: "http://127.0.0.1:7890"
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
27
37
|
* // 安全处理请求结果
|
|
28
38
|
* const [error, data] = await to(api.get<Blog>("/blogs/hello-world"));
|
|
29
39
|
* if (error) {
|
|
@@ -55,3 +65,4 @@ export declare const fetcher: (baseURL?: string, baseOptions?: RequestInit) => {
|
|
|
55
65
|
export declare const to: <T, E = Error>(promise: Promise<T>) => Promise<[null, T] | [E, undefined]>;
|
|
56
66
|
/** 从 url 响应头获取真实链接 */
|
|
57
67
|
export declare const getRealURL: (originURL: string) => Promise<string>;
|
|
68
|
+
export {};
|
package/dist/string.d.ts
CHANGED
|
@@ -30,22 +30,49 @@ export type Decapitalize<S extends string> = S extends `${infer P1}${infer Rest}
|
|
|
30
30
|
* decapitalize("Hello") // "hello"
|
|
31
31
|
*/
|
|
32
32
|
export declare const decapitalize: <S extends string>(s: S) => Decapitalize<S>;
|
|
33
|
+
/**
|
|
34
|
+
* 图片压缩选项
|
|
35
|
+
*/
|
|
36
|
+
export type ImageCompressionOptions = {
|
|
37
|
+
/** 压缩比率,默认 0.92 */
|
|
38
|
+
quality?: number;
|
|
39
|
+
/**
|
|
40
|
+
* 自定义压缩函数,用于非浏览器环境(Node.js/Bun)
|
|
41
|
+
* 如果提供,将使用此函数替代默认的 canvas 压缩
|
|
42
|
+
* @param arrayBuffer 图片的 ArrayBuffer 数据
|
|
43
|
+
* @param mime 图片的 MIME 类型
|
|
44
|
+
* @param quality 压缩质量
|
|
45
|
+
* @returns 压缩后的 base64 字符串
|
|
46
|
+
*/
|
|
47
|
+
compressor?: (arrayBuffer: ArrayBuffer, mime: string, quality: number) => Promise<string> | string;
|
|
48
|
+
};
|
|
33
49
|
/**
|
|
34
50
|
* 图片地址转 base64 数据
|
|
35
51
|
*
|
|
36
52
|
* @param imageUrl 图片地址
|
|
37
53
|
* @param options 可选配置
|
|
38
54
|
* @param options.quality 压缩比率,默认 0.92
|
|
55
|
+
* @param options.compressor 自定义压缩函数,用于 Node.js/Bun 环境
|
|
39
56
|
*
|
|
40
57
|
* @example
|
|
41
|
-
*
|
|
58
|
+
* // 基本用法(浏览器自动使用 Canvas 压缩)
|
|
59
|
+
* imageUrlToBase64("https://example.com/image.jpg");
|
|
42
60
|
*
|
|
43
61
|
* @example
|
|
44
|
-
*
|
|
62
|
+
* // Node.js/Bun 使用 sharp 压缩
|
|
63
|
+
* import sharp from "sharp";
|
|
64
|
+
*
|
|
65
|
+
* imageUrlToBase64("https://example.com/image.jpg", {
|
|
66
|
+
* quality: 0.8,
|
|
67
|
+
* compressor: async (buffer, mime, quality) => {
|
|
68
|
+
* const compressed = await sharp(Buffer.from(buffer))
|
|
69
|
+
* .jpeg({ quality: Math.round(quality * 100) })
|
|
70
|
+
* .toBuffer();
|
|
71
|
+
* return `data:${mime};base64,${compressed.toString("base64")}`;
|
|
72
|
+
* }
|
|
73
|
+
* });
|
|
45
74
|
*/
|
|
46
|
-
export declare const imageUrlToBase64: (imageUrl: string,
|
|
47
|
-
quality?: number;
|
|
48
|
-
}) => Promise<string>;
|
|
75
|
+
export declare const imageUrlToBase64: (imageUrl: string, options?: ImageCompressionOptions) => Promise<string>;
|
|
49
76
|
/**
|
|
50
77
|
* 将字符串压缩为单行精简格式
|
|
51
78
|
*
|
|
@@ -1,92 +1,99 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
--light-hl-0: #008000;
|
|
3
|
-
--dark-hl-0: #6A9955;
|
|
4
|
-
--light-hl-1: #795E26;
|
|
5
|
-
--dark-hl-1: #DCDCAA;
|
|
6
|
-
--light-hl-2: #000000;
|
|
7
|
-
--dark-hl-2: #D4D4D4;
|
|
8
|
-
--light-hl-3: #A31515;
|
|
9
|
-
--dark-hl-3: #CE9178;
|
|
10
|
-
--light-hl-4: #AF00DB;
|
|
11
|
-
--dark-hl-4: #C586C0;
|
|
12
|
-
--light-hl-5: #001080;
|
|
13
|
-
--dark-hl-5: #9CDCFE;
|
|
14
|
-
--light-hl-6: #0000FF;
|
|
15
|
-
--dark-hl-6: #569CD6;
|
|
16
|
-
--light-hl-7: #0070C1;
|
|
17
|
-
--dark-hl-7: #4FC1FF;
|
|
18
|
-
--light-hl-8: #267F99;
|
|
19
|
-
--dark-hl-8: #4EC9B0;
|
|
20
|
-
--light-hl-9: #098658;
|
|
21
|
-
--dark-hl-9: #B5CEA8;
|
|
22
|
-
--light-
|
|
23
|
-
--dark-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
--hl-
|
|
30
|
-
--hl-
|
|
31
|
-
--hl-
|
|
32
|
-
--hl-
|
|
33
|
-
--hl-
|
|
34
|
-
--hl-
|
|
35
|
-
--hl-
|
|
36
|
-
--hl-
|
|
37
|
-
--
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
--hl-
|
|
45
|
-
--hl-
|
|
46
|
-
--hl-
|
|
47
|
-
--hl-
|
|
48
|
-
--hl-
|
|
49
|
-
--hl-
|
|
50
|
-
--hl-
|
|
51
|
-
--
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
:
|
|
55
|
-
--
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
--hl-
|
|
60
|
-
--hl-
|
|
61
|
-
--hl-
|
|
62
|
-
--hl-
|
|
63
|
-
--hl-
|
|
64
|
-
--hl-
|
|
65
|
-
--
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
:
|
|
69
|
-
--hl-
|
|
70
|
-
--
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
--hl-
|
|
75
|
-
--hl-
|
|
76
|
-
--hl-
|
|
77
|
-
--hl-
|
|
78
|
-
--hl-
|
|
79
|
-
--
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
.hl-
|
|
89
|
-
.hl-
|
|
90
|
-
.hl-
|
|
91
|
-
.hl-
|
|
92
|
-
|
|
1
|
+
:root {
|
|
2
|
+
--light-hl-0: #008000;
|
|
3
|
+
--dark-hl-0: #6A9955;
|
|
4
|
+
--light-hl-1: #795E26;
|
|
5
|
+
--dark-hl-1: #DCDCAA;
|
|
6
|
+
--light-hl-2: #000000;
|
|
7
|
+
--dark-hl-2: #D4D4D4;
|
|
8
|
+
--light-hl-3: #A31515;
|
|
9
|
+
--dark-hl-3: #CE9178;
|
|
10
|
+
--light-hl-4: #AF00DB;
|
|
11
|
+
--dark-hl-4: #C586C0;
|
|
12
|
+
--light-hl-5: #001080;
|
|
13
|
+
--dark-hl-5: #9CDCFE;
|
|
14
|
+
--light-hl-6: #0000FF;
|
|
15
|
+
--dark-hl-6: #569CD6;
|
|
16
|
+
--light-hl-7: #0070C1;
|
|
17
|
+
--dark-hl-7: #4FC1FF;
|
|
18
|
+
--light-hl-8: #267F99;
|
|
19
|
+
--dark-hl-8: #4EC9B0;
|
|
20
|
+
--light-hl-9: #098658;
|
|
21
|
+
--dark-hl-9: #B5CEA8;
|
|
22
|
+
--light-hl-10: #000000FF;
|
|
23
|
+
--dark-hl-10: #D4D4D4;
|
|
24
|
+
--light-code-background: #FFFFFF;
|
|
25
|
+
--dark-code-background: #1E1E1E;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@media (prefers-color-scheme: light) { :root {
|
|
29
|
+
--hl-0: var(--light-hl-0);
|
|
30
|
+
--hl-1: var(--light-hl-1);
|
|
31
|
+
--hl-2: var(--light-hl-2);
|
|
32
|
+
--hl-3: var(--light-hl-3);
|
|
33
|
+
--hl-4: var(--light-hl-4);
|
|
34
|
+
--hl-5: var(--light-hl-5);
|
|
35
|
+
--hl-6: var(--light-hl-6);
|
|
36
|
+
--hl-7: var(--light-hl-7);
|
|
37
|
+
--hl-8: var(--light-hl-8);
|
|
38
|
+
--hl-9: var(--light-hl-9);
|
|
39
|
+
--hl-10: var(--light-hl-10);
|
|
40
|
+
--code-background: var(--light-code-background);
|
|
41
|
+
} }
|
|
42
|
+
|
|
43
|
+
@media (prefers-color-scheme: dark) { :root {
|
|
44
|
+
--hl-0: var(--dark-hl-0);
|
|
45
|
+
--hl-1: var(--dark-hl-1);
|
|
46
|
+
--hl-2: var(--dark-hl-2);
|
|
47
|
+
--hl-3: var(--dark-hl-3);
|
|
48
|
+
--hl-4: var(--dark-hl-4);
|
|
49
|
+
--hl-5: var(--dark-hl-5);
|
|
50
|
+
--hl-6: var(--dark-hl-6);
|
|
51
|
+
--hl-7: var(--dark-hl-7);
|
|
52
|
+
--hl-8: var(--dark-hl-8);
|
|
53
|
+
--hl-9: var(--dark-hl-9);
|
|
54
|
+
--hl-10: var(--dark-hl-10);
|
|
55
|
+
--code-background: var(--dark-code-background);
|
|
56
|
+
} }
|
|
57
|
+
|
|
58
|
+
:root[data-theme='light'] {
|
|
59
|
+
--hl-0: var(--light-hl-0);
|
|
60
|
+
--hl-1: var(--light-hl-1);
|
|
61
|
+
--hl-2: var(--light-hl-2);
|
|
62
|
+
--hl-3: var(--light-hl-3);
|
|
63
|
+
--hl-4: var(--light-hl-4);
|
|
64
|
+
--hl-5: var(--light-hl-5);
|
|
65
|
+
--hl-6: var(--light-hl-6);
|
|
66
|
+
--hl-7: var(--light-hl-7);
|
|
67
|
+
--hl-8: var(--light-hl-8);
|
|
68
|
+
--hl-9: var(--light-hl-9);
|
|
69
|
+
--hl-10: var(--light-hl-10);
|
|
70
|
+
--code-background: var(--light-code-background);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
:root[data-theme='dark'] {
|
|
74
|
+
--hl-0: var(--dark-hl-0);
|
|
75
|
+
--hl-1: var(--dark-hl-1);
|
|
76
|
+
--hl-2: var(--dark-hl-2);
|
|
77
|
+
--hl-3: var(--dark-hl-3);
|
|
78
|
+
--hl-4: var(--dark-hl-4);
|
|
79
|
+
--hl-5: var(--dark-hl-5);
|
|
80
|
+
--hl-6: var(--dark-hl-6);
|
|
81
|
+
--hl-7: var(--dark-hl-7);
|
|
82
|
+
--hl-8: var(--dark-hl-8);
|
|
83
|
+
--hl-9: var(--dark-hl-9);
|
|
84
|
+
--hl-10: var(--dark-hl-10);
|
|
85
|
+
--code-background: var(--dark-code-background);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.hl-0 { color: var(--hl-0); }
|
|
89
|
+
.hl-1 { color: var(--hl-1); }
|
|
90
|
+
.hl-2 { color: var(--hl-2); }
|
|
91
|
+
.hl-3 { color: var(--hl-3); }
|
|
92
|
+
.hl-4 { color: var(--hl-4); }
|
|
93
|
+
.hl-5 { color: var(--hl-5); }
|
|
94
|
+
.hl-6 { color: var(--hl-6); }
|
|
95
|
+
.hl-7 { color: var(--hl-7); }
|
|
96
|
+
.hl-8 { color: var(--hl-8); }
|
|
97
|
+
.hl-9 { color: var(--hl-9); }
|
|
98
|
+
.hl-10 { color: var(--hl-10); }
|
|
99
|
+
pre, code { background: var(--code-background); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.navigationData = "
|
|
1
|
+
window.navigationData = "eJyNlF1v2jAUQP+Ln9HaoX5oPJZqEiqDCkJfpj245pZ49Vfjm21s2n+fICU4zo2915yco9jx9dc/DOEXsgmbcg2qsGvDX4GNmONYsgnDvQN/EbIPJWrFRuxVmi2bjC8/3X68Hv8dBR0nkSv5m6icSK5xD2KwErJ8B9wX7h5g7/uZFv1n5YmrGoY6DcyVPnPl93Hh+DBnzjTfwdRqV4H30pqlQ2lN72sGXsvVHyupJcofvc1uQa6wgrcaPM6MxLgRoFxlDVigigPN06x7OJyFPR7VXiFguY4g5+ClNuK4lRdicBZurjqZ/gEOI/QR7iasdlzgGisy0dJEYgvPtjaC/IYTS+rpZWwHZ7GTeQEUJZCreEcJeQe4Aq42qznln2kiIQ9TsalUYe+4h5srKhS/k8r5aI6DiiemOZIXUtHqQqqkuHz+DgJpt2FJnRjysDAw6lGkqGosB5besISurHUbg/T6W5gI6PguP+uaustjOb7COzp1hXcDUO2g2Wi6EfBEpuJma/XMkH+yhYmAVwCOko8gJZJXZOAPXpOdDJaVRVTkOTqxlC41zO2OtBuUki3p2YTyU2I55aIkv7eFvcC3f/16Em8="
|
package/docs/assets/search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.searchData = "
|
|
1
|
+
window.searchData = "eJydmdtu4zYQQP+FfRUSc+j7Y1MUCLrdLZLsvghGochMzEa3lehs0yD/vqAkW0NxnI7zlECjOaKoM6Q0fhV1+aMR6/hVPJliK9YwWS3kDCJRJLkWa3GV5Dq7K2+L5EmLSOzrTKyFfal0c4lDFzubZyISaZY0jW7EWoi36DSzMjbJzH8h8RA4i/ebTk8RcehMpq7+TKo/9EsTII+RjxC/Jdlen2B2sbOovydZ8zKitcfOolznyaO+KvOq1k1jyuJLZU1ZjEd54qx3ryQnMD1eJu1zy/oM8i9eFrpIJKqk1oV9Z/wnxvF9n2TGjqft3UEMKR8dwXjO/6pNbqx5Hit7PH7WE7zR3/e6sdeFsSMeipxFvNX2zmYjWHfwPI5bH+7KdrUY01DoXeYcOUQtSA/7Im3n+zLlLkoeMlg9MJC1fsx9y5PU3tqawh2DXNxW35f7IqXGdgjxUe/e6pa7WCLkg7bpTlN32ke4oEdtb3SSfb35RLCGIBdnXD1+rbO78tek0fMpAR2fwkY3/qKLiM3/L70e6LPJSMxnw64H03y5/0enluR0IT4qXJMwjbcyecC7em939FR1IS4qK8vqa2HJ+TrGuLB8tLEPqJyxsfug0X7uoRj7OYbp+lF3T4zkoTAXWSfFtsyvC8qOY4wLazKtKwLUHmdDqN0AsT6wI9hdXVqbUc4eQmyUyfWn8pEidRE2qKQYJTf9h7G7qyTdUfd0jFGwTSRMsdX/ivWreNa1exMRawEX6mIlIvFgdLZ1b/vddSK3VeW6tWNbpvv2301/2jed2rJ2J3dnX05EFE8iWFyAVJtNFB+S20B74MAYjrSJUkSxpBJlkCi9RBBRDFQiBIngJSoRxSpScKFAeokqSFRe4lRE8ZRKnAaJUy9xJqJ4RiXOgsSZlzgXUTynEudB4txLXIgoXlCJiyBx4SUuRRQvqcRlkLj0ElciildU4ipIXPkCOB/khEqVoTxyZE+rjySTCYF8g6TzQpIOyVAi6Vsk1SnjZeiR9EWS05PShypJ3yXpDJGkvzLUSfo+SWeJJB2WoVLSd0ouTlWcDK2SvlbSySLJGpChWdJXSzphJFkHMrRL+npBqxdZCxDqBb5e0OpF1gOEesFogWr1ImsCiDXK1wucMUBWBYR+ge8XOGWArAoIBQNfMHDKAJDJoWDgCwZOGSDthFAw8AWDVjDSTggNA98wcM4AaRiEhoFvGDhngDQMQsPAN0w5Z4A0TIWGKd8w5ZwB0jAVGqZ8w9TpBUyFhqnRNtgaRuqpiJ3QN0w5ZxSppwoNU75hyjmjSD1VaJjyDVPOGUXqqULD+kPti8+zrq3eXncvQHHc9Qps2XS9glfxd/9uNDm8aL2KiVi/vkVCKvf3bXgjao8eX4pcrB0H+nwecHLAyR435eG6ZkDjOgUIpxBvxgYdWmQDaDFwFizM0GpAo5mi0cyZGHqeYCBBP0/ccekqT6qn9ptt4KF54j2+nvPcf7INJHSPvCf30HUABsJsIPAe2bFxgqYaQeSSRXnUttZJ5r4RMGiOQCsWqG2GpEP/sjx0gAcqgvI8aJn7OrPlfd+DQUNEcsKEh2uCWZdLRJFMSmH8yVohBjAZZd9zQXKjRQV4OpqmGvotiITWE+DpaBrbN1oQBpcbz0nXSNl3TRbEQWUGvAdP1CqgEgNe1ZOVCqhGgFcjbeOkPPRVEAoJDbwqIZ8X8odHOf6WMDCQx7yb6ro3pvAdREWleEVVd78OmPZ3A1QUyGbJIzXaWutXFt4YedXZ95jQLaGZUUyG2+5tmXYtJjQcVBCy34AUr+CHFhMaGXruilfwromUufYS2sPQRCtesbveEgKgSVa8MncdpLTrLiEOmh3FKPNNJCpT6cwUWqzjzdvbT3XIt20=";
|