@hono-filebased-route/runtime 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -0
- package/README.md +183 -0
- package/build.ts +9 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +27 -0
- package/index.ts +40 -0
- package/package.json +46 -0
- package/tsconfig.json +16 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
$ bun run build.ts
|
package/README.md
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# Hono File-Based Routing Runtime
|
|
2
|
+
|
|
3
|
+
一个基于 Hono 框架的文件路由系统运行时,使用 Turborepo 管理的 monorepo 项目,支持类似 Next.js 的文件路由模式。
|
|
4
|
+
|
|
5
|
+
## 特性
|
|
6
|
+
|
|
7
|
+
- 🚀 **文件路由系统**: 基于文件结构自动生成路由
|
|
8
|
+
- ⚡ **Bun 运行时**: 快速的 JavaScript 运行时
|
|
9
|
+
- 🔥 **热重载**: 开发时自动重新加载
|
|
10
|
+
- 📁 **动态路由**: 支持动态参数和通配符路由
|
|
11
|
+
- 🎯 **类型安全**: 完整的 TypeScript 支持
|
|
12
|
+
- 🛠️ **自动生成**: 路由配置自动生成,无需手动维护
|
|
13
|
+
- 📦 **Monorepo**: 使用 Turborepo 管理多包项目
|
|
14
|
+
- ⚡ **构建缓存**: 智能缓存和并行构建优化
|
|
15
|
+
|
|
16
|
+
## 路由规则
|
|
17
|
+
|
|
18
|
+
### 基本路由实例
|
|
19
|
+
|
|
20
|
+
| 文件路径 | 路由路径 | 说明 |
|
|
21
|
+
| ---------------------------------- | ------------- | ------------ |
|
|
22
|
+
| `src/routes/index.ts` | `/` | 根路由 |
|
|
23
|
+
| `src/routes/about.ts` | `/about` | 静态路由 |
|
|
24
|
+
| `src/routes/users/index.ts` | `/users` | 嵌套路由 |
|
|
25
|
+
| `src/routes/users/[id].ts` | `/users/:id` | 动态参数路由 |
|
|
26
|
+
| `src/routes/articles/[...slug].ts` | `/articles/*` | 通配符路由 |
|
|
27
|
+
|
|
28
|
+
## 安装
|
|
29
|
+
|
|
30
|
+
安装项目依赖:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm install
|
|
34
|
+
# or
|
|
35
|
+
yarn add
|
|
36
|
+
# or
|
|
37
|
+
pnpm add
|
|
38
|
+
# or
|
|
39
|
+
bun add
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 使用方法
|
|
43
|
+
|
|
44
|
+
### Turborepo 命令
|
|
45
|
+
|
|
46
|
+
本项目使用 Turborepo 进行 monorepo 管理,支持以下命令:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# 构建所有包
|
|
50
|
+
bun run build
|
|
51
|
+
|
|
52
|
+
# 启动所有开发服务
|
|
53
|
+
bun run dev
|
|
54
|
+
|
|
55
|
+
# 运行所有测试
|
|
56
|
+
bun run test
|
|
57
|
+
|
|
58
|
+
# 类型检查
|
|
59
|
+
bun run type-check
|
|
60
|
+
|
|
61
|
+
# 清理构建产物
|
|
62
|
+
bun run clean
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 开发模式
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# 使用 Turborepo 启动开发服务器
|
|
69
|
+
bun run dev
|
|
70
|
+
|
|
71
|
+
# 或者直接启动示例项目
|
|
72
|
+
cd examples/bun
|
|
73
|
+
bun run dev
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
这将启动开发服务器,支持热重载,访问 <http://localhost:3000>
|
|
77
|
+
|
|
78
|
+
### 生产模式
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# 先构建所有包
|
|
82
|
+
bun run build
|
|
83
|
+
|
|
84
|
+
# 启动示例应用
|
|
85
|
+
cd examples/bun
|
|
86
|
+
bun run start
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 手动生成路由
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
bun run generate-routes
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 创建路由
|
|
96
|
+
|
|
97
|
+
在 `src/routes` 目录下创建 TypeScript 文件,导出 HTTP 方法处理函数:
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
import { Context } from 'hono'
|
|
101
|
+
|
|
102
|
+
// GET 请求处理
|
|
103
|
+
export function GET(c: Context) {
|
|
104
|
+
return c.json({ message: 'Hello from GET' })
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// POST 请求处理
|
|
108
|
+
export function POST(c: Context) {
|
|
109
|
+
return c.json({ message: 'Hello from POST' })
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 动态路由
|
|
114
|
+
|
|
115
|
+
使用方括号创建动态路由:
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
import { Context } from 'hono'
|
|
119
|
+
|
|
120
|
+
export function GET(c: Context) {
|
|
121
|
+
const id = c.req.param('id')
|
|
122
|
+
return c.json({ userId: id })
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 通配符路由
|
|
127
|
+
|
|
128
|
+
使用 `[...slug]` 创建通配符路由:
|
|
129
|
+
|
|
130
|
+
该项目通过 `c.req.path` 填充 `slug` 参数,自动为 `GET/POST` 函数提供第二个参数。
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
import { Context } from 'hono'
|
|
134
|
+
|
|
135
|
+
export function GET(c: Context, slug: string[]) {
|
|
136
|
+
return c.json({ slug })
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## 工作原理
|
|
141
|
+
|
|
142
|
+
1. **路由扫描**: `scripts/generate-routes.ts` 扫描 `src/routes` 目录
|
|
143
|
+
2. **路径转换**: 将文件路径转换为 Hono 路由路径
|
|
144
|
+
3. **代码生成**: 生成 `src/generated-routes.ts` 文件
|
|
145
|
+
4. **自动注册**: 主应用自动注册所有生成的路由
|
|
146
|
+
|
|
147
|
+
## 开发脚本
|
|
148
|
+
|
|
149
|
+
### 根目录脚本(Turborepo)
|
|
150
|
+
|
|
151
|
+
- `bun run build`: 构建所有包(支持缓存和并行构建)
|
|
152
|
+
- `bun run dev`: 启动所有开发服务
|
|
153
|
+
- `bun run test`: 运行所有测试
|
|
154
|
+
- `bun run lint`: 代码检查
|
|
155
|
+
- `bun run type-check`: TypeScript 类型检查
|
|
156
|
+
- `bun run clean`: 清理所有构建产物
|
|
157
|
+
- `bun run test:basic`: 快速启动基础示例
|
|
158
|
+
|
|
159
|
+
### 包级别脚本
|
|
160
|
+
|
|
161
|
+
- `bun run build`: 构建当前包
|
|
162
|
+
- `bun run dev`: 开发模式(包含热重载)
|
|
163
|
+
- `bun run clean`: 清理构建产物
|
|
164
|
+
- `bun run generate-routes`: 生成路由配置(仅示例项目)
|
|
165
|
+
|
|
166
|
+
## 技术栈
|
|
167
|
+
|
|
168
|
+
- **[Hono](https://hono.dev/)**: 轻量级 Web 框架
|
|
169
|
+
- **[bun](https://bun.sh/)**: 快速的 JavaScript 运行时
|
|
170
|
+
- **[Turborepo](https://turbo.build/)**: 高性能 monorepo 构建系统
|
|
171
|
+
- **TypeScript**: 类型安全的 JavaScript
|
|
172
|
+
|
|
173
|
+
## 许可证
|
|
174
|
+
|
|
175
|
+
MIT License
|
|
176
|
+
|
|
177
|
+
## 贡献
|
|
178
|
+
|
|
179
|
+
欢迎提交 Issue 和 Pull Request!
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
**注意**: `src/generated-routes.ts` 文件是自动生成的,请不要手动编辑。如需修改路由,请直接修改 `src/routes` 目录下的文件。
|
package/build.ts
ADDED
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import{createRequire as De}from"node:module";import Gt from"path";var Le=Object.create,{getPrototypeOf:Ke,defineProperty:te,getOwnPropertyNames:Be}=Object,Ge=Object.prototype.hasOwnProperty,Xe=(t,e,c)=>{c=t!=null?Le(Ke(t)):{};let r=e||!t||!t.__esModule?te(c,"default",{value:t,enumerable:!0}):c;for(let s of Be(t))if(!Ge.call(r,s))te(r,s,{get:()=>t[s],enumerable:!0});return r},G=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),y=De(import.meta.url),Ue=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.splitWhen=t.flatten=void 0;function e(r){return r.reduce((s,i)=>[].concat(s,i),[])}t.flatten=e;function c(r,s){let i=[[]],l=0;for(let n of r)if(s(n))l++,i[l]=[];else i[l].push(n);return i}t.splitWhen=c}),Je=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isEnoentCodeError=void 0;function e(c){return c.code==="ENOENT"}t.isEnoentCodeError=e}),We=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createDirentFromStats=void 0;class e{constructor(r,s){this.name=r,this.isBlockDevice=s.isBlockDevice.bind(s),this.isCharacterDevice=s.isCharacterDevice.bind(s),this.isDirectory=s.isDirectory.bind(s),this.isFIFO=s.isFIFO.bind(s),this.isFile=s.isFile.bind(s),this.isSocket=s.isSocket.bind(s),this.isSymbolicLink=s.isSymbolicLink.bind(s)}}function c(r,s){return new e(r,s)}t.createDirentFromStats=c}),ze=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.convertPosixPathToPattern=t.convertWindowsPathToPattern=t.convertPathToPattern=t.escapePosixPath=t.escapeWindowsPath=t.escape=t.removeLeadingDotSegment=t.makeAbsolute=t.unixify=void 0;var e=y("os"),c=y("path"),r=e.platform()==="win32",s=2,i=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,l=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,n=/^\\\\([.?])/,o=/\\(?![!()+@[\]{}])/g;function a(I){return I.replace(/\\/g,"/")}t.unixify=a;function u(I,m){return c.resolve(I,m)}t.makeAbsolute=u;function p(I){if(I.charAt(0)==="."){let m=I.charAt(1);if(m==="/"||m==="\\")return I.slice(s)}return I}t.removeLeadingDotSegment=p,t.escape=r?g:x;function g(I){return I.replace(l,"\\$2")}t.escapeWindowsPath=g;function x(I){return I.replace(i,"\\$2")}t.escapePosixPath=x,t.convertPathToPattern=r?v:O;function v(I){return g(I).replace(n,"//$1").replace(o,"/")}t.convertWindowsPathToPattern=v;function O(I){return x(I)}t.convertPosixPathToPattern=O}),Ze=G((t,e)=>{/*!
|
|
2
|
+
* is-extglob <https://github.com/jonschlinkert/is-extglob>
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2014-2016, Jon Schlinkert.
|
|
5
|
+
* Licensed under the MIT License.
|
|
6
|
+
*/e.exports=function c(r){if(typeof r!=="string"||r==="")return!1;var s;while(s=/(\\).|([@?!+*]\(.*\))/g.exec(r)){if(s[2])return!0;r=r.slice(s.index+s[0].length)}return!1}}),je=G((t,e)=>{/*!
|
|
7
|
+
* is-glob <https://github.com/jonschlinkert/is-glob>
|
|
8
|
+
*
|
|
9
|
+
* Copyright (c) 2014-2017, Jon Schlinkert.
|
|
10
|
+
* Released under the MIT License.
|
|
11
|
+
*/var c=Ze(),r={"{":"}","(":")","[":"]"},s=function(l){if(l[0]==="!")return!0;var n=0,o=-2,a=-2,u=-2,p=-2,g=-2;while(n<l.length){if(l[n]==="*")return!0;if(l[n+1]==="?"&&/[\].+)]/.test(l[n]))return!0;if(a!==-1&&l[n]==="["&&l[n+1]!=="]"){if(a<n)a=l.indexOf("]",n);if(a>n){if(g===-1||g>a)return!0;if(g=l.indexOf("\\",n),g===-1||g>a)return!0}}if(u!==-1&&l[n]==="{"&&l[n+1]!=="}"){if(u=l.indexOf("}",n),u>n){if(g=l.indexOf("\\",n),g===-1||g>u)return!0}}if(p!==-1&&l[n]==="("&&l[n+1]==="?"&&/[:!=]/.test(l[n+2])&&l[n+3]!==")"){if(p=l.indexOf(")",n),p>n){if(g=l.indexOf("\\",n),g===-1||g>p)return!0}}if(o!==-1&&l[n]==="("&&l[n+1]!=="|"){if(o<n)o=l.indexOf("|",n);if(o!==-1&&l[o+1]!==")"){if(p=l.indexOf(")",o),p>o){if(g=l.indexOf("\\",o),g===-1||g>p)return!0}}}if(l[n]==="\\"){var x=l[n+1];n+=2;var v=r[x];if(v){var O=l.indexOf(v,n);if(O!==-1)n=O+1}if(l[n]==="!")return!0}else n++}return!1},i=function(l){if(l[0]==="!")return!0;var n=0;while(n<l.length){if(/[*?{}()[\]]/.test(l[n]))return!0;if(l[n]==="\\"){var o=l[n+1];n+=2;var a=r[o];if(a){var u=l.indexOf(a,n);if(u!==-1)n=u+1}if(l[n]==="!")return!0}else n++}return!1};e.exports=function l(n,o){if(typeof n!=="string"||n==="")return!1;if(c(n))return!0;var a=s;if(o&&o.strict===!1)a=i;return a(n)}}),Ye=G((t,e)=>{var c=je(),r=y("path").posix.dirname,s=y("os").platform()==="win32",i="/",l=/\\/g,n=/[\{\[].*[\}\]]$/,o=/(^|[^\\])([\{\[]|\([^\)]+$)/,a=/\\([\!\*\?\|\[\]\(\)\{\}])/g;e.exports=function u(p,g){var x=Object.assign({flipBackslashes:!0},g);if(x.flipBackslashes&&s&&p.indexOf(i)<0)p=p.replace(l,i);if(n.test(p))p+=i;p+="a";do p=r(p);while(c(p)||o.test(p));return p.replace(a,"$1")}}),Xt=G((t)=>{t.isInteger=(e)=>{if(typeof e==="number")return Number.isInteger(e);if(typeof e==="string"&&e.trim()!=="")return Number.isInteger(Number(e));return!1},t.find=(e,c)=>e.nodes.find((r)=>r.type===c),t.exceedsLimit=(e,c,r=1,s)=>{if(s===!1)return!1;if(!t.isInteger(e)||!t.isInteger(c))return!1;return(Number(c)-Number(e))/Number(r)>=s},t.escapeNode=(e,c=0,r)=>{let s=e.nodes[c];if(!s)return;if(r&&s.type===r||s.type==="open"||s.type==="close"){if(s.escaped!==!0)s.value="\\"+s.value,s.escaped=!0}},t.encloseBrace=(e)=>{if(e.type!=="brace")return!1;if(e.commas>>0+e.ranges>>0===0)return e.invalid=!0,!0;return!1},t.isInvalidBrace=(e)=>{if(e.type!=="brace")return!1;if(e.invalid===!0||e.dollar)return!0;if(e.commas>>0+e.ranges>>0===0)return e.invalid=!0,!0;if(e.open!==!0||e.close!==!0)return e.invalid=!0,!0;return!1},t.isOpenOrClose=(e)=>{if(e.type==="open"||e.type==="close")return!0;return e.open===!0||e.close===!0},t.reduce=(e)=>e.reduce((c,r)=>{if(r.type==="text")c.push(r.value);if(r.type==="range")r.type="text";return c},[]),t.flatten=(...e)=>{let c=[],r=(s)=>{for(let i=0;i<s.length;i++){let l=s[i];if(Array.isArray(l)){r(l);continue}if(l!==void 0)c.push(l)}return c};return r(e),c}}),Ut=G((t,e)=>{var c=Xt();e.exports=(r,s={})=>{let i=(l,n={})=>{let o=s.escapeInvalid&&c.isInvalidBrace(n),a=l.invalid===!0&&s.escapeInvalid===!0,u="";if(l.value){if((o||a)&&c.isOpenOrClose(l))return"\\"+l.value;return l.value}if(l.value)return l.value;if(l.nodes)for(let p of l.nodes)u+=i(p);return u};return i(r)}}),Ve=G((t,e)=>{/*!
|
|
12
|
+
* is-number <https://github.com/jonschlinkert/is-number>
|
|
13
|
+
*
|
|
14
|
+
* Copyright (c) 2014-present, Jon Schlinkert.
|
|
15
|
+
* Released under the MIT License.
|
|
16
|
+
*/e.exports=function(c){if(typeof c==="number")return c-c===0;if(typeof c==="string"&&c.trim()!=="")return Number.isFinite?Number.isFinite(+c):isFinite(+c);return!1}}),$e=G((t,e)=>{/*!
|
|
17
|
+
* to-regex-range <https://github.com/micromatch/to-regex-range>
|
|
18
|
+
*
|
|
19
|
+
* Copyright (c) 2015-present, Jon Schlinkert.
|
|
20
|
+
* Released under the MIT License.
|
|
21
|
+
*/var c=Ve(),r=(T,R,k)=>{if(c(T)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(R===void 0||T===R)return String(T);if(c(R)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let b={relaxZeros:!0,...k};if(typeof b.strictZeros==="boolean")b.relaxZeros=b.strictZeros===!1;let d=String(b.relaxZeros),H=String(b.shorthand),A=String(b.capture),E=String(b.wrap),B=T+":"+R+"="+d+H+A+E;if(r.cache.hasOwnProperty(B))return r.cache[B].result;let W=Math.min(T,R),J=Math.max(T,R);if(Math.abs(W-J)===1){let V=T+"|"+R;if(b.capture)return`(${V})`;if(b.wrap===!1)return V;return`(?:${V})`}let z=I(T)||I(R),U={min:T,max:R,a:W,b:J},D=[],Q=[];if(z)U.isPadded=z,U.maxLen=String(U.max).length;if(W<0){let V=J<0?Math.abs(J):1;Q=n(V,Math.abs(W),U,b),W=U.a=0}if(J>=0)D=n(W,J,U,b);if(U.negatives=Q,U.positives=D,U.result=s(Q,D,b),b.capture===!0)U.result=`(${U.result})`;else if(b.wrap!==!1&&D.length+Q.length>1)U.result=`(?:${U.result})`;return r.cache[B]=U,U.result};function s(T,R,k){let b=o(T,R,"-",!1,k)||[],d=o(R,T,"",!1,k)||[],H=o(T,R,"-?",!0,k)||[];return b.concat(H).concat(d).join("|")}function i(T,R){let k=1,b=1,d=g(T,k),H=new Set([R]);while(T<=d&&d<=R)H.add(d),k+=1,d=g(T,k);d=x(R+1,b)-1;while(T<d&&d<=R)H.add(d),b+=1,d=x(R+1,b)-1;return H=[...H],H.sort(u),H}function l(T,R,k){if(T===R)return{pattern:T,count:[],digits:0};let b=a(T,R),d=b.length,H="",A=0;for(let E=0;E<d;E++){let[B,W]=b[E];if(B===W)H+=B;else if(B!=="0"||W!=="9")H+=O(B,W,k);else A++}if(A)H+=k.shorthand===!0?"\\d":"[0-9]";return{pattern:H,count:[A],digits:d}}function n(T,R,k,b){let d=i(T,R),H=[],A=T,E;for(let B=0;B<d.length;B++){let W=d[B],J=l(String(A),String(W),b),z="";if(!k.isPadded&&E&&E.pattern===J.pattern){if(E.count.length>1)E.count.pop();E.count.push(J.count[0]),E.string=E.pattern+v(E.count),A=W+1;continue}if(k.isPadded)z=m(W,k,b);J.string=z+J.pattern+v(J.count),H.push(J),A=W+1,E=J}return H}function o(T,R,k,b,d){let H=[];for(let A of T){let{string:E}=A;if(!b&&!p(R,"string",E))H.push(k+E);if(b&&p(R,"string",E))H.push(k+E)}return H}function a(T,R){let k=[];for(let b=0;b<T.length;b++)k.push([T[b],R[b]]);return k}function u(T,R){return T>R?1:R>T?-1:0}function p(T,R,k){return T.some((b)=>b[R]===k)}function g(T,R){return Number(String(T).slice(0,-R)+"9".repeat(R))}function x(T,R){return T-T%Math.pow(10,R)}function v(T){let[R=0,k=""]=T;if(k||R>1)return`{${R+(k?","+k:"")}}`;return""}function O(T,R,k){return`[${T}${R-T===1?"":"-"}${R}]`}function I(T){return/^-?(0+)\d/.test(T)}function m(T,R,k){if(!R.isPadded)return T;let b=Math.abs(R.maxLen-String(T).length),d=k.relaxZeros!==!1;switch(b){case 0:return"";case 1:return d?"0?":"0";case 2:return d?"0{0,2}":"00";default:return d?`0{0,${b}}`:`0{${b}}`}}r.cache={},r.clearCache=()=>r.cache={},e.exports=r}),ee=G((t,e)=>{/*!
|
|
22
|
+
* fill-range <https://github.com/jonschlinkert/fill-range>
|
|
23
|
+
*
|
|
24
|
+
* Copyright (c) 2014-present, Jon Schlinkert.
|
|
25
|
+
* Licensed under the MIT License.
|
|
26
|
+
*/var c=y("util"),r=$e(),s=(b)=>b!==null&&typeof b==="object"&&!Array.isArray(b),i=(b)=>{return(d)=>b===!0?Number(d):String(d)},l=(b)=>{return typeof b==="number"||typeof b==="string"&&b!==""},n=(b)=>Number.isInteger(+b),o=(b)=>{let d=`${b}`,H=-1;if(d[0]==="-")d=d.slice(1);if(d==="0")return!1;while(d[++H]==="0");return H>0},a=(b,d,H)=>{if(typeof b==="string"||typeof d==="string")return!0;return H.stringify===!0},u=(b,d,H)=>{if(d>0){let A=b[0]==="-"?"-":"";if(A)b=b.slice(1);b=A+b.padStart(A?d-1:d,"0")}if(H===!1)return String(b);return b},p=(b,d)=>{let H=b[0]==="-"?"-":"";if(H)b=b.slice(1),d--;while(b.length<d)b="0"+b;return H?"-"+b:b},g=(b,d,H)=>{b.negatives.sort((J,z)=>J<z?-1:J>z?1:0),b.positives.sort((J,z)=>J<z?-1:J>z?1:0);let A=d.capture?"":"?:",E="",B="",W;if(b.positives.length)E=b.positives.map((J)=>p(String(J),H)).join("|");if(b.negatives.length)B=`-(${A}${b.negatives.map((J)=>p(String(J),H)).join("|")})`;if(E&&B)W=`${E}|${B}`;else W=E||B;if(d.wrap)return`(${A}${W})`;return W},x=(b,d,H,A)=>{if(H)return r(b,d,{wrap:!1,...A});let E=String.fromCharCode(b);if(b===d)return E;let B=String.fromCharCode(d);return`[${E}-${B}]`},v=(b,d,H)=>{if(Array.isArray(b)){let A=H.wrap===!0,E=H.capture?"":"?:";return A?`(${E}${b.join("|")})`:b.join("|")}return r(b,d,H)},O=(...b)=>{return new RangeError("Invalid range arguments: "+c.inspect(...b))},I=(b,d,H)=>{if(H.strictRanges===!0)throw O([b,d]);return[]},m=(b,d)=>{if(d.strictRanges===!0)throw new TypeError(`Expected step "${b}" to be a number`);return[]},T=(b,d,H=1,A={})=>{let E=Number(b),B=Number(d);if(!Number.isInteger(E)||!Number.isInteger(B)){if(A.strictRanges===!0)throw O([b,d]);return[]}if(E===0)E=0;if(B===0)B=0;let W=E>B,J=String(b),z=String(d),U=String(H);H=Math.max(Math.abs(H),1);let D=o(J)||o(z)||o(U),Q=D?Math.max(J.length,z.length,U.length):0,V=D===!1&&a(b,d,A)===!1,$=A.transform||i(V);if(A.toRegex&&H===1)return x(p(b,Q),p(d,Q),!0,A);let Y={negatives:[],positives:[]},S=(P)=>Y[P<0?"negatives":"positives"].push(Math.abs(P)),K=[],Z=0;while(W?E>=B:E<=B){if(A.toRegex===!0&&H>1)S(E);else K.push(u($(E,Z),Q,V));E=W?E-H:E+H,Z++}if(A.toRegex===!0)return H>1?g(Y,A,Q):v(K,null,{wrap:!1,...A});return K},R=(b,d,H=1,A={})=>{if(!n(b)&&b.length>1||!n(d)&&d.length>1)return I(b,d,A);let E=A.transform||((V)=>String.fromCharCode(V)),B=`${b}`.charCodeAt(0),W=`${d}`.charCodeAt(0),J=B>W,z=Math.min(B,W),U=Math.max(B,W);if(A.toRegex&&H===1)return x(z,U,!1,A);let D=[],Q=0;while(J?B>=W:B<=W)D.push(E(B,Q)),B=J?B-H:B+H,Q++;if(A.toRegex===!0)return v(D,null,{wrap:!1,options:A});return D},k=(b,d,H,A={})=>{if(d==null&&l(b))return[b];if(!l(b)||!l(d))return I(b,d,A);if(typeof H==="function")return k(b,d,1,{transform:H});if(s(H))return k(b,d,0,H);let E={...A};if(E.capture===!0)E.wrap=!0;if(H=H||E.step||1,!n(H)){if(H!=null&&!s(H))return m(H,E);return k(b,d,1,H)}if(n(b)&&n(d))return T(b,d,H,E);return R(b,d,Math.max(Math.abs(H),1),E)};e.exports=k}),Me=G((t,e)=>{var c=ee(),r=Xt(),s=(i,l={})=>{let n=(o,a={})=>{let u=r.isInvalidBrace(a),p=o.invalid===!0&&l.escapeInvalid===!0,g=u===!0||p===!0,x=l.escapeInvalid===!0?"\\":"",v="";if(o.isOpen===!0)return x+o.value;if(o.isClose===!0)return console.log("node.isClose",x,o.value),x+o.value;if(o.type==="open")return g?x+o.value:"(";if(o.type==="close")return g?x+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":g?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){let O=r.reduce(o.nodes),I=c(...O,{...l,wrap:!1,toRegex:!0,strictZeros:!0});if(I.length!==0)return O.length>1&&I.length>1?`(${I})`:I}if(o.nodes)for(let O of o.nodes)v+=n(O,o);return v};return n(i)};e.exports=s}),Fe=G((t,e)=>{var c=ee(),r=Ut(),s=Xt(),i=(n="",o="",a=!1)=>{let u=[];if(n=[].concat(n),o=[].concat(o),!o.length)return n;if(!n.length)return a?s.flatten(o).map((p)=>`{${p}}`):o;for(let p of n)if(Array.isArray(p))for(let g of p)u.push(i(g,o,a));else for(let g of o){if(a===!0&&typeof g==="string")g=`{${g}}`;u.push(Array.isArray(g)?i(p,g,a):p+g)}return s.flatten(u)},l=(n,o={})=>{let a=o.rangeLimit===void 0?1000:o.rangeLimit,u=(p,g={})=>{p.queue=[];let x=g,v=g.queue;while(x.type!=="brace"&&x.type!=="root"&&x.parent)x=x.parent,v=x.queue;if(p.invalid||p.dollar){v.push(i(v.pop(),r(p,o)));return}if(p.type==="brace"&&p.invalid!==!0&&p.nodes.length===2){v.push(i(v.pop(),["{}"]));return}if(p.nodes&&p.ranges>0){let T=s.reduce(p.nodes);if(s.exceedsLimit(...T,o.step,a))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let R=c(...T,o);if(R.length===0)R=r(p,o);v.push(i(v.pop(),R)),p.nodes=[];return}let O=s.encloseBrace(p),I=p.queue,m=p;while(m.type!=="brace"&&m.type!=="root"&&m.parent)m=m.parent,I=m.queue;for(let T=0;T<p.nodes.length;T++){let R=p.nodes[T];if(R.type==="comma"&&p.type==="brace"){if(T===1)I.push("");I.push("");continue}if(R.type==="close"){v.push(i(v.pop(),I,O));continue}if(R.value&&R.type!=="open"){I.push(i(I.pop(),R.value));continue}if(R.nodes)u(R,p)}return I};return s.flatten(u(n))};e.exports=l}),qe=G((t,e)=>{e.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
|
|
27
|
+
`,CHAR_NO_BREAK_SPACE:" ",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}}),Qe=G((t,e)=>{var c=Ut(),{MAX_LENGTH:r,CHAR_BACKSLASH:s,CHAR_BACKTICK:i,CHAR_COMMA:l,CHAR_DOT:n,CHAR_LEFT_PARENTHESES:o,CHAR_RIGHT_PARENTHESES:a,CHAR_LEFT_CURLY_BRACE:u,CHAR_RIGHT_CURLY_BRACE:p,CHAR_LEFT_SQUARE_BRACKET:g,CHAR_RIGHT_SQUARE_BRACKET:x,CHAR_DOUBLE_QUOTE:v,CHAR_SINGLE_QUOTE:O,CHAR_NO_BREAK_SPACE:I,CHAR_ZERO_WIDTH_NOBREAK_SPACE:m}=qe(),T=(R,k={})=>{if(typeof R!=="string")throw new TypeError("Expected a string");let b=k||{},d=typeof b.maxLength==="number"?Math.min(r,b.maxLength):r;if(R.length>d)throw new SyntaxError(`Input length (${R.length}), exceeds max characters (${d})`);let H={type:"root",input:R,nodes:[]},A=[H],E=H,B=H,W=0,J=R.length,z=0,U=0,D,Q=()=>R[z++],V=($)=>{if($.type==="text"&&B.type==="dot")B.type="text";if(B&&B.type==="text"&&$.type==="text"){B.value+=$.value;return}return E.nodes.push($),$.parent=E,$.prev=B,B=$,$};V({type:"bos"});while(z<J){if(E=A[A.length-1],D=Q(),D===m||D===I)continue;if(D===s){V({type:"text",value:(k.keepEscaping?D:"")+Q()});continue}if(D===x){V({type:"text",value:"\\"+D});continue}if(D===g){W++;let $;while(z<J&&($=Q())){if(D+=$,$===g){W++;continue}if($===s){D+=Q();continue}if($===x){if(W--,W===0)break}}V({type:"text",value:D});continue}if(D===o){E=V({type:"paren",nodes:[]}),A.push(E),V({type:"text",value:D});continue}if(D===a){if(E.type!=="paren"){V({type:"text",value:D});continue}E=A.pop(),V({type:"text",value:D}),E=A[A.length-1];continue}if(D===v||D===O||D===i){let $=D,Y;if(k.keepQuotes!==!0)D="";while(z<J&&(Y=Q())){if(Y===s){D+=Y+Q();continue}if(Y===$){if(k.keepQuotes===!0)D+=Y;break}D+=Y}V({type:"text",value:D});continue}if(D===u){U++;let $={type:"brace",open:!0,close:!1,dollar:B.value&&B.value.slice(-1)==="$"||E.dollar===!0,depth:U,commas:0,ranges:0,nodes:[]};E=V($),A.push(E),V({type:"open",value:D});continue}if(D===p){if(E.type!=="brace"){V({type:"text",value:D});continue}let $="close";E=A.pop(),E.close=!0,V({type:$,value:D}),U--,E=A[A.length-1];continue}if(D===l&&U>0){if(E.ranges>0){E.ranges=0;let $=E.nodes.shift();E.nodes=[$,{type:"text",value:c(E)}]}V({type:"comma",value:D}),E.commas++;continue}if(D===n&&U>0&&E.commas===0){let $=E.nodes;if(U===0||$.length===0){V({type:"text",value:D});continue}if(B.type==="dot"){if(E.range=[],B.value+=D,B.type="range",E.nodes.length!==3&&E.nodes.length!==5){E.invalid=!0,E.ranges=0,B.type="text";continue}E.ranges++,E.args=[];continue}if(B.type==="range"){$.pop();let Y=$[$.length-1];Y.value+=B.value+D,B=Y,E.ranges--;continue}V({type:"dot",value:D});continue}V({type:"text",value:D})}do if(E=A.pop(),E.type!=="root"){E.nodes.forEach((S)=>{if(!S.nodes){if(S.type==="open")S.isOpen=!0;if(S.type==="close")S.isClose=!0;if(!S.nodes)S.type="text";S.invalid=!0}});let $=A[A.length-1],Y=$.nodes.indexOf(E);$.nodes.splice(Y,1,...E.nodes)}while(A.length>0);return V({type:"eos"}),H};e.exports=T}),we=G((t,e)=>{var c=Ut(),r=Me(),s=Fe(),i=Qe(),l=(n,o={})=>{let a=[];if(Array.isArray(n))for(let u of n){let p=l.create(u,o);if(Array.isArray(p))a.push(...p);else a.push(p)}else a=[].concat(l.create(n,o));if(o&&o.expand===!0&&o.nodupes===!0)a=[...new Set(a)];return a};l.parse=(n,o={})=>i(n,o),l.stringify=(n,o={})=>{if(typeof n==="string")return c(l.parse(n,o),o);return c(n,o)},l.compile=(n,o={})=>{if(typeof n==="string")n=l.parse(n,o);return r(n,o)},l.expand=(n,o={})=>{if(typeof n==="string")n=l.parse(n,o);let a=s(n,o);if(o.noempty===!0)a=a.filter(Boolean);if(o.nodupes===!0)a=[...new Set(a)];return a},l.create=(n,o={})=>{if(n===""||n.length<3)return[n];return o.expand!==!0?l.compile(n,o):l.expand(n,o)},e.exports=l}),Et=G((t,e)=>{var c=y("path"),r={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},s={...r,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"},i={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:i,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:c.sep,extglobChars(l){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${l.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(l){return l===!0?s:r}}}),Ot=G((t)=>{var e=y("path"),c=process.platform==="win32",{REGEX_BACKSLASH:r,REGEX_REMOVE_BACKSLASH:s,REGEX_SPECIAL_CHARS:i,REGEX_SPECIAL_CHARS_GLOBAL:l}=Et();t.isObject=(n)=>n!==null&&typeof n==="object"&&!Array.isArray(n),t.hasRegexChars=(n)=>i.test(n),t.isRegexChar=(n)=>n.length===1&&t.hasRegexChars(n),t.escapeRegex=(n)=>n.replace(l,"\\$1"),t.toPosixSlashes=(n)=>n.replace(r,"/"),t.removeBackslashes=(n)=>{return n.replace(s,(o)=>{return o==="\\"?"":o})},t.supportsLookbehinds=()=>{let n=process.version.slice(1).split(".").map(Number);if(n.length===3&&n[0]>=9||n[0]===8&&n[1]>=10)return!0;return!1},t.isWindows=(n)=>{if(n&&typeof n.windows==="boolean")return n.windows;return c===!0||e.sep==="\\"},t.escapeLast=(n,o,a)=>{let u=n.lastIndexOf(o,a);if(u===-1)return n;if(n[u-1]==="\\")return t.escapeLast(n,o,u-1);return`${n.slice(0,u)}\\${n.slice(u)}`},t.removePrefix=(n,o={})=>{let a=n;if(a.startsWith("./"))a=a.slice(2),o.prefix="./";return a},t.wrapOutput=(n,o={},a={})=>{let u=a.contains?"":"^",p=a.contains?"":"$",g=`${u}(?:${n})${p}`;if(o.negated===!0)g=`(?:^(?!${g}).*$)`;return g}}),Se=G((t,e)=>{var c=Ot(),{CHAR_ASTERISK:r,CHAR_AT:s,CHAR_BACKWARD_SLASH:i,CHAR_COMMA:l,CHAR_DOT:n,CHAR_EXCLAMATION_MARK:o,CHAR_FORWARD_SLASH:a,CHAR_LEFT_CURLY_BRACE:u,CHAR_LEFT_PARENTHESES:p,CHAR_LEFT_SQUARE_BRACKET:g,CHAR_PLUS:x,CHAR_QUESTION_MARK:v,CHAR_RIGHT_CURLY_BRACE:O,CHAR_RIGHT_PARENTHESES:I,CHAR_RIGHT_SQUARE_BRACKET:m}=Et(),T=(b)=>{return b===a||b===i},R=(b)=>{if(b.isPrefix!==!0)b.depth=b.isGlobstar?1/0:1},k=(b,d)=>{let H=d||{},A=b.length-1,E=H.parts===!0||H.scanToEnd===!0,B=[],W=[],J=[],z=b,U=-1,D=0,Q=0,V=!1,$=!1,Y=!1,S=!1,K=!1,Z=!1,P=!1,h=!1,at=!1,nt=!1,N=0,C,F,M={value:"",depth:0,isGlob:!1},it=()=>U>=A,ut=()=>z.charCodeAt(U+1),f=()=>{return C=F,z.charCodeAt(++U)};while(U<A){F=f();let j;if(F===i){if(P=M.backslashes=!0,F=f(),F===u)Z=!0;continue}if(Z===!0||F===u){N++;while(it()!==!0&&(F=f())){if(F===i){P=M.backslashes=!0,f();continue}if(F===u){N++;continue}if(Z!==!0&&F===n&&(F=f())===n){if(V=M.isBrace=!0,Y=M.isGlob=!0,nt=!0,E===!0)continue;break}if(Z!==!0&&F===l){if(V=M.isBrace=!0,Y=M.isGlob=!0,nt=!0,E===!0)continue;break}if(F===O){if(N--,N===0){Z=!1,V=M.isBrace=!0,nt=!0;break}}}if(E===!0)continue;break}if(F===a){if(B.push(U),W.push(M),M={value:"",depth:0,isGlob:!1},nt===!0)continue;if(C===n&&U===D+1){D+=2;continue}Q=U+1;continue}if(H.noext!==!0){if((F===x||F===s||F===r||F===v||F===o)===!0&&ut()===p){if(Y=M.isGlob=!0,S=M.isExtglob=!0,nt=!0,F===o&&U===D)at=!0;if(E===!0){while(it()!==!0&&(F=f())){if(F===i){P=M.backslashes=!0,F=f();continue}if(F===I){Y=M.isGlob=!0,nt=!0;break}}continue}break}}if(F===r){if(C===r)K=M.isGlobstar=!0;if(Y=M.isGlob=!0,nt=!0,E===!0)continue;break}if(F===v){if(Y=M.isGlob=!0,nt=!0,E===!0)continue;break}if(F===g){while(it()!==!0&&(j=f())){if(j===i){P=M.backslashes=!0,f();continue}if(j===m){$=M.isBracket=!0,Y=M.isGlob=!0,nt=!0;break}}if(E===!0)continue;break}if(H.nonegate!==!0&&F===o&&U===D){h=M.negated=!0,D++;continue}if(H.noparen!==!0&&F===p){if(Y=M.isGlob=!0,E===!0){while(it()!==!0&&(F=f())){if(F===p){P=M.backslashes=!0,F=f();continue}if(F===I){nt=!0;break}}continue}break}if(Y===!0){if(nt=!0,E===!0)continue;break}}if(H.noext===!0)S=!1,Y=!1;let tt=z,Rt="",lt="";if(D>0)Rt=z.slice(0,D),z=z.slice(D),Q-=D;if(tt&&Y===!0&&Q>0)tt=z.slice(0,Q),lt=z.slice(Q);else if(Y===!0)tt="",lt=z;else tt=z;if(tt&&tt!==""&&tt!=="/"&&tt!==z){if(T(tt.charCodeAt(tt.length-1)))tt=tt.slice(0,-1)}if(H.unescape===!0){if(lt)lt=c.removeBackslashes(lt);if(tt&&P===!0)tt=c.removeBackslashes(tt)}let ot={prefix:Rt,input:b,start:D,base:tt,glob:lt,isBrace:V,isBracket:$,isGlob:Y,isExtglob:S,isGlobstar:K,negated:h,negatedExtglob:at};if(H.tokens===!0){if(ot.maxDepth=0,!T(F))W.push(M);ot.tokens=W}if(H.parts===!0||H.tokens===!0){let j;for(let rt=0;rt<B.length;rt++){let Kt=j?j+1:D,X=B[rt],w=b.slice(Kt,X);if(H.tokens){if(rt===0&&D!==0)W[rt].isPrefix=!0,W[rt].value=Rt;else W[rt].value=w;R(W[rt]),ot.maxDepth+=W[rt].depth}if(rt!==0||w!=="")J.push(w);j=X}if(j&&j+1<b.length){let rt=b.slice(j+1);if(J.push(rt),H.tokens)W[W.length-1].value=rt,R(W[W.length-1]),ot.maxDepth+=W[W.length-1].depth}ot.slashes=B,ot.parts=J}return ot};e.exports=k}),he=G((t,e)=>{var c=Et(),r=Ot(),{MAX_LENGTH:s,POSIX_REGEX_SOURCE:i,REGEX_NON_SPECIAL_CHARS:l,REGEX_SPECIAL_CHARS_BACKREF:n,REPLACEMENTS:o}=c,a=(g,x)=>{if(typeof x.expandRange==="function")return x.expandRange(...g,x);g.sort();let v=`[${g.join("-")}]`;try{new RegExp(v)}catch(O){return g.map((I)=>r.escapeRegex(I)).join("..")}return v},u=(g,x)=>{return`Missing ${g}: "${x}" - use "\\\\${x}" to match literal characters`},p=(g,x)=>{if(typeof g!=="string")throw new TypeError("Expected a string");g=o[g]||g;let v={...x},O=typeof v.maxLength==="number"?Math.min(s,v.maxLength):s,I=g.length;if(I>O)throw new SyntaxError(`Input length: ${I}, exceeds maximum allowed length: ${O}`);let m={type:"bos",value:"",output:v.prepend||""},T=[m],R=v.capture?"":"?:",k=r.isWindows(x),b=c.globChars(k),d=c.extglobChars(b),{DOT_LITERAL:H,PLUS_LITERAL:A,SLASH_LITERAL:E,ONE_CHAR:B,DOTS_SLASH:W,NO_DOT:J,NO_DOT_SLASH:z,NO_DOTS_SLASH:U,QMARK:D,QMARK_NO_DOT:Q,STAR:V,START_ANCHOR:$}=b,Y=(X)=>{return`(${R}(?:(?!${$}${X.dot?W:H}).)*?)`},S=v.dot?"":J,K=v.dot?D:Q,Z=v.bash===!0?Y(v):V;if(v.capture)Z=`(${Z})`;if(typeof v.noext==="boolean")v.noextglob=v.noext;let P={input:g,index:-1,start:0,dot:v.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:T};g=r.removePrefix(g,P),I=g.length;let h=[],at=[],nt=[],N=m,C,F=()=>P.index===I-1,M=P.peek=(X=1)=>g[P.index+X],it=P.advance=()=>g[++P.index]||"",ut=()=>g.slice(P.index+1),f=(X="",w=0)=>{P.consumed+=X,P.index+=w},tt=(X)=>{P.output+=X.output!=null?X.output:X.value,f(X.value)},Rt=()=>{let X=1;while(M()==="!"&&(M(2)!=="("||M(3)==="?"))it(),P.start++,X++;if(X%2===0)return!1;return P.negated=!0,P.start++,!0},lt=(X)=>{P[X]++,nt.push(X)},ot=(X)=>{P[X]--,nt.pop()},j=(X)=>{if(N.type==="globstar"){let w=P.braces>0&&(X.type==="comma"||X.type==="brace"),L=X.extglob===!0||h.length&&(X.type==="pipe"||X.type==="paren");if(X.type!=="slash"&&X.type!=="paren"&&!w&&!L)P.output=P.output.slice(0,-N.output.length),N.type="star",N.value="*",N.output=Z,P.output+=N.output}if(h.length&&X.type!=="paren")h[h.length-1].inner+=X.value;if(X.value||X.output)tt(X);if(N&&N.type==="text"&&X.type==="text"){N.value+=X.value,N.output=(N.output||"")+X.value;return}X.prev=N,T.push(X),N=X},rt=(X,w)=>{let L={...d[w],conditions:1,inner:""};L.prev=N,L.parens=P.parens,L.output=P.output;let q=(v.capture?"(":"")+L.open;lt("parens"),j({type:X,value:w,output:P.output?"":B}),j({type:"paren",extglob:!0,value:it(),output:q}),h.push(L)},Kt=(X)=>{let w=X.close+(v.capture?")":""),L;if(X.type==="negate"){let q=Z;if(X.inner&&X.inner.length>1&&X.inner.includes("/"))q=Y(v);if(q!==Z||F()||/^\)+$/.test(ut()))w=X.close=`)$))${q}`;if(X.inner.includes("*")&&(L=ut())&&/^\.[^\\/.]+$/.test(L)){let et=p(L,{...x,fastpaths:!1}).output;w=X.close=`)${et})${q})`}if(X.prev.type==="bos")P.negatedExtglob=!0}j({type:"paren",extglob:!0,value:C,output:w}),ot("parens")};if(v.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(g)){let X=!1,w=g.replace(n,(L,q,et,ct,st,Bt)=>{if(ct==="\\")return X=!0,L;if(ct==="?"){if(q)return q+ct+(st?D.repeat(st.length):"");if(Bt===0)return K+(st?D.repeat(st.length):"");return D.repeat(et.length)}if(ct===".")return H.repeat(et.length);if(ct==="*"){if(q)return q+ct+(st?Z:"");return Z}return q?L:`\\${L}`});if(X===!0)if(v.unescape===!0)w=w.replace(/\\/g,"");else w=w.replace(/\\+/g,(L)=>{return L.length%2===0?"\\\\":L?"\\":""});if(w===g&&v.contains===!0)return P.output=g,P;return P.output=r.wrapOutput(w,P,x),P}while(!F()){if(C=it(),C==="\x00")continue;if(C==="\\"){let L=M();if(L==="/"&&v.bash!==!0)continue;if(L==="."||L===";")continue;if(!L){C+="\\",j({type:"text",value:C});continue}let q=/^\\+/.exec(ut()),et=0;if(q&&q[0].length>2){if(et=q[0].length,P.index+=et,et%2!==0)C+="\\"}if(v.unescape===!0)C=it();else C+=it();if(P.brackets===0){j({type:"text",value:C});continue}}if(P.brackets>0&&(C!=="]"||N.value==="["||N.value==="[^")){if(v.posix!==!1&&C===":"){let L=N.value.slice(1);if(L.includes("[")){if(N.posix=!0,L.includes(":")){let q=N.value.lastIndexOf("["),et=N.value.slice(0,q),ct=N.value.slice(q+2),st=i[ct];if(st){if(N.value=et+st,P.backtrack=!0,it(),!m.output&&T.indexOf(N)===1)m.output=B;continue}}}}if(C==="["&&M()!==":"||C==="-"&&M()==="]")C=`\\${C}`;if(C==="]"&&(N.value==="["||N.value==="[^"))C=`\\${C}`;if(v.posix===!0&&C==="!"&&N.value==="[")C="^";N.value+=C,tt({value:C});continue}if(P.quotes===1&&C!=='"'){C=r.escapeRegex(C),N.value+=C,tt({value:C});continue}if(C==='"'){if(P.quotes=P.quotes===1?0:1,v.keepQuotes===!0)j({type:"text",value:C});continue}if(C==="("){lt("parens"),j({type:"paren",value:C});continue}if(C===")"){if(P.parens===0&&v.strictBrackets===!0)throw new SyntaxError(u("opening","("));let L=h[h.length-1];if(L&&P.parens===L.parens+1){Kt(h.pop());continue}j({type:"paren",value:C,output:P.parens?")":"\\)"}),ot("parens");continue}if(C==="["){if(v.nobracket===!0||!ut().includes("]")){if(v.nobracket!==!0&&v.strictBrackets===!0)throw new SyntaxError(u("closing","]"));C=`\\${C}`}else lt("brackets");j({type:"bracket",value:C});continue}if(C==="]"){if(v.nobracket===!0||N&&N.type==="bracket"&&N.value.length===1){j({type:"text",value:C,output:`\\${C}`});continue}if(P.brackets===0){if(v.strictBrackets===!0)throw new SyntaxError(u("opening","["));j({type:"text",value:C,output:`\\${C}`});continue}ot("brackets");let L=N.value.slice(1);if(N.posix!==!0&&L[0]==="^"&&!L.includes("/"))C=`/${C}`;if(N.value+=C,tt({value:C}),v.literalBrackets===!1||r.hasRegexChars(L))continue;let q=r.escapeRegex(N.value);if(P.output=P.output.slice(0,-N.value.length),v.literalBrackets===!0){P.output+=q,N.value=q;continue}N.value=`(${R}${q}|${N.value})`,P.output+=N.value;continue}if(C==="{"&&v.nobrace!==!0){lt("braces");let L={type:"brace",value:C,output:"(",outputIndex:P.output.length,tokensIndex:P.tokens.length};at.push(L),j(L);continue}if(C==="}"){let L=at[at.length-1];if(v.nobrace===!0||!L){j({type:"text",value:C,output:C});continue}let q=")";if(L.dots===!0){let et=T.slice(),ct=[];for(let st=et.length-1;st>=0;st--){if(T.pop(),et[st].type==="brace")break;if(et[st].type!=="dots")ct.unshift(et[st].value)}q=a(ct,v),P.backtrack=!0}if(L.comma!==!0&&L.dots!==!0){let et=P.output.slice(0,L.outputIndex),ct=P.tokens.slice(L.tokensIndex);L.value=L.output="\\{",C=q="\\}",P.output=et;for(let st of ct)P.output+=st.output||st.value}j({type:"brace",value:C,output:q}),ot("braces"),at.pop();continue}if(C==="|"){if(h.length>0)h[h.length-1].conditions++;j({type:"text",value:C});continue}if(C===","){let L=C,q=at[at.length-1];if(q&&nt[nt.length-1]==="braces")q.comma=!0,L="|";j({type:"comma",value:C,output:L});continue}if(C==="/"){if(N.type==="dot"&&P.index===P.start+1){P.start=P.index+1,P.consumed="",P.output="",T.pop(),N=m;continue}j({type:"slash",value:C,output:E});continue}if(C==="."){if(P.braces>0&&N.type==="dot"){if(N.value===".")N.output=H;let L=at[at.length-1];N.type="dots",N.output+=C,N.value+=C,L.dots=!0;continue}if(P.braces+P.parens===0&&N.type!=="bos"&&N.type!=="slash"){j({type:"text",value:C,output:H});continue}j({type:"dot",value:C,output:H});continue}if(C==="?"){if(!(N&&N.value==="(")&&v.noextglob!==!0&&M()==="("&&M(2)!=="?"){rt("qmark",C);continue}if(N&&N.type==="paren"){let L=M(),q=C;if(L==="<"&&!r.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");if(N.value==="("&&!/[!=<:]/.test(L)||L==="<"&&!/<([!=]|\w+>)/.test(ut()))q=`\\${C}`;j({type:"text",value:C,output:q});continue}if(v.dot!==!0&&(N.type==="slash"||N.type==="bos")){j({type:"qmark",value:C,output:Q});continue}j({type:"qmark",value:C,output:D});continue}if(C==="!"){if(v.noextglob!==!0&&M()==="("){if(M(2)!=="?"||!/[!=<:]/.test(M(3))){rt("negate",C);continue}}if(v.nonegate!==!0&&P.index===0){Rt();continue}}if(C==="+"){if(v.noextglob!==!0&&M()==="("&&M(2)!=="?"){rt("plus",C);continue}if(N&&N.value==="("||v.regex===!1){j({type:"plus",value:C,output:A});continue}if(N&&(N.type==="bracket"||N.type==="paren"||N.type==="brace")||P.parens>0){j({type:"plus",value:C});continue}j({type:"plus",value:A});continue}if(C==="@"){if(v.noextglob!==!0&&M()==="("&&M(2)!=="?"){j({type:"at",extglob:!0,value:C,output:""});continue}j({type:"text",value:C});continue}if(C!=="*"){if(C==="$"||C==="^")C=`\\${C}`;let L=l.exec(ut());if(L)C+=L[0],P.index+=L[0].length;j({type:"text",value:C});continue}if(N&&(N.type==="globstar"||N.star===!0)){N.type="star",N.star=!0,N.value+=C,N.output=Z,P.backtrack=!0,P.globstar=!0,f(C);continue}let X=ut();if(v.noextglob!==!0&&/^\([^?]/.test(X)){rt("star",C);continue}if(N.type==="star"){if(v.noglobstar===!0){f(C);continue}let L=N.prev,q=L.prev,et=L.type==="slash"||L.type==="bos",ct=q&&(q.type==="star"||q.type==="globstar");if(v.bash===!0&&(!et||X[0]&&X[0]!=="/")){j({type:"star",value:C,output:""});continue}let st=P.braces>0&&(L.type==="comma"||L.type==="brace"),Bt=h.length&&(L.type==="pipe"||L.type==="paren");if(!et&&L.type!=="paren"&&!st&&!Bt){j({type:"star",value:C,output:""});continue}while(X.slice(0,3)==="/**"){let dt=g[P.index+4];if(dt&&dt!=="/")break;X=X.slice(3),f("/**",3)}if(L.type==="bos"&&F()){N.type="globstar",N.value+=C,N.output=Y(v),P.output=N.output,P.globstar=!0,f(C);continue}if(L.type==="slash"&&L.prev.type!=="bos"&&!ct&&F()){P.output=P.output.slice(0,-(L.output+N.output).length),L.output=`(?:${L.output}`,N.type="globstar",N.output=Y(v)+(v.strictSlashes?")":"|$)"),N.value+=C,P.globstar=!0,P.output+=L.output+N.output,f(C);continue}if(L.type==="slash"&&L.prev.type!=="bos"&&X[0]==="/"){let dt=X[1]!==void 0?"|$":"";P.output=P.output.slice(0,-(L.output+N.output).length),L.output=`(?:${L.output}`,N.type="globstar",N.output=`${Y(v)}${E}|${E}${dt})`,N.value+=C,P.output+=L.output+N.output,P.globstar=!0,f(C+it()),j({type:"slash",value:"/",output:""});continue}if(L.type==="bos"&&X[0]==="/"){N.type="globstar",N.value+=C,N.output=`(?:^|${E}|${Y(v)}${E})`,P.output=N.output,P.globstar=!0,f(C+it()),j({type:"slash",value:"/",output:""});continue}P.output=P.output.slice(0,-N.output.length),N.type="globstar",N.output=Y(v),N.value+=C,P.output+=N.output,P.globstar=!0,f(C);continue}let w={type:"star",value:C,output:Z};if(v.bash===!0){if(w.output=".*?",N.type==="bos"||N.type==="slash")w.output=S+w.output;j(w);continue}if(N&&(N.type==="bracket"||N.type==="paren")&&v.regex===!0){w.output=C,j(w);continue}if(P.index===P.start||N.type==="slash"||N.type==="dot"){if(N.type==="dot")P.output+=z,N.output+=z;else if(v.dot===!0)P.output+=U,N.output+=U;else P.output+=S,N.output+=S;if(M()!=="*")P.output+=B,N.output+=B}j(w)}while(P.brackets>0){if(v.strictBrackets===!0)throw new SyntaxError(u("closing","]"));P.output=r.escapeLast(P.output,"["),ot("brackets")}while(P.parens>0){if(v.strictBrackets===!0)throw new SyntaxError(u("closing",")"));P.output=r.escapeLast(P.output,"("),ot("parens")}while(P.braces>0){if(v.strictBrackets===!0)throw new SyntaxError(u("closing","}"));P.output=r.escapeLast(P.output,"{"),ot("braces")}if(v.strictSlashes!==!0&&(N.type==="star"||N.type==="bracket"))j({type:"maybe_slash",value:"",output:`${E}?`});if(P.backtrack===!0){P.output="";for(let X of P.tokens)if(P.output+=X.output!=null?X.output:X.value,X.suffix)P.output+=X.suffix}return P};p.fastpaths=(g,x)=>{let v={...x},O=typeof v.maxLength==="number"?Math.min(s,v.maxLength):s,I=g.length;if(I>O)throw new SyntaxError(`Input length: ${I}, exceeds maximum allowed length: ${O}`);g=o[g]||g;let m=r.isWindows(x),{DOT_LITERAL:T,SLASH_LITERAL:R,ONE_CHAR:k,DOTS_SLASH:b,NO_DOT:d,NO_DOTS:H,NO_DOTS_SLASH:A,STAR:E,START_ANCHOR:B}=c.globChars(m),W=v.dot?H:d,J=v.dot?A:d,z=v.capture?"":"?:",U={negated:!1,prefix:""},D=v.bash===!0?".*?":E;if(v.capture)D=`(${D})`;let Q=(S)=>{if(S.noglobstar===!0)return D;return`(${z}(?:(?!${B}${S.dot?b:T}).)*?)`},V=(S)=>{switch(S){case"*":return`${W}${k}${D}`;case".*":return`${T}${k}${D}`;case"*.*":return`${W}${D}${T}${k}${D}`;case"*/*":return`${W}${D}${R}${k}${J}${D}`;case"**":return W+Q(v);case"**/*":return`(?:${W}${Q(v)}${R})?${J}${k}${D}`;case"**/*.*":return`(?:${W}${Q(v)}${R})?${J}${D}${T}${k}${D}`;case"**/.*":return`(?:${W}${Q(v)}${R})?${T}${k}${D}`;default:{let K=/^(.*?)\.(\w+)$/.exec(S);if(!K)return;let Z=V(K[1]);if(!Z)return;return Z+T+K[2]}}},$=r.removePrefix(g,U),Y=V($);if(Y&&v.strictSlashes!==!0)Y+=`${R}?`;return Y},e.exports=p}),ye=G((t,e)=>{var c=y("path"),r=Se(),s=he(),i=Ot(),l=Et(),n=(a)=>a&&typeof a==="object"&&!Array.isArray(a),o=(a,u,p=!1)=>{if(Array.isArray(a)){let R=a.map((k)=>o(k,u,p));return(k)=>{for(let b of R){let d=b(k);if(d)return d}return!1}}let g=n(a)&&a.tokens&&a.input;if(a===""||typeof a!=="string"&&!g)throw new TypeError("Expected pattern to be a non-empty string");let x=u||{},v=i.isWindows(u),O=g?o.compileRe(a,u):o.makeRe(a,u,!1,!0),I=O.state;delete O.state;let m=()=>!1;if(x.ignore){let R={...u,ignore:null,onMatch:null,onResult:null};m=o(x.ignore,R,p)}let T=(R,k=!1)=>{let{isMatch:b,match:d,output:H}=o.test(R,O,u,{glob:a,posix:v}),A={glob:a,state:I,regex:O,posix:v,input:R,output:H,match:d,isMatch:b};if(typeof x.onResult==="function")x.onResult(A);if(b===!1)return A.isMatch=!1,k?A:!1;if(m(R)){if(typeof x.onIgnore==="function")x.onIgnore(A);return A.isMatch=!1,k?A:!1}if(typeof x.onMatch==="function")x.onMatch(A);return k?A:!0};if(p)T.state=I;return T};o.test=(a,u,p,{glob:g,posix:x}={})=>{if(typeof a!=="string")throw new TypeError("Expected input to be a string");if(a==="")return{isMatch:!1,output:""};let v=p||{},O=v.format||(x?i.toPosixSlashes:null),I=a===g,m=I&&O?O(a):a;if(I===!1)m=O?O(a):a,I=m===g;if(I===!1||v.capture===!0)if(v.matchBase===!0||v.basename===!0)I=o.matchBase(a,u,p,x);else I=u.exec(m);return{isMatch:Boolean(I),match:I,output:m}},o.matchBase=(a,u,p,g=i.isWindows(p))=>{return(u instanceof RegExp?u:o.makeRe(u,p)).test(c.basename(a))},o.isMatch=(a,u,p)=>o(u,p)(a),o.parse=(a,u)=>{if(Array.isArray(a))return a.map((p)=>o.parse(p,u));return s(a,{...u,fastpaths:!1})},o.scan=(a,u)=>r(a,u),o.compileRe=(a,u,p=!1,g=!1)=>{if(p===!0)return a.output;let x=u||{},v=x.contains?"":"^",O=x.contains?"":"$",I=`${v}(?:${a.output})${O}`;if(a&&a.negated===!0)I=`^(?!${I}).*$`;let m=o.toRegex(I,u);if(g===!0)m.state=a;return m},o.makeRe=(a,u={},p=!1,g=!1)=>{if(!a||typeof a!=="string")throw new TypeError("Expected a non-empty string");let x={negated:!1,fastpaths:!0};if(u.fastpaths!==!1&&(a[0]==="."||a[0]==="*"))x.output=s.fastpaths(a,u);if(!x.output)x=s(a,u);return o.compileRe(x,u,p,g)},o.toRegex=(a,u)=>{try{let p=u||{};return new RegExp(a,p.flags||(p.nocase?"i":""))}catch(p){if(u&&u.debug===!0)throw p;return/$^/}},o.constants=l,e.exports=o}),_e=G((t,e)=>{var c=y("util"),r=we(),s=ye(),i=Ot(),l=(a)=>a===""||a==="./",n=(a)=>{let u=a.indexOf("{");return u>-1&&a.indexOf("}",u)>-1},o=(a,u,p)=>{u=[].concat(u),a=[].concat(a);let g=new Set,x=new Set,v=new Set,O=0,I=(T)=>{if(v.add(T.output),p&&p.onResult)p.onResult(T)};for(let T=0;T<u.length;T++){let R=s(String(u[T]),{...p,onResult:I},!0),k=R.state.negated||R.state.negatedExtglob;if(k)O++;for(let b of a){let d=R(b,!0);if(!(k?!d.isMatch:d.isMatch))continue;if(k)g.add(d.output);else g.delete(d.output),x.add(d.output)}}let m=(O===u.length?[...v]:[...x]).filter((T)=>!g.has(T));if(p&&m.length===0){if(p.failglob===!0)throw new Error(`No matches found for "${u.join(", ")}"`);if(p.nonull===!0||p.nullglob===!0)return p.unescape?u.map((T)=>T.replace(/\\/g,"")):u}return m};o.match=o,o.matcher=(a,u)=>s(a,u),o.isMatch=(a,u,p)=>s(u,p)(a),o.any=o.isMatch,o.not=(a,u,p={})=>{u=[].concat(u).map(String);let g=new Set,x=[],v=new Set(o(a,u,{...p,onResult:(O)=>{if(p.onResult)p.onResult(O);x.push(O.output)}}));for(let O of x)if(!v.has(O))g.add(O);return[...g]},o.contains=(a,u,p)=>{if(typeof a!=="string")throw new TypeError(`Expected a string: "${c.inspect(a)}"`);if(Array.isArray(u))return u.some((g)=>o.contains(a,g,p));if(typeof u==="string"){if(l(a)||l(u))return!1;if(a.includes(u)||a.startsWith("./")&&a.slice(2).includes(u))return!0}return o.isMatch(a,u,{...p,contains:!0})},o.matchKeys=(a,u,p)=>{if(!i.isObject(a))throw new TypeError("Expected the first argument to be an object");let g=o(Object.keys(a),u,p),x={};for(let v of g)x[v]=a[v];return x},o.some=(a,u,p)=>{let g=[].concat(a);for(let x of[].concat(u)){let v=s(String(x),p);if(g.some((O)=>v(O)))return!0}return!1},o.every=(a,u,p)=>{let g=[].concat(a);for(let x of[].concat(u)){let v=s(String(x),p);if(!g.every((O)=>v(O)))return!1}return!0},o.all=(a,u,p)=>{if(typeof a!=="string")throw new TypeError(`Expected a string: "${c.inspect(a)}"`);return[].concat(u).every((g)=>s(g,p)(a))},o.capture=(a,u,p)=>{let g=i.isWindows(p),x=s.makeRe(String(a),{...p,capture:!0}).exec(g?i.toPosixSlashes(u):u);if(x)return x.slice(1).map((v)=>v===void 0?"":v)},o.makeRe=(...a)=>s.makeRe(...a),o.scan=(...a)=>s.scan(...a),o.parse=(a,u)=>{let p=[];for(let g of[].concat(a||[]))for(let x of r(String(g),u))p.push(s.parse(x,u));return p},o.braces=(a,u)=>{if(typeof a!=="string")throw new TypeError("Expected a string");if(u&&u.nobrace===!0||!n(a))return[a];return r(a,u)},o.braceExpand=(a,u)=>{if(typeof a!=="string")throw new TypeError("Expected a string");return o.braces(a,{...u,expand:!0})},o.hasBraces=n,e.exports=o}),fe=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isAbsolute=t.partitionAbsoluteAndRelative=t.removeDuplicateSlashes=t.matchAny=t.convertPatternsToRe=t.makeRe=t.getPatternParts=t.expandBraceExpansion=t.expandPatternsWithBraceExpansion=t.isAffectDepthOfReadingPattern=t.endsWithSlashGlobStar=t.hasGlobStar=t.getBaseDirectory=t.isPatternRelatedToParentDirectory=t.getPatternsOutsideCurrentDirectory=t.getPatternsInsideCurrentDirectory=t.getPositivePatterns=t.getNegativePatterns=t.isPositivePattern=t.isNegativePattern=t.convertToNegativePattern=t.convertToPositivePattern=t.isDynamicPattern=t.isStaticPattern=void 0;var e=y("path"),c=Ye(),r=_e(),s="**",i="\\",l=/[*?]|^!/,n=/\[[^[]*]/,o=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,a=/[!*+?@]\([^(]*\)/,u=/,|\.\./,p=/(?!^)\/{2,}/g;function g(K,Z={}){return!x(K,Z)}t.isStaticPattern=g;function x(K,Z={}){if(K==="")return!1;if(Z.caseSensitiveMatch===!1||K.includes(i))return!0;if(l.test(K)||n.test(K)||o.test(K))return!0;if(Z.extglob!==!1&&a.test(K))return!0;if(Z.braceExpansion!==!1&&v(K))return!0;return!1}t.isDynamicPattern=x;function v(K){let Z=K.indexOf("{");if(Z===-1)return!1;let P=K.indexOf("}",Z+1);if(P===-1)return!1;let h=K.slice(Z,P);return u.test(h)}function O(K){return m(K)?K.slice(1):K}t.convertToPositivePattern=O;function I(K){return"!"+K}t.convertToNegativePattern=I;function m(K){return K.startsWith("!")&&K[1]!=="("}t.isNegativePattern=m;function T(K){return!m(K)}t.isPositivePattern=T;function R(K){return K.filter(m)}t.getNegativePatterns=R;function k(K){return K.filter(T)}t.getPositivePatterns=k;function b(K){return K.filter((Z)=>!H(Z))}t.getPatternsInsideCurrentDirectory=b;function d(K){return K.filter(H)}t.getPatternsOutsideCurrentDirectory=d;function H(K){return K.startsWith("..")||K.startsWith("./..")}t.isPatternRelatedToParentDirectory=H;function A(K){return c(K,{flipBackslashes:!1})}t.getBaseDirectory=A;function E(K){return K.includes(s)}t.hasGlobStar=E;function B(K){return K.endsWith("/"+s)}t.endsWithSlashGlobStar=B;function W(K){let Z=e.basename(K);return B(K)||g(Z)}t.isAffectDepthOfReadingPattern=W;function J(K){return K.reduce((Z,P)=>{return Z.concat(z(P))},[])}t.expandPatternsWithBraceExpansion=J;function z(K){let Z=r.braces(K,{expand:!0,nodupes:!0,keepEscaping:!0});return Z.sort((P,h)=>P.length-h.length),Z.filter((P)=>P!=="")}t.expandBraceExpansion=z;function U(K,Z){let{parts:P}=r.scan(K,Object.assign(Object.assign({},Z),{parts:!0}));if(P.length===0)P=[K];if(P[0].startsWith("/"))P[0]=P[0].slice(1),P.unshift("");return P}t.getPatternParts=U;function D(K,Z){return r.makeRe(K,Z)}t.makeRe=D;function Q(K,Z){return K.map((P)=>D(P,Z))}t.convertPatternsToRe=Q;function V(K,Z){return Z.some((P)=>P.test(K))}t.matchAny=V;function $(K){return K.replace(p,"/")}t.removeDuplicateSlashes=$;function Y(K){let Z=[],P=[];for(let h of K)if(S(h))Z.push(h);else P.push(h);return[Z,P]}t.partitionAbsoluteAndRelative=Y;function S(K){return e.isAbsolute(K)}t.isAbsolute=S}),ts=G((t,e)=>{var c=y("stream"),r=c.PassThrough,s=Array.prototype.slice;e.exports=i;function i(){let n=[],o=s.call(arguments),a=!1,u=o[o.length-1];if(u&&!Array.isArray(u)&&u.pipe==null)o.pop();else u={};let p=u.end!==!1,g=u.pipeError===!0;if(u.objectMode==null)u.objectMode=!0;if(u.highWaterMark==null)u.highWaterMark=65536;let x=r(u);function v(){for(let m=0,T=arguments.length;m<T;m++)n.push(l(arguments[m],u));return O(),this}function O(){if(a)return;a=!0;let m=n.shift();if(!m){process.nextTick(I);return}if(!Array.isArray(m))m=[m];let T=m.length+1;function R(){if(--T>0)return;a=!1,O()}function k(b){function d(){if(b.removeListener("merge2UnpipeEnd",d),b.removeListener("end",d),g)b.removeListener("error",H);R()}function H(A){x.emit("error",A)}if(b._readableState.endEmitted)return R();if(b.on("merge2UnpipeEnd",d),b.on("end",d),g)b.on("error",H);b.pipe(x,{end:!1}),b.resume()}for(let b=0;b<m.length;b++)k(m[b]);R()}function I(){if(a=!1,x.emit("queueDrain"),p)x.end()}if(x.setMaxListeners(0),x.add=v,x.on("unpipe",function(m){m.emit("merge2UnpipeEnd")}),o.length)v.apply(null,o);return x}function l(n,o){if(!Array.isArray(n)){if(!n._readableState&&n.pipe)n=n.pipe(r(o));if(!n._readableState||!n.pause||!n.pipe)throw new Error("Only readable stream can be merged.");n.pause()}else for(let a=0,u=n.length;a<u;a++)n[a]=l(n[a],o);return n}}),es=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.merge=void 0;var e=ts();function c(s){let i=e(s);return s.forEach((l)=>{l.once("error",(n)=>i.emit("error",n))}),i.once("close",()=>r(s)),i.once("end",()=>r(s)),i}t.merge=c;function r(s){s.forEach((i)=>i.emit("close"))}}),ss=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isEmpty=t.isString=void 0;function e(r){return typeof r==="string"}t.isString=e;function c(r){return r===""}t.isEmpty=c}),pt=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.string=t.stream=t.pattern=t.path=t.fs=t.errno=t.array=void 0;var e=Ue();t.array=e;var c=Je();t.errno=c;var r=We();t.fs=r;var s=ze();t.path=s;var i=fe();t.pattern=i;var l=es();t.stream=l;var n=ss();t.string=n}),rs=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.convertPatternGroupToTask=t.convertPatternGroupsToTasks=t.groupPatternsByBaseDirectory=t.getNegativePatternsAsPositive=t.getPositivePatterns=t.convertPatternsToTasks=t.generate=void 0;var e=pt();function c(u,p){let g=r(u,p),x=r(p.ignore,p),v=i(g),O=l(g,x),I=v.filter((k)=>e.pattern.isStaticPattern(k,p)),m=v.filter((k)=>e.pattern.isDynamicPattern(k,p)),T=s(I,O,!1),R=s(m,O,!0);return T.concat(R)}t.generate=c;function r(u,p){let g=u;if(p.braceExpansion)g=e.pattern.expandPatternsWithBraceExpansion(g);if(p.baseNameMatch)g=g.map((x)=>x.includes("/")?x:`**/${x}`);return g.map((x)=>e.pattern.removeDuplicateSlashes(x))}function s(u,p,g){let x=[],v=e.pattern.getPatternsOutsideCurrentDirectory(u),O=e.pattern.getPatternsInsideCurrentDirectory(u),I=n(v),m=n(O);if(x.push(...o(I,p,g)),"."in m)x.push(a(".",O,p,g));else x.push(...o(m,p,g));return x}t.convertPatternsToTasks=s;function i(u){return e.pattern.getPositivePatterns(u)}t.getPositivePatterns=i;function l(u,p){return e.pattern.getNegativePatterns(u).concat(p).map(e.pattern.convertToPositivePattern)}t.getNegativePatternsAsPositive=l;function n(u){let p={};return u.reduce((g,x)=>{let v=e.pattern.getBaseDirectory(x);if(v in g)g[v].push(x);else g[v]=[x];return g},p)}t.groupPatternsByBaseDirectory=n;function o(u,p,g){return Object.keys(u).map((x)=>{return a(x,u[x],p,g)})}t.convertPatternGroupsToTasks=o;function a(u,p,g,x){return{dynamic:x,positive:p,negative:g,base:u,patterns:[].concat(p,g.map(e.pattern.convertToNegativePattern))}}t.convertPatternGroupToTask=a}),ns=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.read=void 0;function e(s,i,l){i.fs.lstat(s,(n,o)=>{if(n!==null){c(l,n);return}if(!o.isSymbolicLink()||!i.followSymbolicLink){r(l,o);return}i.fs.stat(s,(a,u)=>{if(a!==null){if(i.throwErrorOnBrokenSymbolicLink){c(l,a);return}r(l,o);return}if(i.markSymbolicLink)u.isSymbolicLink=()=>!0;r(l,u)})})}t.read=e;function c(s,i){s(i)}function r(s,i){s(null,i)}}),os=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.read=void 0;function e(c,r){let s=r.fs.lstatSync(c);if(!s.isSymbolicLink()||!r.followSymbolicLink)return s;try{let i=r.fs.statSync(c);if(r.markSymbolicLink)i.isSymbolicLink=()=>!0;return i}catch(i){if(!r.throwErrorOnBrokenSymbolicLink)return s;throw i}}t.read=e}),cs=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createFileSystemAdapter=t.FILE_SYSTEM_ADAPTER=void 0;var e=y("fs");t.FILE_SYSTEM_ADAPTER={lstat:e.lstat,stat:e.stat,lstatSync:e.lstatSync,statSync:e.statSync};function c(r){if(r===void 0)return t.FILE_SYSTEM_ADAPTER;return Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),r)}t.createFileSystemAdapter=c}),is=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=cs();class c{constructor(r={}){this._options=r,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=e.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(r,s){return r!==null&&r!==void 0?r:s}}t.default=c}),xt=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.statSync=t.stat=t.Settings=void 0;var e=ns(),c=os(),r=is();t.Settings=r.default;function s(n,o,a){if(typeof o==="function"){e.read(n,l(),o);return}e.read(n,l(o),a)}t.stat=s;function i(n,o){let a=l(o);return c.read(n,a)}t.statSync=i;function l(n={}){if(n instanceof r.default)return n;return new r.default(n)}}),as=G((t,e)=>{/*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var c;e.exports=typeof queueMicrotask==="function"?queueMicrotask.bind(typeof window!=="undefined"?window:global):(r)=>(c||(c=Promise.resolve())).then(r).catch((s)=>setTimeout(()=>{throw s},0))}),ls=G((t,e)=>{/*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */e.exports=r;var c=as();function r(s,i){let l,n,o,a=!0;if(Array.isArray(s))l=[],n=s.length;else o=Object.keys(s),l={},n=o.length;function u(g){function x(){if(i)i(g,l);i=null}if(a)c(x);else x()}function p(g,x,v){if(l[g]=v,--n===0||x)u(x)}if(!n)u(null);else if(o)o.forEach(function(g){s[g](function(x,v){p(g,x,v)})});else s.forEach(function(g,x){g(function(v,O){p(x,v,O)})});a=!1}}),se=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var e=process.versions.node.split(".");if(e[0]===void 0||e[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var c=Number.parseInt(e[0],10),r=Number.parseInt(e[1],10),s=10,i=10,l=c>s,n=c===s&&r>=i;t.IS_SUPPORT_READDIR_WITH_FILE_TYPES=l||n}),us=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createDirentFromStats=void 0;class e{constructor(r,s){this.name=r,this.isBlockDevice=s.isBlockDevice.bind(s),this.isCharacterDevice=s.isCharacterDevice.bind(s),this.isDirectory=s.isDirectory.bind(s),this.isFIFO=s.isFIFO.bind(s),this.isFile=s.isFile.bind(s),this.isSocket=s.isSocket.bind(s),this.isSymbolicLink=s.isSymbolicLink.bind(s)}}function c(r,s){return new e(r,s)}t.createDirentFromStats=c}),re=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fs=void 0;var e=us();t.fs=e}),ne=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.joinPathSegments=void 0;function e(c,r,s){if(c.endsWith(s))return c+r;return c+s+r}t.joinPathSegments=e}),ps=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.readdir=t.readdirWithFileTypes=t.read=void 0;var e=xt(),c=ls(),r=se(),s=re(),i=ne();function l(g,x,v){if(!x.stats&&r.IS_SUPPORT_READDIR_WITH_FILE_TYPES){n(g,x,v);return}a(g,x,v)}t.read=l;function n(g,x,v){x.fs.readdir(g,{withFileTypes:!0},(O,I)=>{if(O!==null){u(v,O);return}let m=I.map((R)=>({dirent:R,name:R.name,path:i.joinPathSegments(g,R.name,x.pathSegmentSeparator)}));if(!x.followSymbolicLinks){p(v,m);return}let T=m.map((R)=>o(R,x));c(T,(R,k)=>{if(R!==null){u(v,R);return}p(v,k)})})}t.readdirWithFileTypes=n;function o(g,x){return(v)=>{if(!g.dirent.isSymbolicLink()){v(null,g);return}x.fs.stat(g.path,(O,I)=>{if(O!==null){if(x.throwErrorOnBrokenSymbolicLink){v(O);return}v(null,g);return}g.dirent=s.fs.createDirentFromStats(g.name,I),v(null,g)})}}function a(g,x,v){x.fs.readdir(g,(O,I)=>{if(O!==null){u(v,O);return}let m=I.map((T)=>{let R=i.joinPathSegments(g,T,x.pathSegmentSeparator);return(k)=>{e.stat(R,x.fsStatSettings,(b,d)=>{if(b!==null){k(b);return}let H={name:T,path:R,dirent:s.fs.createDirentFromStats(T,d)};if(x.stats)H.stats=d;k(null,H)})}});c(m,(T,R)=>{if(T!==null){u(v,T);return}p(v,R)})})}t.readdir=a;function u(g,x){g(x)}function p(g,x){g(null,x)}}),gs=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.readdir=t.readdirWithFileTypes=t.read=void 0;var e=xt(),c=se(),r=re(),s=ne();function i(o,a){if(!a.stats&&c.IS_SUPPORT_READDIR_WITH_FILE_TYPES)return l(o,a);return n(o,a)}t.read=i;function l(o,a){return a.fs.readdirSync(o,{withFileTypes:!0}).map((u)=>{let p={dirent:u,name:u.name,path:s.joinPathSegments(o,u.name,a.pathSegmentSeparator)};if(p.dirent.isSymbolicLink()&&a.followSymbolicLinks)try{let g=a.fs.statSync(p.path);p.dirent=r.fs.createDirentFromStats(p.name,g)}catch(g){if(a.throwErrorOnBrokenSymbolicLink)throw g}return p})}t.readdirWithFileTypes=l;function n(o,a){return a.fs.readdirSync(o).map((u)=>{let p=s.joinPathSegments(o,u,a.pathSegmentSeparator),g=e.statSync(p,a.fsStatSettings),x={name:u,path:p,dirent:r.fs.createDirentFromStats(u,g)};if(a.stats)x.stats=g;return x})}t.readdir=n}),vs=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createFileSystemAdapter=t.FILE_SYSTEM_ADAPTER=void 0;var e=y("fs");t.FILE_SYSTEM_ADAPTER={lstat:e.lstat,stat:e.stat,lstatSync:e.lstatSync,statSync:e.statSync,readdir:e.readdir,readdirSync:e.readdirSync};function c(r){if(r===void 0)return t.FILE_SYSTEM_ADAPTER;return Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),r)}t.createFileSystemAdapter=c}),xs=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=y("path"),c=xt(),r=vs();class s{constructor(i={}){this._options=i,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=r.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,e.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new c.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(i,l){return i!==null&&i!==void 0?i:l}}t.default=s}),Jt=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Settings=t.scandirSync=t.scandir=void 0;var e=ps(),c=gs(),r=xs();t.Settings=r.default;function s(n,o,a){if(typeof o==="function"){e.read(n,l(),o);return}e.read(n,l(o),a)}t.scandir=s;function i(n,o){let a=l(o);return c.read(n,a)}t.scandirSync=i;function l(n={}){if(n instanceof r.default)return n;return new r.default(n)}}),bs=G((t,e)=>{function c(r){var s=new r,i=s;function l(){var o=s;if(o.next)s=o.next;else s=new r,i=s;return o.next=null,o}function n(o){i.next=o,i=o}return{get:l,release:n}}e.exports=c}),Rs=G((t,e)=>{var c=bs();function r(n,o,a){if(typeof n==="function")a=o,o=n,n=null;if(!(a>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var u=c(i),p=null,g=null,x=0,v=null,O={push:d,drain:s,saturated:s,pause:m,paused:!1,get concurrency(){return a},set concurrency(J){if(!(J>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(a=J,O.paused)return;for(;p&&x<a;)x++,A()},running:I,resume:k,idle:b,length:T,getQueue:R,unshift:H,empty:s,kill:E,killAndDrain:B,error:W};return O;function I(){return x}function m(){O.paused=!0}function T(){var J=p,z=0;while(J)J=J.next,z++;return z}function R(){var J=p,z=[];while(J)z.push(J.value),J=J.next;return z}function k(){if(!O.paused)return;if(O.paused=!1,p===null){x++,A();return}for(;p&&x<a;)x++,A()}function b(){return x===0&&O.length()===0}function d(J,z){var U=u.get();if(U.context=n,U.release=A,U.value=J,U.callback=z||s,U.errorHandler=v,x>=a||O.paused)if(g)g.next=U,g=U;else p=U,g=U,O.saturated();else x++,o.call(n,U.value,U.worked)}function H(J,z){var U=u.get();if(U.context=n,U.release=A,U.value=J,U.callback=z||s,U.errorHandler=v,x>=a||O.paused)if(p)U.next=p,p=U;else p=U,g=U,O.saturated();else x++,o.call(n,U.value,U.worked)}function A(J){if(J)u.release(J);var z=p;if(z&&x<=a)if(!O.paused){if(g===p)g=null;if(p=z.next,z.next=null,o.call(n,z.value,z.worked),g===null)O.empty()}else x--;else if(--x===0)O.drain()}function E(){p=null,g=null,O.drain=s}function B(){p=null,g=null,O.drain(),O.drain=s}function W(J){v=J}}function s(){}function i(){this.value=null,this.callback=s,this.next=null,this.release=s,this.context=null,this.errorHandler=null;var n=this;this.worked=function o(a,u){var{callback:p,errorHandler:g,value:x}=n;if(n.value=null,n.callback=s,n.errorHandler)g(a,x);p.call(n.context,a,u),n.release(n)}}function l(n,o,a){if(typeof n==="function")a=o,o=n,n=null;function u(m,T){o.call(this,m).then(function(R){T(null,R)},T)}var p=r(n,u,a),g=p.push,x=p.unshift;return p.push=v,p.unshift=O,p.drained=I,p;function v(m){var T=new Promise(function(R,k){g(m,function(b,d){if(b){k(b);return}R(d)})});return T.catch(s),T}function O(m){var T=new Promise(function(R,k){x(m,function(b,d){if(b){k(b);return}R(d)})});return T.catch(s),T}function I(){var m=new Promise(function(T){process.nextTick(function(){if(p.idle())T();else{var R=p.drain;p.drain=function(){if(typeof R==="function")R();T(),p.drain=R}}})});return m}}e.exports=r,e.exports.promise=l}),Wt=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.joinPathSegments=t.replacePathSegmentSeparator=t.isAppliedFilter=t.isFatalError=void 0;function e(i,l){if(i.errorFilter===null)return!0;return!i.errorFilter(l)}t.isFatalError=e;function c(i,l){return i===null||i(l)}t.isAppliedFilter=c;function r(i,l){return i.split(/[/\\]/).join(l)}t.replacePathSegmentSeparator=r;function s(i,l,n){if(i==="")return l;if(i.endsWith(n))return i+l;return i+n+l}t.joinPathSegments=s}),oe=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Wt();class c{constructor(r,s){this._root=r,this._settings=s,this._root=e.replacePathSegmentSeparator(r,s.pathSegmentSeparator)}}t.default=c}),ce=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=y("events"),c=Jt(),r=Rs(),s=Wt(),i=oe();class l extends i.default{constructor(n,o){super(n,o);this._settings=o,this._scandir=c.scandir,this._emitter=new e.EventEmitter,this._queue=r(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{if(!this._isFatalError)this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(n){this._emitter.on("entry",n)}onError(n){this._emitter.once("error",n)}onEnd(n){this._emitter.once("end",n)}_pushToQueue(n,o){let a={directory:n,base:o};this._queue.push(a,(u)=>{if(u!==null)this._handleError(u)})}_worker(n,o){this._scandir(n.directory,this._settings.fsScandirSettings,(a,u)=>{if(a!==null){o(a,void 0);return}for(let p of u)this._handleEntry(p,n.base);o(null,void 0)})}_handleError(n){if(this._isDestroyed||!s.isFatalError(this._settings,n))return;this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",n)}_handleEntry(n,o){if(this._isDestroyed||this._isFatalError)return;let a=n.path;if(o!==void 0)n.path=s.joinPathSegments(o,n.name,this._settings.pathSegmentSeparator);if(s.isAppliedFilter(this._settings.entryFilter,n))this._emitEntry(n);if(n.dirent.isDirectory()&&s.isAppliedFilter(this._settings.deepFilter,n))this._pushToQueue(a,o===void 0?void 0:n.path)}_emitEntry(n){this._emitter.emit("entry",n)}}t.default=l}),Ps=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ce();class c{constructor(i,l){this._root=i,this._settings=l,this._reader=new e.default(this._root,this._settings),this._storage=[]}read(i){this._reader.onError((l)=>{r(i,l)}),this._reader.onEntry((l)=>{this._storage.push(l)}),this._reader.onEnd(()=>{s(i,this._storage)}),this._reader.read()}}t.default=c;function r(i,l){i(l)}function s(i,l){i(null,l)}}),Hs=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=y("stream"),c=ce();class r{constructor(s,i){this._root=s,this._settings=i,this._reader=new c.default(this._root,this._settings),this._stream=new e.Readable({objectMode:!0,read:()=>{},destroy:()=>{if(!this._reader.isDestroyed)this._reader.destroy()}})}read(){return this._reader.onError((s)=>{this._stream.emit("error",s)}),this._reader.onEntry((s)=>{this._stream.push(s)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}}t.default=r}),Ts=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jt(),c=Wt(),r=oe();class s extends r.default{constructor(){super(...arguments);this._scandir=e.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(i,l){this._queue.add({directory:i,base:l})}_handleQueue(){for(let i of this._queue.values())this._handleDirectory(i.directory,i.base)}_handleDirectory(i,l){try{let n=this._scandir(i,this._settings.fsScandirSettings);for(let o of n)this._handleEntry(o,l)}catch(n){this._handleError(n)}}_handleError(i){if(!c.isFatalError(this._settings,i))return;throw i}_handleEntry(i,l){let n=i.path;if(l!==void 0)i.path=c.joinPathSegments(l,i.name,this._settings.pathSegmentSeparator);if(c.isAppliedFilter(this._settings.entryFilter,i))this._pushToStorage(i);if(i.dirent.isDirectory()&&c.isAppliedFilter(this._settings.deepFilter,i))this._pushToQueue(n,l===void 0?void 0:i.path)}_pushToStorage(i){this._storage.push(i)}}t.default=s}),ds=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ts();class c{constructor(r,s){this._root=r,this._settings=s,this._reader=new e.default(this._root,this._settings)}read(){return this._reader.read()}}t.default=c}),Es=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=y("path"),c=Jt();class r{constructor(s={}){this._options=s,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,e.sep),this.fsScandirSettings=new c.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(s,i){return s!==null&&s!==void 0?s:i}}t.default=r}),zt=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Settings=t.walkStream=t.walkSync=t.walk=void 0;var e=Ps(),c=Hs(),r=ds(),s=Es();t.Settings=s.default;function i(a,u,p){if(typeof u==="function"){new e.default(a,o()).read(u);return}new e.default(a,o(u)).read(p)}t.walk=i;function l(a,u){let p=o(u);return new r.default(a,p).read()}t.walkSync=l;function n(a,u){let p=o(u);return new c.default(a,p).read()}t.walkStream=n;function o(a={}){if(a instanceof s.default)return a;return new s.default(a)}}),Zt=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=y("path"),c=xt(),r=pt();class s{constructor(i){this._settings=i,this._fsStatSettings=new c.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(i){return e.resolve(this._settings.cwd,i)}_makeEntry(i,l){let n={name:l,path:l,dirent:r.fs.createDirentFromStats(l,i)};if(this._settings.stats)n.stats=i;return n}_isFatalError(i){return!r.errno.isEnoentCodeError(i)&&!this._settings.suppressErrors}}t.default=s}),ie=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=y("stream"),c=xt(),r=zt(),s=Zt();class i extends s.default{constructor(){super(...arguments);this._walkStream=r.walkStream,this._stat=c.stat}dynamic(l,n){return this._walkStream(l,n)}static(l,n){let o=l.map(this._getFullEntryPath,this),a=new e.PassThrough({objectMode:!0});a._write=(u,p,g)=>{return this._getEntry(o[u],l[u],n).then((x)=>{if(x!==null&&n.entryFilter(x))a.push(x);if(u===o.length-1)a.end();g()}).catch(g)};for(let u=0;u<o.length;u++)a.write(u);return a}_getEntry(l,n,o){return this._getStat(l).then((a)=>this._makeEntry(a,n)).catch((a)=>{if(o.errorFilter(a))return null;throw a})}_getStat(l){return new Promise((n,o)=>{this._stat(l,this._fsStatSettings,(a,u)=>{return a===null?n(u):o(a)})})}}t.default=i}),Os=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=zt(),c=Zt(),r=ie();class s extends c.default{constructor(){super(...arguments);this._walkAsync=e.walk,this._readerStream=new r.default(this._settings)}dynamic(i,l){return new Promise((n,o)=>{this._walkAsync(i,l,(a,u)=>{if(a===null)n(u);else o(a)})})}async static(i,l){let n=[],o=this._readerStream.static(i,l);return new Promise((a,u)=>{o.once("error",u),o.on("data",(p)=>n.push(p)),o.once("end",()=>a(n))})}}t.default=s}),Ns=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=pt();class c{constructor(r,s,i){this._patterns=r,this._settings=s,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){for(let r of this._patterns){let s=this._getPatternSegments(r),i=this._splitSegmentsIntoSections(s);this._storage.push({complete:i.length<=1,pattern:r,segments:s,sections:i})}}_getPatternSegments(r){return e.pattern.getPatternParts(r,this._micromatchOptions).map((s)=>{if(!e.pattern.isDynamicPattern(s,this._settings))return{dynamic:!1,pattern:s};return{dynamic:!0,pattern:s,patternRe:e.pattern.makeRe(s,this._micromatchOptions)}})}_splitSegmentsIntoSections(r){return e.array.splitWhen(r,(s)=>s.dynamic&&e.pattern.hasGlobStar(s.pattern))}}t.default=c}),ks=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ns();class c extends e.default{match(r){let s=r.split("/"),i=s.length,l=this._storage.filter((n)=>!n.complete||n.segments.length>i);for(let n of l){let o=n.sections[0];if(!n.complete&&i>o.length)return!0;if(s.every((a,u)=>{let p=n.segments[u];if(p.dynamic&&p.patternRe.test(a))return!0;if(!p.dynamic&&p.pattern===a)return!0;return!1}))return!0}return!1}}t.default=c}),Cs=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=pt(),c=ks();class r{constructor(s,i){this._settings=s,this._micromatchOptions=i}getFilter(s,i,l){let n=this._getMatcher(i),o=this._getNegativePatternsRe(l);return(a)=>this._filter(s,a,n,o)}_getMatcher(s){return new c.default(s,this._settings,this._micromatchOptions)}_getNegativePatternsRe(s){let i=s.filter(e.pattern.isAffectDepthOfReadingPattern);return e.pattern.convertPatternsToRe(i,this._micromatchOptions)}_filter(s,i,l,n){if(this._isSkippedByDeep(s,i.path))return!1;if(this._isSkippedSymbolicLink(i))return!1;let o=e.path.removeLeadingDotSegment(i.path);if(this._isSkippedByPositivePatterns(o,l))return!1;return this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(s,i){if(this._settings.deep===1/0)return!1;return this._getEntryLevel(s,i)>=this._settings.deep}_getEntryLevel(s,i){let l=i.split("/").length;if(s==="")return l;let n=s.split("/").length;return l-n}_isSkippedSymbolicLink(s){return!this._settings.followSymbolicLinks&&s.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(s,i){return!this._settings.baseNameMatch&&!i.match(s)}_isSkippedByNegativePatterns(s,i){return!e.pattern.matchAny(s,i)}}t.default=r}),Is=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=pt();class c{constructor(r,s){this._settings=r,this._micromatchOptions=s,this.index=new Map}getFilter(r,s){let[i,l]=e.pattern.partitionAbsoluteAndRelative(s),n={positive:{all:e.pattern.convertPatternsToRe(r,this._micromatchOptions)},negative:{absolute:e.pattern.convertPatternsToRe(i,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0})),relative:e.pattern.convertPatternsToRe(l,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}))}};return(o)=>this._filter(o,n)}_filter(r,s){let i=e.path.removeLeadingDotSegment(r.path);if(this._settings.unique&&this._isDuplicateEntry(i))return!1;if(this._onlyFileFilter(r)||this._onlyDirectoryFilter(r))return!1;let l=this._isMatchToPatternsSet(i,s,r.dirent.isDirectory());if(this._settings.unique&&l)this._createIndexRecord(i);return l}_isDuplicateEntry(r){return this.index.has(r)}_createIndexRecord(r){this.index.set(r,void 0)}_onlyFileFilter(r){return this._settings.onlyFiles&&!r.dirent.isFile()}_onlyDirectoryFilter(r){return this._settings.onlyDirectories&&!r.dirent.isDirectory()}_isMatchToPatternsSet(r,s,i){if(!this._isMatchToPatterns(r,s.positive.all,i))return!1;if(this._isMatchToPatterns(r,s.negative.relative,i))return!1;if(this._isMatchToAbsoluteNegative(r,s.negative.absolute,i))return!1;return!0}_isMatchToAbsoluteNegative(r,s,i){if(s.length===0)return!1;let l=e.path.makeAbsolute(this._settings.cwd,r);return this._isMatchToPatterns(l,s,i)}_isMatchToPatterns(r,s,i){if(s.length===0)return!1;let l=e.pattern.matchAny(r,s);if(!l&&i)return e.pattern.matchAny(r+"/",s);return l}}t.default=c}),ms=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=pt();class c{constructor(r){this._settings=r}getFilter(){return(r)=>this._isNonFatalError(r)}_isNonFatalError(r){return e.errno.isEnoentCodeError(r)||this._settings.suppressErrors}}t.default=c}),As=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=pt();class c{constructor(r){this._settings=r}getTransformer(){return(r)=>this._transform(r)}_transform(r){let s=r.path;if(this._settings.absolute)s=e.path.makeAbsolute(this._settings.cwd,s),s=e.path.unixify(s);if(this._settings.markDirectories&&r.dirent.isDirectory())s+="/";if(!this._settings.objectMode)return s;return Object.assign(Object.assign({},r),{path:s})}}t.default=c}),jt=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=y("path"),c=Cs(),r=Is(),s=ms(),i=As();class l{constructor(n){this._settings=n,this.errorFilter=new s.default(this._settings),this.entryFilter=new r.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new c.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new i.default(this._settings)}_getRootDirectory(n){return e.resolve(this._settings.cwd,n.base)}_getReaderOptions(n){let o=n.base==="."?"":n.base;return{basePath:o,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(o,n.positive,n.negative),entryFilter:this.entryFilter.getFilter(n.positive,n.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}}t.default=l}),Ds=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Os(),c=jt();class r extends c.default{constructor(){super(...arguments);this._reader=new e.default(this._settings)}async read(s){let i=this._getRootDirectory(s),l=this._getReaderOptions(s);return(await this.api(i,s,l)).map((n)=>l.transform(n))}api(s,i,l){if(i.dynamic)return this._reader.dynamic(s,l);return this._reader.static(i.patterns,l)}}t.default=r}),Ls=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=y("stream"),c=ie(),r=jt();class s extends r.default{constructor(){super(...arguments);this._reader=new c.default(this._settings)}read(i){let l=this._getRootDirectory(i),n=this._getReaderOptions(i),o=this.api(l,i,n),a=new e.Readable({objectMode:!0,read:()=>{}});return o.once("error",(u)=>a.emit("error",u)).on("data",(u)=>a.emit("data",n.transform(u))).once("end",()=>a.emit("end")),a.once("close",()=>o.destroy()),a}api(i,l,n){if(l.dynamic)return this._reader.dynamic(i,n);return this._reader.static(l.patterns,n)}}t.default=s}),Ks=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=xt(),c=zt(),r=Zt();class s extends r.default{constructor(){super(...arguments);this._walkSync=c.walkSync,this._statSync=e.statSync}dynamic(i,l){return this._walkSync(i,l)}static(i,l){let n=[];for(let o of i){let a=this._getFullEntryPath(o),u=this._getEntry(a,o,l);if(u===null||!l.entryFilter(u))continue;n.push(u)}return n}_getEntry(i,l,n){try{let o=this._getStat(i);return this._makeEntry(o,l)}catch(o){if(n.errorFilter(o))return null;throw o}}_getStat(i){return this._statSync(i,this._fsStatSettings)}}t.default=s}),Bs=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ks(),c=jt();class r extends c.default{constructor(){super(...arguments);this._reader=new e.default(this._settings)}read(s){let i=this._getRootDirectory(s),l=this._getReaderOptions(s);return this.api(i,s,l).map(l.transform)}api(s,i,l){if(i.dynamic)return this._reader.dynamic(s,l);return this._reader.static(i.patterns,l)}}t.default=r}),Gs=G((t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var e=y("fs"),c=y("os"),r=Math.max(c.cpus().length,1);t.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:e.lstat,lstatSync:e.lstatSync,stat:e.stat,statSync:e.statSync,readdir:e.readdir,readdirSync:e.readdirSync};class s{constructor(i={}){if(this._options=i,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,r),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories)this.onlyFiles=!1;if(this.stats)this.objectMode=!0;this.ignore=[].concat(this.ignore)}_getValue(i,l){return i===void 0?l:i}_getFileSystemMethods(i={}){return Object.assign(Object.assign({},t.DEFAULT_FILE_SYSTEM_ADAPTER),i)}}t.default=s}),Xs=G((t,e)=>{var c=rs(),r=Ds(),s=Ls(),i=Bs(),l=Gs(),n=pt();async function o(p,g){u(p);let x=a(p,r.default,g),v=await Promise.all(x);return n.array.flatten(v)}(function(p){p.glob=p,p.globSync=g,p.globStream=x,p.async=p;function g(k,b){u(k);let d=a(k,i.default,b);return n.array.flatten(d)}p.sync=g;function x(k,b){u(k);let d=a(k,s.default,b);return n.stream.merge(d)}p.stream=x;function v(k,b){u(k);let d=[].concat(k),H=new l.default(b);return c.generate(d,H)}p.generateTasks=v;function O(k,b){u(k);let d=new l.default(b);return n.pattern.isDynamicPattern(k,d)}p.isDynamicPattern=O;function I(k){return u(k),n.path.escape(k)}p.escapePath=I;function m(k){return u(k),n.path.convertPathToPattern(k)}p.convertPathToPattern=m;let T;(function(k){function b(H){return u(H),n.path.escapePosixPath(H)}k.escapePath=b;function d(H){return u(H),n.path.convertPosixPathToPattern(H)}k.convertPathToPattern=d})(T=p.posix||(p.posix={}));let R;(function(k){function b(H){return u(H),n.path.escapeWindowsPath(H)}k.escapePath=b;function d(H){return u(H),n.path.convertWindowsPathToPattern(H)}k.convertPathToPattern=d})(R=p.win32||(p.win32={}))})(o||(o={}));function a(p,g,x){let v=[].concat(p),O=new l.default(x),I=c.generate(v,O),m=new g(O);return I.map(m.read,m)}function u(p){if(![].concat(p).every((g)=>n.string.isString(g)&&!n.string.isEmpty(g)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}e.exports=o}),Us=Xe(Xs(),1);async function ae(t){let e=Gt.resolve(t),c=Gt.join(e,"**","*.{ts,js}").replace(/\\/g,"/");return await Us.default(c,{absolute:!0,onlyFiles:!0})}function le(t,e){let c=Gt.relative(e,t).replace(/\.(ts|js)$/,"");if(c=c.replace(/\[\.\.\.(\w+)\]/g,"*").replace(/\[(\w+)\]/g,":$1"),c==="index")return"/";else if(c.endsWith("/index"))return`/${c.slice(0,-6)}`;return`/${c}`}import ys from"path";import{pathToFileURL as _s}from"url";var Yt=(t,e,c)=>{return(r,s)=>{let i=-1;return l(0);async function l(n){if(n<=i)throw new Error("next() called multiple times");i=n;let o,a=!1,u;if(t[n])u=t[n][0][0],r.req.routeIndex=n;else u=n===t.length&&s||void 0;if(u)try{o=await u(r,()=>l(n+1))}catch(p){if(p instanceof Error&&e)r.error=p,o=await e(p,r),a=!0;else throw p}else if(r.finalized===!1&&c)o=await c(r);if(o&&(r.finalized===!1||a))r.res=o;return r}}};var ue=Symbol();var pe=async(t,e=Object.create(null))=>{let{all:c=!1,dot:r=!1}=e,i=(t instanceof Nt?t.raw.headers:t.headers).get("Content-Type");if(i?.startsWith("multipart/form-data")||i?.startsWith("application/x-www-form-urlencoded"))return Js(t,{all:c,dot:r});return{}};async function Js(t,e){let c=await t.formData();if(c)return Ws(c,e);return{}}function Ws(t,e){let c=Object.create(null);if(t.forEach((r,s)=>{if(!(e.all||s.endsWith("[]")))c[s]=r;else zs(c,s,r)}),e.dot)Object.entries(c).forEach(([r,s])=>{if(r.includes("."))Zs(c,r,s),delete c[r]});return c}var zs=(t,e,c)=>{if(t[e]!==void 0)if(Array.isArray(t[e]))t[e].push(c);else t[e]=[t[e],c];else if(!e.endsWith("[]"))t[e]=c;else t[e]=[c]},Zs=(t,e,c)=>{let r=t,s=e.split(".");s.forEach((i,l)=>{if(l===s.length-1)r[i]=c;else{if(!r[i]||typeof r[i]!=="object"||Array.isArray(r[i])||r[i]instanceof File)r[i]=Object.create(null);r=r[i]}})};var $t=(t)=>{let e=t.split("/");if(e[0]==="")e.shift();return e},ge=(t)=>{let{groups:e,path:c}=js(t),r=$t(c);return Ys(r,e)},js=(t)=>{let e=[];return t=t.replace(/\{[^}]+\}/g,(c,r)=>{let s=`@${r}`;return e.push([s,c]),s}),{groups:e,path:t}},Ys=(t,e)=>{for(let c=e.length-1;c>=0;c--){let[r]=e[c];for(let s=t.length-1;s>=0;s--)if(t[s].includes(r)){t[s]=t[s].replace(r,e[c][1]);break}}return t},kt={},ve=(t,e)=>{if(t==="*")return"*";let c=t.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(c){let r=`${t}#${e}`;if(!kt[r])if(c[2])kt[r]=e&&e[0]!==":"&&e[0]!=="*"?[r,c[1],new RegExp(`^${c[2]}(?=/${e})`)]:[t,c[1],new RegExp(`^${c[2]}$`)];else kt[r]=[t,c[1],!0];return kt[r]}return null},Ct=(t,e)=>{try{return e(t)}catch{return t.replace(/(?:%[0-9A-Fa-f]{2})+/g,(c)=>{try{return e(c)}catch{return c}})}},Vs=(t)=>Ct(t,decodeURI),Mt=(t)=>{let e=t.url,c=e.indexOf("/",e.charCodeAt(9)===58?13:8),r=c;for(;r<e.length;r++){let s=e.charCodeAt(r);if(s===37){let i=e.indexOf("?",r),l=e.slice(c,i===-1?void 0:i);return Vs(l.includes("%25")?l.replace(/%25/g,"%2525"):l)}else if(s===63)break}return e.slice(c,r)};var xe=(t)=>{let e=Mt(t);return e.length>1&&e.at(-1)==="/"?e.slice(0,-1):e},gt=(t,e,...c)=>{if(c.length)e=gt(e,...c);return`${t?.[0]==="/"?"":"/"}${t}${e==="/"?"":`${t?.at(-1)==="/"?"":"/"}${e?.[0]==="/"?e.slice(1):e}`}`},It=(t)=>{if(t.charCodeAt(t.length-1)!==63||!t.includes(":"))return null;let e=t.split("/"),c=[],r="";return e.forEach((s)=>{if(s!==""&&!/\:/.test(s))r+="/"+s;else if(/\:/.test(s))if(/\?/.test(s)){if(c.length===0&&r==="")c.push("/");else c.push(r);let i=s.replace("?","");r+="/"+i,c.push(r)}else r+="/"+s}),c.filter((s,i,l)=>l.indexOf(s)===i)},Vt=(t)=>{if(!/[%+]/.test(t))return t;if(t.indexOf("+")!==-1)t=t.replace(/\+/g," ");return t.indexOf("%")!==-1?Ct(t,Ft):t},be=(t,e,c)=>{let r;if(!c&&e&&!/[%+]/.test(e)){let l=t.indexOf(`?${e}`,8);if(l===-1)l=t.indexOf(`&${e}`,8);while(l!==-1){let n=t.charCodeAt(l+e.length+1);if(n===61){let o=l+e.length+2,a=t.indexOf("&",o);return Vt(t.slice(o,a===-1?void 0:a))}else if(n==38||isNaN(n))return"";l=t.indexOf(`&${e}`,l+1)}if(r=/[%+]/.test(t),!r)return}let s={};r??=/[%+]/.test(t);let i=t.indexOf("?",8);while(i!==-1){let l=t.indexOf("&",i+1),n=t.indexOf("=",i);if(n>l&&l!==-1)n=-1;let o=t.slice(i+1,n===-1?l===-1?void 0:l:n);if(r)o=Vt(o);if(i=l,o==="")continue;let a;if(n===-1)a="";else if(a=t.slice(n+1,l===-1?void 0:l),r)a=Vt(a);if(c){if(!(s[o]&&Array.isArray(s[o])))s[o]=[];s[o].push(a)}else s[o]??=a}return e?s[e]:s},Re=be,Pe=(t,e)=>{return be(t,e,!0)},Ft=decodeURIComponent;var He=(t)=>Ct(t,Ft),Nt=class{raw;#e;#t;routeIndex=0;path;bodyCache={};constructor(t,e="/",c=[[]]){this.raw=t,this.path=e,this.#t=c,this.#e={}}param(t){return t?this.#s(t):this.#o()}#s(t){let e=this.#t[0][this.routeIndex][1][t],c=this.#n(e);return c?/\%/.test(c)?He(c):c:void 0}#o(){let t={},e=Object.keys(this.#t[0][this.routeIndex][1]);for(let c of e){let r=this.#n(this.#t[0][this.routeIndex][1][c]);if(r&&typeof r==="string")t[c]=/\%/.test(r)?He(r):r}return t}#n(t){return this.#t[1]?this.#t[1][t]:t}query(t){return Re(this.url,t)}queries(t){return Pe(this.url,t)}header(t){if(t)return this.raw.headers.get(t)??void 0;let e={};return this.raw.headers.forEach((c,r)=>{e[r]=c}),e}async parseBody(t){return this.bodyCache.parsedBody??=await pe(this,t)}#r=(t)=>{let{bodyCache:e,raw:c}=this,r=e[t];if(r)return r;let s=Object.keys(e)[0];if(s)return e[s].then((i)=>{if(s==="json")i=JSON.stringify(i);return new Response(i)[t]()});return e[t]=c[t]()};json(){return this.#r("text").then((t)=>JSON.parse(t))}text(){return this.#r("text")}arrayBuffer(){return this.#r("arrayBuffer")}blob(){return this.#r("blob")}formData(){return this.#r("formData")}addValidatedData(t,e){this.#e[t]=e}valid(t){return this.#e[t]}get url(){return this.raw.url}get method(){return this.raw.method}get[ue](){return this.#t}get matchedRoutes(){return this.#t[0].map(([[,t]])=>t)}get routePath(){return this.#t[0].map(([[,t]])=>t)[this.routeIndex].path}};var Te={Stringify:1,BeforeStream:2,Stream:3},$s=(t,e)=>{let c=new String(t);return c.isEscaped=!0,c.callbacks=e,c};var qt=async(t,e,c,r,s)=>{if(typeof t==="object"&&!(t instanceof String)){if(!(t instanceof Promise))t=t.toString();if(t instanceof Promise)t=await t}let i=t.callbacks;if(!i?.length)return Promise.resolve(t);if(s)s[0]+=t;else s=[t];let l=Promise.all(i.map((n)=>n({phase:e,buffer:s,context:r}))).then((n)=>Promise.all(n.filter(Boolean).map((o)=>qt(o,e,!1,r,s))).then(()=>s[0]));if(c)return $s(await l,i);else return l};var Ms="text/plain; charset=UTF-8",Qt=(t,e)=>{return{"Content-Type":t,...e}},de=class{#e;#t;env={};#s;finalized=!1;error;#o;#n;#r;#u;#a;#l;#i;#p;#g;constructor(t,e){if(this.#e=t,e)this.#n=e.executionCtx,this.env=e.env,this.#l=e.notFoundHandler,this.#g=e.path,this.#p=e.matchResult}get req(){return this.#t??=new Nt(this.#e,this.#g,this.#p),this.#t}get event(){if(this.#n&&"respondWith"in this.#n)return this.#n;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#n)return this.#n;else throw Error("This context has no ExecutionContext")}get res(){return this.#r||=new Response(null,{headers:this.#i??=new Headers})}set res(t){if(this.#r&&t){t=new Response(t.body,t);for(let[e,c]of this.#r.headers.entries()){if(e==="content-type")continue;if(e==="set-cookie"){let r=this.#r.headers.getSetCookie();t.headers.delete("set-cookie");for(let s of r)t.headers.append("set-cookie",s)}else t.headers.set(e,c)}}this.#r=t,this.finalized=!0}render=(...t)=>{return this.#a??=(e)=>this.html(e),this.#a(...t)};setLayout=(t)=>this.#u=t;getLayout=()=>this.#u;setRenderer=(t)=>{this.#a=t};header=(t,e,c)=>{if(this.finalized)this.#r=new Response(this.#r.body,this.#r);let r=this.#r?this.#r.headers:this.#i??=new Headers;if(e===void 0)r.delete(t);else if(c?.append)r.append(t,e);else r.set(t,e)};status=(t)=>{this.#o=t};set=(t,e)=>{this.#s??=new Map,this.#s.set(t,e)};get=(t)=>{return this.#s?this.#s.get(t):void 0};get var(){if(!this.#s)return{};return Object.fromEntries(this.#s)}#c(t,e,c){let r=this.#r?new Headers(this.#r.headers):this.#i??new Headers;if(typeof e==="object"&&"headers"in e){let i=e.headers instanceof Headers?e.headers:new Headers(e.headers);for(let[l,n]of i)if(l.toLowerCase()==="set-cookie")r.append(l,n);else r.set(l,n)}if(c)for(let[i,l]of Object.entries(c))if(typeof l==="string")r.set(i,l);else{r.delete(i);for(let n of l)r.append(i,n)}let s=typeof e==="number"?e:e?.status??this.#o;return new Response(t,{status:s,headers:r})}newResponse=(...t)=>this.#c(...t);body=(t,e,c)=>this.#c(t,e,c);text=(t,e,c)=>{return!this.#i&&!this.#o&&!e&&!c&&!this.finalized?new Response(t):this.#c(t,e,Qt(Ms,c))};json=(t,e,c)=>{return this.#c(JSON.stringify(t),e,Qt("application/json",c))};html=(t,e,c)=>{let r=(s)=>this.#c(s,e,Qt("text/html; charset=UTF-8",c));return typeof t==="object"?qt(t,Te.Stringify,!1,{}).then(r):r(t)};redirect=(t,e)=>{let c=String(t);return this.header("Location",!/[^\x00-\xFF]/.test(c)?c:encodeURI(c)),this.newResponse(null,e??302)};notFound=()=>{return this.#l??=()=>new Response,this.#l(this)}};var _="ALL",Ee="all",Oe=["get","post","put","delete","options","patch"],mt="Can not add a route since the matcher is already built.",At=class extends Error{};var Ne="__COMPOSED_HANDLER";var Fs=(t)=>{return t.text("404 Not Found",404)},ke=(t,e)=>{if("getResponse"in t){let c=t.getResponse();return e.newResponse(c.body,c)}return console.error(t),e.text("Internal Server Error",500)},wt=class{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#e="/";routes=[];constructor(t={}){[...Oe,Ee].forEach((s)=>{this[s]=(i,...l)=>{if(typeof i==="string")this.#e=i;else this.#o(s,this.#e,i);return l.forEach((n)=>{this.#o(s,this.#e,n)}),this}}),this.on=(s,i,...l)=>{for(let n of[i].flat()){this.#e=n;for(let o of[s].flat())l.map((a)=>{this.#o(o.toUpperCase(),this.#e,a)})}return this},this.use=(s,...i)=>{if(typeof s==="string")this.#e=s;else this.#e="*",i.unshift(s);return i.forEach((l)=>{this.#o(_,this.#e,l)}),this};let{strict:c,...r}=t;Object.assign(this,r),this.getPath=c??!0?t.getPath??Mt:xe}#t(){let t=new wt({router:this.router,getPath:this.getPath});return t.errorHandler=this.errorHandler,t.#s=this.#s,t.routes=this.routes,t}#s=Fs;errorHandler=ke;route(t,e){let c=this.basePath(t);return e.routes.map((r)=>{let s;if(e.errorHandler===ke)s=r.handler;else s=async(i,l)=>(await Yt([],e.errorHandler)(i,()=>r.handler(i,l))).res,s[Ne]=r.handler;c.#o(r.method,r.path,s)}),this}basePath(t){let e=this.#t();return e._basePath=gt(this._basePath,t),e}onError=(t)=>{return this.errorHandler=t,this};notFound=(t)=>{return this.#s=t,this};mount(t,e,c){let r,s;if(c)if(typeof c==="function")s=c;else if(s=c.optionHandler,c.replaceRequest===!1)r=(n)=>n;else r=c.replaceRequest;let i=s?(n)=>{let o=s(n);return Array.isArray(o)?o:[o]}:(n)=>{let o=void 0;try{o=n.executionCtx}catch{}return[n.env,o]};r||=(()=>{let n=gt(this._basePath,t),o=n==="/"?0:n.length;return(a)=>{let u=new URL(a.url);return u.pathname=u.pathname.slice(o)||"/",new Request(u,a)}})();let l=async(n,o)=>{let a=await e(r(n.req.raw),...i(n));if(a)return a;await o()};return this.#o(_,gt(t,"*"),l),this}#o(t,e,c){t=t.toUpperCase(),e=gt(this._basePath,e);let r={basePath:this._basePath,path:e,method:t,handler:c};this.router.add(t,e,[c,r]),this.routes.push(r)}#n(t,e){if(t instanceof Error)return this.errorHandler(t,e);throw t}#r(t,e,c,r){if(r==="HEAD")return(async()=>new Response(null,await this.#r(t,e,c,"GET")))();let s=this.getPath(t,{env:c}),i=this.router.match(r,s),l=new de(t,{path:s,matchResult:i,env:c,executionCtx:e,notFoundHandler:this.#s});if(i[0].length===1){let o;try{o=i[0][0][0][0](l,async()=>{l.res=await this.#s(l)})}catch(a){return this.#n(a,l)}return o instanceof Promise?o.then((a)=>a||(l.finalized?l.res:this.#s(l))).catch((a)=>this.#n(a,l)):o??this.#s(l)}let n=Yt(i[0],this.errorHandler,this.#s);return(async()=>{try{let o=await n(l);if(!o.finalized)throw new Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return o.res}catch(o){return this.#n(o,l)}})()}fetch=(t,...e)=>{return this.#r(t,e[1],e[0],t.method)};request=(t,e,c,r)=>{if(t instanceof Request)return this.fetch(e?new Request(t,e):t,c,r);return t=t.toString(),this.fetch(new Request(/^https?:\/\//.test(t)?t:`http://localhost${gt("/",t)}`,e),c,r)};fire=()=>{addEventListener("fetch",(t)=>{t.respondWith(this.#r(t.request,t,void 0,t.request.method))})}};var Dt="[^/]+",Pt=".*",Ht="(?:|/.*)",vt=Symbol(),qs=new Set(".\\+*[^]$()");function Qs(t,e){if(t.length===1)return e.length===1?t<e?-1:1:-1;if(e.length===1)return 1;if(t===Pt||t===Ht)return 1;else if(e===Pt||e===Ht)return-1;if(t===Dt)return 1;else if(e===Dt)return-1;return t.length===e.length?t<e?-1:1:e.length-t.length}var Lt=class{#e;#t;#s=Object.create(null);insert(t,e,c,r,s){if(t.length===0){if(this.#e!==void 0)throw vt;if(s)return;this.#e=e;return}let[i,...l]=t,n=i==="*"?l.length===0?["","",Pt]:["","",Dt]:i==="/*"?["","",Ht]:i.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),o;if(n){let a=n[1],u=n[2]||Dt;if(a&&n[2]){if(u===".*")throw vt;if(u=u.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(u))throw vt}if(o=this.#s[u],!o){if(Object.keys(this.#s).some((p)=>p!==Pt&&p!==Ht))throw vt;if(s)return;if(o=this.#s[u]=new Lt,a!=="")o.#t=r.varIndex++}if(!s&&a!=="")c.push([a,o.#t])}else if(o=this.#s[i],!o){if(Object.keys(this.#s).some((a)=>a.length>1&&a!==Pt&&a!==Ht))throw vt;if(s)return;o=this.#s[i]=new Lt}o.insert(l,e,c,r,s)}buildRegExpStr(){let e=Object.keys(this.#s).sort(Qs).map((c)=>{let r=this.#s[c];return(typeof r.#t==="number"?`(${c})@${r.#t}`:qs.has(c)?`\\${c}`:c)+r.buildRegExpStr()});if(typeof this.#e==="number")e.unshift(`#${this.#e}`);if(e.length===0)return"";if(e.length===1)return e[0];return"(?:"+e.join("|")+")"}};var Ce=class{#e={varIndex:0};#t=new Lt;insert(t,e,c){let r=[],s=[];for(let l=0;;){let n=!1;if(t=t.replace(/\{[^}]+\}/g,(o)=>{let a=`@\\${l}`;return s[l]=[a,o],l++,n=!0,a}),!n)break}let i=t.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let l=s.length-1;l>=0;l--){let[n]=s[l];for(let o=i.length-1;o>=0;o--)if(i[o].indexOf(n)!==-1){i[o]=i[o].replace(n,s[l][1]);break}}return this.#t.insert(i,e,r,this.#e,c),r}buildRegExp(){let t=this.#t.buildRegExpStr();if(t==="")return[/^$/,[],[]];let e=0,c=[],r=[];return t=t.replace(/#(\d+)|@(\d+)|\.\*\$/g,(s,i,l)=>{if(i!==void 0)return c[++e]=Number(i),"$()";if(l!==void 0)return r[Number(l)]=++e,"";return""}),[new RegExp(`^${t}`),c,r]}};var Ie=[],ws=[/^$/,[],Object.create(null)],me=Object.create(null);function Ae(t){return me[t]??=new RegExp(t==="*"?"":`^${t.replace(/\/\*$|([.\\+*[^\]$()])/g,(e,c)=>c?`\\${c}`:"(?:|/.*)")}$`)}function Ss(){me=Object.create(null)}function hs(t){let e=new Ce,c=[];if(t.length===0)return ws;let r=t.map((a)=>[!/\*|\/:/.test(a[0]),...a]).sort(([a,u],[p,g])=>a?1:p?-1:u.length-g.length),s=Object.create(null);for(let a=0,u=-1,p=r.length;a<p;a++){let[g,x,v]=r[a];if(g)s[x]=[v.map(([I])=>[I,Object.create(null)]),Ie];else u++;let O;try{O=e.insert(x,u,g)}catch(I){throw I===vt?new At(x):I}if(g)continue;c[u]=v.map(([I,m])=>{let T=Object.create(null);m-=1;for(;m>=0;m--){let[R,k]=O[m];T[R]=k}return[I,T]})}let[i,l,n]=e.buildRegExp();for(let a=0,u=c.length;a<u;a++)for(let p=0,g=c[a].length;p<g;p++){let x=c[a][p]?.[1];if(!x)continue;let v=Object.keys(x);for(let O=0,I=v.length;O<I;O++)x[v[O]]=n[x[v[O]]]}let o=[];for(let a in l)o[a]=c[l[a]];return[i,o,s]}function bt(t,e){if(!t)return;for(let c of Object.keys(t).sort((r,s)=>s.length-r.length))if(Ae(c).test(e))return[...t[c]];return}var St=class{name="RegExpRouter";#e;#t;constructor(){this.#e={[_]:Object.create(null)},this.#t={[_]:Object.create(null)}}add(t,e,c){let r=this.#e,s=this.#t;if(!r||!s)throw new Error(mt);if(!r[t])[r,s].forEach((n)=>{n[t]=Object.create(null),Object.keys(n[_]).forEach((o)=>{n[t][o]=[...n[_][o]]})});if(e==="/*")e="*";let i=(e.match(/\/:/g)||[]).length;if(/\*$/.test(e)){let n=Ae(e);if(t===_)Object.keys(r).forEach((o)=>{r[o][e]||=bt(r[o],e)||bt(r[_],e)||[]});else r[t][e]||=bt(r[t],e)||bt(r[_],e)||[];Object.keys(r).forEach((o)=>{if(t===_||t===o)Object.keys(r[o]).forEach((a)=>{n.test(a)&&r[o][a].push([c,i])})}),Object.keys(s).forEach((o)=>{if(t===_||t===o)Object.keys(s[o]).forEach((a)=>n.test(a)&&s[o][a].push([c,i]))});return}let l=It(e)||[e];for(let n=0,o=l.length;n<o;n++){let a=l[n];Object.keys(s).forEach((u)=>{if(t===_||t===u)s[u][a]||=[...bt(r[u],a)||bt(r[_],a)||[]],s[u][a].push([c,i-o+n+1])})}}match(t,e){Ss();let c=this.#s();return this.match=(r,s)=>{let i=c[r]||c[_],l=i[2][s];if(l)return l;let n=s.match(i[0]);if(!n)return[[],Ie];let o=n.indexOf("",1);return[i[1][o],n]},this.match(t,e)}#s(){let t=Object.create(null);return Object.keys(this.#t).concat(Object.keys(this.#e)).forEach((e)=>{t[e]||=this.#o(e)}),this.#e=this.#t=void 0,t}#o(t){let e=[],c=t===_;if([this.#e,this.#t].forEach((r)=>{let s=r[t]?Object.keys(r[t]).map((i)=>[i,r[t][i]]):[];if(s.length!==0)c||=!0,e.push(...s);else if(t!==_)e.push(...Object.keys(r[_]).map((i)=>[i,r[_][i]]))}),!c)return null;else return hs(e)}};var ht=class{name="SmartRouter";#e=[];#t=[];constructor(t){this.#e=t.routers}add(t,e,c){if(!this.#t)throw new Error(mt);this.#t.push([t,e,c])}match(t,e){if(!this.#t)throw new Error("Fatal error");let c=this.#e,r=this.#t,s=c.length,i=0,l;for(;i<s;i++){let n=c[i];try{for(let o=0,a=r.length;o<a;o++)n.add(...r[o]);l=n.match(t,e)}catch(o){if(o instanceof At)continue;throw o}this.match=n.match.bind(n),this.#e=[n],this.#t=void 0;break}if(i===s)throw new Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,l}get activeRouter(){if(this.#t||this.#e.length!==1)throw new Error("No active router has been determined yet.");return this.#e[0]}};var Tt=Object.create(null),yt=class{#e;#t;#s;#o=0;#n=Tt;constructor(t,e,c){if(this.#t=c||Object.create(null),this.#e=[],t&&e){let r=Object.create(null);r[t]={handler:e,possibleKeys:[],score:0},this.#e=[r]}this.#s=[]}insert(t,e,c){this.#o=++this.#o;let r=this,s=ge(e),i=[];for(let l=0,n=s.length;l<n;l++){let o=s[l],a=s[l+1],u=ve(o,a),p=Array.isArray(u)?u[0]:o;if(p in r.#t){if(r=r.#t[p],u)i.push(u[1]);continue}if(r.#t[p]=new yt,u)r.#s.push(u),i.push(u[1]);r=r.#t[p]}return r.#e.push({[t]:{handler:c,possibleKeys:i.filter((l,n,o)=>o.indexOf(l)===n),score:this.#o}}),r}#r(t,e,c,r){let s=[];for(let i=0,l=t.#e.length;i<l;i++){let n=t.#e[i],o=n[e]||n[_],a={};if(o!==void 0){if(o.params=Object.create(null),s.push(o),c!==Tt||r&&r!==Tt)for(let u=0,p=o.possibleKeys.length;u<p;u++){let g=o.possibleKeys[u],x=a[o.score];o.params[g]=r?.[g]&&!x?r[g]:c[g]??r?.[g],a[o.score]=!0}}}return s}search(t,e){let c=[];this.#n=Tt;let s=[this],i=$t(e),l=[];for(let n=0,o=i.length;n<o;n++){let a=i[n],u=n===o-1,p=[];for(let g=0,x=s.length;g<x;g++){let v=s[g],O=v.#t[a];if(O)if(O.#n=v.#n,u){if(O.#t["*"])c.push(...this.#r(O.#t["*"],t,v.#n));c.push(...this.#r(O,t,v.#n))}else p.push(O);for(let I=0,m=v.#s.length;I<m;I++){let T=v.#s[I],R=v.#n===Tt?{}:{...v.#n};if(T==="*"){let E=v.#t["*"];if(E)c.push(...this.#r(E,t,v.#n)),E.#n=R,p.push(E);continue}let[k,b,d]=T;if(!a&&!(d instanceof RegExp))continue;let H=v.#t[k],A=i.slice(n).join("/");if(d instanceof RegExp){let E=d.exec(A);if(E){if(R[b]=E[0],c.push(...this.#r(H,t,v.#n,R)),Object.keys(H.#t).length){H.#n=R;let B=E[0].match(/\//)?.length??0;(l[B]||=[]).push(H)}continue}}if(d===!0||d.test(a))if(R[b]=a,u){if(c.push(...this.#r(H,t,R,v.#n)),H.#t["*"])c.push(...this.#r(H.#t["*"],t,R,v.#n))}else H.#n=R,p.push(H)}}s=p.concat(l.shift()??[])}if(c.length>1)c.sort((n,o)=>{return n.score-o.score});return[c.map(({handler:n,params:o})=>[n,o])]}};var _t=class{name="TrieRouter";#e;constructor(){this.#e=new yt}add(t,e,c){let r=It(e);if(r){for(let s=0,i=r.length;s<i;s++)this.#e.insert(t,r[s],c);return}this.#e.insert(t,e,c)}match(t,e){return this.#e.search(t,e)}};var ft=class extends wt{constructor(t={}){super(t);this.router=t.router??new ht({routers:[new St,new _t]})}};var fs="./src/routes";async function bn(t,e=fs){let c=ys.resolve(e),r=await ae(c),s=["GET","POST"];for(let i of r){let l=le(i,c).replace(/\\/g,"/").replace(/\/index$/,""),o=await import(_s(i).href),a=new ft;for(let u of s)if(typeof o[u]==="function")if(l.endsWith("/*")){let p=l.replace(/\/\*$/g,"").length+1;a[u.toLowerCase()]("/",async(g)=>o[u](g,g.req.path.substring(p).split("/")))}else a[u.toLowerCase()]("/",async(p)=>o[u](p));t.route(l,a)}return t}export{bn as registerRoutes};
|
package/index.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { getFiles, getRoutePath } from '@hono-filebased-route/core'
|
|
2
|
+
import path from 'path'
|
|
3
|
+
import { pathToFileURL } from 'url'
|
|
4
|
+
import { Hono } from 'hono'
|
|
5
|
+
|
|
6
|
+
const ROUTES_DIR = './src/routes'
|
|
7
|
+
|
|
8
|
+
export async function registerRoutes(
|
|
9
|
+
mainApp: Hono,
|
|
10
|
+
dir: string = ROUTES_DIR
|
|
11
|
+
) {
|
|
12
|
+
const absoluteRoutesDir = path.resolve(dir)
|
|
13
|
+
const files = await getFiles(absoluteRoutesDir)
|
|
14
|
+
const methods = ['GET', 'POST'] as const
|
|
15
|
+
type Method = 'get' | 'post'
|
|
16
|
+
|
|
17
|
+
for (const file of files) {
|
|
18
|
+
const routePath = getRoutePath(file, absoluteRoutesDir)
|
|
19
|
+
.replace(/\\/g, '/')
|
|
20
|
+
.replace(/\/index$/, '')
|
|
21
|
+
|
|
22
|
+
const fileUrl = pathToFileURL(file).href
|
|
23
|
+
const module = await import(fileUrl)
|
|
24
|
+
const tempHono = new Hono()
|
|
25
|
+
|
|
26
|
+
for (const method of methods) {
|
|
27
|
+
if (typeof module[method] === 'function') {
|
|
28
|
+
if (routePath.endsWith('/*')) {
|
|
29
|
+
const len = routePath.replace(/\/\*$/g, '').length + 1
|
|
30
|
+
tempHono[method.toLowerCase() as Method]('/', async (c) => module[method](c, c.req.path.substring(len).split('/')))
|
|
31
|
+
} else
|
|
32
|
+
tempHono[method.toLowerCase() as Method]('/', async (c) => module[method](c))
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
mainApp.route(routePath, tempHono)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return mainApp
|
|
40
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@hono-filebased-route/runtime",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "A core utility for file-based routing in Hono applications.",
|
|
6
|
+
"author": "HM Suiji <hmsuiji@gmail.com>",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"hono",
|
|
9
|
+
"router",
|
|
10
|
+
"file-based",
|
|
11
|
+
"routing",
|
|
12
|
+
"backend",
|
|
13
|
+
"framework",
|
|
14
|
+
"typescript",
|
|
15
|
+
"file-based-route"
|
|
16
|
+
],
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "https://github.com/HM-Suiji/hono-filebased-route.git"
|
|
21
|
+
},
|
|
22
|
+
"main": "dist/index.js",
|
|
23
|
+
"types": "dist/index.d.ts",
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "bun run build.ts",
|
|
26
|
+
"clean": "rm -rf dist"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"hono": "^4.9.2",
|
|
30
|
+
"path": "^0.12.7",
|
|
31
|
+
"@hono-filebased-route/core": "workspace:*"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/bun": "latest",
|
|
35
|
+
"bun-plugin-dts": "^0.3.0",
|
|
36
|
+
"typescript": "^5.0.0"
|
|
37
|
+
},
|
|
38
|
+
"peerDependenciesMeta": {
|
|
39
|
+
"hono": {
|
|
40
|
+
"optional": false
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"access": "public"
|
|
45
|
+
}
|
|
46
|
+
}
|
package/tsconfig.json
ADDED