@samarium.sdk/new 0.25.1 → 0.26.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.
Files changed (2) hide show
  1. package/bin/samarium +156 -86
  2. package/package.json +2 -2
package/bin/samarium CHANGED
@@ -344,7 +344,7 @@ ${F.comment}`:F.comment}this.doc.range[2]=F.offset;break}default:this.errors.pus
344
344
  `)+1;while(F!==0)this.onNewLine(this.offset+F),F=this.source.indexOf(`
345
345
  `,F)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(D){let F=D.items[D.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,F.value){let P="end"in F.value?F.value.end:void 0;if((Array.isArray(P)?P[P.length-1]:void 0)?.type==="comment")P?.push(this.sourceToken);else D.items.push({start:[this.sourceToken]})}else if(F.sep)F.sep.push(this.sourceToken);else F.start.push(this.sourceToken);return;case"space":case"comment":if(F.value)D.items.push({start:[this.sourceToken]});else if(F.sep)F.sep.push(this.sourceToken);else{if(this.atIndentedComment(F.start,D.indent)){let B=D.items[D.items.length-2]?.value?.end;if(Array.isArray(B)){Array.prototype.push.apply(B,F.start),B.push(this.sourceToken),D.items.pop();return}}F.start.push(this.sourceToken)}return}if(this.indent>=D.indent){let P=!this.onKeyLine&&this.indent===D.indent,B=P&&(F.sep||F.explicitKey)&&this.type!=="seq-item-ind",Z=[];if(B&&F.sep&&!F.value){let X=[];for(let q=0;q<F.sep.length;++q){let J=F.sep[q];switch(J.type){case"newline":X.push(q);break;case"space":break;case"comment":if(J.indent>D.indent)X.length=0;break;default:X.length=0}}if(X.length>=2)Z=F.sep.splice(X[1])}switch(this.type){case"anchor":case"tag":if(B||F.value)Z.push(this.sourceToken),D.items.push({start:Z}),this.onKeyLine=!0;else if(F.sep)F.sep.push(this.sourceToken);else F.start.push(this.sourceToken);return;case"explicit-key-ind":if(!F.sep&&!F.explicitKey)F.start.push(this.sourceToken),F.explicitKey=!0;else if(B||F.value)Z.push(this.sourceToken),D.items.push({start:Z,explicitKey:!0});else this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]});this.onKeyLine=!0;return;case"map-value-ind":if(F.explicitKey)if(!F.sep)if(R0(F.start,"newline"))Object.assign(F,{key:null,sep:[this.sourceToken]});else{let X=y8(F.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:X,key:null,sep:[this.sourceToken]}]})}else if(F.value)D.items.push({start:[],key:null,sep:[this.sourceToken]});else if(R0(F.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:Z,key:null,sep:[this.sourceToken]}]});else if(Vz(F.key)&&!R0(F.sep,"newline")){let X=y8(F.start),q=F.key,J=F.sep;J.push(this.sourceToken),delete F.key,delete F.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:X,key:q,sep:J}]})}else if(Z.length>0)F.sep=F.sep.concat(Z,this.sourceToken);else F.sep.push(this.sourceToken);else if(!F.sep)Object.assign(F,{key:null,sep:[this.sourceToken]});else if(F.value||B)D.items.push({start:Z,key:null,sep:[this.sourceToken]});else if(R0(F.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]});else F.sep.push(this.sourceToken);this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let X=this.flowScalar(this.type);if(B||F.value)D.items.push({start:Z,key:X,sep:[]}),this.onKeyLine=!0;else if(F.sep)this.stack.push(X);else Object.assign(F,{key:X,sep:[]}),this.onKeyLine=!0;return}default:{let X=this.startBlockValue(D);if(X){if(X.type==="block-seq"){if(!F.explicitKey&&F.sep&&!R0(F.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else if(P)D.items.push({start:Z});this.stack.push(X);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(D){let F=D.items[D.items.length-1];switch(this.type){case"newline":if(F.value){let P="end"in F.value?F.value.end:void 0;if((Array.isArray(P)?P[P.length-1]:void 0)?.type==="comment")P?.push(this.sourceToken);else D.items.push({start:[this.sourceToken]})}else F.start.push(this.sourceToken);return;case"space":case"comment":if(F.value)D.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(F.start,D.indent)){let B=D.items[D.items.length-2]?.value?.end;if(Array.isArray(B)){Array.prototype.push.apply(B,F.start),B.push(this.sourceToken),D.items.pop();return}}F.start.push(this.sourceToken)}return;case"anchor":case"tag":if(F.value||this.indent<=D.indent)break;F.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==D.indent)break;if(F.value||R0(F.start,"seq-item-ind"))D.items.push({start:[this.sourceToken]});else F.start.push(this.sourceToken);return}if(this.indent>D.indent){let P=this.startBlockValue(D);if(P){this.stack.push(P);return}}yield*this.pop(),yield*this.step()}*flowCollection(D){let F=D.items[D.items.length-1];if(this.type==="flow-error-end"){let P;do yield*this.pop(),P=this.peek(1);while(P&&P.type==="flow-collection")}else if(D.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":if(!F||F.sep)D.items.push({start:[this.sourceToken]});else F.start.push(this.sourceToken);return;case"map-value-ind":if(!F||F.value)D.items.push({start:[],key:null,sep:[this.sourceToken]});else if(F.sep)F.sep.push(this.sourceToken);else Object.assign(F,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":if(!F||F.value)D.items.push({start:[this.sourceToken]});else if(F.sep)F.sep.push(this.sourceToken);else F.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let B=this.flowScalar(this.type);if(!F||F.value)D.items.push({start:[],key:B,sep:[]});else if(F.sep)this.stack.push(B);else Object.assign(F,{key:B,sep:[]});return}case"flow-map-end":case"flow-seq-end":D.end.push(this.sourceToken);return}let P=this.startBlockValue(D);if(P)this.stack.push(P);else yield*this.pop(),yield*this.step()}else{let P=this.peek(2);if(P.type==="block-map"&&(this.type==="map-value-ind"&&P.indent===D.indent||this.type==="newline"&&!P.items[P.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&P.type!=="flow-collection"){let B=T5(P),Z=y8(B);Lz(D);let X=D.end.splice(1,D.end.length);X.push(this.sourceToken);let q={type:"block-map",offset:D.offset,indent:D.indent,items:[{start:Z,key:D,sep:X}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=q}else yield*this.lineEnd(D)}}flowScalar(D){if(this.onNewLine){let F=this.source.indexOf(`
346
346
  `)+1;while(F!==0)this.onNewLine(this.offset+F),F=this.source.indexOf(`
347
- `,F)+1}return{type:D,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(D){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let F=T5(D),P=y8(F);return P.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:P,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let F=T5(D),P=y8(F);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:P,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(D,F){if(this.type!=="comment")return!1;if(this.indent<=F)return!1;return D.every((P)=>P.type==="newline"||P.type==="space")}*documentEnd(D){if(this.type!=="doc-mode"){if(D.end)D.end.push(this.sourceToken);else D.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd(D){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:if(D.end)D.end.push(this.sourceToken);else D.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}qg.Parser=wz});var uz=Q((Gg)=>{var jz=DP(),Yg=q1(),O1=J1(),Hg=UF(),Ug=t(),Wg=UP(),bz=WP();function Sz(D){let F=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||F&&new Wg.LineCounter||null,prettyErrors:F}}function Og(D,F={}){let{lineCounter:P,prettyErrors:B}=Sz(F),Z=new bz.Parser(P?.addNewLine),X=new jz.Composer(F),q=Array.from(X.compose(Z.parse(D)));if(B&&P)for(let J of q)J.errors.forEach(O1.prettifyError(D,P)),J.warnings.forEach(O1.prettifyError(D,P));if(q.length>0)return q;return Object.assign([],{empty:!0},X.streamInfo())}function Tz(D,F={}){let{lineCounter:P,prettyErrors:B}=Sz(F),Z=new bz.Parser(P?.addNewLine),X=new jz.Composer(F),q=null;for(let J of X.compose(Z.parse(D),!0,D.length))if(!q)q=J;else if(q.options.logLevel!=="silent"){q.errors.push(new O1.YAMLParseError(J.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(B&&P)q.errors.forEach(O1.prettifyError(D,P)),q.warnings.forEach(O1.prettifyError(D,P));return q}function zg(D,F,P){let B=void 0;if(typeof F==="function")B=F;else if(P===void 0&&F&&typeof F==="object")P=F;let Z=Tz(D,P);if(!Z)return null;if(Z.warnings.forEach((X)=>Hg.warn(Z.options.logLevel,X)),Z.errors.length>0)if(Z.options.logLevel!=="silent")throw Z.errors[0];else Z.errors=[];return Z.toJS(Object.assign({reviver:B},P))}function Qg(D,F,P){let B=null;if(typeof F==="function"||Array.isArray(F))B=F;else if(P===void 0&&F)P=F;if(typeof P==="string")P=P.length;if(typeof P==="number"){let Z=Math.round(P);P=Z<1?void 0:Z>8?{indent:8}:{indent:Z}}if(D===void 0){let{keepUndefined:Z}=P??F??{};if(!Z)return}if(Ug.isDocument(D)&&!B)return D.toString(P);return new Yg.Document(D,B,P).toString(P)}Gg.parse=zg;Gg.parseAllDocuments=Og;Gg.parseDocument=Tz;Gg.stringify=Qg});var _z=Q((Ng)=>{var Eg=DP(),Kg=q1(),Ag=gF(),OP=J1(),Cg=p6(),I0=t(),Lg=O0(),Vg=CD(),wg=Q0(),jg=G0(),bg=b5(),Sg=HP(),Tg=UP(),ug=WP(),u5=uz(),Nz=c6();Ng.Composer=Eg.Composer;Ng.Document=Kg.Document;Ng.Schema=Ag.Schema;Ng.YAMLError=OP.YAMLError;Ng.YAMLParseError=OP.YAMLParseError;Ng.YAMLWarning=OP.YAMLWarning;Ng.Alias=Cg.Alias;Ng.isAlias=I0.isAlias;Ng.isCollection=I0.isCollection;Ng.isDocument=I0.isDocument;Ng.isMap=I0.isMap;Ng.isNode=I0.isNode;Ng.isPair=I0.isPair;Ng.isScalar=I0.isScalar;Ng.isSeq=I0.isSeq;Ng.Pair=Lg.Pair;Ng.Scalar=Vg.Scalar;Ng.YAMLMap=wg.YAMLMap;Ng.YAMLSeq=jg.YAMLSeq;Ng.CST=bg;Ng.Lexer=Sg.Lexer;Ng.LineCounter=Tg.LineCounter;Ng.Parser=ug.Parser;Ng.parse=u5.parse;Ng.parseAllDocuments=u5.parseAllDocuments;Ng.parseDocument=u5.parseDocument;Ng.stringify=u5.stringify;Ng.visit=Nz.visit;Ng.visitAsync=Nz.visitAsync});var G1={name:"@samarium.sdk/new",version:"0.25.1",main:"bin/samarium",type:"module",repository:{type:"git",url:"https://github.com/liontariai/samarium",directory:"packages/new"},keywords:["graphql","typescript","compiler","api","sdk","openapi","oas3","oas3.1","swagger","graphql-sdk","graphql-codegen"],homepage:"https://liontari.ai",bin:{samarium:"bin/samarium"},publishConfig:{access:"public"},files:["bin/**/*","README.md","package.json"],scripts:{prettier:"prettier --write .",bundle:"bun bundle.ts",prepublishOnly:"bun run bundle",test:"bun test"},prettier:{tabWidth:4},devDependencies:{"bun-types":"^1.2.19","@samarium.sdk/make":"workspace:*"},peerDependencies:{typescript:"^5.0.0"},dependencies:{"@inquirer/prompts":"^5.0.5",commander:"^11.1.0","detect-indent":"^7.0.1",prettier:"^3.2.5",yaml:"^2.6.0"}};var hP=RD(fP(),1),{program:Ev,createCommand:Kv,createArgument:Av,createOption:Cv,CommanderError:Lv,InvalidArgumentError:Vv,InvalidOptionArgumentError:wv,Command:gP,Argument:jv,Option:bv,Help:Sv}=hP.default;var dH=RD(l2(),1);var E3=RD(l2(),1);class P0 extends Error{response;request;constructor(D,F){let P=`${P0.extractMessage(D)}: ${JSON.stringify({response:D,request:F})}`;super(P);if(Object.setPrototypeOf(this,P0.prototype),this.response=D,this.request=F,typeof Error.captureStackTrace==="function")Error.captureStackTrace(this,P0)}static extractMessage(D){return D.errors?.[0]?.message??`GraphQL Error (Code: ${String(D.status)})`}}var W7=(D)=>D.toUpperCase(),Q3=(D)=>{return typeof D==="function"?D():D},O7=(D,F)=>D.map((P,B)=>[P,F[B]]),x0=(D)=>{let F={};if(D instanceof Headers)F=_b(D);else if(Array.isArray(D))D.forEach(([P,B])=>{if(P&&B!==void 0)F[P]=B});else if(D)F=D;return F},_b=(D)=>{let F={};return D.forEach((P,B)=>{F[B]=P}),F},NH=(D)=>{try{let F=D();if(kb(F))return F.catch((P)=>{return uH(P)});return F}catch(F){return uH(F)}},uH=(D)=>{if(D instanceof Error)return D;return Error(String(D))},kb=(D)=>{return typeof D==="object"&&D!==null&&"then"in D&&typeof D.then==="function"&&"catch"in D&&typeof D.catch==="function"&&"finally"in D&&typeof D.finally==="function"},G3=(D)=>{throw Error(`Unhandled case: ${String(D)}`)},S6=(D)=>{return typeof D==="object"&&D!==null&&!Array.isArray(D)};var _H=(D,F)=>{return D.documents?D:{documents:D,requestHeaders:F,signal:void 0}};var kH=(D,F,P)=>{return D.query?D:{query:D,variables:F,requestHeaders:P,signal:void 0}};var hH=RD(l2(),1);var z7="Accept",R3="Content-Type",T6="application/json",I3="application/graphql-response+json";var Q7=(D)=>D.replace(/([\s,]|#[^\n\r]+)+/g," ").trim(),gH=(D)=>{let F=D.toLowerCase();return F.includes(I3)||F.includes(T6)},G7=(D)=>{try{if(Array.isArray(D))return{_tag:"Batch",executionResults:D.map(xH)};else if(S6(D))return{_tag:"Single",executionResult:xH(D)};else throw Error(`Invalid execution result: result is not object or array.
347
+ `,F)+1}return{type:D,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(D){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let F=T5(D),P=y8(F);return P.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:P,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let F=T5(D),P=y8(F);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:P,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(D,F){if(this.type!=="comment")return!1;if(this.indent<=F)return!1;return D.every((P)=>P.type==="newline"||P.type==="space")}*documentEnd(D){if(this.type!=="doc-mode"){if(D.end)D.end.push(this.sourceToken);else D.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd(D){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:if(D.end)D.end.push(this.sourceToken);else D.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}qg.Parser=wz});var uz=Q((Gg)=>{var jz=DP(),Yg=q1(),O1=J1(),Hg=UF(),Ug=t(),Wg=UP(),bz=WP();function Sz(D){let F=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||F&&new Wg.LineCounter||null,prettyErrors:F}}function Og(D,F={}){let{lineCounter:P,prettyErrors:B}=Sz(F),Z=new bz.Parser(P?.addNewLine),X=new jz.Composer(F),q=Array.from(X.compose(Z.parse(D)));if(B&&P)for(let J of q)J.errors.forEach(O1.prettifyError(D,P)),J.warnings.forEach(O1.prettifyError(D,P));if(q.length>0)return q;return Object.assign([],{empty:!0},X.streamInfo())}function Tz(D,F={}){let{lineCounter:P,prettyErrors:B}=Sz(F),Z=new bz.Parser(P?.addNewLine),X=new jz.Composer(F),q=null;for(let J of X.compose(Z.parse(D),!0,D.length))if(!q)q=J;else if(q.options.logLevel!=="silent"){q.errors.push(new O1.YAMLParseError(J.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(B&&P)q.errors.forEach(O1.prettifyError(D,P)),q.warnings.forEach(O1.prettifyError(D,P));return q}function zg(D,F,P){let B=void 0;if(typeof F==="function")B=F;else if(P===void 0&&F&&typeof F==="object")P=F;let Z=Tz(D,P);if(!Z)return null;if(Z.warnings.forEach((X)=>Hg.warn(Z.options.logLevel,X)),Z.errors.length>0)if(Z.options.logLevel!=="silent")throw Z.errors[0];else Z.errors=[];return Z.toJS(Object.assign({reviver:B},P))}function Qg(D,F,P){let B=null;if(typeof F==="function"||Array.isArray(F))B=F;else if(P===void 0&&F)P=F;if(typeof P==="string")P=P.length;if(typeof P==="number"){let Z=Math.round(P);P=Z<1?void 0:Z>8?{indent:8}:{indent:Z}}if(D===void 0){let{keepUndefined:Z}=P??F??{};if(!Z)return}if(Ug.isDocument(D)&&!B)return D.toString(P);return new Yg.Document(D,B,P).toString(P)}Gg.parse=zg;Gg.parseAllDocuments=Og;Gg.parseDocument=Tz;Gg.stringify=Qg});var _z=Q((Ng)=>{var Eg=DP(),Kg=q1(),Ag=gF(),OP=J1(),Cg=p6(),I0=t(),Lg=O0(),Vg=CD(),wg=Q0(),jg=G0(),bg=b5(),Sg=HP(),Tg=UP(),ug=WP(),u5=uz(),Nz=c6();Ng.Composer=Eg.Composer;Ng.Document=Kg.Document;Ng.Schema=Ag.Schema;Ng.YAMLError=OP.YAMLError;Ng.YAMLParseError=OP.YAMLParseError;Ng.YAMLWarning=OP.YAMLWarning;Ng.Alias=Cg.Alias;Ng.isAlias=I0.isAlias;Ng.isCollection=I0.isCollection;Ng.isDocument=I0.isDocument;Ng.isMap=I0.isMap;Ng.isNode=I0.isNode;Ng.isPair=I0.isPair;Ng.isScalar=I0.isScalar;Ng.isSeq=I0.isSeq;Ng.Pair=Lg.Pair;Ng.Scalar=Vg.Scalar;Ng.YAMLMap=wg.YAMLMap;Ng.YAMLSeq=jg.YAMLSeq;Ng.CST=bg;Ng.Lexer=Sg.Lexer;Ng.LineCounter=Tg.LineCounter;Ng.Parser=ug.Parser;Ng.parse=u5.parse;Ng.parseAllDocuments=u5.parseAllDocuments;Ng.parseDocument=u5.parseDocument;Ng.stringify=u5.stringify;Ng.visit=Nz.visit;Ng.visitAsync=Nz.visitAsync});var G1={name:"@samarium.sdk/new",version:"0.26.0",main:"bin/samarium",type:"module",repository:{type:"git",url:"https://github.com/liontariai/samarium",directory:"packages/new"},keywords:["graphql","typescript","compiler","api","sdk","openapi","oas3","oas3.1","swagger","graphql-sdk","graphql-codegen"],homepage:"https://liontari.ai",bin:{samarium:"bin/samarium"},publishConfig:{access:"public"},files:["bin/**/*","README.md","package.json"],scripts:{prettier:"prettier --write .",bundle:"bun bundle.ts",prepublishOnly:"bun run bundle",test:"bun test"},prettier:{tabWidth:4},devDependencies:{"bun-types":"^1.2.19","@samarium.sdk/make":"workspace:*"},peerDependencies:{typescript:"^5.0.0"},dependencies:{"@inquirer/prompts":"^5.0.5",commander:"^11.1.0","detect-indent":"^7.0.1",prettier:"^3.2.5",yaml:"^2.6.0"}};var hP=RD(fP(),1),{program:Ev,createCommand:Kv,createArgument:Av,createOption:Cv,CommanderError:Lv,InvalidArgumentError:Vv,InvalidOptionArgumentError:wv,Command:gP,Argument:jv,Option:bv,Help:Sv}=hP.default;var dH=RD(l2(),1);var E3=RD(l2(),1);class P0 extends Error{response;request;constructor(D,F){let P=`${P0.extractMessage(D)}: ${JSON.stringify({response:D,request:F})}`;super(P);if(Object.setPrototypeOf(this,P0.prototype),this.response=D,this.request=F,typeof Error.captureStackTrace==="function")Error.captureStackTrace(this,P0)}static extractMessage(D){return D.errors?.[0]?.message??`GraphQL Error (Code: ${String(D.status)})`}}var W7=(D)=>D.toUpperCase(),Q3=(D)=>{return typeof D==="function"?D():D},O7=(D,F)=>D.map((P,B)=>[P,F[B]]),x0=(D)=>{let F={};if(D instanceof Headers)F=_b(D);else if(Array.isArray(D))D.forEach(([P,B])=>{if(P&&B!==void 0)F[P]=B});else if(D)F=D;return F},_b=(D)=>{let F={};return D.forEach((P,B)=>{F[B]=P}),F},NH=(D)=>{try{let F=D();if(kb(F))return F.catch((P)=>{return uH(P)});return F}catch(F){return uH(F)}},uH=(D)=>{if(D instanceof Error)return D;return Error(String(D))},kb=(D)=>{return typeof D==="object"&&D!==null&&"then"in D&&typeof D.then==="function"&&"catch"in D&&typeof D.catch==="function"&&"finally"in D&&typeof D.finally==="function"},G3=(D)=>{throw Error(`Unhandled case: ${String(D)}`)},S6=(D)=>{return typeof D==="object"&&D!==null&&!Array.isArray(D)};var _H=(D,F)=>{return D.documents?D:{documents:D,requestHeaders:F,signal:void 0}};var kH=(D,F,P)=>{return D.query?D:{query:D,variables:F,requestHeaders:P,signal:void 0}};var hH=RD(l2(),1);var z7="Accept",R3="Content-Type",T6="application/json",I3="application/graphql-response+json";var Q7=(D)=>D.replace(/([\s,]|#[^\n\r]+)+/g," ").trim(),gH=(D)=>{let F=D.toLowerCase();return F.includes(I3)||F.includes(T6)},G7=(D)=>{try{if(Array.isArray(D))return{_tag:"Batch",executionResults:D.map(xH)};else if(S6(D))return{_tag:"Single",executionResult:xH(D)};else throw Error(`Invalid execution result: result is not object or array.
348
348
  Got:
349
349
  ${String(D)}`)}catch(F){return F}},xH=(D)=>{if(typeof D!=="object"||D===null)throw Error("Invalid execution result: result is not object");let F=void 0,P=void 0,B=void 0;if("errors"in D){if(!S6(D.errors)&&!Array.isArray(D.errors))throw Error("Invalid execution result: errors is not plain object OR array");F=D.errors}if("data"in D){if(!S6(D.data)&&D.data!==null)throw Error("Invalid execution result: data is not plain object");P=D.data}if("extensions"in D){if(!S6(D.extensions))throw Error("Invalid execution result: extensions is not plain object");B=D.extensions}return{data:P,errors:F,extensions:B}},vH=(D)=>D._tag==="Batch"?D.executionResults.some(fH):fH(D.executionResult),fH=(D)=>Array.isArray(D.errors)?D.errors.length>0:Boolean(D.errors),R7=(D)=>{return typeof D==="object"&&D!==null&&"kind"in D&&D.kind===hH.Kind.OPERATION_DEFINITION};var yH=RD(l2(),1),mH=RD(l2(),1),xb=(D)=>{let F=void 0,P=D.definitions.filter(R7);if(P.length===1)F=P[0].name?.value;return F},fb=(D)=>{let F=!1,P=D.definitions.filter(R7);if(P.length===1)F=P[0].operation==="mutation";return F},u6=(D,F)=>{let P=typeof D==="string"?D:mH.print(D),B=!1,Z=void 0;if(F)return{expression:P,isMutation:B,operationName:Z};let X=NH(()=>typeof D==="string"?yH.parse(D):D);if(X instanceof Error)return{expression:P,isMutation:B,operationName:Z};return Z=xb(X),B=fb(X),{expression:P,operationName:Z,isMutation:B}};var $3=JSON;var M3=async(D)=>{let F={...D,method:D.request._tag==="Single"?D.request.document.isMutation?"POST":W7(D.method??"post"):D.request.hasMutations?"POST":W7(D.method??"post"),fetchOptions:{...D.fetchOptions,errorPolicy:D.fetchOptions.errorPolicy??"none"}},B=await gb(F.method)(F);if(!B.ok)return new P0({status:B.status,headers:B.headers},{query:D.request._tag==="Single"?D.request.document.expression:D.request.query,variables:D.request.variables});let Z=await hb(B,D.fetchOptions.jsonSerializer??$3);if(Z instanceof Error)throw Z;let X={status:B.status,headers:B.headers};if(vH(Z)&&F.fetchOptions.errorPolicy==="none"){let q=Z._tag==="Batch"?{...Z.executionResults,...X}:{...Z.executionResult,...X};return new P0(q,{query:D.request._tag==="Single"?D.request.document.expression:D.request.query,variables:D.request.variables})}switch(Z._tag){case"Single":return{...X,...lH(F)(Z.executionResult)};case"Batch":return{...X,data:Z.executionResults.map(lH(F))};default:G3(Z)}},lH=(D)=>(F)=>{return{extensions:F.extensions,data:F.data,errors:D.fetchOptions.errorPolicy==="all"?F.errors:void 0}},hb=async(D,F)=>{let P=D.headers.get(R3),B=await D.text();if(P&&gH(P))return G7(F.parse(B));else return G7(B)},gb=(D)=>async(F)=>{let P=new Headers(F.headers),B=null,Z=void 0;if(!P.has(z7))P.set(z7,[I3,T6].join(", "));if(D==="POST"){if(Z=(F.fetchOptions.jsonSerializer??$3).stringify(vb(F)),typeof Z==="string"&&!P.has(R3))P.set(R3,T6)}else B=yb(F);let X={method:D,headers:P,body:Z,...F.fetchOptions},q=new URL(F.url),J=X;if(F.middleware){let H=await Promise.resolve(F.middleware({...X,url:F.url,operationName:F.request._tag==="Single"?F.request.document.operationName:void 0,variables:F.request.variables})),{url:U,...W}=H;q=new URL(U),J=W}if(B)B.forEach((H,U)=>{q.searchParams.append(U,H)});return await(F.fetch??fetch)(q,J)},vb=(D)=>{switch(D.request._tag){case"Single":return{query:D.request.document.expression,variables:D.request.variables,operationName:D.request.document.operationName};case"Batch":return O7(D.request.query,D.request.variables??[]).map(([F,P])=>({query:F,variables:P}));default:throw G3(D.request)}},yb=(D)=>{let F=D.fetchOptions.jsonSerializer??$3,P=new URLSearchParams;switch(D.request._tag){case"Single":{if(P.append("query",Q7(D.request.document.expression)),D.request.variables)P.append("variables",F.stringify(D.request.variables));if(D.request.document.operationName)P.append("operationName",D.request.document.operationName);return P}case"Batch":{let B=D.request.variables?.map((q)=>F.stringify(q))??[],Z=D.request.query.map(Q7),X=O7(Z,B).map(([q,J])=>({query:q,variables:J}));return P.append("query",F.stringify(X)),P}default:throw G3(D.request)}};class f0{url;requestConfig;constructor(D,F={}){this.url=D,this.requestConfig=F}rawRequest=async(...D)=>{let[F,P,B]=D,Z=kH(F,P,B),{headers:X,fetch:q=globalThis.fetch,method:J="POST",requestMiddleware:Y,responseMiddleware:H,excludeOperationName:U,...W}=this.requestConfig,{url:O}=this;if(Z.signal!==void 0)W.signal=Z.signal;let z=u6(Z.query,U),I=await M3({url:O,request:{_tag:"Single",document:z,variables:Z.variables},headers:{...x0(Q3(X)),...x0(Z.requestHeaders)},fetch:q,method:J,fetchOptions:W,middleware:Y});if(H)await H(I,{operationName:z.operationName,variables:P,url:this.url});if(I instanceof Error)throw I;return I};async request(D,...F){let[P,B]=F,Z=cH(D,P,B),{headers:X,fetch:q=globalThis.fetch,method:J="POST",requestMiddleware:Y,responseMiddleware:H,excludeOperationName:U,...W}=this.requestConfig,{url:O}=this;if(Z.signal!==void 0)W.signal=Z.signal;let z=u6(Z.document,U),I=await M3({url:O,request:{_tag:"Single",document:z,variables:Z.variables},headers:{...x0(Q3(X)),...x0(Z.requestHeaders)},fetch:q,method:J,fetchOptions:W,middleware:Y});if(H)await H(I,{operationName:z.operationName,variables:Z.variables,url:this.url});if(I instanceof Error)throw I;return I.data}async batchRequests(D,F){let P=_H(D,F),{headers:B,excludeOperationName:Z,...X}=this.requestConfig;if(P.signal!==void 0)X.signal=P.signal;let q=P.documents.map(({document:W})=>u6(W,Z)),J=q.map(({expression:W})=>W),Y=q.some(({isMutation:W})=>W),H=P.documents.map(({variables:W})=>W),U=await M3({url:this.url,request:{_tag:"Batch",operationName:void 0,query:J,hasMutations:Y,variables:H},headers:{...x0(Q3(B)),...x0(P.requestHeaders)},fetch:this.requestConfig.fetch??globalThis.fetch,method:this.requestConfig.method||"POST",fetchOptions:X,middleware:this.requestConfig.requestMiddleware});if(this.requestConfig.responseMiddleware)await this.requestConfig.responseMiddleware(U,{operationName:void 0,variables:H,url:this.url});if(U instanceof Error)throw U;return U.data}setHeaders(D){return this.requestConfig.headers=D,this}setHeader(D,F){let{headers:P}=this.requestConfig;if(P)P[D]=F;else this.requestConfig.headers={[D]:F};return this}setEndpoint(D){return this.url=D,this}}var cH=(D,F,P)=>{return D.document?D:{document:D,variables:F,requestHeaders:P,signal:void 0}};async function h0(D,F){try{let B=await new f0(D).request(E3.getIntrospectionQuery(),void 0,new Headers(F?.map((X)=>X.split("="))));return E3.buildClientSchema(B)}catch(P){throw P}}import mb from"fs";var I7=async(D,F)=>{let P=await h0(D.url,D.headers),B=dH.printSchema(P);mb.writeFileSync(F,B)};var K3=RD(l2(),1),A3=RD(l2(),1),KD=RD(l2(),1),lb=Object.defineProperty,rH=(D,F)=>{for(var P in F)lb(D,P,{get:F[P],enumerable:!0,configurable:!0,set:(B)=>F[P]=()=>B})};class aH{collector;options;authConfig;static FieldValueWrapperType;static EnumTypesMapped;static HelperTypes;static HelperFunctions;typeMeta;typeName;originalFullTypeName;constructor(D,F,P,B){this.collector=F,this.options=P,this.authConfig=B,this.typeMeta=F.getType(D),this.originalFullTypeName=D,this.typeName=this.originalTypeNameToTypescriptFriendlyName(D)}originalTypeNameToTypescriptFriendlyName(D){return D.replaceAll("[","").replaceAll("]","Array").replaceAll("!","NotNull")}originalTypeNameToTypescriptTypeNameWithoutModifiers(D,F=""){return`${D.replaceAll("[","").replaceAll("]","").replaceAll("!","")}${F}`}originalTypeNameToTypescriptTypeName(D,F=""){return`${this.originalTypeNameToTypescriptTypeNameWithoutModifiers(D,F)}${Array.from({length:D.split("[").length-1}).fill("[]").join("")}`}static makeRootOperationFunction(D){throw Error("Method not implemented.")}}var cb=`const Proxy = globalThis.Proxy;
350
350
  Proxy.prototype = {};
@@ -365,10 +365,10 @@ function proxify(data: any, slw: any): any & ArrayLike<any> {
365
365
  return Reflect.deleteProperty(slw, prop);
366
366
  },
367
367
  ownKeys(target: any[]): ArrayLike<string | symbol> {
368
- return Reflect.ownKeys(slw);
368
+ return Reflect.ownKeys(target);
369
369
  },
370
370
  getOwnPropertyDescriptor(target: any[], prop: PropertyKey): PropertyDescriptor | undefined {
371
- return Reflect.getOwnPropertyDescriptor(slw, prop);
371
+ return Reflect.getOwnPropertyDescriptor(target, prop);
372
372
  },
373
373
  getPrototypeOf(target: any[]): object | null {
374
374
  // Return Array.prototype for better array-like behavior (e.g., instanceof Array)
@@ -573,7 +573,7 @@ export class RootOperation {
573
573
  variables: query.variables,
574
574
  }),
575
575
  })) as [string | URL | Request, RequestInit];
576
- const response = await fetch(url, {
576
+ const response = await (RootOperation[OPTIONS].fetcher ?? globalThis.fetch)(url, {
577
577
  ...options,
578
578
  headers: {
579
579
  ...options?.headers,
@@ -1140,10 +1140,16 @@ export class SelectionWrapper<
1140
1140
 
1141
1141
  return {
1142
1142
  // implement ProxyHandler methods
1143
- ownKeys() {
1143
+ ownKeys(target) {
1144
+ if (target[SLW_FIELD_ARR_DEPTH]) {
1145
+ return Reflect.ownKeys(new Array(target[SLW_FIELD_ARR_DEPTH]));
1146
+ }
1144
1147
  return Reflect.ownKeys(value ?? {});
1145
1148
  },
1146
1149
  getOwnPropertyDescriptor(target, prop) {
1150
+ if (target[SLW_FIELD_ARR_DEPTH]) {
1151
+ return Reflect.getOwnPropertyDescriptor(new Array(target[SLW_FIELD_ARR_DEPTH]), prop);
1152
+ }
1147
1153
  return Reflect.getOwnPropertyDescriptor(value ?? {}, prop);
1148
1154
  },
1149
1155
  has(target, prop) {
@@ -1153,6 +1159,9 @@ export class SelectionWrapper<
1153
1159
  if (Array.isArray(dataArr)) return true;
1154
1160
  if (dataArr === undefined || dataArr === null) return false;
1155
1161
  }
1162
+ if (target[SLW_FIELD_ARR_DEPTH]) {
1163
+ return Reflect.has(new Array(target[SLW_FIELD_ARR_DEPTH]), prop);
1164
+ }
1156
1165
 
1157
1166
  return Reflect.has(value ?? {}, prop);
1158
1167
  },
@@ -1341,23 +1350,28 @@ export class SelectionWrapper<
1341
1350
  any,
1342
1351
  any
1343
1352
  >;
1353
+ const isScalar = target[SLW_PARENT_COLLECTOR] === undefined;
1344
1354
 
1345
1355
  return function () {
1346
1356
  return {
1347
1357
  next() {
1348
1358
  return asyncGen.next().then((val) => {
1359
+ const clonedSlw = target[SLW_CLONE]({
1360
+ SLW_OP_PATH: asyncGenRootPath,
1361
+ OP_RESULT_DATA: isScalar
1362
+ ? { [asyncGenRootPath!]: val.value }
1363
+ : val.value,
1364
+
1365
+ // this is only for subscriptions
1366
+ SLW_NEEDS_CLONE: true,
1367
+ });
1368
+ const ret =
1369
+ typeof val.value === "object"
1370
+ ? proxify(val.value, clonedSlw)
1371
+ : clonedSlw;
1349
1372
  return {
1350
1373
  done: val.done,
1351
- value: proxify(
1352
- val.value,
1353
- target[SLW_CLONE]({
1354
- SLW_OP_PATH: asyncGenRootPath,
1355
- OP_RESULT_DATA: val.value,
1356
-
1357
- // this is only for subscriptions
1358
- SLW_NEEDS_CLONE: true,
1359
- }),
1360
- ),
1374
+ value: isScalar ? ret[asyncGenRootPath!] : ret,
1361
1375
  };
1362
1376
  });
1363
1377
  },
@@ -1636,9 +1650,79 @@ export class SelectionWrapper<
1636
1650
  : EE[k];
1637
1651
  };
1638
1652
 
1653
+ type SLFNReturned<
1654
+ T extends object,
1655
+ F extends object,
1656
+ E extends { [key: string | number | symbol]: any },
1657
+ TAD extends number,
1658
+ AS_PROMISE,
1659
+ AS_ASYNC_ITER,
1660
+ REP extends string | number | symbol,
1661
+ > =
1662
+ // Overload 1: No 's' provided -> return full transformed F
1663
+ (() => Prettify<
1664
+ ConvertToPromise<
1665
+ ConvertToAsyncIter<
1666
+ ToTArrayWithDepth<
1667
+ Prettify<"$all" extends keyof F ? (F["$all"] extends (...args: any) => any ? ReturnType<F["$all"]> : never) : never>,
1668
+ TAD
1669
+ >,
1670
+ AS_ASYNC_ITER
1671
+ >,
1672
+ AS_PROMISE
1673
+ > &
1674
+ ReplacePlaceHoldersWithTNested<
1675
+ ConvertToAsyncIter<
1676
+ ToTArrayWithDepth<
1677
+ Prettify<"$all" extends keyof F ? (F["$all"] extends (...args: any) => any ? ReturnType<F["$all"]> : never) : never>,
1678
+ TAD
1679
+ >,
1680
+ AS_ASYNC_ITER
1681
+ >,
1682
+ E,
1683
+ REP
1684
+ >
1685
+ >) &
1686
+ // Overload 2: With 's' provided -> infer result from selection
1687
+ (<
1688
+ TT = T,
1689
+ FF = F,
1690
+ EE = E,
1691
+ inferedResult = {
1692
+ [K in keyof TT]: TT[K] extends SelectionWrapperImpl<
1693
+ infer FN,
1694
+ infer TTNP,
1695
+ infer TTAD,
1696
+ infer VT,
1697
+ infer AT
1698
+ >
1699
+ ? ToTArrayWithDepth<SLW_TPN_ToType<TTNP>, TTAD>
1700
+ : TT[K];
1701
+ },
1702
+ >(
1703
+ this: any,
1704
+ s: (selection: FF) => TT,
1705
+ ) => Prettify<
1706
+ ConvertToPromise<
1707
+ ConvertToAsyncIter<
1708
+ ToTArrayWithDepth<inferedResult, TAD>,
1709
+ AS_ASYNC_ITER
1710
+ >,
1711
+ AS_PROMISE
1712
+ > &
1713
+ ReplacePlaceHoldersWithTNested<
1714
+ ConvertToAsyncIter<
1715
+ ToTArrayWithDepth<inferedResult, TAD>,
1716
+ AS_ASYNC_ITER
1717
+ >,
1718
+ EE,
1719
+ REP
1720
+ >
1721
+ >);
1722
+
1639
1723
  export type SLFN<
1640
1724
  T extends object,
1641
- F,
1725
+ F extends object,
1642
1726
  N extends string,
1643
1727
  TNP extends string,
1644
1728
  TAD extends number,
@@ -1651,35 +1735,7 @@ export class SelectionWrapper<
1651
1735
  SLFN_name: N,
1652
1736
  SLFN_typeNamePure: TNP,
1653
1737
  SLFN_typeArrDepth: TAD,
1654
- ) => <
1655
- TT = T,
1656
- FF = F,
1657
- EE = E,
1658
- inferedResult = {
1659
- [K in keyof TT]: TT[K] extends SelectionWrapperImpl<
1660
- infer FN,
1661
- infer TTNP,
1662
- infer TTAD,
1663
- infer VT,
1664
- infer AT
1665
- >
1666
- ? ToTArrayWithDepth<SLW_TPN_ToType<TTNP>, TTAD>
1667
- : TT[K];
1668
- },
1669
- >(
1670
- this: any,
1671
- s: (selection: FF) => TT,
1672
- ) => Prettify<
1673
- ConvertToPromise<
1674
- ConvertToAsyncIter<ToTArrayWithDepth<inferedResult, TAD>, AS_ASYNC_ITER>,
1675
- AS_PROMISE
1676
- > &
1677
- ReplacePlaceHoldersWithTNested<
1678
- ConvertToAsyncIter<ToTArrayWithDepth<inferedResult, TAD>, AS_ASYNC_ITER>,
1679
- EE,
1680
- REP
1681
- >
1682
- >;
1738
+ ) => SLFNReturned<T, F, E, TAD, AS_PROMISE, AS_ASYNC_ITER, REP>;
1683
1739
  `;static HelperFunctions=`
1684
1740
  const selectScalars = (selection: Record<string, any>) =>
1685
1741
  Object.fromEntries(
@@ -1907,7 +1963,7 @@ export class SelectionWrapper<
1907
1963
  const selectAll = <
1908
1964
  S,
1909
1965
  TNP extends string,
1910
- SUB extends ReturnType<SLFN<{}, unknown, string, string, number>>,
1966
+ SUB extends ReturnType<SLFN<{}, object, string, string, number>>,
1911
1967
  V extends
1912
1968
  | (SelectionWrapperImpl<any, any, any> | SUB)
1913
1969
  | ((args: any) => SelectionWrapperImpl<any, any, any> | SUB),
@@ -1937,6 +1993,9 @@ export class SelectionWrapper<
1937
1993
  opts.cyclic as Record<string, string>,
1938
1994
  )
1939
1995
  .filter(([k, v]) => v !== "exclude")
1996
+ .filter(([k, v]) =>
1997
+ v.match(new RegExp(\`\${selectCyclicFieldsOptsStr}(.*)\`)),
1998
+ )
1940
1999
  .map((e) => {
1941
2000
  const levels = parseInt(
1942
2001
  e[1]
@@ -1992,7 +2051,7 @@ export class SelectionWrapper<
1992
2051
 
1993
2052
  const makeSLFN = <
1994
2053
  T extends object,
1995
- F,
2054
+ F extends object,
1996
2055
  N extends string,
1997
2056
  TNP extends string,
1998
2057
  TAD extends number,
@@ -2004,12 +2063,17 @@ export class SelectionWrapper<
2004
2063
  ) => {
2005
2064
  function _SLFN<TT extends T, FF extends F>(
2006
2065
  this: any,
2007
- s: (selection: FF) => TT,
2066
+ _s?: (selection: FF) => TT,
2008
2067
  ) {
2009
2068
  let parent: SelectionFnParent = this ?? {
2010
2069
  collector: new OperationSelectionCollector(),
2011
2070
  };
2012
2071
  function innerFn(this: any) {
2072
+ const s =
2073
+ _s ??
2074
+ ((selection: FF) =>
2075
+ (selection as any)["$all"]({ cyclic: "exclude" }) as TT);
2076
+
2013
2077
  const selection: FF = makeSLFNInput.bind(this)() as any;
2014
2078
  const r = s(selection);
2015
2079
  const _result = new SelectionWrapper(
@@ -2060,7 +2124,7 @@ export class SelectionWrapper<
2060
2124
  `:""}${Z??B.name} = "${B.name}",`}).join(`
2061
2125
  `)}
2062
2126
  };
2063
- `;return this.collector.addEnumType(this.typeMeta,P),D}makeSelectionTypeInputValueForFieldWrapperType(D,F){let P="";if(F.isEnum)P=F.ofType.name.replaceAll("!","").replaceAll("[","").replaceAll("]","");else P=this.ScalarTypeMap().get(F.name.replaceAll("!","").replaceAll("[","").replaceAll("]",""))??(F.scalarTSType?`ScalarTypeMapWithCustom["${F.name.replaceAll("!","").replaceAll("[","").replaceAll("]","")}"]`:"any");if(F.isList)return`${Array.from({length:F.isList}).map((B)=>"Array<").join("")}${P}${Array.from({length:F.isList}).map((B)=>">").join("")}`;return P}makeSelectionTypeInputValueForField(D,F=[],P=!1){let B=()=>{let X=D.args.some((J)=>J.type.isNonNull),q=`${F.join()}${D.name.slice(0,1).toUpperCase()}${D.name.slice(1)}Args`;if(!this.collector.hasArgumentType(q)){let Y=`{ ${D.args.map((H)=>{let U=H.type.isScalar,W=H.type.isEnum,O=H.type.isInput,z=`${H.name}${H.type.isNonNull?"":"?"}`,I="any";if(U)I=H.type.scalarTSType?`ScalarTypeMapWithCustom["${H.type.name.replaceAll("!","").replaceAll("[","").replaceAll("]","")}"]`:this.ScalarTypeMap().get(H.type.name.replaceAll("!","").replaceAll("[","").replaceAll("]",""))??"any";else if(O||W)I=this.originalTypeNameToTypescriptTypeName(H.type.name);return`${H.description?`/** ${H.description??`${z}`} */`:""}
2127
+ `;return this.collector.addEnumType(this.typeMeta,P),D}makeSelectionTypeInputValueForFieldWrapperType(D,F){let P="";if(F.isEnum)P=F.ofType.name.replaceAll("!","").replaceAll("[","").replaceAll("]","");else P=this.ScalarTypeMap().get(F.name.replaceAll("!","").replaceAll("[","").replaceAll("]",""))??(F.scalarTSType?`ScalarTypeMapWithCustom["${F.name.replaceAll("!","").replaceAll("[","").replaceAll("]","")}"]`:"any");if(F.isList)return`${Array.from({length:F.isList}).map((B)=>"Array<").join("")}${P}${Array.from({length:F.isList}).map((B)=>">").join("")}`;return P}makeSelectionTypeInputValueForField(D,F=[],P=!1){let B=()=>{let X=D.args.some((J)=>J.type.isNonNull),q=`${F.join()}${D.name.slice(0,1).toUpperCase()}${D.name.slice(1)}Args`;if(!this.collector.hasArgumentType(q)){let Y=`{ ${D.args.map((H)=>{let U=H.type.isScalar,W=H.type.isEnum,O=H.type.isInput,z=`${H.name}${H.type.isNonNull?"":"?"}`,I="any";if(U)I=H.type.scalarTSType?`ScalarTypeMapWithCustom["${H.type.name.replaceAll("!","").replaceAll("[","").replaceAll("]","")}"]`:(this.ScalarTypeMap().get(H.type.name.replaceAll("!","").replaceAll("[","").replaceAll("]",""))??"any")+(H.type.isList?Array.from({length:H.type.isList}).fill("[]").join(""):"");else if(O||W)I=this.originalTypeNameToTypescriptTypeName(H.type.name);return`${H.description?`/** ${H.description??`${z}`} */`:""}
2064
2128
  ${z}: ${I};`}).join(" ")} }`;this.collector.addArgumentType(q,`export type ${q} = ${Y};`)}return{argsTypeName:q,hasAtLeastOneNonNullArg:X}},Z=D.description?`/* ${D.description} */
2065
2129
  `:"";if(D.type.isScalar||D.type.isEnum){let X=this.makeSelectionTypeInputValueForFieldWrapperType(D.name,D.type);if(this.collector.addSelectionType(D.type,X),D.hasArgs){let{argsTypeName:q,hasAtLeastOneNonNullArg:J}=B();return`${Z}${D.name}: (args${J?"":"?"}: ${q}) => ${X};`}return`${Z}${D.name}${D.type.isNonNull?"":"?"}: ${X};`}else if(D.type.ofType){let X=new g0(D.type.ofType.name,this.collector,this.options);X.makeSelectionFunction();let q=X.originalTypeNameToTypescriptTypeName(X.originalFullTypeName);if(D.hasArgs){let{argsTypeName:J,hasAtLeastOneNonNullArg:Y}=B();return`${Z}${D.name}: (args${Y?"":"?"}: ${J} ) => ${q};`}if(P)return`${Z}${D.name}${D.type.isNonNull?"":"?"}: ${this.originalTypeNameToTypescriptTypeName(D.type.ofType.name)};`;return`${Z}${D.name}${D.type.isNonNull?"":"?"}: ${q};`}else throw console.error(D.type),Error(`Unknown type for field ${D.name}: ${D.type.name}`)}makeSelectionType(){if(this.typeMeta.isDirective)return"";if(this.typeMeta.isScalar||this.typeMeta.isEnum)return this.makeSelectionTypeInputValueForFieldWrapperType(this.typeName,this.typeMeta);let D=this.originalTypeNameToTypescriptTypeNameWithoutModifiers(this.originalFullTypeName);if(this.collector.hasSelectionType(this.typeMeta))return D;let F="";if(this.typeMeta.isUnion){let P=this.typeMeta.possibleTypes.map((B)=>this.originalTypeNameToTypescriptFriendlyName(B.name)).join(" | ");F=`
2066
2130
  export type ${D} = ${P};
@@ -2076,7 +2140,7 @@ export class SelectionWrapper<
2076
2140
  {},
2077
2141
  this,
2078
2142
  undefined,
2079
- ${D.hasArgs?`args, ${P}Meta`:""})`}makeSelectionFunctionInputObjectValueForField(D,F){let P=()=>{let Z=`${F.join()}${D.name.slice(0,1).toUpperCase()}${D.name.slice(1)}Args`;if(!this.collector.hasArgumentMeta(Z)){let q=`{ ${D.args.map((J)=>{return`${J.name}: "${J.type.name}",`}).join(" ")} }`;this.collector.addArgumentMeta(Z,`export const ${Z}Meta = ${q} as const;`)}return{argsTypeName:Z}},B=D.type;if(B.isScalar||B.isEnum){let Z=this.makeSelectionFunctionInputObjectValueForFieldWrapper(D,F);if(D.hasArgs)P();return this.collector.addSelectionFunction(B,Z),`${D.name}: ${Z}`}else if(B.ofType){let Z=new g0(B.ofType.name,this.collector,this.options).makeSelectionFunction();if(D.hasArgs){let{argsTypeName:X}=P();return`${D.name}: (args: ${X}) => ${Z}.bind({ collector: this, fieldName: "${D.name}", args, argsMeta: ${X}Meta })`}return`${D.name}: ${Z}.bind({ collector: this, fieldName: "${D.name}" })`}else throw console.error(B),Error(`Unknown type for field ${D.name}: ${B.name}`)}makeDirective(){if(!this.typeMeta.isDirective)return"";let D=`_directive_${this.typeMeta.isDirective.name}`;if(this.collector.hasDirectiveFunction(this.typeMeta.isDirective))return D;let F=`${this.typeName}Args`;if(!this.collector.hasArgumentType(F)){let B=this.typeMeta.isDirective.args.map((Z)=>{let X=Z.type.isScalar,q=Z.type.isEnum,J=Z.type.isInput,Y=`${Z.name}${Z.type.isNonNull?"":"?"}`,H="any";if(X)H=Z.type.scalarTSType?`ScalarTypeMapWithCustom["${Z.type.name.replaceAll("!","").replaceAll("[","").replaceAll("]","")}"]`:this.ScalarTypeMap().get(Z.type.name.replaceAll("!","").replaceAll("[","").replaceAll("]",""))??"any";else if(J||q)H=this.originalTypeNameToTypescriptTypeName(Z.type.name);return`
2143
+ ${D.hasArgs?`args, ${P}Meta`:""})`}makeSelectionFunctionInputObjectValueForField(D,F){let P=()=>{let Z=`${F.join()}${D.name.slice(0,1).toUpperCase()}${D.name.slice(1)}Args`;if(!this.collector.hasArgumentMeta(Z)){let q=`{ ${D.args.map((J)=>{return`${J.name}: "${J.type.name}",`}).join(" ")} }`;this.collector.addArgumentMeta(Z,`export const ${Z}Meta = ${q} as const;`)}return{argsTypeName:Z}},B=D.type;if(B.isScalar||B.isEnum){let Z=this.makeSelectionFunctionInputObjectValueForFieldWrapper(D,F);if(D.hasArgs)P();return this.collector.addSelectionFunction(B,Z),`${D.name}: ${Z}`}else if(B.ofType){let Z=new g0(B.ofType.name,this.collector,this.options).makeSelectionFunction();if(D.hasArgs){let{argsTypeName:X}=P();return`${D.name}: (args: ${X}) => ${Z}.bind({ collector: this, fieldName: "${D.name}", args, argsMeta: ${X}Meta })`}return`${D.name}: ${Z}.bind({ collector: this, fieldName: "${D.name}" }) as any`}else throw console.error(B),Error(`Unknown type for field ${D.name}: ${B.name}`)}makeDirective(){if(!this.typeMeta.isDirective)return"";let D=`_directive_${this.typeMeta.isDirective.name}`;if(this.collector.hasDirectiveFunction(this.typeMeta.isDirective))return D;let F=`${this.typeName}Args`;if(!this.collector.hasArgumentType(F)){let B=this.typeMeta.isDirective.args.map((Z)=>{let X=Z.type.isScalar,q=Z.type.isEnum,J=Z.type.isInput,Y=`${Z.name}${Z.type.isNonNull?"":"?"}`,H="any";if(X)H=Z.type.scalarTSType?`ScalarTypeMapWithCustom["${Z.type.name.replaceAll("!","").replaceAll("[","").replaceAll("]","")}"]`:(this.ScalarTypeMap().get(Z.type.name.replaceAll("!","").replaceAll("[","").replaceAll("]",""))??"any")+(Z.type.isList?Array.from({length:Z.type.isList}).fill("[]").join(""):"");else if(J||q)H=this.originalTypeNameToTypescriptTypeName(Z.type.name);return`
2080
2144
  /** ${Z.description??`${Y}`} */
2081
2145
  ${Y}: ${H};`}).join(" ");this.collector.addArgumentType(F,`export type ${F} = { ${B} };`)}if(!this.collector.hasArgumentMeta(F)){let Z=`{ ${this.typeMeta.isDirective.args.map((X)=>{return`${X.name}: "${X.type.name}",`}).join(" ")} }`;this.collector.addArgumentMeta(F,`export const ${F}Meta = ${Z} as const;`)}let P=`
2082
2146
  export const ${D} = (
@@ -2402,42 +2466,41 @@ export class SelectionWrapper<
2402
2466
 
2403
2467
  if (typeof fieldFn === "function") {
2404
2468
  const makeSubSelectionFn =
2405
- (
2406
- opFnArgs?: Exclude<
2407
- Parameters<Extract<typeof fieldFn, (args: any) => any>>[0],
2408
- (args: any) => any
2409
- >,
2410
- ) =>
2411
- (opFnSelectionCb: (selection: unknown) => unknown) => {
2412
- const fieldSLFN =
2413
- opFnArgs === undefined
2414
- ? fieldFn
2415
- : (
2416
- fieldFn as (
2417
- args: typeof opFnArgs,
2418
- ) => (s: typeof opFnSelectionCb) => unknown
2419
- )(opFnArgs);
2420
-
2421
- const fieldSlw = (fieldSLFN as Extract<typeof fieldSLFN, (args: any) => any>)(
2422
- opFnSelectionCb as any,
2423
- ) as unknown as SelectionWrapperImpl<
2424
- typeof field,
2425
- string,
2426
- number,
2427
- any,
2428
- typeof opFnArgs
2429
- >;
2469
+ (opFnArgs?: Exclude<Parameters<Extract<typeof fieldFn, (args: any) => any>>[0], (args: any) => any>) =>
2470
+ (opFnSelectionCb?: (selection: unknown) => unknown) => {
2471
+ let fieldSLFN:
2472
+ | ((s: typeof opFnSelectionCb) => SelectionWrapperImpl<typeof field, string, number, any, typeof opFnArgs>)
2473
+ | SelectionWrapperImpl<typeof field, string, number, any, typeof opFnArgs>;
2474
+ if (opFnArgs === undefined) {
2475
+ fieldSLFN = fieldFn as Extract<typeof fieldFn, () => SelectionWrapperImpl<typeof field, string, number, any, typeof opFnArgs>>;
2476
+ } else {
2477
+ fieldSLFN = (
2478
+ fieldFn as unknown as (
2479
+ args: typeof opFnArgs,
2480
+ ) =>
2481
+ | ((s: typeof opFnSelectionCb) => SelectionWrapperImpl<typeof field, string, number, any, typeof opFnArgs>)
2482
+ | SelectionWrapperImpl<typeof field, string, number, any, typeof opFnArgs>
2483
+ )(opFnArgs);
2484
+ }
2485
+
2486
+ let fieldSlw: SelectionWrapperImpl<typeof field, string, number, any, typeof opFnArgs>;
2487
+ if (typeof fieldSLFN === "function") {
2488
+ fieldSlw = (fieldSLFN as (s: typeof opFnSelectionCb) => SelectionWrapperImpl<typeof field, string, number, any, typeof opFnArgs>)(
2489
+ opFnSelectionCb,
2490
+ );
2491
+ } else {
2492
+ fieldSlw = fieldSLFN;
2493
+ }
2494
+
2430
2495
  const opSlw = new SelectionWrapper(
2431
2496
  undefined,
2432
2497
  undefined,
2433
2498
  undefined,
2434
2499
  { [field]: fieldSlw },
2435
- new OperationSelectionCollector(
2436
- operation + "Selection",
2437
- root,
2438
- ),
2500
+ new OperationSelectionCollector(operation + "Selection", root),
2439
2501
  root,
2440
2502
  );
2503
+ fieldSlw[ROOT_OP_COLLECTOR] = rootRef;
2441
2504
  fieldSlw[SLW_PARENT_SLW] = opSlw;
2442
2505
  opSlw[SLW_IS_ROOT_TYPE] = operation;
2443
2506
  opSlw[SLW_PARENT_COLLECTOR] = opSlw[SLW_COLLECTOR];
@@ -2500,13 +2563,20 @@ export class SelectionWrapper<
2500
2563
  if (fieldFn.name.startsWith("bound ")) {
2501
2564
  return makeSubSelectionFn();
2502
2565
  }
2503
- return (
2504
- opFnArgs: Exclude<
2505
- Parameters<Extract<typeof fieldFn, (args: any) => any>>[0],
2506
- (args: any) => any
2507
- >,
2508
- ) => {
2509
- return makeSubSelectionFn(opFnArgs);
2566
+ return (opFnArgs: Exclude<Parameters<Extract<typeof fieldFn, (args: any) => any>>[0], (args: any) => any>) => {
2567
+ const inner = (
2568
+ fieldFn as unknown as (
2569
+ args: typeof opFnArgs,
2570
+ ) =>
2571
+ | ((s: unknown) => SelectionWrapperImpl<typeof field, string, number, any, typeof opFnArgs>)
2572
+ | SelectionWrapperImpl<typeof field, string, number, any, typeof opFnArgs>
2573
+ )(opFnArgs);
2574
+
2575
+ if (typeof inner === "function") {
2576
+ return makeSubSelectionFn(opFnArgs);
2577
+ }
2578
+
2579
+ return makeSubSelectionFn(opFnArgs)();
2510
2580
  };
2511
2581
  } else {
2512
2582
  const fieldSlw = fieldFn as SelectionWrapperImpl<any, any, any>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@samarium.sdk/new",
3
- "version": "0.25.1",
3
+ "version": "0.26.0",
4
4
  "main": "bin/samarium",
5
5
  "type": "module",
6
6
  "repository": {
@@ -44,7 +44,7 @@
44
44
  },
45
45
  "devDependencies": {
46
46
  "bun-types": "^1.2.19",
47
- "@samarium.sdk/make": "0.25.1"
47
+ "@samarium.sdk/make": "0.26.0"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "typescript": "^5.0.0"