@nickyzj2023/utils 1.0.43 → 1.0.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/AGENTS.md +131 -0
  2. package/biome.json +35 -34
  3. package/dist/index.js +1 -41
  4. package/dist/network.d.ts +2 -0
  5. package/docs/assets/navigation.js +1 -1
  6. package/docs/assets/search.js +1 -1
  7. package/docs/functions/camelToSnake.html +1 -1
  8. package/docs/functions/capitalize.html +1 -1
  9. package/docs/functions/compactStr.html +1 -1
  10. package/docs/functions/debounce.html +1 -1
  11. package/docs/functions/decapitalize.html +1 -1
  12. package/docs/functions/fetcher.html +1 -1
  13. package/docs/functions/getRealURL.html +175 -0
  14. package/docs/functions/imageUrlToBase64.html +1 -1
  15. package/docs/functions/isFalsy.html +1 -1
  16. package/docs/functions/isNil.html +1 -1
  17. package/docs/functions/isObject.html +1 -1
  18. package/docs/functions/isPrimitive.html +1 -1
  19. package/docs/functions/isTruthy.html +1 -1
  20. package/docs/functions/loopUntil.html +1 -1
  21. package/docs/functions/mapKeys.html +1 -1
  22. package/docs/functions/mapValues.html +1 -1
  23. package/docs/functions/mergeObjects.html +1 -1
  24. package/docs/functions/randomInt.html +1 -1
  25. package/docs/functions/sleep.html +1 -1
  26. package/docs/functions/snakeToCamel.html +1 -1
  27. package/docs/functions/throttle.html +1 -1
  28. package/docs/functions/timeLog.html +1 -1
  29. package/docs/functions/to.html +1 -1
  30. package/docs/functions/withCache.html +3 -3
  31. package/docs/modules.html +1 -1
  32. package/docs/types/CamelToSnake.html +1 -1
  33. package/docs/types/Capitalize.html +1 -1
  34. package/docs/types/Decapitalize.html +1 -1
  35. package/docs/types/DeepMapKeys.html +1 -1
  36. package/docs/types/DeepMapValues.html +1 -1
  37. package/docs/types/Falsy.html +1 -1
  38. package/docs/types/Primitive.html +1 -1
  39. package/docs/types/RequestInit.html +1 -1
  40. package/docs/types/SetTtl.html +1 -1
  41. package/docs/types/SnakeToCamel.html +1 -1
  42. package/package.json +25 -25
  43. package/src/network.ts +17 -0
package/AGENTS.md ADDED
@@ -0,0 +1,131 @@
1
+ # AGENTS.md
2
+
3
+ This file contains essential information for AI coding agents working on this project.
4
+
5
+ ## Project Overview
6
+
7
+ 这是一个前端工具库(Frontend Utility Library),提供常用的 TypeScript/JavaScript 工具函数,帮助开发者简化日常开发任务。项目使用 Bun 作为运行时和构建工具,发布到 npm 仓库 `@nickyzj2023/utils`。
8
+
9
+ ## Technology Stack
10
+
11
+ - **Runtime**: [Bun](https://bun.com) v1.3.2+ - 快速的 JavaScript 运行时和包管理器
12
+ - **Language**: TypeScript 5.9.3+
13
+ - **Build Tool**: Bun 内置打包器
14
+ - **Linting/Formatting**: Biome 2.3.14
15
+ - **Documentation**: TypeDoc 0.28.16 + Material Theme
16
+ - **Dependencies**:
17
+ - `sharp` (^0.34.5) - 图片处理库,用于 `imageUrlToBase64` 功能
18
+
19
+ ## Project Structure
20
+
21
+ ```
22
+ .
23
+ ├── src/ # 源代码目录
24
+ │ ├── index.ts # 入口文件,导出所有模块
25
+ │ ├── dom.ts # DOM 相关工具(timeLog)
26
+ │ ├── function.ts # 函数控制工具(loopUntil)
27
+ │ ├── hoc.ts # 高阶函数(withCache)
28
+ │ ├── is.ts # 类型判断工具(isObject, isPrimitive, isFalsy, isTruthy, isNil)
29
+ │ ├── lru-cache.ts # LRU 缓存实现
30
+ │ ├── network.ts # 网络请求工具(fetcher, to, getRealURL)
31
+ │ ├── number.ts # 数字工具(randomInt)
32
+ │ ├── object.ts # 对象操作工具(mergeObjects, mapKeys, mapValues)
33
+ │ ├── string.ts # 字符串工具(snakeToCamel, camelToSnake, capitalize, decapitalize, imageUrlToBase64, compactStr)
34
+ │ └── time.ts # 时间控制工具(sleep, debounce, throttle)
35
+ ├── dist/ # 构建输出目录(包含 .js 和 .d.ts 文件)
36
+ ├── docs/ # TypeDoc 生成的文档网站
37
+ ├── package.json # 包配置
38
+ ├── tsconfig.json # TypeScript 配置
39
+ ├── biome.json # Biome 代码规范配置
40
+ └── .gitignore # Git 忽略规则
41
+ ```
42
+
43
+ ## Build Commands
44
+
45
+ ```bash
46
+ # 完整构建(打包 + 类型声明 + 文档)
47
+ bun run build
48
+
49
+ # 仅生成文档
50
+ bun run docs
51
+ ```
52
+
53
+ 构建流程:
54
+ 1. `bun build --target=bun --outdir ./dist --minify ./src/index.ts` - 使用 Bun 打包并压缩
55
+ 2. `tsc` - 生成 TypeScript 类型声明文件(.d.ts)
56
+ 3. `typedoc src/index.ts --plugin typedoc-material-theme` - 生成 API 文档
57
+
58
+ ## Code Style Guidelines
59
+
60
+ 项目使用 **Biome** 进行代码格式化和静态检查,配置见 `biome.json`:
61
+
62
+ - **缩进**: Tab(非空格)
63
+ - **引号**: 双引号(double)
64
+ - **规则**:
65
+ - 启用推荐规则
66
+ - 允许未使用的变量和函数参数(`noUnusedVariables: off`, `noUnusedFunctionParameters: off`)
67
+ - 允许显式使用 `any` 类型(`noExplicitAny: off`)
68
+ - 允许非空断言(`noNonNullAssertion: off`)
69
+ - 不强制使用模板字符串(`useTemplate: off`)
70
+
71
+ ### 代码规范
72
+
73
+ 1. **注释语言**: 使用中文编写 JSDoc 注释
74
+ 2. **导出方式**: 所有工具函数使用命名导出(named exports)
75
+ 3. **类型定义**:
76
+ - 工具类型(如 `Primitive`, `Falsy`, `SnakeToCamel`)与实现放在同一文件
77
+ - 复杂类型使用 TypeScript 模板字面量类型进行转换
78
+ 4. **函数风格**:
79
+ - 优先使用箭头函数
80
+ - 泛型函数使用 `<T>` 语法
81
+ - 类型守卫函数返回 `value is Type`
82
+
83
+ ## Module Organization
84
+
85
+ 项目按功能领域划分模块:
86
+
87
+ | 模块 | 功能描述 | 主要导出 |
88
+ |------|---------|---------|
89
+ | `is` | 类型判断 | `isObject`, `isPrimitive`, `isFalsy`, `isTruthy`, `isNil`, `Primitive`, `Falsy` |
90
+ | `network` | 网络请求 | `fetcher`, `to`, `getRealURL`, `RequestInit` |
91
+ | `object` | 对象操作 | `mergeObjects`, `mapKeys`, `mapValues`, `DeepMapKeys`, `DeepMapValues` |
92
+ | `string` | 字符串处理 | `snakeToCamel`, `camelToSnake`, `capitalize`, `decapitalize`, `imageUrlToBase64`, `compactStr` |
93
+ | `time` | 时间控制 | `sleep`, `debounce`, `throttle` |
94
+ | `function` | 函数控制 | `loopUntil` |
95
+ | `hoc` | 高阶函数 | `withCache`, `SetTtl` |
96
+ | `lru-cache` | 缓存实现 | `LRUCache`(默认导出) |
97
+ | `dom` | DOM 工具 | `timeLog` |
98
+
99
+ ## Testing
100
+
101
+ **当前项目没有测试框架配置**。如需添加测试,建议使用:
102
+ - Bun 内置测试运行器(`bun:test`)
103
+
104
+ ## Publishing
105
+
106
+ 项目发布到 npm 仓库:
107
+ - 包名: `@nickyzj2023/utils`
108
+ - 版本: 见 `package.json` 中的 `version` 字段
109
+ - 入口: `dist/index.js`(ES Module)
110
+ - 类型: `dist/index.d.ts`
111
+
112
+ ## Security Considerations
113
+
114
+ 1. **敏感信息**: `.npmrc` 文件包含 npm 认证令牌,已在 `.gitignore` 中配置忽略
115
+ 2. **依赖安全**: `sharp` 是原生依赖,需要确保其安全性
116
+ 3. **网络请求**: `fetcher` 函数会解析 JSON 错误响应,注意潜在的安全风险
117
+
118
+ ## Development Workflow
119
+
120
+ 1. 修改源代码(`src/` 目录)
121
+ 2. 运行 `bun run build` 构建项目
122
+ 3. 检查生成的类型声明文件(`dist/*.d.ts`)
123
+ 4. 查看文档(`docs/` 目录或启动本地服务器查看)
124
+ 5. 提交更改
125
+
126
+ ## Important Notes
127
+
128
+ - 项目使用 ES Module(`"type": "module"`),不支持 CommonJS
129
+ - 构建目标为 Bun 运行时(`--target=bun`)
130
+ - `imageUrlToBase64` 功能依赖 `sharp` 库,需要 Node.js/Bun 原生环境支持
131
+ - `fetcher` 函数基于 Fetch API,在 Bun 环境下使用 `BunFetchRequestInit` 类型
package/biome.json CHANGED
@@ -1,36 +1,37 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.3.14/schema.json",
3
- "vcs": {
4
- "enabled": true,
5
- "clientKind": "git",
6
- "useIgnoreFile": true
7
- },
8
- "files": {
9
- "ignoreUnknown": false
10
- },
11
- "formatter": {
12
- "enabled": true,
13
- "indentStyle": "tab"
14
- },
15
- "linter": {
16
- "enabled": true,
17
- "rules": {
18
- "recommended": true,
19
- "correctness": {
20
- "noUnusedVariables": "off"
21
- },
22
- "suspicious": {
23
- "noExplicitAny": "off"
24
- },
25
- "style": {
26
- "noNonNullAssertion": "off",
27
- "useTemplate": "off"
28
- }
29
- }
30
- },
31
- "javascript": {
32
- "formatter": {
33
- "quoteStyle": "double"
34
- }
35
- }
2
+ "$schema": "https://biomejs.dev/schemas/2.3.14/schema.json",
3
+ "vcs": {
4
+ "enabled": true,
5
+ "clientKind": "git",
6
+ "useIgnoreFile": true
7
+ },
8
+ "files": {
9
+ "ignoreUnknown": false
10
+ },
11
+ "formatter": {
12
+ "enabled": true,
13
+ "indentStyle": "tab"
14
+ },
15
+ "linter": {
16
+ "enabled": true,
17
+ "rules": {
18
+ "recommended": true,
19
+ "correctness": {
20
+ "noUnusedVariables": "off",
21
+ "noUnusedFunctionParameters": "off"
22
+ },
23
+ "suspicious": {
24
+ "noExplicitAny": "off"
25
+ },
26
+ "style": {
27
+ "noNonNullAssertion": "off",
28
+ "useTemplate": "off"
29
+ }
30
+ }
31
+ },
32
+ "javascript": {
33
+ "formatter": {
34
+ "quoteStyle": "double"
35
+ }
36
+ }
36
37
  }
package/dist/index.js CHANGED
@@ -1,42 +1,2 @@
1
1
  // @bun
