-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontext.json
More file actions
103 lines (103 loc) · 206 KB
/
context.json
File metadata and controls
103 lines (103 loc) · 206 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
{
"meta": {
"generatedAt": "2026-03-13T11:09:02.619Z",
"sourceDir": "C:\\Users\\USER\\Desktop\\contextpack",
"totalFiles": 13,
"totalSizeBytes": 189932,
"totalTokens": 47350
},
"fileTree": "📄 .gitignore\n📄 context.md\n📄 LICENSE\n📄 package-lock.json\n📄 package.json\n📁 src\n 📄 cli.ts\n 📄 formatter.ts\n 📄 index.ts\n 📄 tokenEstimator.ts\n 📄 types.ts\n 📄 walker.ts\n 📄 watcher.ts\n📄 tsconfig.json",
"files": [
{
"path": ".gitignore",
"language": "text",
"sizeBytes": 36,
"tokens": 9,
"content": "node_modules/\r\ndist/\r\n*.js.map\r\n.env"
},
{
"path": "context.md",
"language": "markdown",
"sizeBytes": 95621,
"tokens": 23832,
"content": "# ContextPack\n\n> Generated by [contextpack](https://github.com/HalxDocs/contextpack) — 2026-03-13T11:08:22.187Z\n\n## 📊 Stats\n\n| Property | Value |\n|----------|-------|\n| Source | `C:\\Users\\USER\\Desktop\\contextpack` |\n| Files | 12 |\n| Total Size | 92.1 KB |\n| Estimated Tokens | 23.5k tokens |\n\n## 🗂 File Tree\n\n```\n📄 .gitignore\n📄 LICENSE\n📄 package-lock.json\n📄 package.json\n📁 src\n 📄 cli.ts\n 📄 formatter.ts\n 📄 index.ts\n 📄 tokenEstimator.ts\n 📄 types.ts\n 📄 walker.ts\n 📄 watcher.ts\n📄 tsconfig.json\n```\n\n## 📄 Files\n\n### `.gitignore`\n\n> 36 B · 9 tokens\n\n```text\nnode_modules/\r\ndist/\r\n*.js.map\r\n.env\n```\n\n### `LICENSE`\n\n> 1.1 KB · 272 tokens\n\n```text\nMIT License\r\n\r\nCopyright (c) 2026 HalxDocs\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\r\n\n```\n\n### `package-lock.json`\n\n> 74.6 KB · 19.1k tokens\n\n```json\n{\n \"name\": \"contextpack\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"contextpack\",\n \"version\": \"1.0.0\",\n \"license\": \"ISC\",\n \"dependencies\": {\n \"chalk\": \"^5.6.2\",\n \"chokidar\": \"^5.0.0\",\n \"clipboardy\": \"^5.3.1\",\n \"ignore\": \"^7.0.5\",\n \"minimist\": \"^1.2.8\"\n },\n \"devDependencies\": {\n \"@types/minimist\": \"^1.2.5\",\n \"@types/node\": \"^25.5.0\",\n \"tsup\": \"^8.5.1\",\n \"tsx\": \"^4.21.0\",\n \"typescript\": \"^5.9.3\"\n }\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz\",\n \"integrity\": \"sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz\",\n \"integrity\": \"sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz\",\n \"integrity\": \"sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz\",\n \"integrity\": \"sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz\",\n \"integrity\": \"sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz\",\n \"integrity\": \"sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz\",\n \"integrity\": \"sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz\",\n \"integrity\": \"sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz\",\n \"integrity\": \"sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openharmony-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz\",\n \"integrity\": \"sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.13\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz\",\n \"integrity\": \"sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.5\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz\",\n \"integrity\": \"sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.31\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz\",\n \"integrity\": \"sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz\",\n \"integrity\": \"sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz\",\n \"integrity\": \"sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz\",\n \"integrity\": \"sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz\",\n \"integrity\": \"sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz\",\n \"integrity\": \"sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz\",\n \"integrity\": \"sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz\",\n \"integrity\": \"sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz\",\n \"integrity\": \"sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz\",\n \"integrity\": \"sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loong64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loong64-musl\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz\",\n \"integrity\": \"sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-ppc64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-ppc64-musl\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz\",\n \"integrity\": \"sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz\",\n \"integrity\": \"sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz\",\n \"integrity\": \"sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-openbsd-x64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz\",\n \"integrity\": \"sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ]\n },\n \"node_modules/@rollup/rollup-openharmony-arm64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz\",\n \"integrity\": \"sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz\",\n \"integrity\": \"sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz\",\n \"integrity\": \"sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz\",\n \"integrity\": \"sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@sec-ant/readable-stream\": {\n \"version\": \"0.4.1\",\n \"resolved\": \"https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz\",\n \"integrity\": \"sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==\",\n \"license\": \"MIT\"\n },\n \"node_modules/@sindresorhus/merge-streams\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz\",\n \"integrity\": \"sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/minimist\": {\n \"version\": \"1.2.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz\",\n \"integrity\": \"sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"25.5.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz\",\n \"integrity\": \"sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~7.18.0\"\n }\n },\n \"node_modules/acorn\": {\n \"version\": \"8.16.0\",\n \"resolved\": \"https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz\",\n \"integrity\": \"sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"acorn\": \"bin/acorn\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/any-promise\": {\n \"version\": \"1.3.0\",\n \"resolved\": \"https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz\",\n \"integrity\": \"sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/bundle-require\": {\n \"version\": \"5.1.0\",\n \"resolved\": \"https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz\",\n \"integrity\": \"sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"load-tsconfig\": \"^0.2.3\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"esbuild\": \">=0.18\"\n }\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"5.6.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz\",\n \"integrity\": \"sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.17.0 || ^14.13 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chokidar\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz\",\n \"integrity\": \"sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"readdirp\": \"^5.0.0\"\n },\n \"engines\": {\n \"node\": \">= 20.19.0\"\n },\n \"funding\": {\n \"url\": \"https://paulmillr.com/funding/\"\n }\n },\n \"node_modules/clipboard-image\": {\n \"version\": \"0.1.0\",\n \"resolved\": \"https://registry.npmjs.org/clipboard-image/-/clipboard-image-0.1.0.tgz\",\n \"integrity\": \"sha512-SWk7FgaXLNFld19peQ/rTe0n97lwR1WbkqxV6JKCAOh7U52AKV/PeMFCyt/8IhBdqyDA8rdyewQMKZqvWT5Akg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"run-jxa\": \"^3.0.0\"\n },\n \"bin\": {\n \"clipboard-image\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/clipboardy\": {\n \"version\": \"5.3.1\",\n \"resolved\": \"https://registry.npmjs.org/clipboardy/-/clipboardy-5.3.1.tgz\",\n \"integrity\": \"sha512-fPWgBqpp9ctiOQCkE5yjYGzv11ZU55g6ahEgr3COiio6dXdt1mbchCPXQrSR2Y9sZqfi8L7QD3+UosgXVIuPdg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"clipboard-image\": \"^0.1.0\",\n \"execa\": \"^9.6.1\",\n \"is-wayland\": \"^0.1.0\",\n \"is-wsl\": \"^3.1.0\",\n \"is64bit\": \"^2.0.0\",\n \"powershell-utils\": \"^0.2.0\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/commander\": {\n \"version\": \"4.1.1\",\n \"resolved\": \"https://registry.npmjs.org/commander/-/commander-4.1.1.tgz\",\n \"integrity\": \"sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 6\"\n }\n },\n \"node_modules/confbox\": {\n \"version\": \"0.1.8\",\n \"resolved\": \"https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz\",\n \"integrity\": \"sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/consola\": {\n \"version\": \"3.4.2\",\n \"resolved\": \"https://registry.npmjs.org/consola/-/consola-3.4.2.tgz\",\n \"integrity\": \"sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.10.0\"\n }\n },\n \"node_modules/cross-spawn\": {\n \"version\": \"7.0.6\",\n \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz\",\n \"integrity\": \"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.1.0\",\n \"shebang-command\": \"^2.0.0\",\n \"which\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/crypto-random-string\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz\",\n \"integrity\": \"sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"type-fest\": \"^1.0.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/crypto-random-string/node_modules/type-fest\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz\",\n \"integrity\": \"sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==\",\n \"license\": \"(MIT OR CC0-1.0)\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.3\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.3.tgz\",\n \"integrity\": \"sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz\",\n \"integrity\": \"sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.27.4\",\n \"@esbuild/android-arm\": \"0.27.4\",\n \"@esbuild/android-arm64\": \"0.27.4\",\n \"@esbuild/android-x64\": \"0.27.4\",\n \"@esbuild/darwin-arm64\": \"0.27.4\",\n \"@esbuild/darwin-x64\": \"0.27.4\",\n \"@esbuild/freebsd-arm64\": \"0.27.4\",\n \"@esbuild/freebsd-x64\": \"0.27.4\",\n \"@esbuild/linux-arm\": \"0.27.4\",\n \"@esbuild/linux-arm64\": \"0.27.4\",\n \"@esbuild/linux-ia32\": \"0.27.4\",\n \"@esbuild/linux-loong64\": \"0.27.4\",\n \"@esbuild/linux-mips64el\": \"0.27.4\",\n \"@esbuild/linux-ppc64\": \"0.27.4\",\n \"@esbuild/linux-riscv64\": \"0.27.4\",\n \"@esbuild/linux-s390x\": \"0.27.4\",\n \"@esbuild/linux-x64\": \"0.27.4\",\n \"@esbuild/netbsd-arm64\": \"0.27.4\",\n \"@esbuild/netbsd-x64\": \"0.27.4\",\n \"@esbuild/openbsd-arm64\": \"0.27.4\",\n \"@esbuild/openbsd-x64\": \"0.27.4\",\n \"@esbuild/openharmony-arm64\": \"0.27.4\",\n \"@esbuild/sunos-x64\": \"0.27.4\",\n \"@esbuild/win32-arm64\": \"0.27.4\",\n \"@esbuild/win32-ia32\": \"0.27.4\",\n \"@esbuild/win32-x64\": \"0.27.4\"\n }\n },\n \"node_modules/escape-string-regexp\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz\",\n \"integrity\": \"sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/execa\": {\n \"version\": \"9.6.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-9.6.1.tgz\",\n \"integrity\": \"sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sindresorhus/merge-streams\": \"^4.0.0\",\n \"cross-spawn\": \"^7.0.6\",\n \"figures\": \"^6.1.0\",\n \"get-stream\": \"^9.0.0\",\n \"human-signals\": \"^8.0.1\",\n \"is-plain-obj\": \"^4.1.0\",\n \"is-stream\": \"^4.0.1\",\n \"npm-run-path\": \"^6.0.0\",\n \"pretty-ms\": \"^9.2.0\",\n \"signal-exit\": \"^4.1.0\",\n \"strip-final-newline\": \"^4.0.0\",\n \"yoctocolors\": \"^2.1.1\"\n },\n \"engines\": {\n \"node\": \"^18.19.0 || >=20.5.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.5.0\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz\",\n \"integrity\": \"sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/figures\": {\n \"version\": \"6.1.0\",\n \"resolved\": \"https://registry.npmjs.org/figures/-/figures-6.1.0.tgz\",\n \"integrity\": \"sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"is-unicode-supported\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/fix-dts-default-cjs-exports\": {\n \"version\": \"1.0.1\",\n \"resolved\": \"https://registry.npmjs.org/fix-dts-default-cjs-exports/-/fix-dts-default-cjs-exports-1.0.1.tgz\",\n \"integrity\": \"sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"magic-string\": \"^0.30.17\",\n \"mlly\": \"^1.7.4\",\n \"rollup\": \"^4.34.8\"\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/get-stream\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz\",\n \"integrity\": \"sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sec-ant/readable-stream\": \"^0.4.1\",\n \"is-stream\": \"^4.0.1\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.13.6\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz\",\n \"integrity\": \"sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/human-signals\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz\",\n \"integrity\": \"sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==\",\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=18.18.0\"\n }\n },\n \"node_modules/ignore\": {\n \"version\": \"7.0.5\",\n \"resolved\": \"https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz\",\n \"integrity\": \"sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/is-docker\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz\",\n \"integrity\": \"sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==\",\n \"license\": \"MIT\",\n \"bin\": {\n \"is-docker\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-inside-container\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz\",\n \"integrity\": \"sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"is-docker\": \"^3.0.0\"\n },\n \"bin\": {\n \"is-inside-container\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=14.16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-plain-obj\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz\",\n \"integrity\": \"sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-stream\": {\n \"version\": \"4.0.1\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz\",\n \"integrity\": \"sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-unicode-supported\": {\n \"version\": \"2.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz\",\n \"integrity\": \"sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-wayland\": {\n \"version\": \"0.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-wayland/-/is-wayland-0.1.0.tgz\",\n \"integrity\": \"sha512-QkbMsWkIfkrzOPxenwye0h56iAXirZYHG9eHVPb22fO9y+wPbaX/CHacOWBa/I++4ohTcByimhM1/nyCsH8KNA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-wsl\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz\",\n \"integrity\": \"sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"is-inside-container\": \"^1.0.0\"\n },\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is64bit\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz\",\n \"integrity\": \"sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"system-architecture\": \"^0.1.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isexe\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",\n \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==\",\n \"license\": \"ISC\"\n },\n \"node_modules/joycon\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz\",\n \"integrity\": \"sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/lilconfig\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz\",\n \"integrity\": \"sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antonk52\"\n }\n },\n \"node_modules/lines-and-columns\": {\n \"version\": \"1.2.4\",\n \"resolved\": \"https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz\",\n \"integrity\": \"sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/load-tsconfig\": {\n \"version\": \"0.2.5\",\n \"resolved\": \"https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz\",\n \"integrity\": \"sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n }\n },\n \"node_modules/macos-version\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/macos-version/-/macos-version-6.0.0.tgz\",\n \"integrity\": \"sha512-O2S8voA+pMfCHhBn/TIYDXzJ1qNHpPDU32oFxglKnVdJABiYYITt45oLkV9yhwA3E2FDwn3tQqUFrTsr1p3sBQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"semver\": \"^7.3.5\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.21\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz\",\n \"integrity\": \"sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.5\"\n }\n },\n \"node_modules/merge-stream\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",\n \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==\",\n \"license\": \"MIT\"\n },\n \"node_modules/mimic-fn\": {\n \"version\": \"2.1.0\",\n \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz\",\n \"integrity\": \"sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/minimist\": {\n \"version\": \"1.2.8\",\n \"resolved\": \"https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz\",\n \"integrity\": \"sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/mlly\": {\n \"version\": \"1.8.1\",\n \"resolved\": \"https://registry.npmjs.org/mlly/-/mlly-1.8.1.tgz\",\n \"integrity\": \"sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.16.0\",\n \"pathe\": \"^2.0.3\",\n \"pkg-types\": \"^1.3.1\",\n \"ufo\": \"^1.6.3\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/mz\": {\n \"version\": \"2.7.0\",\n \"resolved\": \"https://registry.npmjs.org/mz/-/mz-2.7.0.tgz\",\n \"integrity\": \"sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"any-promise\": \"^1.0.0\",\n \"object-assign\": \"^4.0.1\",\n \"thenify-all\": \"^1.0.0\"\n }\n },\n \"node_modules/npm-run-path\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz\",\n \"integrity\": \"sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^4.0.0\",\n \"unicorn-magic\": \"^0.3.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/npm-run-path/node_modules/path-key\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz\",\n \"integrity\": \"sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/object-assign\": {\n \"version\": \"4.1.1\",\n \"resolved\": \"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz\",\n \"integrity\": \"sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/onetime\": {\n \"version\": \"5.1.2\",\n \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz\",\n \"integrity\": \"sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mimic-fn\": \"^2.1.0\"\n },\n \"engines\": {\n \"node\": \">=6\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/parse-ms\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz\",\n \"integrity\": \"sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/path-key\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",\n \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz\",\n \"integrity\": \"sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/pirates\": {\n \"version\": \"4.0.7\",\n \"resolved\": \"https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz\",\n \"integrity\": \"sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 6\"\n }\n },\n \"node_modules/pkg-types\": {\n \"version\": \"1.3.1\",\n \"resolved\": \"https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz\",\n \"integrity\": \"sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"confbox\": \"^0.1.8\",\n \"mlly\": \"^1.7.4\",\n \"pathe\": \"^2.0.1\"\n }\n },\n \"node_modules/postcss-load-config\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz\",\n \"integrity\": \"sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"lilconfig\": \"^3.1.1\"\n },\n \"engines\": {\n \"node\": \">= 18\"\n },\n \"peerDependencies\": {\n \"jiti\": \">=1.21.0\",\n \"postcss\": \">=8.0.9\",\n \"tsx\": \"^4.8.1\",\n \"yaml\": \"^2.4.2\"\n },\n \"peerDependenciesMeta\": {\n \"jiti\": {\n \"optional\": true\n },\n \"postcss\": {\n \"optional\": true\n },\n \"tsx\": {\n \"optional\": true\n },\n \"yaml\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/powershell-utils\": {\n \"version\": \"0.2.0\",\n \"resolved\": \"https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.2.0.tgz\",\n \"integrity\": \"sha512-ZlsFlG7MtSFCoc5xreOvBAozCJ6Pf06opgJjh9ONEv418xpZSAzNjstD36C6+JwOnfSqOW/9uDkqKjezTdxZhw==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pretty-ms\": {\n \"version\": \"9.3.0\",\n \"resolved\": \"https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz\",\n \"integrity\": \"sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"parse-ms\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/readdirp\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz\",\n \"integrity\": \"sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 20.19.0\"\n },\n \"funding\": {\n \"type\": \"individual\",\n \"url\": \"https://paulmillr.com/funding/\"\n }\n },\n \"node_modules/resolve-from\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz\",\n \"integrity\": \"sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz\",\n \"integrity\": \"sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.59.0\",\n \"@rollup/rollup-android-arm64\": \"4.59.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.59.0\",\n \"@rollup/rollup-darwin-x64\": \"4.59.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.59.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.59.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.59.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.59.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.59.0\",\n \"@rollup/rollup-linux-loong64-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-loong64-musl\": \"4.59.0\",\n \"@rollup/rollup-linux-ppc64-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-ppc64-musl\": \"4.59.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.59.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.59.0\",\n \"@rollup/rollup-openbsd-x64\": \"4.59.0\",\n \"@rollup/rollup-openharmony-arm64\": \"4.59.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.59.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.59.0\",\n \"@rollup/rollup-win32-x64-gnu\": \"4.59.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.59.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/run-jxa\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/run-jxa/-/run-jxa-3.0.0.tgz\",\n \"integrity\": \"sha512-4f2CrY7H+sXkKXJn/cE6qRA3z+NMVO7zvlZ/nUV0e62yWftpiLAfw5eV9ZdomzWd2TXWwEIiGjAT57+lWIzzvA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"execa\": \"^5.1.1\",\n \"macos-version\": \"^6.0.0\",\n \"subsume\": \"^4.0.0\",\n \"type-fest\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/run-jxa/node_modules/execa\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-5.1.1.tgz\",\n \"integrity\": \"sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cross-spawn\": \"^7.0.3\",\n \"get-stream\": \"^6.0.0\",\n \"human-signals\": \"^2.1.0\",\n \"is-stream\": \"^2.0.0\",\n \"merge-stream\": \"^2.0.0\",\n \"npm-run-path\": \"^4.0.1\",\n \"onetime\": \"^5.1.2\",\n \"signal-exit\": \"^3.0.3\",\n \"strip-final-newline\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/run-jxa/node_modules/get-stream\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz\",\n \"integrity\": \"sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/run-jxa/node_modules/human-signals\": {\n \"version\": \"2.1.0\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz\",\n \"integrity\": \"sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==\",\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=10.17.0\"\n }\n },\n \"node_modules/run-jxa/node_modules/is-stream\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz\",\n \"integrity\": \"sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/run-jxa/node_modules/npm-run-path\": {\n \"version\": \"4.0.1\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz\",\n \"integrity\": \"sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/run-jxa/node_modules/signal-exit\": {\n \"version\": \"3.0.7\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz\",\n \"integrity\": \"sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==\",\n \"license\": \"ISC\"\n },\n \"node_modules/run-jxa/node_modules/strip-final-newline\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz\",\n \"integrity\": \"sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"7.7.4\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.7.4.tgz\",\n \"integrity\": \"sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==\",\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n },\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/shebang-command\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",\n \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"shebang-regex\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shebang-regex\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",\n \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/signal-exit\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",\n \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==\",\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/isaacs\"\n }\n },\n \"node_modules/source-map\": {\n \"version\": \"0.7.6\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz\",\n \"integrity\": \"sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">= 12\"\n }\n },\n \"node_modules/strip-final-newline\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz\",\n \"integrity\": \"sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/subsume\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/subsume/-/subsume-4.0.0.tgz\",\n \"integrity\": \"sha512-BWnYJElmHbYZ/zKevy+TG+SsyoFCmRPDHJbR1MzLxkPOv1Jp/4hGhVUtP98s+wZBsBsHwCXvPTP0x287/WMjGg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escape-string-regexp\": \"^5.0.0\",\n \"unique-string\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/sucrase\": {\n \"version\": \"3.35.1\",\n \"resolved\": \"https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz\",\n \"integrity\": \"sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.2\",\n \"commander\": \"^4.0.0\",\n \"lines-and-columns\": \"^1.1.6\",\n \"mz\": \"^2.7.0\",\n \"pirates\": \"^4.0.1\",\n \"tinyglobby\": \"^0.2.11\",\n \"ts-interface-checker\": \"^0.1.9\"\n },\n \"bin\": {\n \"sucrase\": \"bin/sucrase\",\n \"sucrase-node\": \"bin/sucrase-node\"\n },\n \"engines\": {\n \"node\": \">=16 || 14 >=14.17\"\n }\n },\n \"node_modules/system-architecture\": {\n \"version\": \"0.1.0\",\n \"resolved\": \"https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz\",\n \"integrity\": \"sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/thenify\": {\n \"version\": \"3.3.1\",\n \"resolved\": \"https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz\",\n \"integrity\": \"sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"any-promise\": \"^1.0.0\"\n }\n },\n \"node_modules/thenify-all\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz\",\n \"integrity\": \"sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"thenify\": \">= 3.1.0 < 4\"\n },\n \"engines\": {\n \"node\": \">=0.8\"\n }\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.15\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz\",\n \"integrity\": \"sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.5.0\",\n \"picomatch\": \"^4.0.3\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/ts-interface-checker\": {\n \"version\": \"0.1.13\",\n \"resolved\": \"https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz\",\n \"integrity\": \"sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\"\n },\n \"node_modules/tsup\": {\n \"version\": \"8.5.1\",\n \"resolved\": \"https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz\",\n \"integrity\": \"sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"bundle-require\": \"^5.1.0\",\n \"cac\": \"^6.7.14\",\n \"chokidar\": \"^4.0.3\",\n \"consola\": \"^3.4.0\",\n \"debug\": \"^4.4.0\",\n \"esbuild\": \"^0.27.0\",\n \"fix-dts-default-cjs-exports\": \"^1.0.0\",\n \"joycon\": \"^3.1.1\",\n \"picocolors\": \"^1.1.1\",\n \"postcss-load-config\": \"^6.0.1\",\n \"resolve-from\": \"^5.0.0\",\n \"rollup\": \"^4.34.8\",\n \"source-map\": \"^0.7.6\",\n \"sucrase\": \"^3.35.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.11\",\n \"tree-kill\": \"^1.2.2\"\n },\n \"bin\": {\n \"tsup\": \"dist/cli-default.js\",\n \"tsup-node\": \"dist/cli-node.js\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"@microsoft/api-extractor\": \"^7.36.0\",\n \"@swc/core\": \"^1\",\n \"postcss\": \"^8.4.12\",\n \"typescript\": \">=4.5.0\"\n },\n \"peerDependenciesMeta\": {\n \"@microsoft/api-extractor\": {\n \"optional\": true\n },\n \"@swc/core\": {\n \"optional\": true\n },\n \"postcss\": {\n \"optional\": true\n },\n \"typescript\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/tsup/node_modules/chokidar\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz\",\n \"integrity\": \"sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"readdirp\": \"^4.0.1\"\n },\n \"engines\": {\n \"node\": \">= 14.16.0\"\n },\n \"funding\": {\n \"url\": \"https://paulmillr.com/funding/\"\n }\n },\n \"node_modules/tsup/node_modules/readdirp\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz\",\n \"integrity\": \"sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.18.0\"\n },\n \"funding\": {\n \"type\": \"individual\",\n \"url\": \"https://paulmillr.com/funding/\"\n }\n },\n \"node_modules/tsx\": {\n \"version\": \"4.21.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz\",\n \"integrity\": \"sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.27.0\",\n \"get-tsconfig\": \"^4.7.5\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/type-fest\": {\n \"version\": \"2.19.0\",\n \"resolved\": \"https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz\",\n \"integrity\": \"sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==\",\n \"license\": \"(MIT OR CC0-1.0)\",\n \"engines\": {\n \"node\": \">=12.20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.9.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/ufo\": {\n \"version\": \"1.6.3\",\n \"resolved\": \"https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz\",\n \"integrity\": \"sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/undici-types\": {\n \"version\": \"7.18.2\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz\",\n \"integrity\": \"sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/unicorn-magic\": {\n \"version\": \"0.3.0\",\n \"resolved\": \"https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz\",\n \"integrity\": \"sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/unique-string\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz\",\n \"integrity\": \"sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"crypto-random-string\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/which\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",\n \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==\",\n \"license\": \"ISC\",\n \"dependencies\": {\n \"isexe\": \"^2.0.0\"\n },\n \"bin\": {\n \"node-which\": \"bin/node-which\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/yoctocolors\": {\n \"version\": \"2.1.2\",\n \"resolved\": \"https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz\",\n \"integrity\": \"sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n }\n }\n}\n\n```\n\n### `package.json`\n\n> 986 B · 247 tokens\n\n```json\n{\n \"name\": \"contextpack\",\n \"version\": \"1.0.0\",\n \"description\": \"Bundle your codebase into a single LLM-ready file. Stop copy-pasting files into Claude/ChatGPT.\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/types/index.d.ts\",\n \"bin\": {\n \"contextpack\": \"./dist/cli.js\",\n \"ctx\": \"./dist/cli.js\"\n },\n \"scripts\": {\n \"build\": \"tsup src/index.ts src/cli.ts --format cjs --dts --clean\",\n \"dev\": \"tsx src/cli.ts\",\n \"start\": \"node dist/cli.js\"\n },\n \"keywords\": [\n \"llm\", \"ai\", \"context\", \"codebase\", \"claude\", \"chatgpt\",\n \"openai\", \"developer-tools\", \"cli\", \"typescript\"\n ],\n \"author\": \"\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=16.0.0\"\n },\n \"dependencies\": {\n \"chokidar\": \"^3.6.0\",\n \"clipboardy\": \"^4.0.0\",\n \"chalk\": \"^5.3.0\",\n \"ignore\": \"^5.3.1\",\n \"minimist\": \"^1.2.8\"\n },\n \"devDependencies\": {\n \"@types/minimist\": \"^1.2.5\",\n \"@types/node\": \"^20.0.0\",\n \"tsup\": \"^8.0.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\"\n }\n}\n```\n\n### `src/cli.ts`\n\n> 4.3 KB · 1.1k tokens\n\n```typescript\n#!/usr/bin/env node\r\nimport * as fs from 'fs';\r\nimport * as path from 'path';\r\nimport minimist from 'minimist';\r\nimport { pack } from './index.js';\r\nimport { watch } from './watcher.js';\r\nimport { ContextPackOptions } from './types.js';\r\nimport { formatTokenCount, getContextWarning } from './tokenEstimator.js';\r\n\r\nconst HELP = `\r\n╔═══════════════════════════════════════════╗\r\n║ contextpack (ctx) ║\r\n║ Bundle your codebase for LLMs instantly ║\r\n╚═══════════════════════════════════════════╝\r\n\r\nUsage:\r\n ctx [directory] [options]\r\n contextpack [directory] [options]\r\n\r\nOptions:\r\n --out, -o Output file path (default: context.md)\r\n --format, -f Output format: markdown | json (default: markdown)\r\n --include, -i Only include paths matching pattern (repeatable)\r\n --exclude, -e Exclude paths matching pattern (repeatable)\r\n --copy, -c Copy output to clipboard\r\n --watch, -w Watch for changes and repack automatically\r\n --stats, -s Print stats only, no file contents\r\n --max-size Max file size in KB to include (default: 500)\r\n --help, -h Show this help message\r\n\r\nExamples:\r\n ctx .\r\n ctx ./src --out context.md\r\n ctx . --format json --out context.json\r\n ctx . --include src --exclude tests\r\n ctx . --copy\r\n ctx . --watch --out context.md\r\n ctx . --stats\r\n`;\r\n\r\nasync function main() {\r\n const argv = minimist(process.argv.slice(2), {\r\n string: ['out', 'format', 'include', 'exclude'],\r\n boolean: ['copy', 'watch', 'stats', 'help'],\r\n alias: {\r\n o: 'out',\r\n f: 'format',\r\n i: 'include',\r\n e: 'exclude',\r\n c: 'copy',\r\n w: 'watch',\r\n s: 'stats',\r\n h: 'help',\r\n },\r\n default: {\r\n format: 'markdown',\r\n copy: false,\r\n watch: false,\r\n stats: false,\r\n },\r\n });\r\n\r\n if (argv.help) {\r\n console.log(HELP);\r\n process.exit(0);\r\n }\r\n\r\n const dir = argv._[0] || '.';\r\n\r\n if (!fs.existsSync(dir)) {\r\n console.error(`❌ Directory not found: ${dir}`);\r\n process.exit(1);\r\n }\r\n\r\n const format = argv.format === 'json' ? 'json' : 'markdown';\r\n const defaultOut = format === 'json' ? 'context.json' : 'context.md';\r\n const outPath = path.resolve(argv.out || defaultOut);\r\n\r\n const options: ContextPackOptions = {\r\n dir,\r\n format,\r\n out: outPath,\r\n copy: argv.copy,\r\n watch: argv.watch,\r\n stats: argv.stats,\r\n maxFileSize: (argv['max-size'] || 500) * 1024,\r\n include: argv.include\r\n ? Array.isArray(argv.include) ? argv.include : [argv.include]\r\n : undefined,\r\n exclude: argv.exclude\r\n ? Array.isArray(argv.exclude) ? argv.exclude : [argv.exclude]\r\n : undefined,\r\n };\r\n\r\n // Watch mode\r\n if (options.watch) {\r\n watch(options, outPath);\r\n return;\r\n }\r\n\r\n // Single pack\r\n console.log(`\\n📦 Packing ${path.resolve(dir)}...\\n`);\r\n\r\n try {\r\n const { output, result } = pack(options);\r\n\r\n // Stats only mode\r\n if (options.stats) {\r\n console.log(`📊 Stats`);\r\n console.log(` Files: ${result.totalFiles}`);\r\n console.log(` Size: ${(result.totalSizeBytes / 1024).toFixed(1)} KB`);\r\n console.log(` Tokens: ${formatTokenCount(result.totalTokens)}`);\r\n const warning = getContextWarning(result.totalTokens);\r\n if (warning) console.log(`\\n ${warning}`);\r\n console.log('');\r\n return;\r\n }\r\n\r\n // Write output file\r\n fs.writeFileSync(outPath, output, 'utf-8');\r\n console.log(`✅ Done!`);\r\n console.log(` Files: ${result.totalFiles}`);\r\n console.log(` Tokens: ${formatTokenCount(result.totalTokens)}`);\r\n console.log(` Output: ${outPath}`);\r\n\r\n const warning = getContextWarning(result.totalTokens);\r\n if (warning) console.log(`\\n ${warning}`);\r\n\r\n // Copy to clipboard\r\n if (options.copy) {\r\n try {\r\n const { default: clipboardy } = await import('clipboardy');\r\n await clipboardy.write(output);\r\n console.log(`\\n📋 Copied to clipboard!`);\r\n } catch {\r\n console.warn(`\\n⚠️ Could not copy to clipboard`);\r\n }\r\n }\r\n\r\n console.log('');\r\n } catch (err) {\r\n console.error(`❌ Failed to pack:`, err);\r\n process.exit(1);\r\n }\r\n}\r\n\r\nmain();\n```\n\n### `src/formatter.ts`\n\n> 2.4 KB · 609 tokens\n\n```typescript\nimport { PackResult, ContextPackOptions } from './types.js';\r\nimport { formatTokenCount, getContextWarning } from './tokenEstimator.js';\r\n\r\nfunction formatBytes(bytes: number): string {\r\n if (bytes < 1024) return `${bytes} B`;\r\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\r\n return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;\r\n}\r\n\r\nexport function formatMarkdown(result: PackResult, options: ContextPackOptions): string {\r\n const warning = getContextWarning(result.totalTokens);\r\n const lines: string[] = [];\r\n\r\n // Header\r\n lines.push('# ContextPack');\r\n lines.push('');\r\n lines.push(`> Generated by [contextpack](https://github.com/HalxDocs/contextpack) — ${result.generatedAt}`);\r\n lines.push('');\r\n\r\n // Stats\r\n lines.push('## 📊 Stats');\r\n lines.push('');\r\n lines.push(`| Property | Value |`);\r\n lines.push(`|----------|-------|`);\r\n lines.push(`| Source | \\`${result.sourceDir}\\` |`);\r\n lines.push(`| Files | ${result.totalFiles} |`);\r\n lines.push(`| Total Size | ${formatBytes(result.totalSizeBytes)} |`);\r\n lines.push(`| Estimated Tokens | ${formatTokenCount(result.totalTokens)} |`);\r\n lines.push('');\r\n\r\n if (warning) {\r\n lines.push(`> ${warning}`);\r\n lines.push('');\r\n }\r\n\r\n // File Tree\r\n lines.push('## 🗂 File Tree');\r\n lines.push('');\r\n lines.push('```');\r\n lines.push(result.fileTree);\r\n lines.push('```');\r\n lines.push('');\r\n\r\n // Files\r\n lines.push('## 📄 Files');\r\n lines.push('');\r\n\r\n for (const file of result.files) {\r\n lines.push(`### \\`${file.relativePath}\\``);\r\n lines.push('');\r\n lines.push(`> ${formatBytes(file.sizeBytes)} · ${formatTokenCount(file.tokens)}`);\r\n lines.push('');\r\n lines.push(`\\`\\`\\`${file.language}`);\r\n lines.push(file.content);\r\n lines.push('```');\r\n lines.push('');\r\n }\r\n\r\n return lines.join('\\n');\r\n}\r\n\r\nexport function formatJSON(result: PackResult): string {\r\n return JSON.stringify(\r\n {\r\n meta: {\r\n generatedAt: result.generatedAt,\r\n sourceDir: result.sourceDir,\r\n totalFiles: result.totalFiles,\r\n totalSizeBytes: result.totalSizeBytes,\r\n totalTokens: result.totalTokens,\r\n },\r\n fileTree: result.fileTree,\r\n files: result.files.map(f => ({\r\n path: f.relativePath,\r\n language: f.language,\r\n sizeBytes: f.sizeBytes,\r\n tokens: f.tokens,\r\n content: f.content,\r\n })),\r\n },\r\n null,\r\n 2\r\n );\r\n}\n```\n\n### `src/index.ts`\n\n> 1.3 KB · 339 tokens\n\n```typescript\nimport * as path from 'path';\r\nimport { walkDir, buildFileTree } from './walker.js';\r\nimport { formatMarkdown, formatJSON } from './formatter.js';\r\nimport { ContextPackOptions, PackResult } from './types.js';\r\n\r\nexport function pack(options: ContextPackOptions): { output: string; result: PackResult } {\r\n const dir = path.resolve(options.dir);\r\n\r\n // Walk the directory and collect files\r\n const files = walkDir(dir, {\r\n exclude: options.exclude,\r\n maxFileSize: options.maxFileSize,\r\n });\r\n\r\n // Filter by include patterns if provided\r\n const filteredFiles = options.include\r\n ? files.filter(f =>\r\n options.include!.some(pattern => f.relativePath.includes(pattern))\r\n )\r\n : files;\r\n\r\n // Build the result object\r\n const result: PackResult = {\r\n files: filteredFiles,\r\n fileTree: buildFileTree(filteredFiles),\r\n totalFiles: filteredFiles.length,\r\n totalSizeBytes: filteredFiles.reduce((sum, f) => sum + f.sizeBytes, 0),\r\n totalTokens: filteredFiles.reduce((sum, f) => sum + f.tokens, 0),\r\n generatedAt: new Date().toISOString(),\r\n sourceDir: dir,\r\n };\r\n\r\n // Format output\r\n const output =\r\n options.format === 'json'\r\n ? formatJSON(result)\r\n : formatMarkdown(result, options);\r\n\r\n return { output, result };\r\n}\r\n\r\nexport { ContextPackOptions, PackResult, FileEntry } from './types.js';\n```\n\n### `src/tokenEstimator.ts`\n\n> 917 B · 225 tokens\n\n```typescript\n// It approximates token count the same way OpenAI/Claude tokenizers work\r\n// ~4 characters per token is the widely accepted estimate\r\n\r\nexport function estimateTokens(text: string): number {\r\n return Math.ceil(text.length / 4);\r\n}\r\n\r\nexport function formatTokenCount(tokens: number): string {\r\n if (tokens < 1000) return `${tokens} tokens`;\r\n if (tokens < 1_000_000) return `${(tokens / 1000).toFixed(1)}k tokens`;\r\n return `${(tokens / 1_000_000).toFixed(2)}M tokens`;\r\n}\r\n\r\nexport function getContextWarning(tokens: number): string | null {\r\n if (tokens > 2_000_000) return '⛔ Exceeds most LLM context windows (2M+)';\r\n if (tokens > 1_000_000) return '⚠️ Very large — only Gemini 1.5 / Claude 3 can handle this';\r\n if (tokens > 200_000) return '⚠️ Large — works with Claude 3, GPT-4 Turbo';\r\n if (tokens > 128_000) return '⚠️ Fits Claude 3 but may exceed GPT-4';\r\n return null;\r\n}\n```\n\n### `src/types.ts`\n\n> 612 B · 153 tokens\n\n```typescript\nexport interface ContextPackOptions {\r\n dir: string;\r\n include?: string[];\r\n exclude?: string[];\r\n format: 'markdown' | 'json';\r\n out?: string;\r\n copy: boolean;\r\n watch: boolean;\r\n stats: boolean;\r\n maxFileSize: number;\r\n}\r\n\r\nexport interface FileEntry {\r\n path: string;\r\n relativePath: string;\r\n extension: string;\r\n language: string;\r\n content: string;\r\n sizeBytes: number;\r\n tokens: number;\r\n}\r\n\r\nexport interface PackResult {\r\n files: FileEntry[];\r\n fileTree: string;\r\n totalFiles: number;\r\n totalSizeBytes: number;\r\n totalTokens: number;\r\n generatedAt: string;\r\n sourceDir: string;\r\n}\n```\n\n### `src/walker.ts`\n\n> 3.9 KB · 993 tokens\n\n```typescript\nimport * as fs from 'fs';\r\nimport * as path from 'path';\r\nimport ignore, { Ignore } from 'ignore';\r\nimport { FileEntry } from './types.js';\r\nimport { estimateTokens } from './tokenEstimator.js';\r\n\r\nconst LANGUAGE_MAP: Record<string, string> = {\r\n ts: 'typescript', tsx: 'typescript', js: 'javascript', jsx: 'javascript',\r\n py: 'python', rb: 'ruby', go: 'go', rs: 'rust', java: 'java',\r\n cpp: 'cpp', c: 'c', cs: 'csharp', php: 'php', swift: 'swift',\r\n kt: 'kotlin', scala: 'scala', html: 'html', css: 'css', scss: 'scss',\r\n json: 'json', yaml: 'yaml', yml: 'yaml', toml: 'toml', md: 'markdown',\r\n sh: 'bash', bash: 'bash', zsh: 'bash', sql: 'sql', graphql: 'graphql',\r\n vue: 'vue', svelte: 'svelte', xml: 'xml', dockerfile: 'dockerfile',\r\n};\r\n\r\nconst ALWAYS_IGNORE = [\r\n 'node_modules', '.git', 'dist', 'build', '.next', '.nuxt',\r\n 'coverage', '.cache', '.turbo', 'out', '.vercel', '.netlify',\r\n '*.lock', '*.log', '*.map', '*.min.js', '*.min.css',\r\n '*.jpg', '*.jpeg', '*.png', '*.gif', '*.ico', '*.svg',\r\n '*.mp4', '*.mp3', '*.zip', '*.tar', '*.gz', '*.exe',\r\n '*.pdf', '*.ttf', '*.woff', '*.woff2', '*.eot',\r\n];\r\n\r\nfunction getLanguage(ext: string, filename: string): string {\r\n if (filename.toLowerCase() === 'dockerfile') return 'dockerfile';\r\n return LANGUAGE_MAP[ext.toLowerCase()] || ext || 'text';\r\n}\r\n\r\nfunction buildIgnore(dir: string, extraExcludes: string[]): Ignore {\r\n const ig = ignore();\r\n ig.add(ALWAYS_IGNORE);\r\n ig.add(extraExcludes);\r\n\r\n const gitignorePath = path.join(dir, '.gitignore');\r\n if (fs.existsSync(gitignorePath)) {\r\n const gitignoreContent = fs.readFileSync(gitignorePath, 'utf-8');\r\n ig.add(gitignoreContent);\r\n }\r\n\r\n return ig;\r\n}\r\n\r\nexport function walkDir(\r\n dir: string,\r\n options: { exclude?: string[]; maxFileSize?: number }\r\n): FileEntry[] {\r\n const ig = buildIgnore(dir, options.exclude || []);\r\n const maxSize = options.maxFileSize ?? 500 * 1024; // 500kb default\r\n const files: FileEntry[] = [];\r\n\r\n function walk(currentDir: string) {\r\n const entries = fs.readdirSync(currentDir, { withFileTypes: true });\r\n\r\n for (const entry of entries) {\r\n const fullPath = path.join(currentDir, entry.name);\r\n const relativePath = path.relative(dir, fullPath).replace(/\\\\/g, '/');\r\n\r\n if (ig.ignores(relativePath)) continue;\r\n\r\n if (entry.isDirectory()) {\r\n walk(fullPath);\r\n } else if (entry.isFile()) {\r\n const stat = fs.statSync(fullPath);\r\n if (stat.size > maxSize) continue;\r\n\r\n let content: string;\r\n try {\r\n content = fs.readFileSync(fullPath, 'utf-8');\r\n } catch {\r\n continue; // skip binary files that can't be read as utf-8\r\n }\r\n\r\n const ext = path.extname(entry.name).replace('.', '');\r\n const language = getLanguage(ext, entry.name);\r\n\r\n files.push({\r\n path: fullPath,\r\n relativePath,\r\n extension: ext,\r\n language,\r\n content,\r\n sizeBytes: stat.size,\r\n tokens: estimateTokens(content),\r\n });\r\n }\r\n }\r\n }\r\n\r\n walk(dir);\r\n return files.sort((a, b) => a.relativePath.localeCompare(b.relativePath));\r\n}\r\n\r\nexport function buildFileTree(files: FileEntry[]): string {\r\n const lines: string[] = [];\r\n const dirs = new Set<string>();\r\n\r\n for (const file of files) {\r\n const parts = file.relativePath.split('/');\r\n for (let i = 1; i < parts.length; i++) {\r\n dirs.add(parts.slice(0, i).join('/'));\r\n }\r\n }\r\n\r\n const allPaths = [\r\n ...Array.from(dirs).map(d => ({ path: d, isDir: true })),\r\n ...files.map(f => ({ path: f.relativePath, isDir: false })),\r\n ].sort((a, b) => a.path.localeCompare(b.path));\r\n\r\n for (const item of allPaths) {\r\n const depth = item.path.split('/').length - 1;\r\n const indent = ' '.repeat(depth);\r\n const name = item.path.split('/').pop()!;\r\n lines.push(`${indent}${item.isDir ? '📁' : '📄'} ${name}`);\r\n }\r\n\r\n return lines.join('\\n');\r\n}\n```\n\n### `src/watcher.ts`\n\n> 1.7 KB · 427 tokens\n\n```typescript\nimport * as fs from 'fs';\r\nimport * as path from 'path';\r\nimport chokidar from 'chokidar';\r\nimport { pack } from './index.js';\r\nimport { ContextPackOptions } from './types.js';\r\nimport { formatTokenCount } from './tokenEstimator.js';\r\n\r\nexport function watch(options: ContextPackOptions, outPath: string) {\r\n const dir = path.resolve(options.dir);\r\n\r\n console.log(`\\n👀 Watching ${dir} for changes...`);\r\n console.log(`📦 Output: ${outPath}`);\r\n console.log(`Press Ctrl+C to stop\\n`);\r\n\r\n function rebuild(changedPath?: string) {\r\n if (changedPath) {\r\n const rel = path.relative(dir, changedPath).replace(/\\\\/g, '/');\r\n console.log(`🔄 Change detected: ${rel}`);\r\n }\r\n\r\n try {\r\n const { output, result } = pack(options);\r\n fs.writeFileSync(outPath, output, 'utf-8');\r\n\r\n const time = new Date().toLocaleTimeString();\r\n console.log(\r\n `✅ [${time}] Repacked → ${result.totalFiles} files · ${formatTokenCount(result.totalTokens)}`\r\n );\r\n } catch (err) {\r\n console.error(`❌ Error repacking:`, err);\r\n }\r\n }\r\n\r\n // Initial build\r\n rebuild();\r\n\r\n // Watch for changes\r\n const watcher = chokidar.watch(dir, {\r\n ignored: [\r\n /(^|[\\/\\\\])\\../, // dotfiles\r\n /node_modules/,\r\n /dist/,\r\n /\\.git/,\r\n outPath, // ignore the output file itself\r\n ],\r\n persistent: true,\r\n ignoreInitial: true,\r\n });\r\n\r\n watcher\r\n .on('add', rebuild)\r\n .on('change', rebuild)\r\n .on('unlink', rebuild)\r\n .on('addDir', rebuild)\r\n .on('unlinkDir', rebuild);\r\n\r\n // Graceful shutdown\r\n process.on('SIGINT', () => {\r\n console.log('\\n\\n👋 Stopping watcher...');\r\n watcher.close();\r\n process.exit(0);\r\n });\r\n}\n```\n\n### `tsconfig.json`\n\n> 384 B · 96 tokens\n\n```json\n{\r\n \"compilerOptions\": {\r\n \"target\": \"ES2020\",\r\n \"module\": \"NodeNext\",\r\n \"moduleResolution\": \"NodeNext\",\r\n \"outDir\": \"dist\",\r\n \"rootDir\": \"src\",\r\n \"strict\": true,\r\n \"esModuleInterop\": true,\r\n \"skipLibCheck\": true,\r\n \"declaration\": true,\r\n \"declarationDir\": \"dist/types\"\r\n },\r\n \"include\": [\"src/**/*\"],\r\n \"exclude\": [\"node_modules\", \"dist\", \"test\"]\r\n}\n```\n"
},
{
"path": "LICENSE",
"language": "text",
"sizeBytes": 1086,
"tokens": 272,
"content": "MIT License\r\n\r\nCopyright (c) 2026 HalxDocs\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\r\n"
},
{
"path": "package-lock.json",
"language": "json",
"sizeBytes": 76391,
"tokens": 19098,
"content": "{\n \"name\": \"contextpack\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"contextpack\",\n \"version\": \"1.0.0\",\n \"license\": \"ISC\",\n \"dependencies\": {\n \"chalk\": \"^5.6.2\",\n \"chokidar\": \"^5.0.0\",\n \"clipboardy\": \"^5.3.1\",\n \"ignore\": \"^7.0.5\",\n \"minimist\": \"^1.2.8\"\n },\n \"devDependencies\": {\n \"@types/minimist\": \"^1.2.5\",\n \"@types/node\": \"^25.5.0\",\n \"tsup\": \"^8.5.1\",\n \"tsx\": \"^4.21.0\",\n \"typescript\": \"^5.9.3\"\n }\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz\",\n \"integrity\": \"sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz\",\n \"integrity\": \"sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz\",\n \"integrity\": \"sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz\",\n \"integrity\": \"sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz\",\n \"integrity\": \"sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz\",\n \"integrity\": \"sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz\",\n \"integrity\": \"sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz\",\n \"integrity\": \"sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz\",\n \"integrity\": \"sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openharmony-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz\",\n \"integrity\": \"sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz\",\n \"integrity\": \"sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz\",\n \"integrity\": \"sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.13\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz\",\n \"integrity\": \"sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.5\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz\",\n \"integrity\": \"sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.31\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz\",\n \"integrity\": \"sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz\",\n \"integrity\": \"sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz\",\n \"integrity\": \"sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz\",\n \"integrity\": \"sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz\",\n \"integrity\": \"sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz\",\n \"integrity\": \"sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz\",\n \"integrity\": \"sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz\",\n \"integrity\": \"sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz\",\n \"integrity\": \"sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz\",\n \"integrity\": \"sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loong64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loong64-musl\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz\",\n \"integrity\": \"sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-ppc64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-ppc64-musl\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz\",\n \"integrity\": \"sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz\",\n \"integrity\": \"sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz\",\n \"integrity\": \"sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-openbsd-x64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz\",\n \"integrity\": \"sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ]\n },\n \"node_modules/@rollup/rollup-openharmony-arm64\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz\",\n \"integrity\": \"sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz\",\n \"integrity\": \"sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz\",\n \"integrity\": \"sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-gnu\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz\",\n \"integrity\": \"sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz\",\n \"integrity\": \"sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@sec-ant/readable-stream\": {\n \"version\": \"0.4.1\",\n \"resolved\": \"https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz\",\n \"integrity\": \"sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==\",\n \"license\": \"MIT\"\n },\n \"node_modules/@sindresorhus/merge-streams\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz\",\n \"integrity\": \"sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/minimist\": {\n \"version\": \"1.2.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz\",\n \"integrity\": \"sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"25.5.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz\",\n \"integrity\": \"sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~7.18.0\"\n }\n },\n \"node_modules/acorn\": {\n \"version\": \"8.16.0\",\n \"resolved\": \"https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz\",\n \"integrity\": \"sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"acorn\": \"bin/acorn\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/any-promise\": {\n \"version\": \"1.3.0\",\n \"resolved\": \"https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz\",\n \"integrity\": \"sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/bundle-require\": {\n \"version\": \"5.1.0\",\n \"resolved\": \"https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz\",\n \"integrity\": \"sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"load-tsconfig\": \"^0.2.3\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"esbuild\": \">=0.18\"\n }\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"5.6.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz\",\n \"integrity\": \"sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.17.0 || ^14.13 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chokidar\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz\",\n \"integrity\": \"sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"readdirp\": \"^5.0.0\"\n },\n \"engines\": {\n \"node\": \">= 20.19.0\"\n },\n \"funding\": {\n \"url\": \"https://paulmillr.com/funding/\"\n }\n },\n \"node_modules/clipboard-image\": {\n \"version\": \"0.1.0\",\n \"resolved\": \"https://registry.npmjs.org/clipboard-image/-/clipboard-image-0.1.0.tgz\",\n \"integrity\": \"sha512-SWk7FgaXLNFld19peQ/rTe0n97lwR1WbkqxV6JKCAOh7U52AKV/PeMFCyt/8IhBdqyDA8rdyewQMKZqvWT5Akg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"run-jxa\": \"^3.0.0\"\n },\n \"bin\": {\n \"clipboard-image\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/clipboardy\": {\n \"version\": \"5.3.1\",\n \"resolved\": \"https://registry.npmjs.org/clipboardy/-/clipboardy-5.3.1.tgz\",\n \"integrity\": \"sha512-fPWgBqpp9ctiOQCkE5yjYGzv11ZU55g6ahEgr3COiio6dXdt1mbchCPXQrSR2Y9sZqfi8L7QD3+UosgXVIuPdg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"clipboard-image\": \"^0.1.0\",\n \"execa\": \"^9.6.1\",\n \"is-wayland\": \"^0.1.0\",\n \"is-wsl\": \"^3.1.0\",\n \"is64bit\": \"^2.0.0\",\n \"powershell-utils\": \"^0.2.0\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/commander\": {\n \"version\": \"4.1.1\",\n \"resolved\": \"https://registry.npmjs.org/commander/-/commander-4.1.1.tgz\",\n \"integrity\": \"sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 6\"\n }\n },\n \"node_modules/confbox\": {\n \"version\": \"0.1.8\",\n \"resolved\": \"https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz\",\n \"integrity\": \"sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/consola\": {\n \"version\": \"3.4.2\",\n \"resolved\": \"https://registry.npmjs.org/consola/-/consola-3.4.2.tgz\",\n \"integrity\": \"sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.10.0\"\n }\n },\n \"node_modules/cross-spawn\": {\n \"version\": \"7.0.6\",\n \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz\",\n \"integrity\": \"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.1.0\",\n \"shebang-command\": \"^2.0.0\",\n \"which\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/crypto-random-string\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz\",\n \"integrity\": \"sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"type-fest\": \"^1.0.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/crypto-random-string/node_modules/type-fest\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz\",\n \"integrity\": \"sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==\",\n \"license\": \"(MIT OR CC0-1.0)\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.3\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.3.tgz\",\n \"integrity\": \"sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.27.4\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz\",\n \"integrity\": \"sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.27.4\",\n \"@esbuild/android-arm\": \"0.27.4\",\n \"@esbuild/android-arm64\": \"0.27.4\",\n \"@esbuild/android-x64\": \"0.27.4\",\n \"@esbuild/darwin-arm64\": \"0.27.4\",\n \"@esbuild/darwin-x64\": \"0.27.4\",\n \"@esbuild/freebsd-arm64\": \"0.27.4\",\n \"@esbuild/freebsd-x64\": \"0.27.4\",\n \"@esbuild/linux-arm\": \"0.27.4\",\n \"@esbuild/linux-arm64\": \"0.27.4\",\n \"@esbuild/linux-ia32\": \"0.27.4\",\n \"@esbuild/linux-loong64\": \"0.27.4\",\n \"@esbuild/linux-mips64el\": \"0.27.4\",\n \"@esbuild/linux-ppc64\": \"0.27.4\",\n \"@esbuild/linux-riscv64\": \"0.27.4\",\n \"@esbuild/linux-s390x\": \"0.27.4\",\n \"@esbuild/linux-x64\": \"0.27.4\",\n \"@esbuild/netbsd-arm64\": \"0.27.4\",\n \"@esbuild/netbsd-x64\": \"0.27.4\",\n \"@esbuild/openbsd-arm64\": \"0.27.4\",\n \"@esbuild/openbsd-x64\": \"0.27.4\",\n \"@esbuild/openharmony-arm64\": \"0.27.4\",\n \"@esbuild/sunos-x64\": \"0.27.4\",\n \"@esbuild/win32-arm64\": \"0.27.4\",\n \"@esbuild/win32-ia32\": \"0.27.4\",\n \"@esbuild/win32-x64\": \"0.27.4\"\n }\n },\n \"node_modules/escape-string-regexp\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz\",\n \"integrity\": \"sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/execa\": {\n \"version\": \"9.6.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-9.6.1.tgz\",\n \"integrity\": \"sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sindresorhus/merge-streams\": \"^4.0.0\",\n \"cross-spawn\": \"^7.0.6\",\n \"figures\": \"^6.1.0\",\n \"get-stream\": \"^9.0.0\",\n \"human-signals\": \"^8.0.1\",\n \"is-plain-obj\": \"^4.1.0\",\n \"is-stream\": \"^4.0.1\",\n \"npm-run-path\": \"^6.0.0\",\n \"pretty-ms\": \"^9.2.0\",\n \"signal-exit\": \"^4.1.0\",\n \"strip-final-newline\": \"^4.0.0\",\n \"yoctocolors\": \"^2.1.1\"\n },\n \"engines\": {\n \"node\": \"^18.19.0 || >=20.5.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.5.0\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz\",\n \"integrity\": \"sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/figures\": {\n \"version\": \"6.1.0\",\n \"resolved\": \"https://registry.npmjs.org/figures/-/figures-6.1.0.tgz\",\n \"integrity\": \"sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"is-unicode-supported\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/fix-dts-default-cjs-exports\": {\n \"version\": \"1.0.1\",\n \"resolved\": \"https://registry.npmjs.org/fix-dts-default-cjs-exports/-/fix-dts-default-cjs-exports-1.0.1.tgz\",\n \"integrity\": \"sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"magic-string\": \"^0.30.17\",\n \"mlly\": \"^1.7.4\",\n \"rollup\": \"^4.34.8\"\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/get-stream\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz\",\n \"integrity\": \"sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sec-ant/readable-stream\": \"^0.4.1\",\n \"is-stream\": \"^4.0.1\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.13.6\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz\",\n \"integrity\": \"sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/human-signals\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz\",\n \"integrity\": \"sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==\",\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=18.18.0\"\n }\n },\n \"node_modules/ignore\": {\n \"version\": \"7.0.5\",\n \"resolved\": \"https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz\",\n \"integrity\": \"sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/is-docker\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz\",\n \"integrity\": \"sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==\",\n \"license\": \"MIT\",\n \"bin\": {\n \"is-docker\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-inside-container\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz\",\n \"integrity\": \"sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"is-docker\": \"^3.0.0\"\n },\n \"bin\": {\n \"is-inside-container\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=14.16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-plain-obj\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz\",\n \"integrity\": \"sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-stream\": {\n \"version\": \"4.0.1\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz\",\n \"integrity\": \"sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-unicode-supported\": {\n \"version\": \"2.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz\",\n \"integrity\": \"sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-wayland\": {\n \"version\": \"0.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-wayland/-/is-wayland-0.1.0.tgz\",\n \"integrity\": \"sha512-QkbMsWkIfkrzOPxenwye0h56iAXirZYHG9eHVPb22fO9y+wPbaX/CHacOWBa/I++4ohTcByimhM1/nyCsH8KNA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-wsl\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz\",\n \"integrity\": \"sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"is-inside-container\": \"^1.0.0\"\n },\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is64bit\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz\",\n \"integrity\": \"sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"system-architecture\": \"^0.1.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isexe\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",\n \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==\",\n \"license\": \"ISC\"\n },\n \"node_modules/joycon\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz\",\n \"integrity\": \"sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/lilconfig\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz\",\n \"integrity\": \"sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antonk52\"\n }\n },\n \"node_modules/lines-and-columns\": {\n \"version\": \"1.2.4\",\n \"resolved\": \"https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz\",\n \"integrity\": \"sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/load-tsconfig\": {\n \"version\": \"0.2.5\",\n \"resolved\": \"https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz\",\n \"integrity\": \"sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n }\n },\n \"node_modules/macos-version\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/macos-version/-/macos-version-6.0.0.tgz\",\n \"integrity\": \"sha512-O2S8voA+pMfCHhBn/TIYDXzJ1qNHpPDU32oFxglKnVdJABiYYITt45oLkV9yhwA3E2FDwn3tQqUFrTsr1p3sBQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"semver\": \"^7.3.5\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.21\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz\",\n \"integrity\": \"sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.5\"\n }\n },\n \"node_modules/merge-stream\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",\n \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==\",\n \"license\": \"MIT\"\n },\n \"node_modules/mimic-fn\": {\n \"version\": \"2.1.0\",\n \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz\",\n \"integrity\": \"sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/minimist\": {\n \"version\": \"1.2.8\",\n \"resolved\": \"https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz\",\n \"integrity\": \"sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/mlly\": {\n \"version\": \"1.8.1\",\n \"resolved\": \"https://registry.npmjs.org/mlly/-/mlly-1.8.1.tgz\",\n \"integrity\": \"sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.16.0\",\n \"pathe\": \"^2.0.3\",\n \"pkg-types\": \"^1.3.1\",\n \"ufo\": \"^1.6.3\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/mz\": {\n \"version\": \"2.7.0\",\n \"resolved\": \"https://registry.npmjs.org/mz/-/mz-2.7.0.tgz\",\n \"integrity\": \"sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"any-promise\": \"^1.0.0\",\n \"object-assign\": \"^4.0.1\",\n \"thenify-all\": \"^1.0.0\"\n }\n },\n \"node_modules/npm-run-path\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz\",\n \"integrity\": \"sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^4.0.0\",\n \"unicorn-magic\": \"^0.3.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/npm-run-path/node_modules/path-key\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz\",\n \"integrity\": \"sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/object-assign\": {\n \"version\": \"4.1.1\",\n \"resolved\": \"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz\",\n \"integrity\": \"sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/onetime\": {\n \"version\": \"5.1.2\",\n \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz\",\n \"integrity\": \"sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mimic-fn\": \"^2.1.0\"\n },\n \"engines\": {\n \"node\": \">=6\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/parse-ms\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz\",\n \"integrity\": \"sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/path-key\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",\n \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz\",\n \"integrity\": \"sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/pirates\": {\n \"version\": \"4.0.7\",\n \"resolved\": \"https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz\",\n \"integrity\": \"sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 6\"\n }\n },\n \"node_modules/pkg-types\": {\n \"version\": \"1.3.1\",\n \"resolved\": \"https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz\",\n \"integrity\": \"sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"confbox\": \"^0.1.8\",\n \"mlly\": \"^1.7.4\",\n \"pathe\": \"^2.0.1\"\n }\n },\n \"node_modules/postcss-load-config\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz\",\n \"integrity\": \"sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"lilconfig\": \"^3.1.1\"\n },\n \"engines\": {\n \"node\": \">= 18\"\n },\n \"peerDependencies\": {\n \"jiti\": \">=1.21.0\",\n \"postcss\": \">=8.0.9\",\n \"tsx\": \"^4.8.1\",\n \"yaml\": \"^2.4.2\"\n },\n \"peerDependenciesMeta\": {\n \"jiti\": {\n \"optional\": true\n },\n \"postcss\": {\n \"optional\": true\n },\n \"tsx\": {\n \"optional\": true\n },\n \"yaml\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/powershell-utils\": {\n \"version\": \"0.2.0\",\n \"resolved\": \"https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.2.0.tgz\",\n \"integrity\": \"sha512-ZlsFlG7MtSFCoc5xreOvBAozCJ6Pf06opgJjh9ONEv418xpZSAzNjstD36C6+JwOnfSqOW/9uDkqKjezTdxZhw==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pretty-ms\": {\n \"version\": \"9.3.0\",\n \"resolved\": \"https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz\",\n \"integrity\": \"sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"parse-ms\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/readdirp\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz\",\n \"integrity\": \"sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 20.19.0\"\n },\n \"funding\": {\n \"type\": \"individual\",\n \"url\": \"https://paulmillr.com/funding/\"\n }\n },\n \"node_modules/resolve-from\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz\",\n \"integrity\": \"sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.59.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz\",\n \"integrity\": \"sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.59.0\",\n \"@rollup/rollup-android-arm64\": \"4.59.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.59.0\",\n \"@rollup/rollup-darwin-x64\": \"4.59.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.59.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.59.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.59.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.59.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.59.0\",\n \"@rollup/rollup-linux-loong64-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-loong64-musl\": \"4.59.0\",\n \"@rollup/rollup-linux-ppc64-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-ppc64-musl\": \"4.59.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.59.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.59.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.59.0\",\n \"@rollup/rollup-openbsd-x64\": \"4.59.0\",\n \"@rollup/rollup-openharmony-arm64\": \"4.59.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.59.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.59.0\",\n \"@rollup/rollup-win32-x64-gnu\": \"4.59.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.59.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/run-jxa\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/run-jxa/-/run-jxa-3.0.0.tgz\",\n \"integrity\": \"sha512-4f2CrY7H+sXkKXJn/cE6qRA3z+NMVO7zvlZ/nUV0e62yWftpiLAfw5eV9ZdomzWd2TXWwEIiGjAT57+lWIzzvA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"execa\": \"^5.1.1\",\n \"macos-version\": \"^6.0.0\",\n \"subsume\": \"^4.0.0\",\n \"type-fest\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/run-jxa/node_modules/execa\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-5.1.1.tgz\",\n \"integrity\": \"sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cross-spawn\": \"^7.0.3\",\n \"get-stream\": \"^6.0.0\",\n \"human-signals\": \"^2.1.0\",\n \"is-stream\": \"^2.0.0\",\n \"merge-stream\": \"^2.0.0\",\n \"npm-run-path\": \"^4.0.1\",\n \"onetime\": \"^5.1.2\",\n \"signal-exit\": \"^3.0.3\",\n \"strip-final-newline\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/run-jxa/node_modules/get-stream\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz\",\n \"integrity\": \"sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/run-jxa/node_modules/human-signals\": {\n \"version\": \"2.1.0\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz\",\n \"integrity\": \"sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==\",\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=10.17.0\"\n }\n },\n \"node_modules/run-jxa/node_modules/is-stream\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz\",\n \"integrity\": \"sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/run-jxa/node_modules/npm-run-path\": {\n \"version\": \"4.0.1\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz\",\n \"integrity\": \"sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/run-jxa/node_modules/signal-exit\": {\n \"version\": \"3.0.7\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz\",\n \"integrity\": \"sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==\",\n \"license\": \"ISC\"\n },\n \"node_modules/run-jxa/node_modules/strip-final-newline\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz\",\n \"integrity\": \"sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"7.7.4\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.7.4.tgz\",\n \"integrity\": \"sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==\",\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n },\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/shebang-command\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",\n \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"shebang-regex\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shebang-regex\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",\n \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/signal-exit\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",\n \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==\",\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/isaacs\"\n }\n },\n \"node_modules/source-map\": {\n \"version\": \"0.7.6\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz\",\n \"integrity\": \"sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">= 12\"\n }\n },\n \"node_modules/strip-final-newline\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz\",\n \"integrity\": \"sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/subsume\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/subsume/-/subsume-4.0.0.tgz\",\n \"integrity\": \"sha512-BWnYJElmHbYZ/zKevy+TG+SsyoFCmRPDHJbR1MzLxkPOv1Jp/4hGhVUtP98s+wZBsBsHwCXvPTP0x287/WMjGg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escape-string-regexp\": \"^5.0.0\",\n \"unique-string\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/sucrase\": {\n \"version\": \"3.35.1\",\n \"resolved\": \"https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz\",\n \"integrity\": \"sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.2\",\n \"commander\": \"^4.0.0\",\n \"lines-and-columns\": \"^1.1.6\",\n \"mz\": \"^2.7.0\",\n \"pirates\": \"^4.0.1\",\n \"tinyglobby\": \"^0.2.11\",\n \"ts-interface-checker\": \"^0.1.9\"\n },\n \"bin\": {\n \"sucrase\": \"bin/sucrase\",\n \"sucrase-node\": \"bin/sucrase-node\"\n },\n \"engines\": {\n \"node\": \">=16 || 14 >=14.17\"\n }\n },\n \"node_modules/system-architecture\": {\n \"version\": \"0.1.0\",\n \"resolved\": \"https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz\",\n \"integrity\": \"sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/thenify\": {\n \"version\": \"3.3.1\",\n \"resolved\": \"https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz\",\n \"integrity\": \"sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"any-promise\": \"^1.0.0\"\n }\n },\n \"node_modules/thenify-all\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz\",\n \"integrity\": \"sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"thenify\": \">= 3.1.0 < 4\"\n },\n \"engines\": {\n \"node\": \">=0.8\"\n }\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.15\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz\",\n \"integrity\": \"sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.5.0\",\n \"picomatch\": \"^4.0.3\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/ts-interface-checker\": {\n \"version\": \"0.1.13\",\n \"resolved\": \"https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz\",\n \"integrity\": \"sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\"\n },\n \"node_modules/tsup\": {\n \"version\": \"8.5.1\",\n \"resolved\": \"https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz\",\n \"integrity\": \"sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"bundle-require\": \"^5.1.0\",\n \"cac\": \"^6.7.14\",\n \"chokidar\": \"^4.0.3\",\n \"consola\": \"^3.4.0\",\n \"debug\": \"^4.4.0\",\n \"esbuild\": \"^0.27.0\",\n \"fix-dts-default-cjs-exports\": \"^1.0.0\",\n \"joycon\": \"^3.1.1\",\n \"picocolors\": \"^1.1.1\",\n \"postcss-load-config\": \"^6.0.1\",\n \"resolve-from\": \"^5.0.0\",\n \"rollup\": \"^4.34.8\",\n \"source-map\": \"^0.7.6\",\n \"sucrase\": \"^3.35.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.11\",\n \"tree-kill\": \"^1.2.2\"\n },\n \"bin\": {\n \"tsup\": \"dist/cli-default.js\",\n \"tsup-node\": \"dist/cli-node.js\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"@microsoft/api-extractor\": \"^7.36.0\",\n \"@swc/core\": \"^1\",\n \"postcss\": \"^8.4.12\",\n \"typescript\": \">=4.5.0\"\n },\n \"peerDependenciesMeta\": {\n \"@microsoft/api-extractor\": {\n \"optional\": true\n },\n \"@swc/core\": {\n \"optional\": true\n },\n \"postcss\": {\n \"optional\": true\n },\n \"typescript\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/tsup/node_modules/chokidar\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz\",\n \"integrity\": \"sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"readdirp\": \"^4.0.1\"\n },\n \"engines\": {\n \"node\": \">= 14.16.0\"\n },\n \"funding\": {\n \"url\": \"https://paulmillr.com/funding/\"\n }\n },\n \"node_modules/tsup/node_modules/readdirp\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz\",\n \"integrity\": \"sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.18.0\"\n },\n \"funding\": {\n \"type\": \"individual\",\n \"url\": \"https://paulmillr.com/funding/\"\n }\n },\n \"node_modules/tsx\": {\n \"version\": \"4.21.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz\",\n \"integrity\": \"sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.27.0\",\n \"get-tsconfig\": \"^4.7.5\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/type-fest\": {\n \"version\": \"2.19.0\",\n \"resolved\": \"https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz\",\n \"integrity\": \"sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==\",\n \"license\": \"(MIT OR CC0-1.0)\",\n \"engines\": {\n \"node\": \">=12.20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.9.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/ufo\": {\n \"version\": \"1.6.3\",\n \"resolved\": \"https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz\",\n \"integrity\": \"sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/undici-types\": {\n \"version\": \"7.18.2\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz\",\n \"integrity\": \"sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/unicorn-magic\": {\n \"version\": \"0.3.0\",\n \"resolved\": \"https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz\",\n \"integrity\": \"sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/unique-string\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz\",\n \"integrity\": \"sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"crypto-random-string\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/which\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",\n \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==\",\n \"license\": \"ISC\",\n \"dependencies\": {\n \"isexe\": \"^2.0.0\"\n },\n \"bin\": {\n \"node-which\": \"bin/node-which\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/yoctocolors\": {\n \"version\": \"2.1.2\",\n \"resolved\": \"https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz\",\n \"integrity\": \"sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n }\n }\n}\n"
},
{
"path": "package.json",
"language": "json",
"sizeBytes": 986,
"tokens": 247,
"content": "{\n \"name\": \"contextpack\",\n \"version\": \"1.0.0\",\n \"description\": \"Bundle your codebase into a single LLM-ready file. Stop copy-pasting files into Claude/ChatGPT.\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/types/index.d.ts\",\n \"bin\": {\n \"contextpack\": \"./dist/cli.js\",\n \"ctx\": \"./dist/cli.js\"\n },\n \"scripts\": {\n \"build\": \"tsup src/index.ts src/cli.ts --format cjs --dts --clean\",\n \"dev\": \"tsx src/cli.ts\",\n \"start\": \"node dist/cli.js\"\n },\n \"keywords\": [\n \"llm\", \"ai\", \"context\", \"codebase\", \"claude\", \"chatgpt\",\n \"openai\", \"developer-tools\", \"cli\", \"typescript\"\n ],\n \"author\": \"\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=16.0.0\"\n },\n \"dependencies\": {\n \"chokidar\": \"^3.6.0\",\n \"clipboardy\": \"^4.0.0\",\n \"chalk\": \"^5.3.0\",\n \"ignore\": \"^5.3.1\",\n \"minimist\": \"^1.2.8\"\n },\n \"devDependencies\": {\n \"@types/minimist\": \"^1.2.5\",\n \"@types/node\": \"^20.0.0\",\n \"tsup\": \"^8.0.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\"\n }\n}"
},
{
"path": "src/cli.ts",
"language": "typescript",
"sizeBytes": 4401,
"tokens": 1050,
"content": "#!/usr/bin/env node\r\nimport * as fs from 'fs';\r\nimport * as path from 'path';\r\nimport minimist from 'minimist';\r\nimport { pack } from './index.js';\r\nimport { watch } from './watcher.js';\r\nimport { ContextPackOptions } from './types.js';\r\nimport { formatTokenCount, getContextWarning } from './tokenEstimator.js';\r\n\r\nconst HELP = `\r\n╔═══════════════════════════════════════════╗\r\n║ contextpack (ctx) ║\r\n║ Bundle your codebase for LLMs instantly ║\r\n╚═══════════════════════════════════════════╝\r\n\r\nUsage:\r\n ctx [directory] [options]\r\n contextpack [directory] [options]\r\n\r\nOptions:\r\n --out, -o Output file path (default: context.md)\r\n --format, -f Output format: markdown | json (default: markdown)\r\n --include, -i Only include paths matching pattern (repeatable)\r\n --exclude, -e Exclude paths matching pattern (repeatable)\r\n --copy, -c Copy output to clipboard\r\n --watch, -w Watch for changes and repack automatically\r\n --stats, -s Print stats only, no file contents\r\n --max-size Max file size in KB to include (default: 500)\r\n --help, -h Show this help message\r\n\r\nExamples:\r\n ctx .\r\n ctx ./src --out context.md\r\n ctx . --format json --out context.json\r\n ctx . --include src --exclude tests\r\n ctx . --copy\r\n ctx . --watch --out context.md\r\n ctx . --stats\r\n`;\r\n\r\nasync function main() {\r\n const argv = minimist(process.argv.slice(2), {\r\n string: ['out', 'format', 'include', 'exclude'],\r\n boolean: ['copy', 'watch', 'stats', 'help'],\r\n alias: {\r\n o: 'out',\r\n f: 'format',\r\n i: 'include',\r\n e: 'exclude',\r\n c: 'copy',\r\n w: 'watch',\r\n s: 'stats',\r\n h: 'help',\r\n },\r\n default: {\r\n format: 'markdown',\r\n copy: false,\r\n watch: false,\r\n stats: false,\r\n },\r\n });\r\n\r\n if (argv.help) {\r\n console.log(HELP);\r\n process.exit(0);\r\n }\r\n\r\n const dir = argv._[0] || '.';\r\n\r\n if (!fs.existsSync(dir)) {\r\n console.error(`❌ Directory not found: ${dir}`);\r\n process.exit(1);\r\n }\r\n\r\n const format = argv.format === 'json' ? 'json' : 'markdown';\r\n const defaultOut = format === 'json' ? 'context.json' : 'context.md';\r\n const outPath = path.resolve(argv.out || defaultOut);\r\n\r\n const options: ContextPackOptions = {\r\n dir,\r\n format,\r\n out: outPath,\r\n copy: argv.copy,\r\n watch: argv.watch,\r\n stats: argv.stats,\r\n maxFileSize: (argv['max-size'] || 500) * 1024,\r\n include: argv.include\r\n ? Array.isArray(argv.include) ? argv.include : [argv.include]\r\n : undefined,\r\n exclude: argv.exclude\r\n ? Array.isArray(argv.exclude) ? argv.exclude : [argv.exclude]\r\n : undefined,\r\n };\r\n\r\n // Watch mode\r\n if (options.watch) {\r\n watch(options, outPath);\r\n return;\r\n }\r\n\r\n // Single pack\r\n console.log(`\\n📦 Packing ${path.resolve(dir)}...\\n`);\r\n\r\n try {\r\n const { output, result } = pack(options);\r\n\r\n // Stats only mode\r\n if (options.stats) {\r\n console.log(`📊 Stats`);\r\n console.log(` Files: ${result.totalFiles}`);\r\n console.log(` Size: ${(result.totalSizeBytes / 1024).toFixed(1)} KB`);\r\n console.log(` Tokens: ${formatTokenCount(result.totalTokens)}`);\r\n const warning = getContextWarning(result.totalTokens);\r\n if (warning) console.log(`\\n ${warning}`);\r\n console.log('');\r\n return;\r\n }\r\n\r\n // Write output file\r\n fs.writeFileSync(outPath, output, 'utf-8');\r\n console.log(`✅ Done!`);\r\n console.log(` Files: ${result.totalFiles}`);\r\n console.log(` Tokens: ${formatTokenCount(result.totalTokens)}`);\r\n console.log(` Output: ${outPath}`);\r\n\r\n const warning = getContextWarning(result.totalTokens);\r\n if (warning) console.log(`\\n ${warning}`);\r\n\r\n // Copy to clipboard\r\n if (options.copy) {\r\n try {\r\n const { default: clipboardy } = await import('clipboardy');\r\n await clipboardy.write(output);\r\n console.log(`\\n📋 Copied to clipboard!`);\r\n } catch {\r\n console.warn(`\\n⚠️ Could not copy to clipboard`);\r\n }\r\n }\r\n\r\n console.log('');\r\n } catch (err) {\r\n console.error(`❌ Failed to pack:`, err);\r\n process.exit(1);\r\n }\r\n}\r\n\r\nmain();"
},
{
"path": "src/formatter.ts",
"language": "typescript",
"sizeBytes": 2445,
"tokens": 609,
"content": "import { PackResult, ContextPackOptions } from './types.js';\r\nimport { formatTokenCount, getContextWarning } from './tokenEstimator.js';\r\n\r\nfunction formatBytes(bytes: number): string {\r\n if (bytes < 1024) return `${bytes} B`;\r\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\r\n return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;\r\n}\r\n\r\nexport function formatMarkdown(result: PackResult, options: ContextPackOptions): string {\r\n const warning = getContextWarning(result.totalTokens);\r\n const lines: string[] = [];\r\n\r\n // Header\r\n lines.push('# ContextPack');\r\n lines.push('');\r\n lines.push(`> Generated by [contextpack](https://github.com/HalxDocs/contextpack) — ${result.generatedAt}`);\r\n lines.push('');\r\n\r\n // Stats\r\n lines.push('## 📊 Stats');\r\n lines.push('');\r\n lines.push(`| Property | Value |`);\r\n lines.push(`|----------|-------|`);\r\n lines.push(`| Source | \\`${result.sourceDir}\\` |`);\r\n lines.push(`| Files | ${result.totalFiles} |`);\r\n lines.push(`| Total Size | ${formatBytes(result.totalSizeBytes)} |`);\r\n lines.push(`| Estimated Tokens | ${formatTokenCount(result.totalTokens)} |`);\r\n lines.push('');\r\n\r\n if (warning) {\r\n lines.push(`> ${warning}`);\r\n lines.push('');\r\n }\r\n\r\n // File Tree\r\n lines.push('## 🗂 File Tree');\r\n lines.push('');\r\n lines.push('```');\r\n lines.push(result.fileTree);\r\n lines.push('```');\r\n lines.push('');\r\n\r\n // Files\r\n lines.push('## 📄 Files');\r\n lines.push('');\r\n\r\n for (const file of result.files) {\r\n lines.push(`### \\`${file.relativePath}\\``);\r\n lines.push('');\r\n lines.push(`> ${formatBytes(file.sizeBytes)} · ${formatTokenCount(file.tokens)}`);\r\n lines.push('');\r\n lines.push(`\\`\\`\\`${file.language}`);\r\n lines.push(file.content);\r\n lines.push('```');\r\n lines.push('');\r\n }\r\n\r\n return lines.join('\\n');\r\n}\r\n\r\nexport function formatJSON(result: PackResult): string {\r\n return JSON.stringify(\r\n {\r\n meta: {\r\n generatedAt: result.generatedAt,\r\n sourceDir: result.sourceDir,\r\n totalFiles: result.totalFiles,\r\n totalSizeBytes: result.totalSizeBytes,\r\n totalTokens: result.totalTokens,\r\n },\r\n fileTree: result.fileTree,\r\n files: result.files.map(f => ({\r\n path: f.relativePath,\r\n language: f.language,\r\n sizeBytes: f.sizeBytes,\r\n tokens: f.tokens,\r\n content: f.content,\r\n })),\r\n },\r\n null,\r\n 2\r\n );\r\n}"
},
{
"path": "src/index.ts",
"language": "typescript",
"sizeBytes": 1356,
"tokens": 339,
"content": "import * as path from 'path';\r\nimport { walkDir, buildFileTree } from './walker.js';\r\nimport { formatMarkdown, formatJSON } from './formatter.js';\r\nimport { ContextPackOptions, PackResult } from './types.js';\r\n\r\nexport function pack(options: ContextPackOptions): { output: string; result: PackResult } {\r\n const dir = path.resolve(options.dir);\r\n\r\n // Walk the directory and collect files\r\n const files = walkDir(dir, {\r\n exclude: options.exclude,\r\n maxFileSize: options.maxFileSize,\r\n });\r\n\r\n // Filter by include patterns if provided\r\n const filteredFiles = options.include\r\n ? files.filter(f =>\r\n options.include!.some(pattern => f.relativePath.includes(pattern))\r\n )\r\n : files;\r\n\r\n // Build the result object\r\n const result: PackResult = {\r\n files: filteredFiles,\r\n fileTree: buildFileTree(filteredFiles),\r\n totalFiles: filteredFiles.length,\r\n totalSizeBytes: filteredFiles.reduce((sum, f) => sum + f.sizeBytes, 0),\r\n totalTokens: filteredFiles.reduce((sum, f) => sum + f.tokens, 0),\r\n generatedAt: new Date().toISOString(),\r\n sourceDir: dir,\r\n };\r\n\r\n // Format output\r\n const output =\r\n options.format === 'json'\r\n ? formatJSON(result)\r\n : formatMarkdown(result, options);\r\n\r\n return { output, result };\r\n}\r\n\r\nexport { ContextPackOptions, PackResult, FileEntry } from './types.js';"
},
{
"path": "src/tokenEstimator.ts",
"language": "typescript",
"sizeBytes": 917,
"tokens": 225,
"content": "// It approximates token count the same way OpenAI/Claude tokenizers work\r\n// ~4 characters per token is the widely accepted estimate\r\n\r\nexport function estimateTokens(text: string): number {\r\n return Math.ceil(text.length / 4);\r\n}\r\n\r\nexport function formatTokenCount(tokens: number): string {\r\n if (tokens < 1000) return `${tokens} tokens`;\r\n if (tokens < 1_000_000) return `${(tokens / 1000).toFixed(1)}k tokens`;\r\n return `${(tokens / 1_000_000).toFixed(2)}M tokens`;\r\n}\r\n\r\nexport function getContextWarning(tokens: number): string | null {\r\n if (tokens > 2_000_000) return '⛔ Exceeds most LLM context windows (2M+)';\r\n if (tokens > 1_000_000) return '⚠️ Very large — only Gemini 1.5 / Claude 3 can handle this';\r\n if (tokens > 200_000) return '⚠️ Large — works with Claude 3, GPT-4 Turbo';\r\n if (tokens > 128_000) return '⚠️ Fits Claude 3 but may exceed GPT-4';\r\n return null;\r\n}"
},
{
"path": "src/types.ts",
"language": "typescript",
"sizeBytes": 612,
"tokens": 153,
"content": "export interface ContextPackOptions {\r\n dir: string;\r\n include?: string[];\r\n exclude?: string[];\r\n format: 'markdown' | 'json';\r\n out?: string;\r\n copy: boolean;\r\n watch: boolean;\r\n stats: boolean;\r\n maxFileSize: number;\r\n}\r\n\r\nexport interface FileEntry {\r\n path: string;\r\n relativePath: string;\r\n extension: string;\r\n language: string;\r\n content: string;\r\n sizeBytes: number;\r\n tokens: number;\r\n}\r\n\r\nexport interface PackResult {\r\n files: FileEntry[];\r\n fileTree: string;\r\n totalFiles: number;\r\n totalSizeBytes: number;\r\n totalTokens: number;\r\n generatedAt: string;\r\n sourceDir: string;\r\n}"
},
{
"path": "src/walker.ts",
"language": "typescript",
"sizeBytes": 3976,
"tokens": 993,
"content": "import * as fs from 'fs';\r\nimport * as path from 'path';\r\nimport ignore, { Ignore } from 'ignore';\r\nimport { FileEntry } from './types.js';\r\nimport { estimateTokens } from './tokenEstimator.js';\r\n\r\nconst LANGUAGE_MAP: Record<string, string> = {\r\n ts: 'typescript', tsx: 'typescript', js: 'javascript', jsx: 'javascript',\r\n py: 'python', rb: 'ruby', go: 'go', rs: 'rust', java: 'java',\r\n cpp: 'cpp', c: 'c', cs: 'csharp', php: 'php', swift: 'swift',\r\n kt: 'kotlin', scala: 'scala', html: 'html', css: 'css', scss: 'scss',\r\n json: 'json', yaml: 'yaml', yml: 'yaml', toml: 'toml', md: 'markdown',\r\n sh: 'bash', bash: 'bash', zsh: 'bash', sql: 'sql', graphql: 'graphql',\r\n vue: 'vue', svelte: 'svelte', xml: 'xml', dockerfile: 'dockerfile',\r\n};\r\n\r\nconst ALWAYS_IGNORE = [\r\n 'node_modules', '.git', 'dist', 'build', '.next', '.nuxt',\r\n 'coverage', '.cache', '.turbo', 'out', '.vercel', '.netlify',\r\n '*.lock', '*.log', '*.map', '*.min.js', '*.min.css',\r\n '*.jpg', '*.jpeg', '*.png', '*.gif', '*.ico', '*.svg',\r\n '*.mp4', '*.mp3', '*.zip', '*.tar', '*.gz', '*.exe',\r\n '*.pdf', '*.ttf', '*.woff', '*.woff2', '*.eot',\r\n];\r\n\r\nfunction getLanguage(ext: string, filename: string): string {\r\n if (filename.toLowerCase() === 'dockerfile') return 'dockerfile';\r\n return LANGUAGE_MAP[ext.toLowerCase()] || ext || 'text';\r\n}\r\n\r\nfunction buildIgnore(dir: string, extraExcludes: string[]): Ignore {\r\n const ig = ignore();\r\n ig.add(ALWAYS_IGNORE);\r\n ig.add(extraExcludes);\r\n\r\n const gitignorePath = path.join(dir, '.gitignore');\r\n if (fs.existsSync(gitignorePath)) {\r\n const gitignoreContent = fs.readFileSync(gitignorePath, 'utf-8');\r\n ig.add(gitignoreContent);\r\n }\r\n\r\n return ig;\r\n}\r\n\r\nexport function walkDir(\r\n dir: string,\r\n options: { exclude?: string[]; maxFileSize?: number }\r\n): FileEntry[] {\r\n const ig = buildIgnore(dir, options.exclude || []);\r\n const maxSize = options.maxFileSize ?? 500 * 1024; // 500kb default\r\n const files: FileEntry[] = [];\r\n\r\n function walk(currentDir: string) {\r\n const entries = fs.readdirSync(currentDir, { withFileTypes: true });\r\n\r\n for (const entry of entries) {\r\n const fullPath = path.join(currentDir, entry.name);\r\n const relativePath = path.relative(dir, fullPath).replace(/\\\\/g, '/');\r\n\r\n if (ig.ignores(relativePath)) continue;\r\n\r\n if (entry.isDirectory()) {\r\n walk(fullPath);\r\n } else if (entry.isFile()) {\r\n const stat = fs.statSync(fullPath);\r\n if (stat.size > maxSize) continue;\r\n\r\n let content: string;\r\n try {\r\n content = fs.readFileSync(fullPath, 'utf-8');\r\n } catch {\r\n continue; // skip binary files that can't be read as utf-8\r\n }\r\n\r\n const ext = path.extname(entry.name).replace('.', '');\r\n const language = getLanguage(ext, entry.name);\r\n\r\n files.push({\r\n path: fullPath,\r\n relativePath,\r\n extension: ext,\r\n language,\r\n content,\r\n sizeBytes: stat.size,\r\n tokens: estimateTokens(content),\r\n });\r\n }\r\n }\r\n }\r\n\r\n walk(dir);\r\n return files.sort((a, b) => a.relativePath.localeCompare(b.relativePath));\r\n}\r\n\r\nexport function buildFileTree(files: FileEntry[]): string {\r\n const lines: string[] = [];\r\n const dirs = new Set<string>();\r\n\r\n for (const file of files) {\r\n const parts = file.relativePath.split('/');\r\n for (let i = 1; i < parts.length; i++) {\r\n dirs.add(parts.slice(0, i).join('/'));\r\n }\r\n }\r\n\r\n const allPaths = [\r\n ...Array.from(dirs).map(d => ({ path: d, isDir: true })),\r\n ...files.map(f => ({ path: f.relativePath, isDir: false })),\r\n ].sort((a, b) => a.path.localeCompare(b.path));\r\n\r\n for (const item of allPaths) {\r\n const depth = item.path.split('/').length - 1;\r\n const indent = ' '.repeat(depth);\r\n const name = item.path.split('/').pop()!;\r\n lines.push(`${indent}${item.isDir ? '📁' : '📄'} ${name}`);\r\n }\r\n\r\n return lines.join('\\n');\r\n}"
},
{
"path": "src/watcher.ts",
"language": "typescript",
"sizeBytes": 1721,
"tokens": 427,
"content": "import * as fs from 'fs';\r\nimport * as path from 'path';\r\nimport chokidar from 'chokidar';\r\nimport { pack } from './index.js';\r\nimport { ContextPackOptions } from './types.js';\r\nimport { formatTokenCount } from './tokenEstimator.js';\r\n\r\nexport function watch(options: ContextPackOptions, outPath: string) {\r\n const dir = path.resolve(options.dir);\r\n\r\n console.log(`\\n👀 Watching ${dir} for changes...`);\r\n console.log(`📦 Output: ${outPath}`);\r\n console.log(`Press Ctrl+C to stop\\n`);\r\n\r\n function rebuild(changedPath?: string) {\r\n if (changedPath) {\r\n const rel = path.relative(dir, changedPath).replace(/\\\\/g, '/');\r\n console.log(`🔄 Change detected: ${rel}`);\r\n }\r\n\r\n try {\r\n const { output, result } = pack(options);\r\n fs.writeFileSync(outPath, output, 'utf-8');\r\n\r\n const time = new Date().toLocaleTimeString();\r\n console.log(\r\n `✅ [${time}] Repacked → ${result.totalFiles} files · ${formatTokenCount(result.totalTokens)}`\r\n );\r\n } catch (err) {\r\n console.error(`❌ Error repacking:`, err);\r\n }\r\n }\r\n\r\n // Initial build\r\n rebuild();\r\n\r\n // Watch for changes\r\n const watcher = chokidar.watch(dir, {\r\n ignored: [\r\n /(^|[\\/\\\\])\\../, // dotfiles\r\n /node_modules/,\r\n /dist/,\r\n /\\.git/,\r\n outPath, // ignore the output file itself\r\n ],\r\n persistent: true,\r\n ignoreInitial: true,\r\n });\r\n\r\n watcher\r\n .on('add', rebuild)\r\n .on('change', rebuild)\r\n .on('unlink', rebuild)\r\n .on('addDir', rebuild)\r\n .on('unlinkDir', rebuild);\r\n\r\n // Graceful shutdown\r\n process.on('SIGINT', () => {\r\n console.log('\\n\\n👋 Stopping watcher...');\r\n watcher.close();\r\n process.exit(0);\r\n });\r\n}"
},
{
"path": "tsconfig.json",
"language": "json",
"sizeBytes": 384,
"tokens": 96,
"content": "{\r\n \"compilerOptions\": {\r\n \"target\": \"ES2020\",\r\n \"module\": \"NodeNext\",\r\n \"moduleResolution\": \"NodeNext\",\r\n \"outDir\": \"dist\",\r\n \"rootDir\": \"src\",\r\n \"strict\": true,\r\n \"esModuleInterop\": true,\r\n \"skipLibCheck\": true,\r\n \"declaration\": true,\r\n \"declarationDir\": \"dist/types\"\r\n },\r\n \"include\": [\"src/**/*\"],\r\n \"exclude\": [\"node_modules\", \"dist\", \"test\"]\r\n}"
}
]
}