knarr 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +163 -0
- package/dist/add-ODK52RZI.mjs +3 -0
- package/dist/bell-YD6IWNXO.mjs +2 -0
- package/dist/check-YVEJEI2G.mjs +6 -0
- package/dist/chokidar-LVDD2IK4.mjs +4 -0
- package/dist/chunk-23HXXAGG.mjs +5 -0
- package/dist/chunk-2EZDTBUU.mjs +3 -0
- package/dist/chunk-2GDRDQA5.mjs +3 -0
- package/dist/chunk-2QPLXLJW.mjs +3 -0
- package/dist/chunk-2VCW5RWI.mjs +3 -0
- package/dist/chunk-3KNUBUPH.mjs +3 -0
- package/dist/chunk-7DZPDPP6.mjs +3 -0
- package/dist/chunk-7HVPEBK5.mjs +7 -0
- package/dist/chunk-7JG555TZ.mjs +3 -0
- package/dist/chunk-B3DZ5HVQ.mjs +3 -0
- package/dist/chunk-BS4VKVYH.mjs +3 -0
- package/dist/chunk-FU7FCNTW.mjs +3 -0
- package/dist/chunk-FUINO5RD.mjs +3 -0
- package/dist/chunk-HQ7NKBQW.mjs +4 -0
- package/dist/chunk-IM555H3S.mjs +4 -0
- package/dist/chunk-KXLQGVT2.mjs +13 -0
- package/dist/chunk-MBKCCWSD.mjs +3 -0
- package/dist/chunk-NBSJGM2X.mjs +3 -0
- package/dist/chunk-OLUZ7T7G.mjs +3 -0
- package/dist/chunk-OXI2KGCW.mjs +14 -0
- package/dist/chunk-SFLWVTJC.mjs +3 -0
- package/dist/chunk-SYADAYF4.mjs +3 -0
- package/dist/chunk-TEFMLGCB.mjs +3 -0
- package/dist/chunk-U5ZZAYNU.mjs +13 -0
- package/dist/chunk-V2ED74ZQ.mjs +3 -0
- package/dist/chunk-XQPVRRTN.mjs +3 -0
- package/dist/chunk-XQVMCMO7.mjs +7 -0
- package/dist/chunk-YZCBBQCH.mjs +19 -0
- package/dist/chunk-Z22BYXWQ.mjs +3 -0
- package/dist/clean-XMLDIZDZ.mjs +3 -0
- package/dist/cli.mjs +10 -0
- package/dist/dev-7L35BV6M.mjs +3 -0
- package/dist/doctor-4TTAYNGW.mjs +4 -0
- package/dist/fs-35635IS7.mjs +2 -0
- package/dist/history-XUZSDCNE.mjs +2 -0
- package/dist/index.d.ts +434 -0
- package/dist/index.mjs +3530 -0
- package/dist/init-OBJFQ6OB.mjs +7 -0
- package/dist/list-AQKUBZ2I.mjs +5 -0
- package/dist/migrate-7B7ACQHY.mjs +8 -0
- package/dist/preflight-TVJFHRI2.mjs +2 -0
- package/dist/publish-Q4JYQPQP.mjs +3 -0
- package/dist/push-NHCPN6MO.mjs +3 -0
- package/dist/remove-PDERBH66.mjs +2 -0
- package/dist/reset-3FXWAAPQ.mjs +3 -0
- package/dist/restore-YGPO42W4.mjs +11 -0
- package/dist/rollback-FKNGLGFC.mjs +3 -0
- package/dist/status-3VUPPR5D.mjs +4 -0
- package/dist/tailwind-source-ND5FE6PQ.mjs +5 -0
- package/dist/topo-sort-WEIVPJKN.mjs +2 -0
- package/dist/tracker-R4ZZIDJV.mjs +2 -0
- package/dist/update-QPBWYDSG.mjs +3 -0
- package/dist/use-NKLXGPIZ.mjs +3 -0
- package/dist/vite-config-URP2SYRQ.mjs +2 -0
- package/dist/vite-plugin.d.ts +5 -0
- package/dist/vite-plugin.mjs +215 -0
- package/dist/watch-orchestrator-F6S5WQQX.mjs +3 -0
- package/dist/watcher-PTPUN2HE.mjs +3 -0
- package/dist/webpack-plugin.d.ts +47 -0
- package/dist/webpack-plugin.mjs +143 -0
- package/dist/workspace-L5CGPK7U.mjs +2 -0
- package/dist/xxhash-wasm-DTW44IIQ.mjs +3 -0
- package/package.json +126 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Knarr contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/oleg-kuibar/knarr/master/docs/assets/knarr-wordmark.png" width="360" alt="Knarr logo" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://www.npmjs.com/package/knarr"><img src="https://img.shields.io/npm/v/knarr?color=blue" alt="npm version" /></a>
|
|
7
|
+
<a href="https://www.npmjs.com/package/knarr"><img src="https://img.shields.io/npm/dm/knarr" alt="npm downloads" /></a>
|
|
8
|
+
<a href="https://www.npmjs.com/package/knarr"><img src="https://img.shields.io/npm/unpacked-size/knarr" alt="unpacked size" /></a>
|
|
9
|
+
<a href="https://bundlephobia.com/package/knarr"><img src="https://badgen.net/bundlephobia/minzip/knarr" alt="minzipped size" /></a>
|
|
10
|
+
<br>
|
|
11
|
+
<a href="https://github.com/oleg-kuibar/knarr/actions/workflows/ci.yml"><img src="https://github.com/oleg-kuibar/knarr/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
|
|
12
|
+
<a href="https://github.com/oleg-kuibar/knarr/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="license" /></a>
|
|
13
|
+
<img src="https://img.shields.io/badge/node-%3E%3D22.12-brightgreen" alt="node version" />
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
# Knarr
|
|
17
|
+
|
|
18
|
+
Test local npm packages in real apps without `npm link`, duplicate React, or dirty `package.json` diffs.
|
|
19
|
+
|
|
20
|
+
Knarr copies the built package output directly into the consumer app's `node_modules/`, so your package behaves like the version you would publish to npm. It works well with pnpm, Vite, Next.js, Webpack/rspack, Turbopack, and teams that want local package overrides to stay out of git.
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
cd my-app
|
|
24
|
+
npx knarr use ../my-lib
|
|
25
|
+
|
|
26
|
+
cd ../my-lib
|
|
27
|
+
knarr dev
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
If you have not installed Knarr globally, use `npx knarr dev` for the second command too.
|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
## Who this is for
|
|
35
|
+
|
|
36
|
+
- Library and design-system authors testing packages inside real consumer apps
|
|
37
|
+
- React developers avoiding duplicate React instances and invalid hook calls from symlinks
|
|
38
|
+
- pnpm users where `npm link` or yalc do not match the installed dependency tree
|
|
39
|
+
- Teams that want clean git diffs while iterating on local packages
|
|
40
|
+
|
|
41
|
+
## Why Knarr?
|
|
42
|
+
|
|
43
|
+
`npm link` creates symlinks that can break module resolution: duplicate React instances, peer dependency mismatches, and bundlers that cannot follow links outside the project root. yalc improves this by copying files, but it rewrites consumer dependency specs and usually needs extra watch tooling.
|
|
44
|
+
|
|
45
|
+
Knarr keeps your `package.json` and lockfile clean. It publishes a local package into `~/.knarr/store/`, injects that package into every registered consumer, and can watch, rebuild, and push changes continuously.
|
|
46
|
+
|
|
47
|
+
## Quick Start
|
|
48
|
+
|
|
49
|
+
One command links a local package into the app you are testing:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# In your app
|
|
53
|
+
cd my-app
|
|
54
|
+
npx knarr use ../my-lib
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Then run the continuous package dev loop from the library:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# In your library
|
|
61
|
+
cd ../my-lib
|
|
62
|
+
knarr dev
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
If Knarr is not installed globally, run `npx knarr dev` instead.
|
|
66
|
+
|
|
67
|
+
That is the everyday loop: edit `my-lib`, Knarr rebuilds it, pushes changed files into `my-app/node_modules/`, and your bundler sees the update.
|
|
68
|
+
|
|
69
|
+
If you prefer the explicit steps:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
cd my-lib
|
|
73
|
+
pnpm build
|
|
74
|
+
knarr publish
|
|
75
|
+
|
|
76
|
+
cd ../my-app
|
|
77
|
+
knarr add my-lib
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## How It Works
|
|
81
|
+
|
|
82
|
+
```mermaid
|
|
83
|
+
graph LR
|
|
84
|
+
A["my-lib/"] -- "knarr publish" --> B["~/.knarr/store/<br/>my-lib@1.0.0"]
|
|
85
|
+
B -- "knarr use ../my-lib<br/>or knarr add my-lib" --> C["app/node_modules/<br/>my-lib/"]
|
|
86
|
+
B -- "knarr push" --> D["app-2/node_modules/<br/>my-lib/"]
|
|
87
|
+
|
|
88
|
+
style A fill:#2e7d32,stroke:#66bb6a,color:#e8f5e9
|
|
89
|
+
style B fill:#1565c0,stroke:#64b5f6,color:#e3f2fd
|
|
90
|
+
style C fill:#e65100,stroke:#ffb74d,color:#fff3e0
|
|
91
|
+
style D fill:#e65100,stroke:#ffb74d,color:#fff3e0
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
1. `publish` copies built files to a local store at `~/.knarr/store/`
|
|
95
|
+
2. `use` publishes from a local path and links it into the current app
|
|
96
|
+
3. `add` links an already-published package from the store
|
|
97
|
+
4. `push` publishes and copies to all registered consumers
|
|
98
|
+
5. `dev` watches, builds, publishes, and pushes continuously
|
|
99
|
+
|
|
100
|
+
## At A Glance
|
|
101
|
+
|
|
102
|
+
| | npm link | yalc | Knarr |
|
|
103
|
+
| ---------------------- | ----------------------- | --------------------------- | ------------------- |
|
|
104
|
+
| Mechanism | Symlinks | Copy + package.json rewrite | Copy only |
|
|
105
|
+
| Module resolution | Broken (dual instances) | Works | Works |
|
|
106
|
+
| Git contamination | None | package.json + .yalc/ | None |
|
|
107
|
+
| Bundler HMR | Often broken | Varies | Works |
|
|
108
|
+
| pnpm support | Fragile | Limited | Full |
|
|
109
|
+
| Watch mode | None | External | Built-in |
|
|
110
|
+
| Survives `npm install` | No | No | `knarr restore` |
|
|
111
|
+
| Incremental sync | N/A | Full copy each time | mtime + xxhash diff |
|
|
112
|
+
|
|
113
|
+
See [detailed comparison](docs/comparison.md) for a deeper breakdown.
|
|
114
|
+
|
|
115
|
+
## Migrate From yalc In 60 Seconds
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
cd my-app
|
|
119
|
+
npx knarr migrate
|
|
120
|
+
npx knarr use ../my-lib
|
|
121
|
+
|
|
122
|
+
cd ../my-lib
|
|
123
|
+
knarr dev
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
See [Migrating from yalc](docs/migrating-from-yalc.md) for the full guide.
|
|
127
|
+
|
|
128
|
+
## Install
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
pnpm add -g knarr # or npm, yarn, bun
|
|
132
|
+
npx knarr init # one-off setup for a consumer project
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Performance Notes
|
|
136
|
+
|
|
137
|
+
knarr uses CoW reflinks for instant copy-on-write on APFS/btrfs/ReFS, with automatic fallback. Reflink support is probed once per volume and cached. Incremental sync checks size and mtime first, then falls back to xxhash only when needed, so unchanged files are skipped quickly.
|
|
138
|
+
|
|
139
|
+
## Documentation
|
|
140
|
+
|
|
141
|
+
- [Getting Started](docs/getting-started.md)
|
|
142
|
+
- [Commands](docs/commands.md)
|
|
143
|
+
- [Comparison](docs/comparison.md)
|
|
144
|
+
- [Troubleshooting](docs/troubleshooting.md)
|
|
145
|
+
- [Examples](examples/)
|
|
146
|
+
- [Contributing](CONTRIBUTING.md)
|
|
147
|
+
|
|
148
|
+
Additional guides for bundlers, CI, monorepos, internals, and the experimental programmatic API live in [docs/](docs/).
|
|
149
|
+
|
|
150
|
+
## Acknowledgments
|
|
151
|
+
|
|
152
|
+
Knarr is built on top of excellent open-source projects:
|
|
153
|
+
|
|
154
|
+
- [chokidar](https://github.com/paulmillr/chokidar) - file watching
|
|
155
|
+
- [xxhash-wasm](https://github.com/nicolo-ribaudo/xxhash-wasm-legacy) - fast file hashing
|
|
156
|
+
- [citty](https://github.com/unjs/citty) - CLI framework
|
|
157
|
+
- [tsup](https://github.com/egoist/tsup) - TypeScript bundler
|
|
158
|
+
- [vitest](https://vitest.dev) - test runner
|
|
159
|
+
- [Vite](https://vite.dev) - frontend tooling
|
|
160
|
+
|
|
161
|
+
## License
|
|
162
|
+
|
|
163
|
+
[MIT](LICENSE)
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {a}from'./chunk-OXI2KGCW.mjs';import'./chunk-IM555H3S.mjs';import'./chunk-V2ED74ZQ.mjs';import'./chunk-XQVMCMO7.mjs';import'./chunk-YZCBBQCH.mjs';import'./chunk-TEFMLGCB.mjs';import'./chunk-U5ZZAYNU.mjs';import'./chunk-KXLQGVT2.mjs';import'./chunk-HQ7NKBQW.mjs';import {a as a$1}from'./chunk-MBKCCWSD.mjs';import {b}from'./chunk-BS4VKVYH.mjs';import'./chunk-7HVPEBK5.mjs';import'./chunk-OLUZ7T7G.mjs';import'./chunk-Z22BYXWQ.mjs';import'./chunk-3KNUBUPH.mjs';import'./chunk-23HXXAGG.mjs';import'./chunk-NBSJGM2X.mjs';import'./chunk-B3DZ5HVQ.mjs';import'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var s={meta:{name:"add",description:"Link a package from the Knarr store into this project"},args:{package:{type:"positional",description:"Package name to add",required:true},from:{type:"string",description:"Path to package source (will publish first)"},yes:{type:"boolean",alias:"y",description:"Auto-accept prompts (install missing deps, etc.)",default:false}},async run({args:e}){b(),await a({packageArg:e.package,from:e.from,yes:e.yes,timer:new a$1});}};export{s as default};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {a as a$1}from'./chunk-XQPVRRTN.mjs';import {b,a as a$2}from'./chunk-BS4VKVYH.mjs';import'./chunk-7HVPEBK5.mjs';import'./chunk-NBSJGM2X.mjs';import {a,b as b$1}from'./chunk-B3DZ5HVQ.mjs';import {c}from'./chunk-2VCW5RWI.mjs';import {resolve}from'path';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var o=c(a(),1);var y={meta:{name:"check",description:"Validate package configuration (exports, types, entry points)"},args:{dir:{type:"positional",description:"Package directory (default: current directory)",required:false}},async run({args:l}){b();let p=resolve(l.dir||"."),s=await a$1(p);if(s.length===0){b$1.success("All pre-flight checks passed"),a$2({issues:[],passed:true});return}let t=s.filter(e=>e.severity==="error"),i=s.filter(e=>e.severity==="warn");b$1.info(`Found ${s.length} issue(s):
|
|
4
|
+
`);for(let e of t)b$1.log(` ${o.default.red("ERROR")} ${o.default.dim(`[${e.code}]`)} ${e.message}`);for(let e of i)b$1.log(` ${o.default.yellow("WARN")} ${o.default.dim(`[${e.code}]`)} ${e.message}`);t.length>0?b$1.error(`
|
|
5
|
+
${t.length} error(s), ${i.length} warning(s)`):b$1.warn(`
|
|
6
|
+
${i.length} warning(s)`),a$2({issues:s,passed:t.length===0});}};export{y as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {a}from'./chunk-2VCW5RWI.mjs';import {EventEmitter}from'events';import {unwatchFile,watchFile,watch,stat as stat$1}from'fs';import {lstat,stat,readdir,realpath,open}from'fs/promises';import*as u from'path';import {resolve,join,relative,sep}from'path';import {Readable}from'stream';import {type}from'os';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var g={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},k={root:".",fileFilter:a(r=>true,"fileFilter"),directoryFilter:a(r=>true,"directoryFilter"),type:g.FILE_TYPE,lstat:false,depth:2147483648,alwaysStat:false,highWaterMark:4096};Object.freeze(k);var J="READDIRP_RECURSIVE_ERROR",gt=new Set(["ENOENT","EPERM","EACCES","ELOOP",J]),B=[g.DIR_TYPE,g.EVERYTHING_TYPE,g.FILE_DIR_TYPE,g.FILE_TYPE],yt=new Set([g.DIR_TYPE,g.EVERYTHING_TYPE,g.FILE_DIR_TYPE]),Pt=new Set([g.EVERYTHING_TYPE,g.FILE_DIR_TYPE,g.FILE_TYPE]),Rt=a(r=>gt.has(r.code),"isNormalFlowError"),bt=process.platform==="win32",$=a(r=>true,"emptyFn"),q=a(r=>{if(r===void 0)return $;if(typeof r=="function")return r;if(typeof r=="string"){let t=r.trim();return e=>e.basename===t}if(Array.isArray(r)){let t=r.map(e=>e.trim());return e=>t.some(i=>e.basename===i)}return $},"normalizeFilter"),L=class extends Readable{static{a(this,"ReaddirpStream");}parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;constructor(t={}){super({objectMode:true,autoDestroy:true,highWaterMark:t.highWaterMark});let e={...k,...t},{root:i,type:s}=e;this._fileFilter=q(e.fileFilter),this._directoryFilter=q(e.directoryFilter);let n=e.lstat?lstat:stat;bt?this._stat=h=>n(h,{bigint:true}):this._stat=n,this._maxDepth=e.depth!=null&&Number.isSafeInteger(e.depth)?e.depth:k.depth,this._wantsDir=s?yt.has(s):false,this._wantsFile=s?Pt.has(s):false,this._wantsEverything=s===g.EVERYTHING_TYPE,this._root=resolve(i),this._isDirent=!e.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(i,1)],this.reading=false,this.parent=void 0;}async _read(t){if(!this.reading){this.reading=true;try{for(;!this.destroyed&&t>0;){let e=this.parent,i=e&&e.files;if(i&&i.length>0){let{path:s,depth:n}=e,h=i.splice(0,t).map(a=>this._formatEntry(a,s)),o=await Promise.all(h);for(let a of o){if(!a)continue;if(this.destroyed)return;let c=await this._getEntryType(a);c==="directory"&&this._directoryFilter(a)?(n<=this._maxDepth&&this.parents.push(this._exploreDir(a.fullPath,n+1)),this._wantsDir&&(this.push(a),t--)):(c==="file"||this._includeAsFile(a))&&this._fileFilter(a)&&this._wantsFile&&(this.push(a),t--);}}else {let s=this.parents.pop();if(!s){this.push(null);break}if(this.parent=await s,this.destroyed)return}}}catch(e){this.destroy(e);}finally{this.reading=false;}}}async _exploreDir(t,e){let i;try{i=await readdir(t,this._rdOptions);}catch(s){this._onError(s);}return {files:i,depth:e,path:t}}async _formatEntry(t,e){let i,s=this._isDirent?t.name:t;try{let n=resolve(join(e,s));i={path:relative(this._root,n),fullPath:n,basename:s},i[this._statsProp]=this._isDirent?t:await this._stat(n);}catch(n){this._onError(n);return}return i}_onError(t){Rt(t)&&!this.destroyed?this.emit("warn",t):this.destroy(t);}async _getEntryType(t){if(!t&&this._statsProp in t)return "";let e=t[this._statsProp];if(e.isFile())return "file";if(e.isDirectory())return "directory";if(e&&e.isSymbolicLink()){let i=t.fullPath;try{let s=await realpath(i),n=await lstat(s);if(n.isFile())return "file";if(n.isDirectory()){let h=s.length;if(i.startsWith(s)&&i.substr(h,1)===sep){let o=new Error(`Circular symlink detected: "${i}" points to "${s}"`);return o.code=J,this._onError(o)}return "directory"}}catch(s){return this._onError(s),""}}}_includeAsFile(t){let e=t&&t[this._statsProp];return e&&this._wantsEverything&&!e.isDirectory()}};function Q(r,t={}){let e=t.entryType||t.type;if(e==="both"&&(e=g.FILE_DIR_TYPE),e&&(t.type=e),r){if(typeof r!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(e&&!B.includes(e))throw new Error(`readdirp: Invalid type passed. Use one of ${B.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return t.root=r,new L(t)}a(Q,"readdirp");var Ft="data",z="end",et="close",S=a(()=>{},"EMPTY_FN");var A=process.platform,H=A==="win32",St=A==="darwin",At=A==="linux",Wt=A==="freebsd",st=type()==="OS400",m={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},y=m,Nt="watch",kt={lstat:lstat,stat:stat},R="listeners",T="errHandlers",b="rawEmitters",Lt=[R,T,b],Ct=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),Ot=a(r=>Ct.has(u.extname(r).slice(1).toLowerCase()),"isBinaryPath"),M=a((r,t)=>{r instanceof Set?r.forEach(t):t(r);},"foreach"),D=a((r,t,e)=>{let i=r[t];i instanceof Set||(r[t]=i=new Set([i])),i.add(e);},"addAndConvert"),Mt=a(r=>t=>{let e=r[t];e instanceof Set?e.clear():delete r[t];},"clearItem"),I=a((r,t,e)=>{let i=r[t];i instanceof Set?i.delete(e):i===e&&delete r[t];},"delFromSet"),it=a(r=>r instanceof Set?r.size===0:!r,"isEmptySet"),v=new Map;function Z(r,t,e,i,s){let n=a((h,o)=>{e(r),s(h,o,{watchedPath:r}),o&&r!==o&&x(u.resolve(r,o),R,u.join(r,o));},"handleEvent");try{return watch(r,{persistent:t.persistent},n)}catch(h){i(h);return}}a(Z,"createFsWatchInstance");var x=a((r,t,e,i,s)=>{let n=v.get(r);n&&M(n[t],h=>{h(e,i,s);});},"fsWatchBroadcast"),zt=a((r,t,e,i)=>{let{listener:s,errHandler:n,rawEmitter:h}=i,o=v.get(t),a;if(!e.persistent)return a=Z(r,e,s,n,h),a?a.close.bind(a):void 0;if(o)D(o,R,s),D(o,T,n),D(o,b,h);else {if(a=Z(r,e,x.bind(null,t,R),n,x.bind(null,t,b)),!a)return;a.on(y.ERROR,async c=>{let d=x.bind(null,t,T);if(o&&(o.watcherUnusable=true),H&&c.code==="EPERM")try{await(await open(r,"r")).close(),d(c);}catch{}else d(c);}),o={listeners:s,errHandlers:n,rawEmitters:h,watcher:a},v.set(t,o);}return ()=>{I(o,R,s),I(o,T,n),I(o,b,h),it(o.listeners)&&(o.watcher.close(),v.delete(t),Lt.forEach(Mt(o)),o.watcher=void 0,Object.freeze(o));}},"setFsWatchListener"),O=new Map,Ht=a((r,t,e,i)=>{let{listener:s,rawEmitter:n}=i,h=O.get(t),o=h&&h.options;return o&&(o.persistent<e.persistent||o.interval>e.interval)&&(unwatchFile(t),h=void 0),h?(D(h,R,s),D(h,b,n)):(h={listeners:s,rawEmitters:n,options:e,watcher:watchFile(t,e,(a,c)=>{M(h.rawEmitters,_=>{_(y.CHANGE,t,{curr:a,prev:c});});let d=a.mtimeMs;(a.size!==c.size||d>c.mtimeMs||d===0)&&M(h.listeners,_=>_(r,a));})},O.set(t,h)),()=>{I(h,R,s),I(h,b,n),it(h.listeners)&&(O.delete(t),unwatchFile(t),h.options=h.watcher=void 0,Object.freeze(h));}},"setFsWatchFileListener"),F=class{static{a(this,"NodeFsHandler");}fsw;_boundHandleError;constructor(t){this.fsw=t,this._boundHandleError=e=>t._handleError(e);}_watchWithNodeFs(t,e){let i=this.fsw.options,s=u.dirname(t),n=u.basename(t);this.fsw._getWatchedDir(s).add(n);let o=u.resolve(t),a={persistent:i.persistent};e||(e=S);let c;if(i.usePolling){let d=i.interval!==i.binaryInterval;a.interval=d&&Ot(n)?i.binaryInterval:i.interval,c=Ht(t,o,a,{listener:e,rawEmitter:this.fsw._emitRaw});}else c=zt(t,o,a,{listener:e,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return c}_handleFile(t,e,i){if(this.fsw.closed)return;let s=u.dirname(t),n=u.basename(t),h=this.fsw._getWatchedDir(s),o=e;if(h.has(n))return;let a$1=a(async(d,_)=>{if(this.fsw._throttle(Nt,t,5)){if(!_||_.mtimeMs===0)try{let f=await stat(t);if(this.fsw.closed)return;let w=f.atimeMs,E=f.mtimeMs;if((!w||w<=E||E!==o.mtimeMs)&&this.fsw._emit(y.CHANGE,t,f),(St||At||Wt)&&o.ino!==f.ino){this.fsw._closeFile(d),o=f;let P=this._watchWithNodeFs(t,a$1);P&&this.fsw._addPathCloser(d,P);}else o=f;}catch{this.fsw._remove(s,n);}else if(h.has(n)){let f=_.atimeMs,w=_.mtimeMs;(!f||f<=w||w!==o.mtimeMs)&&this.fsw._emit(y.CHANGE,t,_),o=_;}}},"listener"),c=this._watchWithNodeFs(t,a$1);if(!(i&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(t)){if(!this.fsw._throttle(y.ADD,t,0))return;this.fsw._emit(y.ADD,t,e);}return c}async _handleSymlink(t,e,i,s){if(this.fsw.closed)return;let n=t.fullPath,h=this.fsw._getWatchedDir(e);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let o;try{o=await realpath(i);}catch{return this.fsw._emitReady(),true}return this.fsw.closed?void 0:(h.has(s)?this.fsw._symlinkPaths.get(n)!==o&&(this.fsw._symlinkPaths.set(n,o),this.fsw._emit(y.CHANGE,i,t.stats)):(h.add(s),this.fsw._symlinkPaths.set(n,o),this.fsw._emit(y.ADD,i,t.stats)),this.fsw._emitReady(),true)}if(this.fsw._symlinkPaths.has(n))return true;this.fsw._symlinkPaths.set(n,true);}_handleRead(t,e,i,s,n,h,o){t=u.join(t,"");let a$1=s?`${t}:${s}`:t;if(o=this.fsw._throttle("readdir",a$1,1e3),!o)return;let c=this.fsw._getWatchedDir(i.path),d=new Set,_=this.fsw._readdirp(t,{fileFilter:a(f=>i.filterPath(f),"fileFilter"),directoryFilter:a(f=>i.filterDir(f),"directoryFilter")});if(_)return _.on(Ft,async f=>{if(this.fsw.closed){_=void 0;return}let w=f.path,E=u.join(t,w);if(d.add(w),!(f.stats.isSymbolicLink()&&await this._handleSymlink(f,t,E,w))){if(this.fsw.closed){_=void 0;return}(w===s||!s&&!c.has(w))&&(this.fsw._incrReadyCount(),E=u.join(n,u.relative(n,E)),this._addToNodeFs(E,e,i,h+1));}}).on(y.ERROR,this._boundHandleError),new Promise((f,w)=>{if(!_)return w();_.once(z,()=>{if(this.fsw.closed){_=void 0;return}let E=o?o.clear():false;f(void 0),c.getChildren().filter(P=>P!==t&&!d.has(P)).forEach(P=>{this.fsw._remove(t,P);}),_=void 0,E&&this._handleRead(t,false,i,s,n,h,o);});})}async _handleDir(t,e,i,s,n,h,o){let a=this.fsw._getWatchedDir(u.dirname(t)),c=a.has(u.basename(t));!(i&&this.fsw.options.ignoreInitial)&&!n&&!c&&this.fsw._emit(y.ADD_DIR,t,e),a.add(u.basename(t)),this.fsw._getWatchedDir(t);let d,_,f=this.fsw.options.depth;if((f==null||s<=f)&&!this.fsw._symlinkPaths.has(o)){if(!n&&(await this._handleRead(t,i,h,n,t,s,d),this.fsw.closed))return;_=this._watchWithNodeFs(t,(w,E)=>{E&&E.mtimeMs===0||this._handleRead(w,false,h,n,t,s,d);});}return _}async _addToNodeFs(t,e,i,s,n){let h=this.fsw._emitReady;if(this.fsw._isIgnored(t)||this.fsw.closed)return h(),false;let o=this.fsw._getWatchHelpers(t);i&&(o.filterPath=a=>i.filterPath(a),o.filterDir=a=>i.filterDir(a));try{let a=await kt[o.statMethod](o.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(o.watchPath,a))return h(),!1;let c=this.fsw.options.followSymlinks,d;if(a.isDirectory()){let _=u.resolve(t),f=c?await realpath(t):t;if(this.fsw.closed||(d=await this._handleDir(o.watchPath,a,e,s,n,o,f),this.fsw.closed))return;_!==f&&f!==void 0&&this.fsw._symlinkPaths.set(_,f);}else if(a.isSymbolicLink()){let _=c?await realpath(t):t;if(this.fsw.closed)return;let f=u.dirname(o.watchPath);if(this.fsw._getWatchedDir(f).add(o.watchPath),this.fsw._emit(y.ADD,o.watchPath,a),d=await this._handleDir(f,a,e,s,t,o,_),this.fsw.closed)return;_!==void 0&&this.fsw._symlinkPaths.set(u.resolve(t),_);}else d=this._handleFile(o.watchPath,a,e);return h(),d&&this.fsw._addPathCloser(t,d),!1}catch(a){if(this.fsw._handleError(a))return h(),t}}};var j="/",Kt="//",ht=".",Vt="..",Bt="string",$t=/\\/g,lt=/\/\//g,qt=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,Jt=/^\.[/\\]/;function W(r){return Array.isArray(r)?r:[r]}a(W,"arrify");var Y=a(r=>typeof r=="object"&&r!==null&&!(r instanceof RegExp),"isMatcherObject");function Qt(r){return typeof r=="function"?r:typeof r=="string"?t=>r===t:r instanceof RegExp?t=>r.test(t):typeof r=="object"&&r!==null?t=>{if(r.path===t)return true;if(r.recursive){let e=u.relative(r.path,t);return e?!e.startsWith("..")&&!u.isAbsolute(e):false}return false}:()=>false}a(Qt,"createPattern");function Xt(r){if(typeof r!="string")throw new Error("string expected");r=u.normalize(r),r=r.replace(/\\/g,"/");let t=false;return r.startsWith("//")&&(t=true),r=r.replace(lt,"/"),t&&(r="/"+r),r}a(Xt,"normalizePath");function rt(r,t,e){let i=Xt(t);for(let s=0;s<r.length;s++){let n=r[s];if(n(i,e))return true}return false}a(rt,"matchPatterns");function Zt(r,t){if(r==null)throw new TypeError("anymatch: specify first argument");let i=W(r).map(s=>Qt(s));return t==null?(s,n)=>rt(i,s,n):rt(i,t)}a(Zt,"anymatch");var nt=a(r=>{let t=W(r).flat();if(!t.every(e=>typeof e===Bt))throw new TypeError(`Non-string provided as watch path: ${t}`);return t.map(ct)},"unifyPaths"),ot=a(r=>{let t=r.replace($t,j),e=false;return t.startsWith(Kt)&&(e=true),t=t.replace(lt,j),e&&(t=j+t),t},"toUnix"),ct=a(r=>ot(u.normalize(ot(r))),"normalizePathToUnix"),at=a((r="")=>t=>typeof t=="string"?ct(u.isAbsolute(t)?t:u.join(r,t)):t,"normalizeIgnored"),te=a((r,t)=>u.isAbsolute(r)?r:u.join(t,r),"getAbsolutePath"),ee=Object.freeze(new Set),U=class{static{a(this,"DirEntry");}path;_removeWatcher;items;constructor(t,e){this.path=t,this._removeWatcher=e,this.items=new Set;}add(t){let{items:e}=this;e&&t!==ht&&t!==Vt&&e.add(t);}async remove(t){let{items:e}=this;if(!e||(e.delete(t),e.size>0))return;let i=this.path;try{await readdir(i);}catch{this._removeWatcher&&this._removeWatcher(u.dirname(i),u.basename(i));}}has(t){let{items:e}=this;if(e)return e.has(t)}getChildren(){let{items:t}=this;return t?[...t.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=S,this.items=ee,Object.freeze(this);}},se="stat",ie="lstat",G=class{static{a(this,"WatchHelper");}fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(t,e,i){this.fsw=i;let s=t;this.path=t=t.replace(Jt,""),this.watchPath=s,this.fullWatchPath=u.resolve(s),this.dirParts=[],this.dirParts.forEach(n=>{n.length>1&&n.pop();}),this.followSymlinks=e,this.statMethod=e?se:ie;}entryPath(t){return u.join(this.watchPath,u.relative(this.watchPath,t.fullPath))}filterPath(t){let{stats:e}=t;if(e&&e.isSymbolicLink())return this.filterDir(t);let i=this.entryPath(t);return this.fsw._isntIgnored(i,e)&&this.fsw._hasReadPermissions(e)}filterDir(t){return this.fsw._isntIgnored(this.entryPath(t),t.stats)}},N=class extends EventEmitter{static{a(this,"FSWatcher");}closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(t={}){super(),this.closed=false,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=false;let e=t.awaitWriteFinish,i={stabilityThreshold:2e3,pollInterval:100},s={persistent:true,ignoreInitial:false,ignorePermissionErrors:false,interval:100,binaryInterval:300,followSymlinks:true,usePolling:false,atomic:true,...t,ignored:t.ignored?W(t.ignored):W([]),awaitWriteFinish:e===true?i:typeof e=="object"?{...i,...e}:false};st&&(s.usePolling=true),s.atomic===void 0&&(s.atomic=!s.usePolling);let n=process.env.CHOKIDAR_USEPOLLING;if(n!==void 0){let a=n.toLowerCase();a==="false"||a==="0"?s.usePolling=false:a==="true"||a==="1"?s.usePolling=true:s.usePolling=!!a;}let h=process.env.CHOKIDAR_INTERVAL;h&&(s.interval=Number.parseInt(h,10));let o=0;this._emitReady=()=>{o++,o>=this._readyCount&&(this._emitReady=S,this._readyEmitted=true,process.nextTick(()=>this.emit(m.READY)));},this._emitRaw=(...a)=>this.emit(m.RAW,...a),this._boundRemove=this._remove.bind(this),this.options=s,this._nodeFsHandler=new F(this),Object.freeze(s);}_addIgnoredPath(t){if(Y(t)){for(let e of this._ignoredPaths)if(Y(e)&&e.path===t.path&&e.recursive===t.recursive)return}this._ignoredPaths.add(t);}_removeIgnoredPath(t){if(this._ignoredPaths.delete(t),typeof t=="string")for(let e of this._ignoredPaths)Y(e)&&e.path===t&&this._ignoredPaths.delete(e);}add(t,e,i){let{cwd:s}=this.options;this.closed=false,this._closePromise=void 0;let n=nt(t);return s&&(n=n.map(h=>te(h,s))),n.forEach(h=>{this._removeIgnoredPath(h);}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=n.length,Promise.all(n.map(async h=>{let o=await this._nodeFsHandler._addToNodeFs(h,!i,void 0,0,e);return o&&this._emitReady(),o})).then(h=>{this.closed||h.forEach(o=>{o&&this.add(u.dirname(o),u.basename(e||o));});}),this}unwatch(t){if(this.closed)return this;let e=nt(t),{cwd:i}=this.options;return e.forEach(s=>{!u.isAbsolute(s)&&!this._closers.has(s)&&(i&&(s=u.join(i,s)),s=u.resolve(s)),this._closePath(s),this._addIgnoredPath(s),this._watched.has(s)&&this._addIgnoredPath({path:s,recursive:true}),this._userIgnored=void 0;}),this}close(){if(this._closePromise)return this._closePromise;this.closed=true,this.removeAllListeners();let t=[];return this._closers.forEach(e=>e.forEach(i=>{let s=i();s instanceof Promise&&t.push(s);})),this._streams.forEach(e=>e.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=false,this._watched.forEach(e=>e.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=t.length?Promise.all(t).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let t={};return this._watched.forEach((e,i)=>{let n=(this.options.cwd?u.relative(this.options.cwd,i):i)||ht;t[n]=e.getChildren().sort();}),t}emitWithAll(t,e){this.emit(t,...e),t!==m.ERROR&&this.emit(m.ALL,t,...e);}async _emit(t,e,i){if(this.closed)return;let s=this.options;H&&(e=u.normalize(e)),s.cwd&&(e=u.relative(s.cwd,e));let n=[e];i!=null&&n.push(i);let h=s.awaitWriteFinish,o;if(h&&(o=this._pendingWrites.get(e)))return o.lastChange=new Date,this;if(s.atomic){if(t===m.UNLINK)return this._pendingUnlinks.set(e,[t,...n]),setTimeout(()=>{this._pendingUnlinks.forEach((a,c)=>{this.emit(...a),this.emit(m.ALL,...a),this._pendingUnlinks.delete(c);});},typeof s.atomic=="number"?s.atomic:100),this;t===m.ADD&&this._pendingUnlinks.has(e)&&(t=m.CHANGE,this._pendingUnlinks.delete(e));}if(h&&(t===m.ADD||t===m.CHANGE)&&this._readyEmitted){let a$1=a((c,d)=>{c?(t=m.ERROR,n[0]=c,this.emitWithAll(t,n)):d&&(n.length>1?n[1]=d:n.push(d),this.emitWithAll(t,n));},"awfEmit");return this._awaitWriteFinish(e,h.stabilityThreshold,t,a$1),this}if(t===m.CHANGE&&!this._throttle(m.CHANGE,e,50))return this;if(s.alwaysStat&&i===void 0&&(t===m.ADD||t===m.ADD_DIR||t===m.CHANGE)){let a=s.cwd?u.join(s.cwd,e):e,c;try{c=await stat(a);}catch{}if(!c||this.closed)return;n.push(c);}return this.emitWithAll(t,n),this}_handleError(t){let e=t&&t.code;return t&&e!=="ENOENT"&&e!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||e!=="EPERM"&&e!=="EACCES")&&this.emit(m.ERROR,t),t||this.closed}_throttle(t,e,i){this._throttled.has(t)||this._throttled.set(t,new Map);let s=this._throttled.get(t);if(!s)throw new Error("invalid throttle");let n=s.get(e);if(n)return n.count++,false;let h,o=a(()=>{let c=s.get(e),d=c?c.count:0;return s.delete(e),clearTimeout(h),c&&clearTimeout(c.timeoutObject),d},"clear");h=setTimeout(o,i);let a$1={timeoutObject:h,clear:o,count:0};return s.set(e,a$1),a$1}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(t,e,i,s){let n=this.options.awaitWriteFinish;if(typeof n!="object")return;let h=n.pollInterval,o,a$1=t;this.options.cwd&&!u.isAbsolute(t)&&(a$1=u.join(this.options.cwd,t));let c=new Date,d=this._pendingWrites;function _(f){stat$1(a$1,(w,E)=>{if(w||!d.has(t)){w&&w.code!=="ENOENT"&&s(w);return}let P=Number(new Date);f&&E.size!==f.size&&(d.get(t).lastChange=P);let dt=d.get(t);P-dt.lastChange>=e?(d.delete(t),s(void 0,E)):o=setTimeout(_,h,E);});}a(_,"awaitWriteFinishFn"),d.has(t)||(d.set(t,{lastChange:c,cancelWait:a(()=>(d.delete(t),clearTimeout(o),i),"cancelWait")}),o=setTimeout(_,h));}_isIgnored(t,e){if(this.options.atomic&&qt.test(t))return true;if(!this._userIgnored){let{cwd:i}=this.options,n=(this.options.ignored||[]).map(at(i)),o=[...[...this._ignoredPaths].map(at(i)),...n];this._userIgnored=Zt(o,void 0);}return this._userIgnored(t,e)}_isntIgnored(t,e){return !this._isIgnored(t,e)}_getWatchHelpers(t){return new G(t,this.options.followSymlinks,this)}_getWatchedDir(t){let e=u.resolve(t);return this._watched.has(e)||this._watched.set(e,new U(e,this._boundRemove)),this._watched.get(e)}_hasReadPermissions(t){return this.options.ignorePermissionErrors?true:!!(Number(t.mode)&256)}_remove(t,e,i){let s=u.join(t,e),n=u.resolve(s);if(i=i??(this._watched.has(s)||this._watched.has(n)),!this._throttle("remove",s,100))return;!i&&this._watched.size===1&&this.add(t,e,true),this._getWatchedDir(s).getChildren().forEach(f=>this._remove(s,f));let a=this._getWatchedDir(t),c=a.has(e);a.remove(e),this._symlinkPaths.has(n)&&this._symlinkPaths.delete(n);let d=s;if(this.options.cwd&&(d=u.relative(this.options.cwd,s)),this.options.awaitWriteFinish&&this._pendingWrites.has(d)&&this._pendingWrites.get(d).cancelWait()===m.ADD)return;this._watched.delete(s),this._watched.delete(n);let _=i?m.UNLINK_DIR:m.UNLINK;c&&!this._isIgnored(s)&&this._emit(_,s),this._closePath(s);}_closePath(t){this._closeFile(t);let e=u.dirname(t);this._getWatchedDir(e).remove(u.basename(t));}_closeFile(t){let e=this._closers.get(t);e&&(e.forEach(i=>i()),this._closers.delete(t));}_addPathCloser(t,e){if(!e)return;let i=this._closers.get(t);i||(i=[],this._closers.set(t,i)),i.push(e);}_readdirp(t,e){if(this.closed)return;let i={type:m.ALL,alwaysStat:true,lstat:true,...e,depth:0},s=Q(t,i);return this._streams.add(s),s.once(et,()=>{s=void 0;}),s.once(z,()=>{s&&(this._streams.delete(s),s=void 0);}),s}};function re(r,t={}){let e=new N(t);return e.add(r),e}a(re,"watch");var be={watch:re,FSWatcher:N};
|
|
4
|
+
export{N as FSWatcher,G as WatchHelper,be as default,re as watch};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {d,c,b as b$1}from'./chunk-NBSJGM2X.mjs';import {b}from'./chunk-B3DZ5HVQ.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {stat,readFile,mkdir,copyFile,constants,readdir,utimes,rm,rename,cp,writeFile}from'fs/promises';import {join,relative,parse,dirname}from'path';import {availableParallelism,homedir}from'os';import {createHash}from'crypto';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
function $(t){let e=0,n=[],i=0,o=a(()=>{i<n.length&&e<t&&(e++,n[i++]()),i>0&&i===n.length&&(n.length=0,i=0);},"next");return l=>new Promise((u,f)=>{let y=a(()=>{l().then(a=>{e--,u(a),o();},a=>{e--,f(a),o();});},"run");e<t?(e++,y()):n.push(y);})}a($,"pLimit");function B(){return process.env.KNARR_HOME||join(homedir(),".knarr")}a(B,"getKnarrHome");function et(){return join(B(),"store")}a(et,"getStorePath");function vt(){return join(B(),"consumers.json")}a(vt,"getConsumersPath");function W(t){return t.replace(/\//g,"+")}a(W,"encodePackageName");function kt(t){if(t.startsWith("@")){let e=t.indexOf("+");if(e!==-1)return t.slice(0,e)+"/"+t.slice(e+1)}return t}a(kt,"decodePackageName");function I(t,e){return join(et(),`${W(t)}@${e}`)}a(I,"getStoreEntryPath");function $t(t,e){return join(I(t,e),"package")}a($t,"getStorePackagePath");function Mt(t,e){return join(I(t,e),".knarr-meta.json")}a(Mt,"getStoreMetaPath");function rt(t,e){return join(I(t,e),"history")}a(rt,"getStoreHistoryPath");function Ct(t,e,n){return join(rt(t,e),n)}a(Ct,"getHistoryEntryPath");function bt(t){return join(t,".knarr")}a(bt,"getConsumerKnarrDir");function Rt(t){return join(t,".knarr","state.json")}a(Rt,"getConsumerStatePath");function Et(t,e){return join(t,".knarr","backups",W(e))}a(Et,"getConsumerBackupPath");function E(t){return t.replace(/\\/g,"/")}a(E,"normalizePath");function St(t,e){return join(t,"node_modules",e)}a(St,"getNodeModulesPackagePath");var S=null;function ot(){return S||(S=import('./xxhash-wasm-DTW44IIQ.mjs').then(t=>t.default()).catch(t=>{throw S=null,t})),S}a(ot,"getXXHash");var st=1024*1024,at=$(Math.max(availableParallelism(),8)),z=new Map;async function Lt(t,e){let n=[...t].sort((a,g)=>{let d=E(relative(e,a)),h=E(relative(e,g));return d.localeCompare(h)}),i=new Set(n),o=0,l=await Promise.all(n.map(a=>at(async()=>{let g=E(relative(e,a)),d=await stat(a),h=z.get(a);if(h&&h.mtimeMs===d.mtimeMs&&h.size===d.size)return o++,{rel:g,content:h.content};let s=await readFile(a);return z.set(a,{mtimeMs:d.mtimeMs,size:d.size,content:s}),{rel:g,content:s}})));for(let a of z.keys())i.has(a)||z.delete(a);d(`[hash] Computing content hash for ${t.length} files (${o} cached)`);let u=createHash("sha256"),f=Buffer.alloc(4);for(let{rel:a,content:g}of l)u.update(a),u.update("\0"),f.writeUInt32LE(g.length),u.update(f),u.update(g);let y="sha256v2:"+u.digest("hex");return d(`[hash] Result: ${y.slice(0,20)}...`),y}a(Lt,"computeContentHash");async function O(t,e){let n=e??(await stat(t)).size,i=await ot();if(n>st)return ct(t,i);let o=await readFile(t);return i.h64Raw(o).toString(16)}a(O,"hashFile");async function ct(t,e){let{createReadStream:n}=await import('fs'),i=e.create64();return new Promise((o,l)=>{let u=n(t);u.on("data",f=>i.update(f)),u.on("end",()=>o(i.digest().toString(16))),u.on("error",l);})}a(ct,"hashFileStream");var M=[];function P(t){M.push(t);}a(P,"recordMutation");function Wt(){if(M.length===0){b.info("[dry-run] No mutations would be performed");return}if(c()){console.log(JSON.stringify({dryRun:true,mutations:M},null,2));return}let t=new Map;for(let n of M){let i=t.get(n.type);i||(i=[],t.set(n.type,i)),i.push(n);}b.info(`
|
|
4
|
+
[dry-run] ${M.length} mutation(s) would be performed:
|
|
5
|
+
`);let e={copy:"Copy",remove:"Remove",move:"Move",mkdir:"Create directory",write:"Write file","bin-link":"Create bin link","bin-unlink":"Remove bin link","cache-invalidate":"Invalidate cache","lock-skip":"Skip lock","lifecycle-skip":"Skip lifecycle hook"};for(let[n,i]of t){b.info(` ${e[n]} (${i.length}):`);for(let o of i.slice(0,20)){let l=o.dest?` \u2192 ${o.dest}`:"",u=o.detail?` (${o.detail})`:"";b.info(` ${o.path}${l}${u}`);}i.length>20&&b.info(` ... and ${i.length-20} more`);}}a(Wt,"printDryRunReport");var q=$(Math.max(availableParallelism(),8));function D(t){return t instanceof Error&&"code"in t}a(D,"isNodeError");var X=new Map;function ht(t){let{root:e}=parse(t);return e||"/"}a(ht,"volumeRoot");async function yt(t,e,n){if(b$1()){d(`[dry-run] would copy ${t} \u2192 ${e}`),P({type:"copy",path:t,dest:e});return}n?.ensureParent!==false&&await mkdir(dirname(e),{recursive:true});let i=ht(e),o=X.get(i);if(o===false){await copyFile(t,e);return}if(o===true){await copyFile(t,e,constants.COPYFILE_FICLONE);return}try{await copyFile(t,e,constants.COPYFILE_FICLONE_FORCE),X.set(i,!0);}catch{X.set(i,false),d(`[copy] reflink not supported on ${i}, using plain copy`),await copyFile(t,e);}}a(yt,"copyWithCoW");async function L(t){return (await readdir(t,{recursive:true,withFileTypes:true})).filter(n=>n.isFile()).map(n=>join(n.parentPath,n.name))}a(L,"collectFiles");async function ee(t,e,n={}){let i=L(t),o=L(e).catch(s=>{if(D(s)&&s.code==="ENOENT")return [];throw s}),[l,u]=await Promise.all([i,o]),f=0,y=0,a=0,g=await Promise.all(l.map(s=>q(async()=>{let x=relative(t,s),b=join(e,x),F=true,k=null;if(n.force)d(`[copy] ${x} (forced)`);else try{let[m,R]=await Promise.all([stat(s),stat(b)]);if(k={atime:m.atime,mtime:m.mtime},m.size!==R.size)d(`[copy] ${x} (size differs: ${m.size} vs ${R.size})`);else if(m.mtimeMs===R.mtimeMs)F=!1,d(`[skip] ${x} (size+mtime match)`);else {let[Q,Z]=await Promise.all([O(s,m.size),O(b,R.size)]);Q===Z?(F=!1,d(`[skip] ${x} (unchanged)`)):d(`[copy] ${x} (hash differs)`);}}catch(m){if(D(m)&&m.code==="ENOENT")d(`[copy] ${x} (new file)`);else throw m}if(F){if(await yt(s,b),!k){let m=await stat(s);k={atime:m.atime,mtime:m.mtime};}return await utimes(b,k.atime,k.mtime),"copied"}return "skipped"})));for(let s of g)s==="copied"?f++:a++;let d$1=new Set(l.map(s=>relative(t,s))),h=u.filter(s=>!d$1.has(relative(e,s)));return await Promise.all(h.map(s=>q(async()=>{d(`[remove] ${relative(e,s)} (no longer in source)`),b$1()?P({type:"remove",path:s}):await rm(s);}))),y=h.length,{copied:f,removed:y,skipped:a}}a(ee,"incrementalCopy");async function re(t,e){if(b$1()){d(`[dry-run] would move ${t} \u2192 ${e}`),P({type:"move",path:t,dest:e});return}try{await rename(t,e);}catch(n){if(D(n)&&n.code==="EXDEV")await cp(t,e,{recursive:true}),await rm(t,{recursive:true,force:true});else throw n}}a(re,"moveDir");async function ne(t){if(b$1()){d(`[dry-run] would remove ${t}`),P({type:"remove",path:t});return}await rm(t,{recursive:true,force:true});}a(ne,"removeDir");async function ie(t){if(b$1()){d(`[dry-run] would ensure dir ${t}`),P({type:"mkdir",path:t});return}await mkdir(t,{recursive:true});}a(ie,"ensureDir");async function oe(t){if(b$1()){d(`[dry-run] would ensure private dir ${t}`),P({type:"mkdir",path:t});return}await mkdir(t,{recursive:true,mode:448});}a(oe,"ensurePrivateDir");async function se(t){try{return await stat(t),!0}catch{return false}}a(se,"exists");async function ae(t,e){if(b$1()){d(`[dry-run] would write ${t}`),P({type:"write",path:t});return}let n=t+`.tmp-${process.pid}-${Date.now()}`;await writeFile(n,e),await rename(n,t);}a(ae,"atomicWriteFile");async function ce(t){try{let e=await L(t);return (await Promise.all(e.map(i=>stat(i).then(o=>o.size).catch(()=>0)))).reduce((i,o)=>i+o,0)}catch{return 0}}a(ce,"dirSize");async function ue(t,e){await cp(t,e,{recursive:true});}a(ue,"copyDir");export{se as A,ae as B,ce as C,ue as D,et as a,vt as b,W as c,kt as d,I as e,$t as f,Mt as g,rt as h,Ct as i,bt as j,Rt as k,Et as l,E as m,St as n,$ as o,Lt as p,P as q,Wt as r,D as s,yt as t,L as u,ee as v,re as w,ne as x,ie as y,oe as z};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {a}from'./chunk-3KNUBUPH.mjs';import {A,m}from'./chunk-23HXXAGG.mjs';import {c,a as a$1}from'./chunk-2VCW5RWI.mjs';import {readFile,readdir}from'fs/promises';import {join,dirname,relative,resolve}from'path';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var w=c(a(),1);async function N(o){let t=o;for(;;){if(await A(join(t,"pnpm-workspace.yaml")))return t;let s=dirname(t);if(s===t)return null;t=s;}}a$1(N,"findWorkspaceRoot");async function $(o){let t={default:{},named:{}},s=join(o,"pnpm-workspace.yaml"),i;try{i=await readFile(s,"utf-8");}catch{return t}let r=i.split(/\r?\n/),e="top",n="";for(let a of r){if(a.trim()===""||a.trim().startsWith("#"))continue;let f=a.length-a.trimStart().length;if(f===0){if(a.startsWith("catalog:")){e="default-catalog";continue}if(a.startsWith("catalogs:")){e="named-catalogs";continue}e="top";continue}if(e==="default-catalog"&&f>=2){let c=S(a);c&&(t.default[c[0]]=c[1]);continue}if(e==="named-catalogs"&&f>=2&&f<4){let c=a.trim();c.endsWith(":")&&(n=c.slice(0,-1),t.named[n]={},e="named-catalog-entries");continue}if(e==="named-catalog-entries"&&f>=4){let c=S(a);c&&n&&(t.named[n][c[0]]=c[1]);continue}if(e==="named-catalog-entries"&&f>=2&&f<4){let c=a.trim();c.endsWith(":")?(n=c.slice(0,-1),t.named[n]={}):e="named-catalogs";continue}}return t}a$1($,"parseCatalogs");async function C(o){let t=await N(o);if(t){let i=await G(t),r=i.filter(n=>!n.startsWith("!")),e=i.filter(n=>n.startsWith("!")).map(n=>n.slice(1));if(r.length>0)return W(t,r,e)}let s=t??await O(o);if(!s)return [];try{let i=JSON.parse(await readFile(join(s,"package.json"),"utf-8")),r=Array.isArray(i.workspaces)?i.workspaces:i.workspaces?.packages??[];if(r.length===0)return [];let e=r.filter(a=>!a.startsWith("!")),n=r.filter(a=>a.startsWith("!")).map(a=>a.slice(1));return W(s,e,n)}catch{return []}}a$1(C,"findWorkspacePackages");async function G(o){let t=join(o,"pnpm-workspace.yaml"),s;try{s=await readFile(t,"utf-8");}catch{return []}let i=[],r=false;for(let e of s.split(/\r?\n/)){let n=e.trim();if(n===""||n.startsWith("#"))continue;let a=e.length-e.trimStart().length;if(a===0){r=n==="packages:";continue}if(r&&a>=2){let f=n.match(/^-\s+["']?([^"']+)["']?$/);f&&i.push(f[1]);}}return i}a$1(G,"parsePnpmWorkspacePackages");async function O(o){let t=o;for(;;){try{if(JSON.parse(await readFile(join(t,"package.json"),"utf-8")).workspaces)return t}catch{}let s=dirname(t);if(s===t)return null;t=s;}}a$1(O,"findPackageJsonWorkspaceRoot");async function W(o,t,s=[]){let i=[];for(let n of t)if(n.includes("*")){let a=n.split("/"),f=o,c=[],y=false;for(let g of a)y||g.includes("*")?(y=true,c.push(g)):f=join(f,g);if(c.length===1&&c[0]==="*")try{let g=await readdir(f,{withFileTypes:!0});for(let k of g)if(k.isDirectory()){let u=join(f,k.name);await A(join(u,"package.json"))&&i.push(u);}}catch{}else {let g=(0, w.default)(n),k=await j(o,8);for(let u of k){let b=m(relative(o,u));g(b)&&await A(join(u,"package.json"))&&i.push(u);}}}else {let a=resolve(o,n);await A(join(a,"package.json"))&&i.push(a);}let r=[...new Set(i)];if(s.length===0)return r;let e=(0, w.default)(s);return r.filter(n=>{let a=m(relative(o,n));return !e(a)})}a$1(W,"resolveWorkspaceGlobs");async function j(o,t){if(t<=0)return [];let s=[];try{let i=await readdir(o,{withFileTypes:!0});for(let r of i){if(!r.isDirectory()||r.name==="node_modules"||r.name===".git")continue;let e=join(o,r.name);s.push(e),s.push(...await j(e,t-1));}}catch{}return s}a$1(j,"collectDirs");async function z(o){let t=await C(o),s=[];for(let e of t)try{let n=JSON.parse(await readFile(join(e,"package.json"),"utf-8"));n.name&&n.version&&s.push({name:n.name,version:n.version,dir:e,pkg:n});}catch{}let i=new Set(s.map(e=>e.name)),r=new Map;for(let e of s){let n=new Set;for(let a of ["dependencies","devDependencies"]){let f=e.pkg[a];if(f)for(let c of Object.keys(f))i.has(c)&&n.add(c);}r.set(e.name,n);}return {packages:s,adjacency:r}}a$1(z,"buildWorkspaceGraph");function D(o){let t=new Map;for(let s of o.keys())t.set(s,new Set);for(let[s,i]of o)for(let r of i){let e=t.get(r);e||(e=new Set,t.set(r,e)),e.add(s);}return t}a$1(D,"buildReverseAdjacency");function S(o){let t=o.trim(),s=t.indexOf(":");if(s<=0)return null;let i=t.slice(0,s).trim(),r=t.slice(s+1).trim();if(!i||!r)return null;let e=r.replace(/^["']|["']$/g,"");return [i,e]}a$1(S,"parseKeyValue");export{N as a,$ as b,C as c,z as d,D as e};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
function B(t){if(t===0)return "0 B";let o=["B","KB","MB","GB"],n=Math.min(Math.floor(Math.log(t)/Math.log(1024)),o.length-1),i=t/1024**n;return n===0?`${t} B`:`${i.toFixed(1)} ${o[n]}`}a(B,"formatBytes");export{B as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {h,i,A as A$1,y,w,x as x$1,e}from'./chunk-23HXXAGG.mjs';import {d}from'./chunk-NBSJGM2X.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile,writeFile,rename,readdir}from'fs/promises';import {join}from'path';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var E=3;async function x(i$1,a,r,o){let n=join(r,".knarr-meta.json"),t;try{t=JSON.parse(await readFile(n,"utf-8"));}catch{d(`[history] Could not read meta from ${n}, skipping history capture`);return}let e=t.buildId;if(!e){d("[history] No buildId in meta, skipping history capture");return}let u=h(i$1,a),c=i(i$1,a,e);if(await A$1(c)){d(`[history] Build ${e} already in history, skipping`);return}await y(u);let l=c+`.tmp-${process.pid}`;try{await y(l);let y$1=join(r,"package");await A$1(y$1)&&await w(y$1,join(l,"package")),await writeFile(join(l,".knarr-meta.json"),JSON.stringify(t,null,2)),await rename(l,c),d(`[history] Captured build ${e} to history`);}catch(y){d(`[history] Failed to capture history: ${y instanceof Error?y.message:String(y)}`),await x$1(l);}await M(i$1,a,o??E);}a(x,"captureHistory");async function S(i,a){let r=h(i,a);if(!await A$1(r))return [];let o;try{o=await readdir(r);}catch{return []}let n=[];for(let t of o){let e=join(r,t),u=join(e,".knarr-meta.json");try{let c=JSON.parse(await readFile(u,"utf-8"));n.push({buildId:c.buildId??t,contentHash:c.contentHash,publishedAt:c.publishedAt,sourcePath:c.sourcePath,packageDir:join(e,"package")});}catch{}}return n.sort((t,e)=>new Date(e.publishedAt).getTime()-new Date(t.publishedAt).getTime()),n}a(S,"listHistory");async function A(i$1,a,r){let o=i(i$1,a,r),n=join(o,".knarr-meta.json");try{let t=JSON.parse(await readFile(n,"utf-8"));return {buildId:t.buildId??r,contentHash:t.contentHash,publishedAt:t.publishedAt,sourcePath:t.sourcePath,packageDir:join(o,"package")}}catch{return null}}a(A,"getHistoryEntry");async function J(i$1,a,r,o){let n=await A(i$1,a,r);if(!n)return null;let t=e(i$1,a),e$1=i(i$1,a,r),u=join(e$1,"package"),c=join(e$1,".knarr-meta.json"),l=await readFile(c,"utf-8");await A$1(t)&&await x(i$1,a,t,o);let f=join(t,"package"),y=join(t,".knarr-meta.json");return await A$1(f)&&await x$1(f),await A$1(u)&&await w(u,f),await writeFile(y,l),await x$1(e$1),d(`[history] Restored build ${r} as current`),n}a(J,"restoreHistoryEntry");async function M(i$1,a,r){if(r<0)return 0;let o=await S(i$1,a);if(o.length<=r)return 0;let n=o.slice(r),t=0;for(let e of n){let u=i(i$1,a,e.buildId);try{await x$1(u),t++,d(`[history] Pruned old build ${e.buildId}`);}catch{}}return t}a(M,"pruneHistory");async function K(i,a){let r=h(i,a);await A$1(r)&&await x$1(r);}a(K,"clearHistory");function C(i){return i??E}a(C,"resolveHistoryLimit");export{x as a,S as b,A as c,J as d,M as e,K as f,C as g};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>e(b,"name",{value:a,configurable:true});var n=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports);var l=(b,a,c,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of i(a))!k.call(b,d)&&d!==c&&e(b,d,{get:()=>a[d],enumerable:!(f=h(a,d))||f.enumerable});return b};var o=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?e(c,"default",{value:b,enumerable:true}):c,b));export{m as a,n as b,o as c};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {b,a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var te=b((Lt,ye)=>{var ge="[^\\\\/]",We="(?=.)",Se="[^/]",ce="(?:\\/|$)",xe="(?:^|\\/)",ie=`\\.{1,2}${ce}`,qe="(?!\\.)",Fe=`(?!${xe}${ie})`,Qe=`(?!\\.{0,1}${ce})`,je=`(?!${ie})`,Ze="[^.\\/]",ze=`${Se}*?`,Ve="/",be={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:We,QMARK:Se,END_ANCHOR:ce,DOTS_SLASH:ie,NO_DOT:qe,NO_DOTS:Fe,NO_DOT_SLASH:Qe,NO_DOTS_SLASH:je,QMARK_NO_DOT:Ze,STAR:ze,START_ANCHOR:xe,SEP:Ve},Ye={...be,SLASH_LITERAL:"[\\\\/]",QMARK:ge,STAR:`${ge}*?`,DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)",SEP:"\\"},Je={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};ye.exports={DEFAULT_MAX_EXTGLOB_RECURSION:0,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Je,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(t){return {"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===true?Ye:be}};});var se=b(M=>{var{REGEX_BACKSLASH:et,REGEX_REMOVE_BACKSLASH:tt,REGEX_SPECIAL_CHARS:st,REGEX_SPECIAL_CHARS_GLOBAL:rt}=te();M.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);M.hasRegexChars=t=>st.test(t);M.isRegexChar=t=>t.length===1&&M.hasRegexChars(t);M.escapeRegex=t=>t.replace(rt,"\\$1");M.toPosixSlashes=t=>t.replace(et,"/");M.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let t=navigator.platform.toLowerCase();return t==="win32"||t==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":false};M.removeBackslashes=t=>t.replace(tt,u=>u==="\\"?"":u);M.escapeLast=(t,u,e)=>{let l=t.lastIndexOf(u,e);return l===-1?t:t[l-1]==="\\"?M.escapeLast(t,u,l-1):`${t.slice(0,l)}\\${t.slice(l)}`};M.removePrefix=(t,u={})=>{let e=t;return e.startsWith("./")&&(e=e.slice(2),u.prefix="./"),e};M.wrapOutput=(t,u={},e={})=>{let l=e.contains?"":"^",c=e.contains?"":"$",p=`${l}(?:${t})${c}`;return u.negated===true&&(p=`(?:^(?!${p}).*$)`),p};M.basename=(t,{windows:u}={})=>{let e=t.split(u?/[\\/]/:"/"),l=e[e.length-1];return l===""?e[e.length-2]:l};});var me=b((Ht,Oe)=>{var de=se(),{CHAR_ASTERISK:le,CHAR_AT:nt,CHAR_BACKWARD_SLASH:re,CHAR_COMMA:ut,CHAR_DOT:pe,CHAR_EXCLAMATION_MARK:fe,CHAR_FORWARD_SLASH:Te,CHAR_LEFT_CURLY_BRACE:Ae,CHAR_LEFT_PARENTHESES:Re,CHAR_LEFT_SQUARE_BRACKET:ot,CHAR_PLUS:at,CHAR_QUESTION_MARK:Ce,CHAR_RIGHT_CURLY_BRACE:ct,CHAR_RIGHT_PARENTHESES:Le,CHAR_RIGHT_SQUARE_BRACKET:it}=te(),$e=a(t=>t===Te||t===re,"isPathSeparator"),He=a(t=>{t.isPrefix!==true&&(t.depth=t.isGlobstar?1/0:1);},"depth"),lt=a((t,u)=>{let e=u||{},l=t.length-1,c=e.parts===true||e.scanToEnd===true,p=[],i=[],f=[],b=t,N=-1,g=0,k=0,O=false,B=false,S=false,v=false,V=false,W=false,y=false,q=false,Y=false,D=false,w=0,P,A,E={value:"",depth:0,isGlob:false},n=a(()=>N>=l,"eos"),G=a(()=>b.charCodeAt(N+1),"peek"),m=a(()=>(P=A,b.charCodeAt(++N)),"advance");for(;N<l;){A=m();let x;if(A===re){y=E.backslashes=true,A=m(),A===Ae&&(W=true);continue}if(W===true||A===Ae){for(w++;n()!==true&&(A=m());){if(A===re){y=E.backslashes=true,m();continue}if(A===Ae){w++;continue}if(W!==true&&A===pe&&(A=m())===pe){if(O=E.isBrace=true,S=E.isGlob=true,D=true,c===true)continue;break}if(W!==true&&A===ut){if(O=E.isBrace=true,S=E.isGlob=true,D=true,c===true)continue;break}if(A===ct&&(w--,w===0)){W=false,O=E.isBrace=true,D=true;break}}if(c===true)continue;break}if(A===Te){if(p.push(N),i.push(E),E={value:"",depth:0,isGlob:false},D===true)continue;if(P===pe&&N===g+1){g+=2;continue}k=N+1;continue}if(e.noext!==true&&(A===at||A===nt||A===le||A===Ce||A===fe)===true&&G()===Re){if(S=E.isGlob=true,v=E.isExtglob=true,D=true,A===fe&&N===g&&(Y=true),c===true){for(;n()!==true&&(A=m());){if(A===re){y=E.backslashes=true,A=m();continue}if(A===Le){S=E.isGlob=true,D=true;break}}continue}break}if(A===le){if(P===le&&(V=E.isGlobstar=true),S=E.isGlob=true,D=true,c===true)continue;break}if(A===Ce){if(S=E.isGlob=true,D=true,c===true)continue;break}if(A===ot){for(;n()!==true&&(x=m());){if(x===re){y=E.backslashes=true,m();continue}if(x===it){B=E.isBracket=true,S=E.isGlob=true,D=true;break}}if(c===true)continue;break}if(e.nonegate!==true&&A===fe&&N===g){q=E.negated=true,g++;continue}if(e.noparen!==true&&A===Re){if(S=E.isGlob=true,c===true){for(;n()!==true&&(A=m());){if(A===Re){y=E.backslashes=true,A=m();continue}if(A===Le){D=true;break}}continue}break}if(S===true){if(D=true,c===true)continue;break}}e.noext===true&&(v=false,S=false);let H=b,r="",s="";g>0&&(r=b.slice(0,g),b=b.slice(g),k-=g),H&&S===true&&k>0?(H=b.slice(0,k),s=b.slice(k)):S===true?(H="",s=b):H=b,H&&H!==""&&H!=="/"&&H!==b&&$e(H.charCodeAt(H.length-1))&&(H=H.slice(0,-1)),e.unescape===true&&(s&&(s=de.removeBackslashes(s)),H&&y===true&&(H=de.removeBackslashes(H)));let K={prefix:r,input:t,start:g,base:H,glob:s,isBrace:O,isBracket:B,isGlob:S,isExtglob:v,isGlobstar:V,negated:q,negatedExtglob:Y};if(e.tokens===true&&(K.maxDepth=0,$e(A)||i.push(E),K.tokens=i),e.parts===true||e.tokens===true){let x;for(let $=0;$<p.length;$++){let j=x?x+1:g,X=p[$],Z=t.slice(j,X);e.tokens&&($===0&&g!==0?(i[$].isPrefix=true,i[$].value=r):i[$].value=Z,He(i[$]),K.maxDepth+=i[$].depth),($!==0||Z!=="")&&f.push(Z),x=X;}if(x&&x+1<t.length){let $=t.slice(x+1);f.push($),e.tokens&&(i[i.length-1].value=$,He(i[i.length-1]),K.maxDepth+=i[i.length-1].depth);}K.slashes=p,K.parts=f;}return K},"scan");Oe.exports=lt;});var ke=b((Ot,we)=>{var ne=te(),U=se(),{MAX_LENGTH:ae,POSIX_REGEX_SOURCE:pt,REGEX_NON_SPECIAL_CHARS:ft,REGEX_SPECIAL_CHARS_BACKREF:At,REPLACEMENTS:Ie}=ne,Rt=a((t,u)=>{if(typeof u.expandRange=="function")return u.expandRange(...t,u);t.sort();let e=`[${t.join("-")}]`;try{new RegExp(e);}catch{return t.map(c=>U.escapeRegex(c)).join("..")}return e},"expandRange"),ee=a((t,u)=>`Missing ${t}: "${u}" - use "\\\\${u}" to match literal characters`,"syntaxError"),ve=a(t=>{let u=[],e=0,l=0,c=0,p="",i=false;for(let f of t){if(i===true){p+=f,i=false;continue}if(f==="\\"){p+=f,i=true;continue}if(f==='"'){c=c===1?0:1,p+=f;continue}if(c===0){if(f==="[")e++;else if(f==="]"&&e>0)e--;else if(e===0){if(f==="(")l++;else if(f===")"&&l>0)l--;else if(f==="|"&&l===0){u.push(p),p="";continue}}}p+=f;}return u.push(p),u},"splitTopLevel"),_t=a(t=>{let u=false;for(let e of t){if(u===true){u=false;continue}if(e==="\\"){u=true;continue}if(/[?*+@!()[\]{}]/.test(e))return false}return true},"isPlainBranch"),Ne=a(t=>{let u=t.trim(),e=true;for(;e===true;)e=false,/^@\([^\\()[\]{}|]+\)$/.test(u)&&(u=u.slice(2,-1),e=true);if(_t(u))return u.replace(/\\(.)/g,"$1")},"normalizeSimpleBranch"),ht=a(t=>{let u=t.map(Ne).filter(Boolean);for(let e=0;e<u.length;e++)for(let l=e+1;l<u.length;l++){let c=u[e],p=u[l],i=c[0];if(!(!i||c!==i.repeat(c.length)||p!==i.repeat(p.length))&&(c===p||c.startsWith(p)||p.startsWith(c)))return true}return false},"hasRepeatedCharPrefixOverlap"),_e=a((t,u=true)=>{if(t[0]!=="+"&&t[0]!=="*"||t[1]!=="(")return;let e=0,l=0,c=0,p=false;for(let i=1;i<t.length;i++){let f=t[i];if(p===true){p=false;continue}if(f==="\\"){p=true;continue}if(f==='"'){c=c===1?0:1;continue}if(c!==1){if(f==="["){e++;continue}if(f==="]"&&e>0){e--;continue}if(!(e>0)){if(f==="("){l++;continue}if(f===")"&&(l--,l===0))return u===true&&i!==t.length-1?void 0:{type:t[0],body:t.slice(2,i),end:i}}}}},"parseRepeatedExtglob"),Et=a(t=>{let u=0,e=[];for(;u<t.length;){let c=_e(t.slice(u),false);if(!c||c.type!=="*")return;let p=ve(c.body).map(f=>f.trim());if(p.length!==1)return;let i=Ne(p[0]);if(!i||i.length!==1)return;e.push(i),u+=c.end+1;}return e.length<1?void 0:`${e.length===1?U.escapeRegex(e[0]):`[${e.map(c=>U.escapeRegex(c)).join("")}]`}*`},"getStarExtglobSequenceOutput"),gt=a(t=>{let u=0,e=t.trim(),l=_e(e);for(;l;)u++,e=l.body.trim(),l=_e(e);return u},"repeatedExtglobRecursion"),St=a((t,u)=>{if(u.maxExtglobRecursion===false)return {risky:false};let e=typeof u.maxExtglobRecursion=="number"?u.maxExtglobRecursion:ne.DEFAULT_MAX_EXTGLOB_RECURSION,l=ve(t).map(c=>c.trim());if(l.length>1&&(l.some(c=>c==="")||l.some(c=>/^[*?]+$/.test(c))||ht(l)))return {risky:true};for(let c of l){let p=Et(c);if(p)return {risky:true,safeOutput:p};if(gt(c)>e)return {risky:true}}return {risky:false}},"analyzeRepeatedExtglob"),he=a((t,u)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=Ie[t]||t;let e={...u},l=typeof e.maxLength=="number"?Math.min(ae,e.maxLength):ae,c=t.length;if(c>l)throw new SyntaxError(`Input length: ${c}, exceeds maximum allowed length: ${l}`);let p={type:"bos",value:"",output:e.prepend||""},i=[p],f=e.capture?"":"?:",b=ne.globChars(e.windows),N=ne.extglobChars(b),{DOT_LITERAL:g,PLUS_LITERAL:k,SLASH_LITERAL:O,ONE_CHAR:B,DOTS_SLASH:S,NO_DOT:v,NO_DOT_SLASH:V,NO_DOTS_SLASH:W,QMARK:y,QMARK_NO_DOT:q,STAR:Y,START_ANCHOR:D}=b,w=a(a=>`(${f}(?:(?!${D}${a.dot?S:g}).)*?)`,"globstar"),P=e.dot?"":v,A=e.dot?y:q,E=e.bash===true?w(e):Y;e.capture&&(E=`(${E})`),typeof e.noext=="boolean"&&(e.noextglob=e.noext);let n={input:t,index:-1,start:0,dot:e.dot===true,consumed:"",output:"",prefix:"",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:i};t=U.removePrefix(t,n),c=t.length;let G=[],m=[],H=[],r=p,s,K=a(()=>n.index===c-1,"eos"),x=n.peek=(a=1)=>t[n.index+a],$=n.advance=()=>t[++n.index]||"",j=a(()=>t.slice(n.index+1),"remaining"),X=a((a="",L=0)=>{n.consumed+=a,n.index+=L;},"consume"),Z=a(a=>{n.output+=a.output!=null?a.output:a.value,X(a.value);},"append"),Ke=a(()=>{let a=1;for(;x()==="!"&&(x(2)!=="("||x(3)==="?");)$(),n.start++,a++;return a%2===0?false:(n.negated=true,n.start++,true)},"negate"),ue=a(a=>{n[a]++,H.push(a);},"increment"),z=a(a=>{n[a]--,H.pop();},"decrement"),_=a(a=>{if(r.type==="globstar"){let L=n.braces>0&&(a.type==="comma"||a.type==="brace"),o=a.extglob===true||G.length&&(a.type==="pipe"||a.type==="paren");a.type!=="slash"&&a.type!=="paren"&&!L&&!o&&(n.output=n.output.slice(0,-r.output.length),r.type="star",r.value="*",r.output=E,n.output+=r.output);}if(G.length&&a.type!=="paren"&&(G[G.length-1].inner+=a.value),(a.value||a.output)&&Z(a),r&&r.type==="text"&&a.type==="text"){r.output=(r.output||r.value)+a.value,r.value+=a.value;return}a.prev=r,i.push(a),r=a;},"push"),oe=a((a,L)=>{let o={...N[L],conditions:1,inner:""};o.prev=r,o.parens=n.parens,o.output=n.output,o.startIndex=n.index,o.tokensIndex=i.length;let h=(e.capture?"(":"")+o.open;ue("parens"),_({type:a,value:L,output:n.output?"":B}),_({type:"paren",extglob:true,value:$(),output:h}),G.push(o);},"extglobOpen"),Xe=a(a=>{let L=t.slice(a.startIndex,n.index+1),o=t.slice(a.startIndex+2,n.index),h=St(o,e);if((a.type==="plus"||a.type==="star")&&h.risky){let d=h.safeOutput?(a.output?"":B)+(e.capture?`(${h.safeOutput})`:h.safeOutput):void 0,F=i[a.tokensIndex];F.type="text",F.value=L,F.output=d||U.escapeRegex(L);for(let Q=a.tokensIndex+1;Q<i.length;Q++)i[Q].value="",i[Q].output="",delete i[Q].suffix;n.output=a.output+F.output,n.backtrack=true,_({type:"paren",extglob:true,value:s,output:""}),z("parens");return}let C=a.close+(e.capture?")":""),I;if(a.type==="negate"){let d=E;if(a.inner&&a.inner.length>1&&a.inner.includes("/")&&(d=w(e)),(d!==E||K()||/^\)+$/.test(j()))&&(C=a.close=`)$))${d}`),a.inner.includes("*")&&(I=j())&&/^\.[^\\/.]+$/.test(I)){let F=he(I,{...u,fastpaths:false}).output;C=a.close=`)${F})${d})`;}a.prev.type==="bos"&&(n.negatedExtglob=true);}_({type:"paren",extglob:true,value:s,output:C}),z("parens");},"extglobClose");if(e.fastpaths!==false&&!/(^[*!]|[/()[\]{}"])/.test(t)){let a=false,L=t.replace(At,(o,h,C,I,d,F)=>I==="\\"?(a=true,o):I==="?"?h?h+I+(d?y.repeat(d.length):""):F===0?A+(d?y.repeat(d.length):""):y.repeat(C.length):I==="."?g.repeat(C.length):I==="*"?h?h+I+(d?E:""):E:h?o:`\\${o}`);return a===true&&(e.unescape===true?L=L.replace(/\\/g,""):L=L.replace(/\\+/g,o=>o.length%2===0?"\\\\":o?"\\":"")),L===t&&e.contains===true?(n.output=t,n):(n.output=U.wrapOutput(L,n,u),n)}for(;!K();){if(s=$(),s==="\0")continue;if(s==="\\"){let o=x();if(o==="/"&&e.bash!==true||o==="."||o===";")continue;if(!o){s+="\\",_({type:"text",value:s});continue}let h=/^\\+/.exec(j()),C=0;if(h&&h[0].length>2&&(C=h[0].length,n.index+=C,C%2!==0&&(s+="\\")),e.unescape===true?s=$():s+=$(),n.brackets===0){_({type:"text",value:s});continue}}if(n.brackets>0&&(s!=="]"||r.value==="["||r.value==="[^")){if(e.posix!==false&&s===":"){let o=r.value.slice(1);if(o.includes("[")&&(r.posix=true,o.includes(":"))){let h=r.value.lastIndexOf("["),C=r.value.slice(0,h),I=r.value.slice(h+2),d=pt[I];if(d){r.value=C+d,n.backtrack=true,$(),!p.output&&i.indexOf(r)===1&&(p.output=B);continue}}}(s==="["&&x()!==":"||s==="-"&&x()==="]")&&(s=`\\${s}`),s==="]"&&(r.value==="["||r.value==="[^")&&(s=`\\${s}`),e.posix===true&&s==="!"&&r.value==="["&&(s="^"),r.value+=s,Z({value:s});continue}if(n.quotes===1&&s!=='"'){s=U.escapeRegex(s),r.value+=s,Z({value:s});continue}if(s==='"'){n.quotes=n.quotes===1?0:1,e.keepQuotes===true&&_({type:"text",value:s});continue}if(s==="("){ue("parens"),_({type:"paren",value:s});continue}if(s===")"){if(n.parens===0&&e.strictBrackets===true)throw new SyntaxError(ee("opening","("));let o=G[G.length-1];if(o&&n.parens===o.parens+1){Xe(G.pop());continue}_({type:"paren",value:s,output:n.parens?")":"\\)"}),z("parens");continue}if(s==="["){if(e.nobracket===true||!j().includes("]")){if(e.nobracket!==true&&e.strictBrackets===true)throw new SyntaxError(ee("closing","]"));s=`\\${s}`;}else ue("brackets");_({type:"bracket",value:s});continue}if(s==="]"){if(e.nobracket===true||r&&r.type==="bracket"&&r.value.length===1){_({type:"text",value:s,output:`\\${s}`});continue}if(n.brackets===0){if(e.strictBrackets===true)throw new SyntaxError(ee("opening","["));_({type:"text",value:s,output:`\\${s}`});continue}z("brackets");let o=r.value.slice(1);if(r.posix!==true&&o[0]==="^"&&!o.includes("/")&&(s=`/${s}`),r.value+=s,Z({value:s}),e.literalBrackets===false||U.hasRegexChars(o))continue;let h=U.escapeRegex(r.value);if(n.output=n.output.slice(0,-r.value.length),e.literalBrackets===true){n.output+=h,r.value=h;continue}r.value=`(${f}${h}|${r.value})`,n.output+=r.value;continue}if(s==="{"&&e.nobrace!==true){ue("braces");let o={type:"brace",value:s,output:"(",outputIndex:n.output.length,tokensIndex:n.tokens.length};m.push(o),_(o);continue}if(s==="}"){let o=m[m.length-1];if(e.nobrace===true||!o){_({type:"text",value:s,output:s});continue}let h=")";if(o.dots===true){let C=i.slice(),I=[];for(let d=C.length-1;d>=0&&(i.pop(),C[d].type!=="brace");d--)C[d].type!=="dots"&&I.unshift(C[d].value);h=Rt(I,e),n.backtrack=true;}if(o.comma!==true&&o.dots!==true){let C=n.output.slice(0,o.outputIndex),I=n.tokens.slice(o.tokensIndex);o.value=o.output="\\{",s=h="\\}",n.output=C;for(let d of I)n.output+=d.output||d.value;}_({type:"brace",value:s,output:h}),z("braces"),m.pop();continue}if(s==="|"){G.length>0&&G[G.length-1].conditions++,_({type:"text",value:s});continue}if(s===","){let o=s,h=m[m.length-1];h&&H[H.length-1]==="braces"&&(h.comma=true,o="|"),_({type:"comma",value:s,output:o});continue}if(s==="/"){if(r.type==="dot"&&n.index===n.start+1){n.start=n.index+1,n.consumed="",n.output="",i.pop(),r=p;continue}_({type:"slash",value:s,output:O});continue}if(s==="."){if(n.braces>0&&r.type==="dot"){r.value==="."&&(r.output=g);let o=m[m.length-1];r.type="dots",r.output+=s,r.value+=s,o.dots=true;continue}if(n.braces+n.parens===0&&r.type!=="bos"&&r.type!=="slash"){_({type:"text",value:s,output:g});continue}_({type:"dot",value:s,output:g});continue}if(s==="?"){if(!(r&&r.value==="(")&&e.noextglob!==true&&x()==="("&&x(2)!=="?"){oe("qmark",s);continue}if(r&&r.type==="paren"){let h=x(),C=s;(r.value==="("&&!/[!=<:]/.test(h)||h==="<"&&!/<([!=]|\w+>)/.test(j()))&&(C=`\\${s}`),_({type:"text",value:s,output:C});continue}if(e.dot!==true&&(r.type==="slash"||r.type==="bos")){_({type:"qmark",value:s,output:q});continue}_({type:"qmark",value:s,output:y});continue}if(s==="!"){if(e.noextglob!==true&&x()==="("&&(x(2)!=="?"||!/[!=<:]/.test(x(3)))){oe("negate",s);continue}if(e.nonegate!==true&&n.index===0){Ke();continue}}if(s==="+"){if(e.noextglob!==true&&x()==="("&&x(2)!=="?"){oe("plus",s);continue}if(r&&r.value==="("||e.regex===false){_({type:"plus",value:s,output:k});continue}if(r&&(r.type==="bracket"||r.type==="paren"||r.type==="brace")||n.parens>0){_({type:"plus",value:s});continue}_({type:"plus",value:k});continue}if(s==="@"){if(e.noextglob!==true&&x()==="("&&x(2)!=="?"){_({type:"at",extglob:true,value:s,output:""});continue}_({type:"text",value:s});continue}if(s!=="*"){(s==="$"||s==="^")&&(s=`\\${s}`);let o=ft.exec(j());o&&(s+=o[0],n.index+=o[0].length),_({type:"text",value:s});continue}if(r&&(r.type==="globstar"||r.star===true)){r.type="star",r.star=true,r.value+=s,r.output=E,n.backtrack=true,n.globstar=true,X(s);continue}let a=j();if(e.noextglob!==true&&/^\([^?]/.test(a)){oe("star",s);continue}if(r.type==="star"){if(e.noglobstar===true){X(s);continue}let o=r.prev,h=o.prev,C=o.type==="slash"||o.type==="bos",I=h&&(h.type==="star"||h.type==="globstar");if(e.bash===true&&(!C||a[0]&&a[0]!=="/")){_({type:"star",value:s,output:""});continue}let d=n.braces>0&&(o.type==="comma"||o.type==="brace"),F=G.length&&(o.type==="pipe"||o.type==="paren");if(!C&&o.type!=="paren"&&!d&&!F){_({type:"star",value:s,output:""});continue}for(;a.slice(0,3)==="/**";){let Q=t[n.index+4];if(Q&&Q!=="/")break;a=a.slice(3),X("/**",3);}if(o.type==="bos"&&K()){r.type="globstar",r.value+=s,r.output=w(e),n.output=r.output,n.globstar=true,X(s);continue}if(o.type==="slash"&&o.prev.type!=="bos"&&!I&&K()){n.output=n.output.slice(0,-(o.output+r.output).length),o.output=`(?:${o.output}`,r.type="globstar",r.output=w(e)+(e.strictSlashes?")":"|$)"),r.value+=s,n.globstar=true,n.output+=o.output+r.output,X(s);continue}if(o.type==="slash"&&o.prev.type!=="bos"&&a[0]==="/"){let Q=a[1]!==void 0?"|$":"";n.output=n.output.slice(0,-(o.output+r.output).length),o.output=`(?:${o.output}`,r.type="globstar",r.output=`${w(e)}${O}|${O}${Q})`,r.value+=s,n.output+=o.output+r.output,n.globstar=true,X(s+$()),_({type:"slash",value:"/",output:""});continue}if(o.type==="bos"&&a[0]==="/"){r.type="globstar",r.value+=s,r.output=`(?:^|${O}|${w(e)}${O})`,n.output=r.output,n.globstar=true,X(s+$()),_({type:"slash",value:"/",output:""});continue}n.output=n.output.slice(0,-r.output.length),r.type="globstar",r.output=w(e),r.value+=s,n.output+=r.output,n.globstar=true,X(s);continue}let L={type:"star",value:s,output:E};if(e.bash===true){L.output=".*?",(r.type==="bos"||r.type==="slash")&&(L.output=P+L.output),_(L);continue}if(r&&(r.type==="bracket"||r.type==="paren")&&e.regex===true){L.output=s,_(L);continue}(n.index===n.start||r.type==="slash"||r.type==="dot")&&(r.type==="dot"?(n.output+=V,r.output+=V):e.dot===true?(n.output+=W,r.output+=W):(n.output+=P,r.output+=P),x()!=="*"&&(n.output+=B,r.output+=B)),_(L);}for(;n.brackets>0;){if(e.strictBrackets===true)throw new SyntaxError(ee("closing","]"));n.output=U.escapeLast(n.output,"["),z("brackets");}for(;n.parens>0;){if(e.strictBrackets===true)throw new SyntaxError(ee("closing",")"));n.output=U.escapeLast(n.output,"("),z("parens");}for(;n.braces>0;){if(e.strictBrackets===true)throw new SyntaxError(ee("closing","}"));n.output=U.escapeLast(n.output,"{"),z("braces");}if(e.strictSlashes!==true&&(r.type==="star"||r.type==="bracket")&&_({type:"maybe_slash",value:"",output:`${O}?`}),n.backtrack===true){n.output="";for(let a of n.tokens)n.output+=a.output!=null?a.output:a.value,a.suffix&&(n.output+=a.suffix);}return n},"parse");he.fastpaths=(t,u)=>{let e={...u},l=typeof e.maxLength=="number"?Math.min(ae,e.maxLength):ae,c=t.length;if(c>l)throw new SyntaxError(`Input length: ${c}, exceeds maximum allowed length: ${l}`);t=Ie[t]||t;let{DOT_LITERAL:p,SLASH_LITERAL:i,ONE_CHAR:f,DOTS_SLASH:b,NO_DOT:N,NO_DOTS:g,NO_DOTS_SLASH:k,STAR:O,START_ANCHOR:B}=ne.globChars(e.windows),S=e.dot?g:N,v=e.dot?k:N,V=e.capture?"":"?:",W={negated:false,prefix:""},y=e.bash===true?".*?":O;e.capture&&(y=`(${y})`);let q=a(P=>P.noglobstar===true?y:`(${V}(?:(?!${B}${P.dot?b:p}).)*?)`,"globstar"),Y=a(P=>{switch(P){case "*":return `${S}${f}${y}`;case ".*":return `${p}${f}${y}`;case "*.*":return `${S}${y}${p}${f}${y}`;case "*/*":return `${S}${y}${i}${f}${v}${y}`;case "**":return S+q(e);case "**/*":return `(?:${S}${q(e)}${i})?${v}${f}${y}`;case "**/*.*":return `(?:${S}${q(e)}${i})?${v}${y}${p}${f}${y}`;case "**/.*":return `(?:${S}${q(e)}${i})?${p}${f}${y}`;default:{let A=/^(.*?)\.(\w+)$/.exec(P);if(!A)return;let E=Y(A[1]);return E?E+p+A[2]:void 0}}},"create"),D=U.removePrefix(t,W),w=Y(D);return w&&e.strictSlashes!==true&&(w+=`${i}?`),w};we.exports=he;});var Ge=b((It,Be)=>{var xt=me(),Ee=ke(),De=se(),bt=te(),yt=a(t=>t&&typeof t=="object"&&!Array.isArray(t),"isObject"),T=a((t,u,e=false)=>{if(Array.isArray(t)){let g=t.map(O=>T(O,u,e));return a(O=>{for(let B of g){let S=B(O);if(S)return S}return false},"arrayMatcher")}let l=yt(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!l)throw new TypeError("Expected pattern to be a non-empty string");let c=u||{},p=c.windows,i=l?T.compileRe(t,u):T.makeRe(t,u,false,true),f=i.state;delete i.state;let b=a(()=>false,"isIgnored");if(c.ignore){let g={...u,ignore:null,onMatch:null,onResult:null};b=T(c.ignore,g,e);}let N=a((g,k=false)=>{let{isMatch:O,match:B,output:S}=T.test(g,i,u,{glob:t,posix:p}),v={glob:t,state:f,regex:i,posix:p,input:g,output:S,match:B,isMatch:O};return typeof c.onResult=="function"&&c.onResult(v),O===false?(v.isMatch=false,k?v:false):b(g)?(typeof c.onIgnore=="function"&&c.onIgnore(v),v.isMatch=false,k?v:false):(typeof c.onMatch=="function"&&c.onMatch(v),k?v:true)},"matcher");return e&&(N.state=f),N},"picomatch");T.test=(t,u,e,{glob:l,posix:c}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return {isMatch:false,output:""};let p=e||{},i=p.format||(c?De.toPosixSlashes:null),f=t===l,b=f&&i?i(t):t;return f===false&&(b=i?i(t):t,f=b===l),(f===false||p.capture===true)&&(p.matchBase===true||p.basename===true?f=T.matchBase(t,u,e,c):f=u.exec(b)),{isMatch:!!f,match:f,output:b}};T.matchBase=(t,u,e)=>(u instanceof RegExp?u:T.makeRe(u,e)).test(De.basename(t));T.isMatch=(t,u,e)=>T(u,e)(t);T.parse=(t,u)=>Array.isArray(t)?t.map(e=>T.parse(e,u)):Ee(t,{...u,fastpaths:false});T.scan=(t,u)=>xt(t,u);T.compileRe=(t,u,e=false,l=false)=>{if(e===true)return t.output;let c=u||{},p=c.contains?"":"^",i=c.contains?"":"$",f=`${p}(?:${t.output})${i}`;t&&t.negated===true&&(f=`^(?!${f}).*$`);let b=T.toRegex(f,u);return l===true&&(b.state=t),b};T.makeRe=(t,u={},e=false,l=false)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let c={negated:false,fastpaths:true};return u.fastpaths!==false&&(t[0]==="."||t[0]==="*")&&(c.output=Ee.fastpaths(t,u)),c.output||(c=Ee(t,u)),T.compileRe(c,u,e,l)};T.toRegex=(t,u)=>{try{let e=u||{};return new RegExp(t,e.flags||(e.nocase?"i":""))}catch(e){if(u&&u.debug===true)throw e;return /$^/}};T.constants=bt;Be.exports=T;});var Ct=b((Nt,Ue)=>{var Me=Ge(),dt=se();function Pe(t,u,e=false){return u&&(u.windows===null||u.windows===void 0)&&(u={...u,windows:dt.isWindows()}),Me(t,u,e)}a(Pe,"picomatch");Object.assign(Pe,Me);Ue.exports=Pe;});export{Ct as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {b as b$1,a as a$2}from'./chunk-SYADAYF4.mjs';import {b as b$2}from'./chunk-FU7FCNTW.mjs';import {a as a$1}from'./chunk-MBKCCWSD.mjs';import {d}from'./chunk-2EZDTBUU.mjs';import {d as d$1}from'./chunk-NBSJGM2X.mjs';import {b}from'./chunk-B3DZ5HVQ.mjs';import {a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
async function v(g,l={}){let $=new a$1,n=await d(g);if(n.packages.length===0){b.warn("No workspace packages found");return}let o;try{o=b$1(n.adjacency);}catch(r){if(r instanceof a$2){b.error(`Cannot push: ${r.message}`);return}throw r}let w=new Map(n.packages.map(r=>[r.name,r.dir]));b.info(`Pushing ${o.length} packages in dependency order`),d$1(`[batch-push] Order: ${o.join(" \u2192 ")}`);let a=0,t=0;for(let r of o){let i=w.get(r);if(i)try{await b$2(i,l),a++;}catch(s){b.warn(`Failed to push ${r}: ${s instanceof Error?s.message:String(s)}`),t++;}}b.success(`Pushed ${a}/${o.length} packages in ${$.elapsed()}${t>0?` (${t} failed)`:""}`);}a(v,"doPushAll");export{v as a};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {a}from'./chunk-2VCW5RWI.mjs';import {parseArgs}from'util';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var B=/\d/,H=["-","_","/","."];function G(e=""){if(!B.test(e))return e!==e.toLowerCase()}a(G,"isUppercase");function T(e,s){let n=s??H,a=[];if(!e||typeof e!="string")return a;let o="",r,d;for(let t of e){let u=n.includes(t);if(u===true){a.push(o),o="",r=void 0;continue}let f=G(t);if(d===false){if(r===false&&f===true){a.push(o),o=t,r=f;continue}if(r===true&&f===false&&o.length>1){let p=o.at(-1);a.push(o.slice(0,Math.max(0,o.length-1))),o=p+t,r=f;continue}}o+=t,r=f,d=u;}return a.push(o),a}a(T,"splitByCase");function V(e){return e?e[0].toUpperCase()+e.slice(1):""}a(V,"upperFirst");function W(e){return e?e[0].toLowerCase()+e.slice(1):""}a(W,"lowerFirst");function z(e,s){return e?(Array.isArray(e)?e:T(e)).map(n=>V(s?.normalize?n.toLowerCase():n)).join(""):""}a(z,"pascalCase");function O(e,s){return W(z(e||"",s))}a(O,"camelCase");function j(e,s){return e?(Array.isArray(e)?e:T(e)).map(n=>n.toLowerCase()).join(s??"-"):""}a(j,"kebabCase");function D(e){return j(e||"","_")}a(D,"snakeCase");function N(e){return Array.isArray(e)?e:e===void 0?[]:[e]}a(N,"toArray");function x(e,s=""){let n=[];for(let a of e)for(let[o,r]of a.entries())n[o]=Math.max(n[o]||0,r.length);return e.map(a=>a.map((o,r)=>s+o[r===0?"padStart":"padEnd"](n[r])).join(" ")).join(`
|
|
4
|
+
`)}a(x,"formatLineColumns");function w(e){return typeof e=="function"?e():e}a(w,"resolveValue");var A=class extends Error{static{a(this,"CLIError");}code;constructor(e,s){super(e),this.name="CLIError",this.code=s;}};function Z(e=[],s={}){let n=new Set(s.boolean||[]),a$1=new Set(s.string||[]),o=s.alias||{},r=s.default||{},d=new Map,t=new Map;for(let[i,c]of Object.entries(o)){let h=c;for(let C of h)d.set(i,C),t.has(C)||t.set(C,[]),t.get(C).push(i),d.set(C,i),t.has(i)||t.set(i,[]),t.get(i).push(C);}let u={};function f(i){if(n.has(i))return "boolean";let c=t.get(i)||[];for(let h of c)if(n.has(h))return "boolean";return "string"}a(f,"getType");function p(i){if(a$1.has(i))return true;let c=t.get(i)||[];for(let h of c)if(a$1.has(h))return true;return false}a(p,"isStringType");let $=new Set([...n,...a$1,...Object.keys(o),...Object.values(o).flat(),...Object.keys(r)]);for(let i of $)u[i]||(u[i]={type:f(i),default:r[i]});for(let[i,c]of d.entries())i.length===1&&u[c]&&!u[c].short&&(u[c].short=i);let b=[],m={};for(let i=0;i<e.length;i++){let c=e[i];if(c==="--"){b.push(...e.slice(i));break}if(c.startsWith("--no-")){let h=c.slice(5);m[h]=true;continue}b.push(c);}let y;try{y=parseArgs({args:b,options:Object.keys(u).length>0?u:void 0,allowPositionals:!0,strict:!1});}catch{y={values:{},positionals:b};}let g={_:[]};g._=y.positionals;for(let[i,c]of Object.entries(y.values)){let h=c;f(i)==="boolean"&&typeof c=="string"?h=c!=="false":p(i)&&typeof c=="boolean"&&(h=""),g[i]=h;}for(let[i]of Object.entries(m)){g[i]=false;let c=d.get(i);c&&(g[c]=false);let h=t.get(i);if(h)for(let C of h)g[C]=false;}for(let[i,c]of d.entries())g[i]!==void 0&&g[c]===void 0&&(g[c]=g[i]),g[c]!==void 0&&g[i]===void 0&&(g[i]=g[c]),g[i]!==g[c]&&r[c]===g[c]&&(g[c]=g[i]);return g}a(Z,"parseRawArgs");var J=(()=>{let e=globalThis.process?.env??{};return e.NO_COLOR==="1"||e.TERM==="dumb"||e.TEST||e.CI})(),_=a((e,s=39)=>n=>J?n:`\x1B[${e}m${n}\x1B[${s}m`,"_c"),E=_(1,22),v=_(36),M=_(90),S=_(4,24);function Q(e,s){let n={boolean:[],string:[],alias:{},default:{}},a=P(s);for(let t of a){if(t.type==="positional")continue;t.type==="string"||t.type==="enum"?n.string.push(t.name):t.type==="boolean"&&n.boolean.push(t.name),t.default!==void 0&&(n.default[t.name]=t.default),t.alias&&(n.alias[t.name]=t.alias);let u=O(t.name),f=j(t.name);if(u!==t.name||f!==t.name){let p=N(n.alias[t.name]||[]);u!==t.name&&!p.includes(u)&&p.push(u),f!==t.name&&!p.includes(f)&&p.push(f),p.length>0&&(n.alias[t.name]=p);}}let o=Z(e,n),[...r]=o._,d=new Proxy(o,{get(t,u){return t[u]??t[O(u)]??t[j(u)]}});for(let[,t]of a.entries())if(t.type==="positional"){let u=r.shift();if(u!==void 0)d[t.name]=u;else {if(t.default===void 0&&t.required!==false)throw new A(`Missing required positional argument: ${t.name.toUpperCase()}`,"EARG");d[t.name]=t.default;}}else if(t.type==="enum"){let u=d[t.name],f=t.options||[];if(u!==void 0&&f.length>0&&!f.includes(u))throw new A(`Invalid value for argument: ${v(`--${t.name}`)} (${v(u)}). Expected one of: ${f.map(p=>v(p)).join(", ")}.`,"EARG")}else if(t.required&&d[t.name]===void 0)throw new A(`Missing required argument: --${t.name}`,"EARG");return d}a(Q,"parseArgs");function P(e){let s=[];for(let[n,a]of Object.entries(e||{}))s.push({...a,name:n,alias:N(a.alias)});return s}a(P,"resolveArgs");async function X(e){return Promise.all(e.map(s=>w(s)))}a(X,"resolvePlugins");async function U(e,s){let n=await w(e.args||{}),a=Q(s.rawArgs,n),o={rawArgs:s.rawArgs,args:a,data:s.data,cmd:e},r=await X(e.plugins??[]),d,t;try{for(let p of r)await p.setup?.(o);typeof e.setup=="function"&&await e.setup(o);let f=await w(e.subCommands);if(f&&Object.keys(f).length>0){let p=F(s.rawArgs,n),$=s.rawArgs[p];if($){let b=await k(f,$);if(!b)throw new A(`Unknown command ${v($)}`,"E_UNKNOWN_COMMAND");await U(b,{rawArgs:s.rawArgs.slice(p+1)});}else {let b=await w(e.default);if(b){if(e.run)throw new A("Cannot specify both 'run' and 'default' on the same command.","E_DEFAULT_CONFLICT");let m=await k(f,b);if(!m)throw new A(`Default sub command ${v(b)} not found in subCommands.`,"E_UNKNOWN_COMMAND");await U(m,{rawArgs:s.rawArgs});}else if(!e.run)throw new A("No command specified.","E_NO_COMMAND")}}typeof e.run=="function"&&(d=await e.run(o));}catch(f){t=f;}let u=[];if(typeof e.cleanup=="function")try{await e.cleanup(o);}catch(f){u.push(f);}for(let f of [...r].reverse())try{await f.cleanup?.(o);}catch(p){u.push(p);}if(t)throw t;if(u.length===1)throw u[0];if(u.length>1)throw new Error("Multiple cleanup errors",{cause:u});return {result:d}}a(U,"runCommand");async function L(e,s,n){let a=await w(e.subCommands);if(a&&Object.keys(a).length>0){let o=F(s,await w(e.args||{})),r=s[o],d=await k(a,r);if(d)return L(d,s.slice(o+1),e)}return [e,n]}a(L,"resolveSubCommand");async function k(e,s){if(s in e)return w(e[s]);for(let n of Object.values(e)){let a=await w(n),o=await w(a?.meta);if(o?.alias&&N(o.alias).includes(s))return a}}a(k,"_findSubCommand");function F(e,s){for(let n=0;n<e.length;n++){let a=e[n];if(a==="--")return -1;if(a.startsWith("-")){!a.includes("=")&&Y(a,s)&&n++;continue}return n}return -1}a(F,"findSubCommandIndex");function Y(e,s){let n=e.replace(/^-{1,2}/,""),a=O(n);for(let[o,r]of Object.entries(s))if(!(r.type!=="string"&&r.type!=="enum")&&(a===O(o)||(Array.isArray(r.alias)?r.alias:r.alias?[r.alias]:[]).includes(n)))return true;return false}a(Y,"_isValueFlag");async function ee(e,s){try{console.log(await te(e,s)+`
|
|
5
|
+
`);}catch(n){console.error(n);}}a(ee,"showUsage");var ne=/^no[-A-Z]/;async function te(e,s){let n=await w(e.meta||{}),a=P(await w(e.args||{})),o=await w(s?.meta||{}),r=`${o.name?`${o.name} `:""}`+(n.name||process.argv[1]),d=[],t=[],u=[],f=[];for(let m of a)if(m.type==="positional"){let y=m.name.toUpperCase(),g=m.required!==false&&m.default===void 0;t.push([v(y+R(m)),I(m,g)]),f.push(g?`<${y}>`:`[${y}]`);}else {let y=m.required===true&&m.default===void 0,g=[...(m.alias||[]).map(i=>`-${i}`),`--${m.name}`].join(", ")+R(m);if(d.push([v(g),I(m,y)]),m.type==="boolean"&&(m.default===true||m.negativeDescription)&&!ne.test(m.name)){let i=[...(m.alias||[]).map(c=>`--no-${c}`),`--no-${m.name}`].join(", ");d.push([v(i),[m.negativeDescription,y?M("(Required)"):""].filter(Boolean).join(" ")]);}y&&f.push(`--${m.name}`+R(m));}if(e.subCommands){let m=[],y=await w(e.subCommands);for(let[g,i]of Object.entries(y)){let c=await w((await w(i))?.meta);if(c?.hidden)continue;let h=N(c?.alias),C=[g,...h].join(", ");u.push([v(C),c?.description||""]),m.push(g,...h);}f.push(m.join("|"));}let p=[],$=n.version||o.version;p.push(M(`${n.description} (${r+($?` v${$}`:"")})`),"");let b=d.length>0||t.length>0;return p.push(`${S(E("USAGE"))} ${v(`${r}${b?" [OPTIONS]":""} ${f.join(" ")}`)}`,""),t.length>0&&(p.push(S(E("ARGUMENTS")),""),p.push(x(t," ")),p.push("")),d.length>0&&(p.push(S(E("OPTIONS")),""),p.push(x(d," ")),p.push("")),u.length>0&&(p.push(S(E("COMMANDS")),""),p.push(x(u," ")),p.push("",`Use ${v(`${r} <command> --help`)} for more information about a command.`)),p.filter(m=>typeof m=="string").join(`
|
|
6
|
+
`)}a(te,"renderUsage");function R(e){let s=e.valueHint?`=<${e.valueHint}>`:"",n=s||`=<${D(e.name)}>`;return !e.type||e.type==="positional"||e.type==="boolean"?s:e.type==="enum"&&e.options?.length?`=<${e.options.join("|")}>`:n}a(R,"renderValueHint");function I(e,s){let n=s?M("(Required)"):"",a=e.default===void 0?"":M(`(Default: ${e.default})`);return [e.description,n,a].filter(Boolean).join(" ")}a(I,"renderDescription");async function ue(e,s={}){let n=s.rawArgs||process.argv.slice(2),a=s.showUsage||ee;try{let o=await se(e);if(o.help.length>0&&n.some(r=>o.help.includes(r)))await a(...await L(e,n)),process.exit(0);else if(n.length===1&&o.version.includes(n[0])){let r=typeof e.meta=="function"?await e.meta():await e.meta;if(!r?.version)throw new A("No version specified","E_NO_VERSION");console.log(r.version);}else await U(e,{rawArgs:n});}catch(o){o instanceof A?(await a(...await L(e,n)),console.error(o.message)):console.error(o,`
|
|
7
|
+
`),process.exit(1);}}a(ue,"runMain");async function se(e){let s=await w(e.args||{}),n=new Set,a=new Set;for(let[o,r]of Object.entries(s)){n.add(o);for(let d of N(r.alias))a.add(d);}return {help:q("help","h",n,a),version:q("version","v",n,a)}}a(se,"_resolveBuiltinFlags");function q(e,s,n,a){return n.has(e)||a.has(e)?[]:n.has(s)||a.has(s)?[`--${e}`]:[`--${e}`,`-${s}`]}a(q,"_getBuiltinFlags");export{ue as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile}from'fs/promises';import {join}from'path';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
async function u(e,r){let o=r==="npm"?"npm run ":`${r} `;try{let a=JSON.parse(await readFile(join(e,"package.json"),"utf-8")).scripts||{};for(let n of ["build","compile","bundle","tsc"])if(a[n])return `${o}${n}`}catch{}return null}a(u,"detectBuildCommand");export{u as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {b,a,c}from'./chunk-2VCW5RWI.mjs';import {createInterface}from'readline/promises';import {stdout,stdin}from'process';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var f=b((v,g)=>{var s=process||{},c=s.argv||[],x=s.env||{},y=!(x.NO_COLOR||c.includes("--no-color"))&&(!!x.FORCE_COLOR||c.includes("--color")||s.platform==="win32"||(s.stdout||{}).isTTY&&x.TERM!=="dumb"||!!x.CI),w=a((e,t,o=e)=>b=>{let i=""+b,n=i.indexOf(t,e.length);return ~n?e+O(i,t,o,n)+t:e+i+t},"formatter"),O=a((e,t,o,b)=>{let i="",n=0;do i+=e.substring(n,b)+o,n=b+t.length,b=e.indexOf(t,n);while(~b);return i+e.substring(n)},"replaceClose"),u=a((e=y)=>{let t=e?w:()=>String;return {isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}},"createColors");g.exports=u();g.exports.createColors=u;});var r=c(f(),1);var m=3;async function k(e,t){let o=createInterface({input:stdin,output:stdout});try{if(t.type==="confirm"){let n=t.initial!==!1?"Y/n":"y/N",a=(await o.question(`${r.default.cyan("?")} ${e} ${r.default.dim(`(${n})`)} `)).trim().toLowerCase();return a===""?t.initial!==!1:a==="y"||a==="yes"}if(t.type==="text"){let n=t.default?r.default.dim(` (${t.default})`):"";return (await o.question(`${r.default.cyan("?")} ${e}${n} `)).trim()||t.default||""}console.log(`${r.default.cyan("?")} ${e}`);for(let n=0;n<t.options.length;n++)console.log(` ${r.default.cyan(`${n+1}.`)} ${t.options[n].label}`);let b=await o.question(`${r.default.dim("Enter number:")} `),i=parseInt(b,10)-1;return i>=0&&i<t.options.length?t.options[i].value:t.options[0].value}finally{o.close();}}a(k,"prompt");var T={get level(){return m},set level(e){m=e;},info(e,...t){m>=3&&console.log(r.default.cyan("i"),e,...t);},success(e,...t){m>=3&&console.log(r.default.green("OK"),e,...t);},warn(e,...t){m>=2&&console.warn(r.default.yellow("!"),e,...t);},error(e,...t){m>=1&&console.error(r.default.red("x"),e,...t);},start(e,...t){m>=3&&console.log(r.default.cyan("..."),e,...t);},debug(e,...t){m>=4&&console.debug(r.default.dim("D"),e,...t);},log(e,...t){m>=3&&console.log(e,...t);},prompt:k};export{f as a,T as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {c}from'./chunk-NBSJGM2X.mjs';import {b}from'./chunk-B3DZ5HVQ.mjs';import {a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
function r(u){c()&&console.log(JSON.stringify(u,null,2));}a(r,"output");function s(){c()&&(b.level=-1);}a(s,"suppressHumanOutput");export{r as a,s as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {a as a$2}from'./chunk-IM555H3S.mjs';import {b as b$1}from'./chunk-V2ED74ZQ.mjs';import {a as a$5}from'./chunk-YZCBBQCH.mjs';import {a as a$3}from'./chunk-TEFMLGCB.mjs';import {a as a$7}from'./chunk-7JG555TZ.mjs';import {a as a$6}from'./chunk-HQ7NKBQW.mjs';import {a as a$1}from'./chunk-MBKCCWSD.mjs';import {a as a$4}from'./chunk-BS4VKVYH.mjs';import {j,f,d as d$1}from'./chunk-OLUZ7T7G.mjs';import {o}from'./chunk-23HXXAGG.mjs';import {d}from'./chunk-NBSJGM2X.mjs';import {b}from'./chunk-B3DZ5HVQ.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile}from'fs/promises';import {join}from'path';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
async function L(n){try{let i=await readFile(join(n,"package.json"),"utf-8"),t=JSON.parse(i).knarr;if(!t||typeof t!="object")return {};let o={},e=t;return typeof e.buildCmd=="string"&&(o.buildCmd=e.buildCmd),Array.isArray(e.watchPatterns)&&(o.watchPatterns=e.watchPatterns.filter(r=>typeof r=="string")),typeof e.debounce=="number"&&Number.isFinite(e.debounce)&&(o.debounce=e.debounce),typeof e.cooldown=="number"&&Number.isFinite(e.cooldown)&&(o.cooldown=e.cooldown),typeof e.historyLimit=="number"&&Number.isFinite(e.historyLimit)&&(o.historyLimit=Math.max(0,Math.floor(e.historyLimit))),typeof e.notify=="boolean"&&(o.notify=e.notify),d(`[config] Loaded knarr config from package.json: ${JSON.stringify(o)}`),o}catch{return {}}}a(L,"loadKnarrConfig");var K=o(4);async function nt(n,i={}){let s=new a$1,t=await a$2(n,{runScripts:i.runScripts,force:i.force,historyLimit:i.historyLimit});if(t.skipped){b.info("No changes to push");return}let o=await b$1(t.name,t.version);if(!o){a$3(`Failed to read store entry for ${t.name}@${t.version} after publish`);return}let e=await j(t.name);if(e.length===0){b.success(`Published ${t.name}@${t.version} to store`),b.info("No consumers registered yet. Run 'knarr add "+t.name+"' in a consumer project to start receiving pushes."),a$4({name:t.name,version:t.version,buildId:t.buildId,consumers:0,failedConsumers:0,copied:0,skipped:0,elapsed:s.elapsedMs()});return}let r=0,f$1=0,a=0,p=0,b$2=await Promise.all(e.map(d$2=>K(async()=>{let g=await f(d$2,t.name);if(!g)return d(`[push] No link found for ${t.name} in ${d$2}, skipping`),null;try{let l=await a$5(o,d$2,g.packageManager,{force:i.force});return await d$1(d$2,t.name,{...g,contentHash:o.meta.contentHash,linkedAt:new Date().toISOString(),buildId:o.meta.buildId??""}),l}catch(l){return b.warn(`Failed to push to ${d$2}: ${l instanceof Error?l.message:String(l)}`),null}})));for(let d of b$2)d?(r+=d.copied,f$1+=d.skipped,a++):p++;let M=t.buildId?` [${t.buildId}]`:"";b.success(`Pushed ${t.name}@${t.version}${M} to ${a} consumer(s) in ${s.elapsed()} (${r} files changed, ${f$1} unchanged)`),a$4({name:t.name,version:t.version,buildId:t.buildId,consumers:a,failedConsumers:p,copied:r,skipped:f$1,elapsed:s.elapsedMs()});}a(nt,"doPush");function W(n){if(!n)return;let i=parseInt(n,10);return Number.isFinite(i)?i:void 0}a(W,"parseMs");async function rt(n,i,s){let{startWatcher:t}=await import('./watcher-PTPUN2HE.mjs'),o=await L(n),{buildCmd:e,patterns:r}=await J(n,i,o),f=i.notify??o.notify??false,a$1=await t(n,{patterns:r,buildCmd:e,debounce:W(i.debounce)??o.debounce,cooldown:W(i.cooldown)??o.cooldown,notify:f},s);await new Promise(p=>{let b$1=a(async()=>{b.info("Stopping watcher..."),await a$1.close(),p();},"cleanup");process.once("SIGINT",b$1),process.once("SIGTERM",b$1);});}a(rt,"startWatchMode");async function J(n,i,s){let t=i.build,o=s?.watchPatterns;if(!i.build){if(!i["skip-build"])if(s?.buildCmd)t=s.buildCmd,b.info(`Using build command from config: ${t}`);else {let e=await a$6(n),r=await a$7(n,e);r&&(t=r,b.info(`Auto-detected build command: ${r}`));}}if(t){let{exists:e}=await import('./fs-35635IS7.mjs'),r=["src","lib","source","app","pages","components"],f=(await Promise.all(r.map(async a=>({dir:a,exists:await e(join(n,a))})))).filter(a=>a.exists).map(a=>a.dir);o=f.length>0?f:["src","lib"],d(`[watch] Using source patterns with build command: ${o.join(", ")}`);}else {b.info("No build command detected \u2014 watching output directories directly");try{let e=JSON.parse(await readFile(join(n,"package.json"),"utf-8"));e.files&&e.files.length>0?(o=e.files,b.info(`Watching from package.json "files": ${o.join(", ")}`)):b.warn('No "files" field in package.json \u2014 falling back to watching src/ and lib/. Add a "files" field or use --build to specify a build command.');}catch(e){d(`[watch] Could not read package.json: ${e instanceof Error?e.message:String(e)}`);}}return {buildCmd:t,patterns:o}}a(J,"resolveWatchConfig");async function st(n,i,s){let t=!i["no-cascade"],{WatchOrchestrator:o}=await import('./watch-orchestrator-F6S5WQQX.mjs');await new o(t).start(n,i,s);}a(st,"startMultiWatchMode");export{L as a,nt as b,rt as c,J as d,st as e};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {b as b$1}from'./chunk-XQVMCMO7.mjs';import {d as d$1,c}from'./chunk-YZCBBQCH.mjs';import {a as a$4}from'./chunk-TEFMLGCB.mjs';import {d as d$2}from'./chunk-HQ7NKBQW.mjs';import {a as a$2}from'./chunk-MBKCCWSD.mjs';import {b as b$2,a as a$3}from'./chunk-BS4VKVYH.mjs';import {e,i,a as a$1,f}from'./chunk-OLUZ7T7G.mjs';import {r}from'./chunk-23HXXAGG.mjs';import {d,b as b$3}from'./chunk-NBSJGM2X.mjs';import {b}from'./chunk-B3DZ5HVQ.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {basename,resolve}from'path';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var z={meta:{name:"remove",description:"Remove a Knarr-linked package and restore the original"},args:{package:{type:"positional",description:"Package name to remove",required:false},all:{type:"boolean",description:"Remove all linked packages",default:false},force:{type:"boolean",description:"Skip error checking",default:false},yes:{type:"boolean",alias:"y",description:"Skip confirmation prompts",default:false}},async run({args:i}){b$2();let e=new a$2,n=resolve(".");if(i.all){let u=await a$1(n),a=Object.entries(u.links);if(a.length===0){b.info("No linked packages to remove"),a$3({removed:0});return}if(!i.yes){let l=a.map(([m])=>m).join(", "),d=await b.prompt(`Remove ${a.length} linked package(s)? (${l})`,{type:"confirm"});if(!d||typeof d=="symbol"){b.info("Cancelled");return}}let r=0,s=0;for(let[l,d]of a)try{await E(n,l,d),r++;}catch(m){s++,b.warn(`Failed to remove ${l}: ${m instanceof Error?m.message:String(m)}`);}b.success(`Removed ${r} Knarr link(s)${s>0?`, ${s} failed`:""} in ${e.elapsed()}`),a$3({removed:r,failed:s,elapsed:e.elapsedMs()});return}let o=i.package;o||(a$4("Package name required. Use --all to remove all linked packages."),process.exit(1));let p=await f(n,o);if(!p){if(i.force){b.warn(`Package "${o}" is not linked, skipping`),a$3({removed:0});return}a$4(`Package "${o}" is not linked in this project`),process.exit(1);}await E(n,o,p),b.success(`Removed Knarr link for ${o} in ${e.elapsed()}`),a$3({removed:1,package:o,elapsed:e.elapsedMs()}),b$3()&&r();}};async function E(i$1,e$1,n){if(d(`[remove] Removing ${e$1}`),await d$1(i$1,e$1,n.packageManager),n.backupExists)try{await c(i$1,e$1,n.packageManager)&&b.success(`Restored original ${e$1} from backup`);}catch(r){b.warn(`Failed to restore backup for ${e$1}: ${r instanceof Error?r.message:String(r)}. Run your package manager's install command to restore it.`);}let o=await d$2(i$1);o.type==="next"&&o.configFile&&(await b$1(o.configFile,e$1)).modified&&d(`[remove] Removed ${e$1} from ${basename(o.configFile)}`);let{findTailwindCss:p,removeTailwindSource:u}=await import('./tailwind-source-ND5FE6PQ.mjs'),a=await p(i$1);if(a&&(await u(a,e$1)).modified&&d(`[remove] Removed @source for ${e$1} from ${basename(a)}`),await e(i$1,e$1),await i(e$1,i$1),o.type==="vite"&&o.configFile){let r=await a$1(i$1);if(Object.keys(r.links).length===0){let{removeFromViteConfig:s}=await import('./vite-config-URP2SYRQ.mjs');(await s(o.configFile)).modified&&d(`[remove] Removed Knarr plugin from ${basename(o.configFile)}`);}}}a(E,"removeSinglePackage");export{z as a,E as b};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {A}from'./chunk-23HXXAGG.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile,stat}from'fs/promises';import {join,dirname}from'path';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var y=new Set(["npm","pnpm","yarn","bun"]),k=[["pnpm-lock.yaml","pnpm"],["bun.lockb","bun"],["bun.lock","bun"],["yarn.lock","yarn"],["package-lock.json","npm"]];async function P(r){try{let n=await readFile(join(r,"package.json"),"utf-8"),e=JSON.parse(n);if(typeof e.packageManager!="string")return null;let t=e.packageManager.split("@")[0];return y.has(t)?t:null}catch{return null}}a(P,"readPackageManagerField");async function x(r){let n=r;for(;;){let e=await P(n);if(e)return e;let o=(await Promise.all(k.map(async([a,s])=>{try{return await stat(join(n,a)),s}catch{return null}}))).find(a=>a!==null);if(o)return o;let i=dirname(n);if(i===n)return "npm";n=i;}}a(x,"detectPackageManager");async function h(r){let n=r;for(;;){let e;try{e=await readFile(join(n,".yarnrc.yml"),"utf-8");}catch{let t=dirname(n);if(t===n)return null;n=t;continue}for(let t of e.split(`
|
|
4
|
+
`)){let o=t.trim();if(o.startsWith("#")||!o.includes("nodeLinker"))continue;let i=o.match(/^nodeLinker:\s*(.+)$/);if(i){let a=i[1].trim().replace(/^["']|["']$/g,"");if(a==="node-modules"||a==="pnpm"||a==="pnp")return a}}return null}}a(h,"detectYarnNodeLinker");async function j(r){let n=r;for(;;)try{return await stat(join(n,".yarnrc.yml")),!0}catch{let e=dirname(n);if(e===n)return false;n=e;}}a(j,"hasYarnrcYml");var d=[["vite",["vite.config.ts","vite.config.js","vite.config.mts","vite.config.mjs"]],["next",["next.config.js","next.config.ts","next.config.mjs"]],["webpack",["webpack.config.js","webpack.config.ts"]],["turbo",["turbo.json"]],["rollup",["rollup.config.js","rollup.config.ts","rollup.config.mjs"]]];async function v(r){for(let[n,e]of d)for(let t of e){let o=join(r,t);if(await A(o))return {type:n,configFile:o}}return {type:null,configFile:null}}a(v,"detectBundler");async function I(r){let n=d.flatMap(([i,a])=>a.map(async s=>({type:i,configFile:join(r,s),found:await A(join(r,s))}))),e=await Promise.all(n),t=new Set,o=[];for(let{type:i,configFile:a,found:s}of e)s&&!t.has(i)&&(t.add(i),o.push({type:i,configFile:a}));return o}a(I,"detectAllBundlers");export{x as a,h as b,j as c,v as d,I as e};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {a as a$2}from'./chunk-V2ED74ZQ.mjs';import {a as a$3}from'./chunk-Z22BYXWQ.mjs';import {a}from'./chunk-3KNUBUPH.mjs';import {o,m,s,p,e,z,y,t,A,w,x,q}from'./chunk-23HXXAGG.mjs';import {d,b as b$1}from'./chunk-NBSJGM2X.mjs';import {b}from'./chunk-B3DZ5HVQ.mjs';import {c,a as a$1}from'./chunk-2VCW5RWI.mjs';import {stat,readFile,readdir,writeFile,rename}from'fs/promises';import {resolve,join,relative,sep,dirname}from'path';import {spawn}from'child_process';import {availableParallelism,platform}from'os';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var P=c(a(),1);async function Y(s$1,n){let i=[],t=resolve(s$1);i.push(join(t,"package.json"));let e=await Z(t,t),o=e.map(a=>m(relative(t,a)));if(n.files&&n.files.length>0)for(let a of n.files){let r=join(t,a),u=resolve(r);if(!u.startsWith(t+sep)&&u!==t){b.warn(`files pattern "${a}" escapes package directory, skipping`);continue}let c=false;try{if((await stat(r)).isDirectory()){let b=m(relative(t,r))+"/";for(let f=0;f<o.length;f++)o[f].startsWith(b)&&i.push(e[f]);c=!0;}else i.push(r),c=!0;}catch(d){if(s(d)&&d.code!=="ENOENT")throw d}if(!c){let d=(0, P.default)(a,{dot:true}),b$1=0;for(let f=0;f<o.length;f++)if(d(o[f])){let E=resolve(e[f]);if(!E.startsWith(t+sep)&&E!==t)continue;i.push(e[f]),b$1++;}b$1===0&&b.warn(`files pattern "${a}" matched no files`);}}else {let a=await pe(t);for(let r=0;r<o.length;r++)ue(o[r],a)||i.push(e[r]);}let p=new Set(i),l=new Set(e);for(let a of ["README.md","README","LICENSE","LICENCE","CHANGELOG.md"]){let r=join(t,a);p.has(r)||l.has(r)&&(i.push(r),p.add(r));}return [...p]}a$1(Y,"resolvePackFiles");var fe=new Set(["node_modules",".git",".svn",".hg",".DS_Store",".npmrc",".knarr","test","tests","__tests__",".github",".vscode",".idea","coverage",".nyc_output","tsconfig.json","tsconfig.build.json",".eslintrc",".eslintrc.js",".eslintrc.json",".prettierrc",".prettierrc.js","jest.config.js","jest.config.ts","vitest.config.ts","vitest.config.js"]);function ue(s,n){for(let t of n.negations)if(t(s))return false;let i=s.split(/[\\/]/);for(let t of i)if(fe.has(t)||n.literals.has(t))return true;if(n.literals.has(s))return true;for(let t of n.patterns)if(t(s))return true;return false}a$1(ue,"shouldIgnore");async function pe(s$1){let n={literals:new Set,patterns:[],negations:[]};try{let i=await readFile(join(s$1,".npmignore"),"utf-8");for(let t of i.split(`
|
|
4
|
+
`)){let e=t.trim();if(!(!e||e.startsWith("#")))if(e.startsWith("!")){let o=e.slice(1);X(o)?n.negations.push((0,P.default)(o,{dot:!0})):n.negations.push((0,P.default)(o,{dot:!0}));}else X(e)?n.patterns.push((0,P.default)(e,{dot:!0})):n.literals.add(e.replace(/\/$/,""));}}catch(i){if(s(i)&&i.code!=="ENOENT")throw i}return n}a$1(pe,"loadNpmIgnore");function X(s){return /[*?[\]{}()]/.test(s)}a$1(X,"hasGlobChars");async function Z(s$1,n){let i=[];try{let t=await readdir(s$1,{withFileTypes:!0});for(let e of t){let o=join(s$1,e.name);if(e.isDirectory()){if(e.name===".git"||s$1===n&&e.name==="node_modules"||e.isSymbolicLink())continue;i.push(...await Z(o,n));}else e.isSymbolicLink()||i.push(o);}}catch(t){if(s(t)&&t.code==="ENOENT")return [];throw t}return i}a$1(Z,"collectAllFiles");var be=o(Math.max(availableParallelism(),8));async function Xe(s,n={}){let i=join(s,"package.json"),t$1;try{t$1=await readFile(i,"utf-8");}catch{throw new Error(`No package.json found in ${s}`)}let e$1=JSON.parse(t$1);if(!e$1.name)throw new Error("package.json missing 'name' field");if(!e$1.version)throw new Error("package.json missing 'version' field");if(e$1.private&&!n.allowPrivate)throw new Error(`Package "${e$1.name}" is private. Use --private flag to publish private packages.`);await $(s,e$1,"preknarr"),n.runScripts!==false&&await $(s,e$1,"prepack");let o=s;if(e$1.publishConfig?.directory){o=resolve(s,e$1.publishConfig.directory);try{if(!(await stat(o)).isDirectory())throw new Error(`publishConfig.directory "${e$1.publishConfig.directory}" is not a directory`)}catch(c){throw c instanceof Error&&"code"in c&&c.code==="ENOENT"?new Error(`publishConfig.directory "${e$1.publishConfig.directory}" does not exist`):c}d(`[publish] Using publishConfig.directory: ${o}`);}let p$1=o!==s?JSON.parse(await readFile(join(o,"package.json"),"utf-8").catch(()=>JSON.stringify(e$1))):e$1,l=await Y(o,p$1);if(l.length===0)throw new Error("No publishable files found");d(`[publish] Resolved ${l.length} files for ${e$1.name}@${e$1.version}`);let a=await p(l,o);if(await Ce(e$1,s),await Se(e$1,s),!n.force){let c=await a$2(e$1.name,e$1.version);if(c&&c.contentHash===a)return b.info(`${e$1.name}@${e$1.version} already up to date (no changes since last publish)`),{name:e$1.name,version:e$1.version,fileCount:l.length,skipped:true,contentHash:a,buildId:c.buildId??""}}let r=e(e$1.name,e$1.version),u=await a$3(r+".lock",async()=>{if(!n.force){let f=await a$2(e$1.name,e$1.version);if(f&&f.contentHash===a)return b.info(`${e$1.name}@${e$1.version} already up to date (no changes since last publish)`),{name:e$1.name,version:e$1.version,fileCount:l.length,skipped:true,contentHash:a,buildId:f.buildId??""}}let c=r+`.tmp-${process.pid}-${Date.now()}`,d$1=join(c,"package"),b$1=a.slice(9,17);try{await z(d$1);let f=ke(e$1);f=Pe(f),d("[publish] Copying files to temp store...");let E=new Set(l.map(g=>dirname(join(d$1,relative(o,g)))));await Promise.all([...E].map(g=>y(g))),await Promise.all(l.map(g=>be(async()=>{let D=relative(o,g),F=join(d$1,D);D==="package.json"&&f!==e$1?await writeFile(F,JSON.stringify(f,null,2)):await t(g,F,{ensureParent:!1});}))),o!==s&&await writeFile(join(d$1,"package.json"),JSON.stringify(f,null,2));let ie={schemaVersion:1,contentHash:a,publishedAt:new Date().toISOString(),sourcePath:s,buildId:b$1};await writeFile(join(c,".knarr-meta.json"),JSON.stringify(ie,null,2));let _=await A(r),O=r+".old-"+Date.now();if(_&&await rename(r,O),await w(c,r),_){try{let{captureHistory:g}=await import('./history-XUZSDCNE.mjs');await g(e$1.name,e$1.version,O,n.historyLimit);}catch(g){d(`[publish] History capture failed: ${g instanceof Error?g.message:String(g)}`);}await x(O);}d(`[publish] Stored at ${r}`);}catch(f){throw await x(c),f}return {name:e$1.name,version:e$1.version,fileCount:l.length,skipped:false,contentHash:a,buildId:b$1}},{stale:6e4});return u.skipped||(n.runScripts!==false&&await $(s,e$1,"postpack"),await $(s,e$1,"postknarr"),b.success(`Published ${e$1.name}@${e$1.version} (${l.length} files) [${u.buildId}]`)),u}a$1(Xe,"publish");var te=parseInt(process.env.KNARR_HOOK_TIMEOUT??"30000",10);async function $(s,n,i){let t=n.scripts?.[i];if(t){if(b$1()){q({type:"lifecycle-skip",path:s,detail:`${i}: ${t}`});return}return d(`[lifecycle] Running ${i}: ${t}`),new Promise((e,o)=>{let p=platform()==="win32",r=spawn(p?"cmd":"sh",[p?"/c":"-c",t],{cwd:s,stdio:"inherit"}),u=setTimeout(()=>{r.kill("SIGTERM"),o(new Error(`${i} script timed out after ${te/1e3}s. Increase KNARR_HOOK_TIMEOUT env var if the script needs more time.`));},te);r.on("close",c=>{clearTimeout(u),c===0?e():o(new Error(`${i} script failed with exit code ${c}`));}),r.on("error",c=>{clearTimeout(u),o(new Error(`${i} script error: ${c.message}`));});})}}a$1($,"runLifecycleHook");var ve=["main","module","exports","types","typings","browser","bin"];function Pe(s){if(!s.publishConfig)return s;let n={...s};for(let i of ve)i in s.publishConfig&&(n[i]=s.publishConfig[i]);return delete n.publishConfig,n}a$1(Pe,"applyPublishConfig");function ke(s){let n=false,i={...s},t=null,e=false;for(let o of ["dependencies","devDependencies","peerDependencies","optionalDependencies"]){let p=s[o];if(!p)continue;let l=false,a={...p};for(let[r,u]of Object.entries(p))if(u.startsWith("workspace:")){let c=u.slice(10);if(c==="*"||c==="^"||c==="~"){let d=S?.versions.get(r)??s.version;a[r]=c==="*"?d:c+d;}else a[r]=c;l=true,n=true;}else if(u.startsWith("catalog:"))if(e||(t=$e(),e=true),t){let c=Ee(u,r,t);c?(a[r]=c,l=true,n=true):b.warn(`catalog: specifier for "${r}" could not be resolved \u2014 published package.json will contain "${u}" which may cause install failures`);}else d(`[publish] No pnpm-workspace.yaml found, cannot resolve catalog: for "${r}"`);l&&(i[o]=a);}return n?i:s}a$1(ke,"rewriteProtocolVersions");function Ee(s,n,i){let t=s.slice(8);return t===""||t==="default"?i.default[n]??null:i.named[t]?.[n]??null}a$1(Ee,"resolveCatalogVersion");var J=null;async function ne(s){if(J?.dir===s)return J.root;let{findWorkspaceRoot:n}=await import('./workspace-L5CGPK7U.mjs'),i=await n(s);return J={dir:s,root:i},i}a$1(ne,"getWorkspaceRoot");var S=null;async function Ce(s,n){if(!["dependencies","devDependencies","peerDependencies","optionalDependencies"].some(l=>{let a=s[l];return a&&Object.values(a).some(r=>r.startsWith("workspace:"))}))return;let t=await ne(n);if(!t){S=null;return}if(S?.root===t)return;let{findWorkspacePackages:e}=await import('./workspace-L5CGPK7U.mjs'),o=await e(t),p=new Map;await Promise.all(o.map(async l=>{try{let a=JSON.parse(await readFile(join(l,"package.json"),"utf-8"));a.name&&a.version&&p.set(a.name,a.version);}catch{}})),S={root:t,versions:p};}a$1(Ce,"preloadWorkspaceVersions");var k=null;function $e(){return k?.catalogs??null}a$1($e,"loadCatalogsFromCache");async function Se(s,n){if(!["dependencies","devDependencies","peerDependencies","optionalDependencies"].some(a=>{let r=s[a];return r&&Object.values(r).some(u=>u.startsWith("catalog:"))}))return;let t=await ne(n);if(!t){k=null;return}let e=join(t,"pnpm-workspace.yaml"),o=(await stat(e).catch(()=>null))?.mtimeMs??0;if(k?.root===t&&k.mtimeMs===o)return;let{parseCatalogs:p}=await import('./workspace-L5CGPK7U.mjs'),l=await p(t);k={root:t,mtimeMs:o,catalogs:l};}a$1(Se,"preloadCatalogs");export{Xe as a};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {c as c$1,a as a$2}from'./chunk-OLUZ7T7G.mjs';import {j,k,A,y as y$1}from'./chunk-23HXXAGG.mjs';import {a,b}from'./chunk-B3DZ5HVQ.mjs';import {c,a as a$1}from'./chunk-2VCW5RWI.mjs';import {readFile,writeFile}from'fs/promises';import {join}from'path';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var y=c(a(),1);async function x(t){let n="";try{n=await readFile(t,"utf-8");}catch{}if(n.split(`
|
|
4
|
+
`).some(a=>a.trim()===".knarr/"||a.trim()===".knarr"||a.trim()==="/.knarr/"||a.trim()==="/.knarr"))return false;let o=n.length>0&&!n.endsWith(`
|
|
5
|
+
`)?`
|
|
6
|
+
`:"",i=n.length>0?`
|
|
7
|
+
# knarr local links
|
|
8
|
+
.knarr/
|
|
9
|
+
`:`# knarr local links
|
|
10
|
+
.knarr/
|
|
11
|
+
`;return await writeFile(t,n+o+i),true}a$1(x,"ensureGitignore");async function S(t){let n=await readFile(t,"utf-8"),r=JSON.parse(n);if(r.scripts?.postinstall)return r.scripts.postinstall.includes("knarr")||b.warn(`Existing postinstall script found. Add ${y.default.cyan("npx knarr restore")} manually if needed.`),false;r.scripts||(r.scripts={}),r.scripts.postinstall="npx knarr restore || true";let s=n.match(/^(\s+)"/m)?.[1]||" ";return await writeFile(t,JSON.stringify(r,null,s)+`
|
|
12
|
+
`),true}a$1(S,"addPostinstall");async function v(t){let n;try{n=await readFile(t,"utf-8");}catch{return false}let r=JSON.parse(n);if(!r.scripts?.postinstall?.includes("knarr"))return false;delete r.scripts.postinstall,Object.keys(r.scripts).length===0&&delete r.scripts;let s=n.match(/^(\s+)"/m)?.[1]||" ";return await writeFile(t,JSON.stringify(r,null,s)+`
|
|
13
|
+
`),true}a$1(v,"removePostinstall");async function I(t,n){let r=j(t),s=k(t);if(!await A(s))await y$1(r),await c$1(t,{version:"1",packageManager:n,role:"consumer",links:{}});else {let a=await a$2(t);a.packageManager||(a.packageManager=n,a.role=a.role??"consumer",await c$1(t,a));}let o=join(t,".gitignore");await x(o);let i=join(t,"package.json");await A(i)&&await S(i);}a$1(I,"ensureConsumerInit");export{x as a,S as b,v as c,I as d};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var s=class{static{a(this,"Timer");}start=performance.now();elapsedMs(){return performance.now()-this.start}elapsed(){let e=this.elapsedMs();return e>=1e3?`${(e/1e3).toFixed(1)}s`:`${Math.round(e)}ms`}};export{s as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {b}from'./chunk-B3DZ5HVQ.mjs';import {a as a$1}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
var n=false,r=false,s=false;function l(){n=process.argv.includes("--verbose")||process.argv.includes("-v"),r=process.argv.includes("--dry-run"),s=process.argv.includes("--json"),n&&(b.level=4);}a$1(l,"initFlags");function c(){return r}a$1(c,"isDryRun");function a(){return s}a$1(a,"isJsonOutput");function p(t,...u){n&&b.debug(t,...u);}a$1(p,"verbose");export{l as a,c as b,a as c,p as d};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {createRequire}from'node:module';import {c,a as a$1,e}from'./chunk-Z22BYXWQ.mjs';import {k,s,y,j,B as B$1,b as b$1,z,m,A as A$1}from'./chunk-23HXXAGG.mjs';import {b}from'./chunk-B3DZ5HVQ.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile}from'fs/promises';import {dirname}from'path';globalThis.require=createRequire(import.meta.url);
|
|
3
|
+
async function R(t){let{state:r}=await p(t);return r}a(R,"readConsumerState");async function p(t){let r=k(t);try{let e=await readFile(r,"utf-8"),s=JSON.parse(e);return c(s)?{state:s,reliable:!0}:(b.warn(`Invalid consumer state in ${r}, using defaults`),{state:{version:"1",links:{}},reliable:!1})}catch(e){return s(e)&&e.code==="ENOENT"?{state:{version:"1",links:{}},reliable:true}:(b.warn(`Failed to read consumer state: ${e instanceof Error?e.message:String(e)}`),{state:{version:"1",links:{}},reliable:false})}}a(p,"readConsumerStateSafe");async function L(t,r){await y(j(t));let e=k(t);await B$1(e,JSON.stringify(r,null,2));}a(L,"writeConsumerState");async function T(t,r,e){let s=k(t);await a$1(s,async()=>{let{state:i,reliable:c}=await p(t);if(!c)throw new Error(`Consumer state in ${s} is corrupt \u2014 refusing to write to avoid destroying existing links. Delete .knarr/state.json and re-run 'knarr add' for each package.`);i.links[r]=e,await L(t,i);});}a(T,"addLink");async function K(t,r){let e=k(t);await a$1(e,async()=>{let{state:s,reliable:i}=await p(t);if(!i)throw new Error(`Consumer state in ${e} is corrupt \u2014 refusing to write to avoid destroying existing links. Delete .knarr/state.json and re-run 'knarr add' for each package.`);delete s.links[r],await L(t,s);});}a(K,"removeLink");async function M(t,r){return (await R(t)).links[r]??null}a(M,"getLink");async function g(){let t=b$1();try{let r=await readFile(t,"utf-8"),e$1=JSON.parse(r);return e(e$1)?e$1:(b.warn("Invalid consumers registry, using empty registry"),{})}catch(r){return s(r)&&r.code!=="ENOENT"&&b.warn(`Failed to read consumers registry: ${r instanceof Error?r.message:String(r)}`),{}}}a(g,"readConsumersRegistry");async function C(t){let r=b$1();await z(dirname(b$1())),await B$1(r,JSON.stringify(t,null,2));}a(C,"writeConsumersRegistry");async function W(t,r){let e=b$1();await a$1(e,async()=>{let s=await g();s[t]||(s[t]=[]);let i=m(r);s[t].includes(i)||s[t].push(i),await C(s);});}a(W,"registerConsumer");async function q(t,r){let e=b$1();await a$1(e,async()=>{let s=await g();if(!s[t])return;let i=m(r);s[t]=s[t].filter(c=>c!==i),s[t].length===0&&delete s[t],await C(s);});}a(q,"unregisterConsumer");async function A(t){return (await g())[t]??[]}a(A,"getConsumers");async function B(){let t=b$1(),r=0,e=0;return await a$1(t,async()=>{let s=await g(),i={};for(let[c,P]of Object.entries(s)){let d=(await Promise.all(P.map(async o=>({consumerPath:o,valid:await A$1(o)})))).filter(o=>o.valid).map(o=>o.consumerPath);r+=P.length-d.length,d.length>0?i[c]=d:e++;}await C(i);}),{removedConsumers:r,removedPackages:e}}a(B,"cleanStaleConsumers");export{R as a,p as b,L as c,T as d,K as e,M as f,g,W as h,q as i,A as j,B as k};
|