@adhd/apigen-core-client 0.3.0 → 0.3.2
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/CHANGELOG.md +50 -0
- package/index.js +1 -1
- package/index.mjs +2010 -1872
- package/lib/batch.d.ts +0 -15
- package/lib/esm-require.d.ts +23 -0
- package/lib/stream-type.d.ts +15 -0
- package/lib/types.d.ts +12 -0
- package/package.json +25 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,53 @@
|
|
|
1
|
+
## 0.3.2 (2026-09-26)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **vite-plugins:** absorb perf/test-resolve-fix — test-time @adhd/* source resolution ([3e344506](https://github.com/PseudoSky/adhd/commit/3e344506))
|
|
6
|
+
|
|
7
|
+
### 🩹 Fixes
|
|
8
|
+
|
|
9
|
+
- **apigen-core-client:** canonicalise union dedupe; cover standalone boolean literals ([0999daa7](https://github.com/PseudoSky/adhd/commit/0999daa7))
|
|
10
|
+
- **apigen-core-client:** keep co-resident catch-alls and lone boolean literals satisfiable in oneOf unions ([1fc9df24](https://github.com/PseudoSky/adhd/commit/1fc9df24))
|
|
11
|
+
- **apigen-core-client:** collapse duplicated boolean oneOf branch in union schemas (3a3e5884) ([1ee5b0b0](https://github.com/PseudoSky/adhd/commit/1ee5b0b0))
|
|
12
|
+
- **apigen-core-client:** sanitize vacuous catch-all branches in union schemas (BUG-APIGEN-059) ([e5887bb8](https://github.com/PseudoSky/adhd/commit/e5887bb8))
|
|
13
|
+
- **vite:** restore import.meta.url in CJS output under vite 8 ([7916e639](https://github.com/PseudoSky/adhd/commit/7916e639))
|
|
14
|
+
- **nx:** finish the ESLint v9 flat-config migration and unblock the gate ([53f4ff3e](https://github.com/PseudoSky/adhd/commit/53f4ff3e))
|
|
15
|
+
|
|
16
|
+
### ❤️ Thank You
|
|
17
|
+
|
|
18
|
+
- pseudosky
|
|
19
|
+
|
|
20
|
+
## 0.3.1 (2026-09-24)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### 🚀 Features
|
|
24
|
+
|
|
25
|
+
- **apigen:** schema-driven worked examples for MCP tool descriptions + validation errors
|
|
26
|
+
|
|
27
|
+
- **backlog:** INTERFACE_v2 consolidation — six-verb surface, web UI (search/stats/batch/edit), stats API (citationCount, closedAt, summary scope + window)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### 🩹 Fixes
|
|
31
|
+
|
|
32
|
+
- **apigen-cli:** restore 2768 files mass-deleted by 0117eb22 (BUG-APIGEN-052)
|
|
33
|
+
|
|
34
|
+
- **apigen-core-client:** hoist nested defs for return types and batch schemas
|
|
35
|
+
|
|
36
|
+
- **apigen-core-client:** close Path-2 object schemas with additionalProperties, index-signature aware
|
|
37
|
+
|
|
38
|
+
- **backlog:** unblock backlog:build — author/reporter TS2339 + wire MCP identity
|
|
39
|
+
|
|
40
|
+
- **apigen-cli:** batch nested-input CLI/HTTP wiring, sandbox isolation leaks, morph-walk index-signature regression
|
|
41
|
+
|
|
42
|
+
- **apigen:** audit fixes — S-18/S-19/C-20/C-21/S-20, java mvn race, union-encoder envelope, lazy heavy-dep loading
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### ❤️ Thank You
|
|
46
|
+
|
|
47
|
+
- parity-harness-self-test
|
|
48
|
+
- pseudosky
|
|
49
|
+
- Sky
|
|
50
|
+
|
|
1
51
|
## 0.2.2 (2026-07-30)
|
|
2
52
|
|
|
3
53
|
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Ke=Object.create;var ue=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var Be=Object.getOwnPropertyNames;var De=Object.getPrototypeOf,We=Object.prototype.hasOwnProperty;var Ue=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Be(t))!We.call(e,n)&&n!==r&&ue(e,n,{get:()=>t[n],enumerable:!(o=ze(t,n))||o.enumerable});return e};var Ge=(e,t,r)=>(r=e!=null?Ke(De(e)):{},Ue(t||!e||!e.__esModule?ue(r,"default",{value:e,enumerable:!0}):r,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("ts-morph"),Ze=require("node:fs"),G=require("node:path"),R=require("ts-json-schema-generator");function He(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const Je=He(G);function le(e){return{raw:e,words:e.split(/(?=[A-Z])|[-_]/).map(t=>t.toLowerCase()).filter(Boolean)}}function ve(e,t,r={}){const o=e.split("/");if(o.length<2||o.some(l=>l.length===0))throw new Error(`syntheticOp: id "${e}" must be "<namespace>/<path...>" with non-empty segments`);const[n,...i]=o,s=n.replace(/^_+/,""),a=r.kind??"action",c={id:e,host:t.host,namespace:le(s),path:i.map(le),kind:a,async:r.async??!1,streaming:r.streaming??!1,safe:r.safe??a==="query",input:r.input??{},output:r.output??{},envelope:r.envelope??{},typeText:r.typeText??null};return r.hasCtx!==void 0&&(c.hasCtx=r.hasCtx),r.transports!==void 0&&(c.transports=r.transports),c}const xe=Symbol.for("adhd.apigen.extraction-session");function ie(e,t){const r=[...e.getImportDeclarations().map(o=>o.getModuleSpecifierSourceFile()),...e.getExportDeclarations().map(o=>o.getModuleSpecifierSourceFile())];for(const o of r){if(!o)continue;const n=o.getFilePath();if(!n.includes("/node_modules/")&&!t.has(n)){t.add(n);try{o.refreshFromFileSystemSync()}catch{}ie(o,t)}}}function we(e){try{const t=Ze.statSync(e);return`${t.mtimeMs}:${t.size}`}catch{return"nostat"}}const M=new Map,ee=new Map;function Qe(e,t,r){const o=t??"",n=M.get(o);let i=r;if(n&&n.fileVersions.size>0){const c=[r],l=[...n.fileVersions.entries()].sort(([u],[f])=>u.localeCompare(f));for(const[u,f]of l)u!==e&&c.push(`${u}:${f}`);i=c.join("|")}const s=`${e}\0${t??""}`;let a=ee.get(s);return(!a||a.version!==i)&&(a={version:i,schemas:new Map},ee.set(s,a)),a.schemas}function Xe(){M.clear(),ee.clear(),B=void 0}let B;function Ye(){return B||(B=new N.Project({skipAddingFilesFromTsConfig:!0,compilerOptions:{noLib:!0}})),B}function et(e){const t=Ye(),r=t.getSourceFile(e),o=r??t.addSourceFileAtPath(e);if(r)try{r.refreshFromFileSystemSync()}catch{}const n=new Set([e]);return ie(o,n),[...n].sort()}function se(){const e={projectsBuilt:0,generatorsBuilt:0,schemaCacheHits:0,schemaCacheMisses:0},t=new Map;let r=!1;return{[xe]:!0,stats:e,schemaCache:new Map,aliasCache:new WeakMap,zodImportCache:new WeakMap,generatorCache:new Map,projectFor(n){if(r)throw new Error("apigen-core: ExtractionSession used after dispose()");const i=n??"",s=n?this.statVersion(n):"";let a=M.get(i);return a&&a.tsconfigVersion!==s&&(a=void 0),a||(a={project:n?new N.Project({tsConfigFilePath:n,skipAddingFilesFromTsConfig:!0}):new N.Project({skipAddingFilesFromTsConfig:!0}),tsconfigVersion:s,fileVersions:new Map},M.set(i,a),e.projectsBuilt++),a.project},sourceFileFor(n,i){const s=this.projectFor(i),a=M.get(i??""),c=this.statVersion(n);let l=s.getSourceFile(n);if(l===void 0?l=s.addSourceFileAtPath(n):a&&a.fileVersions.get(n)!==c&&l.refreshFromFileSystemSync(),a==null||a.fileVersions.set(n,c),a){const u=new Set([n]);ie(l,u);for(const f of u)f!==n&&a.fileVersions.set(f,this.statVersion(f))}return l},statVersion(n){let i=t.get(n);return i===void 0&&(i=we(n),t.set(n,i)),i},dispose(){r=!0,this.schemaCache.clear(),this.generatorCache.clear(),t.clear()}}}function je(e){const t=e;if(t[xe]!==!0)throw new Error("apigen-core: unknown ExtractionSession implementation — create sessions with createExtractionSession()");return t}const U="x-apigen-logical";function fe(e,t){const r=new Set,o=[e];for(;o.length>0;){const n=o.pop();if(!n||r.has(n))continue;r.add(n);const i=n.$ref;if(typeof i=="string"){if(t){const f=t[i];if(!f){const p=Object.keys(t).join(", ")||"(none)";throw new Error(`[apigen-logical] $ref "${i}" cannot be resolved. Available $defs: ${p}`)}o.push(f)}continue}const s=n.oneOf;if(Array.isArray(s))for(const f of s)typeof f=="object"&&f!==null&&o.push(f);const a=n.properties;if(a)for(const f of Object.values(a))o.push(f);const c=n.items;if(Array.isArray(c))for(const f of c)typeof f=="object"&&f!==null&&o.push(f);else typeof c=="object"&&c!==null&&o.push(c);const l=n.additionalProperties;typeof l=="object"&&l!==null&&o.push(l);const u=n.propertyNames;typeof u=="object"&&u!==null&&o.push(u)}}const pe=new Set(["string","number","boolean","integer"]);function tt(e){if(typeof e!="object"||e===null)return!1;const t=e;if(t.$ref!==void 0||t.oneOf||t.anyOf||t.allOf)return!1;const{type:r}=t;return typeof r=="string"?pe.has(r):Array.isArray(r)?r.every(o=>pe.has(o)||o==="null"):Array.isArray(t.enum)&&t.enum.length>0?t.enum.every(o=>["string","number","boolean"].includes(typeof o)):!1}function Pe(e){if(!e||typeof e!="object")return!1;const t=e.properties;return t===void 0||typeof t!="object"||t===null?!1:Object.values(t).every(tt)}function nt(e){var r,o;const t=[];for(const n of e){const i={...(r=n.capabilities.layer)==null?void 0:r.envelopeFields,...(o=n.capabilities.envelope)==null?void 0:o.request};Object.keys(i).length>0&&t.push({id:n.id,envelope:i})}return t}function rt(e){const t={},r=o=>{for(const n of["definitions","$defs"]){const i=o[n];if(i)for(const[s,a]of Object.entries(i)){const c=s.startsWith("#/")?s:`#/${n}/${s}`;t[c]=a}}};for(const o of Object.values(e.schemas))r(o.input),r(o.output);if(Object.keys(t).length!==0)for(const[o,n]of Object.entries(e.schemas))try{fe(n.input,t),fe(n.output,t)}catch(i){throw new Error(`[apigen-core-client] Schema validation failed for function "${o}": ${i.message}`)}}function ot(e,t){const r=['apigen calling convention: all domain parameters go inside a "data" envelope — e.g. { "data": { ... } }'+(t?".":" (an empty object for this zero-parameter tool).")];return e.length>0&&r.push(`Field(s) ${e.map(o=>`"${o}"`).join(", ")} are transport-level envelope metadata, NOT domain data — do not nest them under "data". Over MCP they are read from arguments._meta["x-<pluginId>-<field>"] (default pluginId "adhd"); see @adhd/apigen-engine-naming's envelopeMetaKey/envelopeCliFlag/envelopeEnvVar for the HTTP-header / CLI-flag / env-var equivalents.`),r.join(" ")}function it(e,t,r){rt(e);const o={};for(const[n,i]of Object.entries(e.schemas)){const s=(r==null?void 0:r[n])??{},a=i.input.properties??{},c=i.input.required??[],l={},u=[],f={};for(const h of t)if(h.envelope&&s[h.id]!==!1)for(const[y,d]of Object.entries(h.envelope))l[y]=d,f[y]=h.id,u.includes(y)||u.push(y);const p={type:"object",properties:a,additionalProperties:!1,...c.length>0?{required:c}:{}},S=i.safe===!0||Pe(i.input),T=i.input.definitions,m=i.input.$defs;o[n]={input:{type:"object",properties:{...l,data:p},required:[...u,...c.length>0?["data"]:[]],additionalProperties:!1,description:ot(Object.keys(l),Object.keys(a).length>0),...T?{definitions:T}:{},...m?{$defs:m}:{}},output:i.output,...i.hasCtx?{hasCtx:!0}:{},"x-apigen-safe":S,...Object.keys(f).length>0?{"x-apigen-envelope":f}:{}}}return o}const st=8;function at(e,t){try{return t?e.getText(t):e.getText()}catch{try{return e.getText()}catch{return}}}let ct=0;async function ut(e,t,r,o){const n=`__ApigenProbe_${process.pid}_${ct++}`;let i;try{i=t.addTypeAlias({name:n,type:r});const s=i.getType();return await o(s)}catch{return}finally{try{i==null||i.remove()}catch{}}}async function Ae(e,t,r){if(r>st)return{};if(e.isString()||e.isStringLiteral())return e.isStringLiteral()?{type:"string",enum:[e.getLiteralValue()]}:{type:"string"};if(e.isNumber()||e.isNumberLiteral())return e.isNumberLiteral()?{type:"number",enum:[e.getLiteralValue()]}:{type:"number"};if(e.isBoolean())return{type:"boolean"};if(e.isBooleanLiteral())return{type:"boolean"};if(e.isNull()||e.isUndefined()||e.isVoid())return{type:"null"};if(e.isUnion()){const o=e.getUnionTypes();if(o.every(c=>c.isStringLiteral())&&o.length>0)return{type:"string",enum:o.map(c=>c.getLiteralValue())};if(o.every(c=>c.isNumberLiteral())&&o.length>0)return{type:"number",enum:o.map(c=>c.getLiteralValue())};const s=await Promise.all(o.map(c=>Ae(c,t,r+1))),a=Z(s);return{oneOf:s,...a?{discriminator:a}:{},[U]:"union"}}if(e.isArray()){const o=e.getArrayElementType();return{type:"array",items:o?await t(o.getText()):{}}}if(e.isTuple()){const o=e.getTupleElements(),n=await Promise.all(o.map(i=>t(i.getText())));return{type:"array",items:n,minItems:n.length,maxItems:n.length}}if(e.isObject()){const o=e.getStringIndexType(),n=e.getNumberIndexType(),i=o??n,s=e.getProperties();if(i&&s.length===0)return{type:"object",additionalProperties:await t(i.getText())};const a={},c=[];for(const l of s){const u=l.getName(),p=l.getDeclarations()[0];let S;if(p)try{S=l.getTypeAtLocation(p)}catch{S=void 0}if(S!==void 0&&S.getCallSignatures().length>0)continue;const T=S!==void 0?at(S,p):void 0;a[u]=T!==void 0?await t(T):{},l.isOptional()||c.push(u)}return Object.keys(a).length>0?{type:"object",properties:a,...c.length>0?{required:c}:{}}:{}}return{}}function Z(e){if(e.length<2)return;const t=[];for(const o of e){if(o.type!=="object")return;const n=o.properties;if(!n||typeof n!="object")return;t.push(n)}const r=Object.keys(t[0]).filter(o=>t.every(n=>Object.prototype.hasOwnProperty.call(n,o)));for(const o of r){const n=[];let i=!0;for(const a of t){const c=a[o],l=c&&(c.type==="string"||c.type==="number"),u=c==null?void 0:c.enum;if(!l||!Array.isArray(u)||u.length!==1){i=!1;break}n.push(String(u[0]))}if(!i||new Set(n).size!==n.length)continue;const s={};return n.forEach((a,c)=>{s[a]=`#/oneOf/${c}`}),{propertyName:o,mapping:s}}}function D(e,t,r){if(t>6)return{};const o=e.trim();if(o==="string")return{type:"string"};if(o==="number")return{type:"number"};if(o==="boolean")return{type:"boolean"};if(o==="null")return{type:"null"};if(o==="undefined")return{type:"null"};const n=te[o];if(n!==void 0)return n;if(r!=null&&r.size){const i=r.get(o);if(i!==void 0){const s=te[i];if(s!==void 0)return s}}if(o.endsWith("[]"))return{type:"array",items:D(o.slice(0,-2),t+1,r)};if(o.includes("|")){const i=o.split("|").map(c=>c.trim());if(i.every(c=>c.startsWith("'")))return{type:"string",enum:i.map(c=>c.replace(/'/g,""))};const s=i.map(c=>D(c,t+1,r)),a=Z(s);return{oneOf:s,...a?{discriminator:a}:{},[U]:"union"}}if(o.startsWith("{")&&o.endsWith("}")){const i=o.slice(1,-1).trim(),s={};for(const a of i.split(";").filter(Boolean)){const[c,l]=a.split(":").map(u=>u.trim());c&&l&&(s[c.replace("?","")]=D(l,t+1,r))}return{type:"object",properties:s}}return{}}function $e(e){const t=[];let r=0,o=0;for(let i=0;i<e.length;i++){const s=e[i];s==="<"||s==="["||s==="{"||s==="("?r++:s===">"||s==="]"||s==="}"||s===")"?r--:s===","&&r===0&&(t.push(e.slice(o,i).trim()),o=i+1)}const n=e.slice(o).trim();return n.length>0&&t.push(n),t}function lt(e){const t=/^(?:Readonly)?Map<(.+)>$/.exec(e);return t?t[1]:void 0}function ft(e){const t=/^(?:Readonly)?Set<(.+)>$/.exec(e);return t?t[1]:void 0}function pt(e){let t=e.trim();if(t.startsWith("readonly ")&&(t=t.slice(9).trim()),!t.startsWith("[")||!t.endsWith("]"))return;const r=t.slice(1,-1).trim();if(r.length!==0)return $e(r)}async function mt(e,t){const r=e.trim(),o=lt(r);if(o!==void 0){const s=$e(o);if(s.length===2){const[a,c]=await Promise.all([t(s[0]),t(s[1])]);return{type:"array",items:{type:"array",items:[a,c],minItems:2,maxItems:2}}}}const n=ft(r);if(n!==void 0)return{type:"array",items:await t(n),uniqueItems:!0};const i=pt(r);if(i!==void 0){const s=await Promise.all(i.map(a=>t(a)));return{type:"array",items:s,minItems:s.length,maxItems:s.length}}}const Oe={"decimal.js":"Decimal"},te={Date:{type:"string",format:"date-time"},bigint:{type:"string",format:"int64"},Uint8Array:{type:"string",format:"byte"},Buffer:{type:"string",format:"byte"},URL:{type:"string",format:"uri"},RegExp:{type:"string",format:"regex"},Decimal:{type:"string",format:"decimal"}},me={Uint8Array:"byte",Buffer:"byte",Decimal:"decimal"};function ge(e){var r;const t=new Map;for(const o of e.getImportDeclarations()){const n=o.getModuleSpecifierValue(),i=Oe[n];if(!i)continue;const s=o.getDefaultImport();if(s){const a=s.getText();a!==i&&t.set(a,i)}for(const a of o.getNamedImports()){const c=((r=a.getAliasNode())==null?void 0:r.getText())??a.getName();c!==i&&t.set(c,i)}}return t}function gt(e,t){return r=>{r.addNodeParser({supportsNode(o){var i,s,a;if(o.kind!==t)return!1;const n=((i=o.typeName)==null?void 0:i.escapedText)??((a=(s=o.typeName)==null?void 0:s.right)==null?void 0:a.escapedText);return n!==void 0&&Object.prototype.hasOwnProperty.call(me,n)},createType(o){var i,s,a;const n=((i=o.typeName)==null?void 0:i.escapedText)??((a=(s=o.typeName)==null?void 0:s.right)==null?void 0:a.escapedText);return new R.AnnotatedType(new R.StringType,{format:me[n]},!1)}}),r.addNodeParser({supportsNode(o){return o.kind===e},createType(){return new R.AnnotatedType(new R.StringType,{format:"int64"},!1)}})}}let L;function dt(){if(L)return L;try{const e=G.dirname(require.resolve("ts-json-schema-generator/package.json"));L=require(require.resolve("typescript",{paths:[e]}))}catch{L=require("typescript")}return L}const I=new Map;function yt(){const e=process.env.APIGEN_PROGRAM_CACHE,t=e===void 0?NaN:Number(e);return Number.isFinite(t)&&t>=0?t:8}function ht(e){const t=I.get(e);return t&&(I.delete(e),I.set(e,t)),t}function Tt(e,t){const r=yt();if(r!==0)for(I.delete(e),I.set(e,t);I.size>r;){const o=I.keys().next().value;I.delete(o)}}function St(e,t){return`${e}\0${t??""}`}const bt=new Set(["zod",/^zod\/./]);function vt(e){for(const t of e.getImportDeclarations()){const r=t.getModuleSpecifierValue();for(const o of bt)if(typeof o=="string"){if(r===o)return!0}else if(o.test(r))return!0}return!1}function xt(e){for(const t of["$defs","definitions"]){const r=e[t];if(!r||typeof r!="object")continue;const o=Object.keys(r);if(o.length===0)continue;const n=new Set(o.filter(i=>/zod/i.test(i)));for(const[i,s]of Object.entries(r)){if(n.has(i)||typeof s!="object"||s===null)continue;const a=s,c=typeof a.$ref=="string"?a.$ref:"";if(c){for(const l of n)if(c.includes(l)){n.add(i);break}}}for(const i of n)delete r[i]}ne(e)}function ne(e,t){if(!e||typeof e!="object")return;const r=t??new WeakSet;if(!r.has(e)){r.add(e);for(const o of Object.keys(e))if(o==="$ref"&&typeof e[o]=="string"){const n=e[o];/zod/i.test(n)&&delete e[o]}for(const[,o]of Object.entries(e))if(typeof o=="object"&&o!==null)if(Array.isArray(o))for(const n of o)typeof n=="object"&&n!==null&&ne(n,r);else ne(o,r)}}function wt(e){const t=new Set;for(const o of["$defs","definitions"]){const n=e[o];if(n&&typeof n=="object")for(const i of Object.keys(n))t.add(i)}const r=re(e,t);if(r.length>0)throw new Error(`[apigen-core-client] Generated schema contains ${r.length} unresolvable $ref(s): ${r.join(", ")}. This usually means zod-internal definitions were stripped but $ref references to them remain. Check the source file's imports or the ts-json-schema-generator output.`)}function re(e,t){if(!e||typeof e!="object")return[];const r=[];for(const[o,n]of Object.entries(e))if(o==="$ref"&&typeof n=="string"){const i=n.match(/#\/(?:\$defs|definitions)\/(.+)$/);i&&!t.has(i[1])&&r.push(n)}else if(typeof n=="object"&&n!==null)if(Array.isArray(n))for(const i of n)typeof i=="object"&&i!==null&&r.push(...re(i,t));else r.push(...re(n,t));return r}function jt(e){const t=e.anyOf;if(!Array.isArray(t)||t.length<2)return e;const r=t,o=Z(r),n={...e};return delete n.anyOf,{...n,oneOf:r,...o?{discriminator:o}:{},[U]:n[U]??"union"}}function Pt(e,t,r){const{DEFAULT_CONFIG:o}=require("ts-json-schema-generator/dist/src/Config.js"),n={...o,...e},i=n.path,s=St(i,n.tsconfig);let a;a=r?r.statVersion(i):we(i);let c;if(s!==void 0){const u=(r==null?void 0:r.generatorCache.get(s))??ht(s);u&&u.version===a&&(c=u.gen)}if(!c){const{createProgram:u}=require("ts-json-schema-generator/dist/factory/program.js"),f=dt(),p=gt(f.SyntaxKind.BigIntKeyword,f.SyntaxKind.TypeReference),S=u(n),T=R.createParser(S,n,p),m=R.createFormatter(n);if(c=new R.SchemaGenerator(S,T,m,n),r&&r.stats.generatorsBuilt++,s!==void 0&&a!==void 0){const h={version:a,gen:c};Tt(s,h),r==null||r.generatorCache.set(s,h)}}const l=c.createSchema(n.type);return xt(l),wt(l),l}function At(e,t){let r=e.trim();if(r=ke(r),t!=null&&t.size){const n=t.get(r);if(n!==void 0)return n}const o=r.match(/^ReadonlyArray<(.+)>$/);for(o&&(r=`${o[1].trim()}[]`);r.startsWith("readonly ");)r=r.slice(9).trim();return r}function Ne(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const $t=Object.entries(Oe).map(([e,t])=>({pattern:new RegExp(`import\\(["'][^"']*${Ne(e)}[^"']*["']\\)\\.\\w+`,"g"),key:t}));function ke(e){let t=e;for(const{pattern:r,key:o}of $t)t=t.replace(r,o);return t}function Ot(e,t){let r=ke(e);for(const[o,n]of t)r=r.replace(new RegExp(`\\b${Ne(o)}\\b`,"g"),n);return r}async function $(e,t,r,o,n,i){const s=t.getFilePath(),a=`${s}\0${o??""}\0${r}`,c=i??new Set;if(c.has(a))return{};if(!n){const T=new Set(c);return T.add(a),de(e,t,r,o,void 0,T)}const l=n.schemaCache.get(a);if(l!==void 0)return n.stats.schemaCacheHits++,l;const u=Qe(s,o,n.statVersion(s)),f=u.get(r);if(f!==void 0)return n.stats.schemaCacheHits++,n.schemaCache.set(a,Promise.resolve(f)),f;n.stats.schemaCacheMisses++;const p=new Set(c);p.add(a);const S=de(e,t,r,o,n,p).then(T=>(u.set(r,T),T)).catch(T=>{throw n.schemaCache.delete(a),T});return n.schemaCache.set(a,S),S}async function de(e,t,r,o,n,i){if(["void","undefined","null","Promise<void>"].includes(r))return{type:"null"};let s;if(n){const p=n.aliasCache.get(t);s=p??ge(t),p||n.aliasCache.set(t,s)}else s=ge(t);const a=At(r,s),c=te[a];if(c!==void 0)return c;const l=await mt(a,p=>$(e,t,p,o,n,i));if(l!==void 0)return l;const u=(n==null?void 0:n.zodImportCache.get(t))??vt(t);if(n&&n.zodImportCache.set(t,u),!u)try{const p={path:t.getFilePath(),type:a,skipTypeCheck:!0,tsconfig:o,topRef:!1},S=Pt(p,!0,n);return jt(S)}catch{}try{const p=await ut(e,t,a,S=>Ae(S,T=>$(e,t,T,o,n,i),0));if(p!==void 0)return p}catch{}const f=Ot(a,s);return D(f,0,s)}function ae(e,t,r){if(e!=null&&e.hasInitializer()){const o=e.getInitializer();if(o)return o.getText()}return Nt(r,t)}function Nt(e,t){var s;const r=e,o=((s=r==null?void 0:r.getJsDocs)==null?void 0:s.call(r))??[],n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),i=new RegExp(`\\[\\s*${n}\\s*=\\s*([^\\]]+)\\]`);for(const a of o)for(const c of a.getTags()){if(c.getTagName()!=="param")continue;const l=c.getText().match(i);if(l)return l[1].trim()}}function kt(e){const t=e.trim(),r=t.match(/^(['"`])([\s\S]*)\1$/);if(r)return r[2];if(t==="true")return!0;if(t==="false")return!1;if(t==="null")return null;if(t!=="undefined"){if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);try{return JSON.parse(t)}catch{return t}}}function It(e,t){const r=kt(t);if(r===void 0)return;e.default=r;const o=typeof r=="string"?r:JSON.stringify(r),n=typeof e.description=="string"?e.description:void 0;e.description=n?`${n} (default: ${o})`:`(default: ${o})`}function H(e){try{if(!e||e.getKind()!==N.SyntaxKind.TypeReference)return;const t=e;if(t.getTypeArguments().length>0)return;const r=t.getTypeName();if(r.getKind()!==N.SyntaxKind.Identifier)return;const n=r.getSymbol();if(!n)return;const i=n.getDeclarations().find(u=>u.getKindName()==="TypeAliasDeclaration");if(!i)return;const s=i,a=s.getType();if(!(a.isString()||a.isNumber()||a.isBoolean()))return;const l=s.getJsDocs();for(const u of l)for(const f of u.getTags())if(f.getTagName()==="format"){const p=f.getCommentText();if(p!==void 0)return p.trim()}return}catch{return}}async function Et(e){const t=e.session===void 0,r=je(e.session??se());try{return await Ft(e,r)}finally{t&&r.dispose()}}async function Ft(e,t){const{sourceFile:r,namespace:o="",dropFileSegment:n=!1,tsconfig:i}=e,s=t.projectFor(i),a=t.sourceFileFor(r,i),c=G.basename(r),l=O(Lt(c)),u=n?null:l,f=O(o),p=[];for(const[m,h]of a.getExportedDeclarations()){if(m==="default"||z(m))continue;const y=Mt(h);if(y){const g=y.getSignature(),w=he(g,y),v=g.getReturnType().getText(),P=F(g);p.push(await K(s,a,f,u,m,w,v,y.isAsync(),i,t,P));continue}const d=h.find(g=>g.getKindName()==="VariableDeclaration");if(!d)continue;const b=d.getInitializer(),x=b==null?void 0:b.getKindName();if(b&&["ArrowFunction","FunctionExpression"].includes(x??"")){const w=d.getType().getCallSignatures();if(w.length===0)continue;const v=w[0],P=Te(v,d,d.getVariableStatement()),j=v.getReturnType().getText(),A=F(v),E=b.isAsync();p.push(await K(s,a,f,u,m,P,j,E,i,t,A))}else if(x==="ObjectLiteralExpression"){const g=d.getType();for(const w of g.getProperties()){const v=w.getName();if(z(v))continue;const j=w.getTypeAtLocation(d).getCallSignatures();if(j.length===0)continue;const A=j[0],E=Te(A,d,d.getVariableStatement()),V=A.getReturnType().getText(),q=F(A),J=[...u?[u]:[],O(m),O(v)];p.push(await W(s,a,f,J,v,E,V,!1,i,t,q))}}else{const g=d.getType(),w=g.getText();if(C(g,d)){const v=await $(s,a,w,i,t);p.push(Rt(f,u,m,v))}else console.warn(`[apigen-core] Skipping non-callable, non-serializable export: ${m}`)}}const S=a.getDefaultExportSymbol();if(S){const m=a.getExportAssignment(h=>!h.isExportEquals());if(m){const h=m.getExpression(),y=h.getKindName();if(["ArrowFunction","FunctionExpression"].includes(y)){const b=h.getType().getCallSignatures();if(b.length>0){const x=b[0],g=Q(x,m),w=x.getReturnType().getText(),v=F(x),P=h.isAsync();p.push(await K(s,a,f,u,"default",g,w,P,i,t,v))}}else{const d=h.getType();for(const b of d.getProperties()){const x=b.getName();if(z(x))continue;const w=b.getTypeAtLocation(m).getCallSignatures();if(w.length===0)continue;const v=w[0],P=Q(v,m),j=v.getReturnType().getText(),A=F(v),E=[...u?[u]:[],O("default"),O(x)];p.push(await W(s,a,f,E,x,P,j,!1,i,t,A))}}}else{const h=S.getDeclarations();for(const y of h){if(y.getKindName()!=="FunctionDeclaration")continue;const d=y,b=d.getName(),x=b&&b.length>0?b:"default",g=d.getSignature(),w=he(g,d),v=g.getReturnType().getText(),P=F(g);p.push(await K(s,a,f,u,x,w,v,d.isAsync(),i,t,P))}}}const T=_t(a);if(T.length>0)for(const{name:m,sig:h}of T){if(z(m))continue;const y=Q(h),d=h.getReturnType().getText(),b=F(h),x=[...u?[u]:[],O(m)];p.push(await W(s,a,f,x,m,y,d,!1,i,t,b))}return p}function Ct(e,t,r,o){const n=new Set,i=s=>{if(Array.isArray(s))return s.map(i);if(!s||typeof s!="object"||n.has(s))return s;n.add(s);try{const a=s,c={};for(const[l,u]of Object.entries(a)){if(l==="definitions"||l==="$defs"){const f=l,p=t[f];for(const[S,T]of Object.entries(u)){const m=i(T),h=p[S];if(h!==void 0&&JSON.stringify(h)!==JSON.stringify(m))throw new Error(`[apigen-core-client] Function "${r}": param "${o}" contributes a "${f}.${S}" definition that conflicts with an identically-named definition already hoisted from another param/output in the same function. Two structurally different types share the same generated definition key, so apigen cannot safely merge them into one function-level schema.`);p[S]=m}continue}c[l]=i(u)}return c}finally{n.delete(s)}};return i(e)}function ye(e,t){if(!t||e.format!==void 0||"$ref"in e||"properties"in e||"items"in e)return;const r=e.type;(r==="string"||r==="number"||r==="integer"||r==="boolean")&&(e.format=t)}function F(e){var t;try{return H((t=e.getDeclaration())==null?void 0:t.getReturnTypeNode())}catch{return}}async function K(e,t,r,o,n,i,s,a,c,l,u){const f=O(n);return W(e,t,r,o?[o,f]:[f],n,i,s,a,c,l,u)}async function W(e,t,r,o,n,i,s,a,c,l,u){const f=i.length>0&&i[0].name==="ctx",p=i.filter(g=>g.name!=="ctx"),S=p.filter(g=>!g.optional).map(g=>g.name),T={},m={definitions:{},$defs:{}};for(const g of p){const w=await $(e,t,g.type,c,l),v=Ct(w,m,n,g.name);g.defaultValue!==void 0&&It(v,g.defaultValue),ye(v,g.format),T[g.name]=v}const h=s.replace(/^Promise<(.+)>$/,"$1").trim(),y=await $(e,t,h,c,l),d=u?{...y}:y;ye(d,u);const b={type:"object",properties:T,required:S,...Object.keys(m.definitions).length>0?{definitions:m.definitions}:{},...Object.keys(m.$defs).length>0?{$defs:m.$defs}:{}};return{id:Ie(r,o),host:"ts",namespace:r,path:o,kind:"action",async:a,streaming:!1,safe:!1,input:b,output:d,envelope:{},typeText:{lang:"ts",input:Vt(i),output:h},...f?{hasCtx:!0}:{}}}function Rt(e,t,r,o){const n=O(r),i=t?[t,n]:[n];return{id:Ie(e,i),host:"ts",namespace:e,path:i,kind:"query",async:!1,streaming:!1,safe:!0,input:{type:"object",properties:{},required:[]},output:o,envelope:{},typeText:null}}function Ie(e,t){return(e.raw?[e,...t]:t).map(o=>o.words.join("-")).join("/")}function ce(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 O(e){return{raw:e,words:ce(e)}}function Lt(e){return e.replace(/\.[^.]+$/,"").replace(/[._]+/g,"-")}function _t(e){const t=[];for(const r of e.getStatements()){if(r.getKindName()!=="ExpressionStatement")continue;const o=r.getExpression();if(o.getKindName()!=="BinaryExpression")continue;const n=o;if(n.getLeft().getText().trim()!=="module.exports"||n.getOperatorToken().getKindName()!=="EqualsToken")continue;const s=n.getRight(),a=s.getType();for(const c of a.getProperties()){const u=c.getTypeAtLocation(s).getCallSignatures();u.length!==0&&t.push({name:c.getName(),sig:u[0]})}}return t}function Mt(e){let t;for(const r of e){if(r.getKindName()!=="FunctionDeclaration")continue;const o=r;if(t||(t=o),o.getBody())return o}return t}function he(e,t){return e.getParameters().map(r=>{var s;const o=r.getDeclarations(),n=o.length>0&&o[0].getKindName()==="Parameter"?o[0]:null,i=r.isOptional()||((n==null?void 0:n.hasInitializer())??!1)||(((s=n==null?void 0:n.hasQuestionToken)==null?void 0:s.call(n))??!1);return{name:r.getName(),type:r.getTypeAtLocation(e.getDeclaration()).getText(),optional:i,defaultValue:ae(n,r.getName(),t),format:H(n==null?void 0:n.getTypeNode())}})}function Te(e,t,r){return e.getParameters().map(o=>{var a;const n=o.getDeclarations(),i=n.length>0&&n[0].getKindName()==="Parameter"?n[0]:null,s=o.isOptional()||((i==null?void 0:i.hasInitializer())??!1)||(((a=i==null?void 0:i.hasQuestionToken)==null?void 0:a.call(i))??!1);return{name:o.getName(),type:o.getTypeAtLocation(t).getText(),optional:s,defaultValue:ae(i,o.getName(),r??t),format:H(i==null?void 0:i.getTypeNode())}})}function Q(e,t){return e.getParameters().map(r=>{var s,a,c;const o=r.getDeclarations(),n=o.length>0&&o[0].getKindName()==="Parameter"?o[0]:null,i=r.isOptional()||((n==null?void 0:n.hasInitializer())??!1)||(((s=n==null?void 0:n.hasQuestionToken)==null?void 0:s.call(n))??!1);return{name:r.getName(),type:n?n.getType().getText():((c=(a=r.getValueDeclaration())==null?void 0:a.getType())==null?void 0:c.getText())??"unknown",optional:i,defaultValue:ae(n,r.getName(),t),format:H(n==null?void 0:n.getTypeNode())}})}function Vt(e){const t=e.filter(r=>r.name!=="ctx");return t.length===0?"()":"("+t.map(r=>`${r.name}${r.optional?"?":""}: ${r.type}`).join(", ")+")"}function z(e){return!!(e==="__samples__"||e.startsWith("__"))}function C(e,t,r=new Set){if(e.getCallSignatures().length>0||e.getConstructSignatures().length>0)return!1;if(e.isString()||e.isNumber()||e.isBoolean()||e.isNull()||e.isUndefined()||e.isStringLiteral()||e.isNumberLiteral()||e.isBooleanLiteral()||e.isEnumLiteral())return!0;if(e.isArray()||e.isReadonlyArray()){const o=e.getArrayElementType();return o?C(o,t,r):!1}if(e.isTuple())return e.getTupleElements().every(o=>C(o,t,r));if(e.isUnion())return e.getUnionTypes().every(o=>C(o,t,r));if(e.isIntersection())return e.getIntersectionTypes().every(o=>C(o,t,r));if(e.isObject()){const o=e.getText(t);if(r.has(o))return!0;r.add(o);const n=e.getStringIndexType(),i=e.getNumberIndexType();if(n||i)return[n,i].every(a=>!a||C(a,t,r));const s=e.getProperties();return s.length===0?!0:s.every(a=>{const c=a.getTypeAtLocation(t);return C(c,t,r)})}return!1}function Ee(e,t){return async r=>{let o=()=>t(r);for(let n=e.length-1;n>=0;n--){const i=e[n],s=o;o=()=>i(r,s)}return o()}}function Fe(e,t){return Ee(e,t)}function qt(e,t,r={}){const o=e.map(n=>n.capabilities.extractLayer).filter(n=>!!n).map(n=>n.createLayer?n.createLayer(r):n.layer).filter(n=>!!n);return Fe(o,t)}async function Kt(e){const t=e.session===void 0,r=je(e.session??se());try{return await zt(e,r)}finally{t&&r.dispose()}}async function zt(e,t){const{sourceFile:r,namespace:o="",tsconfig:n,includeInstances:i=!1}=e,s=t.projectFor(n),a=t.sourceFileFor(r,n),c=G.basename(r),l=_(Dt(c)),u=_(o),f=[];for(const[p,S]of a.getExportedDeclarations()){const T=S.find(y=>y.getKindName()==="ClassDeclaration");if(!T)continue;const m=p==="default"?T.getName():p;if(!m||Y(m))continue;const h=_(m);for(const y of T.getStaticMethods()){const d=y.getName();if(Y(d))continue;const b=y.getScope();if(b===N.Scope.Private||b===N.Scope.Protected)continue;const x=y.getSignature(),g=X(x,y),w=x.getReturnType().getText(),v=y.isAsync(),P=[l,h,_(d)];f.push(await Bt(s,a,u,P,g,w,v,n,t))}if(i){{const d=T.getConstructors()[0]??null;let b=[];if(d){const j=d.getSignature();b=X(j,d)}const x=[l,h],g=oe(u,x),w=b.filter(j=>j.name!=="ctx"),v=w.filter(j=>!j.optional).map(j=>j.name),P={};for(const j of w)P[j.name]=await $(s,a,j.type,n,t);f.push({id:g,host:"ts",namespace:u,path:x,kind:"constructor",async:!1,streaming:!1,safe:!1,input:{type:"object",properties:P,required:v},output:{type:"object",properties:{instanceId:{type:"string"}},required:["instanceId"]},envelope:{},typeText:{lang:"ts",input:Wt(b),output:"{ instanceId: string }"}})}for(const y of T.getInstanceMethods()){const d=y.getName();if(Y(d))continue;const b=y.getScope();if(b===N.Scope.Private||b===N.Scope.Protected)continue;const x=y.getSignature(),g=X(x,y),w=x.getReturnType().getText(),v=y.isAsync(),P=[l,h,_(d)],j=oe(u,P),A=g.filter(k=>k.name!=="ctx"),E=A.filter(k=>!k.optional).map(k=>k.name),V={};for(const k of A)V[k.name]=await $(s,a,k.type,n,t);const q=w.replace(/^Promise<(.+)>$/,"$1").trim(),J=await $(s,a,q,n,t);f.push({id:j,host:"ts",namespace:u,path:P,kind:"instance-method",async:v,streaming:!1,safe:!1,input:{type:"object",properties:V,required:E},output:J,envelope:{type:"object",properties:{instanceId:{type:"string"}},required:["instanceId"]},typeText:{lang:"ts",input:Ce(g),output:q}})}}}return f}async function Bt(e,t,r,o,n,i,s,a,c){const l=n.filter(m=>m.name!=="ctx"),u=l.filter(m=>!m.optional).map(m=>m.name),f={};for(const m of l)f[m.name]=await $(e,t,m.type,a,c);const p=i.replace(/^Promise<(.+)>$/,"$1").trim(),S=await $(e,t,p,a,c);return{id:oe(r,o),host:"ts",namespace:r,path:o,kind:"action",async:s,streaming:!1,safe:!1,input:{type:"object",properties:f,required:u},output:S,envelope:{},typeText:{lang:"ts",input:Ce(n),output:p}}}function oe(e,t){return(e.raw?[e,...t]:t).map(o=>o.words.join("-")).join("/")}function _(e){return{raw:e,words:ce(e)}}function Dt(e){return e.replace(/\.[^.]+$/,"").replace(/[._]+/g,"-")}function X(e,t){return e.getParameters().map(r=>{var s;const o=r.getDeclarations(),n=o.length>0&&o[0].getKindName()==="Parameter"?o[0]:null,i=r.isOptional()||((n==null?void 0:n.hasInitializer())??!1)||(((s=n==null?void 0:n.hasQuestionToken)==null?void 0:s.call(n))??!1);return{name:r.getName(),type:r.getTypeAtLocation(t).getText(),optional:i}})}function Ce(e){const t=e.filter(r=>r.name!=="ctx");return t.length===0?"()":"("+t.map(r=>`${r.name}${r.optional?"?":""}: ${r.type}`).join(", ")+")"}function Wt(e){return e.length===0?"()":"("+e.map(t=>`${t.name}${t.optional?"?":""}: ${t.type}`).join(", ")+")"}function Y(e){return!!(e==="__samples__"||e.startsWith("__")||e.startsWith("_"))}const Ut=new Map([[".ts","ts"],[".tsx","ts"],[".mts","ts"],[".cts","ts"],[".py","py"],[".rs","rust"],[".go","go"],[".java","java"]]);function Re(e){const t=Je.extname(e).toLowerCase();return Ut.get(t)}function Le(e){return e.language??"ts"}function _e(e,t){const r=Re(t);return r===void 0?!1:r===Le(e)}function Gt(e,t){return t.filter(r=>_e(e,r))}function Zt(e){return{oneOf:[{type:"object",required:["index","status","value"],properties:{index:{type:"integer"},status:{type:"string",enum:["fulfilled"]},value:e}},{type:"object",required:["index","status","chunks"],properties:{index:{type:"integer"},status:{type:"string",enum:["fulfilled"]},chunks:{type:"array"}}},{type:"object",required:["index","status","reason"],properties:{index:{type:"integer"},status:{type:"string",enum:["rejected"]},reason:{},chunksDelivered:{type:"integer"}}}]}}function Me(e){return{operationConst:e.id,itemsSchema:e.input,resultSchema:Zt(e.output)}}function Ve(e,t={}){const r=new Set(t.exclude??[]),o=new Map;for(const n of e){if(r.has(n.id))continue;const i=o.get(n.kind);i?i.push(n):o.set(n.kind,[n])}return o}function Se(e){return{type:"string",enum:[e]}}function be(e,t){return{type:"object",required:["operation","items"],properties:{operation:t,items:{type:"array",items:e.itemsSchema},concurrency:{type:"number"},mode:{type:"string",enum:["parallel","serial","chained"]},onItemError:{type:"string",enum:["continue","abort"]},itemTimeoutMs:{type:"number"}},additionalProperties:!0}}function qe(e){if(e.length===0)throw new Error("buildBatchKindSchema: at least one operation is required");const t=e.map(Me);if(e.length===1){const[n]=e,[i]=t;return{input:be(i,Se(n.id)),output:{type:"array",items:i.resultSchema}}}const r=e.map((n,i)=>be(t[i],Se(n.id))),o=Z(r);return{input:{oneOf:r,...o?{discriminator:o}:{}},output:{oneOf:t.map(n=>({type:"array",items:n.resultSchema}))},...o?{discriminator:o}:{}}}function Ht(e,t={}){const r=Ve(e.operations,t),o=[];for(const[n,i]of r){const{input:s,output:a}=qe(i),c=ve(`_batch/${n}`,e,{kind:n,safe:n==="query",input:s,output:a});o.push({...c,operationIds:i.map(l=>l.id)})}return o}exports.buildBatchKindSchema=qe;exports.buildBatchMountedOperations=Ht;exports.clearPersistentProjectCache=Xe;exports.collectLocalImportPaths=et;exports.composeOnion=Ee;exports.composeSchemas=it;exports.createExtractInvoker=Fe;exports.createExtractInvokerFromPlugins=qt;exports.createExtractionSession=se;exports.deriveBatchOperationBranch=Me;exports.effectiveLanguage=Le;exports.extract=Et;exports.extractClasses=Kt;exports.groupBatchableOperationsByKind=Ve;exports.isPrimitiveOnlyInputSchema=Pe;exports.languageOfSource=Re;exports.pluginConsumesSource=_e;exports.pluginsToEnvelopeMiddlewares=nt;exports.sourcesForPlugin=Gt;exports.syntheticOp=ve;exports.tokenize=ce;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));let c=require("node:fs");c=s(c);let l=require("node:module"),u=require("node:path");u=s(u);function d(e){return{raw:e,words:e.split(/(?=[A-Z])|[-_]/).map(e=>e.toLowerCase()).filter(Boolean)}}function f(e,t,n={}){let r=e.split(`/`);if(r.length<2||r.some(e=>e.length===0))throw Error(`syntheticOp: id "${e}" must be "<namespace>/<path...>" with non-empty segments`);let[i,...a]=r,o=i.replace(/^_+/,``),s=n.kind??`action`,c={id:e,host:t.host,namespace:d(o),path:a.map(d),kind:s,async:n.async??!1,streaming:n.streaming??!1,safe:n.safe??s===`query`,input:n.input??{},output:n.output??{},envelope:n.envelope??{},typeText:n.typeText??null};return n.hasCtx!==void 0&&(c.hasCtx=n.hasCtx),n.transports!==void 0&&(c.transports=n.transports),c}var p=(0,l.createRequire)(require("node:url").pathToFileURL(__filename).href),m;function h(){return m||(m=p(`ts-morph`).Project,m)}var g=Symbol.for(`adhd.apigen.extraction-session`);function _(e,t){let n=[...e.getImportDeclarations().map(e=>e.getModuleSpecifierSourceFile()),...e.getExportDeclarations().map(e=>e.getModuleSpecifierSourceFile())];for(let e of n){if(!e)continue;let n=e.getFilePath();if(!n.includes(`/node_modules/`)&&!t.has(n)){t.add(n);try{e.refreshFromFileSystemSync()}catch{}_(e,t)}}}function v(e){try{let t=c.default.statSync(e);return`${t.mtimeMs}:${t.size}`}catch{return`nostat`}}var y=new Map,b=new Map;function x(e,t,n){let r=t??``,i=y.get(r),a=n;if(i&&i.fileVersions.size>0){let t=[n],r=[...i.fileVersions.entries()].sort(([e],[t])=>e.localeCompare(t));for(let[n,i]of r)n!==e&&t.push(`${n}:${i}`);a=t.join(`|`)}let o=`${e}\0${t??``}`,s=b.get(o);return s?.version!==a&&(s={version:a,schemas:new Map},b.set(o,s)),s.schemas}function S(){y.clear(),b.clear(),C=void 0}var C;function w(){return C||=new(h())({skipAddingFilesFromTsConfig:!0,compilerOptions:{noLib:!0}}),C}function ee(e){let t=w(),n=t.getSourceFile(e),r=n??t.addSourceFileAtPath(e);if(n)try{n.refreshFromFileSystemSync()}catch{}let i=new Set([e]);return _(r,i),[...i].sort()}function T(){let e={projectsBuilt:0,generatorsBuilt:0,schemaCacheHits:0,schemaCacheMisses:0},t=new Map,n=!1;return{[g]:!0,stats:e,schemaCache:new Map,aliasCache:new WeakMap,zodImportCache:new WeakMap,generatorCache:new Map,projectFor(t){if(n)throw Error(`apigen-core: ExtractionSession used after dispose()`);let r=t??``,i=t?this.statVersion(t):``,a=y.get(r);if(a&&a.tsconfigVersion!==i&&(a=void 0),!a){let n=h();a={project:t?new n({tsConfigFilePath:t,skipAddingFilesFromTsConfig:!0}):new n({skipAddingFilesFromTsConfig:!0}),tsconfigVersion:i,fileVersions:new Map},y.set(r,a),e.projectsBuilt++}return a.project},sourceFileFor(e,t){let n=this.projectFor(t),r=y.get(t??``),i=this.statVersion(e),a=n.getSourceFile(e);if(a===void 0?a=n.addSourceFileAtPath(e):r&&r.fileVersions.get(e)!==i&&a.refreshFromFileSystemSync(),r?.fileVersions.set(e,i),r){let t=new Set([e]);_(a,t);for(let n of t)n!==e&&r.fileVersions.set(n,this.statVersion(n))}return a},statVersion(e){let n=t.get(e);return n===void 0&&(n=v(e),t.set(e,n)),n},dispose(){n=!0,this.schemaCache.clear(),this.generatorCache.clear(),t.clear()}}}function te(e){let t=e;if(t[g]!==!0)throw Error(`apigen-core: unknown ExtractionSession implementation — create sessions with createExtractionSession()`);return t}var E=`x-apigen-logical`;function ne(e,t){let n=new Set,r=[e];for(;r.length>0;){let e=r.pop();if(!e||n.has(e))continue;n.add(e);let i=e.$ref;if(typeof i==`string`){if(t){let e=t[i];if(!e){let e=Object.keys(t).join(`, `)||`(none)`;throw Error(`[apigen-logical] $ref "${i}" cannot be resolved. Available $defs: ${e}`)}r.push(e)}continue}let a=e.oneOf;if(Array.isArray(a))for(let e of a)typeof e==`object`&&e&&r.push(e);let o=e.properties;if(o)for(let e of Object.values(o))r.push(e);let s=e.items;if(Array.isArray(s))for(let e of s)typeof e==`object`&&e&&r.push(e);else typeof s==`object`&&s&&r.push(s);let c=e.additionalProperties;typeof c==`object`&&c&&r.push(c);let l=e.propertyNames;typeof l==`object`&&l&&r.push(l)}}var re={id:`date-time`,kind:`scalar`,schema:{type:`string`,format:`date-time`},matches(e){return e.type===`string`&&e.format===`date-time`},ownsValue(e){return e instanceof Date},encode(e,t,n){return e.toISOString()},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[date-time] expected a string on the wire at "${n.path}", got ${typeof e}`);return new Date(String(e))}if(n.mode===`strict`&&Number.isNaN(new Date(e).getTime()))throw TypeError(`[date-time] invalid date-time string at "${n.path}": ${JSON.stringify(e)}`);return new Date(e)}},ie={id:`int64`,kind:`scalar`,schema:{type:`string`,format:`int64`},matches(e){return e.type===`string`&&e.format===`int64`},ownsValue(e){return typeof e==`bigint`},encode(e,t,n){return String(e)},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[int64] expected a string on the wire at "${n.path}", got ${typeof e}`);try{return BigInt(Math.trunc(Number(e)))}catch{return BigInt(0)}}if(n.mode===`strict`)return BigInt(e);if(/^-?\d+$/.test(e))try{return BigInt(e)}catch{return BigInt(0)}return BigInt(0)}};function ae(e){return e}var oe={id:`decimal`,kind:`scalar`,schema:{type:`string`,format:`decimal`},matches(e){return e.type===`string`&&e.format===`decimal`},encode(e,t,n){return e},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[decimal] expected a string on the wire at "${n.path}", got ${typeof e}`);return ae(String(e))}if(n.mode===`strict`&&!/^-?\d+(\.\d+)?$/.test(e))throw TypeError(`[decimal] wire value "${e}" at "${n.path}" is not a valid decimal string`);return ae(e)}},se={id:`byte`,kind:`scalar`,schema:{type:`string`,format:`byte`},matches(e){return e.type===`string`&&e.format===`byte`},ownsValue(e){return e instanceof Uint8Array},encode(e,t,n){return Buffer.from(e).toString(`base64`)},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[byte] expected a base64 string on the wire at "${n.path}", got ${typeof e}`);return new Uint8Array}if(n.mode===`strict`&&!/^[A-Za-z0-9+/]*={0,2}$/.test(e))throw TypeError(`[byte] wire value at "${n.path}" is not standard base64 (format:byte): "${e}"`);return new Uint8Array(Buffer.from(e,`base64`))}},ce=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,le={id:`uuid`,kind:`scalar`,schema:{type:`string`,format:`uuid`},matches(e){return e.type===`string`&&e.format===`uuid`},encode(e,t,n){return e.toLowerCase()},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[uuid] expected a string on the wire at "${n.path}", got ${typeof e}`);return String(e).toLowerCase()}if(n.mode===`strict`&&!ce.test(e))throw TypeError(`[uuid] wire value "${e}" at "${n.path}" is not a lowercase-hyphenated RFC 4122 UUID`);return e}},D=`NaN`,O=`Infinity`,k=`-Infinity`,ue=new Set([D,O,k]);re.id,ie.id,oe.id,se.id,le.id,{id:`number-special`,kind:`scalar`,schema:{type:`number`},matches(e){return e.type===`number`&&e.format===void 0},ownsValue(e){return typeof e==`number`&&!Number.isFinite(e)},encode(e,t,n){return Number.isNaN(e)?D:e===1/0?O:e===-1/0?k:e},decode(e,t,n){if(typeof e==`number`)return e;if(typeof e==`string`){if(e===D)return NaN;if(e===O)return 1/0;if(e===k)return-1/0;let t=Number(e);if(!Number.isNaN(t))return t}if(n.mode===`strict`)throw TypeError(`[number-special] unrecognized wire value at "${n.path}": ${JSON.stringify(e)}. Expected a number or one of ${[...ue].join(`, `)}.`);return NaN}}.id,Object.freeze({typescript:{"date-time":{encode:`$.toISOString()`,decode:`new Date($)`,mode:`native`},int64:{encode:`String($)`,decode:`BigInt($)`,mode:`native`},decimal:{encode:`$.toString()`,decode:`new Decimal($)`,imports:[],dep:{name:`decimal.js`,version:`^10`},mode:`branded`},byte:{encode:`Buffer.from($).toString('base64')`,decode:`new Uint8Array(Buffer.from($, 'base64'))`,mode:`native`},uuid:{encode:`$.toLowerCase()`,decode:`$`,mode:`native`},"number-special":{encode:`numToWire($)`,decode:`wireToNum($)`,mode:`native`}},python:{"date-time":{encode:`$.isoformat()`,decode:`datetime.fromisoformat($)`,imports:[`from datetime import datetime`],mode:`native`},int64:{encode:`str($)`,decode:`int($)`,mode:`native`},decimal:{encode:`str($)`,decode:`Decimal($)`,imports:[`from decimal import Decimal`],mode:`native`},byte:{encode:`b64encode($).decode()`,decode:`b64decode($)`,imports:[`from base64 import b64encode, b64decode`],mode:`native`},uuid:{encode:`str($)`,decode:`UUID($)`,imports:[`from uuid import UUID`],mode:`native`},"number-special":{encode:`num_to_wire($)`,decode:`wire_to_num($)`,mode:`native`}},rust:{"date-time":{encode:`__SCAFFOLD_RUST_DATETIME_ENCODE__`,decode:`__SCAFFOLD_RUST_DATETIME_DECODE__`,imports:[`use chrono::{DateTime, Utc};`],dep:{name:`chrono`,version:`^0.4`},mode:`lib`},int64:{encode:`__SCAFFOLD_RUST_INT64_ENCODE__`,decode:`__SCAFFOLD_RUST_INT64_DECODE__`,imports:[`use serde_with::DisplayFromStr;`],dep:{name:`serde_with`,version:`^3`},mode:`lib`},decimal:{encode:`__SCAFFOLD_RUST_DECIMAL_ENCODE__`,decode:`__SCAFFOLD_RUST_DECIMAL_DECODE__`,imports:[`use rust_decimal::Decimal;`],dep:{name:`rust_decimal`,version:`^1`},mode:`lib`},byte:{encode:`__SCAFFOLD_RUST_BYTE_ENCODE__`,decode:`__SCAFFOLD_RUST_BYTE_DECODE__`,imports:[`use serde_with::base64::Base64;`],dep:{name:`serde_with`,version:`^3`},mode:`lib`},uuid:{encode:`__SCAFFOLD_RUST_UUID_ENCODE__`,decode:`__SCAFFOLD_RUST_UUID_DECODE__`,imports:[`use uuid::Uuid;`],dep:{name:`uuid`,version:`^1`},mode:`lib`},"number-special":{encode:`__SCAFFOLD_RUST_NUMSPECIAL_ENCODE__`,decode:`__SCAFFOLD_RUST_NUMSPECIAL_DECODE__`,mode:`native`}},go:{"date-time":{encode:`__SCAFFOLD_GO_DATETIME_ENCODE__`,decode:`__SCAFFOLD_GO_DATETIME_DECODE__`,imports:[`"time"`],mode:`native`},int64:{encode:`__SCAFFOLD_GO_INT64_ENCODE__`,decode:`__SCAFFOLD_GO_INT64_DECODE__`,imports:[`"strconv"`],mode:`native`},decimal:{encode:`__SCAFFOLD_GO_DECIMAL_ENCODE__`,decode:`__SCAFFOLD_GO_DECIMAL_DECODE__`,imports:[`"github.com/shopspring/decimal"`],dep:{name:`github.com/shopspring/decimal`,version:`v1`},mode:`lib`},byte:{encode:`__SCAFFOLD_GO_BYTE_ENCODE__`,decode:`__SCAFFOLD_GO_BYTE_DECODE__`,imports:[`"encoding/base64"`],mode:`native`},uuid:{encode:`__SCAFFOLD_GO_UUID_ENCODE__`,decode:`__SCAFFOLD_GO_UUID_DECODE__`,imports:[`"github.com/google/uuid"`],dep:{name:`github.com/google/uuid`,version:`v1`},mode:`lib`},"number-special":{encode:`__SCAFFOLD_GO_NUMSPECIAL_ENCODE__`,decode:`__SCAFFOLD_GO_NUMSPECIAL_DECODE__`,mode:`native`}},java:{"date-time":{encode:`$.toString()`,decode:`Instant.parse($)`,imports:[`import java.time.Instant;`],dep:{name:`jackson-datatype-jsr310`,version:`2.x`},mode:`lib`},int64:{encode:`@JsonFormat(shape = JsonFormat.Shape.STRING)`,decode:`@JsonFormat(shape = JsonFormat.Shape.STRING)`,imports:[`import com.fasterxml.jackson.annotation.JsonFormat;`],mode:`native`},decimal:{encode:`@JsonSerialize(using = ToStringSerializer.class)`,decode:`new BigDecimal($)`,imports:[`import java.math.BigDecimal;`,`import com.fasterxml.jackson.databind.annotation.JsonSerialize;`,`import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;`],mode:`native`},byte:{encode:`$`,decode:`$`,mode:`native`},uuid:{encode:`$.toString()`,decode:`UUID.fromString($)`,imports:[`import java.util.UUID;`],mode:`native`},"number-special":{encode:`@JsonSerialize(using = NumberSpecialSerializer.class)`,decode:`@JsonDeserialize(using = NumberSpecialDeserializer.class)`,imports:[`import com.fasterxml.jackson.databind.annotation.JsonSerialize;`,`import com.fasterxml.jackson.databind.annotation.JsonDeserialize;`],mode:`native`}}});var de=new Set([`string`,`number`,`boolean`,`integer`]);function fe(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.$ref!==void 0||t.oneOf||t.anyOf||t.allOf)return!1;let{type:n}=t;return typeof n==`string`?de.has(n):Array.isArray(n)?n.every(e=>de.has(e)||e===`null`):Array.isArray(t.enum)&&t.enum.length>0?t.enum.every(e=>[`string`,`number`,`boolean`].includes(typeof e)):!1}function pe(e){if(!e||typeof e!=`object`)return!1;let t=e.properties;return t===void 0||typeof t!=`object`||!t?!1:Object.values(t).every(fe)}function me(e){let t=[];for(let n of e){let e={...n.capabilities.layer?.envelopeFields,...n.capabilities.envelope?.request};Object.keys(e).length>0&&t.push({id:n.id,envelope:e})}return t}function he(e){let t={},n=e=>{for(let n of[`definitions`,`$defs`]){let r=e[n];if(r)for(let[e,i]of Object.entries(r)){let r=e.startsWith(`#/`)?e:`#/${n}/${e}`;t[r]=i}}};for(let t of Object.values(e.schemas))n(t.input),n(t.output);if(Object.keys(t).length!==0)for(let[n,r]of Object.entries(e.schemas))try{ne(r.input,t),ne(r.output,t)}catch(e){throw Error(`[apigen-core-client] Schema validation failed for function "${n}": ${e.message}`)}}function ge(e,t){let n=[`apigen calling convention: all domain parameters go inside a "data" envelope — e.g. { "data": { ... } }`+(t?`.`:` (an empty object for this zero-parameter tool).`)];return e.length>0&&n.push(`Field(s) ${e.map(e=>`"${e}"`).join(`, `)} are transport-level envelope metadata, NOT domain data — do not nest them under "data". Over MCP they are read from arguments._meta["x-<pluginId>-<field>"] (default pluginId "adhd"); see @adhd/apigen-engine-naming's envelopeMetaKey/envelopeCliFlag/envelopeEnvVar for the HTTP-header / CLI-flag / env-var equivalents.`),n.join(` `)}function _e(e,t,n){he(e);let r={};for(let[i,a]of Object.entries(e.schemas)){let e=n?.[i]??{},o=a.input.properties??{},s=a.input.required??[],c={},l=[],u={};for(let n of t)if(n.envelope&&e[n.id]!==!1)for(let[e,t]of Object.entries(n.envelope))c[e]=t,u[e]=n.id,l.includes(e)||l.push(e);let d={type:`object`,properties:o,additionalProperties:!1,...s.length>0?{required:s}:{}},f=a.safe===!0||pe(a.input),p=a.input.definitions,m=a.input.$defs;r[i]={input:{type:`object`,properties:{...c,data:d},required:[...l,...s.length>0?[`data`]:[]],additionalProperties:!1,description:ge(Object.keys(c),Object.keys(o).length>0),...p?{definitions:p}:{},...m?{$defs:m}:{}},output:a.output,...a.hasCtx?{hasCtx:!0}:{},"x-apigen-safe":f,...Object.keys(u).length>0?{"x-apigen-envelope":u}:{}}}return r}var ve=8;function ye(e,t){try{return t?e.getText(t):e.getText()}catch{try{return e.getText()}catch{return}}}var be=0;async function xe(e,t,n,r){let i=`__ApigenProbe_${process.pid}_${be++}`,a;try{return a=t.addTypeAlias({name:i,type:n}),await r(a.getType())}catch{return}finally{try{a?.remove()}catch{}}}async function Se(e,t,n){if(n>ve)return{};if(e.isString()||e.isStringLiteral())return e.isStringLiteral()?{type:`string`,enum:[e.getLiteralValue()]}:{type:`string`};if(e.isNumber()||e.isNumberLiteral())return e.isNumberLiteral()?{type:`number`,enum:[e.getLiteralValue()]}:{type:`number`};if(e.isBoolean())return{type:`boolean`};if(e.isBooleanLiteral())return{type:`boolean`,const:e.getText()===`true`};if(e.isNull()||e.isUndefined()||e.isVoid())return{type:`null`};if(e.isUnion()){let r=e.getUnionTypes(),i=r.filter(e=>e.isBooleanLiteral()),a=i.some(e=>e.getText()===`true`),o=i.some(e=>e.getText()===`false`),s=!1,c=r.filter(e=>!e.isBooleanLiteral()||!s&&(s=!0,!0));if(r.every(e=>e.isStringLiteral())&&r.length>0)return{type:`string`,enum:r.map(e=>e.getLiteralValue())};if(r.every(e=>e.isNumberLiteral())&&r.length>0)return{type:`number`,enum:r.map(e=>e.getLiteralValue())};let l=await Promise.all(c.map(async e=>e.isBooleanLiteral()?a&&o?{type:`boolean`}:{type:`boolean`,const:a}:Se(e,t,n+1))),u=j(l);return{oneOf:Ee(Te(l)),...u?{discriminator:u}:{},[E]:`union`}}if(e.isArray()){let n=e.getArrayElementType();return{type:`array`,items:n?await t(n.getText()):{}}}if(e.isTuple()){let n=e.getTupleElements(),r=await Promise.all(n.map(e=>t(e.getText())));return{type:`array`,items:r,minItems:r.length,maxItems:r.length}}if(e.isObject()){let n=e.getStringIndexType(),r=e.getNumberIndexType(),i=n??r,a=e.getProperties();if(i&&a.length===0)return{type:`object`,additionalProperties:await t(i.getText())};let o={},s=[];for(let e of a){let n=e.getName(),r=e.getDeclarations()[0],i;if(r)try{i=e.getTypeAtLocation(r)}catch{i=void 0}if(i!==void 0&&i.getCallSignatures().length>0)continue;let a=i===void 0?void 0:ye(i,r);o[n]=a===void 0?{}:await t(a),e.isOptional()||s.push(n)}if(Object.keys(o).length>0){let e=i?await t(i.getText()):!1;return{type:`object`,properties:o,...s.length>0?{required:s}:{},additionalProperties:e}}return{}}return{}}function Ce(e){return Object.keys(e).length===0||e.type===`object`&&e.additionalProperties!==void 0&&e.additionalProperties!==!1&&(e.properties===void 0||Object.keys(e.properties).length===0)}var we=new Set([`required`,`enum`,`type`]);function A(e,t){if(typeof e!=`object`||!e)return JSON.stringify(e)??`undefined`;if(Array.isArray(e)){let n=e.map(e=>A(e));return t!==void 0&&we.has(t)&&n.sort(),`[${n.join(`,`)}]`}let n=e;return`{${Object.keys(n).filter(e=>n[e]!==void 0).sort().map(e=>`${JSON.stringify(e)}:${A(n[e],e)}`).join(`,`)}}`}function Te(e){let t=new Set,n=[];for(let r of e){let e=A(r);t.has(e)||(t.add(e),n.push(r))}return n}function Ee(e){if(e.length<2)return e.slice();let t=e.map(Ce),n=e.map((e,n)=>t[n]?n:-1).filter(e=>e>=0);if(n.length===0||n.length===e.length)return e.slice();let r=e.map((e,n)=>t[n]?-1:n).filter(e=>e>=0);return e.map((n,i)=>t[i]?{allOf:[n,{not:{anyOf:e.filter((e,n)=>n!==i&&(r.includes(n)||t[n]&&n<i))}}]}:n)}function j(e){if(e.length<2)return;let t=[];for(let n of e){if(n.type!==`object`)return;let e=n.properties;if(!e||typeof e!=`object`)return;t.push(e)}let n=Object.keys(t[0]).filter(e=>t.every(t=>Object.prototype.hasOwnProperty.call(t,e)));for(let e of n){let n=[],r=!0;for(let i of t){let t=i[e],a=t&&(t.type===`string`||t.type===`number`),o=t?.enum;if(!a||!Array.isArray(o)||o.length!==1){r=!1;break}n.push(String(o[0]))}if(!r||new Set(n).size!==n.length)continue;let i={};return n.forEach((e,t)=>{i[e]=`#/oneOf/${t}`}),{propertyName:e,mapping:i}}}function M(e,t,n){if(t>6)return{};let r=e.trim();if(r===`string`)return{type:`string`};if(r===`number`)return{type:`number`};if(r===`boolean`)return{type:`boolean`};if(r===`null`||r===`undefined`)return{type:`null`};let i=N[r];if(i!==void 0)return i;if(n?.size){let e=n.get(r);if(e!==void 0){let t=N[e];if(t!==void 0)return t}}if(r.endsWith(`[]`))return{type:`array`,items:M(r.slice(0,-2),t+1,n)};if(r.includes(`|`)){let e=r.split(`|`).map(e=>e.trim());if(e.every(e=>e.startsWith(`'`)))return{type:`string`,enum:e.map(e=>e.replace(/'/g,``))};let i=e.map(e=>M(e,t+1,n)),a=j(i);return{oneOf:i,...a?{discriminator:a}:{},[E]:`union`}}if(r.startsWith(`{`)&&r.endsWith(`}`)){let e=r.slice(1,-1).trim(),i={};for(let r of e.split(`;`).filter(Boolean)){let[e,a]=r.split(`:`).map(e=>e.trim());e&&a&&(i[e.replace(`?`,``)]=M(a,t+1,n))}return{type:`object`,properties:i}}return{}}function De(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];a===`<`||a===`[`||a===`{`||a===`(`?n++:a===`>`||a===`]`||a===`}`||a===`)`?n--:a===`,`&&n===0&&(t.push(e.slice(r,i).trim()),r=i+1)}let i=e.slice(r).trim();return i.length>0&&t.push(i),t}function Oe(e){let t=/^(?:Readonly)?Map<(.+)>$/.exec(e);return t?t[1]:void 0}function ke(e){let t=/^(?:Readonly)?Set<(.+)>$/.exec(e);return t?t[1]:void 0}function Ae(e){let t=e.trim();if(t.startsWith(`readonly `)&&(t=t.slice(9).trim()),!t.startsWith(`[`)||!t.endsWith(`]`))return;let n=t.slice(1,-1).trim();if(n.length!==0)return De(n)}async function je(e,t){let n=e.trim(),r=Oe(n);if(r!==void 0){let e=De(r);if(e.length===2){let[n,r]=await Promise.all([t(e[0]),t(e[1])]);return{type:`array`,items:{type:`array`,items:[n,r],minItems:2,maxItems:2}}}}let i=ke(n);if(i!==void 0)return{type:`array`,items:await t(i),uniqueItems:!0};let a=Ae(n);if(a!==void 0){let e=await Promise.all(a.map(e=>t(e)));return{type:`array`,items:e,minItems:e.length,maxItems:e.length}}}var Me={"decimal.js":`Decimal`},N={Date:{type:`string`,format:`date-time`},bigint:{type:`string`,format:`int64`},Uint8Array:{type:`string`,format:`byte`},Buffer:{type:`string`,format:`byte`},URL:{type:`string`,format:`uri`},RegExp:{type:`string`,format:`regex`},Decimal:{type:`string`,format:`decimal`}},Ne={Uint8Array:`byte`,Buffer:`byte`,Decimal:`decimal`};function Pe(e){let t=new Map;for(let n of e.getImportDeclarations()){let e=Me[n.getModuleSpecifierValue()];if(!e)continue;let r=n.getDefaultImport();if(r){let n=r.getText();n!==e&&t.set(n,e)}for(let r of n.getNamedImports()){let n=r.getAliasNode()?.getText()??r.getName();n!==e&&t.set(n,e)}}return t}function Fe(e,t){return n=>{n.addNodeParser({supportsNode(e){if(e.kind!==t)return!1;let n=e.typeName?.escapedText??e.typeName?.right?.escapedText;return n!==void 0&&Object.prototype.hasOwnProperty.call(Ne,n)},createType(e){let t=e.typeName?.escapedText??e.typeName?.right?.escapedText,{AnnotatedType:n,StringType:r}=F();return new n(new r,{format:Ne[t]},!1)}}),n.addNodeParser({supportsNode(t){return t.kind===e},createType(){let{AnnotatedType:e,StringType:t}=F();return new e(new t,{format:`int64`},!1)}})}}var P;function F(){return P||(P=p(`ts-json-schema-generator`),P)}var I;function Ie(){if(I)return I;try{let e=u.default.dirname(p.resolve(`ts-json-schema-generator/package.json`));I=p(p.resolve(`typescript`,{paths:[e]}))}catch{I=p(`typescript`)}return I}var L=new Map;function Le(){let e=process.env.APIGEN_PROGRAM_CACHE,t=e===void 0?NaN:Number(e);return Number.isFinite(t)&&t>=0?t:8}function Re(e){let t=L.get(e);return t&&(L.delete(e),L.set(e,t)),t}function ze(e,t){let n=Le();if(n!==0)for(L.delete(e),L.set(e,t);L.size>n;){let e=L.keys().next().value;L.delete(e)}}function Be(e,t){return`${e}\u0000${t??``}`}var Ve=new Set([`zod`,/^zod\/./]);function He(e){for(let t of e.getImportDeclarations()){let e=t.getModuleSpecifierValue();for(let t of Ve)if(typeof t==`string`){if(e===t)return!0}else if(t.test(e))return!0}return!1}function Ue(e){for(let t of[`$defs`,`definitions`]){let n=e[t];if(!n||typeof n!=`object`)continue;let r=Object.keys(n);if(r.length===0)continue;let i=new Set(r.filter(e=>/zod/i.test(e)));for(let[e,t]of Object.entries(n)){if(i.has(e)||typeof t!=`object`||!t)continue;let n=t,r=typeof n.$ref==`string`?n.$ref:``;if(r){for(let t of i)if(r.includes(t)){i.add(e);break}}}for(let e of i)delete n[e]}We(e)}function We(e,t){if(!e||typeof e!=`object`)return;let n=t??new WeakSet;if(!n.has(e)){n.add(e);for(let t of Object.keys(e))if(t===`$ref`&&typeof e[t]==`string`){let n=e[t];/zod/i.test(n)&&delete e[t]}for(let[,t]of Object.entries(e))if(typeof t==`object`&&t){if(Array.isArray(t))for(let e of t)typeof e==`object`&&e&&We(e,n);else We(t,n)}}}function Ge(e){let t=new Set;for(let n of[`$defs`,`definitions`]){let r=e[n];if(r&&typeof r==`object`)for(let e of Object.keys(r))t.add(e)}let n=Ke(e,t);if(n.length>0)throw Error(`[apigen-core-client] Generated schema contains ${n.length} unresolvable $ref(s): ${n.join(`, `)}. This usually means zod-internal definitions were stripped but $ref references to them remain. Check the source file's imports or the ts-json-schema-generator output.`)}function Ke(e,t){if(!e||typeof e!=`object`)return[];let n=[];for(let[r,i]of Object.entries(e))if(r===`$ref`&&typeof i==`string`){let e=i.match(/#\/(?:\$defs|definitions)\/(.+)$/);e&&!t.has(e[1])&&n.push(i)}else if(typeof i==`object`&&i){if(Array.isArray(i))for(let e of i)typeof e==`object`&&e&&n.push(...Ke(e,t));else n.push(...Ke(i,t))}return n}function qe(e){let t=e.anyOf;if(!Array.isArray(t)||t.length<2)return e;let n=t,r=j(n),i={...e};return delete i.anyOf,{...i,oneOf:n,...r?{discriminator:r}:{},[E]:i[`x-apigen-logical`]??`union`}}function Je(e,t,n){let{DEFAULT_CONFIG:r}=p(`ts-json-schema-generator/dist/src/Config.js`),i={...r,...e},a=i.path,o=t?Be(a,i.tsconfig):void 0,s;t&&(s=n?n.statVersion(a):v(a));let c;if(o!==void 0){let e=n?.generatorCache.get(o)??Re(o);e&&e.version===s&&(c=e.gen)}if(!c){let{createProgram:e}=p(`ts-json-schema-generator/dist/factory/program.js`),{createParser:t,createFormatter:r,SchemaGenerator:a}=F(),l=Ie(),u=Fe(l.SyntaxKind.BigIntKeyword,l.SyntaxKind.TypeReference),d=e(i);if(c=new a(d,t(d,i,u),r(i),i),n&&n.stats.generatorsBuilt++,o!==void 0&&s!==void 0){let e={version:s,gen:c};ze(o,e),n?.generatorCache.set(o,e)}}let l=c.createSchema(i.type);return Ue(l),Ge(l),l}function Ye(e,t){let n=e.trim();if(n=Qe(n),t?.size){let e=t.get(n);if(e!==void 0)return e}let r=n.match(/^ReadonlyArray<(.+)>$/);for(r&&(n=`${r[1].trim()}[]`);n.startsWith(`readonly `);)n=n.slice(9).trim();return n}function Xe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var Ze=Object.entries(Me).map(([e,t])=>({pattern:RegExp(`import\\(["'][^"']*${Xe(e)}[^"']*["']\\)\\.\\w+`,`g`),key:t}));function Qe(e){let t=e;for(let{pattern:e,key:n}of Ze)t=t.replace(e,n);return t}function $e(e,t){let n=Qe(e);for(let[e,r]of t)n=n.replace(RegExp(`\\b${Xe(e)}\\b`,`g`),r);return n}async function R(e,t,n,r,i,a){let o=t.getFilePath(),s=`${o}${r??``}${n}`,c=a??new Set;if(c.has(s))return{};if(!i){let i=new Set(c);return i.add(s),et(e,t,n,r,void 0,i)}let l=i.schemaCache.get(s);if(l!==void 0)return i.stats.schemaCacheHits++,l;let u=x(o,r,i.statVersion(o)),d=u.get(n);if(d!==void 0)return i.stats.schemaCacheHits++,i.schemaCache.set(s,Promise.resolve(d)),d;i.stats.schemaCacheMisses++;let f=new Set(c);f.add(s);let p=et(e,t,n,r,i,f).then(e=>(u.set(n,e),e)).catch(e=>{throw i.schemaCache.delete(s),e});return i.schemaCache.set(s,p),p}async function et(e,t,n,r,i,a){if([`void`,`undefined`,`null`,`Promise<void>`].includes(n))return{type:`null`};let o;if(i){let e=i.aliasCache.get(t);o=e??Pe(t),e||i.aliasCache.set(t,o)}else o=Pe(t);let s=Ye(n,o),c=N[s];if(c!==void 0)return c;let l=await je(s,n=>R(e,t,n,r,i,a));if(l!==void 0)return l;let u=i?.zodImportCache.get(t)??He(t);if(i&&i.zodImportCache.set(t,u),!u)try{return qe(Je({path:t.getFilePath(),type:s,skipTypeCheck:!0,tsconfig:r,topRef:!1},!0,i))}catch{}try{let n=await xe(e,t,s,n=>Se(n,n=>R(e,t,n,r,i,a),0));if(n!==void 0)return n}catch{}return M($e(s,o),0,o)}function z(e,t,n){if(e?.hasInitializer()){let t=e.getInitializer();if(t)return t.getText()}return tt(n,t)}function tt(e,t){let n=e?.getJsDocs?.()??[],r=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),i=RegExp(`\\[\\s*${r}\\s*=\\s*([^\\]]+)\\]`);for(let e of n)for(let t of e.getTags()){if(t.getTagName()!==`param`)continue;let e=t.getText().match(i);if(e)return e[1].trim()}}function nt(e){let t=e.trim(),n=t.match(/^(['"`])([\s\S]*)\1$/);if(n)return n[2];if(t===`true`)return!0;if(t===`false`)return!1;if(t===`null`)return null;if(t!==`undefined`){if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);try{return JSON.parse(t)}catch{return t}}}function rt(e,t){let n=nt(t);if(n===void 0)return;e.default=n;let r=typeof n==`string`?n:JSON.stringify(n),i=typeof e.description==`string`?e.description:void 0;e.description=i?`${i} (default: ${r})`:`(default: ${r})`}var B;function it(){return B||(B=p(`ts-morph`).SyntaxKind,B)}function V(e){try{if(!e)return;let t=it();if(e.getKind()!==t.TypeReference)return;let n=e;if(n.getTypeArguments().length>0)return;let r=n.getTypeName();if(r.getKind()!==t.Identifier)return;let i=r.getSymbol();if(!i)return;let a=i.getDeclarations().find(e=>e.getKindName()===`TypeAliasDeclaration`);if(!a)return;let o=a,s=o.getType();if(!(s.isString()||s.isNumber()||s.isBoolean()))return;let c=o.getJsDocs();for(let e of c)for(let t of e.getTags())if(t.getTagName()===`format`){let e=t.getCommentText();if(e!==void 0)return e.trim()}return}catch{return}}var at=new Set([`AsyncGenerator`,`AsyncIterableIterator`,`AsyncIterable`,`Generator`,`IterableIterator`,`Iterable`,`ApiStream`]);function ot(e){let t=[],n=0,r=``;for(let i of e)i===`<`||i===`(`||i===`[`||i===`{`?n++:(i===`>`||i===`)`||i===`]`||i===`}`)&&n--,i===`,`&&n===0?(t.push(r.trim()),r=``):r+=i;return r.trim().length>0&&t.push(r.trim()),t}function H(e){let t=e.trim(),n=t.indexOf(`<`);if(n===-1||!t.endsWith(`>`))return null;let r=t.slice(0,n),i=r.includes(`.`)?r.slice(r.lastIndexOf(`.`)+1):r;if(!at.has(i))return null;let a=0;for(let e=n;e<t.length;e++){let n=t[e];if(n===`<`)a++;else if(n===`>`&&(a--,a===0&&e!==t.length-1))return null}if(a!==0)return null;let o=ot(t.slice(n+1,-1));return o.length>0?o[0]:null}async function st(e){let t=e.session===void 0,n=te(e.session??T());try{return await ct(e,n)}finally{t&&n.dispose()}}async function ct(e,t){let{sourceFile:n,namespace:r=``,dropFileSegment:i=!1,tsconfig:a}=e,o=t.projectFor(a),s=t.sourceFileFor(n,a),c=q(pt(u.default.basename(n))),l=i?null:c,d=q(r),f=[];for(let[e,n]of s.getExportedDeclarations()){if(e==="default"||Y(e))continue;let r=ht(n);if(r){let n=r.getSignature(),i=gt(n,r),c=n.getReturnType().getText(),u=U(n);f.push(await W(o,s,d,l,e,i,c,r.isAsync(),a,t,u));continue}let i=n.find(e=>e.getKindName()===`VariableDeclaration`);if(!i)continue;let c=i.getInitializer(),u=c?.getKindName();if(c&&[`ArrowFunction`,`FunctionExpression`].includes(u??``)){let n=i.getType().getCallSignatures();if(n.length===0)continue;let r=n[0],u=_t(r,i,i.getVariableStatement()),p=r.getReturnType().getText(),m=U(r),h=c.isAsync();f.push(await W(o,s,d,l,e,u,p,h,a,t,m))}else if(u===`ObjectLiteralExpression`){let n=i.getType();for(let r of n.getProperties()){let n=r.getName();if(Y(n))continue;let c=r.getTypeAtLocation(i).getCallSignatures();if(c.length===0)continue;let u=c[0],p=_t(u,i,i.getVariableStatement()),m=u.getReturnType().getText(),h=U(u),g=[...l?[l]:[],q(e),q(n)];f.push(await G(o,s,d,g,n,p,m,!1,a,t,h))}}else{let n=i.getType(),r=n.getText();if(X(n,i)){let n=await R(o,s,r,a,t);f.push(dt(d,l,e,n))}else console.warn(`[apigen-core] Skipping non-callable, non-serializable export: ${e}`)}}let p=s.getDefaultExportSymbol();if(p){let e=s.getExportAssignment(e=>!e.isExportEquals());if(e){let n=e.getExpression(),r=n.getKindName();if([`ArrowFunction`,`FunctionExpression`].includes(r)){let r=n.getType().getCallSignatures();if(r.length>0){let i=r[0],c=J(i,e),u=i.getReturnType().getText(),p=U(i),m=n.isAsync();f.push(await W(o,s,d,l,`default`,c,u,m,a,t,p))}}else{let r=n.getType();for(let n of r.getProperties()){let r=n.getName();if(Y(r))continue;let i=n.getTypeAtLocation(e).getCallSignatures();if(i.length===0)continue;let c=i[0],u=J(c,e),p=c.getReturnType().getText(),m=U(c),h=[...l?[l]:[],q(`default`),q(r)];f.push(await G(o,s,d,h,r,u,p,!1,a,t,m))}}}else{let e=p.getDeclarations();for(let n of e){if(n.getKindName()!==`FunctionDeclaration`)continue;let e=n,r=e.getName(),i=r&&r.length>0?r:`default`,c=e.getSignature(),u=gt(c,e),p=c.getReturnType().getText(),m=U(c);f.push(await W(o,s,d,l,i,u,p,e.isAsync(),a,t,m))}}}let m=mt(s);if(m.length>0)for(let{name:e,sig:n}of m){if(Y(e))continue;let r=J(n),i=n.getReturnType().getText(),c=U(n),u=[...l?[l]:[],q(e)];f.push(await G(o,s,d,u,e,r,i,!1,a,t,c))}return f}function lt(e,t,n,r){let i=new Set,a=e=>{if(Array.isArray(e))return e.map(a);if(!e||typeof e!=`object`||i.has(e))return e;i.add(e);try{let i=e,o={};for(let[e,s]of Object.entries(i)){if(e===`definitions`||e===`$defs`){let i=e,o=t[i];for(let[e,t]of Object.entries(s)){let s=a(t),c=o[e];if(c!==void 0&&JSON.stringify(c)!==JSON.stringify(s))throw Error(`[apigen-core-client] Function "${n}": param "${r}" contributes a "${i}.${e}" definition that conflicts with an identically-named definition already hoisted from another param/output in the same function. Two structurally different types share the same generated definition key, so apigen cannot safely merge them into one function-level schema.`);o[e]=s}continue}o[e]=a(s)}return o}finally{i.delete(e)}};return a(e)}function ut(e,t){if(!t||e.format!==void 0||`$ref`in e||`properties`in e||`items`in e)return;let n=e.type;(n===`string`||n===`number`||n===`integer`||n===`boolean`)&&(e.format=t)}function U(e){try{return V(e.getDeclaration()?.getReturnTypeNode())}catch{return}}async function W(e,t,n,r,i,a,o,s,c,l,u){let d=q(i);return G(e,t,n,r?[r,d]:[d],i,a,o,s,c,l,u)}async function G(e,t,n,r,i,a,o,s,c,l,u){let d=a.length>0&&a[0].name===`ctx`,f=a.filter(e=>e.name!==`ctx`),p=f.filter(e=>!e.optional).map(e=>e.name),m={},h={definitions:{},$defs:{}};for(let n of f){let r=lt(await R(e,t,n.type,c,l),h,i,n.name);n.defaultValue!==void 0&&rt(r,n.defaultValue),ut(r,n.format),m[n.name]=r}let g=o.replace(/^Promise<(.+)>$/,`$1`).trim(),_=H(g),v=_!==null,y=v?_:g,b=await R(e,t,y,c,l),x={definitions:{},$defs:{}},S=lt(b,x,i,`<return>`),C=u?{...S}:S;ut(C,u),Object.keys(x.definitions).length>0&&(C.definitions={...C.definitions,...x.definitions}),Object.keys(x.$defs).length>0&&(C.$defs={...C.$defs,...x.$defs});let w={type:`object`,properties:m,required:p,...Object.keys(h.definitions).length>0?{definitions:h.definitions}:{},...Object.keys(h.$defs).length>0?{$defs:h.$defs}:{}};return{id:ft(n,r),host:`ts`,namespace:n,path:r,kind:`action`,async:s,streaming:v,safe:!1,input:w,output:C,envelope:{},typeText:{lang:`ts`,input:vt(a),output:y},...d?{hasCtx:!0}:{}}}function dt(e,t,n,r){let i=q(n),a=t?[t,i]:[i];return{id:ft(e,a),host:`ts`,namespace:e,path:a,kind:`query`,async:!1,streaming:!1,safe:!0,input:{type:`object`,properties:{},required:[]},output:r,envelope:{},typeText:null}}function ft(e,t){return(e.raw?[e,...t]:t).map(e=>e.words.join(`-`)).join(`/`)}function K(e){return e.split(/[-_.]+/).flatMap(e=>e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1_$2`).replace(/([a-z\d])([A-Z])/g,`$1_$2`).split(`_`).filter(Boolean)).map(e=>e.toLowerCase()).filter(Boolean)}function q(e){return{raw:e,words:K(e)}}function pt(e){return e.replace(/\.[^.]+$/,``).replace(/[._]+/g,`-`)}function mt(e){let t=[];for(let n of e.getStatements()){if(n.getKindName()!==`ExpressionStatement`)continue;let e=n.getExpression();if(e.getKindName()!==`BinaryExpression`)continue;let r=e;if(r.getLeft().getText().trim()!==`module.exports`||r.getOperatorToken().getKindName()!==`EqualsToken`)continue;let i=r.getRight(),a=i.getType();for(let e of a.getProperties()){let n=e.getTypeAtLocation(i).getCallSignatures();n.length!==0&&t.push({name:e.getName(),sig:n[0]})}}return t}function ht(e){let t;for(let n of e){if(n.getKindName()!==`FunctionDeclaration`)continue;let e=n;if(t||=e,e.getBody())return e}return t}function gt(e,t){return e.getParameters().map(n=>{let r=n.getDeclarations(),i=r.length>0&&r[0].getKindName()===`Parameter`?r[0]:null,a=n.isOptional()||(i?.hasInitializer()??!1)||(i?.hasQuestionToken?.()??!1);return{name:n.getName(),type:n.getTypeAtLocation(e.getDeclaration()).getText(),optional:a,defaultValue:z(i,n.getName(),t),format:V(i?.getTypeNode())}})}function _t(e,t,n){return e.getParameters().map(e=>{let r=e.getDeclarations(),i=r.length>0&&r[0].getKindName()===`Parameter`?r[0]:null,a=e.isOptional()||(i?.hasInitializer()??!1)||(i?.hasQuestionToken?.()??!1);return{name:e.getName(),type:e.getTypeAtLocation(t).getText(),optional:a,defaultValue:z(i,e.getName(),n??t),format:V(i?.getTypeNode())}})}function J(e,t){return e.getParameters().map(e=>{let n=e.getDeclarations(),r=n.length>0&&n[0].getKindName()===`Parameter`?n[0]:null,i=e.isOptional()||(r?.hasInitializer()??!1)||(r?.hasQuestionToken?.()??!1);return{name:e.getName(),type:r?r.getType().getText():e.getValueDeclaration()?.getType()?.getText()??`unknown`,optional:i,defaultValue:z(r,e.getName(),t),format:V(r?.getTypeNode())}})}function vt(e){let t=e.filter(e=>e.name!==`ctx`);return t.length===0?`()`:`(`+t.map(e=>`${e.name}${e.optional?`?`:``}: ${e.type}`).join(`, `)+`)`}function Y(e){return!!(e===`__samples__`||e.startsWith(`__`))}function X(e,t,n=new Set){if(e.getCallSignatures().length>0||e.getConstructSignatures().length>0)return!1;if(e.isString()||e.isNumber()||e.isBoolean()||e.isNull()||e.isUndefined()||e.isStringLiteral()||e.isNumberLiteral()||e.isBooleanLiteral()||e.isEnumLiteral())return!0;if(e.isArray()||e.isReadonlyArray()){let r=e.getArrayElementType();return r?X(r,t,n):!1}if(e.isTuple())return e.getTupleElements().every(e=>X(e,t,n));if(e.isUnion())return e.getUnionTypes().every(e=>X(e,t,n));if(e.isIntersection())return e.getIntersectionTypes().every(e=>X(e,t,n));if(e.isObject()){let r=e.getText(t);if(n.has(r))return!0;n.add(r);let i=e.getStringIndexType(),a=e.getNumberIndexType();if(i||a)return[i,a].every(e=>!e||X(e,t,n));let o=e.getProperties();return o.length===0||o.every(e=>X(e.getTypeAtLocation(t),t,n))}return!1}function yt(e,t){return async n=>{let r=()=>t(n);for(let t=e.length-1;t>=0;t--){let i=e[t],a=r;r=()=>i(n,a)}return r()}}function bt(e,t){return yt(e,t)}function xt(e,t,n={}){return bt(e.map(e=>e.capabilities.extractLayer).filter(e=>!!e).map(e=>e.createLayer?e.createLayer(n):e.layer).filter(e=>!!e),t)}var Z;function St(){return Z||(Z=p(`ts-morph`).Scope,Z)}async function Ct(e){let t=e.session===void 0,n=te(e.session??T());try{return await wt(e,n)}finally{t&&n.dispose()}}async function wt(e,t){let{sourceFile:n,namespace:r=``,tsconfig:i,includeInstances:a=!1}=e,o=t.projectFor(i),s=t.sourceFileFor(n,i),c=$(Et(u.default.basename(n))),l=$(r),d=[];for(let[e,n]of s.getExportedDeclarations()){let r=n.find(e=>e.getKindName()===`ClassDeclaration`);if(!r)continue;let u=e==="default"?r.getName():e;if(!u||At(u))continue;let f=$(u),p=St();for(let e of r.getStaticMethods()){let n=e.getName();if(At(n))continue;let r=e.getScope();if(r===p.Private||r===p.Protected)continue;let a=e.getSignature(),u=Dt(a,e),m=a.getReturnType().getText(),h=e.isAsync(),g=[c,f,$(n)];d.push(await Tt(o,s,l,g,u,m,h,i,t))}if(a){{let e=r.getConstructors()[0]??null,n=[];e&&(n=Dt(e.getSignature(),e));let a=[c,f],u=Q(l,a),p=n.filter(e=>e.name!==`ctx`),m=p.filter(e=>!e.optional).map(e=>e.name),h={};for(let e of p)h[e.name]=await R(o,s,e.type,i,t);d.push({id:u,host:`ts`,namespace:l,path:a,kind:`constructor`,async:!1,streaming:!1,safe:!1,input:{type:`object`,properties:h,required:m},output:{type:`object`,properties:{instanceId:{type:`string`}},required:[`instanceId`]},envelope:{},typeText:{lang:`ts`,input:kt(n),output:`{ instanceId: string }`}})}for(let e of r.getInstanceMethods()){let n=e.getName();if(At(n))continue;let r=e.getScope();if(r===p.Private||r===p.Protected)continue;let a=e.getSignature(),u=Dt(a,e),m=a.getReturnType().getText(),h=e.isAsync(),g=[c,f,$(n)],_=Q(l,g),v=u.filter(e=>e.name!==`ctx`),y=v.filter(e=>!e.optional).map(e=>e.name),b={};for(let e of v)b[e.name]=await R(o,s,e.type,i,t);let x=m.replace(/^Promise<(.+)>$/,`$1`).trim(),S=H(x),C=S!==null,w=C?S:x,ee=await R(o,s,w,i,t);d.push({id:_,host:`ts`,namespace:l,path:g,kind:`instance-method`,async:h,streaming:C,safe:!1,input:{type:`object`,properties:b,required:y},output:ee,envelope:{type:`object`,properties:{instanceId:{type:`string`}},required:[`instanceId`]},typeText:{lang:`ts`,input:Ot(u),output:w}})}}}return d}async function Tt(e,t,n,r,i,a,o,s,c){let l=i.filter(e=>e.name!==`ctx`),u=l.filter(e=>!e.optional).map(e=>e.name),d={};for(let n of l)d[n.name]=await R(e,t,n.type,s,c);let f=a.replace(/^Promise<(.+)>$/,`$1`).trim(),p=H(f),m=p!==null,h=m?p:f,g=await R(e,t,h,s,c);return{id:Q(n,r),host:`ts`,namespace:n,path:r,kind:`action`,async:o,streaming:m,safe:!1,input:{type:`object`,properties:d,required:u},output:g,envelope:{},typeText:{lang:`ts`,input:Ot(i),output:h}}}function Q(e,t){return(e.raw?[e,...t]:t).map(e=>e.words.join(`-`)).join(`/`)}function $(e){return{raw:e,words:K(e)}}function Et(e){return e.replace(/\.[^.]+$/,``).replace(/[._]+/g,`-`)}function Dt(e,t){return e.getParameters().map(e=>{let n=e.getDeclarations(),r=n.length>0&&n[0].getKindName()===`Parameter`?n[0]:null,i=e.isOptional()||(r?.hasInitializer()??!1)||(r?.hasQuestionToken?.()??!1);return{name:e.getName(),type:e.getTypeAtLocation(t).getText(),optional:i}})}function Ot(e){let t=e.filter(e=>e.name!==`ctx`);return t.length===0?`()`:`(`+t.map(e=>`${e.name}${e.optional?`?`:``}: ${e.type}`).join(`, `)+`)`}function kt(e){return e.length===0?`()`:`(`+e.map(e=>`${e.name}${e.optional?`?`:``}: ${e.type}`).join(`, `)+`)`}function At(e){return!!(e===`__samples__`||e.startsWith(`__`)||e.startsWith(`_`))}var jt=new Map([[`.ts`,`ts`],[`.tsx`,`ts`],[`.mts`,`ts`],[`.cts`,`ts`],[`.py`,`py`],[`.rs`,`rust`],[`.go`,`go`],[`.java`,`java`]]);function Mt(e){let t=u.extname(e).toLowerCase();return jt.get(t)}function Nt(e){return e.language??`ts`}function Pt(e,t){let n=Mt(t);return n!==void 0&&n===Nt(e)}function Ft(e,t){return t.filter(t=>Pt(e,t))}function It(e){return{oneOf:[{type:`object`,required:[`index`,`status`,`value`],properties:{index:{type:`integer`},status:{type:`string`,enum:[`fulfilled`]},value:e}},{type:`object`,required:[`index`,`status`,`chunks`],properties:{index:{type:`integer`},status:{type:`string`,enum:[`fulfilled`]},chunks:{type:`array`}}},{type:`object`,required:[`index`,`status`,`reason`],properties:{index:{type:`integer`},status:{type:`string`,enum:[`rejected`]},reason:{},chunksDelivered:{type:`integer`}}}]}}function Lt(e){return{operationConst:e.id,itemsSchema:e.input,resultSchema:It(e.output)}}function Rt(e,t={}){let n=new Set(t.exclude??[]),r=new Map;for(let t of e){if(n.has(t.id))continue;let e=r.get(t.kind);e?e.push(t):r.set(t.kind,[t])}return r}function zt(e){return{type:`string`,enum:[e]}}function Bt(e,t){return{type:`object`,required:[`input`],properties:{input:{type:`object`,required:[`operation`,`items`],properties:{operation:t,items:{type:`array`,items:e.itemsSchema},concurrency:{type:`number`},mode:{type:`string`,enum:[`parallel`,`serial`,`chained`]},onItemError:{type:`string`,enum:[`continue`,`abort`]},itemTimeoutMs:{type:`number`}},additionalProperties:!0}},additionalProperties:!1}}function Vt(e,t){let n={},r={},i=[[`definitions`,n],[`$defs`,r]];for(let n of e){let e=t(n);for(let[t,r]of i){let i=e[t];if(i)for(let[e,a]of Object.entries(i)){let i=r[e];if(i!==void 0&&JSON.stringify(i)!==JSON.stringify(a))throw Error(`[apigen-core-client] _batch mount: operation "${n.id}" contributes a "${t}.${e}" definition that conflicts with an identically-named definition already hoisted from another batched operation. Two structurally different types share the same generated definition key, so apigen cannot safely merge them into one _batch/<kind> schema.`);r[e]=a}}}return{...Object.keys(n).length>0?{definitions:n}:{},...Object.keys(r).length>0?{$defs:r}:{}}}function Ht(e){if(e.length===0)throw Error(`buildBatchKindSchema: at least one operation is required`);let t=e.map(Lt),n=Vt(e,e=>e.input),r=Vt(e,e=>e.output);if(e.length===1){let[i]=e,[a]=t;return{input:{...Bt(a,zt(i.id)),...n},output:{type:`array`,items:a.resultSchema,...r}}}let i=e.map((e,n)=>Bt(t[n],zt(e.id))),a=j(i);return{input:{oneOf:i,...a?{discriminator:a}:{},...n},output:{oneOf:t.map(e=>({type:`array`,items:e.resultSchema})),...r},...a?{discriminator:a}:{}}}function Ut(e,t={}){let n=Rt(e.operations,t),r=[];for(let[t,i]of n){let{input:n,output:a}=Ht(i),o=f(`_batch/${t}`,e,{kind:t,safe:t===`query`,input:n,output:a});r.push({...o,operationIds:i.map(e=>e.id)})}return r}exports.buildBatchKindSchema=Ht,exports.buildBatchMountedOperations=Ut,exports.clearPersistentProjectCache=S,exports.collectLocalImportPaths=ee,exports.composeOnion=yt,exports.composeSchemas=_e,exports.createExtractInvoker=bt,exports.createExtractInvokerFromPlugins=xt,exports.createExtractionSession=T,exports.deriveBatchOperationBranch=Lt,exports.effectiveLanguage=Nt,exports.extract=st,exports.extractClasses=Ct,exports.groupBatchableOperationsByKind=Rt,exports.isPrimitiveOnlyInputSchema=pe,exports.languageOfSource=Mt,exports.pluginConsumesSource=Pt,exports.pluginsToEnvelopeMiddlewares=me,exports.sourcesForPlugin=Ft,exports.syntheticOp=f,exports.tokenize=K;
|