hivefloor 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +62 -2
- package/bin.mjs +33 -0
- package/machine.schema.json +173 -0
- package/package.json +36 -4
- package/urls-CuA4EHSE.mjs +1 -0
- package/validate-config-WKKxO7uI.mjs +112 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Valery Melou
|
|
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
CHANGED
|
@@ -1,3 +1,63 @@
|
|
|
1
|
-
#
|
|
1
|
+
# hivefloor
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The command-line tool that connects Claude Code to your [Hivefloor](https://github.com/valerymelou/hivefloor) office: a live 3D view of your sessions as robots.
|
|
4
|
+
|
|
5
|
+
## Quick start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g hivefloor # or use a standalone binary (no Node needed)
|
|
9
|
+
hivefloor init --url https://your-office.example.com
|
|
10
|
+
hivefloor doctor
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Run `hivefloor add-project "Ledgerly"` from a project folder to show it by name; every other folder stays private. Deploying your own office: [self-hosting guide](https://github.com/valerymelou/hivefloor/blob/main/docs/self-hosting.md).
|
|
14
|
+
|
|
15
|
+
- **Private by construction.** Each event is built field by field from the allowlist in `@hivefloor/schema`. Private projects send only which robot, what kind of work and when. See [privacy](https://github.com/valerymelou/hivefloor/blob/main/docs/privacy.md).
|
|
16
|
+
- **Never in Claude's way.** `hivefloor hook` always exits 0, prints nothing and hands sending to a detached process. Hooks are registered with `"async": true`.
|
|
17
|
+
- **Zero runtime dependencies.** The npm package is one bundled file for Node 20 or later. Standalone binaries (no Node needed) are built with Bun.
|
|
18
|
+
|
|
19
|
+
## Commands
|
|
20
|
+
|
|
21
|
+
| Command | What it does |
|
|
22
|
+
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
23
|
+
| `hivefloor init [--url URL] [--public NAME]` | Writes the config and secret and registers the Claude Code hooks. Safe to run again; backs up settings. |
|
|
24
|
+
| `hivefloor init --rotate` | Creates a new secret (set it on the relay too). |
|
|
25
|
+
| `hivefloor init --secret-stdin` | Reads the relay's existing secret from stdin. |
|
|
26
|
+
| `hivefloor add-project NAME` | Makes a project public: in the machine config and in `office.config.json`. Safe to run again. See below. |
|
|
27
|
+
| `hivefloor doctor` | Checks config, secret, hooks, relay, names and clock; sends a dry-run event; shows what leaves the machine. |
|
|
28
|
+
| `hivefloor preview` | Prints the event a hook payload on stdin would send, without sending it. |
|
|
29
|
+
| `hivefloor pause` / `resume` | Stops or restarts sending. |
|
|
30
|
+
| `hivefloor uninstall [--purge]` | Removes only Hivefloor's hooks; `--purge` also deletes the config, secret and state. |
|
|
31
|
+
| `hivefloor deploy [--dry-run]` | From a Hivefloor checkout: validates `office.config.json` and deploys the relay with Wrangler. |
|
|
32
|
+
| `hivefloor hook [--record]` | Reads one hook payload from stdin. Used by the hooks; `--record` saves a scrubbed copy. |
|
|
33
|
+
| `hivefloor --version` | Prints the version. |
|
|
34
|
+
|
|
35
|
+
Set `HIVEFLOOR_DEBUG=1` to log each decision (never the payload) to `debug.log`, and `HIVEFLOOR_HOME` to use another folder than `~/.config/hivefloor`. Details: [docs/hooks.md](https://github.com/valerymelou/hivefloor/blob/main/docs/hooks.md).
|
|
36
|
+
|
|
37
|
+
### Public projects
|
|
38
|
+
|
|
39
|
+
A public project's name must match in your machine config and in the relay's `office.config.json`; the relay rejects any other name. `hivefloor add-project "Name"` updates both.
|
|
40
|
+
|
|
41
|
+
| Option | What it does |
|
|
42
|
+
| ---------------------- | -------------------------------------------------------------------------------------------- |
|
|
43
|
+
| `--path DIR` | The project's folder. Defaults to the current folder. |
|
|
44
|
+
| `--office-config FILE` | The relay's config. Defaults to `office.config.json` in the current folder, if there is one. |
|
|
45
|
+
| `--color #RRGGBB` | The room's colour. Without it, an existing colour is kept. |
|
|
46
|
+
| `--deploy` | Runs `hivefloor deploy` afterwards, from the folder that holds the office config. |
|
|
47
|
+
|
|
48
|
+
Without an office config, it updates your machine config and prints the exact entry to add on the relay. Anyone viewing the office can see a public project's name and its task titles.
|
|
49
|
+
|
|
50
|
+
## Develop
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
pnpm nx test cli # unit, property and integration tests (90% coverage minimum); builds first
|
|
54
|
+
pnpm nx build cli # bundle to dist/packages/cli/bin.mjs with tsdown
|
|
55
|
+
pnpm nx bench cli # hook benchmark of the Node bundle (CI gates the binary at p95 < 50 ms)
|
|
56
|
+
pnpm nx compile cli # standalone binaries with bun build --compile (needs Bun 1.4)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Code layout: `src/core/` holds pure functions (payload reading, project matching, categories, identity, goals, debounce, event building, `decide`, settings merging, doctor checks); `src/edge/` holds file, config and network I/O; `src/commands/` holds one module per command; `src/main.ts` dispatches and `src/bin.ts` wires in the process.
|
|
60
|
+
|
|
61
|
+
## Licence
|
|
62
|
+
|
|
63
|
+
MIT
|
package/bin.mjs
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{a as e,c as t,o as n,r,s as i,t as a}from"./urls-CuA4EHSE.mjs";import{createRequire as o}from"node:module";import{spawn as s}from"node:child_process";import{createHash as c,createHmac as l,randomBytes as u}from"node:crypto";import{homedir as d}from"node:os";import{createInterface as f}from"node:readline/promises";import{appendFile as p,copyFile as m,mkdir as h,readFile as g,readdir as _,realpath as v,rename as ee,rm as y,stat as b,writeFile as te}from"node:fs/promises";import{basename as x,dirname as S,join as C,posix as ne,relative as re,resolve as w,win32 as ie}from"node:path";import{parseArgs as T}from"node:util";import{constants as ae,existsSync as oe,realpathSync as se}from"node:fs";function ce(e,t,n){return l(`sha256`,e).update(`${String(t)}.${n}`).digest(`hex`)}async function le(e,t){let n=Math.floor(t.now()/1e3);try{return(await t.fetch(t.endpoint,{method:`POST`,headers:{"content-type":`application/json`,"x-office-timestamp":String(n),"x-office-signature":ce(t.secret,n,e),...t.dryRun===!0?{"x-office-dry-run":`1`}:{}},body:e,redirect:`error`,signal:AbortSignal.timeout(1500)})).status}catch{return}}function ue(e,t){let n=t[1];return{file:e,args:n!==void 0&&/\.(c|m)?js$/.test(n)?[n]:[]}}function de(e,t,n=`both`){let r=0,i=e.length;if(n===`both`)for(;r<i&&t.includes(e.charAt(r));)r++;for(;i>r&&t.includes(e.charAt(i-1));)i--;return e.slice(r,i)}function fe(e,t){return/^[A-Za-z0-9_@%+=:,./\\-]+$/.test(e)?e:t?`"${e.replaceAll(`"`,`""`)}"`:`'${e.replaceAll(`'`,`'\\''`)}'`}function pe(e){return e!==void 0&&/\.(c|m)?js$/.test(e)}function me(e){let t=t=>fe(t,e.windows);return pe(e.script)?/[\\/]_npx[\\/]/.test(e.script)?{command:`npx --yes hivefloor@${e.version} hook`,warning:`You ran init through npx, so every hook call will start npx. Install hivefloor globally (npm install -g hivefloor) or use the standalone binary, then run init again.`}:{command:`${t(e.execPath)} ${t(e.script)} hook`}:{command:`${t(e.execPath)} hook`}}function he(e){let t;try{t=new URL(e.trim())}catch{return}if(t.protocol!==`https:`&&t.protocol!==`http:`)return;let n=de(t.pathname,`/`,`end`),r=n.endsWith(`/ingest`)?n.slice(0,-7):n;return`${t.origin}${r}/ingest`}function ge(e){return e.replace(/\/ingest$/,``)}function E(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function _e(e){if(!(e.length===0||e.length>8388608))try{let t=JSON.parse(e);return E(t)?t:void 0}catch{return}}function D(e,t){let n=e?.[t];return typeof n==`string`&&n.length>0?n:void 0}function ve(e,t){let n=e?.[t];return E(n)?n:void 0}function O(e,t){let n=e?.[t];return Array.isArray(n)?n:[]}function k(e,t){let n=e.trim();return(n===`~`||n.startsWith(`~/`)||n.startsWith(`~\\`))&&(n=t.home+n.slice(1)),t.windows&&(n=n.replaceAll(`\\`,`/`).toLowerCase()),n=n.replace(/\/{2,}/g,`/`),n.length>1&&n.endsWith(`/`)&&(n=n.slice(0,-1)),n}function ye(e,t){return t===`/`||e===t||e.startsWith(`${t}/`)}function be(e,t,n){let r=k(e,n),i;for(let e of t){let t=k(e.path,n);ye(r,t)&&(i===void 0||t.length>i.length)&&(i={length:t.length,project:e})}return i?.project.public!==!0||i.project.name===void 0?{isPublic:!1}:{isPublic:!0,name:i.project.name}}function A(e){return E(e)&&typeof e.name==`string`?e.name:void 0}function xe(e,t,n){return e.map((e,r)=>r===t?n:e)}function Se(e,t,n,r){let i=k(t,r),a=e.findIndex(e=>E(e)&&typeof e.path==`string`&&k(e.path,r)===i),o=e[a];if(!E(o))return{projects:[...e,{path:t,public:!0,name:n}],change:`added`};if(o.public===!0&&o.name===n)return{projects:e,change:`unchanged`};let s=o.public===!0?A(o):void 0;return{projects:xe(e,a,{...o,public:!0,name:n}),change:`updated`,...s===void 0?{}:{previousName:s}}}function Ce(e,t){let n=t.name.toLowerCase(),r=e.findIndex(e=>A(e)?.trim().toLowerCase()===n),i=e[r],a=A(i);return!E(i)||a===void 0?{kind:`ok`,projects:[...e,t],change:`added`}:a===t.name?t.color===void 0||i.color===t.color?{kind:`ok`,projects:e,change:`unchanged`}:{kind:`ok`,projects:xe(e,r,{...i,color:t.color}),change:`updated`}:{kind:`conflict`,existing:a}}async function j(e){try{return JSON.parse(await g(e,`utf8`))}catch{return}}async function M(e,t,n=384){await h(S(e),{recursive:!0,mode:448});let r=`${e}.${u(6).toString(`hex`)}.tmp`;try{await te(r,t,{mode:n}),await ee(r,e)}catch(e){throw await y(r,{force:!0}),e}}async function we(e,t){let n;try{n=await _(e)}catch{return}await Promise.all(n.filter(e=>e.startsWith(t)).map(t=>y(C(e,t),{force:!0})))}function N(e,t,n){let r=n?ie:ne,i=e.HIVEFLOOR_HOME??(n?r.join(e.APPDATA??r.join(t,`AppData`,`Roaming`),`hivefloor`):r.join(e.XDG_CONFIG_HOME??r.join(t,`.config`),`hivefloor`)),a=C(i,`state`);return{dir:i,config:C(i,`config.json`),secret:C(i,`secret`),stateDir:a,configCache:C(a,`config.cache.json`),debugLog:C(i,`debug.log`),recordings:C(i,`recordings`)}}function Te(e,t,n){return C(e,n===void 0?`${t}.json`:`${t}.${n}.json`)}function Ee(e){return C(e.stateDir,`office.cache.json`)}async function P(e){let t;try{t=await g(e.config,`utf8`)}catch{return}try{let e=JSON.parse(t);return E(e)?e:null}catch{return null}}async function F(e,t){let n=`${JSON.stringify(t,null,2)}\n`,{checkMachineConfig:r}=await import(`./validate-config-WKKxO7uI.mjs`),i=r(n);return i.ok&&await M(e.config,n),i}function I(e,...t){e.stdout(`${t.join(`
|
|
3
|
+
`)}\n`)}async function L(e){let t;try{t=await g(e.config,`utf8`)}catch{return}let n=c(`sha256`).update(t).digest(`hex`),r=await j(e.configCache);if(E(r)&&r.digest===n&&E(r.config))return r.config;let{validateMachineConfig:i}=await import(`./validate-config-WKKxO7uI.mjs`),a=i(t);return a!==void 0&&await M(e.configCache,JSON.stringify({digest:n,config:a})),a}async function R(e){try{let t=(await g(e.secret,`utf8`)).trim();return t.length>0?t:void 0}catch{return}}async function De(e){for(let t of[e,C(e,`apps`,`relay`)]){let n=await Oe(e,t);if(n!==void 0)return n}}async function Oe(e,t){try{let n=o(C(t,`package.json`)).resolve(`wrangler/package.json`),r=re(se(e),se(n));if(r.startsWith(`..`)||w(r)===r)return;let i=JSON.parse(await g(n,`utf8`)),a=E(i)?i.bin:void 0,s=typeof a==`string`?a:E(a)&&typeof a.wrangler==`string`?a.wrangler:void 0;return s===void 0?void 0:C(S(n),s)}catch{return}}const ke={config:{type:`string`,default:`office.config.json`},"wrangler-config":{type:`string`,default:C(`apps`,`relay`,`wrangler.jsonc`)},"dry-run":{type:`boolean`},"push-secret":{type:`boolean`}};async function Ae(e,t){let n=N(e.env,e.home,e.windows),r=await R(n);if(r!==void 0)return t?r:void 0;if(!t){if(!e.interactive)return;let t=await e.ask(`Create a secret and set it on the relay? This replaces any secret it already has. [Y/n] `);if(/^n/i.test(t.trim()))return}let i=e.randomSecret();return await M(n.secret,`${i}\n`,384),i}async function je(e,t){let{values:n}=T({args:[...e],options:ke,strict:!0}),r=w(t.cwd,n.config),i;try{i=await g(r,`utf8`)}catch{return t.stderr(`hivefloor: no ${r}. Copy office.config.example.json to office.config.json and edit it.\n`),1}let{checkOfficeConfig:a}=await import(`./validate-config-WKKxO7uI.mjs`),o=a(i);if(!o.ok)return t.stderr(`hivefloor: ${r} is invalid:\n ${o.problems.join(`
|
|
4
|
+
`)}\n`),1;let s=JSON.stringify(o.config);if(Buffer.byteLength(s)>5120)return t.stderr(`hivefloor: ${r} is too large for a Worker variable (5120 bytes). Shorten names or remove projects.\n`),1;let c=w(t.cwd,n[`wrangler-config`]),l=await De(t.cwd);if(!oe(c)||l===void 0)return t.stderr(`hivefloor: run deploy from your Hivefloor checkout after pnpm install (looked for ${c} and Wrangler).\n`),1;I(t,`✓ ${r} is valid (${String(o.config.publicProjects.length)} public projects).`);let u=t.script!==void 0&&/\.(c|m)?js$/.test(t.script)?t.execPath:`node`,d=await t.runProcess(u,[l,`deploy`,`--config`,c,`--var`,`OFFICE_CONFIG:${s}`,...n[`dry-run`]===!0?[`--dry-run`]:[]]);if(d!==0)return d;if(n[`dry-run`]===!0)return I(t,``,`Dry run: nothing was deployed and no secret was set.`),0;let f=await Ae(t,n[`push-secret`]===!0);if(f===void 0)return I(t,``,await R(N(t.env,t.home,t.windows))===void 0?`This machine has no secret, so the relay was left as it is. To create one and set it: hivefloor deploy --push-secret`:`Deployed. Next: hivefloor init --url <your office URL>`),0;let p=await t.runProcess(u,[l,`secret`,`put`,`HIVEFLOOR_SECRET`,`--config`,c],f);return p===0?(I(t,``,`✓ Secret set on the relay.`,`Next: hivefloor init --url <your office URL>`),0):(t.stderr(`hivefloor: deployed, but setting the secret failed. Run: hivefloor deploy --push-secret
|
|
5
|
+
`),p)}const z=`office.config.json`,Me={path:{type:`string`},"office-config":{type:`string`},color:{type:`string`},deploy:{type:`boolean`}};function Ne(e,t){return{kind:`failed`,message:`${e} is invalid:\n ${t.join(`
|
|
6
|
+
`)}`}}async function Pe(e,t,n){let r=w(n.cwd,e??z),i;try{i=await g(r,`utf8`)}catch{return e===void 0?{kind:`absent`}:{kind:`failed`,message:`no ${r}. Check the path given to --office-config.`}}let{checkOfficeConfig:a}=await import(`./validate-config-WKKxO7uI.mjs`),o=a(i);if(!o.ok)return Ne(r,o.problems);let s=JSON.parse(i),c=s.publicProjects,l=Ce(Array.isArray(c)?c:[],t);if(l.kind===`conflict`)return{kind:`failed`,message:`${r} already lists "${l.existing}", and names can't differ only by case. Use that exact name, or rename it there first.`};if(l.change===`unchanged`)return{kind:`ready`,path:r,change:`unchanged`,text:i};let u=`${JSON.stringify({...s,publicProjects:l.projects},null,2)}\n`,d=a(u);return d.ok?Buffer.byteLength(JSON.stringify(d.config))>5120?{kind:`failed`,message:`adding "${t.name}" makes ${r} too large for a Worker variable (5120 bytes). Shorten names or remove projects.`}:{kind:`ready`,path:r,change:l.change,text:u}:Ne(r,d.problems)}async function Fe(e,t){if(e===void 0)return t.cwd;try{let n=await v(w(t.cwd,e));return(await b(n)).isDirectory()?n:void 0}catch{return}}async function Ie(e,t){let n=await v(e),{mode:r}=await b(n);await M(n,t,r&511)}function Le(e,t){let n=x(e),r=n===z?`hivefloor deploy`:`hivefloor deploy --config ${fe(n,t.windows)}`;return S(e)===t.cwd?r:`${r} (from ${S(e)})`}function Re(e,t,n){if(e.kind!==`ready`)return[`No ${z} in ${n.cwd}, so the relay rejects "${t.name}" until you add it there.`,`Add this to "publicProjects" in ${z}, in your Hivefloor checkout:`,` ${JSON.stringify(t)}`,`Then run hivefloor deploy from that checkout, or run this again with --office-config PATH.`];let r=Le(e.path,n);return e.change===`unchanged`?[`If the relay doesn't know "${t.name}" yet, run: ${r}`]:[`Next: ${r}. The relay rejects "${t.name}" until it is deployed.`]}async function ze(e,t){let{values:n,positionals:r}=T({args:[...e],options:Me,strict:!0,allowPositionals:!0}),[i,a]=r;if(i===void 0||a!==void 0)return t.stderr(`Usage: hivefloor add-project NAME [--path DIR] [--office-config FILE] [--color #RRGGBB] [--deploy]
|
|
7
|
+
`),2;let o=e=>(t.stderr(`hivefloor: ${e}\n`),1),s=i.trim(),c=n.color===void 0?{name:s}:{name:s,color:n.color},{publicProjectProblems:l}=await import(`./validate-config-WKKxO7uI.mjs`),u=l(c);if(u.length>0)return o(`"${s}" can't be a public project:\n ${u.join(`
|
|
8
|
+
`)}`);let d=N(t.env,t.home,t.windows),f=await P(d);if(f===void 0)return o(`no ${d.config}. Run hivefloor init first.`);if(f===null)return o(`${d.config} is not a JSON object. Fix or delete it first.`);let p=await Fe(n.path,t);if(p===void 0)return o(`${String(n.path)} is not a folder.`);let m=await Pe(n[`office-config`],c,t);if(m.kind===`failed`)return o(m.message);if(m.kind===`absent`&&n.deploy===!0)return o(`--deploy needs ${z}, and there is none in ${t.cwd}. Run from your Hivefloor checkout or pass --office-config PATH. Nothing was changed.`);let h=f.projects,g=Se(Array.isArray(h)?h:[],p,s,{home:t.home,windows:t.windows});if(g.change!==`unchanged`){let e=await F(d,{...f,projects:g.projects});if(!e.ok)return o(`the config would be invalid:\n ${e.problems.join(`
|
|
9
|
+
`)}`)}let _=m.kind===`ready`&&m.change!==`unchanged`;_&&await Ie(m.path,m.text);let v=[...g.change===`unchanged`?[]:[`✓ ${p} is public as "${s}" in ${d.config}`],..._?[`✓ ${m.change===`added`?`Added`:`Recoloured`} "${s}" (${m.path})`]:[]];return I(t,...v.length>0?v:[`Nothing to change: ${p} is already public as "${s}".`]),g.previousName!==void 0&&I(t,`! "${g.previousName}" stays in ${z}. Remove it there if nothing else uses it.`),I(t,`! Anyone viewing the office can see this project's name and its task titles.`),m.kind===`ready`&&n.deploy===!0?je([`--config`,m.path],{...t,cwd:S(m.path)}):(I(t,``,...Re(m,c,t)),0)}const Be=/* @__PURE__ */ new Map([[`Read`,`reading`],[`Glob`,`reading`],[`Grep`,`reading`],[`LSP`,`reading`],[`ListMcpResourcesTool`,`reading`],[`ReadMcpResourceTool`,`reading`],[`Edit`,`coding`],[`MultiEdit`,`coding`],[`Write`,`coding`],[`NotebookEdit`,`coding`],[`WebFetch`,`research`],[`WebSearch`,`research`],[`Agent`,`delegating`],[`Task`,`delegating`],[`SendMessage`,`delegating`],[`ListAgents`,`delegating`],[`SubagentHandback`,`delegating`],[`Workflow`,`delegating`],[`TaskStop`,`delegating`],[`TaskCreate`,`planning`],[`TaskUpdate`,`planning`],[`TaskGet`,`planning`],[`TaskList`,`planning`],[`TodoWrite`,`planning`],[`EnterPlanMode`,`planning`],[`ExitPlanMode`,`planning`],[`AskUserQuestion`,`planning`],[`Monitor`,`monitoring`],[`CronCreate`,`monitoring`],[`CronDelete`,`monitoring`],[`CronList`,`monitoring`],[`ScheduleWakeup`,`monitoring`],[`EnterWorktree`,`vcs`],[`ExitWorktree`,`vcs`],[`RemoteTrigger`,`integration`]]),Ve=/* @__PURE__ */ new Set([`Bash`,`PowerShell`]),He=/* @__PURE__ */ new Set([`vitest`,`jest`,`pytest`,`mocha`,`playwright`,`cypress`,`rspec`,`phpunit`,`ava`,`karma`,`jasmine`,`nextest`]),Ue=/* @__PURE__ */ new Set([`test`,`tests`,`e2e`,`test-ci`]),We=/* @__PURE__ */ new Set([`git`,`gh`,`glab`,`hg`,`svn`,`jj`]);function Ge(e){let t=e.slice(Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`))+1);return t.endsWith(`.exe`)?t.slice(0,-4):t}function Ke(e){return He.has(Ge(e))||Ue.has(e)||e.startsWith(`test:`)}function qe(e){let t=!1;for(let n of e.toLowerCase().split(/&&|\|\||[;|\n]/)){let e=n.split(/\s+/).filter(e=>e.length>0&&!e.includes(`=`)),[r]=e;if(r!==void 0){if(We.has(Ge(r)))t=!0;else if(e.some(Ke))return`testing`}}return t?`vcs`:`terminal`}function Je(e){if(!e.startsWith(`mcp__`))return;let t=e.slice(5),n=t.indexOf(`__`),r=n===-1?t:t.slice(0,n);return r.length>0?r:void 0}function Ye(e,t,n){if(Ve.has(e))return qe(D(t,`command`)??``);let r=Je(e);return r===void 0?Be.get(e)??`working`:(E(n)&&Object.hasOwn(n,r)?n[r]:void 0)??`integration`}const Xe=/* @__PURE__ */ new Set([`start`,`end`,`spawn`,`done`,`idle`]);function Ze(e,t,n){return e===void 0||Xe.has(t.kind)||e.kind!==t.kind||e.cat!==t.cat||e.goal!==t.goal?!0:n-e.at>=10}function Qe(e){let t={v:1,t:e.t,seq:e.seq,sid:e.sid,role:e.role,kind:e.kind};return e.aid!==void 0&&(t.aid=e.aid),e.kind===`tool`&&e.cat!==void 0&&(t.cat=e.cat),e.project!==void 0&&(t.project=e.project,e.goal!==void 0&&(t.goal=e.goal)),t}function $e(e,t){return Math.floor(e/t)*t}const et=/[\u0000-\u001f\u007f-\u009f]+/g;function tt(e,t){if(e.length<=t)return e;let n=``;for(let r of e){if(n.length+r.length>t-1)break;n+=r}return`${n.trimEnd()}…`}function nt(e,t){let n=e.trim().toLowerCase();if(n.startsWith(t.privatePrefix.toLowerCase())||t.blockWords.some(e=>n.includes(e.toLowerCase())))return;let i=tt(e.replace(et,` `).split(/\s+/).filter(e=>e.length>0&&!r(e)).join(` `),t.maxLength);return i.length>0&&!r(i)?i:void 0}function rt(e,t){return e.tasks.find(e=>e.id===t)?.subject}function it(e,t){if(t.fromTaskList){let n=(e.activeTask===void 0?void 0:rt(e,e.activeTask))??e.todo;if(n!==void 0)return nt(n,t)}if(t.fromSessionTitle&&e.title!==void 0)return nt(e.title,t)}function B(e,t){let n=e.tasks.filter(e=>e.id!==t.id);return{...e,tasks:[...n,t].slice(-50)}}function at(e,t){if(t===void 0||e.activeTask!==t)return e;let n={...e};return delete n.activeTask,n}function ot(e,t){let n=D(t,`taskId`)??D(t,`task_id`)??D(t,`id`);if(n===void 0)return e;let r=D(t,`subject`),i=r===void 0?e:B(e,{id:n,subject:r}),a=D(t,`status`);return a===`in_progress`?{...i,activeTask:n}:a===`completed`||a===`deleted`?at(i,n):i}function st(e,t){let n=O(t,`todos`).find(e=>E(e)&&e.status===`in_progress`),r=E(n)?D(n,`activeForm`)??D(n,`content`):void 0;if(r!==void 0)return{...e,todo:r};let i={...e};return delete i.todo,i}function ct(e,t){let n=D(t,`session_title`),r=n===void 0?e:{...e,title:n};switch(D(t,`hook_event_name`)??``){case`TaskCreated`:{let e=D(t,`task_id`),n=D(t,`task_subject`);return e===void 0||n===void 0?r:B(r,{id:e,subject:n})}case`TaskCompleted`:return at(r,D(t,`task_id`));case`PreToolUse`:{let e=D(t,`tool_name`),n=ve(t,`tool_input`);return e===`TaskUpdate`?ot(r,n):e===`TodoWrite`?st(r,n):r}default:return r}}function lt(e){return(/* @__PURE__ */ new Date(e*1e3)).toISOString().slice(0,10)}function ut(e,t){return l(`sha256`,e).update(`hivefloor:salt:${t}`).digest(`hex`)}function dt(e,t){return l(`sha256`,e).update(t).digest(`hex`).slice(0,6)}function ft(e){return c(`sha256`).update(e).digest(`hex`).slice(0,16)}function pt(e,t){return e!==void 0&&e!==`claude`&&t.includes(e)?e:i}function mt(e,t){let{payload:n,config:r}=e,i=t===void 0?`main`:`agent`;switch(D(n,`hook_event_name`)??``){case`SessionStart`:return{kind:`start`,target:`main`};case`UserPromptSubmit`:return{kind:`thinking`,target:`main`};case`Stop`:return t===void 0?{kind:`idle`,target:`main`}:void 0;case`SessionEnd`:return{kind:`end`,target:`main`};case`SubagentStart`:return t===void 0?void 0:{kind:`spawn`,target:i};case`SubagentStop`:return t===void 0||e.agent===void 0?void 0:{kind:`done`,target:i};case`PreToolUse`:{let e=D(n,`tool_name`);return e===void 0?void 0:{kind:`tool`,cat:Ye(e,ve(n,`tool_input`),r.mcpCategories),target:i}}default:return}}function ht(e,t,n){return{kind:e.kind,at:n,...e.cat===void 0?{}:{cat:e.cat},...t===void 0?{}:{goal:t}}}function V(e){let{payload:n,config:r,now:i}=e,a=D(n,`session_id`);if(a===void 0)return{};let o=D(n,`agent_id`),s=e.session??{v:1,seq:0,saltDay:lt(i),goal:{tasks:[]}},c={...s,goal:ct(s.goal,n)},l=JSON.stringify(c)===JSON.stringify(e.session)?{}:{session:c},u=mt(e,o);if(u===void 0)return l;let d=be(D(n,`cwd`)??``,r.projects,e.paths),f=u.target===`main`,p=f?c:e.agent??{seq:0},m=f&&d.isPublic?it(c.goal,r.goals):void 0;if(!Ze(p.last,{kind:u.kind,...u.cat?{cat:u.cat}:{},...m?{goal:m}:{}},i))return l;let h=ut(e.secret,c.saltDay),g=Qe({t:$e(i,r.timestampRoundingSec),seq:p.seq,sid:dt(h,a),...f||o===void 0?{}:{aid:dt(h,o)},role:f?t:pt(D(n,`agent_type`),r.publicAgentTypes),kind:u.kind,...u.cat===void 0?{}:{cat:u.cat},...d.name===void 0?{}:{project:d.name},...m===void 0?{}:{goal:m}}),_={seq:p.seq+1,last:ht(u,m,i)};return f?{event:g,session:{...c,..._},...u.kind===`end`?{remove:`session`}:{}}:{event:g,...l,agent:{v:1,..._},...u.kind===`done`?{remove:`agent`}:{}}}const H=[`SessionStart`,`UserPromptSubmit`,`PreToolUse`,`Stop`,`SubagentStart`,`SubagentStop`,`TaskCreated`,`TaskCompleted`,`SessionEnd`];function gt(e){return de(e,`"'`)}function _t(e){let t=e.trim().split(/\s+/).map(gt);return t.some((e,n)=>e.toLowerCase().includes(`hivefloor`)&&t[n+1]===`hook`)}function U(e){return E(e)&&e.type===`command`&&typeof e.command==`string`&&_t(e.command)}function W(e,t){let n=e[t];return Array.isArray(n)?n:[]}function G(e){return E(e)&&Array.isArray(e.hooks)?e.hooks:[]}function vt(e){return{type:`command`,command:e,async:!0}}function yt(e,t){let n=E(e.hooks)?{...e.hooks}:{},r=[],i=vt(t);for(let e of H){let t=W(n,e),a=t.flatMap(G).filter(U);(a.length!==1||JSON.stringify(a[0])!==JSON.stringify(i))&&(n[e]=[...bt(t),{hooks:[i]}],r.push(e))}return{settings:r.length===0?e:{...e,hooks:n},events:r}}function bt(e){return e.flatMap(e=>{let t=G(e);if(!E(e)||!t.some(U))return[e];let n=t.filter(e=>!U(e));return n.length===0?[]:[{...e,hooks:n}]})}function xt(e){let t=e.hooks;if(!E(t))return{settings:e,events:[]};let n={},r=[];for(let[e,i]of Object.entries(t)){let a=W(t,e);if(!a.flatMap(G).some(U)){n[e]=i;continue}let o=bt(a);o.length>0&&(n[e]=o),r.push(e)}if(r.length===0)return{settings:e,events:r};let i=Object.keys(n).length>0;return{settings:Object.fromEntries(Object.entries(e).flatMap(([e,t])=>e===`hooks`?i?[[e,n]]:[]:[[e,t]])),events:r}}function St(e){if(!E(e.hooks))return[];let t=e.hooks;return Object.keys(t).flatMap(e=>W(t,e).flatMap(G).filter(U).map(t=>{let n=t;return{event:e,command:String(n.command),async:n.async===!0}}))}const K=(e,t,n)=>n===void 0?{status:e,title:t}:{status:e,title:t,detail:n};function Ct(e,t){let n=t===null?NaN:Date.parse(t);if(Number.isNaN(n))return K(`warn`,`Clock`,`The relay sent no usable Date header.`);let r=Math.round((e-n)/1e3);return Math.abs(r)>30?K(`warn`,`Clock`,`Your clock is ${String(Math.abs(r))} s ${r>0?`ahead of`:`behind`} the relay. Beyond 60 s every event is rejected; sync your clock.`):K(`ok`,`Clock`,`Within ${String(Math.abs(r))} s of the relay.`)}function wt(e,t,n){return(E(e)?O(e,t):[]).flatMap(e=>{if(n===void 0)return typeof e==`string`?[e]:[];let t=E(e)?D(e,n):void 0;return t===void 0?[]:[t]})}function Tt(e,t){let n=new Set(wt(t,`publicProjects`,`name`)),r=new Set(wt(t,`agentTypes`)),i=e.projects.flatMap(e=>e.public&&e.name!==void 0&&!n.has(e.name)?[e.name]:[]),a=e.publicAgentTypes.filter(e=>!r.has(e));return[i.length===0?K(`ok`,`Public projects`,`Every public project is known to the relay.`):K(`fail`,`Public projects`,`Not in the relay's office.config.json: ${i.join(`, `)}. Their events are rejected; add them there and redeploy, or fix the names here.`),a.length===0?K(`ok`,`Agent types`,`Every public agent type is known to the relay.`):K(`warn`,`Agent types`,`Not in the relay's agentTypes: ${a.join(`, `)}. Those subagents are rejected; add them there or remove them from publicAgentTypes.`)]}function Et(e){switch(e){case 204:case 200:return K(`ok`,`Signed test event`,`The relay accepted it (dry run: the office did not change).`);case 401:case 403:return K(`fail`,`Signed test event`,`The relay rejected the signature. The secret here and the relay secret differ: run init --rotate and update the relay secret.`);case 400:case 422:return K(`fail`,`Signed test event`,`The relay rejected the event. A project or agent name is probably missing from the relay config.`);case 404:return K(`fail`,`Signed test event`,`No relay at this address. Check the office URL, or deploy the relay.`);case 413:return K(`fail`,`Signed test event`,`The relay said the event is too large; this is a bug, please report it.`);case 429:return K(`warn`,`Signed test event`,`The relay is over Cloudflare's daily limit and pauses until the reset.`);case void 0:return K(`fail`,`Signed test event`,`Could not reach the relay (network error or 1.5 s timeout).`);default:return K(`fail`,`Signed test event`,`The relay answered ${String(e)}.`)}}function Dt(e){let t=new Set(e.map(e=>e.event)),n=H.filter(e=>!t.has(e));return e.length===0?K(`fail`,`Claude Code hooks`,`Not registered. Run hivefloor init.`):n.length>0?K(`fail`,`Claude Code hooks`,`Missing for ${n.join(`, `)}. Run hivefloor init.`):e.some(e=>!e.async)?K(`warn`,`Claude Code hooks`,`Some hooks are not async, so Claude Code waits for them. Run hivefloor init.`):new Set(e.map(e=>e.command)).size>1?K(`warn`,`Claude Code hooks`,`Hooks run different commands. Run hivefloor init.`):K(`ok`,`Claude Code hooks`,`Registered for ${String(H.length)} events: ${e[0]?.command??``}`)}function Ot(e){let t={ok:`✓`,warn:`!`,fail:`✗`};return e.map(e=>`${t[e.status]} ${e.title}${e.detail===void 0?``:`: ${e.detail}`}`).join(`
|
|
10
|
+
`)}function q(e,t){return C(e.CLAUDE_CONFIG_DIR??C(t,`.claude`),`settings.json`)}async function J(e){let t;try{t=await g(e,`utf8`)}catch{return{kind:`missing`,settings:{}}}try{let e=JSON.parse(t);return E(e)?{kind:`ok`,settings:e}:{kind:`invalid`,reason:`it is not a JSON object`}}catch{return{kind:`invalid`,reason:`it is not valid JSON`}}}async function kt(e,t,n,r){let i;if(n){let t=`${e}.hivefloor-backup-${new Date(r).toISOString().replace(/[:.]/g,`-`)}`;for(let n=0;i===void 0;n++){let r=n===0?t:`${t}-${String(n)}`;try{await m(e,r,ae.COPYFILE_EXCL),i=r}catch(e){if(e.code!==`EEXIST`||n>=99)throw e}}}return await M(e,`${JSON.stringify(t,null,2)}\n`,420),i}async function At(e){let t;try{t=await g(e.config,`utf8`)}catch{return{check:{status:`fail`,title:`Config`,detail:`No config at ${e.config}. Run hivefloor init.`}}}let{checkMachineConfig:n}=await import(`./validate-config-WKKxO7uI.mjs`),r=n(t);return r.ok?{check:{status:`ok`,title:`Config`,detail:e.config},config:r.config}:{check:{status:`fail`,title:`Config`,detail:`${e.config} is invalid: ${r.problems.join(`; `)}`}}}async function jt(e,t){let n=await R(e);return n===void 0?{check:{status:`fail`,title:`Secret`,detail:`Missing ${e.secret}. Run hivefloor init.`}}:!t&&(await b(e.secret)).mode&63?{check:{status:`warn`,title:`Secret`,detail:`${e.secret} is readable by other users: chmod 600 it.`},secret:n}:{check:{status:`ok`,title:`Secret`,detail:`Present and private.`},secret:n}}async function Mt(e,t,n){let r=`${ge(e.endpoint)}/api/config`;try{let i=await n.fetch(r,{signal:AbortSignal.timeout(5e3),redirect:`error`});if(!i.ok)return[{status:`fail`,title:`Relay`,detail:`GET ${r} answered ${String(i.status)}.`}];let a=await i.json();return await M(Ee(t),JSON.stringify(a)),[{status:`ok`,title:`Relay`,detail:r},Ct(n.now(),i.headers.get(`date`)),...Tt(e,a)]}catch{return[{status:`fail`,title:`Relay`,detail:`Could not reach ${r}.`}]}}function Nt(e,t,n,r){let{event:i}=V({payload:{session_id:`hivefloor-doctor-${String(n.now())}`,cwd:n.cwd,...r},config:e,secret:t,now:Math.floor(n.now()/1e3),paths:{home:n.home,windows:n.windows}});return i===void 0?void 0:JSON.stringify(i)}async function Pt(e,t){let{values:n}=T({args:[...e],options:{settings:{type:`string`}},strict:!0}),r=N(t.env,t.home,t.windows),i=[],{check:a,config:o}=await At(r);i.push(a),o?.paused===!0&&i.push({status:`warn`,title:`Sending`,detail:`Paused. Run hivefloor resume.`});let{check:s,secret:c}=await jt(r,t.windows);i.push(s);let l=n.settings??q(t.env,t.home),u=await J(l);if(i.push(u.kind===`invalid`?{status:`fail`,title:`Claude Code hooks`,detail:`${l} can't be read: ${u.reason}.`}:Dt(St(u.settings))),o!==void 0&&(i.push(...await Mt(o,r,t)),c!==void 0)){let e=Nt(o,c,t,{hook_event_name:`SessionStart`}),n=e===void 0?void 0:await le(e,{endpoint:o.endpoint,secret:c,now:t.now,fetch:t.fetch,dryRun:!0});i.push(Et(n))}if(I(t,Ot(i)),o!==void 0){let e=Nt(o,c??`example`,t,{hook_event_name:`PreToolUse`,tool_name:`Edit`});I(t,``,`When Claude edits a file in ${t.cwd}, exactly this leaves your machine:`,e??`(nothing)`)}return+!!i.some(e=>e.status===`fail`)}const Y=`0.1.0`,Ft={url:{type:`string`},"secret-stdin":{type:`boolean`},rotate:{type:`boolean`},public:{type:`string`},command:{type:`string`},settings:{type:`string`}};async function It(e,t,n){let r=typeof n==`string`?n:void 0,i=t;if(i===void 0&&e.interactive){let t=r===void 0?``:` [${r.replace(/\/ingest$/,``)}]`;i=(await e.ask(`Office URL${t}: `)).trim()||r}i??=r;let o=i===void 0?void 0:he(i);return o!==void 0&&a(o)?o:void 0}async function Lt(e,t,n,r){if(n!==void 0&&!r)return{secret:n,created:!1};if(t){let t=(await e.readStdin()).trim();return t.length>=16?{secret:t,created:!1}:void 0}if(e.interactive&&!r){let t=(await e.ask(`Paste the office secret, or press Enter to create one: `)).trim();if(t.length>0)return t.length>=16?{secret:t,created:!1}:void 0}return{secret:e.randomSecret(),created:!0}}async function Rt(e,t,n){if(t!==void 0)return{path:e.cwd,public:!0,name:t};let r=n.some(t=>typeof t==`object`&&!!t&&t.path===e.cwd);if(!e.interactive||r)return;let i=(await e.ask(`Show ${e.cwd} in the office as a public project? [y/N] `)).trim().toLowerCase();if(i!==`y`&&i!==`yes`)return;let a=(await e.ask(`Its name in office.config.json [${x(e.cwd)}]: `)).trim()||x(e.cwd);return{path:e.cwd,public:!0,name:a}}async function zt(e,t){let{values:n}=T({args:[...e],options:Ft,strict:!0}),r=N(t.env,t.home,t.windows),i=await P(r);if(i===null)return t.stderr(`hivefloor: ${r.config} is not a JSON object. Fix or delete it, then run init again.\n`),1;let a=i??{},o=await It(t,n.url,a.endpoint);if(o===void 0)return t.stderr(`hivefloor: give the office URL with --url, for example --url https://office.example.com (https, or http only for localhost).
|
|
11
|
+
`),1;let s=await Lt(t,n[`secret-stdin`]===!0,await R(r),n.rotate===!0);if(s===void 0)return t.stderr(`hivefloor: the secret must be at least 16 characters.
|
|
12
|
+
`),1;let c=a.projects,l=Array.isArray(c)?c:[],u=await Rt(t,n.public,l),d={$schema:`https://unpkg.com/hivefloor/machine.schema.json`,v:1,...a,endpoint:o,...u===void 0?{}:{projects:[...l.filter(e=>e.path!==t.cwd),u]}},f=[];if(JSON.stringify(d)!==JSON.stringify(i)){let e=await F(r,d);if(!e.ok)return t.stderr(`hivefloor: the config would be invalid:\n ${e.problems.join(`
|
|
13
|
+
`)}\n`),1;f.push(`Wrote ${r.config}`)}(s.created||await R(r)!==s.secret)&&(await M(r.secret,`${s.secret}\n`,384),f.push(`Wrote ${r.secret} (mode 600)`));let p=n.settings??q(t.env,t.home),m=await J(p);if(m.kind===`invalid`)return t.stderr(`hivefloor: ${p} can't be updated because ${m.reason}. Fix it, then run init again.\n`),1;let h=n.command===void 0?me({execPath:t.execPath,script:t.script,version:Y,windows:t.windows}):{command:n.command},g=yt(m.settings,h.command);if(g.events.length>0){let e=await kt(p,g.settings,m.kind===`ok`,t.now());f.push(`Registered the hook for ${String(g.events.length)} events in ${p}${e===void 0?``:` (backup: ${e})`}`)}return f.length===0?I(t,`Nothing to change: Hivefloor is already set up.`):I(t,...f.map(e=>`✓ ${e}`)),h.warning!==void 0&&I(t,`! ${h.warning}`),s.created&&I(t,``,`New secret created. Set the same value on your relay (it is shown only now):`,` ${s.secret}`,` hivefloor deploy --push-secret (from your Hivefloor checkout)`),I(t,``,`Next: hivefloor doctor checks the connection and shows exactly what leaves this machine.`),0}async function X(e,t,n){T({args:[...t],options:{},strict:!0});let r=N(n.env,n.home,n.windows),i=await P(r);if(i==null)return n.stderr(`hivefloor: no valid config at ${r.config}. Run hivefloor init first.\n`),1;if(i.paused===!0!==e){let t=await F(r,{...i,paused:e});if(!t.ok)return n.stderr(`hivefloor: ${r.config} is invalid:\n ${t.problems.join(`
|
|
14
|
+
`)}\n`),1}return I(n,e?`Paused: nothing is sent until you run hivefloor resume.`:`Resumed: your office sees your sessions again.`),0}async function Bt(e,t){T({args:[...e],options:{},strict:!0});let n=N(t.env,t.home,t.windows),r=await L(n);if(r===void 0)return t.stderr(`hivefloor: no valid config at ${n.config}. Run hivefloor init first.\n`),1;let i=_e(await t.readStdin());if(i===void 0)return t.stderr(`hivefloor: pipe one hook payload (a JSON object) into hivefloor preview.
|
|
15
|
+
`),1;let{event:a}=V({payload:i,config:r,secret:await R(n)??`preview-without-a-secret`,now:Math.floor(t.now()/1e3),paths:{home:t.home,windows:t.windows}});if(a===void 0)return I(t,`Nothing would be sent for ${D(i,`hook_event_name`)??`this payload`}.`),0;I(t,`This would leave your machine:`,JSON.stringify(a,null,2)),r.paused&&I(t,`! Sending is paused (hivefloor resume).`);let o=await j(Ee(n));return a.project!==void 0&&E(o)&&(O(o,`publicProjects`).some(e=>E(e)&&e.name===a.project)||I(t,`! The relay did not know "${a.project}" at the last hivefloor doctor, so it would reject this event.`)),0}async function Vt(e,t){let{values:n}=T({args:[...e],options:{purge:{type:`boolean`},settings:{type:`string`}},strict:!0}),r=n.settings??q(t.env,t.home),i=await J(r);if(i.kind===`invalid`)return t.stderr(`hivefloor: ${r} can't be updated because ${i.reason}. Remove the hivefloor hooks by hand.\n`),1;let a=xt(i.settings);if(a.events.length>0){let e=await kt(r,a.settings,i.kind===`ok`,t.now());I(t,`✓ Removed the Hivefloor hook from ${String(a.events.length)} events in ${r}${e===void 0?``:` (backup: ${e})`}`)}else I(t,`No Hivefloor hooks in ${r}.`);let o=N(t.env,t.home,t.windows);return n.purge===!0?(await y(o.dir,{recursive:!0,force:!0}),I(t,`✓ Deleted ${o.dir} (config, secret and state).`)):I(t,`Kept ${o.dir}. Run hivefloor uninstall --purge to delete it too.`),0}const Ht=/* @__PURE__ */ new Set([`hook_event_name`,`source`,`reason`,`permission_mode`,`status`,`level`]),Ut=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function Wt(e){return Je(e)===void 0?e:`mcp__<server>__<tool>`}function Gt(e,t){return t===`tool_name`?Wt(e):t!==void 0&&Ht.has(t)&&Ut.test(e)?e:`<string:${String(e.length)}>`}function Z(e,t,n=0){if(typeof e==`string`)return Gt(e,t);if(typeof e==`number`||typeof e==`boolean`||e===null)return e;if(n>=6)return`<nested>`;if(Array.isArray(e))return e.slice(0,20).map(e=>Z(e,t,n+1));if(!E(e))return null;let r={},i=0;for(let[t,a]of Object.entries(e)){let e=Ut.test(t)?t:`<key:${String(i)}>`;r[e]=Z(a,t,n+1),i++}return r}const Kt=e=>Number.isInteger(e)&&e>=0,Q=e=>typeof e==`string`&&e.length>0,qt=n,Jt=e;function Yt(e){if(!E(e)||!Kt(e.at)||!qt.includes(String(e.kind)))return;let t=e.cat,n=e.goal;return{kind:e.kind,at:e.at,...typeof t==`string`&&Jt.includes(t)?{cat:t}:{},...Q(n)?{goal:n}:{}}}function Xt(e){if(e.v!==1||!Kt(e.seq))return;let t=Yt(e.last);return{seq:e.seq,...t===void 0?{}:{last:t}}}function Zt(e){if(!E(e))return{tasks:[]};let t=Array.isArray(e.tasks)?e.tasks.flatMap(e=>E(e)&&Q(e.id)&&Q(e.subject)?[{id:e.id,subject:e.subject}]:[]):[],{title:n,activeTask:r,todo:i}=e;return{tasks:t,...Q(n)?{title:n}:{},...Q(r)?{activeTask:r}:{},...Q(i)?{todo:i}:{}}}function Qt(e){if(!E(e)||typeof e.saltDay!=`string`||!/^\d{4}-\d{2}-\d{2}$/.test(e.saltDay))return;let t=Xt(e);return t===void 0?void 0:{v:1,...t,saltDay:e.saltDay,goal:Zt(e.goal)}}function $t(e){if(!E(e))return;let t=Xt(e);return t===void 0?void 0:{v:1,...t}}async function en(e,t,n){if(!e.debug)return;let r=JSON.stringify({at:new Date(e.now()).toISOString(),hook:t,event:n.event??null});await p(e.files.debugLog,`${r}\n`,{mode:384})}async function tn(e,t){let n=`${(D(t,`hook_event_name`)??`unknown`).replace(/[^A-Za-z]/g,``)}-${String(e.now())}.json`;await M(C(e.files.recordings,n),`${JSON.stringify(Z(t),null,2)}\n`)}async function nn(e,t){let n=_e(e);if(n===void 0)return;t.record&&await tn(t,n);let r=await L(t.files);if(r===void 0||r.paused)return;let i=await R(t.files),a=D(n,`session_id`);if(i===void 0||a===void 0)return;let o=D(n,`agent_id`),s=ft(a),c=Te(t.files.stateDir,s),l=o===void 0?void 0:Te(t.files.stateDir,s,ft(o)),u=Qt(await j(c)),d=l===void 0?void 0:$t(await j(l)),f=V({payload:n,config:r,secret:i,now:Math.floor(t.now()/1e3),paths:t.paths,...u===void 0?{}:{session:u},...d===void 0?{}:{agent:d}});f.event!==void 0&&t.launchSender(JSON.stringify(f.event)),f.remove===`session`?await we(t.files.stateDir,`${s}.`):(f.session!==void 0&&await M(c,JSON.stringify(f.session)),l!==void 0&&f.remove===`agent`?await y(l,{force:!0}):l!==void 0&&f.agent!==void 0&&await M(l,JSON.stringify(f.agent))),await en(t,D(n,`hook_event_name`),f)}const rn=`hivefloor ${Y}: show your Claude Code sessions in a Hivefloor office
|
|
16
|
+
|
|
17
|
+
Usage:
|
|
18
|
+
hivefloor init [--url URL] [--public NAME] [--rotate] [--secret-stdin]
|
|
19
|
+
Connect this machine to your office and register the hooks
|
|
20
|
+
hivefloor add-project NAME [--path DIR] [--office-config FILE] [--color #RRGGBB] [--deploy]
|
|
21
|
+
Make a project public, here and in office.config.json
|
|
22
|
+
hivefloor doctor Check the setup and show exactly what leaves this machine
|
|
23
|
+
hivefloor preview Print the event a hook payload on stdin would send
|
|
24
|
+
hivefloor pause | resume Stop or restart sending
|
|
25
|
+
hivefloor uninstall [--purge]
|
|
26
|
+
Remove the hooks (and with --purge, the config and secret)
|
|
27
|
+
hivefloor deploy [--config FILE] [--dry-run]
|
|
28
|
+
Validate office.config.json and deploy the relay (from a checkout)
|
|
29
|
+
hivefloor hook [--record] Read one Claude Code hook payload from stdin (used by the hooks)
|
|
30
|
+
hivefloor --version Print the version
|
|
31
|
+
|
|
32
|
+
Docs: https://github.com/valerymelou/hivefloor
|
|
33
|
+
`,an=/* @__PURE__ */ new Map([[`init`,zt],[`add-project`,ze],[`doctor`,Pt],[`preview`,Bt],[`pause`,(e,t)=>X(!0,e,t)],[`resume`,(e,t)=>X(!1,e,t)],[`uninstall`,Vt],[`deploy`,je]]);async function on(e,t){let n=N(t.env,t.home,t.windows),r=await L(n),i=await R(n);if(e===void 0||r===void 0||i===void 0||r.paused)return;let a=await le(e,{endpoint:r.endpoint,secret:i,now:t.now,fetch:t.fetch});t.env.HIVEFLOOR_DEBUG===`1`&&await p(n.debugLog,`${JSON.stringify({at:new Date(t.now()).toISOString(),status:a??null})}\n`)}async function sn(e,t){try{await nn(await t.readStdin(),{files:N(t.env,t.home,t.windows),paths:{home:t.home,windows:t.windows},now:t.now,launchSender:t.launchSender,record:e.includes(`--record`),debug:t.env.HIVEFLOOR_DEBUG===`1`})}catch{}return 0}async function cn(e,t){let[n,...r]=e;if(n===`hook`)return sn(r,t);if(n===`__send`){try{await on(r[0],t)}catch{}return 0}if(n===`--version`||n===`-v`)return t.stdout(`${Y}\n`),0;if(n===void 0||n===`help`||n===`--help`||n===`-h`)return t.stdout(rn),0;let i=an.get(n);if(i===void 0)return t.stderr(`hivefloor: unknown command "${n}"\n\n${rn}`),2;try{return await i(r,t)}catch(e){let r=e instanceof Error?e.message:String(e);return t.stderr(`hivefloor ${n}: ${r}\n`),2}}const $=process.argv.slice(2);if($[0]===`hook`||$[0]===`__send`){let e=()=>process.exit(0);process.on(`uncaughtException`,e),process.on(`unhandledRejection`,e),setTimeout(e,2500).unref()}async function ln(){if(process.stdin.isTTY)return``;let e=[],t=0;for await(let n of process.stdin){if(t+=n.length,t>8388608)return``;e.push(n)}return Buffer.concat(e).toString(`utf8`)}async function un(e){let t=f({input:process.stdin,output:process.stdout});try{return await t.question(e)}finally{t.close()}}function dn(e){try{let t=ue(process.execPath,process.argv);s(t.file,[...t.args,`__send`,e],{detached:!0,stdio:`ignore`,windowsHide:!0}).unref()}catch{}}function fn(e,t,n){return new Promise(r=>{let i=s(e,[...t],{stdio:[n===void 0?`inherit`:`pipe`,`inherit`,`inherit`]});i.stdin?.end(n),i.on(`error`,()=>{r(1)}),i.on(`close`,e=>{r(e??1)})})}process.exitCode=await cn($,{env:process.env,home:d(),cwd:process.cwd(),windows:process.platform===`win32`,execPath:process.execPath,script:process.argv[1],now:()=>Date.now(),readStdin:ln,stdout:e=>process.stdout.write(e),stderr:e=>process.stderr.write(e),interactive:process.stdin.isTTY&&process.stdout.isTTY,ask:un,randomSecret:()=>u(32).toString(`base64url`),fetch,runProcess:fn,launchSender:dn});export{};
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"$schema": {
|
|
6
|
+
"description": "The JSON Schema, for editor autocomplete.",
|
|
7
|
+
"type": "string"
|
|
8
|
+
},
|
|
9
|
+
"v": {
|
|
10
|
+
"type": "number",
|
|
11
|
+
"const": 1,
|
|
12
|
+
"description": "The config version. Always 1."
|
|
13
|
+
},
|
|
14
|
+
"endpoint": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "The relay ingest URL: https, or http for localhost only."
|
|
17
|
+
},
|
|
18
|
+
"projects": {
|
|
19
|
+
"default": [],
|
|
20
|
+
"description": "Folders and whether they are public. Any other folder is private.",
|
|
21
|
+
"maxItems": 500,
|
|
22
|
+
"type": "array",
|
|
23
|
+
"items": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"properties": {
|
|
26
|
+
"path": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"minLength": 1,
|
|
29
|
+
"maxLength": 1024,
|
|
30
|
+
"description": "An absolute folder, or one starting with ~. The longest matching path wins."
|
|
31
|
+
},
|
|
32
|
+
"public": {
|
|
33
|
+
"type": "boolean",
|
|
34
|
+
"description": "Whether sessions here show the project name and goals to visitors."
|
|
35
|
+
},
|
|
36
|
+
"name": {
|
|
37
|
+
"description": "The project name in office.config.json. Required when public is true.",
|
|
38
|
+
"type": "string",
|
|
39
|
+
"minLength": 1,
|
|
40
|
+
"maxLength": 40
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"required": [
|
|
44
|
+
"path",
|
|
45
|
+
"public"
|
|
46
|
+
],
|
|
47
|
+
"additionalProperties": false
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"publicAgentTypes": {
|
|
51
|
+
"default": [],
|
|
52
|
+
"description": "Subagent types sent by name. Others are sent as a generic helper.",
|
|
53
|
+
"maxItems": 50,
|
|
54
|
+
"type": "array",
|
|
55
|
+
"items": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_-]{0,39}$"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"goals": {
|
|
61
|
+
"default": {
|
|
62
|
+
"fromTaskList": true,
|
|
63
|
+
"fromSessionTitle": true,
|
|
64
|
+
"maxLength": 60,
|
|
65
|
+
"blockWords": [
|
|
66
|
+
"security",
|
|
67
|
+
"vulnerability",
|
|
68
|
+
"CVE",
|
|
69
|
+
"exploit",
|
|
70
|
+
"token",
|
|
71
|
+
"secret",
|
|
72
|
+
"password",
|
|
73
|
+
"credential"
|
|
74
|
+
],
|
|
75
|
+
"privatePrefix": "[private]"
|
|
76
|
+
},
|
|
77
|
+
"description": "Which goals are sent for public projects.",
|
|
78
|
+
"type": "object",
|
|
79
|
+
"properties": {
|
|
80
|
+
"fromTaskList": {
|
|
81
|
+
"default": true,
|
|
82
|
+
"description": "Use the task Claude has in progress.",
|
|
83
|
+
"type": "boolean"
|
|
84
|
+
},
|
|
85
|
+
"fromSessionTitle": {
|
|
86
|
+
"default": true,
|
|
87
|
+
"description": "Use the session title when no task is in progress.",
|
|
88
|
+
"type": "boolean"
|
|
89
|
+
},
|
|
90
|
+
"maxLength": {
|
|
91
|
+
"default": 60,
|
|
92
|
+
"description": "Longest goal sent, in characters.",
|
|
93
|
+
"type": "integer",
|
|
94
|
+
"minimum": 10,
|
|
95
|
+
"maximum": 60
|
|
96
|
+
},
|
|
97
|
+
"blockWords": {
|
|
98
|
+
"default": [
|
|
99
|
+
"security",
|
|
100
|
+
"vulnerability",
|
|
101
|
+
"CVE",
|
|
102
|
+
"exploit",
|
|
103
|
+
"token",
|
|
104
|
+
"secret",
|
|
105
|
+
"password",
|
|
106
|
+
"credential"
|
|
107
|
+
],
|
|
108
|
+
"description": "A goal containing any of these words is not sent.",
|
|
109
|
+
"maxItems": 200,
|
|
110
|
+
"type": "array",
|
|
111
|
+
"items": {
|
|
112
|
+
"type": "string",
|
|
113
|
+
"minLength": 1,
|
|
114
|
+
"maxLength": 40
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"privatePrefix": {
|
|
118
|
+
"default": "[private]",
|
|
119
|
+
"description": "A task title starting with this is never sent.",
|
|
120
|
+
"type": "string",
|
|
121
|
+
"minLength": 1,
|
|
122
|
+
"maxLength": 20
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"additionalProperties": false
|
|
126
|
+
},
|
|
127
|
+
"mcpCategories": {
|
|
128
|
+
"default": {},
|
|
129
|
+
"description": "MCP server name to work category. Server names are only read locally.",
|
|
130
|
+
"type": "object",
|
|
131
|
+
"propertyNames": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"minLength": 1,
|
|
134
|
+
"maxLength": 100
|
|
135
|
+
},
|
|
136
|
+
"additionalProperties": {
|
|
137
|
+
"type": "string",
|
|
138
|
+
"enum": [
|
|
139
|
+
"reading",
|
|
140
|
+
"coding",
|
|
141
|
+
"testing",
|
|
142
|
+
"vcs",
|
|
143
|
+
"terminal",
|
|
144
|
+
"research",
|
|
145
|
+
"delegating",
|
|
146
|
+
"planning",
|
|
147
|
+
"designing",
|
|
148
|
+
"monitoring",
|
|
149
|
+
"integration",
|
|
150
|
+
"working"
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"timestampRoundingSec": {
|
|
155
|
+
"default": 5,
|
|
156
|
+
"description": "Timestamps are rounded to this many seconds, so timing reveals less.",
|
|
157
|
+
"type": "integer",
|
|
158
|
+
"minimum": 1,
|
|
159
|
+
"maximum": 60
|
|
160
|
+
},
|
|
161
|
+
"paused": {
|
|
162
|
+
"default": false,
|
|
163
|
+
"description": "Send nothing. Set by hivefloor pause and resume.",
|
|
164
|
+
"type": "boolean"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"required": [
|
|
168
|
+
"v",
|
|
169
|
+
"endpoint"
|
|
170
|
+
],
|
|
171
|
+
"additionalProperties": false,
|
|
172
|
+
"title": "Hivefloor machine config"
|
|
173
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hivefloor",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Connect Claude Code to your Hivefloor office: a live 3D view of your sessions as robots.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"claude-code",
|
|
7
|
+
"hooks",
|
|
8
|
+
"cloudflare",
|
|
9
|
+
"building-in-public",
|
|
10
|
+
"3d",
|
|
11
|
+
"office"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://hivefloor.valerymelou.com",
|
|
14
|
+
"bugs": "https://github.com/valerymelou/hivefloor/issues",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/valerymelou/hivefloor.git",
|
|
18
|
+
"directory": "packages/cli"
|
|
19
|
+
},
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"author": "Valery Melou",
|
|
22
|
+
"type": "module",
|
|
23
|
+
"bin": {
|
|
24
|
+
"hivefloor": "./bin.mjs"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"*.mjs",
|
|
28
|
+
"machine.schema.json",
|
|
29
|
+
"README.md",
|
|
30
|
+
"LICENSE"
|
|
31
|
+
],
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=20"
|
|
34
|
+
},
|
|
35
|
+
"publishConfig": {
|
|
36
|
+
"access": "public"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=[`reading`,`coding`,`testing`,`vcs`,`terminal`,`research`,`delegating`,`planning`,`designing`,`monitoring`,`integration`,`working`],t=[`start`,`thinking`,`tool`,`idle`,`end`,`spawn`,`done`],n=[`working`,`thinking`,`waiting`,`idle`,`away`],r=[`open`,`busy`,`limited`],i=`claude`,a=`Helper`,o=[`private`,`other`],s=/[\u0000-\u001f\u007f-\u009f]/,c=/^[a-z0-9-]+$/i,l=/^[a-z]{2,}$/i,u=/[^a-z0-9./:-]+/i;function d(e){let t=e.indexOf(`/`);if(t<=0)return!1;let n=e.slice(0,t),r=n.slice(n.lastIndexOf(`.`)+1),i=n.split(`.`);return i.length>=2&&i.every(e=>c.test(e))&&l.test(r)}function f(e){return s.test(e)}function p(e){let t=e.toLowerCase();return t.includes(`://`)||t.includes(`www.`)?!0:e.split(u).some(d)}function m(e){let t=e.normalize(`NFKD`).replace(/\p{M}/gu,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`),n=+!!t.startsWith(`-`),r=t.endsWith(`-`)?t.length-1:t.length;return t.slice(n,Math.max(n,r))}function h(e){let t;try{t=new URL(e)}catch{return!1}return t.protocol===`https:`||t.protocol===`http:`&&[`localhost`,`127.0.0.1`,`[::1]`].includes(t.hostname)}export{e as a,i as c,n as d,m as i,r as l,f as n,t as o,p as r,a as s,h as t,o as u};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import{a as e,c as t,d as n,i as r,l as i,n as a,o,r as s,s as c,t as l,u}from"./urls-CuA4EHSE.mjs";function d(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function f(e,t=`|`){return e.map(e=>me(e)).join(t)}function p(e,t){return typeof t==`bigint`?t.toString():t}var m=class{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;return e!==void 0&&(this._value=e(),this._getter=void 0),this._value}};function h(e){return new m(e)}function ee(e){return e==null}function te(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function ne(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}function g(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function re(e){let t=Object.getOwnPropertyDescriptor(e,`shape`);return t?.get?t.get.raw:t?.value}function _(e){return re(e._zod.def)??e._zod.def.shape}function ie(e,t,n){Object.defineProperty(e,t,{get(){let e=n();return g(this,t,e),e},enumerable:!0,configurable:!0})}function ae(e,t,n){t in e?g(e,t,n):e[t]=n}function v(e,t,n,r){let i=_(t);for(let a of n){let n=Object.getOwnPropertyDescriptor(i,a);n.enumerable&&(n.get?ie(e,a,()=>{let e=t._zod.def.shape[a];return r?r(e,a):e}):ae(e,a,r?r(n.value,a):n.value))}}function oe(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?ie(e,n,()=>t[n]):ae(e,n,r.value))}}function y(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function se(e){return JSON.stringify(e)}function ce(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}const le=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function ue(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const de=/* @__PURE__*/ h(()=>{if(P.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function b(e){if(ue(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return ue(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function fe(e){return b(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}const pe=/* @__PURE__*/ new Set([`string`,`number`,`symbol`]);function x(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function S(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function C(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function me(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function he(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}const ge={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},_e={int64:[/* @__PURE__*/ BigInt(`-9223372036854775808`),/* @__PURE__*/ BigInt(`9223372036854775807`)],uint64:[/* @__PURE__*/ BigInt(0),/* @__PURE__*/ BigInt(`18446744073709551615`)]};function ve(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);let i={};return v(i,e,ye(e,t)),S(e,y(n,{shape:i,checks:[]}))}function ye(e,t){let n=_(e),r=[];for(let e of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,e)?.enumerable)throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&r.push(e)}return r}function be(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);let i=new Set(ye(e,t)),a={};return v(a,e,Reflect.ownKeys(_(e)).filter(e=>!i.has(e))),S(e,y(n,{shape:a,checks:[]}))}function xe(e,t){if(!b(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=_(e);for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return S(e,y(e._zod.def,{shape:Se(e,t)}))}function Se(e,t){let n={};return v(n,e,Reflect.ownKeys(_(e))),oe(n,t),n}function Ce(e,t){if(!b(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return S(e,y(e._zod.def,{shape:Se(e,t)}))}function we(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);let n={};return v(n,e,Reflect.ownKeys(_(e))),v(n,t,Reflect.ownKeys(_(t))),S(e,y(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function Te(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(ye(t,n)):void 0,o={};return v(o,t,Reflect.ownKeys(_(t)),e&&((t,n)=>a&&!a.has(n)?t:new e({type:`optional`,innerType:t}))),S(t,y(t._zod.def,{shape:o,checks:[]}))}function Ee(e,t,n){let r=n?new Set(ye(t,n)):void 0,i={};return v(i,t,Reflect.ownKeys(_(t)),(t,n)=>r&&!r.has(n)?t:new e({type:`nonoptional`,innerType:t})),S(t,y(t._zod.def,{shape:i}))}function w(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function De(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function T(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function E(e){return typeof e==`string`?e:e?.message}function Oe(e){let t=[];for(let n of e??[]){let e=n._zod.def;if(!/_(length|size)$|_equals$/.test(e.check))break;let r=e.maximum??e.length??e.size;r>=0&&t.push([r,n])}return t}function ke(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function D(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:E(e.inst?._zod.def?.error?.(e))??E(a?.(e))??E(t?.error?.(e))??E(n.customError?.(e))??E(n.localeError?.(e))??`Invalid input`,s={};for(let t of Object.keys(e))t!==`inst`&&t!==`schema`&&t!==`continue`&&t!==`input`&&t!==`__proto__`&&(s[t]=e[t]);return s.path??=[],s.message=o,t?.reportInput&&(s.input=e.input),s}const Ae=/[\uD800-\uDBFF]/;function je(e){let t=e.length;if(!Ae.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function Me(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Ne(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function O(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function Pe(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Le(e,n,r.value)}}function k(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function Fe(e,t,n){return k(e,t,n,!1)}/* @__NO_SIDE_EFFECTS__ */
|
|
2
|
+
function Ie(e,t){for(let n in e){let r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return k(this,n,r(this))},set(e){k(this,n,e)}})}return t}function Le(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:k(this,t,n.bind(this))},set(e){k(this,t,e)}})}function Re(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}let ze,A=!1;const Be={configurable:!0,get(){A=!0}};function j(e,t,n){let r=Object.getPrototypeOf(e._zod);t in r&&ze!==e._zod?ze=void 0:(ze=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,Be);let e=A;A=!1;try{let r=n(this);return A?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:r}),A||=e,r}catch(n){throw delete this[t],A||=e,n}},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}}))}function Ve(e,t,n,r){let i=Re(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){let e={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,e),e.value=n(this),Object.defineProperty(this,t,e),e.value},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:e})}})}function He(e){let t=()=>e;return t[`~constantCatch`]=!0,t}var Ue;const We={value:void 0,enumerable:!1};let Ge=`captureStackTrace`in Error?Error:null;function Ke(e){let t=Ge;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return Ge=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}/* @__NO_SIDE_EFFECTS__ */
|
|
3
|
+
function M(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=/* @__PURE__ */ new Set}a.prototype=i;let o=n,s=o&&/* @__PURE__ */ new WeakSet;function c(n,r){if(!n._zod){We.value=new a(r);try{Object.defineProperty(n,"_zod",We)}finally{We.value=void 0}}else if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),Pe(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?Ke(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}var N=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},qe=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(Ue=globalThis).__zod_globalConfig??(Ue.__zod_globalConfig={});const P=globalThis.__zod_globalConfig;function F(e){return e&&Object.assign(P,e),P}function Je(){let e=this._zod;return e.message??=JSON.stringify(e.def,p,2),e.message}function Ye(e){this._zod.message=e}const Xe={get:Je,set:Ye,enumerable:!0,configurable:!0},Ze={value:void 0,enumerable:!1},Qe=/* @__PURE__ */ new WeakSet([Object.prototype,Error.prototype]),$e=/* @__PURE__ */ M(`$ZodError`,(e,t)=>{e.name=`$ZodError`,Ze.value=t,Object.defineProperty(e,"issues",Ze),Ze.value=void 0,Object.defineProperty(e,"message",Xe);let n=Object.getPrototypeOf(e);Qe.has(n)||(Qe.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))});function et(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function tt(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?et(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function nt(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}function rt(e,t){return{callee:t?.callee??e,Err:t?.Err}}const it=e=>{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new N;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>D(e,o,F())));throw le(n,a?.callee??t),n}return s.value};return t},at=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>D(e,o,F())));throw le(n,a?.callee??t),n}return s.value};return t},ot=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new N;return a.issues.length?st(e,a.issues,i):{success:!0,data:a.value}};function st(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(e=>D(e,n,F()))),t=void 0,n=void 0),r},set error(e){r=e,t=void 0,n=void 0}}}const ct=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?st(e,a.issues,i):{success:!0,data:a.value}},lt=/* @__PURE__ */ Symbol.for(`zod.compile.invalid`),ut=/* @__PURE__ */ Symbol.for(`zod.compile.fallback`),dt=((e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==lt)return!0;if(r.definite===!0&&n===void 0)return!1}return ft(e,t,n)});function ft(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},i=e._zod.bag.fallbackRun,a;if(i?(r[ut]=!0,a=i({value:t,issues:[]},r)):a=e._zod.run({value:t,issues:[]},r),a instanceof Promise)throw new N;return a.issues.length===0}const pt=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},mt=e=>{let t=it(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,rt(n,a))};return n},ht=e=>{let t=it(e),n=(e,r,i,a)=>t(e,r,i,rt(n,a));return n},gt=e=>{let t=at(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,rt(n,a))};return n},_t=e=>{let t=at(e),n=async(e,r,i,a)=>await t(e,r,i,rt(n,a));return n},vt=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return ot(e)(t,n,i)},yt=e=>(t,n,r)=>ot(e)(t,n,r),bt=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return ct(e)(t,n,i)},xt=e=>async(t,n,r)=>ct(e)(t,n,r),St=/^[cC][0-9a-z]{6,}$/,Ct=/^[0-9a-z]+$/,wt=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,Tt=/^[0-9a-vA-V]{20}$/,Et=/^[A-Za-z0-9]{27}$/,Dt=/^[a-zA-Z0-9_-]{21}$/;function Ot(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}const kt=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,At=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,jt=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Mt=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function Nt(){return/* @__PURE__ */ RegExp(`^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`,`u`)}const Pt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ft=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,It=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Lt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Rt=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,zt=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,Bt=/^https?$/,Vt=/^\+[1-9]\d{6,14}$/,Ht=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`;function Ut(e){return RegExp(`^${e}$`)}const Wt=/*@__PURE__*/ Ut(Ht);function Gt(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Kt(e){return RegExp(`^${Gt(e)}$`)}function qt(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${Gt({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${Gt({precision:e.precision})}`:n;return RegExp(`^${Ht}T(?:${r})$`)}const Jt=/^[\s\S]{0,}$/,Yt=/^-?\d+$/,Xt=/^-?\d+(?:\.\d+)?$/,Zt=/^(?:true|false)$/i,Qt=/^[^A-Z]*$/,$t=/^[^a-z]*$/,I=/*@__PURE__*/ M(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),en=e=>{let t=e.value;return!ee(t)&&t.length!==void 0},tn={number:`number`,bigint:`bigint`,object:`date`},nn=/*@__PURE__*/ M(`$ZodCheckLessThan`,(e,t)=>{I.init(e,t);let n=tn[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:tn[typeof r.value]??n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),rn=/*@__PURE__*/ M(`$ZodCheckGreaterThan`,(e,t)=>{I.init(e,t);let n=tn[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:tn[typeof r.value]??n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),an=/*@__PURE__*/ M(`$ZodCheckMultipleOf`,(e,t)=>{I.init(e,t),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):ne(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),on=/*@__PURE__*/ M(`$ZodCheckNumberFormat`,(e,t)=>{I.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=ge[t.format];e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),sn=/*@__PURE__*/ M(`$ZodCheckMaxLength`,(e,t)=>{var n;I.init(e,t),(n=e._zod.def).when??(n.when=en),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>t.maximum?je(r):i)<=t.maximum)return;let a=Me(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),cn=/*@__PURE__*/ M(`$ZodCheckMinLength`,(e,t)=>{var n;I.init(e,t),(n=e._zod.def).when??(n.when=en),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i<t.minimum*2?je(r):i)>=t.minimum)return;let a=Me(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),ln=/*@__PURE__*/ M(`$ZodCheckLengthEquals`,(e,t)=>{var n;I.init(e,t),(n=e._zod.def).when??(n.when=en),e._zod.check=n=>{let r=n.value,i=r.length,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?je(r):i;if(a===t.length)return;let o=Me(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),un=/*@__PURE__*/ M(`$ZodCheckStringFormat`,(e,t)=>{var n,r;I.init(e,t),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),dn=/*@__PURE__*/ M(`$ZodCheckRegex`,(e,t)=>{un.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),fn=/*@__PURE__*/ M(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=Qt,un.init(e,t)}),pn=/*@__PURE__*/ M(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=$t,un.init(e,t)}),mn=/*@__PURE__*/ M(`$ZodCheckIncludes`,(e,t)=>{I.init(e,t);let n=x(t.includes);t.pattern=new RegExp(typeof t.position==`number`?`^.{${t.position},}${n}`:n),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),hn=/*@__PURE__*/ M(`$ZodCheckStartsWith`,(e,t)=>{I.init(e,t);let n=RegExp(`^${x(t.prefix)}.*`);t.pattern??=n,e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),gn=/*@__PURE__*/ M(`$ZodCheckEndsWith`,(e,t)=>{I.init(e,t);let n=RegExp(`.*${x(t.suffix)}$`);t.pattern??=n,e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),_n=/*@__PURE__*/ M(`$ZodCheckOverwrite`,(e,t)=>{I.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});var vn=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{--this.indent}}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
|
|
4
|
+
`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.content??[``];return new e(...Object.keys(this.closed),`return function (${this.args.join(`, `)}) {\n${t.join(`
|
|
5
|
+
`)}\n};`)(...Object.values(this.closed))}};const yn={major:4,minor:6,patch:7},L=/*@__PURE__*/ M(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=yn;let r=e._zod.def.checks,i=e._zod.traits.has(`$ZodCheck`)?[e,...r??[]]:r?.length?[...r]:[];for(let t of i)for(let n of t._zod.onattach)n(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(t,n,r)=>{if(t.memo)return t;let i=w(t),a;for(let o of n){if(o._zod.def.when){if(De(t)||!o._zod.def.when(t))continue}else if(i)continue;let n=t.issues.length,s=o._zod.check(t);if(s instanceof Promise&&r?.async===!1)throw new N;if(a||s instanceof Promise)a=(a??Promise.resolve()).then(async()=>{await s,t.issues.length!==n&&(ke(t.issues,n,e),i||=w(t,n))});else{if(t.issues.length===n)continue;ke(t.issues,n,e),i||=w(t,n)}}return a?a.then(()=>t):t},n=(n,r,a)=>{if(w(n))return n.aborted=!0,n;let o=t(r,i,a);if(o instanceof Promise){if(a.async===!1)throw new N;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(r,a)=>{if(a.skipChecks)return e._zod.parse(r,a);if(a.direction===`backward`){let t=e._zod.parse({value:r.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,r,a)):n(t,r,a)}let o=e._zod.parse(r,a);if(o instanceof Promise){if(a.async===!1)throw new N;return o.then(e=>t(e,i,a))}return t(o,i,a)}}},{get"~standard"(){return Fe(this,`~standard`,Sn(this))},set"~standard"(e){k(this,`~standard`,e)}}),bn=(e,t)=>e.issues.length?{issues:e.issues.map(e=>D(e,t,F()))}:{value:e.value};async function xn(e,t){let n={async:!0};return bn(await e._zod.run({value:t,issues:[]},n),n)}function Sn(e){return{validate:t=>{let n={async:!1};try{let r=e._zod.run({value:t,issues:[]},n);if(!(r instanceof Promise))return bn(r,n)}catch{}return xn(e,t)},vendor:`zod`,version:1}}const Cn=/*@__PURE__*/ M(`$ZodString`,(e,t)=>{L.init(e,t),e._zod.pattern=t.pattern??Jt,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),R=/*@__PURE__*/ M(`$ZodStringFormat`,(e,t)=>{un.init(e,t),Cn.init(e,t)}),wn=/*@__PURE__*/ M(`$ZodGUID`,(e,t)=>{t.pattern??=At,R.init(e,t)}),Tn=/*@__PURE__*/ M(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=jt(e)}else t.pattern??=jt();R.init(e,t)}),En=/*@__PURE__*/ M(`$ZodEmail`,(e,t)=>{t.pattern??=Mt,R.init(e,t)});function Dn(e){try{return typeof URL<`u`&&typeof URL.canParse==`function`?URL.canParse(e):(new URL(e),!0)}catch{return!1}}function On(e,t){return!(`normalize`in t)&&!(`hostname`in t)&&!(`protocol`in t)?Dn(e)||2:kn(e,t)}function kn(e,t){if(!t.normalize&&t.protocol?.source===Bt.source&&!/^https?:\/\//i.test(e))return 1;try{if(typeof URL<`u`){let t=URL;if(typeof t.parse==`function`)return t.parse(e)??2}return new URL(e)}catch{return 2}}const An=/[\t\n\r]/g;function jn(e){return e.replace(An,``)}function Mn(e,t){return t.lastIndex=0,t.test(e.hostname)}function Nn(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(`:`)?e.protocol.slice(0,-1):e.protocol)}const Pn=/*@__PURE__*/ M(`$ZodURL`,(e,t)=>{R.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=On(r,t);if(i===1){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}if(i===2){n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort});return}if(i===!0){n.value=jn(r);return}t.hostname&&!Mn(i,t.hostname)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort}),t.protocol&&!Nn(i,t.protocol)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort}),n.value=t.normalize?i.href:jn(r);return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),Fn=/*@__PURE__*/ M(`$ZodEmoji`,(e,t)=>{t.pattern??=Nt(),R.init(e,t)}),In=/*@__PURE__*/ M(`$ZodNanoID`,(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??=t.length===void 0?Dt:Ot(t.length),R.init(e,t)}),Ln=/*@__PURE__*/ M(`$ZodCUID`,(e,t)=>{t.pattern??=St,R.init(e,t)}),Rn=/*@__PURE__*/ M(`$ZodCUID2`,(e,t)=>{t.pattern??=Ct,R.init(e,t)}),zn=/*@__PURE__*/ M(`$ZodULID`,(e,t)=>{t.pattern??=wt,R.init(e,t)}),Bn=/*@__PURE__*/ M(`$ZodXID`,(e,t)=>{t.pattern??=Tt,R.init(e,t)}),Vn=/*@__PURE__*/ M(`$ZodKSUID`,(e,t)=>{t.pattern??=Et,R.init(e,t)}),Hn=/*@__PURE__*/ M(`$ZodISODateTime`,(e,t)=>{t.pattern??=qt(t),R.init(e,t)}),Un=/*@__PURE__*/ M(`$ZodISODate`,(e,t)=>{t.pattern??=Wt,R.init(e,t)}),Wn=/*@__PURE__*/ M(`$ZodISOTime`,(e,t)=>{t.pattern??=Kt(t),R.init(e,t)}),Gn=/*@__PURE__*/ M(`$ZodISODuration`,(e,t)=>{t.pattern??=kt,R.init(e,t)}),Kn=/*@__PURE__*/ M(`$ZodIPv4`,(e,t)=>{t.pattern??=Pt,R.init(e,t)}),qn=/^[0-9a-fA-F:.]+$/;function Jn(e){return qn.test(e)?Dn(`http://[${e}]`):!1}const Yn=/*@__PURE__*/ M(`$ZodIPv6`,(e,t)=>{t.pattern??=Ft,R.init(e,t),e._zod.check=n=>{Jn(n.value)||n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}),Xn=/*@__PURE__*/ M(`$ZodCIDRv4`,(e,t)=>{t.pattern??=It,R.init(e,t)});function Zn(e){let t=e.split(`/`);if(t.length!==2)return!1;let[n,r]=t;if(!r)return!1;let i=Number(r);return`${i}`!==r||i<0||i>128?!1:Jn(n)}const Qn=/*@__PURE__*/ M(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Lt,R.init(e,t),e._zod.check=n=>{Zn(n.value)||n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}});function $n(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}const er=/^[0-9a-zA-Z+/]*={0,2}$/,tr=/*@__PURE__*/ M(`$ZodBase64`,(e,t)=>{t.pattern??=er,R.init(e,t),e._zod.check=n=>{$n(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}}),nr=/^[A-Za-z0-9_-]*$/;function rr(e){if(!nr.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return $n(t.padEnd(Math.ceil(t.length/4)*4,`=`))}const ir=/*@__PURE__*/ M(`$ZodBase64URL`,(e,t)=>{t.pattern??=nr,R.init(e,t),e._zod.check=n=>{rr(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),ar=/*@__PURE__*/ M(`$ZodE164`,(e,t)=>{t.pattern??=Vt,R.init(e,t)});function or(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}const sr=/*@__PURE__*/ M(`$ZodJWT`,(e,t)=>{R.init(e,t),e._zod.check=n=>{or(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),cr=/*@__PURE__*/ M(`$ZodNumber`,(e,t)=>{L.init(e,t),e._zod.pattern=Xt,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:String(i):void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),lr=/*@__PURE__*/ M(`$ZodNumberFormat`,(e,t)=>{on.init(e,t),cr.init(e,t)}),ur=/*@__PURE__*/ M(`$ZodBoolean`,(e,t)=>{L.init(e,t),e._zod.pattern=Zt,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),dr=/*@__PURE__*/ M(`$ZodUnknown`,(e,t)=>{L.init(e,t),e._zod.parse=e=>e}),fr=/*@__PURE__*/ M(`$ZodNever`,(e,t)=>{L.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function pr(e,t){let n=Oe(e._zod.def.checks);if(!n.length)return;let r=Math.min(...n.map(e=>e[0])),i=e._zod.parse;e._zod.parse=(n,a)=>{let o=t(n.value);if(o>r&&!a?.skipChecks&&a?.direction!==`backward`){for(let[t,r]of Oe(e._zod.def.checks))if(o>t&&r._zod.def.when(n)){let t=n.issues.length;return r._zod.check(n),n.issues[t].continue=!1,ke(n.issues,t,e),n}}return i(n,a)}}const mr=e=>Array.isArray(e)?e.length:-1;function hr(e,t,n){e.issues.length&&t.issues.push(...T(n,e.issues)),t.value[n]=e.value}const gr=/*@__PURE__*/ M(`$ZodArray`,(e,t)=>{L.init(e,t);let n=P.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({expected:`array`,code:`invalid_type`,input:a,inst:e}),r;r.value=n?n.alloc(e,r,Array(a.length),i):Array(a.length);let o=[],s=i?.abortEarly;for(let e=0;e<a.length;e++){let n=a[e],c=t.element._zod.run({value:n,issues:[]},i);if(c instanceof Promise)o.push(c.then(t=>hr(t,r,e)));else if(hr(c,r,e),s&&c.issues.length!==0&&w(c))break}return o.length?Promise.all(o).then(()=>r):r},pr(e,mr)});function _r(e,t,n,r,i,a){let o=n in r,s=a===`optional`;if(o||!s||i!==`optional`){if(e.issues.length){if(i!==void 0&&s&&!o)return;t.issues.push(...T(n,e.issues))}!o&&i===void 0?e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]}):e.value===void 0?(o||i===`defaulted`&&!s)&&(t.value[n]=void 0):t.value[n]=e.value}}const vr=[];function yr(e){let t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:vr,i=r.length?[...t,...r]:t;for(let t of i)if(!e.shape?.[t]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${String(t)}": expected a Zod schema`);let a=he(e.shape);return{...e,allKeys:i,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(a)}}function br(e,t,n,r,i,a,o){let s=[],c=i.keySet,l=i.catchall._zod,u=l.def.type,d=l.optin,f=l.optout,p=0;for(let i in t){if(o&&n.issues.length!==p){if(w(n,p))break;p=n.issues.length}if(c.has(i))continue;if(i===`__proto__`){u===`never`&&s.push(i);continue}if(u===`never`){s.push(i);continue}let a=l.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>_r(e,n,i,t,d,f))):_r(a,n,i,t,d,f)}return s.length&&n.issues.push({code:`unrecognized_keys`,keys:s,input:t,inst:a,continue:!0}),e.length?Promise.all(e).then(()=>n):n}const xr=/*@__PURE__*/ M(`$ZodObject`,(e,t)=>{L.init(e,t);let n=Object.getOwnPropertyDescriptor(t,`shape`),r=n?.get?n.get.raw:t.shape??{};if(r){let e=()=>{let n={...r};return Object.defineProperty(t,"shape",{value:n}),e.raw=n,n};e.raw=r,Object.defineProperty(t,"shape",{get:e})}let i=h(()=>yr(t));j(e,`propValues`,e=>{let t=e.def.shape,n={};for(let e in t){let r=t[e]._zod;if(r.values){Object.prototype.hasOwnProperty.call(n,e)||g(n,e,/* @__PURE__ */ new Set);for(let t of r.values)n[e].add(t);r.optin!==void 0&&n[e].add(void 0)}}return n});let a=ue,o=t.catchall,s,c=P.memoizer;c?.attach(e),e._zod.parse=(t,n)=>{s??=i.value;let r=t.value;if(!a(r))return t.issues.push({expected:`object`,code:`invalid_type`,input:r,inst:e}),t;t.value=c?c.alloc(e,t,{},n):{};let l=[],u=s.shape,d=n?.abortEarly,f=t.issues.length;for(let e of s.allKeys){if(d&&t.issues.length!==f){if(w(t,f))break;f=t.issues.length}if(e===`__proto__`)continue;let i=u[e],a=i._zod.optin,o=i._zod.optout,s=i._zod.run({value:r[e],issues:[]},n);s instanceof Promise?l.push(s.then(n=>_r(n,t,e,r,a,o))):_r(s,t,e,r,a,o)}return o?br(l,r,t,n,i.value,e,d===!0):l.length?Promise.all(l).then(()=>t):t}}),Sr=/*@__PURE__*/ M(`$ZodObjectJIT`,(e,t)=>{xr.init(e,t);let n=e._zod.parse,r=h(()=>yr(t)),i=P.memoizer,a=t=>{let n=r.value,a=n.symbolKeys,o=new vn([`payload`,`ctx`],{shape:t,inst:e,memo:i,syms:a}),s=e=>`shape[${e}]._zod.run({ value: input[${e}], issues: [] }, ctx)`,c=(e,t)=>`
|
|
6
|
+
let ${e}_ab = false;
|
|
7
|
+
for (let i = 0; i < ${e}.issues.length; i++) {
|
|
8
|
+
const iss = ${e}.issues[i];
|
|
9
|
+
iss.path = iss.path ? [${t}, ...iss.path] : [${t}];
|
|
10
|
+
payload.issues.push(iss);
|
|
11
|
+
if (iss.continue !== true) ${e}_ab = true;
|
|
12
|
+
}
|
|
13
|
+
if (${e}_ab && ctx && ctx.abortEarly) {
|
|
14
|
+
payload.value = newResult;
|
|
15
|
+
return payload;
|
|
16
|
+
}`;o.write(`const input = payload.value;`);let l=Object.create(null),u=0;for(let e of n.allKeys)l[e]=`key_${u++}`;o.write(i?`const newResult = memo.alloc(inst, payload, {}, ctx);`:`const newResult = {};`);for(let e of n.allKeys){if(e===`__proto__`)continue;let n=l[e],r=typeof e==`symbol`?`syms[${a.indexOf(e)}]`:se(e),i=`${r} in input`,u=t[e],d=u?._zod?.optin,f=d!==void 0,p=u?._zod?.optout===`optional`;if(o.write(`const ${n} = ${s(r)};`),f&&p){let e=d===`optional`?`${n}_present`:`${n}.value !== undefined || ${n}_present`;o.write(`
|
|
17
|
+
const ${n}_present = ${i};
|
|
18
|
+
if (!${n}.issues.length || ${n}_present) {
|
|
19
|
+
if (${n}.issues.length) {${c(n,r)}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (${e}) {
|
|
23
|
+
newResult[${r}] = ${n}.value;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
`)}else f?(o.write(`
|
|
28
|
+
if (${n}.issues.length) {${c(n,r)}
|
|
29
|
+
}
|
|
30
|
+
`),d===`defaulted`?o.write(`newResult[${r}] = ${n}.value;`):o.write(`
|
|
31
|
+
if (${n}.value !== undefined || ${i}) {
|
|
32
|
+
newResult[${r}] = ${n}.value;
|
|
33
|
+
}
|
|
34
|
+
`)):o.write(`
|
|
35
|
+
const ${n}_present = ${i};
|
|
36
|
+
if (${n}.issues.length) {${c(n,r)}
|
|
37
|
+
}
|
|
38
|
+
if (!${n}_present && !${n}.issues.length) {
|
|
39
|
+
payload.issues.push({
|
|
40
|
+
code: "invalid_type",
|
|
41
|
+
expected: "nonoptional",
|
|
42
|
+
input: undefined,
|
|
43
|
+
path: [${r}]
|
|
44
|
+
});
|
|
45
|
+
if (ctx && ctx.abortEarly) {
|
|
46
|
+
payload.value = newResult;
|
|
47
|
+
return payload;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (${n}_present) {
|
|
52
|
+
newResult[${r}] = ${n}.value;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
`)}return o.write(`payload.value = newResult;`),o.write(`return payload;`),o.compile()},o,s=ue,c=!P.jitless,l=c&&de.value,u=t.catchall,d;e._zod.parse=(i,f)=>{d??=r.value;let p=i.value;return s(p)?c&&l&&f?.async===!1&&f.jitless!==!0?(o||=a(t.shape),i=o(i,f),u?br([],p,i,f,d,e,f?.abortEarly===!0):i):n(i,f):(i.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),i)}});function Cr(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!w(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>D(e,r,F())))}),t)}const wr=/*@__PURE__*/ M(`$ZodUnion`,(e,t)=>{L.init(e,t),j(e,`optin`,e=>e.def.options.some(e=>e._zod.optin===`defaulted`)?`defaulted`:e.def.options.some(e=>e._zod.optin!==void 0)?`optional`:void 0),j(e,`optout`,e=>e.def.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),j(e,`values`,e=>{if(e.def.options.every(e=>e._zod.values))return new Set(e.def.options.flatMap(e=>Array.from(e._zod.values)))}),j(e,`pattern`,e=>{if(e.def.options.every(e=>e._zod.pattern)){let t=e.def.options.map(e=>e._zod.pattern);return RegExp(`^(${t.map(e=>te(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>Cr(t,r,e,i)):Cr(o,r,e,i)}}),Tr=/*@__PURE__*/ M(`$ZodIntersection`,(e,t)=>{L.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>Dr(e,t,n)):Dr(e,i,a)}});function Er(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(b(e)&&b(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};Object.prototype.hasOwnProperty.call(i,`__proto__`)&&delete i.__proto__;for(let n of r){if(n===`__proto__`)continue;let r=Er(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=Er(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Dr(e,t,n){let r=/* @__PURE__ */ new Map,i,a=/* @__PURE__ */ new Map,o=(e,t)=>{let n;if(e.code===`unrecognized_keys`&&!e.path?.length)i??=e,n=e.keys;else if(e.code===`invalid_key`&&e.origin===`record`&&e.path?.length===1){let t=String(e.path[0]);a.has(t)||a.set(t,e),n=[t]}else return!1;for(let e of n)r.has(e)||r.set(e,{}),r.get(e)[t]=!0;return!0};for(let n of t.issues)o(n,`l`)||e.issues.push(n);for(let t of n.issues)o(t,`r`)||e.issues.push(t);let s=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(s.length){let t=i?s.filter(e=>i.keys.includes(e)):[];t.length&&e.issues.push({...i,keys:t});for(let n of s)!t.includes(n)&&a.has(n)&&e.issues.push(a.get(n))}let c=Er(t.value,n.value);if(!c.valid){if(w(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}const Or=/*@__PURE__*/ M(`$ZodRecord`,(e,t)=>{L.init(e,t);let n=P.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!b(a))return r.issues.push({expected:`record`,code:`invalid_type`,input:a,inst:e}),r;let o=[],s=t.keyType._zod.values;if(s&&!t.partial){r.value=n?n.alloc(e,r,{},i):{};let c=/* @__PURE__ */ new Set;for(let n of s)if(typeof n==`string`||typeof n==`number`||typeof n==`symbol`){if(c.add(typeof n==`number`?n.toString():n),n===`__proto__`)continue;let s=t.keyType._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(s.issues.length){r.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>D(e,i,F())),input:n,path:[n],inst:e});continue}let l=s.value;if(l===`__proto__`)continue;let u=t.valueType._zod.run({value:a[n],issues:[]},i);u instanceof Promise?o.push(u.then(e=>{e.issues.length&&r.issues.push(...T(n,e.issues)),r.value[l]=e.value})):(u.issues.length&&r.issues.push(...T(n,u.issues)),r.value[l]=u.value)}let l;for(let e in a)if(!c.has(e)){if(t.mode===`loose`){if(e===`__proto__`)continue;r.value[e]=a[e]}else l??=[],l.push(e)}l&&l.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:l,continue:!0})}else{r.value=n?n.alloc(e,r,{},i):{};let c;for(let n of Reflect.ownKeys(a)){if(n===`__proto__`||!Object.prototype.propertyIsEnumerable.call(a,n))continue;let l=t.keyType._zod.run({value:n,issues:[]},i);if(l instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof n==`string`&&Xt.test(n)&&l.issues.length){let e=t.keyType._zod.run({value:Number(n),issues:[]},i);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(l=e)}if(l.issues.length){t.mode===`loose`?r.value[n]=a[n]:s?(c??=[],c.push(n)):r.issues.push({code:`invalid_key`,origin:`record`,issues:l.issues.map(e=>D(e,i,F())),input:n,path:[n],inst:e});continue}let u=l.value;if(u===`__proto__`)continue;let d=t.valueType._zod.run({value:a[n],issues:[]},i);d instanceof Promise?o.push(d.then(e=>{e.issues.length&&r.issues.push(...T(n,e.issues)),r.value[u]=e.value})):(d.issues.length&&r.issues.push(...T(n,d.issues)),r.value[u]=d.value)}c&&c.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:c,continue:!0})}return o.length?Promise.all(o).then(()=>r):r}}),kr=/*@__PURE__*/ M(`$ZodEnum`,(e,t)=>{L.init(e,t);let n=d(t.entries),r=new Set(n);e._zod.values=r,j(e,`pattern`,e=>{let t=d(e.def.entries).filter(e=>pe.has(typeof e));return RegExp(t.length?`^(${t.map(e=>x(e.toString())).join(`|`)})$`:`^[^\\s\\S]$`)}),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),Ar=/*@__PURE__*/ M(`$ZodLiteral`,(e,t)=>{L.init(e,t);let n=new Set(t.values);e._zod.values=n,j(e,`pattern`,e=>{let t=e.def.values;return RegExp(t.length?`^(${t.map(e=>typeof e==`string`?x(e):e?x(e.toString()):String(e)).join(`|`)})$`:`^[^\\s\\S]$`)}),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),jr=/*@__PURE__*/ M(`$ZodTransform`,(e,t)=>{L.init(e,t),e._zod.optin=`optional`,P.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new qe(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new N;return n.value=i,n}});function Mr(e,t){return e.value=t.issues.length?void 0:t.value,e}const Nr=/*@__PURE__*/ M(`$ZodOptional`,(e,t)=>{L.init(e,t),j(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),e._zod.optout=`optional`,j(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?/* @__PURE__ */ new Set([...t,void 0]):void 0}),j(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${te(t.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(e.value===void 0){if(t.innerType._zod.optin!==`defaulted`)return e;let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(t=>Mr(e,t)):Mr(e,r)}return t.innerType._zod.run(e,n)}}),Pr=/*@__PURE__*/ M(`$ZodExactOptional`,(e,t)=>{Nr.init(e,t),j(e,`values`,e=>e.def.innerType._zod.values),j(e,`pattern`,e=>e.def.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),Fr=/*@__PURE__*/ M(`$ZodNullable`,(e,t)=>{L.init(e,t),j(e,`optin`,e=>e.def.innerType._zod.optin),j(e,`optout`,e=>e.def.innerType._zod.optout),j(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${te(t.source)}|null)$`):void 0}),j(e,`values`,e=>e.def.innerType._zod.values?/* @__PURE__ */ new Set([...e.def.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Ir=/*@__PURE__*/ M(`$ZodDefault`,(e,t)=>{L.init(e,t),e._zod.optin=`defaulted`,j(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Lr(e,t)):Lr(r,t)}});function Lr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const Rr=/*@__PURE__*/ M(`$ZodPrefault`,(e,t)=>{L.init(e,t),e._zod.optin=`defaulted`,j(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),zr=/*@__PURE__*/ M(`$ZodNonOptional`,(e,t)=>{L.init(e,t),j(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>Br(t,e)):Br(i,e)}});function Br(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}function Vr(e,t,n,r){return t.issues.length?(e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map(e=>D(e,r,F()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}const Hr=/*@__PURE__*/ M(`$ZodCatch`,(e,t)=>{L.init(e,t),j(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),j(e,`optout`,e=>e.def.innerType._zod.optout),j(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(r=>Vr(e,r,t,n)):Vr(e,r,t,n)}}),Ur=/*@__PURE__*/ M(`$ZodPipe`,(e,t)=>{L.init(e,t),j(e,`values`,e=>e.def.in._zod.values),j(e,`optin`,e=>e.def.in._zod.optin),j(e,`optout`,e=>e.def.out._zod.optout),j(e,`propValues`,e=>e.def.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Wr(e,t.in,n)):Wr(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Wr(e,t.out,n)):Wr(r,t.out,n)}});function Wr(e,t,n){return e.issues.some(e=>e.code!==`unrecognized_keys`)?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const Gr=/*@__PURE__*/ M(`$ZodReadonly`,(e,t)=>{L.init(e,t),j(e,`propValues`,e=>e.def.innerType._zod.propValues),j(e,`values`,e=>e.def.innerType._zod.values),j(e,`optin`,e=>e.def.innerType?._zod?.optin),j(e,`optout`,e=>e.def.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Kr):Kr(r)}});function Kr(e){return e.memo||(e.value=Object.freeze(e.value)),e}const qr=/*@__PURE__*/ M(`$ZodCustom`,(e,t)=>{I.init(e,t),L.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>Jr(t,n,r,e));Jr(i,n,r,e)}});function Jr(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(O(e))}}var Yr=class extends Error{constructor(){super(`Cannot parse a reference cycle that closes through a transform`),this.name=`ZodCyclicError`}};const Xr=`~memo`,Zr=[];function Qr(e){return typeof e==`object`&&!!e}function $r(e){return e.map(e=>e.path?{...e,path:e.path.slice()}:{...e})}const ei=/*@__PURE__*/ new WeakMap;function ti(e,t,n){let r=ei.get(e);if(r!==void 0)return r?2:0;if(t.has(e))return 2;t.add(e);let i=0,a=e=>{if(i!==2&&e?._zod){let r=ti(e,t,n);r>i&&(i=r)}},o=(e,r)=>{let i=0;for(let a of Reflect.ownKeys(e)){let o=Object.getOwnPropertyDescriptor(e,a);if(r&&!o.enumerable)continue;let s=o.get?1:o.value?._zod?ti(o.value,t,n):0;s>i&&(i=s)}return i},s=e=>{e>i&&(i=e)},c=e._zod.def;switch(c.type){case`object`:{let e=re(c);s(e?o(e,!0):1),a(c.catchall);break}case`array`:a(c.element);break;case`tuple`:for(let e of c.items)a(e);a(c.rest);break;case`record`:case`map`:a(c.keyType),a(c.valueType);break;case`set`:a(c.valueType);break;case`union`:for(let e of c.options)a(e);break;case`intersection`:a(c.left),a(c.right);break;case`optional`:case`nullable`:case`default`:case`prefault`:case`catch`:case`readonly`:case`nonoptional`:case`promise`:case`success`:a(c.innerType);break;case`pipe`:a(c.in),a(c.out);break;case`function`:a(c.input),a(c.output);break;case`lazy`:{let r=c._cachedInner??(n?e._zod.innerType:void 0);s(r?ti(r,t,!1):1);break}case`template_literal`:case`string`:case`number`:case`int`:case`boolean`:case`bigint`:case`symbol`:case`undefined`:case`null`:case`void`:case`never`:case`any`:case`unknown`:case`date`:case`nan`:case`enum`:case`literal`:case`file`:case`transform`:case`custom`:break;default:for(let e in c){let t=Object.getOwnPropertyDescriptor(c,e);if(!t||t.get)continue;let n=t.value;if(n&&typeof n==`object`){if(n._zod)a(n);else if(Array.isArray(n))for(let e of n)a(e)}}}return t.delete(e),ni(e,i)}function ni(e,t){return t!==1&&ei.set(e,t===2),t}function ri(e,t){let n=e.buckets.get(t);return n||(n=/* @__PURE__ */ new WeakMap,e.buckets.set(t,n)),n}let ii;const ai=[],oi={alloc(e,t,n){let r=ii;if(!r)return n;ii=void 0;let i={value:n,issues:null};return r.set(t.value,i),ai.push(i),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,n=(e,n)=>{if(n.direction!==`backward`&&ci(n,e.value))throw new Yr;return t(e,n)};e._zod.parse=n,e._zod.run===t&&(e._zod.run=n)})},attach(e){var t;let n,r=!1,i,a;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,o=(s,c)=>{if(n===void 0){let i=ti(e,/* @__PURE__ */ new Set,!1);if(i===0)return e._zod.parse=t,e._zod.run===o&&(e._zod.run=t),t(s,c);i===2||r?n=!0:r=!0}let l=s.value;if(!Qr(l))return t(s,c);let u=c[Xr];u||(u={buckets:/* @__PURE__ */ new WeakMap,backEdges:void 0},c[Xr]=u);let d;i===c?d=a:(d=ri(u,e),i=c,a=d);let f=d.get(l);if(f)return s.value=f.value,f.issues?f.issues.length&&s.issues.push(...$r(f.issues)):(s.memo=!0,u.backEdges??(u.backEdges=/* @__PURE__ */ new WeakSet),u.backEdges.add(f.value)),s;ii=d;let p=ai.length,m=t(s,c);ii=void 0;let h=ai.length>p?ai.pop():void 0;return m instanceof Promise?m.then(e=>(h&&(h.issues=e.issues.length?$r(e.issues):Zr),e)):(h&&(h.issues=m.issues.length?$r(m.issues):Zr),m)};e._zod.parse=o,e._zod.run===t&&(e._zod.run=o)})}};function si(){return oi}function ci(e,t){let n=e[Xr]?.backEdges;return n!==void 0&&Qr(t)&&n.has(t)}const li=()=>{let e={string:{unit:`characters`,verb:`to have`},file:{unit:`bytes`,verb:`to have`},array:{unit:`items`,verb:`to have`},set:{unit:`items`,verb:`to have`},map:{unit:`entries`,verb:`to have`}};function t(t){return e[t]??null}let n={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,mac:`MAC address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,currency_code:`currency code`,credit_card:`credit card number`,iban:`IBAN`,jwt:`JWT`,template_literal:`input`},r={nan:`NaN`};function i(e,t){return e===`number`&&typeof t==`number`&&!Number.isFinite(t)?String(t):r[e]??e}return e=>{switch(e.code){case`invalid_type`:return`Invalid input: expected ${i(e.expected)}, received ${i(Ne(e.input),e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${me(e.values[0])}`:`Invalid option: expected one of ${f(e.values,`|`)}`;case`too_big`:{let n=e.exact?`exactly `:e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Too big: expected ${e.origin??`value`} to have ${n}${e.maximum.toString()} ${r.unit??`elements`}`:`Too big: expected ${e.origin??`value`} to be ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.exact?`exactly `:e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Too small: expected ${e.origin} to have ${n}${e.minimum.toString()} ${r.unit}`:`Too small: expected ${e.origin} to be ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Invalid string: must start with "${t.prefix}"`:t.format===`ends_with`?`Invalid string: must end with "${t.suffix}"`:t.format===`includes`?`Invalid string: must include "${t.includes}"`:t.format===`regex`?`Invalid string: must match pattern ${t.pattern}`:`Invalid ${n[t.format]??e.format}`}case`not_multiple_of`:return`Invalid number: must be a multiple of ${e.divisor}`;case`unrecognized_keys`:return`Unrecognized key${e.keys.length>1?`s`:``}: ${f(e.keys,`, `)}`;case`invalid_key`:return`Invalid key in ${e.origin}`;case`invalid_union`:return e.options&&Array.isArray(e.options)&&e.options.length>0?`Invalid discriminator value. Expected ${e.options.map(e=>`'${e}'`).join(` | `)}`:e.inclusive===!1?`Invalid input: more than one option matched`:`Invalid input`;case`invalid_element`:return`Invalid value in ${e.origin}`;default:return`Invalid input`}}};function ui(){return{localeError:li()}}var di,fi=class{constructor(){this._map=/* @__PURE__ */ new WeakMap,this._idmap=/* @__PURE__ */ new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=/* @__PURE__ */ new WeakMap,this._idmap=/* @__PURE__ */ new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function pi(){return new fi}(di=globalThis).__zod_globalRegistry??(di.__zod_globalRegistry=pi());const mi=globalThis.__zod_globalRegistry;function hi(e){return e.checks&&=[...e.checks],e}// @__NO_SIDE_EFFECTS__
|
|
56
|
+
function gi(e,t){return new e(hi({type:`string`,...C(t)}))}// @__NO_SIDE_EFFECTS__
|
|
57
|
+
function _i(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
58
|
+
function vi(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
59
|
+
function yi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
60
|
+
function bi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
61
|
+
function xi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
62
|
+
function Si(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
63
|
+
function Ci(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
64
|
+
function wi(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
65
|
+
function Ti(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
66
|
+
function Ei(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
67
|
+
function Di(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
68
|
+
function Oi(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
69
|
+
function ki(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
70
|
+
function Ai(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
71
|
+
function ji(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
72
|
+
function Mi(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
73
|
+
function Ni(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
74
|
+
function Pi(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
75
|
+
function Fi(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
76
|
+
function Ii(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
77
|
+
function Li(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
78
|
+
function Ri(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
79
|
+
function zi(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
80
|
+
function Bi(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
81
|
+
function Vi(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
82
|
+
function Hi(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
83
|
+
function Ui(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
84
|
+
function Wi(e,t){return new e({type:`boolean`,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
85
|
+
function Gi(e){return new e({type:`unknown`})}// @__NO_SIDE_EFFECTS__
|
|
86
|
+
function Ki(e,t){return new e({type:`never`,...C(t)})}// @__NO_SIDE_EFFECTS__
|
|
87
|
+
function qi(e,t){return new nn({check:`less_than`,...C(t),value:e,inclusive:!1})}// @__NO_SIDE_EFFECTS__
|
|
88
|
+
function Ji(e,t){return new nn({check:`less_than`,...C(t),value:e,inclusive:!0})}// @__NO_SIDE_EFFECTS__
|
|
89
|
+
function Yi(e,t){return new rn({check:`greater_than`,...C(t),value:e,inclusive:!1})}// @__NO_SIDE_EFFECTS__
|
|
90
|
+
function Xi(e,t){return new rn({check:`greater_than`,...C(t),value:e,inclusive:!0})}// @__NO_SIDE_EFFECTS__
|
|
91
|
+
function Zi(e,t){return new an({check:`multiple_of`,...C(t),value:e})}// @__NO_SIDE_EFFECTS__
|
|
92
|
+
function Qi(e,t){return new sn({check:`max_length`,...C(t),maximum:e})}// @__NO_SIDE_EFFECTS__
|
|
93
|
+
function $i(e,t){return new cn({check:`min_length`,...C(t),minimum:e})}// @__NO_SIDE_EFFECTS__
|
|
94
|
+
function ea(e,t){return new ln({check:`length_equals`,...C(t),length:e})}// @__NO_SIDE_EFFECTS__
|
|
95
|
+
function ta(e,t){return new dn({check:`string_format`,format:`regex`,...C(t),pattern:e})}// @__NO_SIDE_EFFECTS__
|
|
96
|
+
function na(e){return new fn({check:`string_format`,format:`lowercase`,...C(e)})}// @__NO_SIDE_EFFECTS__
|
|
97
|
+
function ra(e){return new pn({check:`string_format`,format:`uppercase`,...C(e)})}// @__NO_SIDE_EFFECTS__
|
|
98
|
+
function ia(e,t){return new mn({check:`string_format`,format:`includes`,...C(t),includes:e})}// @__NO_SIDE_EFFECTS__
|
|
99
|
+
function aa(e,t){return new hn({check:`string_format`,format:`starts_with`,...C(t),prefix:e})}// @__NO_SIDE_EFFECTS__
|
|
100
|
+
function oa(e,t){return new gn({check:`string_format`,format:`ends_with`,...C(t),suffix:e})}// @__NO_SIDE_EFFECTS__
|
|
101
|
+
function z(e){return new _n({check:`overwrite`,tx:e})}// @__NO_SIDE_EFFECTS__
|
|
102
|
+
function sa(e){return/* @__PURE__ */ z(t=>t.normalize(e))}// @__NO_SIDE_EFFECTS__
|
|
103
|
+
function ca(){return/* @__PURE__ */ z(e=>e.trim())}// @__NO_SIDE_EFFECTS__
|
|
104
|
+
function la(){return/* @__PURE__ */ z(e=>e.toLowerCase())}// @__NO_SIDE_EFFECTS__
|
|
105
|
+
function ua(){return/* @__PURE__ */ z(e=>e.toUpperCase())}// @__NO_SIDE_EFFECTS__
|
|
106
|
+
function da(){return/* @__PURE__ */ z(e=>ce(e))}// @__NO_SIDE_EFFECTS__
|
|
107
|
+
function fa(e,t,n){return new e({type:`array`,element:t,...C(n)})}// @__NO_SIDE_EFFECTS__
|
|
108
|
+
function pa(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...C(n)})}// @__NO_SIDE_EFFECTS__
|
|
109
|
+
function ma(e,t){let n=/* @__PURE__ */ ha(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(O(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,`input`in r||(r.input=t.value),r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(O(r))}},e(t.value,t)),t);return n}// @__NO_SIDE_EFFECTS__
|
|
110
|
+
function ha(e,t){let n=new I({check:`custom`,...C(t)});return n._zod.check=e,n}function ga(e,...t){for(let n of t)for(let t of Reflect.ownKeys(n))Object.prototype.propertyIsEnumerable.call(n,t)&&g(e,t,n[t]);return e}function _a(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??mi,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:/* @__PURE__ */ new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,intersections:[],deferred:[],external:e?.external??void 0}}function B(e,t,n,r,i){let a=typeof t.unrepresentable==`function`?t.unrepresentable({zodSchema:e,path:r.path,message:i}):t.unrepresentable;if(a===`any`)return!1;if(a===void 0||a===`throw`)throw Error(i);return Object.assign(n,a),!0}function V(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,V(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&ga(o.schema,c),t.io===`input`&&H(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function va(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function ya(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);if(e.external&&e.sharedDefsExtractedFor===e.external)return;let r=/* @__PURE__ */ new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${va(a)}`}}let i=`#/${r}/`;if(t[1]===n&&!t[1].schema.id)return{ref:`#`};let a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+va(a)}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
|
|
111
|
+
|
|
112
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0])a(n);else{if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}(e.metadataRegistry.get(n[0])?.id||r.cycle||r.count>1&&e.reused===`ref`)&&a(n)}}e.external&&(e.sharedDefsExtractedFor=e.external)}function ba(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let e of t){if(!e||typeof e!=`object`)return;ba(e);let t=Object.keys(e);if(t.length!==1||t[0]!==`type`)return;let r=e.type;for(let e of Array.isArray(r)?r:[r]){if(typeof e!=`string`)return;n.includes(e)||n.push(e)}}delete e.anyOf,e.type=n.length===1?n[0]:n}const xa=/* @__PURE__ */ new Set([`type`,`properties`,`required`,`additionalProperties`]),Sa=[`oneOf`,`anyOf`];function Ca(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!=`object`||!t?null:Object.keys(t).length?t:null}function wa(e){let t=[];for(let n of e){if(typeof n!=`object`||n.type!==`object`)return null;for(let e in n)if(!xa.has(e))return null;t.push(n)}let n={},r=/* @__PURE__ */ new Set;for(let e of t){for(let r in e.properties){if(Object.prototype.hasOwnProperty.call(n,r))continue;let e=[];for(let n of t){let t=n.properties?.[r]??Ca(n);t!=null&&(e.some(e=>JSON.stringify(e)===JSON.stringify(t))||e.push(t))}g(n,r,e.length===1?e[0]:wa(e)??{allOf:e})}for(let t of e.required??[])r.add(t)}let i={type:`object`,properties:n};if(r.size&&(i.required=[...r]),t.every(e=>e.additionalProperties===!1))i.additionalProperties=!1;else{let e=[];for(let n of t){let t=Ca(n);t&&!e.some(e=>JSON.stringify(e)===JSON.stringify(t))&&e.push(t)}e.length===1?i.additionalProperties=e[0]:e.length>1&&(i.additionalProperties={allOf:e})}return i}function Ta(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let t of xa)if(t in e)return;let n=t.filter(e=>Sa.some(t=>Array.isArray(e[t]))),r=null;if(!n.length)r=wa(t);else{let e=n[0],i=Sa.find(t=>Array.isArray(e[t]));if(Object.keys(e).length!==1)return;let a=t.filter(t=>t!==e),o=e[i].map(e=>wa([...a,e]));if(o.some(e=>!e))return;r={[i]:o}}r&&(delete e.allOf,ga(e,r))}function Ea(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):ga(i,s),ga(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let t of[...e.seen.entries()].reverse())r(t[0]);if(e.target!==`openapi-3.0`)for(let t of e.seen.entries())ba(t[1].def??t[1].schema);for(let t of e.deferred)t();if(e.intersections.length){let t=/* @__PURE__ */ new Map;for(let n of e.seen.values())for(let e of[n.schema,n.def]){let n=e?.allOf;if(!Array.isArray(n))continue;let r=t.get(n);r?r.push(e):t.set(n,[e])}for(let n of e.intersections)for(let e of t.get(n)??[])Ta(e)}}let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}ga(i,n.defId?n.schema:n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,g(o,e.defId,e.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:Oa(t,`input`,e.processors),output:Oa(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function H(e,t){let n=t??{seen:/* @__PURE__ */ new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return H(r.element,n);if(r.type===`set`)return H(r.valueType,n);if(r.type===`lazy`)return H(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`||r.type===`catch`)return H(r.innerType,n);if(r.type===`intersection`)return H(r.left,n)||H(r.right,n);if(r.type===`record`||r.type===`map`)return H(r.keyType,n)||H(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:H(r.in,n)||H(r.out,n);if(r.type===`object`){for(let e in r.shape)if(H(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(H(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(H(e,n))return!0;return!!(r.rest&&H(r.rest,n))}return!1}const Da=(e,t={})=>n=>{let r=_a({...n,processors:t});return V(e,r),ya(r,e),Ea(r,e)},Oa=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=_a({...i??{},target:a,io:t,processors:n});return V(e,o),ya(o,e),Ea(o,e)},U=(e,t,n)=>{(e[t]===void 0||n>e[t])&&(e[t]=n)},W=(e,t,n)=>{(e[t]===void 0||n<e[t])&&(e[t]=n)},ka=(e,t)=>{U(e,`minimum`,t),W(e,`maximum`,t)},Aa=(e,t)=>{e.multipleOf??=[],e.multipleOf.includes(t)||e.multipleOf.push(t)},ja=(e,t)=>{e.patterns??=/* @__PURE__ */ new Set,e.patterns.add(t)},Ma=(e,t)=>{e.mime=e.mime?e.mime.filter(e=>t.includes(e)):[...t]},Na=(e,t)=>{e.format=t,t.includes(`int`)&&(e.isInt=!0)},Pa=(e,t)=>U(e,`minimum`,t.minimum),Fa=(e,t)=>W(e,`maximum`,t.maximum),Ia=e=>(t,n)=>{Na(t,n.format);let[r,i]=e[n.format];U(t,`minimum`,r),W(t,`maximum`,i)},La={greater_than:(e,t)=>U(e,t.inclusive?`minimum`:`exclusiveMinimum`,t.value),less_than:(e,t)=>W(e,t.inclusive?`maximum`:`exclusiveMaximum`,t.value),multiple_of:(e,t)=>Aa(e,t.value),number_format:Ia(ge),bigint_format:Ia(_e),min_length:Pa,max_length:Fa,length_equals:(e,t)=>ka(e,t.length),min_size:Pa,max_size:Fa,size_equals:(e,t)=>ka(e,t.size),string_format:(e,t)=>{Na(e,t.format),t.pattern&&ja(e,t.pattern),(t.format===`base64`||t.format===`base64url`)&&(e.contentEncoding=t.format),(t.local||t.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,t)=>Ma(e,t.mime)};function G(e){let t={},n=e._zod.def,r=e._zod.traits.has(`$ZodCheck`)?[e,...n.checks??[]]:n.checks??[];for(let e of r)La[e._zod.def.check]?.(t,e._zod.def);let i=e._zod.bag;i.minimum!==void 0&&U(t,`minimum`,i.minimum),i.exclusiveMinimum!==void 0&&U(t,`exclusiveMinimum`,i.exclusiveMinimum),i.maximum!==void 0&&W(t,`maximum`,i.maximum),i.exclusiveMaximum!==void 0&&W(t,`exclusiveMaximum`,i.exclusiveMaximum),i.multipleOf!==void 0&&Aa(t,i.multipleOf),i.format!==void 0&&(t.format??=i.format,i.format.includes(`int`)&&(t.isInt=!0)),i.mime&&Ma(t,i.mime);for(let e of i.patterns??[])ja(t,e);return t}const Ra={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},za=/* @__PURE__ */ new Map([[er,Rt],[nr,zt]]),Ba=e=>za.get(e)??e,Va=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l,laxFormat:u}=G(e);if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=Ra[s]??s,i.format===``&&delete i.format,(s===`time`||u)&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c].map(Ba);e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},Ha=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,multipleOf:s,exclusiveMaximum:c,exclusiveMinimum:l,isInt:u}=G(e);i.type=u?`integer`:`number`;let d=typeof l==`number`&&l>=(a??-1/0),f=typeof c==`number`&&c<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;if(d?p?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c:typeof o==`number`&&(i.maximum=o),s){let n=/* @__PURE__ */ new Set;for(let a of s)Number.isFinite(a)&&a!==0?n.add(Math.abs(a)):B(e,t,i,r,`A multipleOf divisor of ${a} cannot be represented in JSON Schema`);let[a,...o]=n;a!==void 0&&(i.multipleOf=a),o.length&&(i.allOf=[...i.allOf??[],...o.map(e=>({multipleOf:e}))])}},Ua=(e,t,n,r)=>{n.type=`boolean`},Wa=(e,t,n,r)=>{n.not={}},Ga=(e,t,n,r)=>{let i=e._zod.def,a=d(i.entries);a.length===0?n.not={}:(a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a)},Ka=(e,t,n,r)=>{let i=e._zod.def;if(i.values.length===0){n.not={};return}let a=[];for(let o of i.values)if(o===void 0){if(B(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof o==`bigint`){if(B(e,t,n,r,`BigInt literals cannot be represented in JSON Schema`))return;a.push(Number(o))}else a.push(o);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},qa=(e,t,n,r)=>{B(e,t,n,r,`Custom types cannot be represented in JSON Schema`)},Ja=(e,t,n,r)=>{B(e,t,n,r,`Transforms cannot be represented in JSON Schema`)},Ya=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=G(e);typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=V(a.element,t,{...r,path:[...r.path,`items`]})};function Xa(e){let t=e._zod.def;return t.type===`pipe`&&t.in._zod.traits.has(`$ZodTransform`)?Xa(t.out):t.type===`catch`?Xa(t.innerType):e._zod.optin}const Za=(e,t,n,r)=>{let i=n,a=e._zod.def,o=a.shape;if(Object.getOwnPropertySymbols(o).length&&B(e,t,i,r,`Symbol keys cannot be represented in JSON Schema`))return;i.type=`object`,i.properties={};for(let e in o)g(i.properties,e,V(o[e],t,{...r,path:[...r.path,`properties`,e]}));let s=[];for(let e of Object.keys(o)){let n=a.shape[e];(t.io===`input`?Xa(n)===void 0:n._zod.optout===void 0)&&s.push(e)}s.length>0&&(i.required=s),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=V(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Qa=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>V(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},$a=(e,t,n,r)=>{let i=e._zod.def,a=V(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=V(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];n.allOf=c,t.intersections.push(c)};function eo(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);let r=e.get(t)?.def;if(!r)return t;let i=eo(e,r,n);return i===r?t:i}for(let r of[`anyOf`,`oneOf`]){let i=t[r];if(!Array.isArray(i))continue;let a=i.map(t=>eo(e,t,n));a.some((e,t)=>e!==i[t])&&(t={...t,[r]:a})}let r=Array.isArray(t.type)?t.type:[t.type],i=!r.includes(`string`)&&r.some(e=>e===`number`||e===`integer`),a=t.enum??(t.const===void 0?void 0:[t.const]);if(!i&&!a?.some(e=>typeof e==`number`))return t;let{minimum:o,maximum:s,exclusiveMinimum:c,exclusiveMaximum:l,multipleOf:u,format:d,id:f,...p}=t;return p.enum?p.enum=p.enum.map(e=>typeof e==`number`?String(e):e):typeof p.const==`number`&&(p.const=String(p.const)),i&&(p.type=`string`,a||(p.pattern=(r.includes(`number`)?Xt:Yt).source)),p}const to=/* @__PURE__ */ new WeakMap;function no(e){let t=/* @__PURE__ */ new Map;for(let n of e.seen.values())n.def&&!t.has(n.schema)&&t.set(n.schema,n);let n=/* @__PURE__ */ new Map;for(let r of to.get(e)??[]){let i=e.seen.get(r),a=(i?.def??i?.schema)?.propertyNames;if(!a||a===!0||n.has(a))continue;let o=eo(t,a,/* @__PURE__ */ new Set);o!==a&&n.set(a,o)}if(n.size)for(let t of e.seen.values())for(let e of[t.schema,t.def]){let t=e&&n.get(e.propertyNames);t&&(e.propertyNames=t)}}const ro=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=G(o).patterns;if(a.mode===`loose`&&s&&s.size>0){let e=V(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)g(i.patternProperties,Ba(t).source,e)}else{if(t.target===`draft-07`||t.target===`draft-2020-12`){i.propertyNames=V(a.keyType,t,{...r,path:[...r.path,`propertyNames`]});let n=to.get(t);n||(n=[],to.set(t,n),t.deferred.push(()=>no(t))),n.push(e)}i.additionalProperties=V(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]})}let c=o._zod.values,l=t.io===`input`&&Xa(a.valueType)!==void 0;if(c&&!a.partial&&!l){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e.map(String))}},io=(e,t,n,r)=>{let i=e._zod.def,a=V(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},ao=(e,t,n,r)=>{let i=e._zod.def;V(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},oo=Symbol();function so(e,t,n,r,i){let a=!1,o=JSON.stringify(e,(e,t)=>typeof t==`bigint`?(a=!0,null):t);return a?(B(t,n,r,i,`BigInt defaults cannot be represented in JSON Schema`),oo):JSON.parse(o)}const co=(e,t,n,r)=>{let i=e._zod.def;V(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o=so(i.defaultValue,e,t,n,r);o!==oo&&(n.default=o)},lo=(e,t,n,r)=>{let i=e._zod.def;V(i.innerType,t,r);let a=t.seen.get(e);if(a.ref=i.innerType,t.io!==`input`)return;let o=so(i.defaultValue,e,t,n,r);o!==oo&&(n._prefault=o)},uo=(e,t,n,r)=>{let i=e._zod.def;V(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{B(e,t,n,r,`Dynamic catch values are not supported in JSON Schema`);return}n.default=o},fo=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;V(o,t,r);let s=t.seen.get(e);s.ref=o},po=(e,t,n,r)=>{let i=e._zod.def;V(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},mo=(e,t,n,r)=>{let i=e._zod.def;V(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},ho=/* @__PURE__ */ new WeakSet([Object.prototype,Error.prototype]);function go(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}const K=/*@__PURE__*/ M(`ZodError`,(e,t)=>{$e.init(e,t),e.name=`ZodError`;let n=Object.getPrototypeOf(e);ho.has(n)||(ho.add(n),go(n,`format`,e=>t=>nt(e,t)),go(n,`flatten`,e=>t=>tt(e,t)),go(n,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,p,2)}),go(n,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,p,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},void 0,{Parent:Error}),_o=/* @__PURE__ */ it(K),vo=/* @__PURE__ */ at(K),yo=/* @__PURE__ */ ot(K),bo=/* @__PURE__ */ ct(K),xo=/* @__PURE__ */ mt(K),So=/* @__PURE__ */ ht(K),Co=/* @__PURE__ */ gt(K),wo=/* @__PURE__ */ _t(K),To=/* @__PURE__ */ vt(K),Eo=/* @__PURE__ */ yt(K),Do=/* @__PURE__ */ bt(K),Oo=/* @__PURE__ */ xt(K);function ko(){P.localeError||F(ui())}function Ao(){P.memoizer||F({memoizer:si()})}const q=/*@__PURE__*/ M(`ZodType`,(e,t)=>(ko(),L.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(y(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return S(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(Hs(e,t))},superRefine(e,t){return this.check(Us(e,t))},overwrite(e){return this.check(/* @__PURE__ */ z(e))},optional(){return ws(this)},exactOptional(){return Es(this)},nullable(){return Os(this)},nullish(){return ws(Os(this))},nonoptional(e){return Ps(this,e)},array(){return Z(this)},or(e){return ps([this,e])},and(e){return hs(this,e)},transform(e){return Rs(this,Ss(e))},default(e){return As(this,e)},prefault(e){return Ms(this,e)},catch(e){return Is(this,e)},pipe(e){return Rs(this,e)},readonly(){return Bs(this)},describe(e){let t=this.clone();return mi.add(t,{description:e}),t},meta(...e){if(e.length===0)return mi.get(this);let t=this.clone();return mi.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return Fe(this,`~standard`,{...Sn(this),jsonSchema:{input:Oa(this,`input`),output:Oa(this,`output`)}})},set"~standard"(e){k(this,`~standard`,e)},parse:function e(t,n){return _o(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await vo(this,t,n,{callee:e})},safeParse(e,t){return yo(this,e,t)},async safeParseAsync(e,t){return bo(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){k(this,`spa`,e)},validate(e,t){return dt(this,e,t)},validateAsync(e,t){return pt(this,e,t)},encode:function e(t,n){return xo(this,t,n,{callee:e})},decode:function e(t,n){return So(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await Co(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await wo(this,t,n,{callee:e})},safeEncode(e,t){return To(this,e,t)},safeDecode(e,t){return Eo(this,e,t)},async safeEncodeAsync(e,t){return Do(this,e,t)},async safeDecodeAsync(e,t){return Oo(this,e,t)},toJSONSchema(e){return Da(this,{})(e)},get description(){return mi.get(this)?.description},get _def(){return this._zod.def}}),jo=/*@__PURE__*/ M(`_ZodString`,(e,t)=>{Cn.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Va(e,t,n,r)},/*@__PURE__*/ Ie({format:e=>G(e).format??null,minLength:e=>G(e).minimum??null,maxLength:e=>G(e).maximum??null},{regex(...e){return this.check(/* @__PURE__ */ ta(...e))},includes(...e){return this.check(/* @__PURE__ */ ia(...e))},startsWith(...e){return this.check(/* @__PURE__ */ aa(...e))},endsWith(...e){return this.check(/* @__PURE__ */ oa(...e))},min(...e){return this.check(/* @__PURE__ */ $i(...e))},max(...e){return this.check(/* @__PURE__ */ Qi(...e))},length(...e){return this.check(/* @__PURE__ */ ea(...e))},nonempty(...e){return this.check(/* @__PURE__ */ $i(1,...e))},lowercase(e){return this.check(/* @__PURE__ */ na(e))},uppercase(e){return this.check(/* @__PURE__ */ ra(e))},trim(){return this.check(/* @__PURE__ */ ca())},normalize(...e){return this.check(/* @__PURE__ */ sa(...e))},toLowerCase(){return this.check(/* @__PURE__ */ la())},toUpperCase(){return this.check(/* @__PURE__ */ ua())},slugify(){return this.check(/* @__PURE__ */ da())}})),Mo=/*@__PURE__*/ M(`ZodString`,(e,t)=>{Cn.init(e,t),jo.init(e,t)},{email(e){return this.check(/* @__PURE__ */ _i(Lo,e))},url(e){return this.check(/* @__PURE__ */ Ci(Bo,e))},jwt(e){return this.check(/* @__PURE__ */ Ri(ts,e))},emoji(e){return this.check(/* @__PURE__ */ wi(Vo,e))},guid(e){return this.check(/* @__PURE__ */ vi(Ro,e))},uuid(e){return this.check(/* @__PURE__ */ yi(zo,e))},uuidv4(e){return this.check(/* @__PURE__ */ bi(zo,e))},uuidv6(e){return this.check(/* @__PURE__ */ xi(zo,e))},uuidv7(e){return this.check(/* @__PURE__ */ Si(zo,e))},nanoid(e){return this.check(/* @__PURE__ */ Ti(Ho,e))},cuid(e){return this.check(/* @__PURE__ */ Ei(Uo,e))},cuid2(e){return this.check(/* @__PURE__ */ Di(Wo,e))},ulid(e){return this.check(/* @__PURE__ */ Oi(Go,e))},base64(e){return this.check(/* @__PURE__ */ Fi(Qo,e))},base64url(e){return this.check(/* @__PURE__ */ Ii($o,e))},xid(e){return this.check(/* @__PURE__ */ ki(Ko,e))},ksuid(e){return this.check(/* @__PURE__ */ Ai(qo,e))},ipv4(e){return this.check(/* @__PURE__ */ ji(Jo,e))},ipv6(e){return this.check(/* @__PURE__ */ Mi(Yo,e))},cidrv4(e){return this.check(/* @__PURE__ */ Ni(Xo,e))},cidrv6(e){return this.check(/* @__PURE__ */ Pi(Zo,e))},e164(e){return this.check(/* @__PURE__ */ Li(es,e))},datetime(e){return this.check(/* @__PURE__ */ zi(No,e))},date(e){return this.check(/* @__PURE__ */ Bi(Po,e))},time(e){return this.check(/* @__PURE__ */ Vi(Fo,e))},duration(e){return this.check(/* @__PURE__ */ Hi(Io,e))}});function J(e){return/* @__PURE__ */ gi(Mo,e)}const Y=/*@__PURE__*/ M(`ZodStringFormat`,(e,t)=>{R.init(e,t),jo.init(e,t)}),No=/*@__PURE__*/ M(`ZodISODateTime`,(e,t)=>{Hn.init(e,t),Y.init(e,t)}),Po=/*@__PURE__*/ M(`ZodISODate`,(e,t)=>{Un.init(e,t),Y.init(e,t)}),Fo=/*@__PURE__*/ M(`ZodISOTime`,(e,t)=>{Wn.init(e,t),Y.init(e,t)}),Io=/*@__PURE__*/ M(`ZodISODuration`,(e,t)=>{Gn.init(e,t),Y.init(e,t)}),Lo=/*@__PURE__*/ M(`ZodEmail`,(e,t)=>{En.init(e,t),Y.init(e,t)}),Ro=/*@__PURE__*/ M(`ZodGUID`,(e,t)=>{wn.init(e,t),Y.init(e,t)}),zo=/*@__PURE__*/ M(`ZodUUID`,(e,t)=>{Tn.init(e,t),Y.init(e,t)}),Bo=/*@__PURE__*/ M(`ZodURL`,(e,t)=>{Pn.init(e,t),Y.init(e,t)}),Vo=/*@__PURE__*/ M(`ZodEmoji`,(e,t)=>{Fn.init(e,t),Y.init(e,t)}),Ho=/*@__PURE__*/ M(`ZodNanoID`,(e,t)=>{In.init(e,t),Y.init(e,t)}),Uo=/*@__PURE__*/ M(`ZodCUID`,(e,t)=>{Ln.init(e,t),Y.init(e,t)}),Wo=/*@__PURE__*/ M(`ZodCUID2`,(e,t)=>{Rn.init(e,t),Y.init(e,t)}),Go=/*@__PURE__*/ M(`ZodULID`,(e,t)=>{zn.init(e,t),Y.init(e,t)}),Ko=/*@__PURE__*/ M(`ZodXID`,(e,t)=>{Bn.init(e,t),Y.init(e,t)}),qo=/*@__PURE__*/ M(`ZodKSUID`,(e,t)=>{Vn.init(e,t),Y.init(e,t)}),Jo=/*@__PURE__*/ M(`ZodIPv4`,(e,t)=>{Kn.init(e,t),Y.init(e,t)}),Yo=/*@__PURE__*/ M(`ZodIPv6`,(e,t)=>{Yn.init(e,t),Y.init(e,t)}),Xo=/*@__PURE__*/ M(`ZodCIDRv4`,(e,t)=>{Xn.init(e,t),Y.init(e,t)}),Zo=/*@__PURE__*/ M(`ZodCIDRv6`,(e,t)=>{Qn.init(e,t),Y.init(e,t)}),Qo=/*@__PURE__*/ M(`ZodBase64`,(e,t)=>{tr.init(e,t),Y.init(e,t)}),$o=/*@__PURE__*/ M(`ZodBase64URL`,(e,t)=>{ir.init(e,t),Y.init(e,t)}),es=/*@__PURE__*/ M(`ZodE164`,(e,t)=>{ar.init(e,t),Y.init(e,t)}),ts=/*@__PURE__*/ M(`ZodJWT`,(e,t)=>{sr.init(e,t),Y.init(e,t)}),ns=/*@__PURE__*/ M(`ZodNumber`,(e,t)=>{cr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ha(e,t,n,r),e.isFinite=!0},/*@__PURE__*/ Ie({minValue:e=>{let{minimum:t,exclusiveMinimum:n}=G(e);return Math.max(t??-1/0,n??-1/0)},maxValue:e=>{let{maximum:t,exclusiveMaximum:n}=G(e);return Math.min(t??1/0,n??1/0)},isInt:e=>{let{isInt:t,multipleOf:n}=G(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>G(e).format??null},{gt(e,t){return this.check(/* @__PURE__ */ Yi(e,t))},gte(e,t){return this.check(/* @__PURE__ */ Xi(e,t))},min(e,t){return this.check(/* @__PURE__ */ Xi(e,t))},lt(e,t){return this.check(/* @__PURE__ */ qi(e,t))},lte(e,t){return this.check(/* @__PURE__ */ Ji(e,t))},max(e,t){return this.check(/* @__PURE__ */ Ji(e,t))},int(e){return this.check(X(e))},safe(e){return this.check(X(e))},positive(e){return this.check(/* @__PURE__ */ Yi(0,e))},nonnegative(e){return this.check(/* @__PURE__ */ Xi(0,e))},negative(e){return this.check(/* @__PURE__ */ qi(0,e))},nonpositive(e){return this.check(/* @__PURE__ */ Ji(0,e))},multipleOf(e,t){return this.check(/* @__PURE__ */ Zi(e,t))},step(e,t){return this.check(/* @__PURE__ */ Zi(e,t))},finite(){return this}})),rs=/*@__PURE__*/ M(`ZodNumberFormat`,(e,t)=>{lr.init(e,t),ns.init(e,t)});function X(e){return/* @__PURE__ */ Ui(rs,e)}const is=/*@__PURE__*/ M(`ZodBoolean`,(e,t)=>{ur.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ua(e,t,n,r)});function as(e){return/* @__PURE__ */ Wi(is,e)}const os=/*@__PURE__*/ M(`ZodUnknown`,(e,t)=>{dr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function ss(){return/* @__PURE__ */ Gi(os)}const cs=/*@__PURE__*/ M(`ZodNever`,(e,t)=>{fr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Wa(e,t,n,r)});function ls(e){return/* @__PURE__ */ Ki(cs,e)}const us=/*@__PURE__*/ M(`ZodArray`,(e,t)=>{Ao(),gr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ya(e,t,n,r),e.element=t.element},{min(e,t){return this.check(/* @__PURE__ */ $i(e,t))},nonempty(e){return this.check(/* @__PURE__ */ $i(1,e))},max(e,t){return this.check(/* @__PURE__ */ Qi(e,t))},length(e,t){return this.check(/* @__PURE__ */ ea(e,t))},unwrap(){return this.element}});function Z(e,t){return/* @__PURE__ */ fa(us,e,t)}const ds=/*@__PURE__*/ M(`ZodObject`,(e,t)=>{Ao(),Sr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Za(e,t,n,r),Ve(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return $(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(y(this._zod.def,{catchall:e}))},passthrough(){return this.clone(y(this._zod.def,{catchall:ss()}))},loose(){return this.clone(y(this._zod.def,{catchall:ss()}))},strict(){return this.clone(y(this._zod.def,{catchall:ls()}))},strip(){return this.clone(y(this._zod.def,{catchall:void 0}))},extend(e){return xe(this,e)},safeExtend(e){return Ce(this,e)},merge(e){return we(this,e)},pick(e){return ve(this,e)},omit(e){return be(this,e)},partial(...e){return Te(Cs,this,e[0])},exactPartial(...e){return Te(Ts,this,e[0],`exactPartial`)},required(...e){return Ee(Ns,this,e[0])}});function Q(e,t){return new ds({type:`object`,shape:e,catchall:ls(),...C(t)})}const fs=/*@__PURE__*/ M(`ZodUnion`,(e,t)=>{wr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qa(e,t,n,r),e.options=t.options});function ps(e,t){return new fs({type:`union`,options:e,...C(t)})}const ms=/*@__PURE__*/ M(`ZodIntersection`,(e,t)=>{Tr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>$a(e,t,n,r)});function hs(e,t){return new ms({type:`intersection`,left:e,right:t})}const gs=/*@__PURE__*/ M(`ZodRecord`,(e,t)=>{Ao(),Or.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ro(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function _s(e,t,n){return!t||!t._zod?new gs({type:`record`,keyType:J(),valueType:e,...C(t)}):new gs({type:`record`,keyType:e,valueType:t,...C(n)})}const vs=/*@__PURE__*/ M(`ZodEnum`,(e,t)=>{kr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ga(e,t,n,r),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new vs({...t,checks:[],...C(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new vs({...t,checks:[],...C(r),entries:i})}});function $(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new vs({type:`enum`,entries:n,...C(t)})}const ys=/*@__PURE__*/ M(`ZodLiteral`,(e,t)=>{Ar.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ka(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function bs(e,t){return new ys({type:`literal`,values:Array.isArray(e)?e:[e],...C(t)})}const xs=/*@__PURE__*/ M(`ZodTransform`,(e,t)=>{Ao(),jr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ja(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new qe(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(O(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(O(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Ss(e){return new xs({type:`transform`,transform:e})}const Cs=/*@__PURE__*/ M(`ZodOptional`,(e,t)=>{Nr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>mo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ws(e){return new Cs({type:`optional`,innerType:e})}const Ts=/*@__PURE__*/ M(`ZodExactOptional`,(e,t)=>{Pr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>mo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Es(e){return new Ts({type:`optional`,innerType:e})}const Ds=/*@__PURE__*/ M(`ZodNullable`,(e,t)=>{Fr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>io(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Os(e){return new Ds({type:`nullable`,innerType:e})}const ks=/*@__PURE__*/ M(`ZodDefault`,(e,t)=>{Ir.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>co(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function As(e,t){return new ks({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():fe(t)}})}const js=/*@__PURE__*/ M(`ZodPrefault`,(e,t)=>{Rr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>lo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ms(e,t){return new js({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():fe(t)}})}const Ns=/*@__PURE__*/ M(`ZodNonOptional`,(e,t)=>{zr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ao(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ps(e,t){return new Ns({type:`nonoptional`,innerType:e,...C(t)})}const Fs=/*@__PURE__*/ M(`ZodCatch`,(e,t)=>{Hr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>uo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Is(e,t){return new Fs({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:He(t)})}const Ls=/*@__PURE__*/ M(`ZodPipe`,(e,t)=>{Ur.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fo(e,t,n,r),e.in=t.in,e.out=t.out});function Rs(e,t){return new Ls({type:`pipe`,in:e,out:t})}const zs=/*@__PURE__*/ M(`ZodReadonly`,(e,t)=>{Gr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>po(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Bs(e){return new zs({type:`readonly`,innerType:e})}const Vs=/*@__PURE__*/ M(`ZodCustom`,(e,t)=>{qr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qa(e,t,n,r)});function Hs(e,t={}){return/* @__PURE__ */ pa(Vs,e,t)}function Us(e,t){return/* @__PURE__ */ ma(e,t)}const Ws=/* @__PURE__ */ RegExp(`^[0-9a-f]{6}$`),Gs=bs(1);J().regex(Ws).brand(),J().regex(Ws).brand(),J().regex(/* @__PURE__ */ RegExp(`^[0-9a-f]{6}(:[0-9a-f]{6})?$`)).brand(),J().min(1).max(40).regex(/^[a-z0-9]+(-[a-z0-9]+)*$/).brand();const Ks=J().regex(/^#[0-9a-fA-F]{6}$/,`Expected a #rrggbb colour`),qs=J().min(1).max(40).refine(e=>e.trim().length>0,`Must not be blank`).refine(e=>!a(e),`Must not contain control characters`),Js=J().regex(/^[A-Za-z][A-Za-z0-9_-]{0,39}$/,`Expected a letter, then letters, digits, - or _`).refine(e=>e!==t,`"${t}" is reserved for main sessions`);ps([bs(t),Js]),J().min(1).max(60).refine(e=>!a(e),`Must not contain control characters`).refine(e=>!s(e),`Must not contain links`);const Ys=$(e);$(o),$(n),$(i),X().nonnegative();const Xs=[`security`,`vulnerability`,`CVE`,`exploit`,`token`,`secret`,`password`,`credential`],Zs=Q({path:J().min(1).max(1024).describe(`An absolute folder, or one starting with ~. The longest matching path wins.`),public:as().describe(`Whether sessions here show the project name and goals to visitors.`),name:qs.optional().describe(`The project name in office.config.json. Required when public is true.`)}).refine(e=>!e.public||e.name!==void 0,{message:`A public project needs the name it has in office.config.json`,path:[`name`]}),Qs=Q({fromTaskList:as().default(!0).describe(`Use the task Claude has in progress.`),fromSessionTitle:as().default(!0).describe(`Use the session title when no task is in progress.`),maxLength:X().min(10).max(60).default(60).describe(`Longest goal sent, in characters.`),blockWords:Z(J().min(1).max(40)).max(200).default([...Xs]).describe(`A goal containing any of these words is not sent.`),privatePrefix:J().min(1).max(20).default(`[private]`).describe(`A task title starting with this is never sent.`)}),$s=Q({$schema:J().optional().describe(`The JSON Schema, for editor autocomplete.`),v:Gs.describe(`The config version. Always 1.`),endpoint:J().refine(l,`Expected an https URL (http only for localhost)`).describe(`The relay ingest URL: https, or http for localhost only.`),projects:Z(Zs).max(500).default([]).describe(`Folders and whether they are public. Any other folder is private.`),publicAgentTypes:Z(Js).max(50).default([]).describe(`Subagent types sent by name. Others are sent as a generic helper.`),goals:Qs.default({fromTaskList:!0,fromSessionTitle:!0,maxLength:60,blockWords:[...Xs],privatePrefix:`[private]`}).describe(`Which goals are sent for public projects.`),mcpCategories:_s(J().min(1).max(100),Ys).default({}).describe(`MCP server name to work category. Server names are only read locally.`),timestampRoundingSec:X().min(1).max(60).default(5).describe(`Timestamps are rounded to this many seconds, so timing reveals less.`),paused:as().default(!1).describe(`Send nothing. Set by hivefloor pause and resume.`)});function ec(e){try{return new Intl.DateTimeFormat(`en`,{timeZone:e}),!0}catch{return!1}}const tc=Q({name:qs.describe(`The room name. Must match the project name in the machine config exactly.`),color:Ks.optional().describe(`The room colour as #rrggbb. Without one, a colour is picked from a fixed palette.`),group:J().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/,`Expected a lowercase slug such as "web"`).max(40).optional().describe(`A lowercase slug such as "web". Stored, but not used yet.`)}),nc=Q({name:qs.default(`Private projects`).describe(`The room name.`),color:Ks.default(`#8d94ab`).describe(`The room colour as #rrggbb.`),visible:as().default(!0).describe(`Set to false to hide the private room and its robots from visitors entirely.`)}),rc=Q({idleAfterSec:X().min(30).max(3600).default(180).describe(`Seconds without an event before a robot goes for coffee.`),awayAfterSec:X().min(60).max(86400).default(900).describe(`Seconds without an event before a robot leaves the building until its next event.`),leaveAfterSec:X().min(120).max(604800).default(3600).describe(`Seconds without an event before a robot is removed from the office.`)}).refine(e=>e.idleAfterSec<e.awayAfterSec,{message:`idleAfterSec must be less than awayAfterSec`,path:[`awayAfterSec`]}).refine(e=>e.awayAfterSec<e.leaveAfterSec,{message:`awayAfterSec must be less than leaveAfterSec`,path:[`leaveAfterSec`]}),ic=Q({roomsPerFloor:X().min(2).max(16).multipleOf(2).default(8).describe(`Rooms on a floor before a new floor starts. Must be even.`),desksPerRow:X().min(1).max(6).default(3).describe(`Desks in a row.`),maxRowsPerRoom:X().min(1).max(8).default(4).describe(`Desk rows a room can grow to.`),tableSeats:X().min(1).max(12).default(6).describe(`Seats for subagents at the team table.`),roomCloseAfterSec:X().min(60).max(86400).default(1800).describe(`Seconds a room stays empty before it closes and frees its place.`),rowRemoveAfterSec:X().min(0).max(86400).default(600).describe(`Seconds an empty desk row stays before it is removed.`),maxRenderedRobots:X().min(1).max(500).default(40).describe(`Robots drawn at once. The rest show as a "+N" sign; the list view shows everyone.`),maxVisibleRooms:X().min(2).max(64).default(12).describe(`Rooms drawn at once. The quietest fold into an "Other projects" room.`)}),ac=ic.parse({}),oc=Q({$schema:J().optional().describe(`The JSON Schema, for editor autocomplete.`),v:Gs.describe(`The config version. Always 1.`),title:qs.default(`Hivefloor`).describe(`The office name, shown in the header.`),owner:qs.describe(`Your name, shown under the title.`),timezone:J().refine(ec,`Expected an IANA time zone such as "Africa/Douala"`).describe(`Your IANA time zone, such as "Africa/Douala". Used for the daily reset time.`),publicProjects:Z(tc).max(100).default([]).describe(`Projects shown by name. Everything else goes to the private room.`),privateRoom:nc.default({name:`Private projects`,color:`#8d94ab`,visible:!0}).describe(`The shared room for every private session.`),agentTypes:Z(Js).max(50).default([c]).describe(`Subagent types the relay accepts by name.`),presence:rc.default({idleAfterSec:180,awayAfterSec:900,leaveAfterSec:3600}).describe(`When quiet robots go for coffee, step out and leave.`),layout:ic.default(ac).describe(`Limits of the elastic office.`),viewerCap:X().min(1).max(1e4).default(500).describe(`Live visitors at once. Others get a view that updates every few minutes.`)}).superRefine((e,t)=>{let n=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map;e.publicProjects.forEach((e,a)=>{let o=[`publicProjects`,a,`name`],s=e.name.trim().toLowerCase(),c=r(e.name);n.has(s)?t.addIssue({code:`custom`,path:o,message:`Duplicate project name "${e.name}"`}):i.has(c)&&t.addIssue({code:`custom`,path:o,message:`"${e.name}" has the same room id as another project`}),c.length===0&&t.addIssue({code:`custom`,path:o,message:`Name needs at least one letter or digit`}),u.includes(c)&&t.addIssue({code:`custom`,path:o,message:`"${c}" is a reserved room id`}),n.set(s,a),i.set(c,a)}),new Set(e.agentTypes).size!==e.agentTypes.length&&t.addIssue({code:`custom`,path:[`agentTypes`],message:`Agent types must be unique`})}),sc=Symbol(`not JSON`);function cc(e){try{return JSON.parse(e)}catch{return sc}}function lc(e){return e.map(e=>`${e.path.length===0?`(file)`:e.path.map(String).join(`.`)}: ${e.message}`)}function uc(e){let t=cc(e);if(t===sc)return{ok:!1,problems:[`(file): not valid JSON`]};let n=$s.safeParse(t);return n.success?{ok:!0,config:n.data}:{ok:!1,problems:lc(n.error.issues)}}function dc(e){let t=oc.safeParse({v:1,owner:`Owner`,timezone:`UTC`,publicProjects:[e]});return t.success?[]:lc(t.error.issues.map(e=>({...e,path:e.path.slice(2)})))}function fc(e){let t=uc(e);return t.ok?t.config:void 0}function pc(e){let t=cc(e);if(t===sc)return{ok:!1,problems:[`(file): not valid JSON`]};let n=oc.safeParse(t);return n.success?{ok:!0,config:n.data}:{ok:!1,problems:lc(n.error.issues)}}export{uc as checkMachineConfig,pc as checkOfficeConfig,dc as publicProjectProblems,fc as validateMachineConfig};
|