@adhd/apigen-cli 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/index.js ADDED
@@ -0,0 +1,123 @@
1
+ #!/usr/bin/env node
2
+ "use strict";var Xs=Object.create;var dr=Object.defineProperty;var eo=Object.getOwnPropertyDescriptor;var to=Object.getOwnPropertyNames;var no=Object.getPrototypeOf,ro=Object.prototype.hasOwnProperty;var so=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of to(t))!ro.call(e,s)&&s!==n&&dr(e,s,{get:()=>t[s],enumerable:!(r=eo(t,s))||r.enumerable});return e};var oo=(e,t,n)=>(n=e!=null?Xs(no(e)):{},so(t||!e||!e.__esModule?dr(n,"default",{value:e,enumerable:!0}):n,e));const ao=require("commander"),io=require("node:fs"),Yr=require("node:path"),Nt=require("ts-morph"),co=require("ts-json-schema-generator"),uo=require("node:os"),yt=require("pino"),lo=require("node:url"),fr=require("node:http"),fo=require("@modelcontextprotocol/sdk/server/index.js"),po=require("@modelcontextprotocol/sdk/server/stdio.js"),ho=require("@modelcontextprotocol/sdk/server/sse.js"),mo=require("@modelcontextprotocol/sdk/server/streamableHttp.js"),pr=require("@modelcontextprotocol/sdk/types.js"),go=require("fastify"),Qt=require("express"),yo=require("pino-http");function gn(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const V=gn(io),A=gn(Yr),$o=gn(uo);function vo(e){const t=[];for(const n of e.getFunctions())n.isExported()&&t.push({name:n.getName()??"",params:n.getParameters().map(r=>({name:r.getName(),type:r.getType().getText(),optional:r.isOptional()||r.hasInitializer()})),returnType:n.getReturnType().getText()});for(const n of e.getVariableDeclarations()){const r=n.getVariableStatement();if(!(r!=null&&r.isExported()))continue;const s=n.getInitializer();if(!s)continue;const o=s.getKindName();if(!["ArrowFunction","FunctionExpression"].includes(o))continue;const a=n.getType().getCallSignatures();if(a.length===0)continue;const c=a[0];t.push({name:n.getName(),params:c.getParameters().map(u=>{var g;const l=u.getDeclarations(),f=l.length>0&&l[0].getKindName()==="Parameter"?l[0]:null,h=u.isOptional()||((f==null?void 0:f.hasInitializer())??!1)||(((g=f==null?void 0:f.hasQuestionToken)==null?void 0:g.call(f))??!1);return{name:u.getName(),type:u.getTypeAtLocation(n).getText(),optional:h}}),returnType:c.getReturnType().getText()})}return t}function _o(e){const t=[],n=e.getDefaultExportSymbol();if(!n||n.getDeclarations().length===0)return t;const s=e.getExportAssignment(i=>!i.isExportEquals());if(!s)return t;const o=s.getExpression().getType();for(const i of o.getProperties()){const c=i.getTypeAtLocation(s).getCallSignatures();if(c.length===0)continue;const u=c[0];t.push({name:i.getName(),params:u.getParameters().map(l=>{var m;const f=l.getDeclarations(),h=f.length>0&&f[0].getKindName()==="Parameter"?f[0]:null,g=l.isOptional()||((h==null?void 0:h.hasInitializer())??!1)||(((m=h==null?void 0:h.hasQuestionToken)==null?void 0:m.call(h))??!1);return{name:l.getName(),type:l.getTypeAtLocation(s).getText(),optional:g}}),returnType:u.getReturnType().getText()})}return t}function wo(e,t){const n=[],r=e.getVariableDeclarations().find(o=>o.getName()===t);if(!r)return console.error(`[apigen-core] No variable "${t}" in source`),n;const s=r.getType();for(const o of s.getProperties()){const a=o.getTypeAtLocation(r).getCallSignatures();if(a.length===0)continue;const c=a[0];n.push({name:o.getName(),params:c.getParameters().map(u=>{var g;const l=u.getDeclarations(),f=l.length>0&&l[0].getKindName()==="Parameter"?l[0]:null,h=u.isOptional()||((f==null?void 0:f.hasInitializer())??!1)||(((g=f==null?void 0:f.hasQuestionToken)==null?void 0:g.call(f))??!1);return{name:u.getName(),type:u.getTypeAtLocation(r).getText(),optional:h}}),returnType:c.getReturnType().getText()})}return n}function Pt(e,t){if(t>6)return{};const n=e.trim();if(n==="string")return{type:"string"};if(n==="number")return{type:"number"};if(n==="boolean")return{type:"boolean"};if(n==="null")return{type:"null"};if(n==="undefined")return{type:"null"};if(n.endsWith("[]"))return{type:"array",items:Pt(n.slice(0,-2),t+1)};if(n.includes("|")){const r=n.split("|").map(s=>s.trim());return r.every(s=>s.startsWith("'"))?{type:"string",enum:r.map(s=>s.replace(/'/g,""))}:{anyOf:r.map(s=>Pt(s,t+1))}}if(n.startsWith("{")&&n.endsWith("}")){const r=n.slice(1,-1).trim(),s={};for(const o of r.split(";").filter(Boolean)){const[i,a]=o.split(":").map(c=>c.trim());i&&a&&(s[i.replace("?","")]=Pt(a,t+1))}return{type:"object",properties:s}}return{}}async function lt(e,t,n,r){if(["void","undefined","null","Promise<void>"].includes(n))return{type:"null"};try{const s={path:t.getFilePath(),type:n,skipTypeCheck:!0,tsconfig:r};return co.createGenerator(s).createSchema(n)}catch{return Pt(n,0)}}async function Zr(e){const{sourceFile:t,exportMode:n={type:"named"},namespace:r="",phase:s="",tsconfig:o}=e,i=o?new Nt.Project({tsConfigFilePath:o,skipAddingFilesFromTsConfig:!0}):new Nt.Project({skipAddingFilesFromTsConfig:!0}),a=i.addSourceFileAtPath(t);let c;n.type==="named"?c=vo(a):n.type==="default"?c=_o(a):c=wo(a,n.name);const u={};for(const l of c){const f=l.params.length>0&&l.params[0].name==="ctx",h=l.params.filter(_=>_.name!=="ctx"),g=h.filter(_=>!_.optional).map(_=>_.name),m={};for(const _ of h)m[_.name]=await lt(i,a,_.type,o);const y=l.returnType.replace(/^Promise<(.+)>$/,"$1").trim(),p=await lt(i,a,y,o);u[l.name]={input:{type:"object",properties:m,required:g},output:p,...f?{hasCtx:!0}:{}}}return{metadata:{namespace:r,phase:s},schemas:u}}function Xr(e,t,n){const r={};for(const[s,o]of Object.entries(e.schemas)){const i=(n==null?void 0:n[s])??{},a=o.input.properties??{},c=o.input.required??[],u={},l=[];for(const h of t)if(h.envelope&&i[h.id]!==!1)for(const[g,m]of Object.entries(h.envelope))u[g]=m,l.includes(g)||l.push(g);const f={type:"object",properties:a,...c.length>0?{required:c}:{}};r[s]={input:{type:"object",properties:{...u,data:f},required:[...l,"data"]},output:o.output,...o.hasCtx?{hasCtx:!0}:{}}}return r}async function bo(e){var m;const{sourceFile:t,namespace:n="",tsconfig:r}=e,s=r?new Nt.Project({tsConfigFilePath:r,skipAddingFilesFromTsConfig:!0}):new Nt.Project({skipAddingFilesFromTsConfig:!0}),o=s.addSourceFileAtPath(t),i=Yr.basename(t),a=Se(Yt(i)),c=Se(n),u=[],l=new Set(o.getExportedDeclarations().keys());for(const v of o.getFunctions()){if(!v.isExported()||v.isDefaultExport())continue;const y=v.getName()??"";if(!y||Fe(y)||!l.has(y))continue;const p=v.getSignature(),_=Zt(p),E=p.getReturnType().getText();u.push(await et(s,o,c,a,y,_,E,v.isAsync(),r))}for(const v of o.getVariableDeclarations()){const y=v.getVariableStatement();if(!(y!=null&&y.isExported()))continue;const p=v.getName();if(Fe(p)||!l.has(p))continue;const _=v.getInitializer();if(!_)continue;const E=_.getKindName();if(["ArrowFunction","FunctionExpression"].includes(E)){const N=v.getType().getCallSignatures();if(N.length===0)continue;const q=N[0],F=Xt(q,v),W=q.getReturnType().getText(),B=(_.getKindName()==="ArrowFunction",_.isAsync());u.push(await et(s,o,c,a,p,F,W,B,r))}else if(["ObjectLiteralExpression"].includes(E)){const j=v.getType();for(const N of j.getProperties()){const q=N.getName();if(Fe(q))continue;const W=N.getTypeAtLocation(v).getCallSignatures();if(W.length===0)continue;const B=W[0],ee=Xt(B,v),ie=B.getReturnType().getText(),ne=[a,Se(p),Se(q)];u.push(await rt(s,o,c,ne,q,ee,ie,!1,r))}}else{const N=v.getType().getText();if(ko(N)){const q=await lt(s,o,N,r);u.push(So(c,a,p,q))}else console.warn(`[apigen-core] Skipping non-callable, non-serializable export: ${p}`)}}const f=o.getDefaultExportSymbol();if(f){const v=o.getExportAssignment(y=>!y.isExportEquals());if(v){const y=v.getExpression(),p=y.getKindName();if(["ArrowFunction","FunctionExpression"].includes(p)){const _=Yt(i).replace(/-/g,"_")+"_default",j=y.getType().getCallSignatures();if(j.length>0){const N=j[0],q=en(N),F=N.getReturnType().getText(),W=y.isAsync(),B={raw:_,words:ts(_)};u.push(await rt(s,o,c,[B],_,q,F,W,r))}}else{const _=y.getType();for(const E of _.getProperties()){const j=E.getName();if(Fe(j))continue;const q=E.getTypeAtLocation(v).getCallSignatures();if(q.length===0)continue;const F=q[0],W=en(F),B=F.getReturnType().getText(),ee=[a,Se("default"),Se(j)];u.push(await rt(s,o,c,ee,j,W,B,!1,r))}}}else{const y=f.getDeclarations();for(const p of y){if(p.getKindName()!=="FunctionDeclaration")continue;const _=p,E=_.getName(),j=E&&E.length>0?E:Yt(i).replace(/-/g,"_")+"_default",N=_.getSignature(),q=Zt(N),F=N.getReturnType().getText();u.push(await et(s,o,c,a,j,q,F,_.isAsync(),r))}}}const h=new Set(u.map(v=>v.path[v.path.length-1].raw));for(const v of o.getExportDeclarations())if(!v.getModuleSpecifier())for(const y of v.getNamedExports()){const p=y.getAliasNode();if(!p)continue;const _=p.getText();if(Fe(_)||h.has(_))continue;const E=((m=y.getSymbol())==null?void 0:m.getAliasedSymbol())??y.getSymbol(),j=(E==null?void 0:E.getDeclarations())??[];for(const N of j){const q=N.getKindName();if(q==="FunctionDeclaration"){const F=N,W=F.getSignature(),B=Zt(W),ee=W.getReturnType().getText();u.push(await et(s,o,c,a,_,B,ee,F.isAsync(),r)),h.add(_);break}if(q==="VariableDeclaration"){const F=N,B=F.getType().getCallSignatures();if(B.length===0)break;const ee=B[0],ie=Xt(ee,F),ne=ee.getReturnType().getText(),J=F.getInitializer(),Z=(J==null?void 0:J.getKindName())==="ArrowFunction"||(J==null?void 0:J.getKindName())==="FunctionExpression"?J.isAsync():!1;u.push(await et(s,o,c,a,_,ie,ne,Z,r)),h.add(_);break}}}const g=Po(o);if(g.length>0)for(const{name:v,sig:y}of g){if(Fe(v))continue;const p=en(y),_=y.getReturnType().getText(),E=[a,Se(v)];u.push(await rt(s,o,c,E,v,p,_,!1,r))}return u}async function et(e,t,n,r,s,o,i,a,c){const u=Se(s);return rt(e,t,n,[r,u],s,o,i,a,c)}async function rt(e,t,n,r,s,o,i,a,c){const u=o.filter(y=>y.name!=="ctx"),l=u.filter(y=>!y.optional).map(y=>y.name),f={};for(const y of u)f[y.name]=await lt(e,t,y.type,c);const h=i.replace(/^Promise<(.+)>$/,"$1").trim(),g=await lt(e,t,h,c),m={type:"object",properties:f,required:l};return{id:es(n,r),host:"ts",namespace:n,path:r,kind:"action",async:a,streaming:!1,safe:!1,input:m,output:g,envelope:{},typeText:{lang:"ts",input:Eo(o),output:h}}}function So(e,t,n,r){const s=Se(n),o=[t,s];return{id:es(e,o),host:"ts",namespace:e,path:o,kind:"query",async:!1,streaming:!1,safe:!0,input:{type:"object",properties:{},required:[]},output:r,envelope:{},typeText:null}}function es(e,t){return(e.raw?[e,...t]:t).map(r=>r.words.join("-")).join("/")}function ts(e){return e.split(/[-_.]+/).flatMap(t=>t.replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").split("_").filter(Boolean)).map(t=>t.toLowerCase()).filter(Boolean)}function Se(e){return{raw:e,words:ts(e)}}function Yt(e){return e.replace(/\.[^.]+$/,"").replace(/[._]+/g,"-")}function Po(e){const t=[];for(const n of e.getStatements()){if(n.getKindName()!=="ExpressionStatement")continue;const r=n.getExpression();if(r.getKindName()!=="BinaryExpression")continue;const s=r;if(s.getLeft().getText().trim()!=="module.exports"||s.getOperatorToken().getKindName()!=="EqualsToken")continue;const i=s.getRight(),a=i.getType();for(const c of a.getProperties()){const l=c.getTypeAtLocation(i).getCallSignatures();l.length!==0&&t.push({name:c.getName(),sig:l[0]})}}return t}function Zt(e){return e.getParameters().map(t=>{var o;const n=t.getDeclarations(),r=n.length>0&&n[0].getKindName()==="Parameter"?n[0]:null,s=t.isOptional()||((r==null?void 0:r.hasInitializer())??!1)||(((o=r==null?void 0:r.hasQuestionToken)==null?void 0:o.call(r))??!1);return{name:t.getName(),type:t.getTypeAtLocation(e.getDeclaration()).getText(),optional:s}})}function Xt(e,t){return e.getParameters().map(n=>{var i;const r=n.getDeclarations(),s=r.length>0&&r[0].getKindName()==="Parameter"?r[0]:null,o=n.isOptional()||((s==null?void 0:s.hasInitializer())??!1)||(((i=s==null?void 0:s.hasQuestionToken)==null?void 0:i.call(s))??!1);return{name:n.getName(),type:n.getTypeAtLocation(t).getText(),optional:o}})}function en(e){return e.getParameters().map(t=>{var o,i,a;const n=t.getDeclarations(),r=n.length>0&&n[0].getKindName()==="Parameter"?n[0]:null,s=t.isOptional()||((r==null?void 0:r.hasInitializer())??!1)||(((o=r==null?void 0:r.hasQuestionToken)==null?void 0:o.call(r))??!1);return{name:t.getName(),type:r?r.getType().getText():((a=(i=t.getValueDeclaration())==null?void 0:i.getType())==null?void 0:a.getText())??"unknown",optional:s}})}function Eo(e){const t=e.filter(n=>n.name!=="ctx");return t.length===0?"()":"("+t.map(n=>`${n.name}${n.optional?"?":""}: ${n.type}`).join(", ")+")"}function Fe(e){return!!(e==="__samples__"||e.startsWith("__"))}function ko(e){const t=e.trim();return t.includes("=>")||t.startsWith("typeof ")||t.toLowerCase().includes("function")?!1:!!(["string","number","boolean","null","undefined"].includes(t)||t.startsWith("'")||t.startsWith('"')||/^\d/.test(t)||t.startsWith("{")||t.startsWith("[")||t.endsWith("[]"))}const jo={compilerOptions:{target:"ES2020",module:"esnext",moduleResolution:"bundler",esModuleInterop:!0,strict:!0,skipLibCheck:!0}};function To(){const e=typeof __dirname<"u"?__dirname:"";if(e){const n=[A.join(e,"default-tsconfig.json"),A.join(e,"lib","default-tsconfig.json"),A.join(e,"..","default-tsconfig.json")];for(const r of n)if(V.existsSync(r))return r}const t=A.join(V.mkdtempSync(A.join($o.tmpdir(),"apigen-tsconfig-")),"tsconfig.json");return V.writeFileSync(t,JSON.stringify(jo,null,2)),t}function ns(e){let t=e;for(;;){const n=A.join(t,"tsconfig.json");if(V.existsSync(n))return n;const r=A.dirname(t);if(r===t)return;t=r}}function He(e,t){if(t)return A.resolve(t);const n=ns(A.dirname(A.resolve(e)));return n||To()}function Mt(e,t={}){if(t.namespace)return t.namespace;const n=A.resolve(e);if(t.tsconfig)return A.basename(A.dirname(A.resolve(t.tsconfig)));const r=ns(A.dirname(n));return r?A.basename(A.dirname(r)):A.basename(A.dirname(n))}async function xt(e){var i,a,c;const t={sourceFile:e.sourceFile,exportMode:e.exportMode??{type:"named"},namespace:e.namespace,tsconfig:He(e.sourceFile,e.tsconfig)};(i=e.logger)==null||i.info(`compiling ${e.sourceFile}`);const n=await Zr(t),r=Object.keys(n.schemas);return(a=e.logger)==null||a.info(`extracted ${r.length} functions`),(c=e.logger)==null||c.debug({functions:r},"extracted functions"),{schemas:Xr(n,e.middlewares??[],e.overrides??{}),createClient:async u=>u}}function rs(e,t){var r;const n=((r=e.input)==null?void 0:r.properties)??{};return t in n}function ss(e){var n,r;const t=(r=(n=e.input)==null?void 0:n.properties)==null?void 0:r.data;return Object.keys((t==null?void 0:t.properties)??{})}async function dt(e,t,n,r,s,o){const a=ss(n).map(c=>o[c]);if(rs(n,"session")&&t){const c=await t({session:s.session});return e[r](c,...a)}if(n.hasCtx){const c=t?await t(s):void 0;return e[r](c,...a)}return e[r](...a)}function qt(e={}){const t=e.level??"info",n=typeof e.destination=="string"&&e.destination.length>0,r=!n&&!!process.stderr.isTTY,s=e.format??(r?"pretty":"json"),o={level:t};if(s==="pretty")return o.transport={target:"pino-pretty",options:{colorize:!n,translateTime:"SYS:HH:MM:ss.l",ignore:"pid,hostname",...n?{destination:e.destination,mkdir:!0}:{destination:2}}},yt(o);const i=n?yt.destination({dest:e.destination,mkdir:!0,sync:!0}):yt.destination(2);return yt(o,i)}function os(e){return e?e.type==="array"?`${os(e.items)}[]`:e.enum?"enum":e.$ref?String(e.$ref).split("/").pop()||"object":e.anyOf||e.oneOf?"union":e.type??"object":"unknown"}function yn(e){var a;const n=(a=((e==null?void 0:e.input)??{}).properties)==null?void 0:a.data,r=(n==null?void 0:n.properties)??{},s=new Set((n==null?void 0:n.required)??[]),o=Object.entries(r).map(([c,u])=>({name:c,type:os(u),required:s.has(c)})),i=o.map(c=>`${c.name}${c.required?"":"?"}: ${c.type}`).join(", ");return{params:o,text:i}}const hr=new Set(["default","module.exports","__esModule"]);function on(e){const t={},n=(r,s)=>{for(const[o,i]of Object.entries(r))if(typeof i=="function"){!hr.has(o)&&!(o in t)&&(t[o]=i);const a=i.name;a&&!(a in t)&&(t[a]=i)}else i&&typeof i=="object"&&s<2&&hr.has(o)&&n(i,s+1)};return n(e,0),t}function Oo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var an={exports:{}},as={},_e={},Oe={},pt={},K={},ft={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class n extends t{constructor(_){if(super(),!e.IDENTIFIER.test(_))throw new Error("CodeGen: name must be a valid identifier");this.str=_}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=n;class r extends t{constructor(_){super(),this._items=typeof _=="string"?[_]:_}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const _=this._items[0];return _===""||_==='""'}get str(){var _;return(_=this._str)!==null&&_!==void 0?_:this._str=this._items.reduce((E,j)=>`${E}${j}`,"")}get names(){var _;return(_=this._names)!==null&&_!==void 0?_:this._names=this._items.reduce((E,j)=>(j instanceof n&&(E[j.str]=(E[j.str]||0)+1),E),{})}}e._Code=r,e.nil=new r("");function s(p,..._){const E=[p[0]];let j=0;for(;j<_.length;)a(E,_[j]),E.push(p[++j]);return new r(E)}e._=s;const o=new r("+");function i(p,..._){const E=[g(p[0])];let j=0;for(;j<_.length;)E.push(o),a(E,_[j]),E.push(o,g(p[++j]));return c(E),new r(E)}e.str=i;function a(p,_){_ instanceof r?p.push(..._._items):_ instanceof n?p.push(_):p.push(f(_))}e.addCodeArg=a;function c(p){let _=1;for(;_<p.length-1;){if(p[_]===o){const E=u(p[_-1],p[_+1]);if(E!==void 0){p.splice(_-1,3,E);continue}p[_++]="+"}_++}}function u(p,_){if(_==='""')return p;if(p==='""')return _;if(typeof p=="string")return _ instanceof n||p[p.length-1]!=='"'?void 0:typeof _!="string"?`${p.slice(0,-1)}${_}"`:_[0]==='"'?p.slice(0,-1)+_.slice(1):void 0;if(typeof _=="string"&&_[0]==='"'&&!(p instanceof n))return`"${p}${_.slice(1)}`}function l(p,_){return _.emptyStr()?p:p.emptyStr()?_:i`${p}${_}`}e.strConcat=l;function f(p){return typeof p=="number"||typeof p=="boolean"||p===null?p:g(Array.isArray(p)?p.join(","):p)}function h(p){return new r(g(p))}e.stringify=h;function g(p){return JSON.stringify(p).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}e.safeStringify=g;function m(p){return typeof p=="string"&&e.IDENTIFIER.test(p)?new r(`.${p}`):s`[${p}]`}e.getProperty=m;function v(p){if(typeof p=="string"&&e.IDENTIFIER.test(p))return new r(`${p}`);throw new Error(`CodeGen: invalid export name: ${p}, use explicit $id name mapping`)}e.getEsmExportName=v;function y(p){return new r(p.toString())}e.regexpCode=y})(ft);var cn={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;const t=ft;class n extends Error{constructor(u){super(`CodeGen: "code" for ${u} not defined`),this.value=u.value}}var r;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name("const"),let:new t.Name("let"),var:new t.Name("var")};class s{constructor({prefixes:u,parent:l}={}){this._names={},this._prefixes=u,this._parent=l}toName(u){return u instanceof t.Name?u:this.name(u)}name(u){return new t.Name(this._newName(u))}_newName(u){const l=this._names[u]||this._nameGroup(u);return`${u}${l.index++}`}_nameGroup(u){var l,f;if(!((f=(l=this._parent)===null||l===void 0?void 0:l._prefixes)===null||f===void 0)&&f.has(u)||this._prefixes&&!this._prefixes.has(u))throw new Error(`CodeGen: prefix "${u}" is not allowed in this scope`);return this._names[u]={prefix:u,index:0}}}e.Scope=s;class o extends t.Name{constructor(u,l){super(l),this.prefix=u}setValue(u,{property:l,itemIndex:f}){this.value=u,this.scopePath=(0,t._)`.${new t.Name(l)}[${f}]`}}e.ValueScopeName=o;const i=(0,t._)`\n`;class a extends s{constructor(u){super(u),this._values={},this._scope=u.scope,this.opts={...u,_n:u.lines?i:t.nil}}get(){return this._scope}name(u){return new o(u,this._newName(u))}value(u,l){var f;if(l.ref===void 0)throw new Error("CodeGen: ref must be passed in value");const h=this.toName(u),{prefix:g}=h,m=(f=l.key)!==null&&f!==void 0?f:l.ref;let v=this._values[g];if(v){const _=v.get(m);if(_)return _}else v=this._values[g]=new Map;v.set(m,h);const y=this._scope[g]||(this._scope[g]=[]),p=y.length;return y[p]=l.ref,h.setValue(l,{property:g,itemIndex:p}),h}getValue(u,l){const f=this._values[u];if(f)return f.get(l)}scopeRefs(u,l=this._values){return this._reduceValues(l,f=>{if(f.scopePath===void 0)throw new Error(`CodeGen: name "${f}" has no value`);return(0,t._)`${u}${f.scopePath}`})}scopeCode(u=this._values,l,f){return this._reduceValues(u,h=>{if(h.value===void 0)throw new Error(`CodeGen: name "${h}" has no value`);return h.value.code},l,f)}_reduceValues(u,l,f={},h){let g=t.nil;for(const m in u){const v=u[m];if(!v)continue;const y=f[m]=f[m]||new Map;v.forEach(p=>{if(y.has(p))return;y.set(p,r.Started);let _=l(p);if(_){const E=this.opts.es5?e.varKinds.var:e.varKinds.const;g=(0,t._)`${g}${E} ${p} = ${_};${this.opts._n}`}else if(_=h==null?void 0:h(p))g=(0,t._)`${g}${_}${this.opts._n}`;else throw new n(p);y.set(p,r.Completed)})}return g}}e.ValueScope=a})(cn);(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;const t=ft,n=cn;var r=ft;Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}});var s=cn;Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return s.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return s.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return s.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return s.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class o{optimizeNodes(){return this}optimizeNames(d,$){return this}}class i extends o{constructor(d,$,k){super(),this.varKind=d,this.name=$,this.rhs=k}render({es5:d,_n:$}){const k=d?n.varKinds.var:this.varKind,M=this.rhs===void 0?"":` = ${this.rhs}`;return`${k} ${this.name}${M};`+$}optimizeNames(d,$){if(d[this.name.str])return this.rhs&&(this.rhs=Z(this.rhs,d,$)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class a extends o{constructor(d,$,k){super(),this.lhs=d,this.rhs=$,this.sideEffects=k}render({_n:d}){return`${this.lhs} = ${this.rhs};`+d}optimizeNames(d,$){if(!(this.lhs instanceof t.Name&&!d[this.lhs.str]&&!this.sideEffects))return this.rhs=Z(this.rhs,d,$),this}get names(){const d=this.lhs instanceof t.Name?{}:{...this.lhs.names};return J(d,this.rhs)}}class c extends a{constructor(d,$,k,M){super(d,k,M),this.op=$}render({_n:d}){return`${this.lhs} ${this.op}= ${this.rhs};`+d}}class u extends o{constructor(d){super(),this.label=d,this.names={}}render({_n:d}){return`${this.label}:`+d}}class l extends o{constructor(d){super(),this.label=d,this.names={}}render({_n:d}){return`break${this.label?` ${this.label}`:""};`+d}}class f extends o{constructor(d){super(),this.error=d}render({_n:d}){return`throw ${this.error};`+d}get names(){return this.error.names}}class h extends o{constructor(d){super(),this.code=d}render({_n:d}){return`${this.code};`+d}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(d,$){return this.code=Z(this.code,d,$),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class g extends o{constructor(d=[]){super(),this.nodes=d}render(d){return this.nodes.reduce(($,k)=>$+k.render(d),"")}optimizeNodes(){const{nodes:d}=this;let $=d.length;for(;$--;){const k=d[$].optimizeNodes();Array.isArray(k)?d.splice($,1,...k):k?d[$]=k:d.splice($,1)}return d.length>0?this:void 0}optimizeNames(d,$){const{nodes:k}=this;let M=k.length;for(;M--;){const D=k[M];D.optimizeNames(d,$)||(ve(d,D.names),k.splice(M,1))}return k.length>0?this:void 0}get names(){return this.nodes.reduce((d,$)=>ne(d,$.names),{})}}class m extends g{render(d){return"{"+d._n+super.render(d)+"}"+d._n}}class v extends g{}class y extends m{}y.kind="else";class p extends m{constructor(d,$){super($),this.condition=d}render(d){let $=`if(${this.condition})`+super.render(d);return this.else&&($+="else "+this.else.render(d)),$}optimizeNodes(){super.optimizeNodes();const d=this.condition;if(d===!0)return this.nodes;let $=this.else;if($){const k=$.optimizeNodes();$=this.else=Array.isArray(k)?new y(k):k}if($)return d===!1?$ instanceof p?$:$.nodes:this.nodes.length?this:new p(Te(d),$ instanceof p?[$]:$.nodes);if(!(d===!1||!this.nodes.length))return this}optimizeNames(d,$){var k;if(this.else=(k=this.else)===null||k===void 0?void 0:k.optimizeNames(d,$),!!(super.optimizeNames(d,$)||this.else))return this.condition=Z(this.condition,d,$),this}get names(){const d=super.names;return J(d,this.condition),this.else&&ne(d,this.else.names),d}}p.kind="if";class _ extends m{}_.kind="for";class E extends _{constructor(d){super(),this.iteration=d}render(d){return`for(${this.iteration})`+super.render(d)}optimizeNames(d,$){if(super.optimizeNames(d,$))return this.iteration=Z(this.iteration,d,$),this}get names(){return ne(super.names,this.iteration.names)}}class j extends _{constructor(d,$,k,M){super(),this.varKind=d,this.name=$,this.from=k,this.to=M}render(d){const $=d.es5?n.varKinds.var:this.varKind,{name:k,from:M,to:D}=this;return`for(${$} ${k}=${M}; ${k}<${D}; ${k}++)`+super.render(d)}get names(){const d=J(super.names,this.from);return J(d,this.to)}}class N extends _{constructor(d,$,k,M){super(),this.loop=d,this.varKind=$,this.name=k,this.iterable=M}render(d){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(d)}optimizeNames(d,$){if(super.optimizeNames(d,$))return this.iterable=Z(this.iterable,d,$),this}get names(){return ne(super.names,this.iterable.names)}}class q extends m{constructor(d,$,k){super(),this.name=d,this.args=$,this.async=k}render(d){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(d)}}q.kind="func";class F extends g{render(d){return"return "+super.render(d)}}F.kind="return";class W extends m{render(d){let $="try"+super.render(d);return this.catch&&($+=this.catch.render(d)),this.finally&&($+=this.finally.render(d)),$}optimizeNodes(){var d,$;return super.optimizeNodes(),(d=this.catch)===null||d===void 0||d.optimizeNodes(),($=this.finally)===null||$===void 0||$.optimizeNodes(),this}optimizeNames(d,$){var k,M;return super.optimizeNames(d,$),(k=this.catch)===null||k===void 0||k.optimizeNames(d,$),(M=this.finally)===null||M===void 0||M.optimizeNames(d,$),this}get names(){const d=super.names;return this.catch&&ne(d,this.catch.names),this.finally&&ne(d,this.finally.names),d}}class B extends m{constructor(d){super(),this.error=d}render(d){return`catch(${this.error})`+super.render(d)}}B.kind="catch";class ee extends m{render(d){return"finally"+super.render(d)}}ee.kind="finally";class ie{constructor(d,$={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...$,_n:$.lines?`
3
+ `:""},this._extScope=d,this._scope=new n.Scope({parent:d}),this._nodes=[new v]}toString(){return this._root.render(this.opts)}name(d){return this._scope.name(d)}scopeName(d){return this._extScope.name(d)}scopeValue(d,$){const k=this._extScope.value(d,$);return(this._values[k.prefix]||(this._values[k.prefix]=new Set)).add(k),k}getScopeValue(d,$){return this._extScope.getValue(d,$)}scopeRefs(d){return this._extScope.scopeRefs(d,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(d,$,k,M){const D=this._scope.toName($);return k!==void 0&&M&&(this._constants[D.str]=k),this._leafNode(new i(d,D,k)),D}const(d,$,k){return this._def(n.varKinds.const,d,$,k)}let(d,$,k){return this._def(n.varKinds.let,d,$,k)}var(d,$,k){return this._def(n.varKinds.var,d,$,k)}assign(d,$,k){return this._leafNode(new a(d,$,k))}add(d,$){return this._leafNode(new c(d,e.operators.ADD,$))}code(d){return typeof d=="function"?d():d!==t.nil&&this._leafNode(new h(d)),this}object(...d){const $=["{"];for(const[k,M]of d)$.length>1&&$.push(","),$.push(k),(k!==M||this.opts.es5)&&($.push(":"),(0,t.addCodeArg)($,M));return $.push("}"),new t._Code($)}if(d,$,k){if(this._blockNode(new p(d)),$&&k)this.code($).else().code(k).endIf();else if($)this.code($).endIf();else if(k)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(d){return this._elseNode(new p(d))}else(){return this._elseNode(new y)}endIf(){return this._endBlockNode(p,y)}_for(d,$){return this._blockNode(d),$&&this.code($).endFor(),this}for(d,$){return this._for(new E(d),$)}forRange(d,$,k,M,D=this.opts.es5?n.varKinds.var:n.varKinds.let){const G=this._scope.toName(d);return this._for(new j(D,G,$,k),()=>M(G))}forOf(d,$,k,M=n.varKinds.const){const D=this._scope.toName(d);if(this.opts.es5){const G=$ instanceof t.Name?$:this.var("_arr",$);return this.forRange("_i",0,(0,t._)`${G}.length`,H=>{this.var(D,(0,t._)`${G}[${H}]`),k(D)})}return this._for(new N("of",M,D,$),()=>k(D))}forIn(d,$,k,M=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(d,(0,t._)`Object.keys(${$})`,k);const D=this._scope.toName(d);return this._for(new N("in",M,D,$),()=>k(D))}endFor(){return this._endBlockNode(_)}label(d){return this._leafNode(new u(d))}break(d){return this._leafNode(new l(d))}return(d){const $=new F;if(this._blockNode($),this.code(d),$.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(F)}try(d,$,k){if(!$&&!k)throw new Error('CodeGen: "try" without "catch" and "finally"');const M=new W;if(this._blockNode(M),this.code(d),$){const D=this.name("e");this._currNode=M.catch=new B(D),$(D)}return k&&(this._currNode=M.finally=new ee,this.code(k)),this._endBlockNode(B,ee)}throw(d){return this._leafNode(new f(d))}block(d,$){return this._blockStarts.push(this._nodes.length),d&&this.code(d).endBlock($),this}endBlock(d){const $=this._blockStarts.pop();if($===void 0)throw new Error("CodeGen: not in self-balancing block");const k=this._nodes.length-$;if(k<0||d!==void 0&&k!==d)throw new Error(`CodeGen: wrong number of nodes: ${k} vs ${d} expected`);return this._nodes.length=$,this}func(d,$=t.nil,k,M){return this._blockNode(new q(d,$,k)),M&&this.code(M).endFunc(),this}endFunc(){return this._endBlockNode(q)}optimize(d=1){for(;d-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(d){return this._currNode.nodes.push(d),this}_blockNode(d){this._currNode.nodes.push(d),this._nodes.push(d)}_endBlockNode(d,$){const k=this._currNode;if(k instanceof d||$&&k instanceof $)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${$?`${d.kind}/${$.kind}`:d.kind}"`)}_elseNode(d){const $=this._currNode;if(!($ instanceof p))throw new Error('CodeGen: "else" without "if"');return this._currNode=$.else=d,this}get _root(){return this._nodes[0]}get _currNode(){const d=this._nodes;return d[d.length-1]}set _currNode(d){const $=this._nodes;$[$.length-1]=d}}e.CodeGen=ie;function ne(P,d){for(const $ in d)P[$]=(P[$]||0)+(d[$]||0);return P}function J(P,d){return d instanceof t._CodeOrName?ne(P,d.names):P}function Z(P,d,$){if(P instanceof t.Name)return k(P);if(!M(P))return P;return new t._Code(P._items.reduce((D,G)=>(G instanceof t.Name&&(G=k(G)),G instanceof t._Code?D.push(...G._items):D.push(G),D),[]));function k(D){const G=$[D.str];return G===void 0||d[D.str]!==1?D:(delete d[D.str],G)}function M(D){return D instanceof t._Code&&D._items.some(G=>G instanceof t.Name&&d[G.str]===1&&$[G.str]!==void 0)}}function ve(P,d){for(const $ in d)P[$]=(P[$]||0)-(d[$]||0)}function Te(P){return typeof P=="boolean"||typeof P=="number"||P===null?!P:(0,t._)`!${O(P)}`}e.not=Te;const xe=b(e.operators.AND);function Ze(...P){return P.reduce(xe)}e.and=Ze;const qe=b(e.operators.OR);function I(...P){return P.reduce(qe)}e.or=I;function b(P){return(d,$)=>d===t.nil?$:$===t.nil?d:(0,t._)`${O(d)} ${P} ${O($)}`}function O(P){return P instanceof t.Name?P:(0,t._)`(${P})`}})(K);var C={};Object.defineProperty(C,"__esModule",{value:!0});C.checkStrictMode=C.getErrorPath=C.Type=C.useFunc=C.setEvaluated=C.evaluatedPropsToName=C.mergeEvaluated=C.eachItem=C.unescapeJsonPointer=C.escapeJsonPointer=C.escapeFragment=C.unescapeFragment=C.schemaRefOrVal=C.schemaHasRulesButRef=C.schemaHasRules=C.checkUnknownRules=C.alwaysValidSchema=C.toHash=void 0;const Q=K,No=ft;function Ro(e){const t={};for(const n of e)t[n]=!0;return t}C.toHash=Ro;function Io(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(is(e,t),!cs(t,e.self.RULES.all))}C.alwaysValidSchema=Io;function is(e,t=e.schema){const{opts:n,self:r}=e;if(!n.strictSchema||typeof t=="boolean")return;const s=r.RULES.keywords;for(const o in t)s[o]||ds(e,`unknown keyword: "${o}"`)}C.checkUnknownRules=is;function cs(e,t){if(typeof e=="boolean")return!e;for(const n in e)if(t[n])return!0;return!1}C.schemaHasRules=cs;function Co(e,t){if(typeof e=="boolean")return!e;for(const n in e)if(n!=="$ref"&&t.all[n])return!0;return!1}C.schemaHasRulesButRef=Co;function Ao({topSchemaRef:e,schemaPath:t},n,r,s){if(!s){if(typeof n=="number"||typeof n=="boolean")return n;if(typeof n=="string")return(0,Q._)`${n}`}return(0,Q._)`${e}${t}${(0,Q.getProperty)(r)}`}C.schemaRefOrVal=Ao;function Mo(e){return us(decodeURIComponent(e))}C.unescapeFragment=Mo;function xo(e){return encodeURIComponent($n(e))}C.escapeFragment=xo;function $n(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}C.escapeJsonPointer=$n;function us(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}C.unescapeJsonPointer=us;function qo(e,t){if(Array.isArray(e))for(const n of e)t(n);else t(e)}C.eachItem=qo;function mr({mergeNames:e,mergeToName:t,mergeValues:n,resultToName:r}){return(s,o,i,a)=>{const c=i===void 0?o:i instanceof Q.Name?(o instanceof Q.Name?e(s,o,i):t(s,o,i),i):o instanceof Q.Name?(t(s,i,o),o):n(o,i);return a===Q.Name&&!(c instanceof Q.Name)?r(s,c):c}}C.mergeEvaluated={props:mr({mergeNames:(e,t,n)=>e.if((0,Q._)`${n} !== true && ${t} !== undefined`,()=>{e.if((0,Q._)`${t} === true`,()=>e.assign(n,!0),()=>e.assign(n,(0,Q._)`${n} || {}`).code((0,Q._)`Object.assign(${n}, ${t})`))}),mergeToName:(e,t,n)=>e.if((0,Q._)`${n} !== true`,()=>{t===!0?e.assign(n,!0):(e.assign(n,(0,Q._)`${n} || {}`),vn(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:ls}),items:mr({mergeNames:(e,t,n)=>e.if((0,Q._)`${n} !== true && ${t} !== undefined`,()=>e.assign(n,(0,Q._)`${t} === true ? true : ${n} > ${t} ? ${n} : ${t}`)),mergeToName:(e,t,n)=>e.if((0,Q._)`${n} !== true`,()=>e.assign(n,t===!0?!0:(0,Q._)`${n} > ${t} ? ${n} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function ls(e,t){if(t===!0)return e.var("props",!0);const n=e.var("props",(0,Q._)`{}`);return t!==void 0&&vn(e,n,t),n}C.evaluatedPropsToName=ls;function vn(e,t,n){Object.keys(n).forEach(r=>e.assign((0,Q._)`${t}${(0,Q.getProperty)(r)}`,!0))}C.setEvaluated=vn;const gr={};function Do(e,t){return e.scopeValue("func",{ref:t,code:gr[t.code]||(gr[t.code]=new No._Code(t.code))})}C.useFunc=Do;var un;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(un||(C.Type=un={}));function Fo(e,t,n){if(e instanceof Q.Name){const r=t===un.Num;return n?r?(0,Q._)`"[" + ${e} + "]"`:(0,Q._)`"['" + ${e} + "']"`:r?(0,Q._)`"/" + ${e}`:(0,Q._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return n?(0,Q.getProperty)(e).toString():"/"+$n(e)}C.getErrorPath=Fo;function ds(e,t,n=e.opts.strictSchema){if(n){if(t=`strict mode: ${t}`,n===!0)throw new Error(t);e.self.logger.warn(t)}}C.checkStrictMode=ds;var $t={},yr;function je(){if(yr)return $t;yr=1,Object.defineProperty($t,"__esModule",{value:!0});const e=K,t={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};return $t.default=t,$t}(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;const t=K,n=C,r=je();e.keywordError={message:({keyword:y})=>(0,t.str)`must pass "${y}" keyword validation`},e.keyword$DataError={message:({keyword:y,schemaType:p})=>p?(0,t.str)`"${y}" keyword must be ${p} ($data)`:(0,t.str)`"${y}" keyword is invalid ($data)`};function s(y,p=e.keywordError,_,E){const{it:j}=y,{gen:N,compositeRule:q,allErrors:F}=j,W=f(y,p,_);E??(q||F)?c(N,W):u(j,(0,t._)`[${W}]`)}e.reportError=s;function o(y,p=e.keywordError,_){const{it:E}=y,{gen:j,compositeRule:N,allErrors:q}=E,F=f(y,p,_);c(j,F),N||q||u(E,r.default.vErrors)}e.reportExtraError=o;function i(y,p){y.assign(r.default.errors,p),y.if((0,t._)`${r.default.vErrors} !== null`,()=>y.if(p,()=>y.assign((0,t._)`${r.default.vErrors}.length`,p),()=>y.assign(r.default.vErrors,null)))}e.resetErrorsCount=i;function a({gen:y,keyword:p,schemaValue:_,data:E,errsCount:j,it:N}){if(j===void 0)throw new Error("ajv implementation error");const q=y.name("err");y.forRange("i",j,r.default.errors,F=>{y.const(q,(0,t._)`${r.default.vErrors}[${F}]`),y.if((0,t._)`${q}.instancePath === undefined`,()=>y.assign((0,t._)`${q}.instancePath`,(0,t.strConcat)(r.default.instancePath,N.errorPath))),y.assign((0,t._)`${q}.schemaPath`,(0,t.str)`${N.errSchemaPath}/${p}`),N.opts.verbose&&(y.assign((0,t._)`${q}.schema`,_),y.assign((0,t._)`${q}.data`,E))})}e.extendErrors=a;function c(y,p){const _=y.const("err",p);y.if((0,t._)`${r.default.vErrors} === null`,()=>y.assign(r.default.vErrors,(0,t._)`[${_}]`),(0,t._)`${r.default.vErrors}.push(${_})`),y.code((0,t._)`${r.default.errors}++`)}function u(y,p){const{gen:_,validateName:E,schemaEnv:j}=y;j.$async?_.throw((0,t._)`new ${y.ValidationError}(${p})`):(_.assign((0,t._)`${E}.errors`,p),_.return(!1))}const l={keyword:new t.Name("keyword"),schemaPath:new t.Name("schemaPath"),params:new t.Name("params"),propertyName:new t.Name("propertyName"),message:new t.Name("message"),schema:new t.Name("schema"),parentSchema:new t.Name("parentSchema")};function f(y,p,_){const{createErrors:E}=y.it;return E===!1?(0,t._)`{}`:h(y,p,_)}function h(y,p,_={}){const{gen:E,it:j}=y,N=[g(j,_),m(y,_)];return v(y,p,N),E.object(...N)}function g({errorPath:y},{instancePath:p}){const _=p?(0,t.str)`${y}${(0,n.getErrorPath)(p,n.Type.Str)}`:y;return[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,_)]}function m({keyword:y,it:{errSchemaPath:p}},{schemaPath:_,parentSchema:E}){let j=E?p:(0,t.str)`${p}/${y}`;return _&&(j=(0,t.str)`${j}${(0,n.getErrorPath)(_,n.Type.Str)}`),[l.schemaPath,j]}function v(y,{params:p,message:_},E){const{keyword:j,data:N,schemaValue:q,it:F}=y,{opts:W,propertyName:B,topSchemaRef:ee,schemaPath:ie}=F;E.push([l.keyword,j],[l.params,typeof p=="function"?p(y):p||(0,t._)`{}`]),W.messages&&E.push([l.message,typeof _=="function"?_(y):_]),W.verbose&&E.push([l.schema,q],[l.parentSchema,(0,t._)`${ee}${ie}`],[r.default.data,N]),B&&E.push([l.propertyName,B])}})(pt);var $r;function Vo(){if($r)return Oe;$r=1,Object.defineProperty(Oe,"__esModule",{value:!0}),Oe.boolOrEmptySchema=Oe.topBoolOrEmptySchema=void 0;const e=pt,t=K,n=je(),r={message:"boolean schema is false"};function s(a){const{gen:c,schema:u,validateName:l}=a;u===!1?i(a,!1):typeof u=="object"&&u.$async===!0?c.return(n.default.data):(c.assign((0,t._)`${l}.errors`,null),c.return(!0))}Oe.topBoolOrEmptySchema=s;function o(a,c){const{gen:u,schema:l}=a;l===!1?(u.var(c,!1),i(a)):u.var(c,!0)}Oe.boolOrEmptySchema=o;function i(a,c){const{gen:u,data:l}=a,f={gen:u,keyword:"false schema",data:l,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:a};(0,e.reportError)(f,r,void 0,c)}return Oe}var te={},Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.getRules=Ce.isJSONType=void 0;const zo=["string","number","integer","boolean","null","object","array"],Lo=new Set(zo);function Uo(e){return typeof e=="string"&&Lo.has(e)}Ce.isJSONType=Uo;function Ko(){const e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}Ce.getRules=Ko;var we={},vr;function fs(){if(vr)return we;vr=1,Object.defineProperty(we,"__esModule",{value:!0}),we.shouldUseRule=we.shouldUseGroup=we.schemaHasRulesForType=void 0;function e({schema:r,self:s},o){const i=s.RULES.types[o];return i&&i!==!0&&t(r,i)}we.schemaHasRulesForType=e;function t(r,s){return s.rules.some(o=>n(r,o))}we.shouldUseGroup=t;function n(r,s){var o;return r[s.keyword]!==void 0||((o=s.definition.implements)===null||o===void 0?void 0:o.some(i=>r[i]!==void 0))}return we.shouldUseRule=n,we}Object.defineProperty(te,"__esModule",{value:!0});te.reportTypeError=te.checkDataTypes=te.checkDataType=te.coerceAndCheckDataType=te.getJSONTypes=te.getSchemaTypes=te.DataType=void 0;const Ho=Ce,Go=fs(),Jo=pt,z=K,ps=C;var Ue;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Ue||(te.DataType=Ue={}));function Wo(e){const t=hs(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}te.getSchemaTypes=Wo;function hs(e){const t=Array.isArray(e)?e:e?[e]:[];if(t.every(Ho.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}te.getJSONTypes=hs;function Bo(e,t){const{gen:n,data:r,opts:s}=e,o=Qo(t,s.coerceTypes),i=t.length>0&&!(o.length===0&&t.length===1&&(0,Go.schemaHasRulesForType)(e,t[0]));if(i){const a=_n(t,r,s.strictNumbers,Ue.Wrong);n.if(a,()=>{o.length?Yo(e,t,o):wn(e)})}return i}te.coerceAndCheckDataType=Bo;const ms=new Set(["string","number","integer","boolean","null"]);function Qo(e,t){return t?e.filter(n=>ms.has(n)||t==="array"&&n==="array"):[]}function Yo(e,t,n){const{gen:r,data:s,opts:o}=e,i=r.let("dataType",(0,z._)`typeof ${s}`),a=r.let("coerced",(0,z._)`undefined`);o.coerceTypes==="array"&&r.if((0,z._)`${i} == 'object' && Array.isArray(${s}) && ${s}.length == 1`,()=>r.assign(s,(0,z._)`${s}[0]`).assign(i,(0,z._)`typeof ${s}`).if(_n(t,s,o.strictNumbers),()=>r.assign(a,s))),r.if((0,z._)`${a} !== undefined`);for(const u of n)(ms.has(u)||u==="array"&&o.coerceTypes==="array")&&c(u);r.else(),wn(e),r.endIf(),r.if((0,z._)`${a} !== undefined`,()=>{r.assign(s,a),Zo(e,a)});function c(u){switch(u){case"string":r.elseIf((0,z._)`${i} == "number" || ${i} == "boolean"`).assign(a,(0,z._)`"" + ${s}`).elseIf((0,z._)`${s} === null`).assign(a,(0,z._)`""`);return;case"number":r.elseIf((0,z._)`${i} == "boolean" || ${s} === null
4
+ || (${i} == "string" && ${s} && ${s} == +${s})`).assign(a,(0,z._)`+${s}`);return;case"integer":r.elseIf((0,z._)`${i} === "boolean" || ${s} === null
5
+ || (${i} === "string" && ${s} && ${s} == +${s} && !(${s} % 1))`).assign(a,(0,z._)`+${s}`);return;case"boolean":r.elseIf((0,z._)`${s} === "false" || ${s} === 0 || ${s} === null`).assign(a,!1).elseIf((0,z._)`${s} === "true" || ${s} === 1`).assign(a,!0);return;case"null":r.elseIf((0,z._)`${s} === "" || ${s} === 0 || ${s} === false`),r.assign(a,null);return;case"array":r.elseIf((0,z._)`${i} === "string" || ${i} === "number"
6
+ || ${i} === "boolean" || ${s} === null`).assign(a,(0,z._)`[${s}]`)}}}function Zo({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,z._)`${t} !== undefined`,()=>e.assign((0,z._)`${t}[${n}]`,r))}function ln(e,t,n,r=Ue.Correct){const s=r===Ue.Correct?z.operators.EQ:z.operators.NEQ;let o;switch(e){case"null":return(0,z._)`${t} ${s} null`;case"array":o=(0,z._)`Array.isArray(${t})`;break;case"object":o=(0,z._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=i((0,z._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=i();break;default:return(0,z._)`typeof ${t} ${s} ${e}`}return r===Ue.Correct?o:(0,z.not)(o);function i(a=z.nil){return(0,z.and)((0,z._)`typeof ${t} == "number"`,a,n?(0,z._)`isFinite(${t})`:z.nil)}}te.checkDataType=ln;function _n(e,t,n,r){if(e.length===1)return ln(e[0],t,n,r);let s;const o=(0,ps.toHash)(e);if(o.array&&o.object){const i=(0,z._)`typeof ${t} != "object"`;s=o.null?i:(0,z._)`!${t} || ${i}`,delete o.null,delete o.array,delete o.object}else s=z.nil;o.number&&delete o.integer;for(const i in o)s=(0,z.and)(s,ln(i,t,n,r));return s}te.checkDataTypes=_n;const Xo={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,z._)`{type: ${e}}`:(0,z._)`{type: ${t}}`};function wn(e){const t=ea(e);(0,Jo.reportError)(t,Xo)}te.reportTypeError=wn;function ea(e){const{gen:t,data:n,schema:r}=e,s=(0,ps.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:s,schemaValue:s,parentSchema:r,params:{},it:e}}var tt={},_r;function ta(){if(_r)return tt;_r=1,Object.defineProperty(tt,"__esModule",{value:!0}),tt.assignDefaults=void 0;const e=K,t=C;function n(s,o){const{properties:i,items:a}=s.schema;if(o==="object"&&i)for(const c in i)r(s,c,i[c].default);else o==="array"&&Array.isArray(a)&&a.forEach((c,u)=>r(s,u,c.default))}tt.assignDefaults=n;function r(s,o,i){const{gen:a,compositeRule:c,data:u,opts:l}=s;if(i===void 0)return;const f=(0,e._)`${u}${(0,e.getProperty)(o)}`;if(c){(0,t.checkStrictMode)(s,`default is ignored for: ${f}`);return}let h=(0,e._)`${f} === undefined`;l.useDefaults==="empty"&&(h=(0,e._)`${h} || ${f} === null || ${f} === ""`),a.if(h,(0,e._)`${f} = ${(0,e.stringify)(i)}`)}return tt}var me={},U={};Object.defineProperty(U,"__esModule",{value:!0});U.validateUnion=U.validateArray=U.usePattern=U.callValidateCode=U.schemaProperties=U.allSchemaProperties=U.noPropertyInData=U.propertyInData=U.isOwnProperty=U.hasPropFunc=U.reportMissingProp=U.checkMissingProp=U.checkReportMissingProp=void 0;const Y=K,bn=C,Pe=je(),na=C;function ra(e,t){const{gen:n,data:r,it:s}=e;n.if(Pn(n,r,t,s.opts.ownProperties),()=>{e.setParams({missingProperty:(0,Y._)`${t}`},!0),e.error()})}U.checkReportMissingProp=ra;function sa({gen:e,data:t,it:{opts:n}},r,s){return(0,Y.or)(...r.map(o=>(0,Y.and)(Pn(e,t,o,n.ownProperties),(0,Y._)`${s} = ${o}`)))}U.checkMissingProp=sa;function oa(e,t){e.setParams({missingProperty:t},!0),e.error()}U.reportMissingProp=oa;function gs(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,Y._)`Object.prototype.hasOwnProperty`})}U.hasPropFunc=gs;function Sn(e,t,n){return(0,Y._)`${gs(e)}.call(${t}, ${n})`}U.isOwnProperty=Sn;function aa(e,t,n,r){const s=(0,Y._)`${t}${(0,Y.getProperty)(n)} !== undefined`;return r?(0,Y._)`${s} && ${Sn(e,t,n)}`:s}U.propertyInData=aa;function Pn(e,t,n,r){const s=(0,Y._)`${t}${(0,Y.getProperty)(n)} === undefined`;return r?(0,Y.or)(s,(0,Y.not)(Sn(e,t,n))):s}U.noPropertyInData=Pn;function ys(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}U.allSchemaProperties=ys;function ia(e,t){return ys(t).filter(n=>!(0,bn.alwaysValidSchema)(e,t[n]))}U.schemaProperties=ia;function ca({schemaCode:e,data:t,it:{gen:n,topSchemaRef:r,schemaPath:s,errorPath:o},it:i},a,c,u){const l=u?(0,Y._)`${e}, ${t}, ${r}${s}`:t,f=[[Pe.default.instancePath,(0,Y.strConcat)(Pe.default.instancePath,o)],[Pe.default.parentData,i.parentData],[Pe.default.parentDataProperty,i.parentDataProperty],[Pe.default.rootData,Pe.default.rootData]];i.opts.dynamicRef&&f.push([Pe.default.dynamicAnchors,Pe.default.dynamicAnchors]);const h=(0,Y._)`${l}, ${n.object(...f)}`;return c!==Y.nil?(0,Y._)`${a}.call(${c}, ${h})`:(0,Y._)`${a}(${h})`}U.callValidateCode=ca;const ua=(0,Y._)`new RegExp`;function la({gen:e,it:{opts:t}},n){const r=t.unicodeRegExp?"u":"",{regExp:s}=t.code,o=s(n,r);return e.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,Y._)`${s.code==="new RegExp"?ua:(0,na.useFunc)(e,s)}(${n}, ${r})`})}U.usePattern=la;function da(e){const{gen:t,data:n,keyword:r,it:s}=e,o=t.name("valid");if(s.allErrors){const a=t.let("valid",!0);return i(()=>t.assign(a,!1)),a}return t.var(o,!0),i(()=>t.break()),o;function i(a){const c=t.const("len",(0,Y._)`${n}.length`);t.forRange("i",0,c,u=>{e.subschema({keyword:r,dataProp:u,dataPropType:bn.Type.Num},o),t.if((0,Y.not)(o),a)})}}U.validateArray=da;function fa(e){const{gen:t,schema:n,keyword:r,it:s}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some(c=>(0,bn.alwaysValidSchema)(s,c))&&!s.opts.unevaluated)return;const i=t.let("valid",!1),a=t.name("_valid");t.block(()=>n.forEach((c,u)=>{const l=e.subschema({keyword:r,schemaProp:u,compositeRule:!0},a);t.assign(i,(0,Y._)`${i} || ${a}`),e.mergeValidEvaluated(l,a)||t.if((0,Y.not)(i))})),e.result(i,()=>e.reset(),()=>e.error(!0))}U.validateUnion=fa;var wr;function pa(){if(wr)return me;wr=1,Object.defineProperty(me,"__esModule",{value:!0}),me.validateKeywordUsage=me.validSchemaType=me.funcKeywordCode=me.macroKeywordCode=void 0;const e=K,t=je(),n=U,r=pt;function s(h,g){const{gen:m,keyword:v,schema:y,parentSchema:p,it:_}=h,E=g.macro.call(_.self,y,p,_),j=u(m,v,E);_.opts.validateSchema!==!1&&_.self.validateSchema(E,!0);const N=m.name("valid");h.subschema({schema:E,schemaPath:e.nil,errSchemaPath:`${_.errSchemaPath}/${v}`,topSchemaRef:j,compositeRule:!0},N),h.pass(N,()=>h.error(!0))}me.macroKeywordCode=s;function o(h,g){var m;const{gen:v,keyword:y,schema:p,parentSchema:_,$data:E,it:j}=h;c(j,g);const N=!E&&g.compile?g.compile.call(j.self,p,_,j):g.validate,q=u(v,y,N),F=v.let("valid");h.block$data(F,W),h.ok((m=g.valid)!==null&&m!==void 0?m:F);function W(){if(g.errors===!1)ie(),g.modifying&&i(h),ne(()=>h.error());else{const J=g.async?B():ee();g.modifying&&i(h),ne(()=>a(h,J))}}function B(){const J=v.let("ruleErrs",null);return v.try(()=>ie((0,e._)`await `),Z=>v.assign(F,!1).if((0,e._)`${Z} instanceof ${j.ValidationError}`,()=>v.assign(J,(0,e._)`${Z}.errors`),()=>v.throw(Z))),J}function ee(){const J=(0,e._)`${q}.errors`;return v.assign(J,null),ie(e.nil),J}function ie(J=g.async?(0,e._)`await `:e.nil){const Z=j.opts.passContext?t.default.this:t.default.self,ve=!("compile"in g&&!E||g.schema===!1);v.assign(F,(0,e._)`${J}${(0,n.callValidateCode)(h,q,Z,ve)}`,g.modifying)}function ne(J){var Z;v.if((0,e.not)((Z=g.valid)!==null&&Z!==void 0?Z:F),J)}}me.funcKeywordCode=o;function i(h){const{gen:g,data:m,it:v}=h;g.if(v.parentData,()=>g.assign(m,(0,e._)`${v.parentData}[${v.parentDataProperty}]`))}function a(h,g){const{gen:m}=h;m.if((0,e._)`Array.isArray(${g})`,()=>{m.assign(t.default.vErrors,(0,e._)`${t.default.vErrors} === null ? ${g} : ${t.default.vErrors}.concat(${g})`).assign(t.default.errors,(0,e._)`${t.default.vErrors}.length`),(0,r.extendErrors)(h)},()=>h.error())}function c({schemaEnv:h},g){if(g.async&&!h.$async)throw new Error("async keyword in sync schema")}function u(h,g,m){if(m===void 0)throw new Error(`keyword "${g}" failed to compile`);return h.scopeValue("keyword",typeof m=="function"?{ref:m}:{ref:m,code:(0,e.stringify)(m)})}function l(h,g,m=!1){return!g.length||g.some(v=>v==="array"?Array.isArray(h):v==="object"?h&&typeof h=="object"&&!Array.isArray(h):typeof h==v||m&&typeof h>"u")}me.validSchemaType=l;function f({schema:h,opts:g,self:m,errSchemaPath:v},y,p){if(Array.isArray(y.keyword)?!y.keyword.includes(p):y.keyword!==p)throw new Error("ajv implementation error");const _=y.dependencies;if(_!=null&&_.some(E=>!Object.prototype.hasOwnProperty.call(h,E)))throw new Error(`parent schema must have dependencies of ${p}: ${_.join(",")}`);if(y.validateSchema&&!y.validateSchema(h[p])){const j=`keyword "${p}" value is invalid at path "${v}": `+m.errorsText(y.validateSchema.errors);if(g.validateSchema==="log")m.logger.error(j);else throw new Error(j)}}return me.validateKeywordUsage=f,me}var be={},br;function ha(){if(br)return be;br=1,Object.defineProperty(be,"__esModule",{value:!0}),be.extendSubschemaMode=be.extendSubschemaData=be.getSubschema=void 0;const e=K,t=C;function n(o,{keyword:i,schemaProp:a,schema:c,schemaPath:u,errSchemaPath:l,topSchemaRef:f}){if(i!==void 0&&c!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(i!==void 0){const h=o.schema[i];return a===void 0?{schema:h,schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(i)}`,errSchemaPath:`${o.errSchemaPath}/${i}`}:{schema:h[a],schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(i)}${(0,e.getProperty)(a)}`,errSchemaPath:`${o.errSchemaPath}/${i}/${(0,t.escapeFragment)(a)}`}}if(c!==void 0){if(u===void 0||l===void 0||f===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:c,schemaPath:u,topSchemaRef:f,errSchemaPath:l}}throw new Error('either "keyword" or "schema" must be passed')}be.getSubschema=n;function r(o,i,{dataProp:a,dataPropType:c,data:u,dataTypes:l,propertyName:f}){if(u!==void 0&&a!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');const{gen:h}=i;if(a!==void 0){const{errorPath:m,dataPathArr:v,opts:y}=i,p=h.let("data",(0,e._)`${i.data}${(0,e.getProperty)(a)}`,!0);g(p),o.errorPath=(0,e.str)`${m}${(0,t.getErrorPath)(a,c,y.jsPropertySyntax)}`,o.parentDataProperty=(0,e._)`${a}`,o.dataPathArr=[...v,o.parentDataProperty]}if(u!==void 0){const m=u instanceof e.Name?u:h.let("data",u,!0);g(m),f!==void 0&&(o.propertyName=f)}l&&(o.dataTypes=l);function g(m){o.data=m,o.dataLevel=i.dataLevel+1,o.dataTypes=[],i.definedProperties=new Set,o.parentData=i.data,o.dataNames=[...i.dataNames,m]}}be.extendSubschemaData=r;function s(o,{jtdDiscriminator:i,jtdMetadata:a,compositeRule:c,createErrors:u,allErrors:l}){c!==void 0&&(o.compositeRule=c),u!==void 0&&(o.createErrors=u),l!==void 0&&(o.allErrors=l),o.jtdDiscriminator=i,o.jtdMetadata=a}return be.extendSubschemaMode=s,be}var ae={},$s=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var r,s,o;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(s=r;s--!==0;)if(!e(t[s],n[s]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(o=Object.keys(t),r=o.length,r!==Object.keys(n).length)return!1;for(s=r;s--!==0;)if(!Object.prototype.hasOwnProperty.call(n,o[s]))return!1;for(s=r;s--!==0;){var i=o[s];if(!e(t[i],n[i]))return!1}return!0}return t!==t&&n!==n},vs={exports:{}},ke=vs.exports=function(e,t,n){typeof t=="function"&&(n=t,t={}),n=t.cb||n;var r=typeof n=="function"?n:n.pre||function(){},s=n.post||function(){};Et(t,r,s,e,"",e)};ke.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ke.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ke.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ke.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Et(e,t,n,r,s,o,i,a,c,u){if(r&&typeof r=="object"&&!Array.isArray(r)){t(r,s,o,i,a,c,u);for(var l in r){var f=r[l];if(Array.isArray(f)){if(l in ke.arrayKeywords)for(var h=0;h<f.length;h++)Et(e,t,n,f[h],s+"/"+l+"/"+h,o,s,l,r,h)}else if(l in ke.propsKeywords){if(f&&typeof f=="object")for(var g in f)Et(e,t,n,f[g],s+"/"+l+"/"+ma(g),o,s,l,r,g)}else(l in ke.keywords||e.allKeys&&!(l in ke.skipKeywords))&&Et(e,t,n,f,s+"/"+l,o,s,l,r)}n(r,s,o,i,a,c,u)}}function ma(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}var ga=vs.exports;Object.defineProperty(ae,"__esModule",{value:!0});ae.getSchemaRefs=ae.resolveUrl=ae.normalizeId=ae._getFullPath=ae.getFullPath=ae.inlineRef=void 0;const ya=C,$a=$s,va=ga,_a=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function wa(e,t=!0){return typeof e=="boolean"?!0:t===!0?!dn(e):t?_s(e)<=t:!1}ae.inlineRef=wa;const ba=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function dn(e){for(const t in e){if(ba.has(t))return!0;const n=e[t];if(Array.isArray(n)&&n.some(dn)||typeof n=="object"&&dn(n))return!0}return!1}function _s(e){let t=0;for(const n in e){if(n==="$ref")return 1/0;if(t++,!_a.has(n)&&(typeof e[n]=="object"&&(0,ya.eachItem)(e[n],r=>t+=_s(r)),t===1/0))return 1/0}return t}function ws(e,t="",n){n!==!1&&(t=Ke(t));const r=e.parse(t);return bs(e,r)}ae.getFullPath=ws;function bs(e,t){return e.serialize(t).split("#")[0]+"#"}ae._getFullPath=bs;const Sa=/#\/?$/;function Ke(e){return e?e.replace(Sa,""):""}ae.normalizeId=Ke;function Pa(e,t,n){return n=Ke(n),e.resolve(t,n)}ae.resolveUrl=Pa;const Ea=/^[a-z_][-a-z0-9._]*$/i;function ka(e,t){if(typeof e=="boolean")return{};const{schemaId:n,uriResolver:r}=this.opts,s=Ke(e[n]||t),o={"":s},i=ws(r,s,!1),a={},c=new Set;return va(e,{allKeys:!0},(f,h,g,m)=>{if(m===void 0)return;const v=i+h;let y=o[m];typeof f[n]=="string"&&(y=p.call(this,f[n])),_.call(this,f.$anchor),_.call(this,f.$dynamicAnchor),o[h]=y;function p(E){const j=this.opts.uriResolver.resolve;if(E=Ke(y?j(y,E):E),c.has(E))throw l(E);c.add(E);let N=this.refs[E];return typeof N=="string"&&(N=this.refs[N]),typeof N=="object"?u(f,N.schema,E):E!==Ke(v)&&(E[0]==="#"?(u(f,a[E],E),a[E]=f):this.refs[E]=v),E}function _(E){if(typeof E=="string"){if(!Ea.test(E))throw new Error(`invalid anchor "${E}"`);p.call(this,`#${E}`)}}}),a;function u(f,h,g){if(h!==void 0&&!$a(f,h))throw l(g)}function l(f){return new Error(`reference "${f}" resolves to more than one schema`)}}ae.getSchemaRefs=ka;var Sr;function Dt(){if(Sr)return _e;Sr=1,Object.defineProperty(_e,"__esModule",{value:!0}),_e.getData=_e.KeywordCxt=_e.validateFunctionCode=void 0;const e=Vo(),t=te,n=fs(),r=te,s=ta(),o=pa(),i=ha(),a=K,c=je(),u=ae,l=C,f=pt;function h(w){if(N(w)&&(F(w),j(w))){y(w);return}g(w,()=>(0,e.topBoolOrEmptySchema)(w))}_e.validateFunctionCode=h;function g({gen:w,validateName:S,schema:T,schemaEnv:R,opts:x},L){x.code.es5?w.func(S,(0,a._)`${c.default.data}, ${c.default.valCxt}`,R.$async,()=>{w.code((0,a._)`"use strict"; ${_(T,x)}`),v(w,x),w.code(L)}):w.func(S,(0,a._)`${c.default.data}, ${m(x)}`,R.$async,()=>w.code(_(T,x)).code(L))}function m(w){return(0,a._)`{${c.default.instancePath}="", ${c.default.parentData}, ${c.default.parentDataProperty}, ${c.default.rootData}=${c.default.data}${w.dynamicRef?(0,a._)`, ${c.default.dynamicAnchors}={}`:a.nil}}={}`}function v(w,S){w.if(c.default.valCxt,()=>{w.var(c.default.instancePath,(0,a._)`${c.default.valCxt}.${c.default.instancePath}`),w.var(c.default.parentData,(0,a._)`${c.default.valCxt}.${c.default.parentData}`),w.var(c.default.parentDataProperty,(0,a._)`${c.default.valCxt}.${c.default.parentDataProperty}`),w.var(c.default.rootData,(0,a._)`${c.default.valCxt}.${c.default.rootData}`),S.dynamicRef&&w.var(c.default.dynamicAnchors,(0,a._)`${c.default.valCxt}.${c.default.dynamicAnchors}`)},()=>{w.var(c.default.instancePath,(0,a._)`""`),w.var(c.default.parentData,(0,a._)`undefined`),w.var(c.default.parentDataProperty,(0,a._)`undefined`),w.var(c.default.rootData,c.default.data),S.dynamicRef&&w.var(c.default.dynamicAnchors,(0,a._)`{}`)})}function y(w){const{schema:S,opts:T,gen:R}=w;g(w,()=>{T.$comment&&S.$comment&&J(w),ee(w),R.let(c.default.vErrors,null),R.let(c.default.errors,0),T.unevaluated&&p(w),W(w),Z(w)})}function p(w){const{gen:S,validateName:T}=w;w.evaluated=S.const("evaluated",(0,a._)`${T}.evaluated`),S.if((0,a._)`${w.evaluated}.dynamicProps`,()=>S.assign((0,a._)`${w.evaluated}.props`,(0,a._)`undefined`)),S.if((0,a._)`${w.evaluated}.dynamicItems`,()=>S.assign((0,a._)`${w.evaluated}.items`,(0,a._)`undefined`))}function _(w,S){const T=typeof w=="object"&&w[S.schemaId];return T&&(S.code.source||S.code.process)?(0,a._)`/*# sourceURL=${T} */`:a.nil}function E(w,S){if(N(w)&&(F(w),j(w))){q(w,S);return}(0,e.boolOrEmptySchema)(w,S)}function j({schema:w,self:S}){if(typeof w=="boolean")return!w;for(const T in w)if(S.RULES.all[T])return!0;return!1}function N(w){return typeof w.schema!="boolean"}function q(w,S){const{schema:T,gen:R,opts:x}=w;x.$comment&&T.$comment&&J(w),ie(w),ne(w);const L=R.const("_errs",c.default.errors);W(w,L),R.var(S,(0,a._)`${L} === ${c.default.errors}`)}function F(w){(0,l.checkUnknownRules)(w),B(w)}function W(w,S){if(w.opts.jtd)return Te(w,[],!1,S);const T=(0,t.getSchemaTypes)(w.schema),R=(0,t.coerceAndCheckDataType)(w,T);Te(w,T,!R,S)}function B(w){const{schema:S,errSchemaPath:T,opts:R,self:x}=w;S.$ref&&R.ignoreKeywordsWithRef&&(0,l.schemaHasRulesButRef)(S,x.RULES)&&x.logger.warn(`$ref: keywords ignored in schema at path "${T}"`)}function ee(w){const{schema:S,opts:T}=w;S.default!==void 0&&T.useDefaults&&T.strictSchema&&(0,l.checkStrictMode)(w,"default is ignored in the schema root")}function ie(w){const S=w.schema[w.opts.schemaId];S&&(w.baseId=(0,u.resolveUrl)(w.opts.uriResolver,w.baseId,S))}function ne(w){if(w.schema.$async&&!w.schemaEnv.$async)throw new Error("async schema in sync schema")}function J({gen:w,schemaEnv:S,schema:T,errSchemaPath:R,opts:x}){const L=T.$comment;if(x.$comment===!0)w.code((0,a._)`${c.default.self}.logger.log(${L})`);else if(typeof x.$comment=="function"){const re=(0,a.str)`${R}/$comment`,he=w.scopeValue("root",{ref:S.root});w.code((0,a._)`${c.default.self}.opts.$comment(${L}, ${re}, ${he}.schema)`)}}function Z(w){const{gen:S,schemaEnv:T,validateName:R,ValidationError:x,opts:L}=w;T.$async?S.if((0,a._)`${c.default.errors} === 0`,()=>S.return(c.default.data),()=>S.throw((0,a._)`new ${x}(${c.default.vErrors})`)):(S.assign((0,a._)`${R}.errors`,c.default.vErrors),L.unevaluated&&ve(w),S.return((0,a._)`${c.default.errors} === 0`))}function ve({gen:w,evaluated:S,props:T,items:R}){T instanceof a.Name&&w.assign((0,a._)`${S}.props`,T),R instanceof a.Name&&w.assign((0,a._)`${S}.items`,R)}function Te(w,S,T,R){const{gen:x,schema:L,data:re,allErrors:he,opts:ce,self:ue}=w,{RULES:se}=ue;if(L.$ref&&(ce.ignoreKeywordsWithRef||!(0,l.schemaHasRulesButRef)(L,se))){x.block(()=>M(w,"$ref",se.all.$ref.definition));return}ce.jtd||Ze(w,S),x.block(()=>{for(const fe of se.rules)De(fe);De(se.post)});function De(fe){(0,n.shouldUseGroup)(L,fe)&&(fe.type?(x.if((0,r.checkDataType)(fe.type,re,ce.strictNumbers)),xe(w,fe),S.length===1&&S[0]===fe.type&&T&&(x.else(),(0,r.reportTypeError)(w)),x.endIf()):xe(w,fe),he||x.if((0,a._)`${c.default.errors} === ${R||0}`))}}function xe(w,S){const{gen:T,schema:R,opts:{useDefaults:x}}=w;x&&(0,s.assignDefaults)(w,S.type),T.block(()=>{for(const L of S.rules)(0,n.shouldUseRule)(R,L)&&M(w,L.keyword,L.definition,S.type)})}function Ze(w,S){w.schemaEnv.meta||!w.opts.strictTypes||(qe(w,S),w.opts.allowUnionTypes||I(w,S),b(w,w.dataTypes))}function qe(w,S){if(S.length){if(!w.dataTypes.length){w.dataTypes=S;return}S.forEach(T=>{P(w.dataTypes,T)||$(w,`type "${T}" not allowed by context "${w.dataTypes.join(",")}"`)}),d(w,S)}}function I(w,S){S.length>1&&!(S.length===2&&S.includes("null"))&&$(w,"use allowUnionTypes to allow union type keyword")}function b(w,S){const T=w.self.RULES.all;for(const R in T){const x=T[R];if(typeof x=="object"&&(0,n.shouldUseRule)(w.schema,x)){const{type:L}=x.definition;L.length&&!L.some(re=>O(S,re))&&$(w,`missing type "${L.join(",")}" for keyword "${R}"`)}}}function O(w,S){return w.includes(S)||S==="number"&&w.includes("integer")}function P(w,S){return w.includes(S)||S==="integer"&&w.includes("number")}function d(w,S){const T=[];for(const R of w.dataTypes)P(S,R)?T.push(R):S.includes("integer")&&R==="number"&&T.push("integer");w.dataTypes=T}function $(w,S){const T=w.schemaEnv.baseId+w.errSchemaPath;S+=` at "${T}" (strictTypes)`,(0,l.checkStrictMode)(w,S,w.opts.strictTypes)}class k{constructor(S,T,R){if((0,o.validateKeywordUsage)(S,T,R),this.gen=S.gen,this.allErrors=S.allErrors,this.keyword=R,this.data=S.data,this.schema=S.schema[R],this.$data=T.$data&&S.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,l.schemaRefOrVal)(S,this.schema,R,this.$data),this.schemaType=T.schemaType,this.parentSchema=S.schema,this.params={},this.it=S,this.def=T,this.$data)this.schemaCode=S.gen.const("vSchema",H(this.$data,S));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,T.schemaType,T.allowUndefined))throw new Error(`${R} value must be ${JSON.stringify(T.schemaType)}`);("code"in T?T.trackErrors:T.errors!==!1)&&(this.errsCount=S.gen.const("_errs",c.default.errors))}result(S,T,R){this.failResult((0,a.not)(S),T,R)}failResult(S,T,R){this.gen.if(S),R?R():this.error(),T?(this.gen.else(),T(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(S,T){this.failResult((0,a.not)(S),void 0,T)}fail(S){if(S===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(S),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(S){if(!this.$data)return this.fail(S);const{schemaCode:T}=this;this.fail((0,a._)`${T} !== undefined && (${(0,a.or)(this.invalid$data(),S)})`)}error(S,T,R){if(T){this.setParams(T),this._error(S,R),this.setParams({});return}this._error(S,R)}_error(S,T){(S?f.reportExtraError:f.reportError)(this,this.def.error,T)}$dataError(){(0,f.reportError)(this,this.def.$dataError||f.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,f.resetErrorsCount)(this.gen,this.errsCount)}ok(S){this.allErrors||this.gen.if(S)}setParams(S,T){T?Object.assign(this.params,S):this.params=S}block$data(S,T,R=a.nil){this.gen.block(()=>{this.check$data(S,R),T()})}check$data(S=a.nil,T=a.nil){if(!this.$data)return;const{gen:R,schemaCode:x,schemaType:L,def:re}=this;R.if((0,a.or)((0,a._)`${x} === undefined`,T)),S!==a.nil&&R.assign(S,!0),(L.length||re.validateSchema)&&(R.elseIf(this.invalid$data()),this.$dataError(),S!==a.nil&&R.assign(S,!1)),R.else()}invalid$data(){const{gen:S,schemaCode:T,schemaType:R,def:x,it:L}=this;return(0,a.or)(re(),he());function re(){if(R.length){if(!(T instanceof a.Name))throw new Error("ajv implementation error");const ce=Array.isArray(R)?R:[R];return(0,a._)`${(0,r.checkDataTypes)(ce,T,L.opts.strictNumbers,r.DataType.Wrong)}`}return a.nil}function he(){if(x.validateSchema){const ce=S.scopeValue("validate$data",{ref:x.validateSchema});return(0,a._)`!${ce}(${T})`}return a.nil}}subschema(S,T){const R=(0,i.getSubschema)(this.it,S);(0,i.extendSubschemaData)(R,this.it,S),(0,i.extendSubschemaMode)(R,S);const x={...this.it,...R,items:void 0,props:void 0};return E(x,T),x}mergeEvaluated(S,T){const{it:R,gen:x}=this;R.opts.unevaluated&&(R.props!==!0&&S.props!==void 0&&(R.props=l.mergeEvaluated.props(x,S.props,R.props,T)),R.items!==!0&&S.items!==void 0&&(R.items=l.mergeEvaluated.items(x,S.items,R.items,T)))}mergeValidEvaluated(S,T){const{it:R,gen:x}=this;if(R.opts.unevaluated&&(R.props!==!0||R.items!==!0))return x.if(T,()=>this.mergeEvaluated(S,a.Name)),!0}}_e.KeywordCxt=k;function M(w,S,T,R){const x=new k(w,T,S);"code"in T?T.code(x,R):x.$data&&T.validate?(0,o.funcKeywordCode)(x,T):"macro"in T?(0,o.macroKeywordCode)(x,T):(T.compile||T.validate)&&(0,o.funcKeywordCode)(x,T)}const D=/^\/(?:[^~]|~0|~1)*$/,G=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function H(w,{dataLevel:S,dataNames:T,dataPathArr:R}){let x,L;if(w==="")return c.default.rootData;if(w[0]==="/"){if(!D.test(w))throw new Error(`Invalid JSON-pointer: ${w}`);x=w,L=c.default.rootData}else{const ue=G.exec(w);if(!ue)throw new Error(`Invalid JSON-pointer: ${w}`);const se=+ue[1];if(x=ue[2],x==="#"){if(se>=S)throw new Error(ce("property/index",se));return R[S-se]}if(se>S)throw new Error(ce("data",se));if(L=T[S-se],!x)return L}let re=L;const he=x.split("/");for(const ue of he)ue&&(L=(0,a._)`${L}${(0,a.getProperty)((0,l.unescapeJsonPointer)(ue))}`,re=(0,a._)`${re} && ${L}`);return re;function ce(ue,se){return`Cannot access ${ue} ${se} levels up, current level is ${S}`}}return _e.getData=H,_e}var ht={};Object.defineProperty(ht,"__esModule",{value:!0});class ja extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}}ht.default=ja;var We={};Object.defineProperty(We,"__esModule",{value:!0});const tn=ae;class Ta extends Error{constructor(t,n,r,s){super(s||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,tn.resolveUrl)(t,n,r),this.missingSchema=(0,tn.normalizeId)((0,tn.getFullPath)(t,this.missingRef))}}We.default=Ta;var de={};Object.defineProperty(de,"__esModule",{value:!0});de.resolveSchema=de.getCompilingSchema=de.resolveRef=de.compileSchema=de.SchemaEnv=void 0;const ge=K,Oa=ht,Ne=je(),$e=ae,Pr=C,Na=Dt();class Ft{constructor(t){var n;this.refs={},this.dynamicAnchors={};let r;typeof t.schema=="object"&&(r=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(n=t.baseId)!==null&&n!==void 0?n:(0,$e.normalizeId)(r==null?void 0:r[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=r==null?void 0:r.$async,this.refs={}}}de.SchemaEnv=Ft;function En(e){const t=Ss.call(this,e);if(t)return t;const n=(0,$e.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:r,lines:s}=this.opts.code,{ownProperties:o}=this.opts,i=new ge.CodeGen(this.scope,{es5:r,lines:s,ownProperties:o});let a;e.$async&&(a=i.scopeValue("Error",{ref:Oa.default,code:(0,ge._)`require("ajv/dist/runtime/validation_error").default`}));const c=i.scopeName("validate");e.validateName=c;const u={gen:i,allErrors:this.opts.allErrors,data:Ne.default.data,parentData:Ne.default.parentData,parentDataProperty:Ne.default.parentDataProperty,dataNames:[Ne.default.data],dataPathArr:[ge.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:i.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,ge.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:a,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:ge.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,ge._)`""`,opts:this.opts,self:this};let l;try{this._compilations.add(e),(0,Na.validateFunctionCode)(u),i.optimize(this.opts.code.optimize);const f=i.toString();l=`${i.scopeRefs(Ne.default.scope)}return ${f}`,this.opts.code.process&&(l=this.opts.code.process(l,e));const g=new Function(`${Ne.default.self}`,`${Ne.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:g}),g.errors=null,g.schema=e.schema,g.schemaEnv=e,e.$async&&(g.$async=!0),this.opts.code.source===!0&&(g.source={validateName:c,validateCode:f,scopeValues:i._values}),this.opts.unevaluated){const{props:m,items:v}=u;g.evaluated={props:m instanceof ge.Name?void 0:m,items:v instanceof ge.Name?void 0:v,dynamicProps:m instanceof ge.Name,dynamicItems:v instanceof ge.Name},g.source&&(g.source.evaluated=(0,ge.stringify)(g.evaluated))}return e.validate=g,e}catch(f){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),f}finally{this._compilations.delete(e)}}de.compileSchema=En;function Ra(e,t,n){var r;n=(0,$e.resolveUrl)(this.opts.uriResolver,t,n);const s=e.refs[n];if(s)return s;let o=Aa.call(this,e,n);if(o===void 0){const i=(r=e.localRefs)===null||r===void 0?void 0:r[n],{schemaId:a}=this.opts;i&&(o=new Ft({schema:i,schemaId:a,root:e,baseId:t}))}if(o!==void 0)return e.refs[n]=Ia.call(this,o)}de.resolveRef=Ra;function Ia(e){return(0,$e.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:En.call(this,e)}function Ss(e){for(const t of this._compilations)if(Ca(t,e))return t}de.getCompilingSchema=Ss;function Ca(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Aa(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||Vt.call(this,e,t)}function Vt(e,t){const n=this.opts.uriResolver.parse(t),r=(0,$e._getFullPath)(this.opts.uriResolver,n);let s=(0,$e.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===s)return nn.call(this,n,e);const o=(0,$e.normalizeId)(r),i=this.refs[o]||this.schemas[o];if(typeof i=="string"){const a=Vt.call(this,e,i);return typeof(a==null?void 0:a.schema)!="object"?void 0:nn.call(this,n,a)}if(typeof(i==null?void 0:i.schema)=="object"){if(i.validate||En.call(this,i),o===(0,$e.normalizeId)(t)){const{schema:a}=i,{schemaId:c}=this.opts,u=a[c];return u&&(s=(0,$e.resolveUrl)(this.opts.uriResolver,s,u)),new Ft({schema:a,schemaId:c,root:e,baseId:s})}return nn.call(this,n,i)}}de.resolveSchema=Vt;const Ma=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function nn(e,{baseId:t,schema:n,root:r}){var s;if(((s=e.fragment)===null||s===void 0?void 0:s[0])!=="/")return;for(const a of e.fragment.slice(1).split("/")){if(typeof n=="boolean")return;const c=n[(0,Pr.unescapeFragment)(a)];if(c===void 0)return;n=c;const u=typeof n=="object"&&n[this.opts.schemaId];!Ma.has(a)&&u&&(t=(0,$e.resolveUrl)(this.opts.uriResolver,t,u))}let o;if(typeof n!="boolean"&&n.$ref&&!(0,Pr.schemaHasRulesButRef)(n,this.RULES)){const a=(0,$e.resolveUrl)(this.opts.uriResolver,t,n.$ref);o=Vt.call(this,r,a)}const{schemaId:i}=this.opts;if(o=o||new Ft({schema:n,schemaId:i,root:r,baseId:t}),o.schema!==o.root.schema)return o}const xa="https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",qa="Meta-schema for $data reference (JSON AnySchema extension proposal)",Da="object",Fa=["$data"],Va={$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},za=!1,La={$id:xa,description:qa,type:Da,required:Fa,properties:Va,additionalProperties:za};var kn={},zt={exports:{}};const Ua=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Ps=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),jn=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Es=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),Ka=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Tn(e){let t="",n=0,r=0;for(r=0;r<e.length;r++)if(n=e[r].charCodeAt(0),n!==48){if(!(n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r];break}for(r+=1;r<e.length;r++){if(n=e[r].charCodeAt(0),!(n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r]}return t}const Ha=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Er(e){return e.length=0,!0}function Ga(e,t,n){if(e.length){const r=Tn(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function Ja(e){let t=0;const n={error:!1,address:"",zone:""},r=[],s=[];let o=!1,i=!1,a=Ga;for(let c=0;c<e.length;c++){const u=e[c];if(!(u==="["||u==="]"))if(u===":"){if(o===!0&&(i=!0),!a(s,r,n))break;if(++t>7){n.error=!0;break}c>0&&e[c-1]===":"&&(o=!0),r.push(":");continue}else if(u==="%"){if(!a(s,r,n))break;a=Er}else{s.push(u);continue}}return s.length&&(a===Er?n.zone=s.join(""):i?r.push(s.join("")):r.push(Tn(s))),n.address=r.join(""),n}function ks(e){if(Wa(e,":")<2)return{host:e,isIPV6:!1};const t=Ja(e);if(t.error)return{host:e,isIPV6:!1};{let n=t.address,r=t.address;return t.zone&&(n+="%"+t.zone,r+="%25"+t.zone),{host:n,isIPV6:!0,escapedHost:r}}}function Wa(e,t){let n=0;for(let r=0;r<e.length;r++)e[r]===t&&n++;return n}function Ba(e){let t=e;const n=[];let r=-1,s=0;for(;s=t.length;){if(s===1){if(t===".")break;if(t==="/"){n.push("/");break}else{n.push(t);break}}else if(s===2){if(t[0]==="."){if(t[1]===".")break;if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&(t[1]==="."||t[1]==="/")){n.push("/");break}}else if(s===3&&t==="/.."){n.length!==0&&n.pop(),n.push("/");break}if(t[0]==="."){if(t[1]==="."){if(t[2]==="/"){t=t.slice(3);continue}}else if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&t[1]==="."){if(t[2]==="/"){t=t.slice(2);continue}else if(t[2]==="."&&t[3]==="/"){t=t.slice(3),n.length!==0&&n.pop();continue}}if((r=t.indexOf("/",1))===-1){n.push(t);break}else n.push(t.slice(0,r)),t=t.slice(r)}return n.join("")}const Qa={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},Ya=/[@/?#:]/g,Za=/[@/?#]/g;function js(e,t){const n=t?Za:Ya;return n.lastIndex=0,e.replace(n,r=>Qa[r])}function Xa(e,t=!1){if(e.indexOf("%")===-1)return e;let n="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){const s=e.slice(r+1,r+3);if(jn(s)){const o=s.toUpperCase(),i=String.fromCharCode(parseInt(o,16));t&&Es(i)?n+=i:n+="%"+o,r+=2;continue}}n+=e[r]}return n}function ei(e){let t="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){const r=e.slice(n+1,n+3);if(jn(r)){const s=r.toUpperCase(),o=String.fromCharCode(parseInt(s,16));o!=="."&&Es(o)?t+=o:t+="%"+s,n+=2;continue}}Ka(e[n])?t+=e[n]:t+=escape(e[n])}return t}function ti(e){let t="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){const r=e.slice(n+1,n+3);if(jn(r)){t+="%"+r.toUpperCase(),n+=2;continue}}t+=escape(e[n])}return t}function ni(e){const t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let n=unescape(e.host);if(!Ps(n)){const r=ks(n);r.isIPV6===!0?n=`[${r.escapedHost}]`:n=js(n,!1)}t.push(n)}return(typeof e.port=="number"||typeof e.port=="string")&&(t.push(":"),t.push(String(e.port))),t.length?t.join(""):void 0}var Ts={nonSimpleDomain:Ha,recomposeAuthority:ni,reescapeHostDelimiters:js,normalizePercentEncoding:Xa,normalizePathEncoding:ei,escapePreservingEscapes:ti,removeDotSegments:Ba,isIPv4:Ps,isUUID:Ua,normalizeIPv6:ks,stringArrayToHexStripped:Tn};const{isUUID:ri}=Ts,si=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,oi=["http","https","ws","wss","urn","urn:uuid"];function ai(e){return oi.indexOf(e)!==-1}function On(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function Os(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function Ns(e){const t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function ii(e){return e.secure=On(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function ci(e){if((e.port===(On(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){const[t,n]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=n,e.resourceName=void 0}return e.fragment=void 0,e}function ui(e,t){if(!e.path)return e.error="URN can not be parsed",e;const n=e.path.match(si);if(n){const r=t.scheme||e.scheme||"urn";e.nid=n[1].toLowerCase(),e.nss=n[2];const s=`${r}:${t.nid||e.nid}`,o=Nn(s);e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function li(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");const n=t.scheme||e.scheme||"urn",r=e.nid.toLowerCase(),s=`${n}:${t.nid||r}`,o=Nn(s);o&&(e=o.serialize(e,t));const i=e,a=e.nss;return i.path=`${r||t.nid}:${a}`,t.skipEscape=!0,i}function di(e,t){const n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!ri(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function fi(e){const t=e;return t.nss=(e.uuid||"").toLowerCase(),t}const Rs={scheme:"http",domainHost:!0,parse:Os,serialize:Ns},pi={scheme:"https",domainHost:Rs.domainHost,parse:Os,serialize:Ns},kt={scheme:"ws",domainHost:!0,parse:ii,serialize:ci},hi={scheme:"wss",domainHost:kt.domainHost,parse:kt.parse,serialize:kt.serialize},mi={scheme:"urn",parse:ui,serialize:li,skipNormalize:!0},gi={scheme:"urn:uuid",parse:di,serialize:fi,skipNormalize:!0},Rt={http:Rs,https:pi,ws:kt,wss:hi,urn:mi,"urn:uuid":gi};Object.setPrototypeOf(Rt,null);function Nn(e){return e&&(Rt[e]||Rt[e.toLowerCase()])||void 0}var yi={wsIsSecure:On,SCHEMES:Rt,isValidSchemeName:ai,getSchemeHandler:Nn};const{normalizeIPv6:$i,removeDotSegments:st,recomposeAuthority:vi,normalizePercentEncoding:_i,normalizePathEncoding:wi,escapePreservingEscapes:bi,reescapeHostDelimiters:Si,isIPv4:Pi,nonSimpleDomain:Ei}=Ts,{SCHEMES:ki,getSchemeHandler:Is}=yi;function ji(e,t){return typeof e=="string"?e=Ii(e,t):typeof e=="object"&&(e=Ge(Ae(e,t),t)),e}function Ti(e,t,n){const r=n?Object.assign({scheme:"null"},n):{scheme:"null"},s=Cs(Ge(e,r),Ge(t,r),r,!0);return r.skipEscape=!0,Ae(s,r)}function Cs(e,t,n,r){const s={};return r||(e=Ge(Ae(e,n),n),t=Ge(Ae(t,n),n)),n=n||{},!n.tolerant&&t.scheme?(s.scheme=t.scheme,s.userinfo=t.userinfo,s.host=t.host,s.port=t.port,s.path=st(t.path||""),s.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(s.userinfo=t.userinfo,s.host=t.host,s.port=t.port,s.path=st(t.path||""),s.query=t.query):(t.path?(t.path[0]==="/"?s.path=st(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?s.path="/"+t.path:e.path?s.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:s.path=t.path,s.path=st(s.path)),s.query=t.query):(s.path=e.path,t.query!==void 0?s.query=t.query:s.query=e.query),s.userinfo=e.userinfo,s.host=e.host,s.port=e.port),s.scheme=e.scheme),s.fragment=t.fragment,s}function Oi(e,t,n){const r=kr(e,n),s=kr(t,n);return r!==void 0&&s!==void 0&&r.toLowerCase()===s.toLowerCase()}function Ae(e,t){const n={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},r=Object.assign({},t),s=[],o=Is(r.scheme||n.scheme);o&&o.serialize&&o.serialize(n,r),n.path!==void 0&&(r.skipEscape?n.path=_i(n.path):(n.path=bi(n.path),n.scheme!==void 0&&(n.path=n.path.split("%3A").join(":")))),r.reference!=="suffix"&&n.scheme&&s.push(n.scheme,":");const i=vi(n);if(i!==void 0&&(r.reference!=="suffix"&&s.push("//"),s.push(i),n.path&&n.path[0]!=="/"&&s.push("/")),n.path!==void 0){let a=n.path;!r.absolutePath&&(!o||!o.absolutePath)&&(a=st(a)),i===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),s.push(a)}return n.query!==void 0&&s.push("?",n.query),n.fragment!==void 0&&s.push("#",n.fragment),s.join("")}const Ni=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Ri(e,t){if(t[2]!==void 0&&e.path&&e.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof e.port=="number"&&(e.port<0||e.port>65535))return"URI port is malformed."}function As(e,t){const n=Object.assign({},t),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0};let s=!1,o=!1;n.reference==="suffix"&&(n.scheme?e=n.scheme+":"+e:e="//"+e);const i=e.match(Ni);if(i){r.scheme=i[1],r.userinfo=i[3],r.host=i[4],r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=i[7],r.fragment=i[8],isNaN(r.port)&&(r.port=i[5]);const a=Ri(r,i);if(a!==void 0&&(r.error=r.error||a,s=!0),r.host)if(Pi(r.host)===!1){const l=$i(r.host);r.host=l.host.toLowerCase(),o=l.isIPV6}else o=!0;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",n.reference&&n.reference!=="suffix"&&n.reference!==r.reference&&(r.error=r.error||"URI is not a "+n.reference+" reference.");const c=Is(n.scheme||r.scheme);if(!n.unicodeSupport&&(!c||!c.unicodeSupport)&&r.host&&(n.domainHost||c&&c.domainHost)&&o===!1&&Ei(r.host))try{r.host=URL.domainToASCII(r.host.toLowerCase())}catch(u){r.error=r.error||"Host's domain name can not be converted to ASCII: "+u}if((!c||c&&!c.skipNormalize)&&(e.indexOf("%")!==-1&&(r.scheme!==void 0&&(r.scheme=unescape(r.scheme)),r.host!==void 0&&(r.host=Si(unescape(r.host),o))),r.path&&(r.path=wi(r.path)),r.fragment))try{r.fragment=encodeURI(decodeURIComponent(r.fragment))}catch{r.error=r.error||"URI malformed"}c&&c.parse&&c.parse(r,n)}else r.error=r.error||"URI can not be parsed.";return{parsed:r,malformedAuthorityOrPort:s}}function Ge(e,t){return As(e,t).parsed}function Ii(e,t){return Ms(e,t).normalized}function Ms(e,t){const{parsed:n,malformedAuthorityOrPort:r}=As(e,t);return{normalized:r?e:Ae(n,t),malformedAuthorityOrPort:r}}function kr(e,t){if(typeof e=="string"){const{normalized:n,malformedAuthorityOrPort:r}=Ms(e,t);return r?void 0:n}if(typeof e=="object")return Ae(e,t)}const Rn={SCHEMES:ki,normalize:ji,resolve:Ti,resolveComponent:Cs,equal:Oi,serialize:Ae,parse:Ge};zt.exports=Rn;zt.exports.default=Rn;zt.exports.fastUri=Rn;var Ci=zt.exports;Object.defineProperty(kn,"__esModule",{value:!0});const xs=Ci;xs.code='require("ajv/dist/runtime/uri").default';kn.default=xs;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=Dt();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var n=K;Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return n.CodeGen}});const r=ht,s=We,o=Ce,i=de,a=K,c=ae,u=te,l=C,f=La,h=kn,g=(I,b)=>new RegExp(I,b);g.code="new RegExp";const m=["removeAdditional","useDefaults","coerceTypes"],v=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),y={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},p={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},_=200;function E(I){var b,O,P,d,$,k,M,D,G,H,w,S,T,R,x,L,re,he,ce,ue,se,De,fe,Jt,Wt;const Xe=I.strict,Bt=(b=I.code)===null||b===void 0?void 0:b.optimize,ur=Bt===!0||Bt===void 0?1:Bt||0,lr=(P=(O=I.code)===null||O===void 0?void 0:O.regExp)!==null&&P!==void 0?P:g,Zs=(d=I.uriResolver)!==null&&d!==void 0?d:h.default;return{strictSchema:(k=($=I.strictSchema)!==null&&$!==void 0?$:Xe)!==null&&k!==void 0?k:!0,strictNumbers:(D=(M=I.strictNumbers)!==null&&M!==void 0?M:Xe)!==null&&D!==void 0?D:!0,strictTypes:(H=(G=I.strictTypes)!==null&&G!==void 0?G:Xe)!==null&&H!==void 0?H:"log",strictTuples:(S=(w=I.strictTuples)!==null&&w!==void 0?w:Xe)!==null&&S!==void 0?S:"log",strictRequired:(R=(T=I.strictRequired)!==null&&T!==void 0?T:Xe)!==null&&R!==void 0?R:!1,code:I.code?{...I.code,optimize:ur,regExp:lr}:{optimize:ur,regExp:lr},loopRequired:(x=I.loopRequired)!==null&&x!==void 0?x:_,loopEnum:(L=I.loopEnum)!==null&&L!==void 0?L:_,meta:(re=I.meta)!==null&&re!==void 0?re:!0,messages:(he=I.messages)!==null&&he!==void 0?he:!0,inlineRefs:(ce=I.inlineRefs)!==null&&ce!==void 0?ce:!0,schemaId:(ue=I.schemaId)!==null&&ue!==void 0?ue:"$id",addUsedSchema:(se=I.addUsedSchema)!==null&&se!==void 0?se:!0,validateSchema:(De=I.validateSchema)!==null&&De!==void 0?De:!0,validateFormats:(fe=I.validateFormats)!==null&&fe!==void 0?fe:!0,unicodeRegExp:(Jt=I.unicodeRegExp)!==null&&Jt!==void 0?Jt:!0,int32range:(Wt=I.int32range)!==null&&Wt!==void 0?Wt:!0,uriResolver:Zs}}class j{constructor(b={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,b=this.opts={...b,...E(b)};const{es5:O,lines:P}=this.opts.code;this.scope=new a.ValueScope({scope:{},prefixes:v,es5:O,lines:P}),this.logger=ne(b.logger);const d=b.validateFormats;b.validateFormats=!1,this.RULES=(0,o.getRules)(),N.call(this,y,b,"NOT SUPPORTED"),N.call(this,p,b,"DEPRECATED","warn"),this._metaOpts=ee.call(this),b.formats&&W.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),b.keywords&&B.call(this,b.keywords),typeof b.meta=="object"&&this.addMetaSchema(b.meta),F.call(this),b.validateFormats=d}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:b,meta:O,schemaId:P}=this.opts;let d=f;P==="id"&&(d={...f},d.id=d.$id,delete d.$id),O&&b&&this.addMetaSchema(d,d[P],!1)}defaultMeta(){const{meta:b,schemaId:O}=this.opts;return this.opts.defaultMeta=typeof b=="object"?b[O]||b:void 0}validate(b,O){let P;if(typeof b=="string"){if(P=this.getSchema(b),!P)throw new Error(`no schema with key or ref "${b}"`)}else P=this.compile(b);const d=P(O);return"$async"in P||(this.errors=P.errors),d}compile(b,O){const P=this._addSchema(b,O);return P.validate||this._compileSchemaEnv(P)}compileAsync(b,O){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");const{loadSchema:P}=this.opts;return d.call(this,b,O);async function d(H,w){await $.call(this,H.$schema);const S=this._addSchema(H,w);return S.validate||k.call(this,S)}async function $(H){H&&!this.getSchema(H)&&await d.call(this,{$ref:H},!0)}async function k(H){try{return this._compileSchemaEnv(H)}catch(w){if(!(w instanceof s.default))throw w;return M.call(this,w),await D.call(this,w.missingSchema),k.call(this,H)}}function M({missingSchema:H,missingRef:w}){if(this.refs[H])throw new Error(`AnySchema ${H} is loaded but ${w} cannot be resolved`)}async function D(H){const w=await G.call(this,H);this.refs[H]||await $.call(this,w.$schema),this.refs[H]||this.addSchema(w,H,O)}async function G(H){const w=this._loading[H];if(w)return w;try{return await(this._loading[H]=P(H))}finally{delete this._loading[H]}}}addSchema(b,O,P,d=this.opts.validateSchema){if(Array.isArray(b)){for(const k of b)this.addSchema(k,void 0,P,d);return this}let $;if(typeof b=="object"){const{schemaId:k}=this.opts;if($=b[k],$!==void 0&&typeof $!="string")throw new Error(`schema ${k} must be string`)}return O=(0,c.normalizeId)(O||$),this._checkUnique(O),this.schemas[O]=this._addSchema(b,P,O,d,!0),this}addMetaSchema(b,O,P=this.opts.validateSchema){return this.addSchema(b,O,!0,P),this}validateSchema(b,O){if(typeof b=="boolean")return!0;let P;if(P=b.$schema,P!==void 0&&typeof P!="string")throw new Error("$schema must be a string");if(P=P||this.opts.defaultMeta||this.defaultMeta(),!P)return this.logger.warn("meta-schema not available"),this.errors=null,!0;const d=this.validate(P,b);if(!d&&O){const $="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error($);else throw new Error($)}return d}getSchema(b){let O;for(;typeof(O=q.call(this,b))=="string";)b=O;if(O===void 0){const{schemaId:P}=this.opts,d=new i.SchemaEnv({schema:{},schemaId:P});if(O=i.resolveSchema.call(this,d,b),!O)return;this.refs[b]=O}return O.validate||this._compileSchemaEnv(O)}removeSchema(b){if(b instanceof RegExp)return this._removeAllSchemas(this.schemas,b),this._removeAllSchemas(this.refs,b),this;switch(typeof b){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{const O=q.call(this,b);return typeof O=="object"&&this._cache.delete(O.schema),delete this.schemas[b],delete this.refs[b],this}case"object":{const O=b;this._cache.delete(O);let P=b[this.opts.schemaId];return P&&(P=(0,c.normalizeId)(P),delete this.schemas[P],delete this.refs[P]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(b){for(const O of b)this.addKeyword(O);return this}addKeyword(b,O){let P;if(typeof b=="string")P=b,typeof O=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),O.keyword=P);else if(typeof b=="object"&&O===void 0){if(O=b,P=O.keyword,Array.isArray(P)&&!P.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Z.call(this,P,O),!O)return(0,l.eachItem)(P,$=>ve.call(this,$)),this;xe.call(this,O);const d={...O,type:(0,u.getJSONTypes)(O.type),schemaType:(0,u.getJSONTypes)(O.schemaType)};return(0,l.eachItem)(P,d.type.length===0?$=>ve.call(this,$,d):$=>d.type.forEach(k=>ve.call(this,$,d,k))),this}getKeyword(b){const O=this.RULES.all[b];return typeof O=="object"?O.definition:!!O}removeKeyword(b){const{RULES:O}=this;delete O.keywords[b],delete O.all[b];for(const P of O.rules){const d=P.rules.findIndex($=>$.keyword===b);d>=0&&P.rules.splice(d,1)}return this}addFormat(b,O){return typeof O=="string"&&(O=new RegExp(O)),this.formats[b]=O,this}errorsText(b=this.errors,{separator:O=", ",dataVar:P="data"}={}){return!b||b.length===0?"No errors":b.map(d=>`${P}${d.instancePath} ${d.message}`).reduce((d,$)=>d+O+$)}$dataMetaSchema(b,O){const P=this.RULES.all;b=JSON.parse(JSON.stringify(b));for(const d of O){const $=d.split("/").slice(1);let k=b;for(const M of $)k=k[M];for(const M in P){const D=P[M];if(typeof D!="object")continue;const{$data:G}=D.definition,H=k[M];G&&H&&(k[M]=qe(H))}}return b}_removeAllSchemas(b,O){for(const P in b){const d=b[P];(!O||O.test(P))&&(typeof d=="string"?delete b[P]:d&&!d.meta&&(this._cache.delete(d.schema),delete b[P]))}}_addSchema(b,O,P,d=this.opts.validateSchema,$=this.opts.addUsedSchema){let k;const{schemaId:M}=this.opts;if(typeof b=="object")k=b[M];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof b!="boolean")throw new Error("schema must be object or boolean")}let D=this._cache.get(b);if(D!==void 0)return D;P=(0,c.normalizeId)(k||P);const G=c.getSchemaRefs.call(this,b,P);return D=new i.SchemaEnv({schema:b,schemaId:M,meta:O,baseId:P,localRefs:G}),this._cache.set(D.schema,D),$&&!P.startsWith("#")&&(P&&this._checkUnique(P),this.refs[P]=D),d&&this.validateSchema(b,!0),D}_checkUnique(b){if(this.schemas[b]||this.refs[b])throw new Error(`schema with key or id "${b}" already exists`)}_compileSchemaEnv(b){if(b.meta?this._compileMetaSchema(b):i.compileSchema.call(this,b),!b.validate)throw new Error("ajv implementation error");return b.validate}_compileMetaSchema(b){const O=this.opts;this.opts=this._metaOpts;try{i.compileSchema.call(this,b)}finally{this.opts=O}}}j.ValidationError=r.default,j.MissingRefError=s.default,e.default=j;function N(I,b,O,P="error"){for(const d in I){const $=d;$ in b&&this.logger[P](`${O}: option ${d}. ${I[$]}`)}}function q(I){return I=(0,c.normalizeId)(I),this.schemas[I]||this.refs[I]}function F(){const I=this.opts.schemas;if(I)if(Array.isArray(I))this.addSchema(I);else for(const b in I)this.addSchema(I[b],b)}function W(){for(const I in this.opts.formats){const b=this.opts.formats[I];b&&this.addFormat(I,b)}}function B(I){if(Array.isArray(I)){this.addVocabulary(I);return}this.logger.warn("keywords option as map is deprecated, pass array");for(const b in I){const O=I[b];O.keyword||(O.keyword=b),this.addKeyword(O)}}function ee(){const I={...this.opts};for(const b of m)delete I[b];return I}const ie={log(){},warn(){},error(){}};function ne(I){if(I===!1)return ie;if(I===void 0)return console;if(I.log&&I.warn&&I.error)return I;throw new Error("logger must implement log, warn and error methods")}const J=/^[a-z_$][a-z0-9_$:-]*$/i;function Z(I,b){const{RULES:O}=this;if((0,l.eachItem)(I,P=>{if(O.keywords[P])throw new Error(`Keyword ${P} is already defined`);if(!J.test(P))throw new Error(`Keyword ${P} has invalid name`)}),!!b&&b.$data&&!("code"in b||"validate"in b))throw new Error('$data keyword must have "code" or "validate" function')}function ve(I,b,O){var P;const d=b==null?void 0:b.post;if(O&&d)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:$}=this;let k=d?$.post:$.rules.find(({type:D})=>D===O);if(k||(k={type:O,rules:[]},$.rules.push(k)),$.keywords[I]=!0,!b)return;const M={keyword:I,definition:{...b,type:(0,u.getJSONTypes)(b.type),schemaType:(0,u.getJSONTypes)(b.schemaType)}};b.before?Te.call(this,k,M,b.before):k.rules.push(M),$.all[I]=M,(P=b.implements)===null||P===void 0||P.forEach(D=>this.addKeyword(D))}function Te(I,b,O){const P=I.rules.findIndex(d=>d.keyword===O);P>=0?I.rules.splice(P,0,b):(I.rules.push(b),this.logger.warn(`rule ${O} is not defined`))}function xe(I){let{metaSchema:b}=I;b!==void 0&&(I.$data&&this.opts.$data&&(b=qe(b)),I.validateSchema=this.compile(b,!0))}const Ze={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function qe(I){return{anyOf:[I,Ze]}}})(as);var In={},Cn={},An={};Object.defineProperty(An,"__esModule",{value:!0});const Ai={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};An.default=Ai;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.callRef=Me.getValidate=void 0;const Mi=We,jr=U,le=K,Ve=je(),Tr=de,vt=C,xi={keyword:"$ref",schemaType:"string",code(e){const{gen:t,schema:n,it:r}=e,{baseId:s,schemaEnv:o,validateName:i,opts:a,self:c}=r,{root:u}=o;if((n==="#"||n==="#/")&&s===u.baseId)return f();const l=Tr.resolveRef.call(c,u,s,n);if(l===void 0)throw new Mi.default(r.opts.uriResolver,s,n);if(l instanceof Tr.SchemaEnv)return h(l);return g(l);function f(){if(o===u)return jt(e,i,o,o.$async);const m=t.scopeValue("root",{ref:u});return jt(e,(0,le._)`${m}.validate`,u,u.$async)}function h(m){const v=qs(e,m);jt(e,v,m,m.$async)}function g(m){const v=t.scopeValue("schema",a.code.source===!0?{ref:m,code:(0,le.stringify)(m)}:{ref:m}),y=t.name("valid"),p=e.subschema({schema:m,dataTypes:[],schemaPath:le.nil,topSchemaRef:v,errSchemaPath:n},y);e.mergeEvaluated(p),e.ok(y)}}};function qs(e,t){const{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,le._)`${n.scopeValue("wrapper",{ref:t})}.validate`}Me.getValidate=qs;function jt(e,t,n,r){const{gen:s,it:o}=e,{allErrors:i,schemaEnv:a,opts:c}=o,u=c.passContext?Ve.default.this:le.nil;r?l():f();function l(){if(!a.$async)throw new Error("async schema referenced by sync schema");const m=s.let("valid");s.try(()=>{s.code((0,le._)`await ${(0,jr.callValidateCode)(e,t,u)}`),g(t),i||s.assign(m,!0)},v=>{s.if((0,le._)`!(${v} instanceof ${o.ValidationError})`,()=>s.throw(v)),h(v),i||s.assign(m,!1)}),e.ok(m)}function f(){e.result((0,jr.callValidateCode)(e,t,u),()=>g(t),()=>h(t))}function h(m){const v=(0,le._)`${m}.errors`;s.assign(Ve.default.vErrors,(0,le._)`${Ve.default.vErrors} === null ? ${v} : ${Ve.default.vErrors}.concat(${v})`),s.assign(Ve.default.errors,(0,le._)`${Ve.default.vErrors}.length`)}function g(m){var v;if(!o.opts.unevaluated)return;const y=(v=n==null?void 0:n.validate)===null||v===void 0?void 0:v.evaluated;if(o.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(o.props=vt.mergeEvaluated.props(s,y.props,o.props));else{const p=s.var("props",(0,le._)`${m}.evaluated.props`);o.props=vt.mergeEvaluated.props(s,p,o.props,le.Name)}if(o.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(o.items=vt.mergeEvaluated.items(s,y.items,o.items));else{const p=s.var("items",(0,le._)`${m}.evaluated.items`);o.items=vt.mergeEvaluated.items(s,p,o.items,le.Name)}}}Me.callRef=jt;Me.default=xi;Object.defineProperty(Cn,"__esModule",{value:!0});const qi=An,Di=Me,Fi=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",qi.default,Di.default];Cn.default=Fi;var Mn={},xn={};Object.defineProperty(xn,"__esModule",{value:!0});const It=K,Ee=It.operators,Ct={maximum:{okStr:"<=",ok:Ee.LTE,fail:Ee.GT},minimum:{okStr:">=",ok:Ee.GTE,fail:Ee.LT},exclusiveMaximum:{okStr:"<",ok:Ee.LT,fail:Ee.GTE},exclusiveMinimum:{okStr:">",ok:Ee.GT,fail:Ee.LTE}},Vi={message:({keyword:e,schemaCode:t})=>(0,It.str)`must be ${Ct[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,It._)`{comparison: ${Ct[e].okStr}, limit: ${t}}`},zi={keyword:Object.keys(Ct),type:"number",schemaType:"number",$data:!0,error:Vi,code(e){const{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,It._)`${n} ${Ct[t].fail} ${r} || isNaN(${n})`)}};xn.default=zi;var qn={};Object.defineProperty(qn,"__esModule",{value:!0});const at=K,Li={message:({schemaCode:e})=>(0,at.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,at._)`{multipleOf: ${e}}`},Ui={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Li,code(e){const{gen:t,data:n,schemaCode:r,it:s}=e,o=s.opts.multipleOfPrecision,i=t.let("res"),a=o?(0,at._)`Math.abs(Math.round(${i}) - ${i}) > 1e-${o}`:(0,at._)`${i} !== parseInt(${i})`;e.fail$data((0,at._)`(${r} === 0 || (${i} = ${n}/${r}, ${a}))`)}};qn.default=Ui;var Dn={},Fn={};Object.defineProperty(Fn,"__esModule",{value:!0});function Ds(e){const t=e.length;let n=0,r=0,s;for(;r<t;)n++,s=e.charCodeAt(r++),s>=55296&&s<=56319&&r<t&&(s=e.charCodeAt(r),(s&64512)===56320&&r++);return n}Fn.default=Ds;Ds.code='require("ajv/dist/runtime/ucs2length").default';Object.defineProperty(Dn,"__esModule",{value:!0});const Re=K,Ki=C,Hi=Fn,Gi={message({keyword:e,schemaCode:t}){const n=e==="maxLength"?"more":"fewer";return(0,Re.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,Re._)`{limit: ${e}}`},Ji={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Gi,code(e){const{keyword:t,data:n,schemaCode:r,it:s}=e,o=t==="maxLength"?Re.operators.GT:Re.operators.LT,i=s.opts.unicode===!1?(0,Re._)`${n}.length`:(0,Re._)`${(0,Ki.useFunc)(e.gen,Hi.default)}(${n})`;e.fail$data((0,Re._)`${i} ${o} ${r}`)}};Dn.default=Ji;var Vn={};Object.defineProperty(Vn,"__esModule",{value:!0});const Wi=U,Bi=C,Le=K,Qi={message:({schemaCode:e})=>(0,Le.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,Le._)`{pattern: ${e}}`},Yi={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Qi,code(e){const{gen:t,data:n,$data:r,schema:s,schemaCode:o,it:i}=e,a=i.opts.unicodeRegExp?"u":"";if(r){const{regExp:c}=i.opts.code,u=c.code==="new RegExp"?(0,Le._)`new RegExp`:(0,Bi.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,Le._)`${u}(${o}, ${a}).test(${n})`),()=>t.assign(l,!1)),e.fail$data((0,Le._)`!${l}`)}else{const c=(0,Wi.usePattern)(e,s);e.fail$data((0,Le._)`!${c}.test(${n})`)}}};Vn.default=Yi;var zn={};Object.defineProperty(zn,"__esModule",{value:!0});const it=K,Zi={message({keyword:e,schemaCode:t}){const n=e==="maxProperties"?"more":"fewer";return(0,it.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,it._)`{limit: ${e}}`},Xi={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Zi,code(e){const{keyword:t,data:n,schemaCode:r}=e,s=t==="maxProperties"?it.operators.GT:it.operators.LT;e.fail$data((0,it._)`Object.keys(${n}).length ${s} ${r}`)}};zn.default=Xi;var Ln={};Object.defineProperty(Ln,"__esModule",{value:!0});const nt=U,ct=K,ec=C,tc={message:({params:{missingProperty:e}})=>(0,ct.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,ct._)`{missingProperty: ${e}}`},nc={keyword:"required",type:"object",schemaType:"array",$data:!0,error:tc,code(e){const{gen:t,schema:n,schemaCode:r,data:s,$data:o,it:i}=e,{opts:a}=i;if(!o&&n.length===0)return;const c=n.length>=a.loopRequired;if(i.allErrors?u():l(),a.strictRequired){const g=e.parentSchema.properties,{definedProperties:m}=e.it;for(const v of n)if((g==null?void 0:g[v])===void 0&&!m.has(v)){const y=i.schemaEnv.baseId+i.errSchemaPath,p=`required property "${v}" is not defined at "${y}" (strictRequired)`;(0,ec.checkStrictMode)(i,p,i.opts.strictRequired)}}function u(){if(c||o)e.block$data(ct.nil,f);else for(const g of n)(0,nt.checkReportMissingProp)(e,g)}function l(){const g=t.let("missing");if(c||o){const m=t.let("valid",!0);e.block$data(m,()=>h(g,m)),e.ok(m)}else t.if((0,nt.checkMissingProp)(e,n,g)),(0,nt.reportMissingProp)(e,g),t.else()}function f(){t.forOf("prop",r,g=>{e.setParams({missingProperty:g}),t.if((0,nt.noPropertyInData)(t,s,g,a.ownProperties),()=>e.error())})}function h(g,m){e.setParams({missingProperty:g}),t.forOf(g,r,()=>{t.assign(m,(0,nt.propertyInData)(t,s,g,a.ownProperties)),t.if((0,ct.not)(m),()=>{e.error(),t.break()})},ct.nil)}}};Ln.default=nc;var Un={};Object.defineProperty(Un,"__esModule",{value:!0});const ut=K,rc={message({keyword:e,schemaCode:t}){const n=e==="maxItems"?"more":"fewer";return(0,ut.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,ut._)`{limit: ${e}}`},sc={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:rc,code(e){const{keyword:t,data:n,schemaCode:r}=e,s=t==="maxItems"?ut.operators.GT:ut.operators.LT;e.fail$data((0,ut._)`${n}.length ${s} ${r}`)}};Un.default=sc;var Kn={},mt={};Object.defineProperty(mt,"__esModule",{value:!0});const Fs=$s;Fs.code='require("ajv/dist/runtime/equal").default';mt.default=Fs;Object.defineProperty(Kn,"__esModule",{value:!0});const rn=te,oe=K,oc=C,ac=mt,ic={message:({params:{i:e,j:t}})=>(0,oe.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,oe._)`{i: ${e}, j: ${t}}`},cc={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:ic,code(e){const{gen:t,data:n,$data:r,schema:s,parentSchema:o,schemaCode:i,it:a}=e;if(!r&&!s)return;const c=t.let("valid"),u=o.items?(0,rn.getSchemaTypes)(o.items):[];e.block$data(c,l,(0,oe._)`${i} === false`),e.ok(c);function l(){const m=t.let("i",(0,oe._)`${n}.length`),v=t.let("j");e.setParams({i:m,j:v}),t.assign(c,!0),t.if((0,oe._)`${m} > 1`,()=>(f()?h:g)(m,v))}function f(){return u.length>0&&!u.some(m=>m==="object"||m==="array")}function h(m,v){const y=t.name("item"),p=(0,rn.checkDataTypes)(u,y,a.opts.strictNumbers,rn.DataType.Wrong),_=t.const("indices",(0,oe._)`{}`);t.for((0,oe._)`;${m}--;`,()=>{t.let(y,(0,oe._)`${n}[${m}]`),t.if(p,(0,oe._)`continue`),u.length>1&&t.if((0,oe._)`typeof ${y} == "string"`,(0,oe._)`${y} += "_"`),t.if((0,oe._)`typeof ${_}[${y}] == "number"`,()=>{t.assign(v,(0,oe._)`${_}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,oe._)`${_}[${y}] = ${m}`)})}function g(m,v){const y=(0,oc.useFunc)(t,ac.default),p=t.name("outer");t.label(p).for((0,oe._)`;${m}--;`,()=>t.for((0,oe._)`${v} = ${m}; ${v}--;`,()=>t.if((0,oe._)`${y}(${n}[${m}], ${n}[${v}])`,()=>{e.error(),t.assign(c,!1).break(p)})))}}};Kn.default=cc;var Hn={};Object.defineProperty(Hn,"__esModule",{value:!0});const fn=K,uc=C,lc=mt,dc={message:"must be equal to constant",params:({schemaCode:e})=>(0,fn._)`{allowedValue: ${e}}`},fc={keyword:"const",$data:!0,error:dc,code(e){const{gen:t,data:n,$data:r,schemaCode:s,schema:o}=e;r||o&&typeof o=="object"?e.fail$data((0,fn._)`!${(0,uc.useFunc)(t,lc.default)}(${n}, ${s})`):e.fail((0,fn._)`${o} !== ${n}`)}};Hn.default=fc;var Gn={};Object.defineProperty(Gn,"__esModule",{value:!0});const ot=K,pc=C,hc=mt,mc={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,ot._)`{allowedValues: ${e}}`},gc={keyword:"enum",schemaType:"array",$data:!0,error:mc,code(e){const{gen:t,data:n,$data:r,schema:s,schemaCode:o,it:i}=e;if(!r&&s.length===0)throw new Error("enum must have non-empty array");const a=s.length>=i.opts.loopEnum;let c;const u=()=>c??(c=(0,pc.useFunc)(t,hc.default));let l;if(a||r)l=t.let("valid"),e.block$data(l,f);else{if(!Array.isArray(s))throw new Error("ajv implementation error");const g=t.const("vSchema",o);l=(0,ot.or)(...s.map((m,v)=>h(g,v)))}e.pass(l);function f(){t.assign(l,!1),t.forOf("v",o,g=>t.if((0,ot._)`${u()}(${n}, ${g})`,()=>t.assign(l,!0).break()))}function h(g,m){const v=s[m];return typeof v=="object"&&v!==null?(0,ot._)`${u()}(${n}, ${g}[${m}])`:(0,ot._)`${n} === ${v}`}}};Gn.default=gc;Object.defineProperty(Mn,"__esModule",{value:!0});const yc=xn,$c=qn,vc=Dn,_c=Vn,wc=zn,bc=Ln,Sc=Un,Pc=Kn,Ec=Hn,kc=Gn,jc=[yc.default,$c.default,vc.default,_c.default,wc.default,bc.default,Sc.default,Pc.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Ec.default,kc.default];Mn.default=jc;var Jn={},Be={};Object.defineProperty(Be,"__esModule",{value:!0});Be.validateAdditionalItems=void 0;const Ie=K,pn=C,Tc={message:({params:{len:e}})=>(0,Ie.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Ie._)`{limit: ${e}}`},Oc={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Tc,code(e){const{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,pn.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}Vs(e,r)}};function Vs(e,t){const{gen:n,schema:r,data:s,keyword:o,it:i}=e;i.items=!0;const a=n.const("len",(0,Ie._)`${s}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,Ie._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,pn.alwaysValidSchema)(i,r)){const u=n.var("valid",(0,Ie._)`${a} <= ${t.length}`);n.if((0,Ie.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:o,dataProp:l,dataPropType:pn.Type.Num},u),i.allErrors||n.if((0,Ie.not)(u),()=>n.break())})}}Be.validateAdditionalItems=Vs;Be.default=Oc;var Wn={},Qe={};Object.defineProperty(Qe,"__esModule",{value:!0});Qe.validateTuple=void 0;const Or=K,Tt=C,Nc=U,Rc={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:n}=e;if(Array.isArray(t))return zs(e,"additionalItems",t);n.items=!0,!(0,Tt.alwaysValidSchema)(n,t)&&e.ok((0,Nc.validateArray)(e))}};function zs(e,t,n=e.schema){const{gen:r,parentSchema:s,data:o,keyword:i,it:a}=e;l(s),a.opts.unevaluated&&n.length&&a.items!==!0&&(a.items=Tt.mergeEvaluated.items(r,n.length,a.items));const c=r.name("valid"),u=r.const("len",(0,Or._)`${o}.length`);n.forEach((f,h)=>{(0,Tt.alwaysValidSchema)(a,f)||(r.if((0,Or._)`${u} > ${h}`,()=>e.subschema({keyword:i,schemaProp:h,dataProp:h},c)),e.ok(c))});function l(f){const{opts:h,errSchemaPath:g}=a,m=n.length,v=m===f.minItems&&(m===f.maxItems||f[t]===!1);if(h.strictTuples&&!v){const y=`"${i}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${g}"`;(0,Tt.checkStrictMode)(a,y,h.strictTuples)}}}Qe.validateTuple=zs;Qe.default=Rc;Object.defineProperty(Wn,"__esModule",{value:!0});const Ic=Qe,Cc={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Ic.validateTuple)(e,"items")};Wn.default=Cc;var Bn={};Object.defineProperty(Bn,"__esModule",{value:!0});const Nr=K,Ac=C,Mc=U,xc=Be,qc={message:({params:{len:e}})=>(0,Nr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Nr._)`{limit: ${e}}`},Dc={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:qc,code(e){const{schema:t,parentSchema:n,it:r}=e,{prefixItems:s}=n;r.items=!0,!(0,Ac.alwaysValidSchema)(r,t)&&(s?(0,xc.validateAdditionalItems)(e,s):e.ok((0,Mc.validateArray)(e)))}};Bn.default=Dc;var Qn={};Object.defineProperty(Qn,"__esModule",{value:!0});const pe=K,_t=C,Fc={message:({params:{min:e,max:t}})=>t===void 0?(0,pe.str)`must contain at least ${e} valid item(s)`:(0,pe.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,pe._)`{minContains: ${e}}`:(0,pe._)`{minContains: ${e}, maxContains: ${t}}`},Vc={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Fc,code(e){const{gen:t,schema:n,parentSchema:r,data:s,it:o}=e;let i,a;const{minContains:c,maxContains:u}=r;o.opts.next?(i=c===void 0?1:c,a=u):i=1;const l=t.const("len",(0,pe._)`${s}.length`);if(e.setParams({min:i,max:a}),a===void 0&&i===0){(0,_t.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&i>a){(0,_t.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,_t.alwaysValidSchema)(o,n)){let v=(0,pe._)`${l} >= ${i}`;a!==void 0&&(v=(0,pe._)`${v} && ${l} <= ${a}`),e.pass(v);return}o.items=!0;const f=t.name("valid");a===void 0&&i===1?g(f,()=>t.if(f,()=>t.break())):i===0?(t.let(f,!0),a!==void 0&&t.if((0,pe._)`${s}.length > 0`,h)):(t.let(f,!1),h()),e.result(f,()=>e.reset());function h(){const v=t.name("_valid"),y=t.let("count",0);g(v,()=>t.if(v,()=>m(y)))}function g(v,y){t.forRange("i",0,l,p=>{e.subschema({keyword:"contains",dataProp:p,dataPropType:_t.Type.Num,compositeRule:!0},v),y()})}function m(v){t.code((0,pe._)`${v}++`),a===void 0?t.if((0,pe._)`${v} >= ${i}`,()=>t.assign(f,!0).break()):(t.if((0,pe._)`${v} > ${a}`,()=>t.assign(f,!1).break()),i===1?t.assign(f,!0):t.if((0,pe._)`${v} >= ${i}`,()=>t.assign(f,!0)))}}};Qn.default=Vc;var Ls={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;const t=K,n=C,r=U;e.error={message:({params:{property:c,depsCount:u,deps:l}})=>{const f=u===1?"property":"properties";return(0,t.str)`must have ${f} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:f}})=>(0,t._)`{property: ${c},
7
+ missingProperty: ${f},
8
+ depsCount: ${u},
9
+ deps: ${l}}`};const s={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){const[u,l]=o(c);i(c,u),a(c,l)}};function o({schema:c}){const u={},l={};for(const f in c){if(f==="__proto__")continue;const h=Array.isArray(c[f])?u:l;h[f]=c[f]}return[u,l]}function i(c,u=c.schema){const{gen:l,data:f,it:h}=c;if(Object.keys(u).length===0)return;const g=l.let("missing");for(const m in u){const v=u[m];if(v.length===0)continue;const y=(0,r.propertyInData)(l,f,m,h.opts.ownProperties);c.setParams({property:m,depsCount:v.length,deps:v.join(", ")}),h.allErrors?l.if(y,()=>{for(const p of v)(0,r.checkReportMissingProp)(c,p)}):(l.if((0,t._)`${y} && (${(0,r.checkMissingProp)(c,v,g)})`),(0,r.reportMissingProp)(c,g),l.else())}}e.validatePropertyDeps=i;function a(c,u=c.schema){const{gen:l,data:f,keyword:h,it:g}=c,m=l.name("valid");for(const v in u)(0,n.alwaysValidSchema)(g,u[v])||(l.if((0,r.propertyInData)(l,f,v,g.opts.ownProperties),()=>{const y=c.subschema({keyword:h,schemaProp:v},m);c.mergeValidEvaluated(y,m)},()=>l.var(m,!0)),c.ok(m))}e.validateSchemaDeps=a,e.default=s})(Ls);var Yn={};Object.defineProperty(Yn,"__esModule",{value:!0});const Us=K,zc=C,Lc={message:"property name must be valid",params:({params:e})=>(0,Us._)`{propertyName: ${e.propertyName}}`},Uc={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Lc,code(e){const{gen:t,schema:n,data:r,it:s}=e;if((0,zc.alwaysValidSchema)(s,n))return;const o=t.name("valid");t.forIn("key",r,i=>{e.setParams({propertyName:i}),e.subschema({keyword:"propertyNames",data:i,dataTypes:["string"],propertyName:i,compositeRule:!0},o),t.if((0,Us.not)(o),()=>{e.error(!0),s.allErrors||t.break()})}),e.ok(o)}};Yn.default=Uc;var Lt={};Object.defineProperty(Lt,"__esModule",{value:!0});const wt=U,ye=K,Kc=je(),bt=C,Hc={message:"must NOT have additional properties",params:({params:e})=>(0,ye._)`{additionalProperty: ${e.additionalProperty}}`},Gc={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Hc,code(e){const{gen:t,schema:n,parentSchema:r,data:s,errsCount:o,it:i}=e;if(!o)throw new Error("ajv implementation error");const{allErrors:a,opts:c}=i;if(i.props=!0,c.removeAdditional!=="all"&&(0,bt.alwaysValidSchema)(i,n))return;const u=(0,wt.allSchemaProperties)(r.properties),l=(0,wt.allSchemaProperties)(r.patternProperties);f(),e.ok((0,ye._)`${o} === ${Kc.default.errors}`);function f(){t.forIn("key",s,y=>{!u.length&&!l.length?m(y):t.if(h(y),()=>m(y))})}function h(y){let p;if(u.length>8){const _=(0,bt.schemaRefOrVal)(i,r.properties,"properties");p=(0,wt.isOwnProperty)(t,_,y)}else u.length?p=(0,ye.or)(...u.map(_=>(0,ye._)`${y} === ${_}`)):p=ye.nil;return l.length&&(p=(0,ye.or)(p,...l.map(_=>(0,ye._)`${(0,wt.usePattern)(e,_)}.test(${y})`))),(0,ye.not)(p)}function g(y){t.code((0,ye._)`delete ${s}[${y}]`)}function m(y){if(c.removeAdditional==="all"||c.removeAdditional&&n===!1){g(y);return}if(n===!1){e.setParams({additionalProperty:y}),e.error(),a||t.break();return}if(typeof n=="object"&&!(0,bt.alwaysValidSchema)(i,n)){const p=t.name("valid");c.removeAdditional==="failing"?(v(y,p,!1),t.if((0,ye.not)(p),()=>{e.reset(),g(y)})):(v(y,p),a||t.if((0,ye.not)(p),()=>t.break()))}}function v(y,p,_){const E={keyword:"additionalProperties",dataProp:y,dataPropType:bt.Type.Str};_===!1&&Object.assign(E,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(E,p)}}};Lt.default=Gc;var Zn={};Object.defineProperty(Zn,"__esModule",{value:!0});const Jc=Dt(),Rr=U,sn=C,Ir=Lt,Wc={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,parentSchema:r,data:s,it:o}=e;o.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&Ir.default.code(new Jc.KeywordCxt(o,Ir.default,"additionalProperties"));const i=(0,Rr.allSchemaProperties)(n);for(const f of i)o.definedProperties.add(f);o.opts.unevaluated&&i.length&&o.props!==!0&&(o.props=sn.mergeEvaluated.props(t,(0,sn.toHash)(i),o.props));const a=i.filter(f=>!(0,sn.alwaysValidSchema)(o,n[f]));if(a.length===0)return;const c=t.name("valid");for(const f of a)u(f)?l(f):(t.if((0,Rr.propertyInData)(t,s,f,o.opts.ownProperties)),l(f),o.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(f),e.ok(c);function u(f){return o.opts.useDefaults&&!o.compositeRule&&n[f].default!==void 0}function l(f){e.subschema({keyword:"properties",schemaProp:f,dataProp:f},c)}}};Zn.default=Wc;var Xn={};Object.defineProperty(Xn,"__esModule",{value:!0});const Cr=U,St=K,Ar=C,Mr=C,Bc={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,data:r,parentSchema:s,it:o}=e,{opts:i}=o,a=(0,Cr.allSchemaProperties)(n),c=a.filter(v=>(0,Ar.alwaysValidSchema)(o,n[v]));if(a.length===0||c.length===a.length&&(!o.opts.unevaluated||o.props===!0))return;const u=i.strictSchema&&!i.allowMatchingProperties&&s.properties,l=t.name("valid");o.props!==!0&&!(o.props instanceof St.Name)&&(o.props=(0,Mr.evaluatedPropsToName)(t,o.props));const{props:f}=o;h();function h(){for(const v of a)u&&g(v),o.allErrors?m(v):(t.var(l,!0),m(v),t.if(l))}function g(v){for(const y in u)new RegExp(v).test(y)&&(0,Ar.checkStrictMode)(o,`property ${y} matches pattern ${v} (use allowMatchingProperties)`)}function m(v){t.forIn("key",r,y=>{t.if((0,St._)`${(0,Cr.usePattern)(e,v)}.test(${y})`,()=>{const p=c.includes(v);p||e.subschema({keyword:"patternProperties",schemaProp:v,dataProp:y,dataPropType:Mr.Type.Str},l),o.opts.unevaluated&&f!==!0?t.assign((0,St._)`${f}[${y}]`,!0):!p&&!o.allErrors&&t.if((0,St.not)(l),()=>t.break())})})}}};Xn.default=Bc;var er={};Object.defineProperty(er,"__esModule",{value:!0});const Qc=C,Yc={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){const{gen:t,schema:n,it:r}=e;if((0,Qc.alwaysValidSchema)(r,n)){e.fail();return}const s=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),e.failResult(s,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};er.default=Yc;var tr={};Object.defineProperty(tr,"__esModule",{value:!0});const Zc=U,Xc={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Zc.validateUnion,error:{message:"must match a schema in anyOf"}};tr.default=Xc;var nr={};Object.defineProperty(nr,"__esModule",{value:!0});const Ot=K,eu=C,tu={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Ot._)`{passingSchemas: ${e.passing}}`},nu={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:tu,code(e){const{gen:t,schema:n,parentSchema:r,it:s}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(s.opts.discriminator&&r.discriminator)return;const o=n,i=t.let("valid",!1),a=t.let("passing",null),c=t.name("_valid");e.setParams({passing:a}),t.block(u),e.result(i,()=>e.reset(),()=>e.error(!0));function u(){o.forEach((l,f)=>{let h;(0,eu.alwaysValidSchema)(s,l)?t.var(c,!0):h=e.subschema({keyword:"oneOf",schemaProp:f,compositeRule:!0},c),f>0&&t.if((0,Ot._)`${c} && ${i}`).assign(i,!1).assign(a,(0,Ot._)`[${a}, ${f}]`).else(),t.if(c,()=>{t.assign(i,!0),t.assign(a,f),h&&e.mergeEvaluated(h,Ot.Name)})})}}};nr.default=nu;var rr={};Object.defineProperty(rr,"__esModule",{value:!0});const ru=C,su={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:n,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");const s=t.name("valid");n.forEach((o,i)=>{if((0,ru.alwaysValidSchema)(r,o))return;const a=e.subschema({keyword:"allOf",schemaProp:i},s);e.ok(s),e.mergeEvaluated(a)})}};rr.default=su;var sr={};Object.defineProperty(sr,"__esModule",{value:!0});const At=K,Ks=C,ou={message:({params:e})=>(0,At.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,At._)`{failingKeyword: ${e.ifClause}}`},au={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:ou,code(e){const{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,Ks.checkStrictMode)(r,'"if" without "then" and "else" is ignored');const s=xr(r,"then"),o=xr(r,"else");if(!s&&!o)return;const i=t.let("valid",!0),a=t.name("_valid");if(c(),e.reset(),s&&o){const l=t.let("ifClause");e.setParams({ifClause:l}),t.if(a,u("then",l),u("else",l))}else s?t.if(a,u("then")):t.if((0,At.not)(a),u("else"));e.pass(i,()=>e.error(!0));function c(){const l=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);e.mergeEvaluated(l)}function u(l,f){return()=>{const h=e.subschema({keyword:l},a);t.assign(i,a),e.mergeValidEvaluated(h,i),f?t.assign(f,(0,At._)`${l}`):e.setParams({ifClause:l})}}}};function xr(e,t){const n=e.schema[t];return n!==void 0&&!(0,Ks.alwaysValidSchema)(e,n)}sr.default=au;var or={};Object.defineProperty(or,"__esModule",{value:!0});const iu=C,cu={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,iu.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};or.default=cu;Object.defineProperty(Jn,"__esModule",{value:!0});const uu=Be,lu=Wn,du=Qe,fu=Bn,pu=Qn,hu=Ls,mu=Yn,gu=Lt,yu=Zn,$u=Xn,vu=er,_u=tr,wu=nr,bu=rr,Su=sr,Pu=or;function Eu(e=!1){const t=[vu.default,_u.default,wu.default,bu.default,Su.default,Pu.default,mu.default,gu.default,hu.default,yu.default,$u.default];return e?t.push(lu.default,fu.default):t.push(uu.default,du.default),t.push(pu.default),t}Jn.default=Eu;var ar={},ir={};Object.defineProperty(ir,"__esModule",{value:!0});const X=K,ku={message:({schemaCode:e})=>(0,X.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,X._)`{format: ${e}}`},ju={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:ku,code(e,t){const{gen:n,data:r,$data:s,schema:o,schemaCode:i,it:a}=e,{opts:c,errSchemaPath:u,schemaEnv:l,self:f}=a;if(!c.validateFormats)return;s?h():g();function h(){const m=n.scopeValue("formats",{ref:f.formats,code:c.code.formats}),v=n.const("fDef",(0,X._)`${m}[${i}]`),y=n.let("fType"),p=n.let("format");n.if((0,X._)`typeof ${v} == "object" && !(${v} instanceof RegExp)`,()=>n.assign(y,(0,X._)`${v}.type || "string"`).assign(p,(0,X._)`${v}.validate`),()=>n.assign(y,(0,X._)`"string"`).assign(p,v)),e.fail$data((0,X.or)(_(),E()));function _(){return c.strictSchema===!1?X.nil:(0,X._)`${i} && !${p}`}function E(){const j=l.$async?(0,X._)`(${v}.async ? await ${p}(${r}) : ${p}(${r}))`:(0,X._)`${p}(${r})`,N=(0,X._)`(typeof ${p} == "function" ? ${j} : ${p}.test(${r}))`;return(0,X._)`${p} && ${p} !== true && ${y} === ${t} && !${N}`}}function g(){const m=f.formats[o];if(!m){_();return}if(m===!0)return;const[v,y,p]=E(m);v===t&&e.pass(j());function _(){if(c.strictSchema===!1){f.logger.warn(N());return}throw new Error(N());function N(){return`unknown format "${o}" ignored in schema at path "${u}"`}}function E(N){const q=N instanceof RegExp?(0,X.regexpCode)(N):c.code.formats?(0,X._)`${c.code.formats}${(0,X.getProperty)(o)}`:void 0,F=n.scopeValue("formats",{key:o,ref:N,code:q});return typeof N=="object"&&!(N instanceof RegExp)?[N.type||"string",N.validate,(0,X._)`${F}.validate`]:["string",N,F]}function j(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!l.$async)throw new Error("async format in sync schema");return(0,X._)`await ${p}(${r})`}return typeof y=="function"?(0,X._)`${p}(${r})`:(0,X._)`${p}.test(${r})`}}}};ir.default=ju;Object.defineProperty(ar,"__esModule",{value:!0});const Tu=ir,Ou=[Tu.default];ar.default=Ou;var Je={};Object.defineProperty(Je,"__esModule",{value:!0});Je.contentVocabulary=Je.metadataVocabulary=void 0;Je.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Je.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"];Object.defineProperty(In,"__esModule",{value:!0});const Nu=Cn,Ru=Mn,Iu=Jn,Cu=ar,qr=Je,Au=[Nu.default,Ru.default,(0,Iu.default)(),Cu.default,qr.metadataVocabulary,qr.contentVocabulary];In.default=Au;var cr={},Ut={};Object.defineProperty(Ut,"__esModule",{value:!0});Ut.DiscrError=void 0;var Dr;(function(e){e.Tag="tag",e.Mapping="mapping"})(Dr||(Ut.DiscrError=Dr={}));Object.defineProperty(cr,"__esModule",{value:!0});const ze=K,hn=Ut,Fr=de,Mu=We,xu=C,qu={message:({params:{discrError:e,tagName:t}})=>e===hn.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,ze._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},Du={keyword:"discriminator",type:"object",schemaType:"object",error:qu,code(e){const{gen:t,data:n,schema:r,parentSchema:s,it:o}=e,{oneOf:i}=s;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");const a=r.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!i)throw new Error("discriminator: requires oneOf keyword");const c=t.let("valid",!1),u=t.const("tag",(0,ze._)`${n}${(0,ze.getProperty)(a)}`);t.if((0,ze._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:hn.DiscrError.Tag,tag:u,tagName:a})),e.ok(c);function l(){const g=h();t.if(!1);for(const m in g)t.elseIf((0,ze._)`${u} === ${m}`),t.assign(c,f(g[m]));t.else(),e.error(!1,{discrError:hn.DiscrError.Mapping,tag:u,tagName:a}),t.endIf()}function f(g){const m=t.name("valid"),v=e.subschema({keyword:"oneOf",schemaProp:g},m);return e.mergeEvaluated(v,ze.Name),m}function h(){var g;const m={},v=p(s);let y=!0;for(let j=0;j<i.length;j++){let N=i[j];if(N!=null&&N.$ref&&!(0,xu.schemaHasRulesButRef)(N,o.self.RULES)){const F=N.$ref;if(N=Fr.resolveRef.call(o.self,o.schemaEnv.root,o.baseId,F),N instanceof Fr.SchemaEnv&&(N=N.schema),N===void 0)throw new Mu.default(o.opts.uriResolver,o.baseId,F)}const q=(g=N==null?void 0:N.properties)===null||g===void 0?void 0:g[a];if(typeof q!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);y=y&&(v||p(N)),_(q,j)}if(!y)throw new Error(`discriminator: "${a}" must be required`);return m;function p({required:j}){return Array.isArray(j)&&j.includes(a)}function _(j,N){if(j.const)E(j.const,N);else if(j.enum)for(const q of j.enum)E(q,N);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function E(j,N){if(typeof j!="string"||j in m)throw new Error(`discriminator: "${a}" values must be unique strings`);m[j]=N}}}};cr.default=Du;const Fu="http://json-schema.org/draft-07/schema#",Vu="http://json-schema.org/draft-07/schema#",zu="Core schema meta-schema",Lu={schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},Uu=["object","boolean"],Ku={$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},Hu={$schema:Fu,$id:Vu,title:zu,definitions:Lu,type:Uu,properties:Ku,default:!0};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv=void 0;const n=as,r=In,s=cr,o=Hu,i=["/properties"],a="http://json-schema.org/draft-07/schema";class c extends n.default{_addVocabularies(){super._addVocabularies(),r.default.forEach(m=>this.addVocabulary(m)),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;const m=this.opts.$data?this.$dataMetaSchema(o,i):o;this.addMetaSchema(m,a,!1),this.refs["http://json-schema.org/schema"]=a}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(a)?a:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=Dt();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=K;Object.defineProperty(t,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var f=ht;Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return f.default}});var h=We;Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return h.default}})})(an,an.exports);var Gu=an.exports;const Ju=Oo(Gu),Hs={invalid_argument:400,unauthenticated:401,permission_denied:403,not_found:404,internal:500};class Kt extends Error{constructor(t,n,r){super(n),this.name="ApiError",this.code=t,this.details=r,Object.setPrototypeOf(this,new.target.prototype)}toJSON(){const t={code:this.code,message:this.message};return this.details!==void 0&&(t.details=this.details),t}}new Ju({allErrors:!0});function Wu(e){return e.option("--log-level <level>","Log level: trace|debug|info|warn|error|fatal|silent (env APIGEN_LOG_LEVEL)").option("--log-format <format>","Log format: json|pretty (env APIGEN_LOG_FORMAT)").option("--log-file <path>","Write logs to a file instead of stderr (env APIGEN_LOG_FILE)")}function Ht(e){const t=e.opts(),n=t.logLevel??process.env.APIGEN_LOG_LEVEL??"info",r=t.logFormat??process.env.APIGEN_LOG_FORMAT,s=r==="json"||r==="pretty"?r:void 0,o=t.logFile??process.env.APIGEN_LOG_FILE;return qt({level:n,format:s,destination:o})}function Vr(e){return e.words.join("-")}function zr(e){return e.words.map(el).join("")}function Lr(e){return e.words.join("_")}function Bu(e,t={}){var h,g;const n=[e.namespace,...e.path],r=e.safe?"GET":"POST",s=((g=(h=t.http)==null?void 0:h.verb)==null?void 0:g[e.id])??r,o="/"+n.map(m=>Vr(m)).join("/"),i=n.map(m=>Lr(m)).join("_"),c=n.map(m=>Lr(m)).slice(0,-1).join("."),u=zr(n[n.length-2]??n[0]),l=zr(n[n.length-1]),f=n.map(m=>Vr(m));return{http:{verb:s,route:o},mcp:{name:i},grpc:{package:c,service:u,method:l},cli:{path:f}}}class Gs extends Error{constructor(t){const n=t.map(r=>` [${r.transport}] "${r.target}" ← ${r.ids[0]} vs ${r.ids[1]}`);super(`apigen-naming: ${t.length} projection collision(s) detected:
10
+ ${n.join(`
11
+ `)}`),this.name="CollisionDetectedError",this.collisions=t}}function Qu(e,t={}){const n=new Map,r=new Map,s=new Map,o=new Map,i=[];for(const a of e){const c=Bu(a,t),u=`${c.http.verb} ${c.http.route}`,l=n.get(u);l!==void 0&&l!==a.id?i.push({transport:"http",target:u,ids:[l,a.id]}):n.set(u,a.id);const f=r.get(c.mcp.name);f!==void 0&&f!==a.id?i.push({transport:"mcp",target:c.mcp.name,ids:[f,a.id]}):r.set(c.mcp.name,a.id);const h=`${c.grpc.package}.${c.grpc.service}/${c.grpc.method}`,g=s.get(h);g!==void 0&&g!==a.id?i.push({transport:"grpc",target:h,ids:[g,a.id]}):s.set(h,a.id);const m=c.cli.path.join(" "),v=o.get(m);v!==void 0&&v!==a.id?i.push({transport:"cli",target:m,ids:[v,a.id]}):o.set(m,a.id)}if(i.length>0)throw new Gs(i)}function gt(e,t){return`x-${e}-${t}`}function Yu(e,t){return`--${e}-${t}`}function Zu(e,t){const n=r=>r.toUpperCase().replace(/-/g,"_");return e==="adhd"?`APIGEN_${n(t)}`:`APIGEN_${n(e)}_${n(t)}`}const Xu=gt;function el(e){return e.length===0?e:e[0].toUpperCase()+e.slice(1)}function tl(e){const t=A.extname(e).toLowerCase();if(t===".ts"||t===".tsx"||t===".mts"||t===".cts")return"ts";throw new Error(`apigen-orchestrator: unsupported source extension "${t}" for file "${e}". Currently supported: .ts .tsx .mts .cts`)}function Js(e){var n;const t={};for(const r of e){const s=r.indexOf("=");if(s===-1)continue;const o=r.slice(0,s),i=r.slice(s+1),a=/^http\.verb\.(.+)$/.exec(o);if(a){const c=a[1];t.http??(t.http={}),(n=t.http).verb??(n.verb={}),t.http.verb[c]=i}}return t}function Ws(e,t){var o,i;const n=e??A.join(process.cwd(),"apigen.config.json");let r={};if(V.existsSync(n))try{r=JSON.parse(V.readFileSync(n,"utf8"))}catch{}const s={...r};return(o=t.http)!=null&&o.verb&&(s.http={...s.http,verb:{...(i=s.http)==null?void 0:i.verb,...t.http.verb}}),s}async function nl(e,t){const n=tl(e.file);if(n==="ts"){const r=He(e.file,e.tsconfig),s=e.namespace??Mt(e.file,{tsconfig:e.tsconfig});t==null||t.info(`extracting ${e.file} (host: ts, ns: ${s})`);const o=await bo({sourceFile:e.file,namespace:s,tsconfig:r});return t==null||t.info(`extracted ${o.length} operations from ${A.basename(e.file)}`),t==null||t.debug({ops:o.map(i=>i.id)},"operation ids"),o}throw new Error(`apigen-orchestrator: host "${n}" extractor not implemented`)}function rl(e){return e.flat()}async function Bs(e){const{sources:t,overrides:n={},logger:r}=e;if(t.length===0)throw new Error("apigen-orchestrator: at least one source must be provided");const s=await Promise.all(t.map(a=>nl(a,r))),o=rl(s);r==null||r.info(`merged ${o.length} total operations from ${t.length} source(s)`);try{Qu(o,n)}catch(a){throw a instanceof Gs&&(r==null||r.error({collisions:a.collisions},a.message)),a}const i=new Map;for(const a of t){const c=a.namespace??Mt(a.file,{tsconfig:a.tsconfig}),u=He(a.file,a.tsconfig);r==null||r.info(`composing schemas for ${A.basename(a.file)}`);const l=await Zr({sourceFile:a.file,exportMode:a.exportMode??{type:"named"},namespace:c,tsconfig:u}),f=Xr(l,[],{});i.set(c,{id:c,schemas:f,importPath:a.file})}return{operations:o,packageSchemas:i}}async function sl(e,t,n,r={}){const s=await Bs(e),i={packages:Array.from(s.packageSchemas.values()).map(c=>({id:c.id,schemas:c.schemas,importPath:c.importPath})),outputDir:n,options:r,logger:e.logger},a=await t.generate(i);return{descriptor:s,pluginOutput:a}}async function ol(e,t,n,r,s={}){if(!t.run)throw new Error(`Plugin "${t.id}" does not support run mode`);const o=await Bs(e),a={packages:await Promise.all(Array.from(o.packageSchemas.values()).map(async c=>{const u=e.sources.find(h=>h.file===c.importPath);if(!u)throw new Error(`apigen-orchestrator: internal error — no source entry for ${c.importPath}`);const{fns:l,createClient:f}=await n(u);return{id:c.id,schemas:c.schemas,importPath:c.importPath,fns:l,createClient:f}})),outputDir:"",options:s,signal:r,logger:e.logger};await t.run(a)}const al={mcp:["@modelcontextprotocol/sdk","@adhd/apigen-runtime"],cli:["commander","@adhd/apigen-runtime"]};function il(e,t){const n={},r=e?Qs(e):new Map;for(const s of t){let o="*";try{if(s.startsWith("@adhd/")){const i=r.get(s),a=i&&A.join(A.dirname(i),"package.json");a&&V.existsSync(a)&&(o=`^${JSON.parse(V.readFileSync(a,"utf8")).version}`)}else if(e){const i=A.join(e,"node_modules",...s.split("/"),"package.json");V.existsSync(i)&&(o=`^${JSON.parse(V.readFileSync(i,"utf8")).version}`)}}catch{o="*"}n[s]=o}return n}function Ur(e){let t=e;for(;;){if(V.existsSync(A.join(t,"node_modules"))&&V.existsSync(A.join(t,"tsconfig.base.json")))return t;const n=A.dirname(t);if(n===t)return;t=n}}function cl(e){var o;const t=A.join(e,"tsconfig.base.json");let n;try{n=JSON.parse(V.readFileSync(t,"utf8"))}catch{return{}}const r=((o=n.compilerOptions)==null?void 0:o.paths)??{},s={};for(const[i,a]of Object.entries(r))s[i]=a.map(c=>A.resolve(e,c));return s}function Kr(e,t){if(V.existsSync(t)||!V.existsSync(e))return!1;try{return V.symlinkSync(e,t,"dir"),!0}catch{return!1}}function Qs(e){var s;const t=new Map,n=A.join(e,"tsconfig.base.json");let r;try{r=JSON.parse(V.readFileSync(n,"utf8"))}catch{return t}for(const[o,i]of Object.entries(((s=r.compilerOptions)==null?void 0:s.paths)??{})){if(!o.startsWith("@adhd/"))continue;const a=A.resolve(e,i[0]),c=A.dirname(a);V.existsSync(c)&&t.set(o,c)}return t}function ul(e,t){const n=A.join(e,"node_modules");if(V.existsSync(n))return!1;const r=A.join(t,"node_modules");if(!V.existsSync(r))return!1;V.mkdirSync(n,{recursive:!0});for(const s of V.readdirSync(r,{withFileTypes:!0})){const o=s.name;if(!(o===".bin"||o===".cache"||o==="@adhd"))if(o.startsWith("@")){const i=A.join(r,o),a=A.join(n,o);V.mkdirSync(a,{recursive:!0});for(const c of V.readdirSync(i,{withFileTypes:!0}))Kr(A.join(i,c.name),A.join(a,c.name))}else Kr(A.join(r,o),A.join(n,o))}for(const[s,o]of Qs(t)){const i=A.join(n,...s.split("/"));V.mkdirSync(i,{recursive:!0}),V.cpSync(o,A.join(i,"src"),{recursive:!0}),V.writeFileSync(A.join(i,"package.json"),JSON.stringify({name:s,version:"0.0.0",type:"module",main:"./src/index.ts",exports:{".":"./src/index.ts"}},null,2))}return!0}function Hr(e,t){return V.existsSync(e)?!1:(V.writeFileSync(e,t),!0)}function Gr(e,t,n={}){const r=[],s=Ur(e)??Ur(__dirname),o=il(s,al[t]??[]),i=A.join(e,"package.json");Hr(i,JSON.stringify({name:"apigen-generated-output",version:"0.0.0",private:!0,type:"module",dependencies:o},null,2)+`
12
+ `)&&r.push("package.json");const a=A.join(e,"tsconfig.json"),c=n.linkWorkspace&&s?cl(s):{};return Hr(a,JSON.stringify({compilerOptions:{target:"ES2020",module:"esnext",moduleResolution:"bundler",esModuleInterop:!0,strict:!0,skipLibCheck:!0,baseUrl:".",paths:c}},null,2)+`
13
+ `)&&r.push("tsconfig.json"),n.linkWorkspace&&s&&ul(e,s)&&r.push("node_modules"),r}function ll(e){return Object.fromEntries(e.map(t=>{const n=t.indexOf("=");return[t.slice(0,n),t.slice(n+1)]}))}function dl(e){return e==="default"?{type:"default"}:e?{type:"named-object",name:e}:{type:"named"}}function fl(e,t){e.command("generate").requiredOption("--source <path>","Path to TypeScript source file").requiredOption("--type <plugin-id>","Output target: mcp | api-fastify | api-express | cli | jsonschema").requiredOption("--out-dir <path>","Output directory").option("--export <mode>",'Export mode: "default" | "<named-object-name>" | omit for named exports').option("--tsconfig <path>","Explicit tsconfig.json; default resolves the nearest config or a builtin one").option("--namespace <name>","Package namespace/id (default: tsconfig folder name, else source folder)").option("--opt <key=value>","Plugin option (repeatable). Projection overrides: http.verb.<id>=GET",(n,r)=>[...r,n],[]).option("--use <plugin>","Layer/mount/envelope plugin to activate (repeatable; accepts package specifier or local path)",(n,r)=>[...r,n],[]).option("--config <path>","Path to apigen.config.json projection-override file (Tenet 1)").option("--link-workspace","PRE-PUBLISH ONLY: also emit a workspace-linked node_modules + tsconfig paths so the output runs in place before @adhd/apigen-* are published (a published consumer runs `npm install` instead)").option("--v2","Use the v2 unified orchestrator path (detect→extract→merge→gen)").action(async n=>{const r=t[n.type];if(!r)throw new Error(`Unknown --type: ${n.type}. Available: ${Object.keys(t).join(", ")}`);const s=Ht(e),o=dl(n.export),i=A.resolve(n.source),a=A.resolve(n.outDir),c=n.opt,u=Js(c),l=Ws(n.config,u),f=ll(c);if(n.v2){const{pluginOutput:p}=await sl({sources:[{file:i,exportMode:o,namespace:n.namespace,tsconfig:n.tsconfig}],usePlugins:n.use,overrides:l,logger:s},r,a,f);V.mkdirSync(a,{recursive:!0});for(const E of p.files){const j=A.join(a,E.path);V.mkdirSync(A.dirname(j),{recursive:!0}),V.writeFileSync(j,E.content)}const _=Gr(a,r.id,{linkWorkspace:n.linkWorkspace});_.length>0&&s.info(`scaffolded ${_.join(", ")} in ${a}`),s.info(`wrote ${p.files.length} files to ${a}`);return}const{schemas:h}=await xt({sourceFile:i,exportMode:o,tsconfig:n.tsconfig,logger:s}),m={packages:[{id:Mt(i,{namespace:n.namespace,tsconfig:n.tsconfig}),schemas:h,importPath:i}],outputDir:a,options:f,logger:s},v=await r.generate(m);V.mkdirSync(a,{recursive:!0});for(const p of v.files){const _=A.join(a,p.path);V.mkdirSync(A.dirname(_),{recursive:!0}),V.writeFileSync(_,p.content)}const y=Gr(a,r.id,{linkWorkspace:n.linkWorkspace});y.length>0&&s.info(`scaffolded ${y.join(", ")} in ${a}`),s.info(`wrote ${v.files.length} files to ${a}`)})}function Ys(e){const{packagesDir:t,includeTags:n=[],excludeTags:r=[]}=e,s=V.readdirSync(t,{withFileTypes:!0}).filter(i=>i.isDirectory()),o=[];for(const i of s){const a=A.join(t,i.name,"package.json");if(!V.existsSync(a))continue;const c=JSON.parse(V.readFileSync(a,"utf8")),u=c.tags??c.keywords??[];n.length&&!n.every(l=>u.includes(l))||r.some(l=>u.includes(l))||o.push({id:i.name,dir:A.join(t,i.name),importPath:c.name??i.name,tags:u})}return o.sort((i,a)=>i.id.localeCompare(a.id))}function pl(e){return Object.fromEntries(e.map(t=>{const n=t.indexOf("=");return[t.slice(0,n),t.slice(n+1)]}))}function hl(e,t){e.command("generate-registry").requiredOption("--packages-dir <path>","Directory containing package subdirectories").requiredOption("--type <plugin-id>","Output target: mcp | api-fastify | api-express | cli | jsonschema").requiredOption("--out-dir <path>","Output directory").option("--tag <tag>","Include only packages with this tag (repeatable)",(n,r)=>[...r,n],[]).option("--exclude-tag <tag>","Exclude packages with this tag (repeatable)",(n,r)=>[...r,n],[]).option("--tsconfig <path>","Explicit tsconfig.json; default resolves the nearest config or a builtin one").option("--opt <key=value>","Plugin option (repeatable)",(n,r)=>[...r,n],[]).action(async n=>{const r=t[n.type];if(!r)throw new Error(`Unknown --type: ${n.type}. Available: ${Object.keys(t).join(", ")}`);const s=Ht(e),o=pl(n.opt),i=A.resolve(n.packagesDir),a=A.resolve(n.outDir),c=Ys({packagesDir:i,includeTags:n.tag,excludeTags:n.excludeTag}),u=[];for(const h of c){const g=ml(h.dir);if(!g)continue;const{schemas:m}=await xt({sourceFile:g,tsconfig:n.tsconfig,logger:s});u.push({id:h.id,schemas:m,importPath:h.importPath})}const l={packages:u,outputDir:a,options:o,logger:s},f=await r.generate(l);V.mkdirSync(a,{recursive:!0});for(const h of f.files){const g=A.join(a,h.path);V.mkdirSync(A.dirname(g),{recursive:!0}),V.writeFileSync(g,h.content)}s.info(`wrote ${f.files.length} files to ${a}`)})}function ml(e){const t=["index.ts","src/index.ts","lib/index.ts"];for(const n of t){const r=A.join(e,n);if(V.existsSync(r))return r}}async function mn(e,t){const n=lo.pathToFileURL(e).href;let r;try{const{register:s}=await import("tsx/esm/api");r=s(t?{tsconfig:t}:void 0)}catch{}try{return await import(n)}finally{await(r==null?void 0:r())}}function gl(e){return Object.fromEntries(e.map(t=>{const n=t.indexOf("=");return[t.slice(0,n),t.slice(n+1)]}))}function yl(e,t){e.command("run").requiredOption("--source <path>","Path to TypeScript source file").requiredOption("--type <plugin-id>","Output target").option("--export <mode>",'Export mode: "default" | "<named-object-name>" | omit for named exports').option("--tsconfig <path>","Explicit tsconfig.json; default resolves the nearest config or a builtin one").option("--namespace <name>","Package namespace/id (default: tsconfig folder name, else source folder)").option("--opt <key=value>","Plugin option (repeatable). Projection overrides: http.verb.<id>=GET",(n,r)=>[...r,n],[]).option("--use <plugin>","Layer/mount/envelope plugin to activate (repeatable; accepts package specifier or local path)",(n,r)=>[...r,n],[]).option("--config <path>","Path to apigen.config.json projection-override file (Tenet 1)").option("--v2","Use the v2 unified orchestrator path (detect→extract→merge→run)").action(async n=>{const r=t[n.type];if(!(r!=null&&r.run))throw new Error(`Plugin ${n.type} does not support run mode`);let s;n.export==="default"?s={type:"default"}:n.export?s={type:"named-object",name:n.export}:s={type:"named"};const o=Ht(e),i=n.opt,a=gl(i),c=A.resolve(n.source),u=new AbortController;if(process.on("SIGINT",()=>u.abort()),process.on("SIGTERM",()=>u.abort()),n.v2){const p=Js(i),_=Ws(n.config,p),E={file:c,exportMode:s,namespace:n.namespace,tsconfig:n.tsconfig};await ol({sources:[E],usePlugins:n.use,overrides:_,logger:o},r,async j=>{const N=He(j.file,j.tsconfig),q=await mn(j.file,N);return{fns:on(q),createClient:async B=>B}},u.signal,a);return}const l=He(c,n.tsconfig),{schemas:f,createClient:h}=await xt({sourceFile:c,exportMode:s,tsconfig:l,logger:o}),g=await mn(c,l),m=on(g),y={packages:[{id:Mt(c,{namespace:n.namespace,tsconfig:n.tsconfig}),schemas:f,importPath:c,fns:m,createClient:h}],outputDir:"",options:a,signal:u.signal,logger:o};await r.run(y)})}function $l(e){return Object.fromEntries(e.map(t=>{const n=t.indexOf("=");return[t.slice(0,n),t.slice(n+1)]}))}function vl(e){const t=["index.ts","src/index.ts","lib/index.ts"];for(const n of t){const r=A.join(e,n);if(V.existsSync(r))return r}}function _l(e,t){e.command("run-registry").requiredOption("--packages-dir <path>","Directory containing package subdirectories").requiredOption("--type <plugin-id>","Output target").option("--tag <tag>","Include only packages with this tag (repeatable)",(n,r)=>[...r,n],[]).option("--exclude-tag <tag>","Exclude packages with this tag (repeatable)",(n,r)=>[...r,n],[]).option("--tsconfig <path>","Explicit tsconfig.json; default resolves the nearest config or a builtin one").option("--opt <key=value>","Plugin option (repeatable)",(n,r)=>[...r,n],[]).action(async n=>{const r=t[n.type];if(!(r!=null&&r.run))throw new Error(`Plugin ${n.type} does not support run mode`);const s=Ht(e),o=$l(n.opt),i=A.resolve(n.packagesDir),a=Ys({packagesDir:i,includeTags:n.tag,excludeTags:n.excludeTag}),c=[];for(const f of a){const h=vl(f.dir);if(!h)continue;const g=He(h,n.tsconfig),{schemas:m,createClient:v}=await xt({sourceFile:h,tsconfig:g,logger:s}),y=await mn(h,g),p=on(y);c.push({id:f.id,schemas:m,importPath:f.importPath,fns:p,createClient:v})}const u=new AbortController;process.on("SIGINT",()=>u.abort()),process.on("SIGTERM",()=>u.abort());const l={packages:c,outputDir:"",options:o,signal:u.signal,logger:s};await r.run(l)})}function wl(){return`// Auto-generated by @adhd/apigen-cli — do not edit
14
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js'
15
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
16
+ import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js'
17
+ import { dispatch } from '@adhd/apigen-runtime'
18
+ import { toolMetas, groupFns, groupCreateClient } from './index.js'
19
+
20
+ // §9.1 — extract envelope from MCP _meta["x-<pluginId>-<field>"].
21
+ // x-apigen-envelope (field→pluginId map) is carried on each schema entry.
22
+ function extractEnvelope(schema: Record<string, unknown>, meta: Record<string, unknown>): Record<string, unknown> {
23
+ const inputProps = ((schema['input'] as any)?.['properties'] as Record<string, unknown>) ?? {}
24
+ const envMeta = schema['x-apigen-envelope'] as Record<string, string> | undefined
25
+ const envelope: Record<string, unknown> = {}
26
+ for (const field of Object.keys(inputProps)) {
27
+ if (field === 'data') continue
28
+ const pluginId = envMeta?.[field] ?? 'adhd'
29
+ const key = \`x-\${pluginId}-\${field}\`
30
+ if (meta[key] !== undefined) envelope[field] = meta[key]
31
+ }
32
+ return envelope
33
+ }
34
+
35
+ const server = new Server({ name: 'apigen-mcp', version: '1.0.0' }, { capabilities: { tools: {} } })
36
+
37
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
38
+ tools: Object.entries(toolMetas).map(([name, meta]) => ({
39
+ name,
40
+ description: name,
41
+ inputSchema: (meta.schema as any).input,
42
+ })),
43
+ }))
44
+
45
+ server.setRequestHandler(CallToolRequestSchema, async (req) => {
46
+ const { name, arguments: args = {} } = req.params
47
+ const meta = toolMetas[name]
48
+ if (!meta) throw new Error(\`Unknown tool: \${name}\`)
49
+ // §9.1: envelope from _meta, domain args from data
50
+ const mcpMeta = (args as any)['_meta'] as Record<string, unknown> | undefined ?? {}
51
+ const envelope = extractEnvelope(meta.schema as Record<string, unknown>, mcpMeta)
52
+ const result = await dispatch(
53
+ groupFns[meta.group],
54
+ groupCreateClient[meta.group],
55
+ meta.schema as any,
56
+ name,
57
+ envelope,
58
+ ((args as any)['data'] ?? {}) as Record<string, unknown>,
59
+ )
60
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] }
61
+ })
62
+
63
+ const transport = new StdioServerTransport()
64
+ server.connect(transport)
65
+ `}function bl(e,t){return`// Auto-generated by @adhd/apigen-cli — do not edit
66
+ import { createServer } from 'node:http'
67
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js'
68
+ ${e==="sse"?"import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js'":"import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js'"}
69
+ import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js'
70
+ import { dispatch } from '@adhd/apigen-runtime'
71
+ import { toolMetas, groupFns, groupCreateClient } from './index.js'
72
+
73
+ // §9.1 — extract envelope from MCP _meta["x-<pluginId>-<field>"].
74
+ // x-apigen-envelope (field→pluginId map) is carried on each schema entry.
75
+ function extractEnvelope(schema: Record<string, unknown>, meta: Record<string, unknown>): Record<string, unknown> {
76
+ const inputProps = ((schema['input'] as any)?.['properties'] as Record<string, unknown>) ?? {}
77
+ const envMeta = schema['x-apigen-envelope'] as Record<string, string> | undefined
78
+ const envelope: Record<string, unknown> = {}
79
+ for (const field of Object.keys(inputProps)) {
80
+ if (field === 'data') continue
81
+ const pluginId = envMeta?.[field] ?? 'adhd'
82
+ const key = \`x-\${pluginId}-\${field}\`
83
+ if (meta[key] !== undefined) envelope[field] = meta[key]
84
+ }
85
+ return envelope
86
+ }
87
+
88
+ const mcpServer = new Server({ name: 'apigen-mcp', version: '1.0.0' }, { capabilities: { tools: {} } })
89
+
90
+ mcpServer.setRequestHandler(ListToolsRequestSchema, async () => ({
91
+ tools: Object.entries(toolMetas).map(([name, meta]) => ({
92
+ name,
93
+ description: name,
94
+ inputSchema: (meta.schema as any).input,
95
+ })),
96
+ }))
97
+
98
+ mcpServer.setRequestHandler(CallToolRequestSchema, async (req) => {
99
+ const { name, arguments: args = {} } = req.params
100
+ const meta = toolMetas[name]
101
+ if (!meta) throw new Error(\`Unknown tool: \${name}\`)
102
+ // §9.1: envelope from _meta, domain args from data
103
+ const mcpMeta = (args as any)['_meta'] as Record<string, unknown> | undefined ?? {}
104
+ const envelope = extractEnvelope(meta.schema as Record<string, unknown>, mcpMeta)
105
+ const result = await dispatch(
106
+ groupFns[meta.group],
107
+ groupCreateClient[meta.group],
108
+ meta.schema as any,
109
+ name,
110
+ envelope,
111
+ ((args as any)['data'] ?? {}) as Record<string, unknown>,
112
+ )
113
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] }
114
+ })
115
+
116
+ const mcpTransport = new ${e==="sse"?"SSEServerTransport":"StreamableHTTPServerTransport"}({ sessionIdGenerator: undefined } as any)
117
+ const httpServer = createServer((req, res) => (mcpTransport as any).handleRequest(req, res))
118
+ httpServer.listen(${t}, () => console.error('MCP ${e} server on port ${t}'))
119
+ `}function Sl(e,t){const n=["// Auto-generated by @adhd/apigen-cli — do not edit","import { buildFnTable } from '@adhd/apigen-runtime'"];for(const r of e)n.push(`import * as ${r.id}_ns from '${r.importPath}'`),n.push(`const ${r.id}_fns = buildFnTable(${r.id}_ns as Record<string, unknown>)`);n.push(""),n.push("export const toolMetas: Record<string, { group: string; schema: unknown }> = {");for(const r of e)for(const[s,o]of Object.entries(r.schemas)){const i=t[s]??s;n.push(` ${s}: { group: '${r.id}', schema: ${JSON.stringify(o)} }, // ${i}`)}n.push("}"),n.push(""),n.push("export const groupFns: Record<string, Record<string, (...args: unknown[]) => unknown>> = {");for(const r of e)n.push(` '${r.id}': ${r.id}_fns as Record<string, (...args: unknown[]) => unknown>,`);n.push("}"),n.push(""),n.push("export const groupCreateClient: Record<string, ((e: Record<string, unknown>) => Promise<unknown>) | undefined> = {");for(const r of e)n.push(` '${r.id}': undefined, // injected at startup if createClient provided`);return n.push("}"),n.join(`
120
+ `)}function Pl(e){const t=e.options.transport??"stdio",n=e.options.port??3e3,r=e.options.toolDescriptions??{},s=Sl(e.packages,r),o=t==="stdio"?wl():bl(t,n);return{files:[{path:"index.ts",content:s},{path:"server.ts",content:o}]}}function El(e,t){var o;const n=((o=e.input)==null?void 0:o.properties)??{},r=e["x-apigen-envelope"],s={};for(const i of Object.keys(n)){if(i==="data")continue;const a=(r==null?void 0:r[i])??"adhd",c=Xu(a,i),u=t[c];u!==void 0&&(s[i]=u)}return s}function Jr(e,t){const n=e.options.toolDescriptions??{},r=new fo.Server({name:"apigen-mcp",version:"1.0.0"},{capabilities:{tools:{}}}),s={};for(const o of e.packages)for(const i of Object.keys(o.schemas))s[i]={group:o.id,schema:o.schemas[i]};return r.setRequestHandler(pr.ListToolsRequestSchema,async()=>({tools:Object.entries(s).map(([o,i])=>({name:o,description:n[o]??o,inputSchema:i.schema.input}))})),r.setRequestHandler(pr.CallToolRequestSchema,async o=>{const{name:i,arguments:a={}}=o.params,c=a._meta??{},u=s[i];if(!u)throw new Error(`Unknown tool: ${i}`);const l=e.packages.find(v=>v.id===u.group),f=u.schema,h=El(f,c),g=a.data??{},m=Date.now();try{const v=await dt(l.fns,l.createClient,u.schema,i,h,g);return t.info({tool:i,ms:Date.now()-m},`→ ${i}`),{content:[{type:"text",text:JSON.stringify(v)}]}}catch(v){throw t.error({tool:i,ms:Date.now()-m,err:v},`✗ ${i}`),v}}),{server:r,toolMetas:s}}async function kl(e){const t=e.options.transport??"stdio",n=e.options.port??3e3,r=e.options.host??"127.0.0.1",s=e.logger??qt();s.info(`mcp server starting (${t})`);const{server:o,toolMetas:i}=Jr(e,s),a=Object.keys(i);s.info({tools:a},`${a.length} tools available`);for(const[u,l]of Object.entries(i)){const{params:f,text:h}=yn(l.schema);s.info({tool:u,args:{data:f}},`tool: ${u} args { data: {${h?` ${h} `:""}} }`)}if(t==="stdio"){const u=new po.StdioServerTransport;return await o.connect(u),s.info("stdio transport ready"),new Promise(l=>{e.signal&&e.signal.addEventListener("abort",()=>{s.info("mcp server shutting down"),l()})})}if(t==="sse"){const u=new Map,l=fr.createServer(async(f,h)=>{try{const g=f.url??"";if(f.method==="GET"&&g==="/sse"){const m=new ho.SSEServerTransport("/messages",h);u.set(m.sessionId,m),m.onclose=()=>u.delete(m.sessionId),await o.connect(m)}else if(f.method==="POST"&&g.startsWith("/messages")){const m=new URLSearchParams(g.split("?")[1]??"").get("sessionId"),v=m?u.get(m):void 0;if(!v){h.writeHead(404),h.end("Session not found");return}await v.handlePostMessage(f,h)}else h.writeHead(404),h.end("Not found")}catch(g){s.error({err:g},"sse request handler error"),h.headersSent||h.writeHead(500),h.writableEnded||h.end("Internal Server Error")}});return l.listen(n,r,()=>{s.info({host:r,port:n},`listening on http://${r}:${n}`)}),new Promise(f=>{e.signal&&e.signal.addEventListener("abort",()=>{s.info("mcp server shutting down"),l.close(()=>f())})})}const c=fr.createServer(async(u,l)=>{const{server:f}=Jr(e,s),h=new mo.StreamableHTTPServerTransport({sessionIdGenerator:void 0});await f.connect(h),await h.handleRequest(u,l)});return c.listen(n,r,()=>{s.info({host:r,port:n},`listening on http://${r}:${n}`)}),new Promise(u=>{e.signal&&e.signal.addEventListener("abort",()=>{s.info("mcp server shutting down"),c.close(()=>u())})})}const jl={id:"mcp",description:"Expose functions as MCP tools (stdio, SSE, or streaming-HTTP transport)",optionsSchema:{type:"object",properties:{transport:{type:"string",enum:["stdio","sse","streaming-http"]},port:{type:"number"},toolDescriptions:{type:"object",additionalProperties:{type:"string"}}}},generate(e){return Pl(e)},run(e){return kl(e)}},Tl={id:"jsonschema",description:"Emit one JSON Schema file per function per package",optionsSchema:{type:"object",properties:{pretty:{type:"boolean",description:"Pretty-print JSON (default: true)"}}},generate(e){const t=e.options.pretty!==!1,n=[];for(const r of e.packages)for(const[s,o]of Object.entries(r.schemas))n.push({path:A.join(r.id,`${s}.json`),content:JSON.stringify(o,null,t?2:0)});return{files:n}}};function Ol(e,t,n){var s,o;const r=(o=(s=n.http)==null?void 0:s.verb)==null?void 0:o[e];return r==="GET"||r==="POST"?r:t["x-apigen-safe"]?"GET":"POST"}function Nl(e){var s;const t=((s=e.input)==null?void 0:s.properties)??{},n=e["x-apigen-envelope"],r={};for(const o of Object.keys(t)){if(o==="data")continue;const i=(n==null?void 0:n[o])??"adhd";r[o]=gt(i,o)}return r}function Rl(e){const t=e.options.port??3e3,n=e.options.routePrefix??"",r=e.options.projection??{},s=["// Auto-generated by @adhd/apigen-cli — do not edit","import Fastify from 'fastify'","import { dispatch, buildFnTable } from '@adhd/apigen-runtime'"];for(const o of e.packages)s.push(`import * as ${o.id}_ns from '${o.importPath}'`),s.push(`const ${o.id}_fns = buildFnTable(${o.id}_ns as Record<string, unknown>)`);s.push(""),s.push(`const schemas: Record<string, unknown> = ${JSON.stringify(Object.fromEntries(e.packages.flatMap(o=>Object.entries(o.schemas).map(([i,a])=>[`${o.id}:${i}`,{schema:a,pkgId:o.id}]))),null,2)}`),s.push(""),s.push("const app = Fastify()"),s.push("");for(const o of e.packages)for(const[i,a]of Object.entries(o.schemas)){const c=`${n}/${o.id}/${i}`,u=Ol(`${o.id}:${i}`,a,r),l=Nl(a),f=Object.entries(l);if(u==="GET"){if(s.push(`app.get('${c}', async (req) => {`),s.push(" const query = req.query as Record<string, unknown>"),f.length>0){const h=f.map(([g,m])=>`'${g}': (req.headers as Record<string, unknown>)['${m}']`).join(", ");s.push(` const envelope: Record<string, unknown> = { ${h} }`)}else s.push(" const envelope: Record<string, unknown> = {}");s.push(` return dispatch(${o.id}_fns as any, undefined, schemas['${o.id}:${i}']['schema'] as any, '${i}', envelope, query as any)`),s.push("})")}else{if(s.push(`app.post('${c}', async (req) => {`),s.push(" const { data = {} } = req.body as Record<string, unknown>"),f.length>0){const h=f.map(([g,m])=>`'${g}': (req.headers as Record<string, unknown>)['${m}']`).join(", ");s.push(` const envelope: Record<string, unknown> = { ${h} }`)}else s.push(" const envelope: Record<string, unknown> = {}");s.push(` return dispatch(${o.id}_fns as any, undefined, schemas['${o.id}:${i}']['schema'] as any, '${i}', envelope, data as any)`),s.push("})")}}return s.push(""),s.push(`app.listen({ port: ${t} })`),{files:[{path:"routes.ts",content:s.join(`
121
+ `)}]}}function Il(e,t,n){var s,o;const r=(o=(s=n.http)==null?void 0:s.verb)==null?void 0:o[e];return r==="GET"||r==="POST"?r:t["x-apigen-safe"]?"GET":"POST"}function Wr(e,t){var o;const n=((o=e.input)==null?void 0:o.properties)??{},r=e["x-apigen-envelope"],s={};for(const i of Object.keys(n)){if(i==="data")continue;const a=(r==null?void 0:r[i])??"adhd",c=gt(a,i),u=t[c];u!==void 0&&(s[i]=u)}return s}function Cl(e){return e instanceof Kt?Hs[e.code]??500:500}async function Al(e){const t=e.options.port??3e3,n=e.options.host??"127.0.0.1",r=e.options.routePrefix??"",s=e.options.projection??{},o=e.logger??qt(),i=go({logger:o});i.setErrorHandler((c,u,l)=>{const f=Cl(c),h=c instanceof Kt?c.toJSON():{code:"internal",message:c.message??"Internal error"};l.status(f).send(h)});const a=[];for(const c of e.packages)for(const[u,l]of Object.entries(c.schemas)){const f=`${r}/${c.id}/${u}`,h=Il(`${c.id}:${u}`,l,s),{params:g,text:m}=yn(l);a.push({method:h,route:f,text:m,params:g}),h==="GET"?i.get(f,async v=>{const y=Wr(l,v.headers);return dt(c.fns,c.createClient,l,u,y,v.query)}):i.post(f,async v=>{const{data:y={}}=v.body,p=Wr(l,v.headers);return dt(c.fns,c.createClient,l,u,p,y)})}await i.listen({port:t,host:n}),o.info({host:n,port:t},`listening on http://${n}:${t}`);for(const c of a)o.info({method:c.method,route:c.route,body:{data:c.params}},`${c.method} ${c.route} body { data: {${c.text?` ${c.text} `:""}} }`);return new Promise(c=>{e.signal&&e.signal.addEventListener("abort",async()=>{await i.close(),c()})})}const Ml={id:"api-fastify",description:"Expose functions as Fastify HTTP POST routes",optionsSchema:{type:"object",properties:{port:{type:"number",default:3e3},routePrefix:{type:"string",default:""}}},generate(e){return Rl(e)},run(e){return Al(e)}};function xl(e,t,n){var s,o;const r=(o=(s=n.http)==null?void 0:s.verb)==null?void 0:o[e];return r==="GET"||r==="POST"?r:t["x-apigen-safe"]?"GET":"POST"}function ql(e){var s;const t=((s=e.input)==null?void 0:s.properties)??{},n=e["x-apigen-envelope"],r={};for(const o of Object.keys(t)){if(o==="data")continue;const i=(n==null?void 0:n[o])??"adhd";r[o]=gt(i,o)}return r}function Dl(e){const t=e.options.port??3e3,n=e.options.routePrefix??"",r=e.options.projection??{},s=["// Auto-generated by @adhd/apigen-cli — do not edit","import express, { Router } from 'express'","import { dispatch, buildFnTable } from '@adhd/apigen-runtime'"];for(const o of e.packages)s.push(`import * as ${o.id}_ns from '${o.importPath}'`),s.push(`const ${o.id}_fns = buildFnTable(${o.id}_ns as Record<string, unknown>)`);s.push(""),s.push(`const schemas: Record<string, unknown> = ${JSON.stringify(Object.fromEntries(e.packages.flatMap(o=>Object.entries(o.schemas).map(([i,a])=>[`${o.id}:${i}`,{schema:a,pkgId:o.id}]))),null,2)}`),s.push(""),s.push("const app = express()"),s.push("app.use(express.json())"),s.push("const router = Router()"),s.push("");for(const o of e.packages)for(const[i,a]of Object.entries(o.schemas)){const c=`${n}/${o.id}/${i}`,u=xl(`${o.id}:${i}`,a,r),l=ql(a),f=Object.entries(l);if(u==="GET"){if(s.push(`router.get('${c}', async (req, res) => {`),f.length>0){const h=f.map(([g,m])=>`'${g}': req.headers['${m}']`).join(", ");s.push(` const envelope: Record<string, unknown> = { ${h} }`)}else s.push(" const envelope: Record<string, unknown> = {}");s.push(` const result = await dispatch(${o.id}_fns as any, undefined, schemas['${o.id}:${i}']['schema'] as any, '${i}', envelope, req.query as any)`),s.push(" res.json(result)"),s.push("})")}else{if(s.push(`router.post('${c}', async (req, res) => {`),s.push(" const { data = {} } = req.body as Record<string, unknown>"),f.length>0){const h=f.map(([g,m])=>`'${g}': req.headers['${m}']`).join(", ");s.push(` const envelope: Record<string, unknown> = { ${h} }`)}else s.push(" const envelope: Record<string, unknown> = {}");s.push(` const result = await dispatch(${o.id}_fns as any, undefined, schemas['${o.id}:${i}']['schema'] as any, '${i}', envelope, data as any)`),s.push(" res.json(result)"),s.push("})")}}return s.push(""),s.push("app.use(router)"),s.push(`app.listen(${t})`),s.push(""),s.push("export default router"),{files:[{path:"routes.ts",content:s.join(`
122
+ `)}]}}function Fl(e,t,n){var s,o;const r=(o=(s=n.http)==null?void 0:s.verb)==null?void 0:o[e];return r==="GET"||r==="POST"?r:t["x-apigen-safe"]?"GET":"POST"}function Br(e,t){var o;const n=((o=e.input)==null?void 0:o.properties)??{},r=e["x-apigen-envelope"],s={};for(const i of Object.keys(n)){if(i==="data")continue;const a=(r==null?void 0:r[i])??"adhd",c=gt(a,i),u=t[c];u!==void 0&&(s[i]=u)}return s}function Vl(e){return e instanceof Kt?Hs[e.code]??500:500}async function zl(e){const t=e.options.port??3e3,n=e.options.host??"127.0.0.1",r=e.options.routePrefix??"",s=e.options.projection??{},o=e.logger??qt(),i=Qt();i.use(yo.pinoHttp({logger:o})),i.use(Qt.json());const a=Qt.Router(),c=[];for(const l of e.packages)for(const[f,h]of Object.entries(l.schemas)){const g=`${r}/${l.id}/${f}`,m=Fl(`${l.id}:${f}`,h,s),{params:v,text:y}=yn(h);c.push({method:m,route:g,text:y,params:v}),m==="GET"?a.get(g,async(p,_,E)=>{try{const j=Br(h,p.headers),N=await dt(l.fns,l.createClient,h,f,j,p.query);_.json(N)}catch(j){E(j)}}):a.post(g,async(p,_,E)=>{try{const{data:j={}}=p.body,N=Br(h,p.headers),q=await dt(l.fns,l.createClient,h,f,N,j);_.json(q)}catch(j){E(j)}})}i.use(a),i.use((l,f,h,g)=>{const m=Vl(l),v=l instanceof Kt?l.toJSON():{code:"internal",message:l.message??"Internal error"};h.status(m).json(v)});const u=await new Promise(l=>{const f=i.listen(t,n,()=>l(f))});o.info({host:n,port:t},`listening on http://${n}:${t}`);for(const l of c)o.info({method:l.method,route:l.route,body:{data:l.params}},`${l.method} ${l.route} body { data: {${l.text?` ${l.text} `:""}} }`);return new Promise(l=>{e.signal&&e.signal.addEventListener("abort",()=>{u.close(()=>l())})})}const Ll={id:"api-express",description:"Expose functions as Express HTTP POST routes",optionsSchema:{type:"object",properties:{port:{type:"number",default:3e3},routePrefix:{type:"string",default:""}}},generate(e){return Dl(e)},run(e){return zl(e)}};function Ul(e){var s;const t=((s=e.input)==null?void 0:s.properties)??{},n=e["x-apigen-envelope"],r=[];for(const o of Object.keys(t)){if(o==="data")continue;const i=(n==null?void 0:n[o])??"adhd";r.push({field:o,pluginId:i,flag:Yu(i,o),envVar:Zu(i,o)})}return r}function Kl(e){var s,o,i;const t=e.options.name??"cli",n=e.options.version??"0.1.0",r=["#!/usr/bin/env node","// Auto-generated by @adhd/apigen-cli — do not edit","import { Command } from 'commander'","import { dispatch, buildFnTable } from '@adhd/apigen-runtime'"];for(const a of e.packages)r.push(`import * as ${a.id}_ns from '${a.importPath}'`),r.push(`const ${a.id}_fns = buildFnTable(${a.id}_ns as Record<string, unknown>)`);r.push(""),r.push(`const schemas: Record<string, unknown> = ${JSON.stringify(Object.fromEntries(e.packages.flatMap(a=>Object.entries(a.schemas).map(([c,u])=>[`${a.id}:${c}`,u]))),null,2)}`),r.push(""),r.push(`const program = new Command().name('${t}').version('${n}')`),r.push("");for(const a of e.packages)for(const[c,u]of Object.entries(a.schemas)){const l=ss(u),f=rs(u,"session"),h=Ul(u),g=(o=(s=u.input)==null?void 0:s.properties)==null?void 0:o.data,m=(g==null?void 0:g.properties)??{},v=(g==null?void 0:g.required)??[];r.push("program"),r.push(` .command('${c}')`);for(const p of h){const _=p.flag.replace(/^--/,"");r.push(` .option('${p.flag} <${_}>', '${p.field} (env: ${p.envVar})')`)}f&&!h.some(p=>p.field==="session")&&r.push(" .option('--session <key>', 'Session key')");const y=p=>p.replace(/[A-Z]/g,_=>"-"+_.toLowerCase());for(const p of l){const _=y(p),E=((i=m[p])==null?void 0:i.type)==="boolean",j=v.includes(p);E?r.push(` .option('--${_}')`):j?r.push(` .requiredOption('--${_} <${_}>')`):r.push(` .option('--${_} <${_}>')`)}if(r.push(" .action(async (opts: Record<string, unknown>) => {"),r.push(` const domainArgs: Record<string, unknown> = { ${l.map(p=>`'${p}': opts['${p}']`).join(", ")} }`),h.length>0){const p=h.map(_=>{const j=_.flag.replace(/^--/,"").replace(/-([a-z])/g,(N,q)=>q.toUpperCase());return`'${_.field}': opts['${j}'] ?? process.env['${_.envVar}']`});r.push(` const envelope: Record<string, unknown> = { ${p.join(", ")} }`)}else f?r.push(" const envelope: Record<string, unknown> = { session: opts['session'] }"):r.push(" const envelope: Record<string, unknown> = {}");r.push(` const result = await dispatch(${a.id}_fns as any, undefined, schemas['${a.id}:${c}'] as any, '${c}', envelope, domainArgs)`),r.push(" console.log(JSON.stringify(result))"),r.push(" })")}return r.push(""),r.push("program.parseAsync()"),{files:[{path:"cli.ts",content:r.join(`
123
+ `)}]}}const Qr={id:"cli",description:"Emit a Commander CLI program where each exported function becomes a subcommand",optionsSchema:{type:"object",properties:{name:{type:"string",default:"cli"},version:{type:"string",default:"0.1.0"}}},generate(e){return Kl(e)}},Gt={mcp:jl,jsonschema:Tl,"api-fastify":Ml,"api-express":Ll,cli:Qr,"cli-output":Qr},Ye=new ao.Command().name("apigen-cli").version("0.1.0");Wu(Ye);fl(Ye,Gt);hl(Ye,Gt);yl(Ye,Gt);_l(Ye,Gt);Ye.parseAsync();