2
- var v6=Object.create;var{getPrototypeOf:d6,defineProperty:G4,getOwnPropertyNames:b6}=Object;var O6=Object.prototype.hasOwnProperty;var h6=($,J,W)=>{W=$!=null?v6(d6($)):{};let q=J||!$||!$.__esModule?G4(W,"default",{value:$,enumerable:!0}):W;for(let Z of b6($))if(!O6.call(q,Z))G4(q,Z,{get:()=>$[Z],enumerable:!0});return q};var A=($,J)=>()=>(J||$((J={exports:{}}).exports,J),J.exports);var j=import.meta.require;var b=A((AW,V4)=>{/*!
3
- Copyright 2013 Lovell Fuller and others.
4
- SPDX-License-Identifier: Apache-2.0
5
- */var E4=($)=>typeof $<"u"&&$!==null,g6=($)=>typeof $==="object",m6=($)=>Object.prototype.toString.call($)==="[object Object]",u6=($)=>typeof $==="function",c6=($)=>typeof $==="boolean",l6=($)=>$ instanceof Buffer,a6=($)=>{if(E4($))switch($.constructor){case Uint8Array:case Uint8ClampedArray:case Int8Array:case Uint16Array:case Int16Array:case Uint32Array:case Int32Array:case Float32Array:case Float64Array:return!0}return!1},r6=($)=>$ instanceof ArrayBuffer,e6=($)=>typeof $==="string"&&$.length>0,p6=($)=>typeof $==="number"&&!Number.isNaN($),n6=($)=>Number.isInteger($),s6=($,J,W)=>$>=J&&$<=W,t6=($,J)=>J.includes($),i6=($,J,W)=>Error(`Expected ${J} for ${$} but received ${W} of type ${typeof W}`),o6=($,J)=>{return J.message=$.message,J};V4.exports={defined:E4,object:g6,plainObject:m6,fn:u6,bool:c6,buffer:l6,typedArray:a6,arrayBuffer:r6,string:e6,number:p6,integer:n6,inRange:s6,inArray:t6,invalidParameterError:i6,nativeError:o6}});var R4=A((RW,A4)=>{var z4=()=>process.platform==="linux",R0=null,$2=()=>{if(!R0)if(z4()&&process.report){let $=process.report.excludeNetwork;process.report.excludeNetwork=!0,R0=process.report.getReport(),process.report.excludeNetwork=$}else R0={};return R0};A4.exports={isLinux:z4,getReport:$2}});var D4=A((LW,L4)=>{var q0=j("fs"),J2=($)=>{let J=q0.openSync($,"r"),W=Buffer.alloc(2048),q=q0.readSync(J,W,0,2048,0);return q0.close(J,()=>{}),W.subarray(0,q)},W2=($)=>new Promise((J,W)=>{q0.open($,"r",(q,Z)=>{if(q)W(q);else{let U=Buffer.alloc(2048);q0.read(Z,U,0,2048,0,(Y,H)=>{J(U.subarray(0,H)),q0.close(Z,()=>{})})}})});L4.exports={LDD_PATH:"/usr/bin/ldd",SELF_PATH:"/proc/self/exe",readFileSync:J2,readFile:W2}});var F4=A((DW,j4)=>{var q2=($)=>{if($.length<64)return null;if($.readUInt32BE(0)!==2135247942)return null;if($.readUInt8(4)!==2)return null;if($.readUInt8(5)!==1)return null;let J=$.readUInt32LE(32),W=$.readUInt16LE(54),q=$.readUInt16LE(56);for(let Z=0;Z<q;Z++){let U=J+Z*W;if($.readUInt32LE(U)===3){let H=$.readUInt32LE(U+8),G=$.readUInt32LE(U+32);return $.subarray(H,H+G).toString().replace(/\0.*$/g,"")}}return null};j4.exports={interpreterPath:q2}});var D0=A((jW,m4)=>{var C4=j("child_process"),{isLinux:Z0,getReport:w4}=R4(),{LDD_PATH:L0,SELF_PATH:S4,readFile:g0,readFileSync:m0}=D4(),{interpreterPath:M4}=F4(),O,h,g,p="",_4=()=>{if(!p)return new Promise(($)=>{C4.exec("getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",(J,W)=>{p=J?" ":W,$(p)})});return p},k4=()=>{if(!p)try{p=C4.execSync("getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",{encoding:"utf8"})}catch($){p=" "}return p},l="glibc",x4=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,i="musl",Z2=($)=>$.includes("libc.musl-")||$.includes("ld-musl-"),y4=()=>{let $=w4();if($.header&&$.header.glibcVersionRuntime)return l;if(Array.isArray($.sharedObjects)){if($.sharedObjects.some(Z2))return i}return null},f4=($)=>{let[J,W]=$.split(/[\r\n]+/);if(J&&J.includes(l))return l;if(W&&W.includes(i))return i;return null},v4=($)=>{if($){if($.includes("/ld-musl-"))return i;else if($.includes("/ld-linux-"))return l}return null},d4=($)=>{if($=$.toString(),$.includes("musl"))return i;if($.includes("GNU C Library"))return l;return null},Q2=async()=>{if(h!==void 0)return h;h=null;try{let $=await g0(L0);h=d4($)}catch($){}return h},U2=()=>{if(h!==void 0)return h;h=null;try{let $=m0(L0);h=d4($)}catch($){}return h},Y2=async()=>{if(O!==void 0)return O;O=null;try{let $=await g0(S4),J=M4($);O=v4(J)}catch($){}return O},K2=()=>{if(O!==void 0)return O;O=null;try{let $=m0(S4),J=M4($);O=v4(J)}catch($){}return O},b4=async()=>{let $=null;if(Z0()){if($=await Y2(),!$){if($=await Q2(),!$)$=y4();if(!$){let J=await _4();$=f4(J)}}}return $},O4=()=>{let $=null;if(Z0()){if($=K2(),!$){if($=U2(),!$)$=y4();if(!$){let J=k4();$=f4(J)}}}return $},H2=async()=>Z0()&&await b4()!==l,I2=()=>Z0()&&O4()!==l,G2=async()=>{if(g!==void 0)return g;g=null;try{let J=(await g0(L0)).match(x4);if(J)g=J[1]}catch($){}return g},X2=()=>{if(g!==void 0)return g;g=null;try{let J=m0(L0).match(x4);if(J)g=J[1]}catch($){}return g},h4=()=>{let $=w4();if($.header&&$.header.glibcVersionRuntime)return $.header.glibcVersionRuntime;return null},T4=($)=>$.trim().split(/\s+/)[1],g4=($)=>{let[J,W,q]=$.split(/[\r\n]+/);if(J&&J.includes(l))return T4(J);if(W&&q&&W.includes(i))return T4(q);return null},B2=async()=>{let $=null;if(Z0()){if($=await G2(),!$)$=h4();if(!$){let J=await _4();$=g4(J)}}return $},P2=()=>{let $=null;if(Z0()){if($=X2(),!$)$=h4();if(!$){let J=k4();$=g4(J)}}return $};m4.exports={GLIBC:l,MUSL:i,family:b4,familySync:O4,isNonGlibcLinux:H2,isNonGlibcLinuxSync:I2,version:B2,versionSync:P2}});var P0=A((FW,u4)=>{var N2=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...$)=>console.error("SEMVER",...$):()=>{};u4.exports=N2});var j0=A((TW,c4)=>{var E2=Number.MAX_SAFE_INTEGER||9007199254740991,V2=["major","premajor","minor","preminor","patch","prepatch","prerelease"];c4.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:E2,RELEASE_TYPES:V2,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var N0=A((m,l4)=>{var{MAX_SAFE_COMPONENT_LENGTH:u0,MAX_SAFE_BUILD_LENGTH:z2,MAX_LENGTH:A2}=j0(),R2=P0();m=l4.exports={};var L2=m.re=[],D2=m.safeRe=[],P=m.src=[],j2=m.safeSrc=[],N=m.t={},F2=0,c0="[a-zA-Z0-9-]",T2=[["\\s",1],["\\d",A2],[c0,z2]],C2=($)=>{for(let[J,W]of T2)$=$.split(`${J}*`).join(`${J}{0,${W}}`).split(`${J}+`).join(`${J}{1,${W}}`);return $},z=($,J,W)=>{let q=C2(J),Z=F2++;R2($,Z,J),N[$]=Z,P[Z]=J,j2[Z]=q,L2[Z]=new RegExp(J,W?"g":void 0),D2[Z]=new RegExp(q,W?"g":void 0)};z("NUMERICIDENTIFIER","0|[1-9]\\d*");z("NUMERICIDENTIFIERLOOSE","\\d+");z("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${c0}*`);z("MAINVERSION",`(${P[N.NUMERICIDENTIFIER]})\\.(${P[N.NUMERICIDENTIFIER]})\\.(${P[N.NUMERICIDENTIFIER]})`);z("MAINVERSIONLOOSE",`(${P[N.NUMERICIDENTIFIERLOOSE]})\\.(${P[N.NUMERICIDENTIFIERLOOSE]})\\.(${P[N.NUMERICIDENTIFIERLOOSE]})`);z("PRERELEASEIDENTIFIER",`(?:${P[N.NONNUMERICIDENTIFIER]}|${P[N.NUMERICIDENTIFIER]})`);z("PRERELEASEIDENTIFIERLOOSE",`(?:${P[N.NONNUMERICIDENTIFIER]}|${P[N.NUMERICIDENTIFIERLOOSE]})`);z("PRERELEASE",`(?:-(${P[N.PRERELEASEIDENTIFIER]}(?:\\.${P[N.PRERELEASEIDENTIFIER]})*))`);z("PRERELEASELOOSE",`(?:-?(${P[N.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${P[N.PRERELEASEIDENTIFIERLOOSE]})*))`);z("BUILDIDENTIFIER",`${c0}+`);z("BUILD",`(?:\\+(${P[N.BUILDIDENTIFIER]}(?:\\.${P[N.BUILDIDENTIFIER]})*))`);z("FULLPLAIN",`v?${P[N.MAINVERSION]}${P[N.PRERELEASE]}?${P[N.BUILD]}?`);z("FULL",`^${P[N.FULLPLAIN]}$`);z("LOOSEPLAIN",`[v=\\s]*${P[N.MAINVERSIONLOOSE]}${P[N.PRERELEASELOOSE]}?${P[N.BUILD]}?`);z("LOOSE",`^${P[N.LOOSEPLAIN]}$`);z("GTLT","((?:<|>)?=?)");z("XRANGEIDENTIFIERLOOSE",`${P[N.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);z("XRANGEIDENTIFIER",`${P[N.NUMERICIDENTIFIER]}|x|X|\\*`);z("XRANGEPLAIN",`[v=\\s]*(${P[N.XRANGEIDENTIFIER]})(?:\\.(${P[N.XRANGEIDENTIFIER]})(?:\\.(${P[N.XRANGEIDENTIFIER]})(?:${P[N.PRERELEASE]})?${P[N.BUILD]}?)?)?`);z("XRANGEPLAINLOOSE",`[v=\\s]*(${P[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${P[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${P[N.XRANGEIDENTIFIERLOOSE]})(?:${P[N.PRERELEASELOOSE]})?${P[N.BUILD]}?)?)?`);z("XRANGE",`^${P[N.GTLT]}\\s*${P[N.XRANGEPLAIN]}$`);z("XRANGELOOSE",`^${P[N.GTLT]}\\s*${P[N.XRANGEPLAINLOOSE]}$`);z("COERCEPLAIN",`(^|[^\\d])(\\d{1,${u0}})(?:\\.(\\d{1,${u0}}))?(?:\\.(\\d{1,${u0}}))?`);z("COERCE",`${P[N.COERCEPLAIN]}(?:$|[^\\d])`);z("COERCEFULL",P[N.COERCEPLAIN]+`(?:${P[N.PRERELEASE]})?(?:${P[N.BUILD]})?(?:$|[^\\d])`);z("COERCERTL",P[N.COERCE],!0);z("COERCERTLFULL",P[N.COERCEFULL],!0);z("LONETILDE","(?:~>?)");z("TILDETRIM",`(\\s*)${P[N.LONETILDE]}\\s+`,!0);m.tildeTrimReplace="$1~";z("TILDE",`^${P[N.LONETILDE]}${P[N.XRANGEPLAIN]}$`);z("TILDELOOSE",`^${P[N.LONETILDE]}${P[N.XRANGEPLAINLOOSE]}$`);z("LONECARET","(?:\\^)");z("CARETTRIM",`(\\s*)${P[N.LONECARET]}\\s+`,!0);m.caretTrimReplace="$1^";z("CARET",`^${P[N.LONECARET]}${P[N.XRANGEPLAIN]}$`);z("CARETLOOSE",`^${P[N.LONECARET]}${P[N.XRANGEPLAINLOOSE]}$`);z("COMPARATORLOOSE",`^${P[N.GTLT]}\\s*(${P[N.LOOSEPLAIN]})$|^$`);z("COMPARATOR",`^${P[N.GTLT]}\\s*(${P[N.FULLPLAIN]})$|^$`);z("COMPARATORTRIM",`(\\s*)${P[N.GTLT]}\\s*(${P[N.LOOSEPLAIN]}|${P[N.XRANGEPLAIN]})`,!0);m.comparatorTrimReplace="$1$2$3";z("HYPHENRANGE",`^\\s*(${P[N.XRANGEPLAIN]})\\s+-\\s+(${P[N.XRANGEPLAIN]})\\s*$`);z("HYPHENRANGELOOSE",`^\\s*(${P[N.XRANGEPLAINLOOSE]})\\s+-\\s+(${P[N.XRANGEPLAINLOOSE]})\\s*$`);z("STAR","(<|>)?=?\\s*\\*");z("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");z("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var F0=A((CW,a4)=>{var w2=Object.freeze({loose:!0}),S2=Object.freeze({}),M2=($)=>{if(!$)return S2;if(typeof $!=="object")return w2;return $};a4.exports=M2});var n4=A((wW,p4)=>{var r4=/^[0-9]+$/,e4=($,J)=>{if(typeof $==="number"&&typeof J==="number")return $===J?0:$<J?-1:1;let W=r4.test($),q=r4.test(J);if(W&&q)$=+$,J=+J;return $===J?0:W&&!q?-1:q&&!W?1:$<J?-1:1},_2=($,J)=>e4(J,$);p4.exports={compareIdentifiers:e4,rcompareIdentifiers:_2}});var Q0=A((SW,t4)=>{var T0=P0(),{MAX_LENGTH:s4,MAX_SAFE_INTEGER:C0}=j0(),{safeRe:w0,t:S0}=N0(),k2=F0(),{compareIdentifiers:l0}=n4();class v{constructor($,J){if(J=k2(J),$ instanceof v)if($.loose===!!J.loose&&$.includePrerelease===!!J.includePrerelease)return $;else $=$.version;else if(typeof $!=="string")throw TypeError(`Invalid version. Must be a string. Got type "${typeof $}".`);if($.length>s4)throw TypeError(`version is longer than ${s4} characters`);T0("SemVer",$,J),this.options=J,this.loose=!!J.loose,this.includePrerelease=!!J.includePrerelease;let W=$.trim().match(J.loose?w0[S0.LOOSE]:w0[S0.FULL]);if(!W)throw TypeError(`Invalid Version: ${$}`);if(this.raw=$,this.major=+W[1],this.minor=+W[2],this.patch=+W[3],this.major>C0||this.major<0)throw TypeError("Invalid major version");if(this.minor>C0||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>C0||this.patch<0)throw TypeError("Invalid patch version");if(!W[4])this.prerelease=[];else this.prerelease=W[4].split(".").map((q)=>{if(/^[0-9]+$/.test(q)){let Z=+q;if(Z>=0&&Z<C0)return Z}return q});this.build=W[5]?W[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare($){if(T0("SemVer.compare",this.version,this.options,$),!($ instanceof v)){if(typeof $==="string"&&$===this.version)return 0;$=new v($,this.options)}if($.version===this.version)return 0;return this.compareMain($)||this.comparePre($)}compareMain($){if(!($ instanceof v))$=new v($,this.options);if(this.major<$.major)return-1;if(this.major>$.major)return 1;if(this.minor<$.minor)return-1;if(this.minor>$.minor)return 1;if(this.patch<$.patch)return-1;if(this.patch>$.patch)return 1;return 0}comparePre($){if(!($ instanceof v))$=new v($,this.options);if(this.prerelease.length&&!$.prerelease.length)return-1;else if(!this.prerelease.length&&$.prerelease.length)return 1;else if(!this.prerelease.length&&!$.prerelease.length)return 0;let J=0;do{let W=this.prerelease[J],q=$.prerelease[J];if(T0("prerelease compare",J,W,q),W===void 0&&q===void 0)return 0;else if(q===void 0)return 1;else if(W===void 0)return-1;else if(W===q)continue;else return l0(W,q)}while(++J)}compareBuild($){if(!($ instanceof v))$=new v($,this.options);let J=0;do{let W=this.build[J],q=$.build[J];if(T0("build compare",J,W,q),W===void 0&&q===void 0)return 0;else if(q===void 0)return 1;else if(W===void 0)return-1;else if(W===q)continue;else return l0(W,q)}while(++J)}inc($,J,W){if($.startsWith("pre")){if(!J&&W===!1)throw Error("invalid increment argument: identifier is empty");if(J){let q=`-${J}`.match(this.options.loose?w0[S0.PRERELEASELOOSE]:w0[S0.PRERELEASE]);if(!q||q[1]!==J)throw Error(`invalid identifier: ${J}`)}}switch($){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",J,W);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",J,W);break;case"prepatch":this.prerelease.length=0,this.inc("patch",J,W),this.inc("pre",J,W);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",J,W);this.inc("pre",J,W);break;case"release":if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let q=Number(W)?1:0;if(this.prerelease.length===0)this.prerelease=[q];else{let Z=this.prerelease.length;while(--Z>=0)if(typeof this.prerelease[Z]==="number")this.prerelease[Z]++,Z=-2;if(Z===-1){if(J===this.prerelease.join(".")&&W===!1)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(q)}}if(J){let Z=[J,q];if(W===!1)Z=[J];if(l0(this.prerelease[0],J)===0){if(isNaN(this.prerelease[1]))this.prerelease=Z}else this.prerelease=Z}break}default:throw Error(`invalid increment argument: ${$}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}t4.exports=v});var $1=A((MW,o4)=>{var i4=Q0(),x2=($,J,W=!1)=>{if($ instanceof i4)return $;try{return new i4($,J)}catch(q){if(!W)return null;throw q}};o4.exports=x2});var W1=A((_W,J1)=>{var y2=Q0(),f2=$1(),{safeRe:M0,t:_0}=N0(),v2=($,J)=>{if($ instanceof y2)return $;if(typeof $==="number")$=String($);if(typeof $!=="string")return null;J=J||{};let W=null;if(!J.rtl)W=$.match(J.includePrerelease?M0[_0.COERCEFULL]:M0[_0.COERCE]);else{let G=J.includePrerelease?M0[_0.COERCERTLFULL]:M0[_0.COERCERTL],X;while((X=G.exec($))&&(!W||W.index+W[0].length!==$.length)){if(!W||X.index+X[0].length!==W.index+W[0].length)W=X;G.lastIndex=X.index+X[1].length+X[2].length}G.lastIndex=-1}if(W===null)return null;let q=W[2],Z=W[3]||"0",U=W[4]||"0",Y=J.includePrerelease&&W[5]?`-${W[5]}`:"",H=J.includePrerelease&&W[6]?`+${W[6]}`:"";return f2(`${q}.${Z}.${U}${Y}${H}`,J)};J1.exports=v2});var o=A((kW,Z1)=>{var q1=Q0(),d2=($,J,W)=>new q1($,W).compare(new q1(J,W));Z1.exports=d2});var a0=A((xW,Q1)=>{var b2=o(),O2=($,J,W)=>b2($,J,W)>=0;Q1.exports=O2});var K1=A((yW,Y1)=>{class U1{constructor(){this.max=1000,this.map=new Map}get($){let J=this.map.get($);if(J===void 0)return;else return this.map.delete($),this.map.set($,J),J}delete($){return this.map.delete($)}set($,J){if(!this.delete($)&&J!==void 0){if(this.map.size>=this.max){let q=this.map.keys().next().value;this.delete(q)}this.map.set($,J)}return this}}Y1.exports=U1});var I1=A((fW,H1)=>{var h2=o(),g2=($,J,W)=>h2($,J,W)===0;H1.exports=g2});var X1=A((vW,G1)=>{var m2=o(),u2=($,J,W)=>m2($,J,W)!==0;G1.exports=u2});var P1=A((dW,B1)=>{var c2=o(),l2=($,J,W)=>c2($,J,W)>0;B1.exports=l2});var E1=A((bW,N1)=>{var a2=o(),r2=($,J,W)=>a2($,J,W)<0;N1.exports=r2});var z1=A((OW,V1)=>{var e2=o(),p2=($,J,W)=>e2($,J,W)<=0;V1.exports=p2});var R1=A((hW,A1)=>{var n2=I1(),s2=X1(),t2=P1(),i2=a0(),o2=E1(),$5=z1(),J5=($,J,W,q)=>{switch(J){case"===":if(typeof $==="object")$=$.version;if(typeof W==="object")W=W.version;return $===W;case"!==":if(typeof $==="object")$=$.version;if(typeof W==="object")W=W.version;return $!==W;case"":case"=":case"==":return n2($,W,q);case"!=":return s2($,W,q);case">":return t2($,W,q);case">=":return i2($,W,q);case"<":return o2($,W,q);case"<=":return $5($,W,q);default:throw TypeError(`Invalid operator: ${J}`)}};A1.exports=J5});var w1=A((gW,C1)=>{var E0=Symbol("SemVer ANY");class k0{static get ANY(){return E0}constructor($,J){if(J=L1(J),$ instanceof k0)if($.loose===!!J.loose)return $;else $=$.value;if($=$.trim().split(/\s+/).join(" "),e0("comparator",$,J),this.options=J,this.loose=!!J.loose,this.parse($),this.semver===E0)this.value="";else this.value=this.operator+this.semver.version;e0("comp",this)}parse($){let J=this.options.loose?D1[j1.COMPARATORLOOSE]:D1[j1.COMPARATOR],W=$.match(J);if(!W)throw TypeError(`Invalid comparator: ${$}`);if(this.operator=W[1]!==void 0?W[1]:"",this.operator==="=")this.operator="";if(!W[2])this.semver=E0;else this.semver=new F1(W[2],this.options.loose)}toString(){return this.value}test($){if(e0("Comparator.test",$,this.options.loose),this.semver===E0||$===E0)return!0;if(typeof $==="string")try{$=new F1($,this.options)}catch(J){return!1}return r0($,this.operator,this.semver,this.options)}intersects($,J){if(!($ instanceof k0))throw TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new T1($.value,J).test(this.value)}else if($.operator===""){if($.value==="")return!0;return new T1(this.value,J).test($.semver)}if(J=L1(J),J.includePrerelease&&(this.value==="<0.0.0-0"||$.value==="<0.0.0-0"))return!1;if(!J.includePrerelease&&(this.value.startsWith("<0.0.0")||$.value.startsWith("<0.0.0")))return!1;if(this.operator.startsWith(">")&&$.operator.startsWith(">"))return!0;if(this.operator.startsWith("<")&&$.operator.startsWith("<"))return!0;if(this.semver.version===$.semver.version&&this.operator.includes("=")&&$.operator.includes("="))return!0;if(r0(this.semver,"<",$.semver,J)&&this.operator.startsWith(">")&&$.operator.startsWith("<"))return!0;if(r0(this.semver,">",$.semver,J)&&this.operator.startsWith("<")&&$.operator.startsWith(">"))return!0;return!1}}C1.exports=k0;var L1=F0(),{safeRe:D1,t:j1}=N0(),r0=R1(),e0=P0(),F1=Q0(),T1=p0()});var p0=A((mW,k1)=>{var W5=/\s+/g;class V0{constructor($,J){if(J=Z5(J),$ instanceof V0)if($.loose===!!J.loose&&$.includePrerelease===!!J.includePrerelease)return $;else return new V0($.raw,J);if($ instanceof n0)return this.raw=$.value,this.set=[[$]],this.formatted=void 0,this;if(this.options=J,this.loose=!!J.loose,this.includePrerelease=!!J.includePrerelease,this.raw=$.trim().replace(W5," "),this.set=this.raw.split("||").map((W)=>this.parseRange(W.trim())).filter((W)=>W.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let W=this.set[0];if(this.set=this.set.filter((q)=>!M1(q[0])),this.set.length===0)this.set=[W];else if(this.set.length>1){for(let q of this.set)if(q.length===1&&G5(q[0])){this.set=[q];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let $=0;$<this.set.length;$++){if($>0)this.formatted+="||";let J=this.set[$];for(let W=0;W<J.length;W++){if(W>0)this.formatted+=" ";this.formatted+=J[W].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange($){let W=((this.options.includePrerelease&&H5)|(this.options.loose&&I5))+":"+$,q=S1.get(W);if(q)return q;let Z=this.options.loose,U=Z?S[w.HYPHENRANGELOOSE]:S[w.HYPHENRANGE];$=$.replace(U,L5(this.options.includePrerelease)),D("hyphen replace",$),$=$.replace(S[w.COMPARATORTRIM],U5),D("comparator trim",$),$=$.replace(S[w.TILDETRIM],Y5),D("tilde trim",$),$=$.replace(S[w.CARETTRIM],K5),D("caret trim",$);let Y=$.split(" ").map((V)=>X5(V,this.options)).join(" ").split(/\s+/).map((V)=>R5(V,this.options));if(Z)Y=Y.filter((V)=>{return D("loose invalid filter",V,this.options),!!V.match(S[w.COMPARATORLOOSE])});D("range list",Y);let H=new Map,G=Y.map((V)=>new n0(V,this.options));for(let V of G){if(M1(V))return[V];H.set(V.value,V)}if(H.size>1&&H.has(""))H.delete("");let X=[...H.values()];return S1.set(W,X),X}intersects($,J){if(!($ instanceof V0))throw TypeError("a Range is required");return this.set.some((W)=>{return _1(W,J)&&$.set.some((q)=>{return _1(q,J)&&W.every((Z)=>{return q.every((U)=>{return Z.intersects(U,J)})})})})}test($){if(!$)return!1;if(typeof $==="string")try{$=new Q5($,this.options)}catch(J){return!1}for(let J=0;J<this.set.length;J++)if(D5(this.set[J],$,this.options))return!0;return!1}}k1.exports=V0;var q5=K1(),S1=new q5,Z5=F0(),n0=w1(),D=P0(),Q5=Q0(),{safeRe:S,t:w,comparatorTrimReplace:U5,tildeTrimReplace:Y5,caretTrimReplace:K5}=N0(),{FLAG_INCLUDE_PRERELEASE:H5,FLAG_LOOSE:I5}=j0(),M1=($)=>$.value==="<0.0.0-0",G5=($)=>$.value==="",_1=($,J)=>{let W=!0,q=$.slice(),Z=q.pop();while(W&&q.length)W=q.every((U)=>{return Z.intersects(U,J)}),Z=q.pop();return W},X5=($,J)=>{return $=$.replace(S[w.BUILD],""),D("comp",$,J),$=N5($,J),D("caret",$),$=B5($,J),D("tildes",$),$=V5($,J),D("xrange",$),$=A5($,J),D("stars",$),$},M=($)=>!$||$.toLowerCase()==="x"||$==="*",B5=($,J)=>{return $.trim().split(/\s+/).map((W)=>P5(W,J)).join(" ")},P5=($,J)=>{let W=J.loose?S[w.TILDELOOSE]:S[w.TILDE];return $.replace(W,(q,Z,U,Y,H)=>{D("tilde",$,q,Z,U,Y,H);let G;if(M(Z))G="";else if(M(U))G=`>=${Z}.0.0 <${+Z+1}.0.0-0`;else if(M(Y))G=`>=${Z}.${U}.0 <${Z}.${+U+1}.0-0`;else if(H)D("replaceTilde pr",H),G=`>=${Z}.${U}.${Y}-${H} <${Z}.${+U+1}.0-0`;else G=`>=${Z}.${U}.${Y} <${Z}.${+U+1}.0-0`;return D("tilde return",G),G})},N5=($,J)=>{return $.trim().split(/\s+/).map((W)=>E5(W,J)).join(" ")},E5=($,J)=>{D("caret",$,J);let W=J.loose?S[w.CARETLOOSE]:S[w.CARET],q=J.includePrerelease?"-0":"";return $.replace(W,(Z,U,Y,H,G)=>{D("caret",$,Z,U,Y,H,G);let X;if(M(U))X="";else if(M(Y))X=`>=${U}.0.0${q} <${+U+1}.0.0-0`;else if(M(H))if(U==="0")X=`>=${U}.${Y}.0${q} <${U}.${+Y+1}.0-0`;else X=`>=${U}.${Y}.0${q} <${+U+1}.0.0-0`;else if(G)if(D("replaceCaret pr",G),U==="0")if(Y==="0")X=`>=${U}.${Y}.${H}-${G} <${U}.${Y}.${+H+1}-0`;else X=`>=${U}.${Y}.${H}-${G} <${U}.${+Y+1}.0-0`;else X=`>=${U}.${Y}.${H}-${G} <${+U+1}.0.0-0`;else if(D("no pr"),U==="0")if(Y==="0")X=`>=${U}.${Y}.${H}${q} <${U}.${Y}.${+H+1}-0`;else X=`>=${U}.${Y}.${H}${q} <${U}.${+Y+1}.0-0`;else X=`>=${U}.${Y}.${H} <${+U+1}.0.0-0`;return D("caret return",X),X})},V5=($,J)=>{return D("replaceXRanges",$,J),$.split(/\s+/).map((W)=>z5(W,J)).join(" ")},z5=($,J)=>{$=$.trim();let W=J.loose?S[w.XRANGELOOSE]:S[w.XRANGE];return $.replace(W,(q,Z,U,Y,H,G)=>{D("xRange",$,q,Z,U,Y,H,G);let X=M(U),V=X||M(Y),L=V||M(H),x=L;if(Z==="="&&x)Z="";if(G=J.includePrerelease?"-0":"",X)if(Z===">"||Z==="<")q="<0.0.0-0";else q="*";else if(Z&&x){if(V)Y=0;if(H=0,Z===">")if(Z=">=",V)U=+U+1,Y=0,H=0;else Y=+Y+1,H=0;else if(Z==="<=")if(Z="<",V)U=+U+1;else Y=+Y+1;if(Z==="<")G="-0";q=`${Z+U}.${Y}.${H}${G}`}else if(V)q=`>=${U}.0.0${G} <${+U+1}.0.0-0`;else if(L)q=`>=${U}.${Y}.0${G} <${U}.${+Y+1}.0-0`;return D("xRange return",q),q})},A5=($,J)=>{return D("replaceStars",$,J),$.trim().replace(S[w.STAR],"")},R5=($,J)=>{return D("replaceGTE0",$,J),$.trim().replace(S[J.includePrerelease?w.GTE0PRE:w.GTE0],"")},L5=($)=>(J,W,q,Z,U,Y,H,G,X,V,L,x)=>{if(M(q))W="";else if(M(Z))W=`>=${q}.0.0${$?"-0":""}`;else if(M(U))W=`>=${q}.${Z}.0${$?"-0":""}`;else if(Y)W=`>=${W}`;else W=`>=${W}${$?"-0":""}`;if(M(X))G="";else if(M(V))G=`<${+X+1}.0.0-0`;else if(M(L))G=`<${X}.${+V+1}.0-0`;else if(x)G=`<=${X}.${V}.${L}-${x}`;else if($)G=`<${X}.${V}.${+L+1}-0`;else G=`<=${G}`;return`${W} ${G}`.trim()},D5=($,J,W)=>{for(let q=0;q<$.length;q++)if(!$[q].test(J))return!1;if(J.prerelease.length&&!W.includePrerelease){for(let q=0;q<$.length;q++){if(D($[q].semver),$[q].semver===n0.ANY)continue;if($[q].semver.prerelease.length>0){let Z=$[q].semver;if(Z.major===J.major&&Z.minor===J.minor&&Z.patch===J.patch)return!0}}return!1}return!0}});var y1=A((uW,x1)=>{var j5=p0(),F5=($,J,W)=>{try{J=new j5(J,W)}catch(q){return!1}return J.test($)};x1.exports=F5});var s0=A((cW,T5)=>{T5.exports={name:"sharp",description:"High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images",version:"0.34.5",author:"Lovell Fuller <npm@lovell.info>",homepage:"https://sharp.pixelplumbing.com",contributors:["Pierre Inglebert <pierre.inglebert@gmail.com>","Jonathan Ong <jonathanrichardong@gmail.com>","Chanon Sajjamanochai <chanon.s@gmail.com>","Juliano Julio <julianojulio@gmail.com>","Daniel Gasienica <daniel@gasienica.ch>","Julian Walker <julian@fiftythree.com>","Amit Pitaru <pitaru.amit@gmail.com>","Brandon Aaron <hello.brandon@aaron.sh>","Andreas Lind <andreas@one.com>","Maurus Cuelenaere <mcuelenaere@gmail.com>","Linus Unneb\xE4ck <linus@folkdatorn.se>","Victor Mateevitsi <mvictoras@gmail.com>","Alaric Holloway <alaric.holloway@gmail.com>","Bernhard K. Weisshuhn <bkw@codingforce.com>","Chris Riley <criley@primedia.com>","David Carley <dacarley@gmail.com>","John Tobin <john@limelightmobileinc.com>","Kenton Gray <kentongray@gmail.com>","Felix B\xFCnemann <Felix.Buenemann@gmail.com>","Samy Al Zahrani <samyalzahrany@gmail.com>","Chintan Thakkar <lemnisk8@gmail.com>","F. Orlando Galashan <frulo@gmx.de>","Kleis Auke Wolthuizen <info@kleisauke.nl>","Matt Hirsch <mhirsch@media.mit.edu>","Matthias Thoemmes <thoemmes@gmail.com>","Patrick Paskaris <patrick@paskaris.gr>","J\xE9r\xE9my Lal <kapouer@melix.org>","Rahul Nanwani <r.nanwani@gmail.com>","Alice Monday <alice0meta@gmail.com>","Kristo Jorgenson <kristo.jorgenson@gmail.com>","YvesBos <yves_bos@outlook.com>","Guy Maliar <guy@tailorbrands.com>","Nicolas Coden <nicolas@ncoden.fr>","Matt Parrish <matt.r.parrish@gmail.com>","Marcel Bretschneider <marcel.bretschneider@gmail.com>","Matthew McEachen <matthew+github@mceachen.org>","Jarda Kot\u011B\u0161ovec <jarda.kotesovec@gmail.com>","Kenric D'Souza <kenric.dsouza@gmail.com>","Oleh Aleinyk <oleg.aleynik@gmail.com>","Marcel Bretschneider <marcel.bretschneider@gmail.com>","Andrea Bianco <andrea.bianco@unibas.ch>","Rik Heywood <rik@rik.org>","Thomas Parisot <hi@oncletom.io>","Nathan Graves <nathanrgraves+github@gmail.com>","Tom Lokhorst <tom@lokhorst.eu>","Espen Hovlandsdal <espen@hovlandsdal.com>","Sylvain Dumont <sylvain.dumont35@gmail.com>","Alun Davies <alun.owain.davies@googlemail.com>","Aidan Hoolachan <ajhoolachan21@gmail.com>","Axel Eirola <axel.eirola@iki.fi>","Freezy <freezy@xbmc.org>","Daiz <taneli.vatanen@gmail.com>","Julian Aubourg <j@ubourg.net>","Keith Belovay <keith@picthrive.com>","Michael B. Klein <mbklein@gmail.com>","Jordan Prudhomme <jordan@raboland.fr>","Ilya Ovdin <iovdin@gmail.com>","Andargor <andargor@yahoo.com>","Paul Neave <paul.neave@gmail.com>","Brendan Kennedy <brenwken@gmail.com>","Brychan Bennett-Odlum <git@brychan.io>","Edward Silverton <e.silverton@gmail.com>","Roman Malieiev <aromaleev@gmail.com>","Tomas Szabo <tomas.szabo@deftomat.com>","Robert O'Rourke <robert@o-rourke.org>","Guillermo Alfonso Varela Chouci\xF1o <guillevch@gmail.com>","Christian Flintrup <chr@gigahost.dk>","Manan Jadhav <manan@motionden.com>","Leon Radley <leon@radley.se>","alza54 <alza54@thiocod.in>","Jacob Smith <jacob@frende.me>","Michael Nutt <michael@nutt.im>","Brad Parham <baparham@gmail.com>","Taneli Vatanen <taneli.vatanen@gmail.com>","Joris Dugu\xE9 <zaruike10@gmail.com>","Chris Banks <christopher.bradley.banks@gmail.com>","Ompal Singh <ompal.hitm09@gmail.com>","Brodan <christopher.hranj@gmail.com>","Ankur Parihar <ankur.github@gmail.com>","Brahim Ait elhaj <brahima@gmail.com>","Mart Jansink <m.jansink@gmail.com>","Lachlan Newman <lachnewman007@gmail.com>","Dennis Beatty <dennis@dcbeatty.com>","Ingvar Stepanyan <me@rreverser.com>","Don Denton <don@happycollision.com>"],scripts:{build:"node install/build.js",install:"node install/check.js || npm run build",clean:"rm -rf src/build/ .nyc_output/ coverage/ test/fixtures/output.*",test:"npm run lint && npm run test-unit",lint:"npm run lint-cpp && npm run lint-js && npm run lint-types","lint-cpp":"cpplint --quiet src/*.h src/*.cc","lint-js":"biome lint","lint-types":"tsd --files ./test/types/sharp.test-d.ts","test-leak":"./test/leak/leak.sh","test-unit":"node --experimental-test-coverage test/unit.mjs","package-from-local-build":"node npm/from-local-build.js","package-release-notes":"node npm/release-notes.js","docs-build":"node docs/build.mjs","docs-serve":"cd docs && npm start","docs-publish":"cd docs && npm run build && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp"},type:"commonjs",main:"lib/index.js",types:"lib/index.d.ts",files:["install","lib","src/*.{cc,h,gyp}"],repository:{type:"git",url:"git://github.com/lovell/sharp.git"},keywords:["jpeg","png","webp","avif","tiff","gif","svg","jp2","dzi","image","resize","thumbnail","crop","embed","libvips","vips"],dependencies:{"@img/colour":"^1.0.0","detect-libc":"^2.1.2",semver:"^7.7.3"},optionalDependencies:{"@img/sharp-darwin-arm64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-wasm32":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-win32-x64":"0.34.5"},devDependencies:{"@biomejs/biome":"^2.3.4","@cpplint/cli":"^0.1.0","@emnapi/runtime":"^1.7.0","@img/sharp-libvips-dev":"1.2.4","@img/sharp-libvips-dev-wasm32":"1.2.4","@img/sharp-libvips-win32-arm64":"1.2.4","@img/sharp-libvips-win32-ia32":"1.2.4","@img/sharp-libvips-win32-x64":"1.2.4","@types/node":"*",emnapi:"^1.7.0","exif-reader":"^2.0.2","extract-zip":"^2.0.1",icc:"^3.0.0","jsdoc-to-markdown":"^9.1.3","node-addon-api":"^8.5.0","node-gyp":"^11.5.0","tar-fs":"^3.1.1",tsd:"^0.33.0"},license:"Apache-2.0",engines:{node:"^18.17.0 || ^20.3.0 || >=21.0.0"},config:{libvips:">=8.17.3"},funding:{url:"https://opencollective.com/libvips"}}});var i0=A((lW,c1)=>{/*!
6
- Copyright 2013 Lovell Fuller and others.
7
- SPDX-License-Identifier: Apache-2.0
8
- */var{spawnSync:x0}=j("child_process"),{createHash:C5}=j("crypto"),b1=W1(),w5=a0(),S5=y1(),f1=D0(),{config:M5,engines:v1,optionalDependencies:_5}=s0(),k5=process.env.npm_package_config_libvips||M5.libvips,O1=b1(k5).version,x5=["darwin-arm64","darwin-x64","linux-arm","linux-arm64","linux-ppc64","linux-riscv64","linux-s390x","linux-x64","linuxmusl-arm64","linuxmusl-x64","win32-arm64","win32-ia32","win32-x64"],y0={encoding:"utf8",shell:!0},y5=($)=>{if($ instanceof Error)console.error(`sharp: Installation error: ${$.message}`);else console.log(`sharp: ${$}`)},h1=()=>f1.isNonGlibcLinuxSync()?f1.familySync():"",f5=()=>`${process.platform}${h1()}-${process.arch}`,U0=()=>{if(g1())return"wasm32";let{npm_config_arch:$,npm_config_platform:J,npm_config_libc:W}=process.env,q=typeof W==="string"?W:h1();return`${J||process.platform}${q}-${$||process.arch}`},v5=()=>{try{return j(`@img/sharp-libvips-dev-${U0()}/include`)}catch{try{return (()=>{throw new Error("Cannot require module "+"@img/sharp-libvips-dev/include");})()}catch{}}return""},d5=()=>{try{return (()=>{throw new Error("Cannot require module "+"@img/sharp-libvips-dev/cplusplus");})()}catch{}return""},b5=()=>{try{return j(`@img/sharp-libvips-dev-${U0()}/lib`)}catch{try{return j(`@img/sharp-libvips-${U0()}/lib`)}catch{}}return""},O5=()=>{if(process.release?.name==="node"&&process.versions){if(!S5(process.versions.node,v1.node))return{found:process.versions.node,expected:v1.node}}},g1=()=>{let{CC:$}=process.env;return Boolean($?.endsWith("/emcc"))},h5=()=>{if(process.platform==="darwin"&&process.arch==="x64")return(x0("sysctl sysctl.proc_translated",y0).stdout||"").trim()==="sysctl.proc_translated: 1";return!1},d1=($)=>C5("sha512").update($).digest("hex"),g5=()=>{try{let $=d1(`imgsharp-libvips-${U0()}`),J=b1(_5[`@img/sharp-libvips-${U0()}`],{includePrerelease:!0}).version;return d1(`${$}npm:${J}`).slice(0,10)}catch{}return""},m5=()=>x0(`node-gyp rebuild --directory=src ${g1()?"--nodedir=emscripten":""}`,{...y0,stdio:"inherit"}).status,m1=()=>{if(process.platform!=="win32")return(x0("pkg-config --modversion vips-cpp",{...y0,env:{...process.env,PKG_CONFIG_PATH:u1()}}).stdout||"").trim();else return""},u1=()=>{if(process.platform!=="win32")return[(x0('which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',y0).stdout||"").trim(),process.env.PKG_CONFIG_PATH,"/usr/local/lib/pkgconfig","/usr/lib/pkgconfig","/usr/local/libdata/pkgconfig","/usr/libdata/pkgconfig"].filter(Boolean).join(":");else return""},t0=($,J,W)=>{if(W)W(`Detected ${J}, skipping search for globally-installed libvips`);return $},u5=($)=>{if(Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS)===!0)return t0(!1,"SHARP_IGNORE_GLOBAL_LIBVIPS",$);if(Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS)===!0)return t0(!0,"SHARP_FORCE_GLOBAL_LIBVIPS",$);if(h5())return t0(!1,"Rosetta",$);let J=m1();return!!J&&w5(J,O1)};c1.exports={minimumLibvipsVersion:O1,prebuiltPlatforms:x5,buildPlatformArch:U0,buildSharpLibvipsIncludeDir:v5,buildSharpLibvipsCPlusPlusDir:d5,buildSharpLibvipsLibDir:b5,isUnsupportedNodeRuntime:O5,runtimePlatformArch:f5,log:y5,yarnLocator:g5,spawnRebuild:m5,globalLibvipsVersion:m1,pkgConfigPath:u1,useGlobalLibvips:u5}});var A0=A((rW,a1)=>{/*!
9
- Copyright 2013 Lovell Fuller and others.
10
- SPDX-License-Identifier: Apache-2.0
11
- */var{familySync:c5,versionSync:l5}=D0(),{runtimePlatformArch:a5,isUnsupportedNodeRuntime:l1,prebuiltPlatforms:r5,minimumLibvipsVersion:e5}=i0(),$0=a5(),p5=[`../src/build/Release/sharp-${$0}.node`,"../src/build/Release/sharp-wasm32.node",`@img/sharp-${$0}/sharp.node`,"@img/sharp-wasm32/sharp.node"],o0,Y0,z0=[];for(o0 of p5)try{Y0=j(o0);break}catch($){z0.push($)}if(Y0&&o0.startsWith("@img/sharp-linux-x64")&&!Y0._isUsingX64V2()){let $=Error("Prebuilt binaries for linux-x64 require v2 microarchitecture");$.code="Unsupported CPU",z0.push($),Y0=null}if(Y0)a1.exports=Y0;else{let[$,J,W]=["linux","darwin","win32"].map((U)=>$0.startsWith(U)),q=[`Could not load the "sharp" module using the ${$0} runtime`];z0.forEach((U)=>{if(U.code!=="MODULE_NOT_FOUND")q.push(`${U.code}: ${U.message}`)});let Z=z0.map((U)=>U.message).join(" ");if(q.push("Possible solutions:"),l1()){let{found:U,expected:Y}=l1();q.push("- Please upgrade Node.js:",` Found ${U}`,` Requires ${Y}`)}else if(r5.includes($0)){let[U,Y]=$0.split("-"),H=U.endsWith("musl")?" --libc=musl":"";q.push("- Ensure optional dependencies can be installed:"," npm install --include=optional sharp","- Ensure your package manager supports multi-platform installation:"," See https://sharp.pixelplumbing.com/install#cross-platform","- Add platform-specific dependencies:",` npm install --os=${U.replace("musl","")}${H} --cpu=${Y} sharp`)}else q.push(`- Manually install libvips >= ${e5}`,"- Add experimental WebAssembly-based dependencies:"," npm install --cpu=wasm32 sharp"," npm install @img/sharp-wasm32");if($&&/(symbol not found|CXXABI_)/i.test(Z))try{let{config:U}=j(`@img/sharp-libvips-${$0}/package`),Y=`${c5()} ${l5()}`,H=`${U.musl?"musl":"glibc"} ${U.musl||U.glibc}`;q.push("- Update your OS:",` Found ${Y}`,` Requires ${H}`)}catch(U){}if($&&/\/snap\/core[0-9]{2}/.test(Z))q.push("- Remove the Node.js Snap, which does not support native modules"," snap remove node");if(J&&/Incompatible library version/.test(Z))q.push("- Update Homebrew:"," brew update && brew upgrade vips");if(z0.some((U)=>U.code==="ERR_DLOPEN_DISABLED"))q.push("- Run Node.js without using the --no-addons flag");if(W&&/The specified procedure could not be found/.test(Z))q.push("- Using the canvas package on Windows?"," See https://sharp.pixelplumbing.com/install#canvas-and-windows","- Check for outdated versions of sharp in the dependency tree:"," npm ls sharp");throw q.push("- Consult the installation documentation:"," See https://sharp.pixelplumbing.com/install"),Error(q.join(`
12
- `))}});var e1=A((pW,r1)=>{/*!
13
- Copyright 2013 Lovell Fuller and others.
14
- SPDX-License-Identifier: Apache-2.0
15
- */var n5=j("util"),$4=j("stream"),s5=b();A0();var t5=n5.debuglog("sharp"),i5=($)=>{J0.queue.emit("change",$)},J0=function($,J){if(arguments.length===1&&!s5.defined($))throw Error("Invalid input");if(!(this instanceof J0))return new J0($,J);return $4.Duplex.call(this),this.options={topOffsetPre:-1,leftOffsetPre:-1,widthPre:-1,heightPre:-1,topOffsetPost:-1,leftOffsetPost:-1,widthPost:-1,heightPost:-1,width:-1,height:-1,canvas:"crop",position:0,resizeBackground:[0,0,0,255],angle:0,rotationAngle:0,rotationBackground:[0,0,0,255],rotateBefore:!1,orientBefore:!1,flip:!1,flop:!1,extendTop:0,extendBottom:0,extendLeft:0,extendRight:0,extendBackground:[0,0,0,255],extendWith:"background",withoutEnlargement:!1,withoutReduction:!1,affineMatrix:[],affineBackground:[0,0,0,255],affineIdx:0,affineIdy:0,affineOdx:0,affineOdy:0,affineInterpolator:this.constructor.interpolators.bilinear,kernel:"lanczos3",fastShrinkOnLoad:!0,tint:[-1,0,0,0],flatten:!1,flattenBackground:[0,0,0],unflatten:!1,negate:!1,negateAlpha:!0,medianSize:0,blurSigma:0,precision:"integer",minAmpl:0.2,sharpenSigma:0,sharpenM1:1,sharpenM2:2,sharpenX1:2,sharpenY2:10,sharpenY3:20,threshold:0,thresholdGrayscale:!0,trimBackground:[],trimThreshold:-1,trimLineArt:!1,dilateWidth:0,erodeWidth:0,gamma:0,gammaOut:0,greyscale:!1,normalise:!1,normaliseLower:1,normaliseUpper:99,claheWidth:0,claheHeight:0,claheMaxSlope:3,brightness:1,saturation:1,hue:0,lightness:0,booleanBufferIn:null,booleanFileIn:"",joinChannelIn:[],extractChannel:-1,removeAlpha:!1,ensureAlpha:-1,colourspace:"srgb",colourspacePipeline:"last",composite:[],fileOut:"",formatOut:"input",streamOut:!1,keepMetadata:0,withMetadataOrientation:-1,withMetadataDensity:0,withIccProfile:"",withExif:{},withExifMerge:!0,withXmp:"",resolveWithObject:!1,loop:-1,delay:[],jpegQuality:80,jpegProgressive:!1,jpegChromaSubsampling:"4:2:0",jpegTrellisQuantisation:!1,jpegOvershootDeringing:!1,jpegOptimiseScans:!1,jpegOptimiseCoding:!0,jpegQuantisationTable:0,pngProgressive:!1,pngCompressionLevel:6,pngAdaptiveFiltering:!1,pngPalette:!1,pngQuality:100,pngEffort:7,pngBitdepth:8,pngDither:1,jp2Quality:80,jp2TileHeight:512,jp2TileWidth:512,jp2Lossless:!1,jp2ChromaSubsampling:"4:4:4",webpQuality:80,webpAlphaQuality:100,webpLossless:!1,webpNearLossless:!1,webpSmartSubsample:!1,webpSmartDeblock:!1,webpPreset:"default",webpEffort:4,webpMinSize:!1,webpMixed:!1,gifBitdepth:8,gifEffort:7,gifDither:1,gifInterFrameMaxError:0,gifInterPaletteMaxError:3,gifKeepDuplicateFrames:!1,gifReuse:!0,gifProgressive:!1,tiffQuality:80,tiffCompression:"jpeg",tiffBigtiff:!1,tiffPredictor:"horizontal",tiffPyramid:!1,tiffMiniswhite:!1,tiffBitdepth:8,tiffTile:!1,tiffTileHeight:256,tiffTileWidth:256,tiffXres:1,tiffYres:1,tiffResolutionUnit:"inch",heifQuality:50,heifLossless:!1,heifCompression:"av1",heifEffort:4,heifChromaSubsampling:"4:4:4",heifBitdepth:8,jxlDistance:1,jxlDecodingTier:0,jxlEffort:7,jxlLossless:!1,rawDepth:"uchar",tileSize:256,tileOverlap:0,tileContainer:"fs",tileLayout:"dz",tileFormat:"last",tileDepth:"last",tileAngle:0,tileSkipBlanks:-1,tileBackground:[255,255,255,255],tileCentre:!1,tileId:"https://example.com/iiif",tileBasename:"",timeoutSeconds:0,linearA:[],linearB:[],pdfBackground:[255,255,255,255],debuglog:(W)=>{this.emit("warning",W),t5(W)},queueListener:i5},this.options.input=this._createInputDescriptor($,J,{allowStream:!0}),this};Object.setPrototypeOf(J0.prototype,$4.Duplex.prototype);Object.setPrototypeOf(J0,$4.Duplex);function o5(){let $=this.constructor.call(),{debuglog:J,queueListener:W,...q}=this.options;if($.options=structuredClone(q),$.options.debuglog=J,$.options.queueListener=W,this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),$.options.input.buffer=this.options.input.buffer,$.emit("finish")});return $}Object.assign(J0.prototype,{clone:o5});r1.exports=J0});var s1=A((nW,n1)=>{/*!
16
- Copyright 2013 Lovell Fuller and others.
17
- SPDX-License-Identifier: Apache-2.0
18
- */var K=b(),n=A0(),$$={left:"low",top:"low",low:"low",center:"centre",centre:"centre",right:"high",bottom:"high",high:"high"},J$=["failOn","limitInputPixels","unlimited","animated","autoOrient","density","ignoreIcc","page","pages","sequentialRead","jp2","openSlide","pdf","raw","svg","tiff","failOnError","openSlideLevel","pdfBackground","tiffSubifd"];function p1($){let J=J$.filter((W)=>K.defined($[W])).map((W)=>[W,$[W]]);return J.length?Object.fromEntries(J):void 0}function W$($,J,W){let q={autoOrient:!1,failOn:"warning",limitInputPixels:268402689,ignoreIcc:!1,unlimited:!1,sequentialRead:!0};if(K.string($))q.file=$;else if(K.buffer($)){if($.length===0)throw Error("Input Buffer is empty");q.buffer=$}else if(K.arrayBuffer($)){if($.byteLength===0)throw Error("Input bit Array is empty");q.buffer=Buffer.from($,0,$.byteLength)}else if(K.typedArray($)){if($.length===0)throw Error("Input Bit Array is empty");q.buffer=Buffer.from($.buffer,$.byteOffset,$.byteLength)}else if(K.plainObject($)&&!K.defined(J)){if(J=$,p1(J))q.buffer=[]}else if(!K.defined($)&&!K.defined(J)&&K.object(W)&&W.allowStream)q.buffer=[];else if(Array.isArray($))if($.length>1)if(!this.options.joining)this.options.joining=!0,this.options.join=$.map((Z)=>this._createInputDescriptor(Z));else throw Error("Recursive join is unsupported");else throw Error("Expected at least two images to join");else throw Error(`Unsupported input '${$}' of type ${typeof $}${K.defined(J)?` when also providing options of type ${typeof J}`:""}`);if(K.object(J)){if(K.defined(J.failOnError))if(K.bool(J.failOnError))q.failOn=J.failOnError?"warning":"none";else throw K.invalidParameterError("failOnError","boolean",J.failOnError);if(K.defined(J.failOn))if(K.string(J.failOn)&&K.inArray(J.failOn,["none","truncated","error","warning"]))q.failOn=J.failOn;else throw K.invalidParameterError("failOn","one of: none, truncated, error, warning",J.failOn);if(K.defined(J.autoOrient))if(K.bool(J.autoOrient))q.autoOrient=J.autoOrient;else throw K.invalidParameterError("autoOrient","boolean",J.autoOrient);if(K.defined(J.density))if(K.inRange(J.density,1,1e5))q.density=J.density;else throw K.invalidParameterError("density","number between 1 and 100000",J.density);if(K.defined(J.ignoreIcc))if(K.bool(J.ignoreIcc))q.ignoreIcc=J.ignoreIcc;else throw K.invalidParameterError("ignoreIcc","boolean",J.ignoreIcc);if(K.defined(J.limitInputPixels))if(K.bool(J.limitInputPixels))q.limitInputPixels=J.limitInputPixels?268402689:0;else if(K.integer(J.limitInputPixels)&&K.inRange(J.limitInputPixels,0,Number.MAX_SAFE_INTEGER))q.limitInputPixels=J.limitInputPixels;else throw K.invalidParameterError("limitInputPixels","positive integer",J.limitInputPixels);if(K.defined(J.unlimited))if(K.bool(J.unlimited))q.unlimited=J.unlimited;else throw K.invalidParameterError("unlimited","boolean",J.unlimited);if(K.defined(J.sequentialRead))if(K.bool(J.sequentialRead))q.sequentialRead=J.sequentialRead;else throw K.invalidParameterError("sequentialRead","boolean",J.sequentialRead);if(K.defined(J.raw)){if(K.object(J.raw)&&K.integer(J.raw.width)&&J.raw.width>0&&K.integer(J.raw.height)&&J.raw.height>0&&K.integer(J.raw.channels)&&K.inRange(J.raw.channels,1,4))switch(q.rawWidth=J.raw.width,q.rawHeight=J.raw.height,q.rawChannels=J.raw.channels,$.constructor){case Uint8Array:case Uint8ClampedArray:q.rawDepth="uchar";break;case Int8Array:q.rawDepth="char";break;case Uint16Array:q.rawDepth="ushort";break;case Int16Array:q.rawDepth="short";break;case Uint32Array:q.rawDepth="uint";break;case Int32Array:q.rawDepth="int";break;case Float32Array:q.rawDepth="float";break;case Float64Array:q.rawDepth="double";break;default:q.rawDepth="uchar";break}else throw Error("Expected width, height and channels for raw pixel input");if(q.rawPremultiplied=!1,K.defined(J.raw.premultiplied))if(K.bool(J.raw.premultiplied))q.rawPremultiplied=J.raw.premultiplied;else throw K.invalidParameterError("raw.premultiplied","boolean",J.raw.premultiplied);if(q.rawPageHeight=0,K.defined(J.raw.pageHeight))if(K.integer(J.raw.pageHeight)&&J.raw.pageHeight>0&&J.raw.pageHeight<=J.raw.height){if(J.raw.height%J.raw.pageHeight!==0)throw Error(`Expected raw.height ${J.raw.height} to be a multiple of raw.pageHeight ${J.raw.pageHeight}`);q.rawPageHeight=J.raw.pageHeight}else throw K.invalidParameterError("raw.pageHeight","positive integer",J.raw.pageHeight)}if(K.defined(J.animated))if(K.bool(J.animated))q.pages=J.animated?-1:1;else throw K.invalidParameterError("animated","boolean",J.animated);if(K.defined(J.pages))if(K.integer(J.pages)&&K.inRange(J.pages,-1,1e5))q.pages=J.pages;else throw K.invalidParameterError("pages","integer between -1 and 100000",J.pages);if(K.defined(J.page))if(K.integer(J.page)&&K.inRange(J.page,0,1e5))q.page=J.page;else throw K.invalidParameterError("page","integer between 0 and 100000",J.page);if(K.object(J.openSlide)&&K.defined(J.openSlide.level))if(K.integer(J.openSlide.level)&&K.inRange(J.openSlide.level,0,256))q.openSlideLevel=J.openSlide.level;else throw K.invalidParameterError("openSlide.level","integer between 0 and 256",J.openSlide.level);else if(K.defined(J.level))if(K.integer(J.level)&&K.inRange(J.level,0,256))q.openSlideLevel=J.level;else throw K.invalidParameterError("level","integer between 0 and 256",J.level);if(K.object(J.tiff)&&K.defined(J.tiff.subifd))if(K.integer(J.tiff.subifd)&&K.inRange(J.tiff.subifd,-1,1e5))q.tiffSubifd=J.tiff.subifd;else throw K.invalidParameterError("tiff.subifd","integer between -1 and 100000",J.tiff.subifd);else if(K.defined(J.subifd))if(K.integer(J.subifd)&&K.inRange(J.subifd,-1,1e5))q.tiffSubifd=J.subifd;else throw K.invalidParameterError("subifd","integer between -1 and 100000",J.subifd);if(K.object(J.svg)){if(K.defined(J.svg.stylesheet))if(K.string(J.svg.stylesheet))q.svgStylesheet=J.svg.stylesheet;else throw K.invalidParameterError("svg.stylesheet","string",J.svg.stylesheet);if(K.defined(J.svg.highBitdepth))if(K.bool(J.svg.highBitdepth))q.svgHighBitdepth=J.svg.highBitdepth;else throw K.invalidParameterError("svg.highBitdepth","boolean",J.svg.highBitdepth)}if(K.object(J.pdf)&&K.defined(J.pdf.background))q.pdfBackground=this._getBackgroundColourOption(J.pdf.background);else if(K.defined(J.pdfBackground))q.pdfBackground=this._getBackgroundColourOption(J.pdfBackground);if(K.object(J.jp2)&&K.defined(J.jp2.oneshot))if(K.bool(J.jp2.oneshot))q.jp2Oneshot=J.jp2.oneshot;else throw K.invalidParameterError("jp2.oneshot","boolean",J.jp2.oneshot);if(K.defined(J.create))if(K.object(J.create)&&K.integer(J.create.width)&&J.create.width>0&&K.integer(J.create.height)&&J.create.height>0&&K.integer(J.create.channels)){if(q.createWidth=J.create.width,q.createHeight=J.create.height,q.createChannels=J.create.channels,q.createPageHeight=0,K.defined(J.create.pageHeight))if(K.integer(J.create.pageHeight)&&J.create.pageHeight>0&&J.create.pageHeight<=J.create.height){if(J.create.height%J.create.pageHeight!==0)throw Error(`Expected create.height ${J.create.height} to be a multiple of create.pageHeight ${J.create.pageHeight}`);q.createPageHeight=J.create.pageHeight}else throw K.invalidParameterError("create.pageHeight","positive integer",J.create.pageHeight);if(K.defined(J.create.noise)){if(!K.object(J.create.noise))throw Error("Expected noise to be an object");if(J.create.noise.type!=="gaussian")throw Error("Only gaussian noise is supported at the moment");if(q.createNoiseType=J.create.noise.type,!K.inRange(J.create.channels,1,4))throw K.invalidParameterError("create.channels","number between 1 and 4",J.create.channels);if(q.createNoiseMean=128,K.defined(J.create.noise.mean))if(K.number(J.create.noise.mean)&&K.inRange(J.create.noise.mean,0,1e4))q.createNoiseMean=J.create.noise.mean;else throw K.invalidParameterError("create.noise.mean","number between 0 and 10000",J.create.noise.mean);if(q.createNoiseSigma=30,K.defined(J.create.noise.sigma))if(K.number(J.create.noise.sigma)&&K.inRange(J.create.noise.sigma,0,1e4))q.createNoiseSigma=J.create.noise.sigma;else throw K.invalidParameterError("create.noise.sigma","number between 0 and 10000",J.create.noise.sigma)}else if(K.defined(J.create.background)){if(!K.inRange(J.create.channels,3,4))throw K.invalidParameterError("create.channels","number between 3 and 4",J.create.channels);q.createBackground=this._getBackgroundColourOption(J.create.background)}else throw Error("Expected valid noise or background to create a new input image");delete q.buffer}else throw Error("Expected valid width, height and channels to create a new input image");if(K.defined(J.text))if(K.object(J.text)&&K.string(J.text.text)){if(q.textValue=J.text.text,K.defined(J.text.height)&&K.defined(J.text.dpi))throw Error("Expected only one of dpi or height");if(K.defined(J.text.font))if(K.string(J.text.font))q.textFont=J.text.font;else throw K.invalidParameterError("text.font","string",J.text.font);if(K.defined(J.text.fontfile))if(K.string(J.text.fontfile))q.textFontfile=J.text.fontfile;else throw K.invalidParameterError("text.fontfile","string",J.text.fontfile);if(K.defined(J.text.width))if(K.integer(J.text.width)&&J.text.width>0)q.textWidth=J.text.width;else throw K.invalidParameterError("text.width","positive integer",J.text.width);if(K.defined(J.text.height))if(K.integer(J.text.height)&&J.text.height>0)q.textHeight=J.text.height;else throw K.invalidParameterError("text.height","positive integer",J.text.height);if(K.defined(J.text.align))if(K.string(J.text.align)&&K.string(this.constructor.align[J.text.align]))q.textAlign=this.constructor.align[J.text.align];else throw K.invalidParameterError("text.align","valid alignment",J.text.align);if(K.defined(J.text.justify))if(K.bool(J.text.justify))q.textJustify=J.text.justify;else throw K.invalidParameterError("text.justify","boolean",J.text.justify);if(K.defined(J.text.dpi))if(K.integer(J.text.dpi)&&K.inRange(J.text.dpi,1,1e6))q.textDpi=J.text.dpi;else throw K.invalidParameterError("text.dpi","integer between 1 and 1000000",J.text.dpi);if(K.defined(J.text.rgba))if(K.bool(J.text.rgba))q.textRgba=J.text.rgba;else throw K.invalidParameterError("text.rgba","bool",J.text.rgba);if(K.defined(J.text.spacing))if(K.integer(J.text.spacing)&&K.inRange(J.text.spacing,-1e6,1e6))q.textSpacing=J.text.spacing;else throw K.invalidParameterError("text.spacing","integer between -1000000 and 1000000",J.text.spacing);if(K.defined(J.text.wrap))if(K.string(J.text.wrap)&&K.inArray(J.text.wrap,["word","char","word-char","none"]))q.textWrap=J.text.wrap;else throw K.invalidParameterError("text.wrap","one of: word, char, word-char, none",J.text.wrap);delete q.buffer}else throw Error("Expected a valid string to create an image with text.");if(K.defined(J.join))if(K.defined(this.options.join)){if(K.defined(J.join.animated))if(K.bool(J.join.animated))q.joinAnimated=J.join.animated;else throw K.invalidParameterError("join.animated","boolean",J.join.animated);if(K.defined(J.join.across))if(K.integer(J.join.across)&&K.inRange(J.join.across,1,1e6))q.joinAcross=J.join.across;else throw K.invalidParameterError("join.across","integer between 1 and 100000",J.join.across);if(K.defined(J.join.shim))if(K.integer(J.join.shim)&&K.inRange(J.join.shim,0,1e6))q.joinShim=J.join.shim;else throw K.invalidParameterError("join.shim","integer between 0 and 100000",J.join.shim);if(K.defined(J.join.background))q.joinBackground=this._getBackgroundColourOption(J.join.background);if(K.defined(J.join.halign))if(K.string(J.join.halign)&&K.string(this.constructor.align[J.join.halign]))q.joinHalign=this.constructor.align[J.join.halign];else throw K.invalidParameterError("join.halign","valid alignment",J.join.halign);if(K.defined(J.join.valign))if(K.string(J.join.valign)&&K.string(this.constructor.align[J.join.valign]))q.joinValign=this.constructor.align[J.join.valign];else throw K.invalidParameterError("join.valign","valid alignment",J.join.valign)}else throw Error("Expected input to be an array of images to join")}else if(K.defined(J))throw Error(`Invalid input options ${J}`);return q}function q$($,J,W){if(Array.isArray(this.options.input.buffer))if(K.buffer($)){if(this.options.input.buffer.length===0)this.on("finish",()=>{this.streamInFinished=!0});this.options.input.buffer.push($),W()}else W(Error("Non-Buffer data on Writable Stream"));else W(Error("Unexpected data on Writable Stream"))}function Z$(){if(this._isStreamInput())this.options.input.buffer=Buffer.concat(this.options.input.buffer)}function Q$(){return Array.isArray(this.options.input.buffer)}function U$($){let J=Error();if(K.fn($)){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),n.metadata(this.options,(W,q)=>{if(W)$(K.nativeError(W,J));else $(null,q)})});else n.metadata(this.options,(W,q)=>{if(W)$(K.nativeError(W,J));else $(null,q)});return this}else if(this._isStreamInput())return new Promise((W,q)=>{let Z=()=>{this._flattenBufferIn(),n.metadata(this.options,(U,Y)=>{if(U)q(K.nativeError(U,J));else W(Y)})};if(this.writableFinished)Z();else this.once("finish",Z)});else return new Promise((W,q)=>{n.metadata(this.options,(Z,U)=>{if(Z)q(K.nativeError(Z,J));else W(U)})})}function Y$($){let J=Error();if(K.fn($)){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),n.stats(this.options,(W,q)=>{if(W)$(K.nativeError(W,J));else $(null,q)})});else n.stats(this.options,(W,q)=>{if(W)$(K.nativeError(W,J));else $(null,q)});return this}else if(this._isStreamInput())return new Promise((W,q)=>{this.on("finish",function(){this._flattenBufferIn(),n.stats(this.options,(Z,U)=>{if(Z)q(K.nativeError(Z,J));else W(U)})})});else return new Promise((W,q)=>{n.stats(this.options,(Z,U)=>{if(Z)q(K.nativeError(Z,J));else W(U)})})}n1.exports=($)=>{Object.assign($.prototype,{_inputOptionsFromObject:p1,_createInputDescriptor:W$,_write:q$,_flattenBufferIn:Z$,_isStreamInput:Q$,metadata:U$,stats:Y$}),$.align=$$}});var W6=A((sW,J6)=>{/*!
19
- Copyright 2013 Lovell Fuller and others.
20
- SPDX-License-Identifier: Apache-2.0
21
- */var E=b(),i1={center:0,centre:0,north:1,east:2,south:3,west:4,northeast:5,southeast:6,southwest:7,northwest:8},o1={top:1,right:2,bottom:3,left:4,"right top":5,"right bottom":6,"left bottom":7,"left top":8},t1={background:"background",copy:"copy",repeat:"repeat",mirror:"mirror"},$6={entropy:16,attention:17},J4={nearest:"nearest",linear:"linear",cubic:"cubic",mitchell:"mitchell",lanczos2:"lanczos2",lanczos3:"lanczos3",mks2013:"mks2013",mks2021:"mks2021"},K$={contain:"contain",cover:"cover",fill:"fill",inside:"inside",outside:"outside"},H$={contain:"embed",cover:"crop",fill:"ignore_aspect",inside:"max",outside:"min"};function W4($){return $.angle%360!==0||$.rotationAngle!==0}function f0($){return $.width!==-1||$.height!==-1}function I$($,J,W){if(f0(this.options))this.options.debuglog("ignoring previous resize options");if(this.options.widthPost!==-1)this.options.debuglog("operation order will be: extract, resize, extract");if(E.defined($))if(E.object($)&&!E.defined(W))W=$;else if(E.integer($)&&$>0)this.options.width=$;else throw E.invalidParameterError("width","positive integer",$);else this.options.width=-1;if(E.defined(J))if(E.integer(J)&&J>0)this.options.height=J;else throw E.invalidParameterError("height","positive integer",J);else this.options.height=-1;if(E.object(W)){if(E.defined(W.width))if(E.integer(W.width)&&W.width>0)this.options.width=W.width;else throw E.invalidParameterError("width","positive integer",W.width);if(E.defined(W.height))if(E.integer(W.height)&&W.height>0)this.options.height=W.height;else throw E.invalidParameterError("height","positive integer",W.height);if(E.defined(W.fit)){let q=H$[W.fit];if(E.string(q))this.options.canvas=q;else throw E.invalidParameterError("fit","valid fit",W.fit)}if(E.defined(W.position)){let q=E.integer(W.position)?W.position:$6[W.position]||o1[W.position]||i1[W.position];if(E.integer(q)&&(E.inRange(q,0,8)||E.inRange(q,16,17)))this.options.position=q;else throw E.invalidParameterError("position","valid position/gravity/strategy",W.position)}if(this._setBackgroundColourOption("resizeBackground",W.background),E.defined(W.kernel))if(E.string(J4[W.kernel]))this.options.kernel=J4[W.kernel];else throw E.invalidParameterError("kernel","valid kernel name",W.kernel);if(E.defined(W.withoutEnlargement))this._setBooleanOption("withoutEnlargement",W.withoutEnlargement);if(E.defined(W.withoutReduction))this._setBooleanOption("withoutReduction",W.withoutReduction);if(E.defined(W.fastShrinkOnLoad))this._setBooleanOption("fastShrinkOnLoad",W.fastShrinkOnLoad)}if(W4(this.options)&&f0(this.options))this.options.rotateBefore=!0;return this}function G$($){if(E.integer($)&&$>0)this.options.extendTop=$,this.options.extendBottom=$,this.options.extendLeft=$,this.options.extendRight=$;else if(E.object($)){if(E.defined($.top))if(E.integer($.top)&&$.top>=0)this.options.extendTop=$.top;else throw E.invalidParameterError("top","positive integer",$.top);if(E.defined($.bottom))if(E.integer($.bottom)&&$.bottom>=0)this.options.extendBottom=$.bottom;else throw E.invalidParameterError("bottom","positive integer",$.bottom);if(E.defined($.left))if(E.integer($.left)&&$.left>=0)this.options.extendLeft=$.left;else throw E.invalidParameterError("left","positive integer",$.left);if(E.defined($.right))if(E.integer($.right)&&$.right>=0)this.options.extendRight=$.right;else throw E.invalidParameterError("right","positive integer",$.right);if(this._setBackgroundColourOption("extendBackground",$.background),E.defined($.extendWith))if(E.string(t1[$.extendWith]))this.options.extendWith=t1[$.extendWith];else throw E.invalidParameterError("extendWith","one of: background, copy, repeat, mirror",$.extendWith)}else throw E.invalidParameterError("extend","integer or object",$);return this}function X$($){let J=f0(this.options)||this.options.widthPre!==-1?"Post":"Pre";if(this.options[`width${J}`]!==-1)this.options.debuglog("ignoring previous extract options");if(["left","top","width","height"].forEach(function(W){let q=$[W];if(E.integer(q)&&q>=0)this.options[W+(W==="left"||W==="top"?"Offset":"")+J]=q;else throw E.invalidParameterError(W,"integer",q)},this),W4(this.options)&&!f0(this.options)){if(this.options.widthPre===-1||this.options.widthPost===-1)this.options.rotateBefore=!0}if(this.options.input.autoOrient)this.options.orientBefore=!0;return this}function B$($){if(this.options.trimThreshold=10,E.defined($))if(E.object($)){if(E.defined($.background))this._setBackgroundColourOption("trimBackground",$.background);if(E.defined($.threshold))if(E.number($.threshold)&&$.threshold>=0)this.options.trimThreshold=$.threshold;else throw E.invalidParameterError("threshold","positive number",$.threshold);if(E.defined($.lineArt))this._setBooleanOption("trimLineArt",$.lineArt)}else throw E.invalidParameterError("trim","object",$);if(W4(this.options))this.options.rotateBefore=!0;return this}J6.exports=($)=>{Object.assign($.prototype,{resize:I$,extend:G$,extract:X$,trim:B$}),$.gravity=i1,$.strategy=$6,$.kernel=J4,$.fit=K$,$.position=o1}});var Z6=A((tW,q6)=>{/*!
22
- Copyright 2013 Lovell Fuller and others.
23
- SPDX-License-Identifier: Apache-2.0
24
- */var R=b(),q4={clear:"clear",source:"source",over:"over",in:"in",out:"out",atop:"atop",dest:"dest","dest-over":"dest-over","dest-in":"dest-in","dest-out":"dest-out","dest-atop":"dest-atop",xor:"xor",add:"add",saturate:"saturate",multiply:"multiply",screen:"screen",overlay:"overlay",darken:"darken",lighten:"lighten","colour-dodge":"colour-dodge","color-dodge":"colour-dodge","colour-burn":"colour-burn","color-burn":"colour-burn","hard-light":"hard-light","soft-light":"soft-light",difference:"difference",exclusion:"exclusion"};function P$($){if(!Array.isArray($))throw R.invalidParameterError("images to composite","array",$);return this.options.composite=$.map((J)=>{if(!R.object(J))throw R.invalidParameterError("image to composite","object",J);let W=this._inputOptionsFromObject(J),q={input:this._createInputDescriptor(J.input,W,{allowStream:!1}),blend:"over",tile:!1,left:0,top:0,hasOffset:!1,gravity:0,premultiplied:!1};if(R.defined(J.blend))if(R.string(q4[J.blend]))q.blend=q4[J.blend];else throw R.invalidParameterError("blend","valid blend name",J.blend);if(R.defined(J.tile))if(R.bool(J.tile))q.tile=J.tile;else throw R.invalidParameterError("tile","boolean",J.tile);if(R.defined(J.left))if(R.integer(J.left))q.left=J.left;else throw R.invalidParameterError("left","integer",J.left);if(R.defined(J.top))if(R.integer(J.top))q.top=J.top;else throw R.invalidParameterError("top","integer",J.top);if(R.defined(J.top)!==R.defined(J.left))throw Error("Expected both left and top to be set");else q.hasOffset=R.integer(J.top)&&R.integer(J.left);if(R.defined(J.gravity))if(R.integer(J.gravity)&&R.inRange(J.gravity,0,8))q.gravity=J.gravity;else if(R.string(J.gravity)&&R.integer(this.constructor.gravity[J.gravity]))q.gravity=this.constructor.gravity[J.gravity];else throw R.invalidParameterError("gravity","valid gravity",J.gravity);if(R.defined(J.premultiplied))if(R.bool(J.premultiplied))q.premultiplied=J.premultiplied;else throw R.invalidParameterError("premultiplied","boolean",J.premultiplied);return q}),this}q6.exports=($)=>{$.prototype.composite=P$,$.blend=q4}});var H6=A((iW,K6)=>{/*!
25
- Copyright 2013 Lovell Fuller and others.
26
- SPDX-License-Identifier: Apache-2.0
27
- */var I=b(),Q6={integer:"integer",float:"float",approximate:"approximate"};function N$($,J){if(!I.defined($))return this.autoOrient();if(this.options.angle||this.options.rotationAngle)this.options.debuglog("ignoring previous rotate options"),this.options.angle=0,this.options.rotationAngle=0;if(I.integer($)&&!($%90))this.options.angle=$;else if(I.number($)){if(this.options.rotationAngle=$,I.object(J)&&J.background)this._setBackgroundColourOption("rotationBackground",J.background)}else throw I.invalidParameterError("angle","numeric",$);return this}function E$(){return this.options.input.autoOrient=!0,this}function V$($){return this.options.flip=I.bool($)?$:!0,this}function z$($){return this.options.flop=I.bool($)?$:!0,this}function A$($,J){let W=[].concat(...$);if(W.length===4&&W.every(I.number))this.options.affineMatrix=W;else throw I.invalidParameterError("matrix","1x4 or 2x2 array",$);if(I.defined(J))if(I.object(J)){if(this._setBackgroundColourOption("affineBackground",J.background),I.defined(J.idx))if(I.number(J.idx))this.options.affineIdx=J.idx;else throw I.invalidParameterError("options.idx","number",J.idx);if(I.defined(J.idy))if(I.number(J.idy))this.options.affineIdy=J.idy;else throw I.invalidParameterError("options.idy","number",J.idy);if(I.defined(J.odx))if(I.number(J.odx))this.options.affineOdx=J.odx;else throw I.invalidParameterError("options.odx","number",J.odx);if(I.defined(J.ody))if(I.number(J.ody))this.options.affineOdy=J.ody;else throw I.invalidParameterError("options.ody","number",J.ody);if(I.defined(J.interpolator))if(I.inArray(J.interpolator,Object.values(this.constructor.interpolators)))this.options.affineInterpolator=J.interpolator;else throw I.invalidParameterError("options.interpolator","valid interpolator name",J.interpolator)}else throw I.invalidParameterError("options","object",J);return this}function R$($,J,W){if(!I.defined($))this.options.sharpenSigma=-1;else if(I.bool($))this.options.sharpenSigma=$?-1:0;else if(I.number($)&&I.inRange($,0.01,1e4)){if(this.options.sharpenSigma=$,I.defined(J))if(I.number(J)&&I.inRange(J,0,1e4))this.options.sharpenM1=J;else throw I.invalidParameterError("flat","number between 0 and 10000",J);if(I.defined(W))if(I.number(W)&&I.inRange(W,0,1e4))this.options.sharpenM2=W;else throw I.invalidParameterError("jagged","number between 0 and 10000",W)}else if(I.plainObject($)){if(I.number($.sigma)&&I.inRange($.sigma,0.000001,10))this.options.sharpenSigma=$.sigma;else throw I.invalidParameterError("options.sigma","number between 0.000001 and 10",$.sigma);if(I.defined($.m1))if(I.number($.m1)&&I.inRange($.m1,0,1e6))this.options.sharpenM1=$.m1;else throw I.invalidParameterError("options.m1","number between 0 and 1000000",$.m1);if(I.defined($.m2))if(I.number($.m2)&&I.inRange($.m2,0,1e6))this.options.sharpenM2=$.m2;else throw I.invalidParameterError("options.m2","number between 0 and 1000000",$.m2);if(I.defined($.x1))if(I.number($.x1)&&I.inRange($.x1,0,1e6))this.options.sharpenX1=$.x1;else throw I.invalidParameterError("options.x1","number between 0 and 1000000",$.x1);if(I.defined($.y2))if(I.number($.y2)&&I.inRange($.y2,0,1e6))this.options.sharpenY2=$.y2;else throw I.invalidParameterError("options.y2","number between 0 and 1000000",$.y2);if(I.defined($.y3))if(I.number($.y3)&&I.inRange($.y3,0,1e6))this.options.sharpenY3=$.y3;else throw I.invalidParameterError("options.y3","number between 0 and 1000000",$.y3)}else throw I.invalidParameterError("sigma","number between 0.01 and 10000",$);return this}function L$($){if(!I.defined($))this.options.medianSize=3;else if(I.integer($)&&I.inRange($,1,1000))this.options.medianSize=$;else throw I.invalidParameterError("size","integer between 1 and 1000",$);return this}function D$($){let J;if(I.number($))J=$;else if(I.plainObject($)){if(!I.number($.sigma))throw I.invalidParameterError("options.sigma","number between 0.3 and 1000",J);if(J=$.sigma,"precision"in $)if(I.string(Q6[$.precision]))this.options.precision=Q6[$.precision];else throw I.invalidParameterError("precision","one of: integer, float, approximate",$.precision);if("minAmplitude"in $)if(I.number($.minAmplitude)&&I.inRange($.minAmplitude,0.001,1))this.options.minAmpl=$.minAmplitude;else throw I.invalidParameterError("minAmplitude","number between 0.001 and 1",$.minAmplitude)}if(!I.defined($))this.options.blurSigma=-1;else if(I.bool($))this.options.blurSigma=$?-1:0;else if(I.number(J)&&I.inRange(J,0.3,1000))this.options.blurSigma=J;else throw I.invalidParameterError("sigma","number between 0.3 and 1000",J);return this}function U6($){if(!I.defined($))this.options.dilateWidth=1;else if(I.integer($)&&$>0)this.options.dilateWidth=$;else throw I.invalidParameterError("dilate","positive integer",U6);return this}function Y6($){if(!I.defined($))this.options.erodeWidth=1;else if(I.integer($)&&$>0)this.options.erodeWidth=$;else throw I.invalidParameterError("erode","positive integer",Y6);return this}function j$($){if(this.options.flatten=I.bool($)?$:!0,I.object($))this._setBackgroundColourOption("flattenBackground",$.background);return this}function F$(){return this.options.unflatten=!0,this}function T$($,J){if(!I.defined($))this.options.gamma=2.2;else if(I.number($)&&I.inRange($,1,3))this.options.gamma=$;else throw I.invalidParameterError("gamma","number between 1.0 and 3.0",$);if(!I.defined(J))this.options.gammaOut=this.options.gamma;else if(I.number(J)&&I.inRange(J,1,3))this.options.gammaOut=J;else throw I.invalidParameterError("gammaOut","number between 1.0 and 3.0",J);return this}function C$($){if(this.options.negate=I.bool($)?$:!0,I.plainObject($)&&"alpha"in $)if(!I.bool($.alpha))throw I.invalidParameterError("alpha","should be boolean value",$.alpha);else this.options.negateAlpha=$.alpha;return this}function w$($){if(I.plainObject($)){if(I.defined($.lower))if(I.number($.lower)&&I.inRange($.lower,0,99))this.options.normaliseLower=$.lower;else throw I.invalidParameterError("lower","number between 0 and 99",$.lower);if(I.defined($.upper))if(I.number($.upper)&&I.inRange($.upper,1,100))this.options.normaliseUpper=$.upper;else throw I.invalidParameterError("upper","number between 1 and 100",$.upper)}if(this.options.normaliseLower>=this.options.normaliseUpper)throw I.invalidParameterError("range","lower to be less than upper",`${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);return this.options.normalise=!0,this}function S$($){return this.normalise($)}function M$($){if(I.plainObject($)){if(I.integer($.width)&&$.width>0)this.options.claheWidth=$.width;else throw I.invalidParameterError("width","integer greater than zero",$.width);if(I.integer($.height)&&$.height>0)this.options.claheHeight=$.height;else throw I.invalidParameterError("height","integer greater than zero",$.height);if(I.defined($.maxSlope))if(I.integer($.maxSlope)&&I.inRange($.maxSlope,0,100))this.options.claheMaxSlope=$.maxSlope;else throw I.invalidParameterError("maxSlope","integer between 0 and 100",$.maxSlope)}else throw I.invalidParameterError("options","plain object",$);return this}function _$($){if(!I.object($)||!Array.isArray($.kernel)||!I.integer($.width)||!I.integer($.height)||!I.inRange($.width,3,1001)||!I.inRange($.height,3,1001)||$.height*$.width!==$.kernel.length)throw Error("Invalid convolution kernel");if(!I.integer($.scale))$.scale=$.kernel.reduce((J,W)=>J+W,0);if($.scale<1)$.scale=1;if(!I.integer($.offset))$.offset=0;return this.options.convKernel=$,this}function k$($,J){if(!I.defined($))this.options.threshold=128;else if(I.bool($))this.options.threshold=$?128:0;else if(I.integer($)&&I.inRange($,0,255))this.options.threshold=$;else throw I.invalidParameterError("threshold","integer between 0 and 255",$);if(!I.object(J)||J.greyscale===!0||J.grayscale===!0)this.options.thresholdGrayscale=!0;else this.options.thresholdGrayscale=!1;return this}function x$($,J,W){if(this.options.boolean=this._createInputDescriptor($,W),I.string(J)&&I.inArray(J,["and","or","eor"]))this.options.booleanOp=J;else throw I.invalidParameterError("operator","one of: and, or, eor",J);return this}function y$($,J){if(!I.defined($)&&I.number(J))$=1;else if(I.number($)&&!I.defined(J))J=0;if(!I.defined($))this.options.linearA=[];else if(I.number($))this.options.linearA=[$];else if(Array.isArray($)&&$.length&&$.every(I.number))this.options.linearA=$;else throw I.invalidParameterError("a","number or array of numbers",$);if(!I.defined(J))this.options.linearB=[];else if(I.number(J))this.options.linearB=[J];else if(Array.isArray(J)&&J.length&&J.every(I.number))this.options.linearB=J;else throw I.invalidParameterError("b","number or array of numbers",J);if(this.options.linearA.length!==this.options.linearB.length)throw Error("Expected a and b to be arrays of the same length");return this}function f$($){if(!Array.isArray($))throw I.invalidParameterError("inputMatrix","array",$);if($.length!==3&&$.length!==4)throw I.invalidParameterError("inputMatrix","3x3 or 4x4 array",$.length);let J=$.flat().map(Number);if(J.length!==9&&J.length!==16)throw I.invalidParameterError("inputMatrix","cardinality of 9 or 16",J.length);return this.options.recombMatrix=J,this}function v$($){if(!I.plainObject($))throw I.invalidParameterError("options","plain object",$);if("brightness"in $)if(I.number($.brightness)&&$.brightness>=0)this.options.brightness=$.brightness;else throw I.invalidParameterError("brightness","number above zero",$.brightness);if("saturation"in $)if(I.number($.saturation)&&$.saturation>=0)this.options.saturation=$.saturation;else throw I.invalidParameterError("saturation","number above zero",$.saturation);if("hue"in $)if(I.integer($.hue))this.options.hue=$.hue%360;else throw I.invalidParameterError("hue","number",$.hue);if("lightness"in $)if(I.number($.lightness))this.options.lightness=$.lightness;else throw I.invalidParameterError("lightness","number",$.lightness);return this}K6.exports=($)=>{Object.assign($.prototype,{autoOrient:E$,rotate:N$,flip:V$,flop:z$,affine:A$,sharpen:R$,erode:Y6,dilate:U6,median:L$,blur:D$,flatten:j$,unflatten:F$,gamma:T$,negate:C$,normalise:w$,normalize:S$,clahe:M$,convolve:_$,threshold:k$,boolean:x$,linear:y$,recomb:f$,modulate:v$})}});var N6=A((oW,P6)=>{var{defineProperty:Y4,getOwnPropertyDescriptor:d$,getOwnPropertyNames:b$}=Object,O$=Object.prototype.hasOwnProperty,h$=($,J)=>{for(var W in J)Y4($,W,{get:J[W],enumerable:!0})},g$=($,J,W,q)=>{if(J&&typeof J==="object"||typeof J==="function"){for(let Z of b$(J))if(!O$.call($,Z)&&Z!==W)Y4($,Z,{get:()=>J[Z],enumerable:!(q=d$(J,Z))||q.enumerable})}return $},m$=($)=>g$(Y4({},"__esModule",{value:!0}),$),I6={};h$(I6,{default:()=>JJ});P6.exports=m$(I6);var u={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},G6=Object.create(null);for(let $ in u)if(Object.hasOwn(u,$))G6[u[$]]=$;var k={to:{},get:{}};k.get=function($){let J=$.slice(0,3).toLowerCase(),W,q;switch(J){case"hsl":{W=k.get.hsl($),q="hsl";break}case"hwb":{W=k.get.hwb($),q="hwb";break}default:{W=k.get.rgb($),q="rgb";break}}if(!W)return null;return{model:q,value:W}};k.get.rgb=function($){if(!$)return null;let J=/^#([a-f\d]{3,4})$/i,W=/^#([a-f\d]{6})([a-f\d]{2})?$/i,q=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/,Z=/^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/,U=/^(\w+)$/,Y=[0,0,0,1],H,G,X;if(H=$.match(W)){X=H[2],H=H[1];for(G=0;G<3;G++){let V=G*2;Y[G]=Number.parseInt(H.slice(V,V+2),16)}if(X)Y[3]=Number.parseInt(X,16)/255}else if(H=$.match(J)){H=H[1],X=H[3];for(G=0;G<3;G++)Y[G]=Number.parseInt(H[G]+H[G],16);if(X)Y[3]=Number.parseInt(X+X,16)/255}else if(H=$.match(q)){for(G=0;G<3;G++)Y[G]=Number.parseInt(H[G+1],10);if(H[4])Y[3]=H[5]?Number.parseFloat(H[4])*0.01:Number.parseFloat(H[4])}else if(H=$.match(Z)){for(G=0;G<3;G++)Y[G]=Math.round(Number.parseFloat(H[G+1])*2.55);if(H[4])Y[3]=H[5]?Number.parseFloat(H[4])*0.01:Number.parseFloat(H[4])}else if(H=$.match(U)){if(H[1]==="transparent")return[0,0,0,0];if(!Object.hasOwn(u,H[1]))return null;return Y=u[H[1]],Y[3]=1,Y}else return null;for(G=0;G<3;G++)Y[G]=s(Y[G],0,255);return Y[3]=s(Y[3],0,1),Y};k.get.hsl=function($){if(!$)return null;let J=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,W=$.match(J);if(W){let q=Number.parseFloat(W[4]),Z=(Number.parseFloat(W[1])%360+360)%360,U=s(Number.parseFloat(W[2]),0,100),Y=s(Number.parseFloat(W[3]),0,100),H=s(Number.isNaN(q)?1:q,0,1);return[Z,U,Y,H]}return null};k.get.hwb=function($){if(!$)return null;let J=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*[\s,]\s*([+-]?[\d.]+)%\s*[\s,]\s*([+-]?[\d.]+)%\s*(?:[\s,]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,W=$.match(J);if(W){let q=Number.parseFloat(W[4]),Z=(Number.parseFloat(W[1])%360+360)%360,U=s(Number.parseFloat(W[2]),0,100),Y=s(Number.parseFloat(W[3]),0,100),H=s(Number.isNaN(q)?1:q,0,1);return[Z,U,Y,H]}return null};k.to.hex=function(...$){return"#"+v0($[0])+v0($[1])+v0($[2])+($[3]<1?v0(Math.round($[3]*255)):"")};k.to.rgb=function(...$){return $.length<4||$[3]===1?"rgb("+Math.round($[0])+", "+Math.round($[1])+", "+Math.round($[2])+")":"rgba("+Math.round($[0])+", "+Math.round($[1])+", "+Math.round($[2])+", "+$[3]+")"};k.to.rgb.percent=function(...$){let J=Math.round($[0]/255*100),W=Math.round($[1]/255*100),q=Math.round($[2]/255*100);return $.length<4||$[3]===1?"rgb("+J+"%, "+W+"%, "+q+"%)":"rgba("+J+"%, "+W+"%, "+q+"%, "+$[3]+")"};k.to.hsl=function(...$){return $.length<4||$[3]===1?"hsl("+$[0]+", "+$[1]+"%, "+$[2]+"%)":"hsla("+$[0]+", "+$[1]+"%, "+$[2]+"%, "+$[3]+")"};k.to.hwb=function(...$){let J="";if($.length>=4&&$[3]!==1)J=", "+$[3];return"hwb("+$[0]+", "+$[1]+"%, "+$[2]+"%"+J+")"};k.to.keyword=function(...$){return G6[$.slice(0,3)]};function s($,J,W){return Math.min(Math.max(J,$),W)}function v0($){let J=Math.round($).toString(16).toUpperCase();return J.length<2?"0"+J:J}var K0=k,X6={};for(let $ of Object.keys(u))X6[u[$]]=$;var B={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},oklab:{channels:3,labels:["okl","oka","okb"]},lch:{channels:3,labels:"lch"},oklch:{channels:3,labels:["okl","okc","okh"]},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}},W0=B,a=0.008856451679035631;function I0($){let J=$>0.0031308?1.055*$**0.4166666666666667-0.055:$*12.92;return Math.min(Math.max(0,J),1)}function G0($){return $>0.04045?(($+0.055)/1.055)**2.4:$/12.92}for(let $ of Object.keys(B)){if(!("channels"in B[$]))throw Error("missing channels property: "+$);if(!("labels"in B[$]))throw Error("missing channel labels property: "+$);if(B[$].labels.length!==B[$].channels)throw Error("channel and label counts mismatch: "+$);let{channels:J,labels:W}=B[$];delete B[$].channels,delete B[$].labels,Object.defineProperty(B[$],"channels",{value:J}),Object.defineProperty(B[$],"labels",{value:W})}B.rgb.hsl=function($){let J=$[0]/255,W=$[1]/255,q=$[2]/255,Z=Math.min(J,W,q),U=Math.max(J,W,q),Y=U-Z,H,G;switch(U){case Z:{H=0;break}case J:{H=(W-q)/Y;break}case W:{H=2+(q-J)/Y;break}case q:{H=4+(J-W)/Y;break}}if(H=Math.min(H*60,360),H<0)H+=360;let X=(Z+U)/2;if(U===Z)G=0;else if(X<=0.5)G=Y/(U+Z);else G=Y/(2-U-Z);return[H,G*100,X*100]};B.rgb.hsv=function($){let J,W,q,Z,U,Y=$[0]/255,H=$[1]/255,G=$[2]/255,X=Math.max(Y,H,G),V=X-Math.min(Y,H,G),L=function(x){return(X-x)/6/V+0.5};if(V===0)Z=0,U=0;else{switch(U=V/X,J=L(Y),W=L(H),q=L(G),X){case Y:{Z=q-W;break}case H:{Z=0.3333333333333333+J-q;break}case G:{Z=0.6666666666666666+W-J;break}}if(Z<0)Z+=1;else if(Z>1)Z-=1}return[Z*360,U*100,X*100]};B.rgb.hwb=function($){let J=$[0],W=$[1],q=$[2],Z=B.rgb.hsl($)[0],U=0.00392156862745098*Math.min(J,Math.min(W,q));return q=1-0.00392156862745098*Math.max(J,Math.max(W,q)),[Z,U*100,q*100]};B.rgb.oklab=function($){let J=G0($[0]/255),W=G0($[1]/255),q=G0($[2]/255),Z=Math.cbrt(0.4122214708*J+0.5363325363*W+0.0514459929*q),U=Math.cbrt(0.2119034982*J+0.6806995451*W+0.1073969566*q),Y=Math.cbrt(0.0883024619*J+0.2817188376*W+0.6299787005*q),H=0.2104542553*Z+0.793617785*U-0.0040720468*Y,G=1.9779984951*Z-2.428592205*U+0.4505937099*Y,X=0.0259040371*Z+0.7827717662*U-0.808675766*Y;return[H*100,G*100,X*100]};B.rgb.cmyk=function($){let J=$[0]/255,W=$[1]/255,q=$[2]/255,Z=Math.min(1-J,1-W,1-q),U=(1-J-Z)/(1-Z)||0,Y=(1-W-Z)/(1-Z)||0,H=(1-q-Z)/(1-Z)||0;return[U*100,Y*100,H*100,Z*100]};function u$($,J){return($[0]-J[0])**2+($[1]-J[1])**2+($[2]-J[2])**2}B.rgb.keyword=function($){let J=X6[$];if(J)return J;let W=Number.POSITIVE_INFINITY,q;for(let Z of Object.keys(u)){let U=u[Z],Y=u$($,U);if(Y<W)W=Y,q=Z}return q};B.keyword.rgb=function($){return u[$]};B.rgb.xyz=function($){let J=G0($[0]/255),W=G0($[1]/255),q=G0($[2]/255),Z=J*0.4124564+W*0.3575761+q*0.1804375,U=J*0.2126729+W*0.7151522+q*0.072175,Y=J*0.0193339+W*0.119192+q*0.9503041;return[Z*100,U*100,Y*100]};B.rgb.lab=function($){let J=B.rgb.xyz($),W=J[0],q=J[1],Z=J[2];W/=95.047,q/=100,Z/=108.883,W=W>a?W**0.3333333333333333:7.787*W+0.13793103448275862,q=q>a?q**0.3333333333333333:7.787*q+0.13793103448275862,Z=Z>a?Z**0.3333333333333333:7.787*Z+0.13793103448275862;let U=116*q-16,Y=500*(W-q),H=200*(q-Z);return[U,Y,H]};B.hsl.rgb=function($){let J=$[0]/360,W=$[1]/100,q=$[2]/100,Z,U;if(W===0)return U=q*255,[U,U,U];let Y=q<0.5?q*(1+W):q+W-q*W,H=2*q-Y,G=[0,0,0];for(let X=0;X<3;X++){if(Z=J+0.3333333333333333*-(X-1),Z<0)Z++;if(Z>1)Z--;if(6*Z<1)U=H+(Y-H)*6*Z;else if(2*Z<1)U=Y;else if(3*Z<2)U=H+(Y-H)*(0.6666666666666666-Z)*6;else U=H;G[X]=U*255}return G};B.hsl.hsv=function($){let J=$[0],W=$[1]/100,q=$[2]/100,Z=W,U=Math.max(q,0.01);q*=2,W*=q<=1?q:2-q,Z*=U<=1?U:2-U;let Y=(q+W)/2,H=q===0?2*Z/(U+Z):2*W/(q+W);return[J,H*100,Y*100]};B.hsv.rgb=function($){let J=$[0]/60,W=$[1]/100,q=$[2]/100,Z=Math.floor(J)%6,U=J-Math.floor(J),Y=255*q*(1-W),H=255*q*(1-W*U),G=255*q*(1-W*(1-U));switch(q*=255,Z){case 0:return[q,G,Y];case 1:return[H,q,Y];case 2:return[Y,q,G];case 3:return[Y,H,q];case 4:return[G,Y,q];case 5:return[q,Y,H]}};B.hsv.hsl=function($){let J=$[0],W=$[1]/100,q=$[2]/100,Z=Math.max(q,0.01),U,Y;Y=(2-W)*q;let H=(2-W)*Z;return U=W*Z,U/=H<=1?H:2-H,U=U||0,Y/=2,[J,U*100,Y*100]};B.hwb.rgb=function($){let J=$[0]/360,W=$[1]/100,q=$[2]/100,Z=W+q,U;if(Z>1)W/=Z,q/=Z;let Y=Math.floor(6*J),H=1-q;if(U=6*J-Y,(Y&1)!==0)U=1-U;let G=W+U*(H-W),X,V,L;switch(Y){default:case 6:case 0:{X=H,V=G,L=W;break}case 1:{X=G,V=H,L=W;break}case 2:{X=W,V=H,L=G;break}case 3:{X=W,V=G,L=H;break}case 4:{X=G,V=W,L=H;break}case 5:{X=H,V=W,L=G;break}}return[X*255,V*255,L*255]};B.cmyk.rgb=function($){let J=$[0]/100,W=$[1]/100,q=$[2]/100,Z=$[3]/100,U=1-Math.min(1,J*(1-Z)+Z),Y=1-Math.min(1,W*(1-Z)+Z),H=1-Math.min(1,q*(1-Z)+Z);return[U*255,Y*255,H*255]};B.xyz.rgb=function($){let J=$[0]/100,W=$[1]/100,q=$[2]/100,Z,U,Y;return Z=J*3.2404542+W*-1.5371385+q*-0.4985314,U=J*-0.969266+W*1.8760108+q*0.041556,Y=J*0.0556434+W*-0.2040259+q*1.0572252,Z=I0(Z),U=I0(U),Y=I0(Y),[Z*255,U*255,Y*255]};B.xyz.lab=function($){let J=$[0],W=$[1],q=$[2];J/=95.047,W/=100,q/=108.883,J=J>a?J**0.3333333333333333:7.787*J+0.13793103448275862,W=W>a?W**0.3333333333333333:7.787*W+0.13793103448275862,q=q>a?q**0.3333333333333333:7.787*q+0.13793103448275862;let Z=116*W-16,U=500*(J-W),Y=200*(W-q);return[Z,U,Y]};B.xyz.oklab=function($){let J=$[0]/100,W=$[1]/100,q=$[2]/100,Z=Math.cbrt(0.8189330101*J+0.3618667424*W-0.1288597137*q),U=Math.cbrt(0.0329845436*J+0.9293118715*W+0.0361456387*q),Y=Math.cbrt(0.0482003018*J+0.2643662691*W+0.633851707*q),H=0.2104542553*Z+0.793617785*U-0.0040720468*Y,G=1.9779984951*Z-2.428592205*U+0.4505937099*Y,X=0.0259040371*Z+0.7827717662*U-0.808675766*Y;return[H*100,G*100,X*100]};B.oklab.oklch=function($){return B.lab.lch($)};B.oklab.xyz=function($){let J=$[0]/100,W=$[1]/100,q=$[2]/100,Z=(0.999999998*J+0.396337792*W+0.215803758*q)**3,U=(1.000000008*J-0.105561342*W-0.063854175*q)**3,Y=(1.000000055*J-0.089484182*W-1.291485538*q)**3,H=1.227013851*Z-0.55779998*U+0.281256149*Y,G=-0.040580178*Z+1.11225687*U-0.071676679*Y,X=-0.076381285*Z-0.421481978*U+1.58616322*Y;return[H*100,G*100,X*100]};B.oklab.rgb=function($){let J=$[0]/100,W=$[1]/100,q=$[2]/100,Z=(J+0.3963377774*W+0.2158037573*q)**3,U=(J-0.1055613458*W-0.0638541728*q)**3,Y=(J-0.0894841775*W-1.291485548*q)**3,H=I0(4.0767416621*Z-3.3077115913*U+0.2309699292*Y),G=I0(-1.2684380046*Z+2.6097574011*U-0.3413193965*Y),X=I0(-0.0041960863*Z-0.7034186147*U+1.707614701*Y);return[H*255,G*255,X*255]};B.oklch.oklab=function($){return B.lch.lab($)};B.lab.xyz=function($){let J=$[0],W=$[1],q=$[2],Z,U,Y;U=(J+16)/116,Z=W/500+U,Y=U-q/200;let H=U**3,G=Z**3,X=Y**3;return U=H>a?H:(U-0.13793103448275862)/7.787,Z=G>a?G:(Z-0.13793103448275862)/7.787,Y=X>a?X:(Y-0.13793103448275862)/7.787,Z*=95.047,U*=100,Y*=108.883,[Z,U,Y]};B.lab.lch=function($){let J=$[0],W=$[1],q=$[2],Z;if(Z=Math.atan2(q,W)*360/2/Math.PI,Z<0)Z+=360;let Y=Math.sqrt(W*W+q*q);return[J,Y,Z]};B.lch.lab=function($){let J=$[0],W=$[1],Z=$[2]/360*2*Math.PI,U=W*Math.cos(Z),Y=W*Math.sin(Z);return[J,U,Y]};B.rgb.ansi16=function($,J=null){let[W,q,Z]=$,U=J===null?B.rgb.hsv($)[2]:J;if(U=Math.round(U/50),U===0)return 30;let Y=30+(Math.round(Z/255)<<2|Math.round(q/255)<<1|Math.round(W/255));if(U===2)Y+=60;return Y};B.hsv.ansi16=function($){return B.rgb.ansi16(B.hsv.rgb($),$[2])};B.rgb.ansi256=function($){let J=$[0],W=$[1],q=$[2];if(J>>4===W>>4&&W>>4===q>>4){if(J<8)return 16;if(J>248)return 231;return Math.round((J-8)/247*24)+232}return 16+36*Math.round(J/255*5)+6*Math.round(W/255*5)+Math.round(q/255*5)};B.ansi16.rgb=function($){$=$[0];let J=$%10;if(J===0||J===7){if($>50)J+=3.5;return J=J/10.5*255,[J,J,J]}let W=(Math.trunc($>50)+1)*0.5,q=(J&1)*W*255,Z=(J>>1&1)*W*255,U=(J>>2&1)*W*255;return[q,Z,U]};B.ansi256.rgb=function($){if($=$[0],$>=232){let U=($-232)*10+8;return[U,U,U]}$-=16;let J,W=Math.floor($/36)/5*255,q=Math.floor((J=$%36)/6)/5*255,Z=J%6/5*255;return[W,q,Z]};B.rgb.hex=function($){let W=(((Math.round($[0])&255)<<16)+((Math.round($[1])&255)<<8)+(Math.round($[2])&255)).toString(16).toUpperCase();return"000000".slice(W.length)+W};B.hex.rgb=function($){let J=$.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!J)return[0,0,0];let W=J[0];if(J[0].length===3)W=[...W].map((H)=>H+H).join("");let q=Number.parseInt(W,16),Z=q>>16&255,U=q>>8&255,Y=q&255;return[Z,U,Y]};B.rgb.hcg=function($){let J=$[0]/255,W=$[1]/255,q=$[2]/255,Z=Math.max(Math.max(J,W),q),U=Math.min(Math.min(J,W),q),Y=Z-U,H,G=Y<1?U/(1-Y):0;if(Y<=0)H=0;else if(Z===J)H=(W-q)/Y%6;else if(Z===W)H=2+(q-J)/Y;else H=4+(J-W)/Y;return H/=6,H%=1,[H*360,Y*100,G*100]};B.hsl.hcg=function($){let J=$[1]/100,W=$[2]/100,q=W<0.5?2*J*W:2*J*(1-W),Z=0;if(q<1)Z=(W-0.5*q)/(1-q);return[$[0],q*100,Z*100]};B.hsv.hcg=function($){let J=$[1]/100,W=$[2]/100,q=J*W,Z=0;if(q<1)Z=(W-q)/(1-q);return[$[0],q*100,Z*100]};B.hcg.rgb=function($){let J=$[0]/360,W=$[1]/100,q=$[2]/100;if(W===0)return[q*255,q*255,q*255];let Z=[0,0,0],U=J%1*6,Y=U%1,H=1-Y,G=0;switch(Math.floor(U)){case 0:{Z[0]=1,Z[1]=Y,Z[2]=0;break}case 1:{Z[0]=H,Z[1]=1,Z[2]=0;break}case 2:{Z[0]=0,Z[1]=1,Z[2]=Y;break}case 3:{Z[0]=0,Z[1]=H,Z[2]=1;break}case 4:{Z[0]=Y,Z[1]=0,Z[2]=1;break}default:Z[0]=1,Z[1]=0,Z[2]=H}return G=(1-W)*q,[(W*Z[0]+G)*255,(W*Z[1]+G)*255,(W*Z[2]+G)*255]};B.hcg.hsv=function($){let J=$[1]/100,W=$[2]/100,q=J+W*(1-J),Z=0;if(q>0)Z=J/q;return[$[0],Z*100,q*100]};B.hcg.hsl=function($){let J=$[1]/100,q=$[2]/100*(1-J)+0.5*J,Z=0;if(q>0&&q<0.5)Z=J/(2*q);else if(q>=0.5&&q<1)Z=J/(2*(1-q));return[$[0],Z*100,q*100]};B.hcg.hwb=function($){let J=$[1]/100,W=$[2]/100,q=J+W*(1-J);return[$[0],(q-J)*100,(1-q)*100]};B.hwb.hcg=function($){let J=$[1]/100,q=1-$[2]/100,Z=q-J,U=0;if(Z<1)U=(q-Z)/(1-Z);return[$[0],Z*100,U*100]};B.apple.rgb=function($){return[$[0]/65535*255,$[1]/65535*255,$[2]/65535*255]};B.rgb.apple=function($){return[$[0]/255*65535,$[1]/255*65535,$[2]/255*65535]};B.gray.rgb=function($){return[$[0]/100*255,$[0]/100*255,$[0]/100*255]};B.gray.hsl=function($){return[0,0,$[0]]};B.gray.hsv=B.gray.hsl;B.gray.hwb=function($){return[0,100,$[0]]};B.gray.cmyk=function($){return[0,0,0,$[0]]};B.gray.lab=function($){return[$[0],0,0]};B.gray.hex=function($){let J=Math.round($[0]/100*255)&255,q=((J<<16)+(J<<8)+J).toString(16).toUpperCase();return"000000".slice(q.length)+q};B.rgb.gray=function($){return[($[0]+$[1]+$[2])/3/255*100]};function c$(){let $={},J=Object.keys(W0);for(let{length:W}=J,q=0;q<W;q++)$[J[q]]={distance:-1,parent:null};return $}function l$($){let J=c$(),W=[$];J[$].distance=0;while(W.length>0){let q=W.pop(),Z=Object.keys(W0[q]);for(let{length:U}=Z,Y=0;Y<U;Y++){let H=Z[Y],G=J[H];if(G.distance===-1)G.distance=J[q].distance+1,G.parent=q,W.unshift(H)}}return J}function a$($,J){return function(W){return J($(W))}}function r$($,J){let W=[J[$].parent,$],q=W0[J[$].parent][$],Z=J[$].parent;while(J[Z].parent)W.unshift(J[Z].parent),q=a$(W0[J[Z].parent][Z],q),Z=J[Z].parent;return q.conversion=W,q}function e$($){let J=l$($),W={},q=Object.keys(J);for(let{length:Z}=q,U=0;U<Z;U++){let Y=q[U];if(J[Y].parent===null)continue;W[Y]=r$(Y,J)}return W}var p$=e$,H0={},n$=Object.keys(W0);function s$($){let J=function(...W){let q=W[0];if(q===void 0||q===null)return q;if(q.length>1)W=q;return $(W)};if("conversion"in $)J.conversion=$.conversion;return J}function t$($){let J=function(...W){let q=W[0];if(q===void 0||q===null)return q;if(q.length>1)W=q;let Z=$(W);if(typeof Z==="object")for(let{length:U}=Z,Y=0;Y<U;Y++)Z[Y]=Math.round(Z[Y]);return Z};if("conversion"in $)J.conversion=$.conversion;return J}for(let $ of n$){H0[$]={},Object.defineProperty(H0[$],"channels",{value:W0[$].channels}),Object.defineProperty(H0[$],"labels",{value:W0[$].labels});let J=p$($),W=Object.keys(J);for(let q of W){let Z=J[q];H0[$][q]=t$(Z),H0[$][q].raw=s$(Z)}}var y=H0,B6=["keyword","gray","hex"],Z4={};for(let $ of Object.keys(y))Z4[[...y[$].labels].sort().join("")]=$;var Q4={};function C($,J){if(!(this instanceof C))return new C($,J);if(J&&J in B6)J=null;if(J&&!(J in y))throw Error("Unknown model: "+J);let W,q;if($==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if($ instanceof C)this.model=$.model,this.color=[...$.color],this.valpha=$.valpha;else if(typeof $==="string"){let Z=K0.get($);if(Z===null)throw Error("Unable to parse color from string: "+$);this.model=Z.model,q=y[this.model].channels,this.color=Z.value.slice(0,q),this.valpha=typeof Z.value[q]==="number"?Z.value[q]:1}else if($.length>0){this.model=J||"rgb",q=y[this.model].channels;let Z=Array.prototype.slice.call($,0,q);this.color=U4(Z,q),this.valpha=typeof $[q]==="number"?$[q]:1}else if(typeof $==="number")this.model="rgb",this.color=[$>>16&255,$>>8&255,$&255],this.valpha=1;else{this.valpha=1;let Z=Object.keys($);if("alpha"in $)Z.splice(Z.indexOf("alpha"),1),this.valpha=typeof $.alpha==="number"?$.alpha:0;let U=Z.sort().join("");if(!(U in Z4))throw Error("Unable to parse color from object: "+JSON.stringify($));this.model=Z4[U];let{labels:Y}=y[this.model],H=[];for(W=0;W<Y.length;W++)H.push($[Y[W]]);this.color=U4(H)}if(Q4[this.model]){q=y[this.model].channels;for(W=0;W<q;W++){let Z=Q4[this.model][W];if(Z)this.color[W]=Z(this.color[W])}}if(this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze)Object.freeze(this)}C.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string($){let J=this.model in K0.to?this:this.rgb();J=J.round(typeof $==="number"?$:1);let W=J.valpha===1?J.color:[...J.color,this.valpha];return K0.to[J.model](...W)},percentString($){let J=this.rgb().round(typeof $==="number"?$:1),W=J.valpha===1?J.color:[...J.color,this.valpha];return K0.to.rgb.percent(...W)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let $={},{channels:J}=y[this.model],{labels:W}=y[this.model];for(let q=0;q<J;q++)$[W[q]]=this.color[q];if(this.valpha!==1)$.alpha=this.valpha;return $},unitArray(){let $=this.rgb().color;if($[0]/=255,$[1]/=255,$[2]/=255,this.valpha!==1)$.push(this.valpha);return $},unitObject(){let $=this.rgb().object();if($.r/=255,$.g/=255,$.b/=255,this.valpha!==1)$.alpha=this.valpha;return $},round($){return $=Math.max($||0,0),new C([...this.color.map(o$($)),this.valpha],this.model)},alpha($){if($!==void 0)return new C([...this.color,Math.max(0,Math.min(1,$))],this.model);return this.valpha},red:F("rgb",0,T(255)),green:F("rgb",1,T(255)),blue:F("rgb",2,T(255)),hue:F(["hsl","hsv","hsl","hwb","hcg"],0,($)=>($%360+360)%360),saturationl:F("hsl",1,T(100)),lightness:F("hsl",2,T(100)),saturationv:F("hsv",1,T(100)),value:F("hsv",2,T(100)),chroma:F("hcg",1,T(100)),gray:F("hcg",2,T(100)),white:F("hwb",1,T(100)),wblack:F("hwb",2,T(100)),cyan:F("cmyk",0,T(100)),magenta:F("cmyk",1,T(100)),yellow:F("cmyk",2,T(100)),black:F("cmyk",3,T(100)),x:F("xyz",0,T(95.047)),y:F("xyz",1,T(100)),z:F("xyz",2,T(108.833)),l:F("lab",0,T(100)),a:F("lab",1),b:F("lab",2),keyword($){if($!==void 0)return new C($);return y[this.model].keyword(this.color)},hex($){if($!==void 0)return new C($);return K0.to.hex(...this.rgb().round().color)},hexa($){if($!==void 0)return new C($);let J=this.rgb().round().color,W=Math.round(this.valpha*255).toString(16).toUpperCase();if(W.length===1)W="0"+W;return K0.to.hex(...J)+W},rgbNumber(){let $=this.rgb().color;return($[0]&255)<<16|($[1]&255)<<8|$[2]&255},luminosity(){let $=this.rgb().color,J=[];for(let[W,q]of $.entries()){let Z=q/255;J[W]=Z<=0.04045?Z/12.92:((Z+0.055)/1.055)**2.4}return 0.2126*J[0]+0.7152*J[1]+0.0722*J[2]},contrast($){let J=this.luminosity(),W=$.luminosity();if(J>W)return(J+0.05)/(W+0.05);return(W+0.05)/(J+0.05)},level($){let J=this.contrast($);if(J>=7)return"AAA";return J>=4.5?"AA":""},isDark(){let $=this.rgb().color;return($[0]*2126+$[1]*7152+$[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){let $=this.rgb();for(let J=0;J<3;J++)$.color[J]=255-$.color[J];return $},lighten($){let J=this.hsl();return J.color[2]+=J.color[2]*$,J},darken($){let J=this.hsl();return J.color[2]-=J.color[2]*$,J},saturate($){let J=this.hsl();return J.color[1]+=J.color[1]*$,J},desaturate($){let J=this.hsl();return J.color[1]-=J.color[1]*$,J},whiten($){let J=this.hwb();return J.color[1]+=J.color[1]*$,J},blacken($){let J=this.hwb();return J.color[2]+=J.color[2]*$,J},grayscale(){let $=this.rgb().color,J=$[0]*0.3+$[1]*0.59+$[2]*0.11;return C.rgb(J,J,J)},fade($){return this.alpha(this.valpha-this.valpha*$)},opaquer($){return this.alpha(this.valpha+this.valpha*$)},rotate($){let J=this.hsl(),W=J.color[0];return W=(W+$)%360,W=W<0?360+W:W,J.color[0]=W,J},mix($,J){if(!$||!$.rgb)throw Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof $);let W=$.rgb(),q=this.rgb(),Z=J===void 0?0.5:J,U=2*Z-1,Y=W.alpha()-q.alpha(),H=((U*Y===-1?U:(U+Y)/(1+U*Y))+1)/2,G=1-H;return C.rgb(H*W.red()+G*q.red(),H*W.green()+G*q.green(),H*W.blue()+G*q.blue(),W.alpha()*Z+q.alpha()*(1-Z))}};for(let $ of Object.keys(y)){if(B6.includes($))continue;let{channels:J}=y[$];C.prototype[$]=function(...W){if(this.model===$)return new C(this);if(W.length>0)return new C(W,$);return new C([...$J(y[this.model][$].raw(this.color)),this.valpha],$)},C[$]=function(...W){let q=W[0];if(typeof q==="number")q=U4(W,J);return new C(q,$)}}function i$($,J){return Number($.toFixed(J))}function o$($){return function(J){return i$(J,$)}}function F($,J,W){$=Array.isArray($)?$:[$];for(let q of $)(Q4[q]||=[])[J]=W;return $=$[0],function(q){let Z;if(q!==void 0){if(W)q=W(q);return Z=this[$](),Z.color[J]=q,Z}if(Z=this[$]().color[J],W)Z=W(Z);return Z}}function T($){return function(J){return Math.max(0,Math.min($,J))}}function $J($){return Array.isArray($)?$:[$]}function U4($,J){for(let W=0;W<J;W++)if(typeof $[W]!=="number")$[W]=0;return $}var JJ=C});var V6=A(($7,E6)=>{E6.exports=N6().default});var L6=A((J7,R6)=>{/*!
28
- Copyright 2013 Lovell Fuller and others.
29
- SPDX-License-Identifier: Apache-2.0
30
- */var WJ=V6(),r=b(),z6={multiband:"multiband","b-w":"b-w",bw:"b-w",cmyk:"cmyk",srgb:"srgb"};function qJ($){return this._setBackgroundColourOption("tint",$),this}function ZJ($){return this.options.greyscale=r.bool($)?$:!0,this}function QJ($){return this.greyscale($)}function UJ($){if(!r.string($))throw r.invalidParameterError("colourspace","string",$);return this.options.colourspacePipeline=$,this}function YJ($){return this.pipelineColourspace($)}function KJ($){if(!r.string($))throw r.invalidParameterError("colourspace","string",$);return this.options.colourspace=$,this}function HJ($){return this.toColourspace($)}function A6($){if(r.object($)||r.string($)&&$.length>=3&&$.length<=200){let J=WJ($);return[J.red(),J.green(),J.blue(),Math.round(J.alpha()*255)]}else throw r.invalidParameterError("background","object or string",$)}function IJ($,J){if(r.defined(J))this.options[$]=A6(J)}R6.exports=($)=>{Object.assign($.prototype,{tint:qJ,greyscale:ZJ,grayscale:QJ,pipelineColourspace:UJ,pipelineColorspace:YJ,toColourspace:KJ,toColorspace:HJ,_getBackgroundColourOption:A6,_setBackgroundColourOption:IJ}),$.colourspace=z6,$.colorspace=z6}});var j6=A((W7,D6)=>{/*!
31
- Copyright 2013 Lovell Fuller and others.
32
- SPDX-License-Identifier: Apache-2.0
33
- */var c=b(),GJ={and:"and",or:"or",eor:"eor"};function XJ(){return this.options.removeAlpha=!0,this}function BJ($){if(c.defined($))if(c.number($)&&c.inRange($,0,1))this.options.ensureAlpha=$;else throw c.invalidParameterError("alpha","number between 0 and 1",$);else this.options.ensureAlpha=1;return this}function PJ($){let J={red:0,green:1,blue:2,alpha:3};if(Object.keys(J).includes($))$=J[$];if(c.integer($)&&c.inRange($,0,4))this.options.extractChannel=$;else throw c.invalidParameterError("channel","integer or one of: red, green, blue, alpha",$);return this}function NJ($,J){if(Array.isArray($))$.forEach(function(W){this.options.joinChannelIn.push(this._createInputDescriptor(W,J))},this);else this.options.joinChannelIn.push(this._createInputDescriptor($,J));return this}function EJ($){if(c.string($)&&c.inArray($,["and","or","eor"]))this.options.bandBoolOp=$;else throw c.invalidParameterError("boolOp","one of: and, or, eor",$);return this}D6.exports=($)=>{Object.assign($.prototype,{removeAlpha:XJ,ensureAlpha:BJ,extractChannel:PJ,joinChannel:NJ,bandbool:EJ}),$.bool=GJ}});var S6=A((q7,w6)=>{/*!
34
- Copyright 2013 Lovell Fuller and others.
35
- SPDX-License-Identifier: Apache-2.0
36
- */var K4=j("path"),Q=b(),X0=A0(),F6=new Map([["heic","heif"],["heif","heif"],["avif","avif"],["jpeg","jpeg"],["jpg","jpeg"],["jpe","jpeg"],["tile","tile"],["dz","tile"],["png","png"],["raw","raw"],["tiff","tiff"],["tif","tiff"],["webp","webp"],["gif","gif"],["jp2","jp2"],["jpx","jp2"],["j2k","jp2"],["j2c","jp2"],["jxl","jxl"]]),VJ=/\.(jp[2x]|j2[kc])$/i,T6=()=>Error("JP2 output requires libvips with support for OpenJPEG"),C6=($)=>1<<31-Math.clz32(Math.ceil(Math.log2($)));function zJ($,J){let W;if(!Q.string($))W=Error("Missing output file path");else if(Q.string(this.options.input.file)&&K4.resolve(this.options.input.file)===K4.resolve($))W=Error("Cannot use same file for input and output");else if(VJ.test(K4.extname($))&&!this.constructor.format.jp2k.output.file)W=T6();if(W)if(Q.fn(J))J(W);else return Promise.reject(W);else{this.options.fileOut=$;let q=Error();return this._pipeline(J,q)}return this}function AJ($,J){if(Q.object($))this._setBooleanOption("resolveWithObject",$.resolveWithObject);else if(this.options.resolveWithObject)this.options.resolveWithObject=!1;this.options.fileOut="";let W=Error();return this._pipeline(Q.fn($)?$:J,W)}function RJ(){return this.options.keepMetadata|=1,this}function LJ($){if(Q.object($))for(let[J,W]of Object.entries($))if(Q.object(W))for(let[q,Z]of Object.entries(W))if(Q.string(Z))this.options.withExif[`exif-${J.toLowerCase()}-${q}`]=Z;else throw Q.invalidParameterError(`${J}.${q}`,"string",Z);else throw Q.invalidParameterError(J,"object",W);else throw Q.invalidParameterError("exif","object",$);return this.options.withExifMerge=!1,this.keepExif()}function DJ($){return this.withExif($),this.options.withExifMerge=!0,this}function jJ(){return this.options.keepMetadata|=8,this}function FJ($,J){if(Q.string($))this.options.withIccProfile=$;else throw Q.invalidParameterError("icc","string",$);if(this.keepIccProfile(),Q.object(J)){if(Q.defined(J.attach))if(Q.bool(J.attach)){if(!J.attach)this.options.keepMetadata&=-9}else throw Q.invalidParameterError("attach","boolean",J.attach)}return this}function TJ(){return this.options.keepMetadata|=2,this}function CJ($){if(Q.string($)&&$.length>0)this.options.withXmp=$,this.options.keepMetadata|=2;else throw Q.invalidParameterError("xmp","non-empty string",$);return this}function wJ(){return this.options.keepMetadata=31,this}function SJ($){if(this.keepMetadata(),this.withIccProfile("srgb"),Q.object($)){if(Q.defined($.orientation))if(Q.integer($.orientation)&&Q.inRange($.orientation,1,8))this.options.withMetadataOrientation=$.orientation;else throw Q.invalidParameterError("orientation","integer between 1 and 8",$.orientation);if(Q.defined($.density))if(Q.number($.density)&&$.density>0)this.options.withMetadataDensity=$.density;else throw Q.invalidParameterError("density","positive number",$.density);if(Q.defined($.icc))this.withIccProfile($.icc);if(Q.defined($.exif))this.withExifMerge($.exif)}return this}function MJ($,J){let W=F6.get((Q.object($)&&Q.string($.id)?$.id:$).toLowerCase());if(!W)throw Q.invalidParameterError("format",`one of: ${[...F6.keys()].join(", ")}`,$);return this[W](J)}function _J($){if(Q.object($)){if(Q.defined($.quality))if(Q.integer($.quality)&&Q.inRange($.quality,1,100))this.options.jpegQuality=$.quality;else throw Q.invalidParameterError("quality","integer between 1 and 100",$.quality);if(Q.defined($.progressive))this._setBooleanOption("jpegProgressive",$.progressive);if(Q.defined($.chromaSubsampling))if(Q.string($.chromaSubsampling)&&Q.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jpegChromaSubsampling=$.chromaSubsampling;else throw Q.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling);let J=Q.bool($.optimizeCoding)?$.optimizeCoding:$.optimiseCoding;if(Q.defined(J))this._setBooleanOption("jpegOptimiseCoding",J);if(Q.defined($.mozjpeg))if(Q.bool($.mozjpeg)){if($.mozjpeg)this.options.jpegTrellisQuantisation=!0,this.options.jpegOvershootDeringing=!0,this.options.jpegOptimiseScans=!0,this.options.jpegProgressive=!0,this.options.jpegQuantisationTable=3}else throw Q.invalidParameterError("mozjpeg","boolean",$.mozjpeg);let W=Q.bool($.trellisQuantization)?$.trellisQuantization:$.trellisQuantisation;if(Q.defined(W))this._setBooleanOption("jpegTrellisQuantisation",W);if(Q.defined($.overshootDeringing))this._setBooleanOption("jpegOvershootDeringing",$.overshootDeringing);let q=Q.bool($.optimizeScans)?$.optimizeScans:$.optimiseScans;if(Q.defined(q)){if(this._setBooleanOption("jpegOptimiseScans",q),q)this.options.jpegProgressive=!0}let Z=Q.number($.quantizationTable)?$.quantizationTable:$.quantisationTable;if(Q.defined(Z))if(Q.integer(Z)&&Q.inRange(Z,0,8))this.options.jpegQuantisationTable=Z;else throw Q.invalidParameterError("quantisationTable","integer between 0 and 8",Z)}return this._updateFormatOut("jpeg",$)}function kJ($){if(Q.object($)){if(Q.defined($.progressive))this._setBooleanOption("pngProgressive",$.progressive);if(Q.defined($.compressionLevel))if(Q.integer($.compressionLevel)&&Q.inRange($.compressionLevel,0,9))this.options.pngCompressionLevel=$.compressionLevel;else throw Q.invalidParameterError("compressionLevel","integer between 0 and 9",$.compressionLevel);if(Q.defined($.adaptiveFiltering))this._setBooleanOption("pngAdaptiveFiltering",$.adaptiveFiltering);let J=$.colours||$.colors;if(Q.defined(J))if(Q.integer(J)&&Q.inRange(J,2,256))this.options.pngBitdepth=C6(J);else throw Q.invalidParameterError("colours","integer between 2 and 256",J);if(Q.defined($.palette))this._setBooleanOption("pngPalette",$.palette);else if([$.quality,$.effort,$.colours,$.colors,$.dither].some(Q.defined))this._setBooleanOption("pngPalette",!0);if(this.options.pngPalette){if(Q.defined($.quality))if(Q.integer($.quality)&&Q.inRange($.quality,0,100))this.options.pngQuality=$.quality;else throw Q.invalidParameterError("quality","integer between 0 and 100",$.quality);if(Q.defined($.effort))if(Q.integer($.effort)&&Q.inRange($.effort,1,10))this.options.pngEffort=$.effort;else throw Q.invalidParameterError("effort","integer between 1 and 10",$.effort);if(Q.defined($.dither))if(Q.number($.dither)&&Q.inRange($.dither,0,1))this.options.pngDither=$.dither;else throw Q.invalidParameterError("dither","number between 0.0 and 1.0",$.dither)}}return this._updateFormatOut("png",$)}function xJ($){if(Q.object($)){if(Q.defined($.quality))if(Q.integer($.quality)&&Q.inRange($.quality,1,100))this.options.webpQuality=$.quality;else throw Q.invalidParameterError("quality","integer between 1 and 100",$.quality);if(Q.defined($.alphaQuality))if(Q.integer($.alphaQuality)&&Q.inRange($.alphaQuality,0,100))this.options.webpAlphaQuality=$.alphaQuality;else throw Q.invalidParameterError("alphaQuality","integer between 0 and 100",$.alphaQuality);if(Q.defined($.lossless))this._setBooleanOption("webpLossless",$.lossless);if(Q.defined($.nearLossless))this._setBooleanOption("webpNearLossless",$.nearLossless);if(Q.defined($.smartSubsample))this._setBooleanOption("webpSmartSubsample",$.smartSubsample);if(Q.defined($.smartDeblock))this._setBooleanOption("webpSmartDeblock",$.smartDeblock);if(Q.defined($.preset))if(Q.string($.preset)&&Q.inArray($.preset,["default","photo","picture","drawing","icon","text"]))this.options.webpPreset=$.preset;else throw Q.invalidParameterError("preset","one of: default, photo, picture, drawing, icon, text",$.preset);if(Q.defined($.effort))if(Q.integer($.effort)&&Q.inRange($.effort,0,6))this.options.webpEffort=$.effort;else throw Q.invalidParameterError("effort","integer between 0 and 6",$.effort);if(Q.defined($.minSize))this._setBooleanOption("webpMinSize",$.minSize);if(Q.defined($.mixed))this._setBooleanOption("webpMixed",$.mixed)}return H4($,this.options),this._updateFormatOut("webp",$)}function yJ($){if(Q.object($)){if(Q.defined($.reuse))this._setBooleanOption("gifReuse",$.reuse);if(Q.defined($.progressive))this._setBooleanOption("gifProgressive",$.progressive);let J=$.colours||$.colors;if(Q.defined(J))if(Q.integer(J)&&Q.inRange(J,2,256))this.options.gifBitdepth=C6(J);else throw Q.invalidParameterError("colours","integer between 2 and 256",J);if(Q.defined($.effort))if(Q.number($.effort)&&Q.inRange($.effort,1,10))this.options.gifEffort=$.effort;else throw Q.invalidParameterError("effort","integer between 1 and 10",$.effort);if(Q.defined($.dither))if(Q.number($.dither)&&Q.inRange($.dither,0,1))this.options.gifDither=$.dither;else throw Q.invalidParameterError("dither","number between 0.0 and 1.0",$.dither);if(Q.defined($.interFrameMaxError))if(Q.number($.interFrameMaxError)&&Q.inRange($.interFrameMaxError,0,32))this.options.gifInterFrameMaxError=$.interFrameMaxError;else throw Q.invalidParameterError("interFrameMaxError","number between 0.0 and 32.0",$.interFrameMaxError);if(Q.defined($.interPaletteMaxError))if(Q.number($.interPaletteMaxError)&&Q.inRange($.interPaletteMaxError,0,256))this.options.gifInterPaletteMaxError=$.interPaletteMaxError;else throw Q.invalidParameterError("interPaletteMaxError","number between 0.0 and 256.0",$.interPaletteMaxError);if(Q.defined($.keepDuplicateFrames))if(Q.bool($.keepDuplicateFrames))this._setBooleanOption("gifKeepDuplicateFrames",$.keepDuplicateFrames);else throw Q.invalidParameterError("keepDuplicateFrames","boolean",$.keepDuplicateFrames)}return H4($,this.options),this._updateFormatOut("gif",$)}function fJ($){if(!this.constructor.format.jp2k.output.buffer)throw T6();if(Q.object($)){if(Q.defined($.quality))if(Q.integer($.quality)&&Q.inRange($.quality,1,100))this.options.jp2Quality=$.quality;else throw Q.invalidParameterError("quality","integer between 1 and 100",$.quality);if(Q.defined($.lossless))if(Q.bool($.lossless))this.options.jp2Lossless=$.lossless;else throw Q.invalidParameterError("lossless","boolean",$.lossless);if(Q.defined($.tileWidth))if(Q.integer($.tileWidth)&&Q.inRange($.tileWidth,1,32768))this.options.jp2TileWidth=$.tileWidth;else throw Q.invalidParameterError("tileWidth","integer between 1 and 32768",$.tileWidth);if(Q.defined($.tileHeight))if(Q.integer($.tileHeight)&&Q.inRange($.tileHeight,1,32768))this.options.jp2TileHeight=$.tileHeight;else throw Q.invalidParameterError("tileHeight","integer between 1 and 32768",$.tileHeight);if(Q.defined($.chromaSubsampling))if(Q.string($.chromaSubsampling)&&Q.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jp2ChromaSubsampling=$.chromaSubsampling;else throw Q.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling)}return this._updateFormatOut("jp2",$)}function H4($,J){if(Q.object($)&&Q.defined($.loop))if(Q.integer($.loop)&&Q.inRange($.loop,0,65535))J.loop=$.loop;else throw Q.invalidParameterError("loop","integer between 0 and 65535",$.loop);if(Q.object($)&&Q.defined($.delay))if(Q.integer($.delay)&&Q.inRange($.delay,0,65535))J.delay=[$.delay];else if(Array.isArray($.delay)&&$.delay.every(Q.integer)&&$.delay.every((W)=>Q.inRange(W,0,65535)))J.delay=$.delay;else throw Q.invalidParameterError("delay","integer or an array of integers between 0 and 65535",$.delay)}function vJ($){if(Q.object($)){if(Q.defined($.quality))if(Q.integer($.quality)&&Q.inRange($.quality,1,100))this.options.tiffQuality=$.quality;else throw Q.invalidParameterError("quality","integer between 1 and 100",$.quality);if(Q.defined($.bitdepth))if(Q.integer($.bitdepth)&&Q.inArray($.bitdepth,[1,2,4,8]))this.options.tiffBitdepth=$.bitdepth;else throw Q.invalidParameterError("bitdepth","1, 2, 4 or 8",$.bitdepth);if(Q.defined($.tile))this._setBooleanOption("tiffTile",$.tile);if(Q.defined($.tileWidth))if(Q.integer($.tileWidth)&&$.tileWidth>0)this.options.tiffTileWidth=$.tileWidth;else throw Q.invalidParameterError("tileWidth","integer greater than zero",$.tileWidth);if(Q.defined($.tileHeight))if(Q.integer($.tileHeight)&&$.tileHeight>0)this.options.tiffTileHeight=$.tileHeight;else throw Q.invalidParameterError("tileHeight","integer greater than zero",$.tileHeight);if(Q.defined($.miniswhite))this._setBooleanOption("tiffMiniswhite",$.miniswhite);if(Q.defined($.pyramid))this._setBooleanOption("tiffPyramid",$.pyramid);if(Q.defined($.xres))if(Q.number($.xres)&&$.xres>0)this.options.tiffXres=$.xres;else throw Q.invalidParameterError("xres","number greater than zero",$.xres);if(Q.defined($.yres))if(Q.number($.yres)&&$.yres>0)this.options.tiffYres=$.yres;else throw Q.invalidParameterError("yres","number greater than zero",$.yres);if(Q.defined($.compression))if(Q.string($.compression)&&Q.inArray($.compression,["none","jpeg","deflate","packbits","ccittfax4","lzw","webp","zstd","jp2k"]))this.options.tiffCompression=$.compression;else throw Q.invalidParameterError("compression","one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k",$.compression);if(Q.defined($.bigtiff))this._setBooleanOption("tiffBigtiff",$.bigtiff);if(Q.defined($.predictor))if(Q.string($.predictor)&&Q.inArray($.predictor,["none","horizontal","float"]))this.options.tiffPredictor=$.predictor;else throw Q.invalidParameterError("predictor","one of: none, horizontal, float",$.predictor);if(Q.defined($.resolutionUnit))if(Q.string($.resolutionUnit)&&Q.inArray($.resolutionUnit,["inch","cm"]))this.options.tiffResolutionUnit=$.resolutionUnit;else throw Q.invalidParameterError("resolutionUnit","one of: inch, cm",$.resolutionUnit)}return this._updateFormatOut("tiff",$)}function dJ($){return this.heif({...$,compression:"av1"})}function bJ($){if(Q.object($)){if(Q.string($.compression)&&Q.inArray($.compression,["av1","hevc"]))this.options.heifCompression=$.compression;else throw Q.invalidParameterError("compression","one of: av1, hevc",$.compression);if(Q.defined($.quality))if(Q.integer($.quality)&&Q.inRange($.quality,1,100))this.options.heifQuality=$.quality;else throw Q.invalidParameterError("quality","integer between 1 and 100",$.quality);if(Q.defined($.lossless))if(Q.bool($.lossless))this.options.heifLossless=$.lossless;else throw Q.invalidParameterError("lossless","boolean",$.lossless);if(Q.defined($.effort))if(Q.integer($.effort)&&Q.inRange($.effort,0,9))this.options.heifEffort=$.effort;else throw Q.invalidParameterError("effort","integer between 0 and 9",$.effort);if(Q.defined($.chromaSubsampling))if(Q.string($.chromaSubsampling)&&Q.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.heifChromaSubsampling=$.chromaSubsampling;else throw Q.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling);if(Q.defined($.bitdepth))if(Q.integer($.bitdepth)&&Q.inArray($.bitdepth,[8,10,12])){if($.bitdepth!==8&&this.constructor.versions.heif)throw Q.invalidParameterError("bitdepth when using prebuilt binaries",8,$.bitdepth);this.options.heifBitdepth=$.bitdepth}else throw Q.invalidParameterError("bitdepth","8, 10 or 12",$.bitdepth)}else throw Q.invalidParameterError("options","Object",$);return this._updateFormatOut("heif",$)}function OJ($){if(Q.object($)){if(Q.defined($.quality))if(Q.integer($.quality)&&Q.inRange($.quality,1,100))this.options.jxlDistance=$.quality>=30?0.1+(100-$.quality)*0.09:0.017666666666666667*$.quality*$.quality-1.15*$.quality+25;else throw Q.invalidParameterError("quality","integer between 1 and 100",$.quality);else if(Q.defined($.distance))if(Q.number($.distance)&&Q.inRange($.distance,0,15))this.options.jxlDistance=$.distance;else throw Q.invalidParameterError("distance","number between 0.0 and 15.0",$.distance);if(Q.defined($.decodingTier))if(Q.integer($.decodingTier)&&Q.inRange($.decodingTier,0,4))this.options.jxlDecodingTier=$.decodingTier;else throw Q.invalidParameterError("decodingTier","integer between 0 and 4",$.decodingTier);if(Q.defined($.lossless))if(Q.bool($.lossless))this.options.jxlLossless=$.lossless;else throw Q.invalidParameterError("lossless","boolean",$.lossless);if(Q.defined($.effort))if(Q.integer($.effort)&&Q.inRange($.effort,1,9))this.options.jxlEffort=$.effort;else throw Q.invalidParameterError("effort","integer between 1 and 9",$.effort)}return H4($,this.options),this._updateFormatOut("jxl",$)}function hJ($){if(Q.object($)){if(Q.defined($.depth))if(Q.string($.depth)&&Q.inArray($.depth,["char","uchar","short","ushort","int","uint","float","complex","double","dpcomplex"]))this.options.rawDepth=$.depth;else throw Q.invalidParameterError("depth","one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex",$.depth)}return this._updateFormatOut("raw")}function gJ($){if(Q.object($)){if(Q.defined($.size))if(Q.integer($.size)&&Q.inRange($.size,1,8192))this.options.tileSize=$.size;else throw Q.invalidParameterError("size","integer between 1 and 8192",$.size);if(Q.defined($.overlap))if(Q.integer($.overlap)&&Q.inRange($.overlap,0,8192)){if($.overlap>this.options.tileSize)throw Q.invalidParameterError("overlap",`<= size (${this.options.tileSize})`,$.overlap);this.options.tileOverlap=$.overlap}else throw Q.invalidParameterError("overlap","integer between 0 and 8192",$.overlap);if(Q.defined($.container))if(Q.string($.container)&&Q.inArray($.container,["fs","zip"]))this.options.tileContainer=$.container;else throw Q.invalidParameterError("container","one of: fs, zip",$.container);if(Q.defined($.layout))if(Q.string($.layout)&&Q.inArray($.layout,["dz","google","iiif","iiif3","zoomify"]))this.options.tileLayout=$.layout;else throw Q.invalidParameterError("layout","one of: dz, google, iiif, iiif3, zoomify",$.layout);if(Q.defined($.angle))if(Q.integer($.angle)&&!($.angle%90))this.options.tileAngle=$.angle;else throw Q.invalidParameterError("angle","positive/negative multiple of 90",$.angle);if(this._setBackgroundColourOption("tileBackground",$.background),Q.defined($.depth))if(Q.string($.depth)&&Q.inArray($.depth,["onepixel","onetile","one"]))this.options.tileDepth=$.depth;else throw Q.invalidParameterError("depth","one of: onepixel, onetile, one",$.depth);if(Q.defined($.skipBlanks))if(Q.integer($.skipBlanks)&&Q.inRange($.skipBlanks,-1,65535))this.options.tileSkipBlanks=$.skipBlanks;else throw Q.invalidParameterError("skipBlanks","integer between -1 and 255/65535",$.skipBlanks);else if(Q.defined($.layout)&&$.layout==="google")this.options.tileSkipBlanks=5;let J=Q.bool($.center)?$.center:$.centre;if(Q.defined(J))this._setBooleanOption("tileCentre",J);if(Q.defined($.id))if(Q.string($.id))this.options.tileId=$.id;else throw Q.invalidParameterError("id","string",$.id);if(Q.defined($.basename))if(Q.string($.basename))this.options.tileBasename=$.basename;else throw Q.invalidParameterError("basename","string",$.basename)}if(Q.inArray(this.options.formatOut,["jpeg","png","webp"]))this.options.tileFormat=this.options.formatOut;else if(this.options.formatOut!=="input")throw Q.invalidParameterError("format","one of: jpeg, png, webp",this.options.formatOut);return this._updateFormatOut("dz")}function mJ($){if(!Q.plainObject($))throw Q.invalidParameterError("options","object",$);if(Q.integer($.seconds)&&Q.inRange($.seconds,0,3600))this.options.timeoutSeconds=$.seconds;else throw Q.invalidParameterError("seconds","integer between 0 and 3600",$.seconds);return this}function uJ($,J){if(!(Q.object(J)&&J.force===!1))this.options.formatOut=$;return this}function cJ($,J){if(Q.bool(J))this.options[$]=J;else throw Q.invalidParameterError($,"boolean",J)}function lJ(){if(!this.options.streamOut){this.options.streamOut=!0;let $=Error();this._pipeline(void 0,$)}}function aJ($,J){if(typeof $==="function"){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),X0.pipeline(this.options,(W,q,Z)=>{if(W)$(Q.nativeError(W,J));else $(null,q,Z)})});else X0.pipeline(this.options,(W,q,Z)=>{if(W)$(Q.nativeError(W,J));else $(null,q,Z)});return this}else if(this.options.streamOut){if(this._isStreamInput()){if(this.once("finish",()=>{this._flattenBufferIn(),X0.pipeline(this.options,(W,q,Z)=>{if(W)this.emit("error",Q.nativeError(W,J));else this.emit("info",Z),this.push(q);this.push(null),this.on("end",()=>this.emit("close"))})}),this.streamInFinished)this.emit("finish")}else X0.pipeline(this.options,(W,q,Z)=>{if(W)this.emit("error",Q.nativeError(W,J));else this.emit("info",Z),this.push(q);this.push(null),this.on("end",()=>this.emit("close"))});return this}else if(this._isStreamInput())return new Promise((W,q)=>{this.once("finish",()=>{this._flattenBufferIn(),X0.pipeline(this.options,(Z,U,Y)=>{if(Z)q(Q.nativeError(Z,J));else if(this.options.resolveWithObject)W({data:U,info:Y});else W(U)})})});else return new Promise((W,q)=>{X0.pipeline(this.options,(Z,U,Y)=>{if(Z)q(Q.nativeError(Z,J));else if(this.options.resolveWithObject)W({data:U,info:Y});else W(U)})})}w6.exports=($)=>{Object.assign($.prototype,{toFile:zJ,toBuffer:AJ,keepExif:RJ,withExif:LJ,withExifMerge:DJ,keepIccProfile:jJ,withIccProfile:FJ,keepXmp:TJ,withXmp:CJ,keepMetadata:wJ,withMetadata:SJ,toFormat:MJ,jpeg:_J,jp2:fJ,png:kJ,webp:xJ,tiff:vJ,avif:dJ,heif:bJ,jxl:OJ,gif:yJ,raw:hJ,tile:gJ,timeout:mJ,_updateFormatOut:uJ,_setBooleanOption:cJ,_read:lJ,_pipeline:aJ})}});var x6=A((Z7,k6)=>{/*!
37
- Copyright 2013 Lovell Fuller and others.
38
- SPDX-License-Identifier: Apache-2.0
39
- */var rJ=j("events"),d0=D0(),f=b(),{runtimePlatformArch:eJ}=i0(),_=A0(),M6=eJ(),I4=_.libvipsVersion(),t=_.format();t.heif.output.alias=["avif","heic"];t.jpeg.output.alias=["jpe","jpg"];t.tiff.output.alias=["tif"];t.jp2k.output.alias=["j2c","j2k","jp2","jpx"];var pJ={nearest:"nearest",bilinear:"bilinear",bicubic:"bicubic",locallyBoundedBicubic:"lbb",nohalo:"nohalo",vertexSplitQuadraticBasisSpline:"vsqbs"},B0={vips:I4.semver};if(!I4.isGlobal)if(!I4.isWasm)try{B0=j(`@img/sharp-${M6}/versions`)}catch($){try{B0=j(`@img/sharp-libvips-${M6}/versions`)}catch(J){}}else try{B0=(()=>{throw new Error("Cannot require module "+"@img/sharp-wasm32/versions");})()}catch($){}B0.sharp=s0().version;if(B0.heif&&t.heif)t.heif.input.fileSuffix=[".avif"],t.heif.output.alias=["avif"];function _6($){if(f.bool($))if($)return _.cache(50,20,100);else return _.cache(0,0,0);else if(f.object($))return _.cache($.memory,$.files,$.items);else return _.cache()}_6(!0);function nJ($){return _.concurrency(f.integer($)?$:null)}if(d0.familySync()===d0.GLIBC&&!_._isUsingJemalloc())_.concurrency(1);else if(d0.familySync()===d0.MUSL&&_.concurrency()===1024)_.concurrency(j("os").availableParallelism());var sJ=new rJ.EventEmitter;function tJ(){return _.counters()}function iJ($){return _.simd(f.bool($)?$:null)}function oJ($){if(f.object($))if(Array.isArray($.operation)&&$.operation.every(f.string))_.block($.operation,!0);else throw f.invalidParameterError("operation","Array<string>",$.operation);else throw f.invalidParameterError("options","object",$)}function $W($){if(f.object($))if(Array.isArray($.operation)&&$.operation.every(f.string))_.block($.operation,!1);else throw f.invalidParameterError("operation","Array<string>",$.operation);else throw f.invalidParameterError("options","object",$)}k6.exports=($)=>{$.cache=_6,$.concurrency=nJ,$.counters=tJ,$.simd=iJ,$.format=t,$.interpolators=pJ,$.versions=B0,$.queue=sJ,$.block=oJ,$.unblock=$W}});var f6=A((U7,y6)=>{/*!
40
- Copyright 2013 Lovell Fuller and others.
41
- SPDX-License-Identifier: Apache-2.0
42
- */var e=e1();s1()(e);W6()(e);Z6()(e);H6()(e);L6()(e);j6()(e);S6()(e);x6()(e);y6.exports=e});var WW=(...$)=>{console.log(`${new Date().toLocaleTimeString()}`,...$)};var ZW=async($,J)=>{let{maxRetries:W=5,shouldStop:q=()=>!0}=J??{};for(let Z=0;Z<W;Z++){let U=await $(Z);if(q(U))return U}throw Error(`\u8D85\u8FC7\u4E86\u6700\u5927\u5FAA\u73AF\u6B21\u6570\uFF08${W}\uFF09\u4E14\u672A\u6EE1\u8DB3\u505C\u6B62\u6267\u884C\u6761\u4EF6`)};var UW=($,J=-1)=>{let W=new Map,q=(...Z)=>{let U=JSON.stringify(Z),Y=Date.now(),H=W.get(U);if(H&&Y<H.expiresAt)return H.value;let G=J===-1?1/0:Y+J*1000,X={setTtl:(L)=>{G=Y+L*1000}},V=$.apply(X,Z);if(V instanceof Promise){let L=V.then((x)=>{return W.set(U,{value:x,expiresAt:G}),x});return W.set(U,{value:L,expiresAt:G}),L}return W.set(U,{value:V,expiresAt:G}),V};return q.clear=()=>W.clear(),q.updateTtl=(Z)=>{J=Z;let U=Date.now(),Y=U+Z*1000;for(let[H,G]of W.entries())if(G.expiresAt>U)G.expiresAt=Y,W.set(H,G)},q};var d=($)=>{return $?.constructor===Object},O0=($)=>{return $===null||$===void 0||typeof $!=="object"&&typeof $!=="function"},KW=($)=>{return!$},HW=($)=>{return!!$},X4=($)=>{return $===null||$===void 0};var h0=($,J)=>{let W={...$};for(let q of Object.keys(J)){let Z=W[q],U=J[q];if(O0(Z)&&O0(U)){W[q]=U;continue}if(Array.isArray(Z)&&Array.isArray(U)){W[q]=Z.concat(U);continue}if(d(Z)&&d(U)){W[q]=h0(Z,U);continue}W[q]=U}return W},B4=($,J)=>{if(Array.isArray($))return $.map((W)=>B4(W,J));if(d($))return Object.keys($).reduce((q,Z)=>{let U=J(Z),Y=$[Z];return q[U]=B4(Y,J),q},{});return $},P4=($,J,W)=>{let{filter:q}=W??{};if(Array.isArray($)){let Z=$.map((U,Y)=>{if(d(U))return P4(U,J,W);return J(U,Y)});if(q)return Z.filter((U,Y)=>q(U,Y));return Z}if(d($))return Object.keys($).reduce((U,Y)=>{let H=$[Y],G;if(d(H)||Array.isArray(H))G=P4(H,J,W);else G=J(H,Y);if(!q||q(G,Y))U[Y]=G;return U},{});return $};var N4=($="",J={})=>{let W=async(q,Z={})=>{let U=new URL($?`${$}${q}`:q),{params:Y,parser:H,...G}=h0(J,Z);if(d(Y))Object.entries(Y).forEach(([L,x])=>{if(X4(x))return;U.searchParams.append(L,x.toString())});if(d(G.body))G.body=JSON.stringify(G.body),G.headers={...G.headers,"Content-Type":"application/json"};let X=await fetch(U,G);if(!X.ok){if(X.headers.get("Content-Type")?.startsWith("application/json"))throw await X.json();throw Error(X.statusText)}return await(H?.(X)??X.json())};return{get:(q,Z)=>W(q,{...Z,method:"GET"}),post:(q,Z,U)=>W(q,{...U,method:"POST",body:Z}),put:(q,Z,U)=>W(q,{...U,method:"PUT",body:Z}),delete:(q,Z)=>W(q,{...Z,method:"DELETE"})}},NW=async($)=>{try{return[null,await $]}catch(J){return[J,void 0]}};var VW=($,J)=>{return Math.floor(Math.random()*(J-$+1))+$};var b0=h6(f6(),1);var K7=($)=>{return $.replace(/_([a-zA-Z])/g,(J,W)=>W.toUpperCase())},H7=($)=>{return $.replace(/([A-Z])/g,(J,W)=>`_${W.toLowerCase()}`)},I7=($)=>{return $.charAt(0).toUpperCase()+$.slice(1)},G7=($)=>{return $.charAt(0).toLowerCase()+$.slice(1)},X7=async($,{quality:J=0.92}={})=>{if(!$.startsWith("http"))throw Error("\u56FE\u7247\u5730\u5740\u5FC5\u987B\u4EE5http\u6216https\u5F00\u5934");let W="",q=await N4().get($,{parser:async(Y)=>{return W=Y.headers.get("Content-Type")||"image/jpeg",Y.arrayBuffer()}}),Z=Buffer.from(q),U;if(W==="image/png")U=await b0.default(Z).png({compressionLevel:Math.round(J*9)}).toBuffer();else if(W==="image/gif")U=await b0.default(Z).gif().toBuffer();else U=await b0.default(Z).jpeg({quality:J}).toBuffer();return`data:${W};base64,${U.toString("base64")}`},B7=($="",J)=>{if(!$)return"";let{maxLength:W=1/0,disableNewLineReplace:q=!1,disableWhitespaceCollapse:Z=!1,omission:U="..."}=J??{},Y=$;if(!q)Y=Y.replace(/\r?\n/g,"\\n");else Y=Y.replace(/\r?\n/g," ");if(!Z)Y=Y.replace(/\s+/g," ");if(Y=Y.trim(),W>0&&Y.length>W)return Y.slice(0,W)+U;return Y};var N7=async($=150)=>{return new Promise((J)=>{setTimeout(J,$)})},E7=($,J=300)=>{let W=null;return(...q)=>{if(W)clearTimeout(W);W=setTimeout(()=>{$(...q)},J)}},V7=($,J=300)=>{let W=null;return function(...q){if(!W)W=setTimeout(()=>{W=null,$.apply(this,q)},J)}};export{UW as withCache,NW as to,WW as timeLog,V7 as throttle,K7 as snakeToCamel,N7 as sleep,VW as randomInt,h0 as mergeObjects,P4 as mapValues,B4 as mapKeys,ZW as loopUntil,HW as isTruthy,O0 as isPrimitive,d as isObject,X4 as isNil,KW as isFalsy,X7 as imageUrlToBase64,N4 as fetcher,G7 as decapitalize,E7 as debounce,B7 as compactStr,I7 as capitalize,H7 as camelToSnake};
2
+ var S=(...I)=>{console.log(`${new Date().toLocaleTimeString()}`,...I)};var K=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 L=(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,X={setTtl:(Z)=>{G=D+Z*1000}},_=I.apply(X,z);if(_ instanceof Promise){let Z=_.then((C)=>{return M.set(H,{value:C,expiresAt:G}),C});return M.set(H,{value:Z,expiresAt:G}),Z}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 Q=(I)=>{return I?.constructor===Object},Y=(I)=>{return I===null||I===void 0||typeof I!=="object"&&typeof I!=="function"},U=(I)=>{return!I},V=(I)=>{return!!I},T=(I)=>{return I===null||I===void 0};var P=(I,$)=>{let M={...I};for(let W of Object.keys($)){let z=M[W],H=$[W];if(Y(z)&&Y(H)){M[W]=H;continue}if(Array.isArray(z)&&Array.isArray(H)){M[W]=z.concat(H);continue}if(Q(z)&&Q(H)){M[W]=P(z,H);continue}M[W]=H}return M},B=(I,$)=>{if(Array.isArray(I))return I.map((M)=>B(M,$));if(Q(I))return Object.keys(I).reduce((W,z)=>{let H=$(z),D=I[z];return W[H]=B(D,$),W},{});return I},F=(I,$,M)=>{let{filter:W}=M??{};if(Array.isArray(I)){let z=I.map((H,D)=>{if(Q(H))return F(H,$,M);return $(H,D)});if(W)return z.filter((H,D)=>W(H,D));return z}if(Q(I))return Object.keys(I).reduce((H,D)=>{let J=I[D],G;if(Q(J)||Array.isArray(J))G=F(J,$,M);else G=$(J,D);if(!W||W(G,D))H[D]=G;return H},{});return I};var q=(I="",$={})=>{let M=async(W,z={})=>{let H=new URL(I?`${I}${W}`:W),{params:D,parser:J,...G}=P($,z);if(Q(D))Object.entries(D).forEach(([Z,C])=>{if(T(C))return;H.searchParams.append(Z,C.toString())});if(Q(G.body))G.body=JSON.stringify(G.body),G.headers={...G.headers,"Content-Type":"application/json"};let X=await fetch(H,G);if(!X.ok){if(X.headers.get("Content-Type")?.startsWith("application/json"))throw await X.json();throw Error(X.statusText)}return await(J?.(X)??X.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"})}},x=async(I)=>{try{return[null,await I]}catch($){return[$,void 0]}},w=async(I)=>{let[$,M]=await x(fetch(I,{method:"HEAD",redirect:"manual"}));if($)return I;return M.headers.get("location")||I};var d=(I,$)=>{return Math.floor(Math.random()*($-I+1))+I};import E from"sharp";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)},u=async(I,{quality:$=0.92}={})=>{if(!I.startsWith("http"))throw Error("\u56FE\u7247\u5730\u5740\u5FC5\u987B\u4EE5http\u6216https\u5F00\u5934");let M="",W=await q().get(I,{parser:async(D)=>{return M=D.headers.get("Content-Type")||"image/jpeg",D.arrayBuffer()}}),z=Buffer.from(W),H;if(M==="image/png")H=await E(z).png({compressionLevel:Math.round($*9)}).toBuffer();else if(M==="image/gif")H=await E(z).gif().toBuffer();else H=await E(z).jpeg({quality:$}).toBuffer();return`data:${M};base64,${H.toString("base64")}`},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)},$)}},l=(I,$=300)=>{let M=null;return function(...W){if(!M)M=setTimeout(()=>{M=null,I.apply(this,W)},$)}};export{L as withCache,x as to,S as timeLog,l as throttle,b as snakeToCamel,i as sleep,d as randomInt,P as mergeObjects,F as mapValues,B as mapKeys,K as loopUntil,V as isTruthy,Y as isPrimitive,Q as isObject,T as isNil,U as isFalsy,u as imageUrlToBase64,w as getRealURL,q as fetcher,n as decapitalize,r as debounce,o as compactStr,p as capitalize,y as camelToSnake};
package/dist/network.d.ts CHANGED
@@ -53,3 +53,5 @@ export declare const fetcher: (baseURL?: string, baseOptions?: RequestInit) => {
53
53
  * const [error, response] = await to(fetcher().get<Blog>("/blogs/hello-world"));
54
54
  */
55
55
  export declare const to: <T, E = Error>(promise: Promise<T>) => Promise<[null, T] | [E, undefined]>;
56
+ /** 从 url 响应头获取真实链接 */
57
+ export declare const getRealURL: (originURL: string) => Promise<string>;
@@ -1 +1 @@
1
- window.navigationData = "eJyNlE1P3DAQQP/LnFekRQsVOXYREmpLq27oBXEw3mFj8EcaT4Cl4r8jbbC0GY2dXvPynmJn7Jt/QPhCUMNKObRNWHv1iLCATlELNdCuw1gdsqOWnIUFPBq/gfr409mXzyfHb4vUgZXqDClrXnmlSuR1rgHnqHOV6pDNdc4Rux+q+4a7yDMJ4S7+Z+WPsgPmOiOcK10oG3e8sH84Z/7qjTNknvh2VAnM7QX8xr8DRrr0hngjIW9orrJGasjywPh0zt2PTxP2w8QLh2yuo8VJvR+8JhN8rHRuWuvT5STDR2wakYdsmgiuU5rW1IuJRPtcAmrY4F0YvBa/IbGiXl7GJndappl7JN2iuIoPlJOhBuPUFq9724SvKuLpUqrwd0q5yI5JqsTqAxXlK2Nl9crYovjz7gE1ye7Iijo/oayQOacs0vQDtZmljyynQw02hO7ak7z+BEt74PhVmfRYOemq5DK/ISe6dENOA9hvcdxouZG4plKmV34T3KUX/2SCpV8ZLWInyXtQEsX7Lfmxirk7bpqhtg9EVpyjxEq6cfg9bEV7RCU5iF7IKVDDs6F2pXQrfm+C/IOXb7fvboXa/g=="
1
+ window.navigationData = "eJyNlF1P2zAUQP/Lfa4IQwU0P64ICa3A1KZ7QTwY99IY/JHFN9vKxH9HarDUWNfOXnNyjmLn2g//gPAvgYCFtGhqv3byFWEGraQGBNC+xVAds5OGrIEZvGq3BXF2+vXyy/nZ+yx2YCFbTdLot7RSRfI21YArVLlKdcymOleI7a1sv+M+pJmIcB/+s/JTmh5znQFOla6lCfu0cHg4Zf7otNWkf6fbUUUwtRewwl89BrpxmtJGRE7TVGWNVJNJA8PTKfcwPrU/DFNaOGZTHcVO6nPvFGnvQqVy0you5qNMOmLjCD9k44S3rVS0po5NRNrlEiBgi0++d4r9hsiKenkZ29xpGWeekVSD7Co+UU4GATukFUqzWS05P9LVMpcAAdrKHW46U/tvMuDFnAul75RyITlpsRKqT1SU77Th1TttiuL90wsq4t2BFfX0kCeFzFFPInXXU5NZ+sByOggw3rcbR/z6IyztgU1v26iHynK3bSqnl+xI5y7ZcQC7HQ4bzTciV1TKdNJtvb1x7J+MsPQrg0FsOfkASiJ7RUY/VCF3TY4z1HSeyLBzFFlJ1xaXfsfaAyrJnvV8TgEBfzQ1C6ka9nsjTD94/v74Abx58Vc="
@@ -1 +1 @@
1
- window.searchData = "eJydmFtv4zYQhf/LPAuxSd/52BQFgrbbopvdF8EoFJmJ2ejiinS2WcH/vaCoAajBuKH7tIszPl8o6oykYQ9d+82Cynt4Nc0BlJzvNmIlM2iKWoOC+6LW1WP7uSleNWRw7ipQ4N5P2s7i0t3R1RVkUFaFtdqCArhk15j3xcm4ojLfKREL32/j/ajLa8S4dCNTn34tTj/rd0uRWHm3/4f4tajO+goz1G6i/lRU9p3QBu0myu+dqY0zb3T7UL9t7/7Qf5+1dQ+NcYSHlca4m4iftXt0FYEF8TaOz+pjOySX0rBU6/9mrpeIg5JrjudzUzrTNnZWpjbIBEmTPAEmZTnGtfWpKN1n13E4LHapuIN+as9Nya0NS6moA9e0Me7Wi1XwrF151NyVjpVUkKmLF/2lqx7bHwqr10tKbOyM/iQVbey0Y5FoZ2MlFWTsJ1OxmE8mNcBg7G9Pf+nSsZxQSkUZSx8iU1rao2QCfOzO7shvVSiloqq2PX1pHLtfWEvdM6jJWwFRdlZ/9FagIPoymKA+ehkQmO5edLhjLA/LpUtFQlc0h7Z+aLh0YC01HmArrU8U1NjZoKdCLPf4Rpad2Vsf4f7hf+xa5yous1hKRTlT61/aF44UKqkg13KMNtX+zbjjfVEeuWvCGntR+wxMc9D/gOrhTXfWtA0okHeLux1k8Gx0dfCfiuHvZP7dUushHYe2PA//3Y8/+6pL13b+x+HXszlk+TyT6zsxF/t9lqN5KAwCMlAZjQKyXHBGQY2ojEYJWS45o6RGVEbjArJ8kS3EnZzvJsYFNaIyGpeQ5UvOuKRGVEbjCrJ8xRlX1IjKaFxDlq8545oaURmNG8jyDWfcUCMqo3ELWb7ljFtqRGU07iDLd9zt2FEjKhiAa9EJFRIBEp5r6QkV4p3mR/hUiDl3rYJGKJaC2SdDCNZMYxRLwby8Fl1BkxRLwesDIiT7h2maYimYfUgEm31BExVLweyDItj8C5qqWApmHxbB9oCgyYqlYPaBEWwfCJquWAqPCZ8YwfaCpPmKpWAe8sX2g6QBi6VgHgK2Y800YLEUzD4ykk2npAGLpWAeAsamU9KExVIw+8xINmGSJiyWgtlnRrIJkzRhsRTMPjOSTZikCYulYN5eewBJGrBYCl4fGcmmU9KAxVJ4nfjISDadCxqwWApmHxnJpnNBAxZLwTy8Atl0LmjAUNoP3wBvunP68BC+BfI8zLmutWHO7eHP8TNhjt8cPcxB9ZcMxPDvBT8OXFDxjwy1YR04201wAnE9iBEn0nBhkLV+ykUcKIHL8zyZBMIhdoKJl7VIxPAXiAcRqgc5XuAyEahPdXF6HeYO5IFaIK+H1IUNnLdx7EASKPx6VD2kreg5TLFIALVCQg+rNAJO68gAJXCD/FanUYY5/NxVrn0aR3XEgRK4Px63TsNZemFK4N54yiaR0vhZExmgBO6OZ2wTGe04miMGlFgjpgexS8SccPCekDZI6kGm9ayxbpzHEQNKbBHTg0zrVT9vn8MsjhxQYoecHmRaq9J28O2FDe8paQ3BNoPEjvectHYY5usWx29EgZJxy6clmr1feONVD2lBDgO6aSb5kdgQfjWJnHBia4azXCSBwvioHtJawmrn3OSeY3RUD2kdMR4hIAGUxM70l5O4DP8Kc20ZThAQBQrzp3rYBatMWxQeEkzWhd3u15XWpv6EoPJnB0gBJfGe+6d7Wov6gwMEgJJ4kzwgrTn98UAZjg6QA0rinfKcj5rzcvGfECdz0pVpNKh8f7n8C4hNbtA=";
1
+ window.searchData = "eJydmN1u4zYQhd9lroXYpGwn5mVTFAiaboskuzdCUCgyk7DRjyvS2WYFv3tBUQNQg3FD9yrBGZ/PEn1GFGeAvvtuQRUDvJl2B0out5diLTNoy0aDguuy0fVDd9+WbxoyOPQ1KHAfe20Xceni1TU1ZFDVpbXaggI4ZqeY1+XeuLI2PygRCz/O4/2sq1PEuHQmU+9/K/e/6g9LkVj5sP+H+K2sD/oEM9TOov5S1vaD0EbtLMofvWmMM+90+VA/b+3u9N8Hbd1NaxzhYaU17izivXYPriawIJ7H8Vl96MbkUhqWGv3fzM0KcVBxzfF8aCtnutYuqtQGmSFpkmfApCzHuK7Zl5W7dz2Hw2Kfitvpp+7QVty1YSkVteOaNsade7MKnrWrXjV3p1MlFfSi3Z0u6693t5TV2gUW725TcaYpX/TXvn7ofiqt3qwotLUL+pFUtLHzBwAS7WKqpIKM/WJqFvPFpPYDGPv701+6ciwnlFJRxtJn0pyW9mSaAR/6g3vllyqUUlF11+2/to5dL6ylrhk0ZJNBlF00n20yFET3lhnqs72FwHT/osMvxvKwXLlUJPRlu+uam5ZLB9ZS4wG21npPQa1djHoqxHK7AbLswp67I/i95LXvnKu5zGIpFeVMo2+7F44UKqkg13GMLtX+3bjX67J65e4Ja+xNPWZg2p3+B9QA77q3pmtBgbzIL7aQwbPR9c6/eYbvyfxW1egxHbuuOoz/Pk4f+6Yr1/X+w+HTiyVkxTKTm4t8Kx4fswLNY2EUkIHKZBSQFYIzCmpEZTJKyArJGSU1ojIZc8iKPMvFxWq7nRlzakRlMq4gK1accUWNqEzGNWTFmjOuqRGVybiBrNhwxg01ojIZLyErLjnjJTWiMhmvICuuOOMVNaIyGbeQFVvu59hSIyoYgFPRCRUSARKeU+kJFeKd50f4VIgld6+CRiiWgtknQwjWTGMUS8G8OhVdQZMUS8HrAyIk+8U0TbEUzD4kgs2+oImKpWD2QRFs/gVNVSwFsw+LYHtA0GTFUjD7wAi2DwRNVyyFx4RPjGB7QdJ8xVIwj/li+0HSgMVSMI8B27JmGrBYCmYfGcmmU9KAxVIwjwFj0ylpwmIpmH1mJJswSRMWS8HsMyPZhEmasFgKZp8ZySZM0oTFUjD7zEg2YZImLJaC+dTTK1SIdx6w3EdGsunMacBiKZh9ZCSbzpwGLJaCedwC2XTmNGCxFMxjwNh05jRgKD2OLxDvund6dxNeJIoinLldZ8OZe4A/p3eMJb6wDLAENRwzEOPfI75ZuKDil4y18TrwnDnDCcQNICacSMOFQ7X1J27EgRJ4eZ4nk0B4oJ5h4svKEzH8DeJQRA0gpxtcJQL1vin3b+OhBXmgcuQNkHphI+d9OrMgCRS+eqoB0q7oORyBkQBqjYQB1mkEnBwgA5TABfJLnUZ50a7XZe1fkmMQrowHbZJA4zTg0Neue5oGBogDJXB5PO4yDWfpCimBS+QpV4mU1sxvbIOMAcQ2kdFNAwLEgBKXiBlAprWssXs8/s9IV0gaQKZ1q7FumgogBpTYImYAmdar/tR/CBMB5PjhI3IGkGk9QfvKU7DlPSWtH9iuknHDp+V5POV3OARAFCiJifaotESzvxfmRw2QRgljAtPO8iOxIfzVpDVEH8bQZhxQIwkUBlENkMax2jk3+80xgWqAtK6aBhlIACWxM/3tJDL8Xui6KswxEAUKc6wG2AarTGtTHFXMrgt/Lf+AT2tTP6eo/QQDKaAkrrGnpLWoH18gAJTEFfaAtOb0Q4oqDDCQA0ri4njOZ815PPp3kb3Z69q0GlTxeDz+C1kStC8=";