@fern-api/typescript-dynamic-snippets 3.53.9 → 3.53.10
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/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -21,7 +21,7 @@ ${t}`)}return t}getContent(){let t=this.stringifyImports();return t.length>0?t+`
|
|
|
21
21
|
`)?this.writeStringWithBackticks({writer:e,value:this.internalType.value}):e.write(`"${this.internalType.value.replaceAll('"','\\"')}"`);break}case"tuple":{this.writeIterable({writer:e,iterable:this.internalType});break}case"unknown":{this.writeUnknown({writer:e,value:this.internalType.value});break}case"null":{e.write("null");break}case"nop":break;default:P(this.internalType)}}isObject(){return this.internalType.type==="object"}asObjectOrThrow(){if(this.isObject())return this.internalType;throw new Error("Internal error; ts.TypeLiteral is not an object")}isSet(){return this.internalType.type==="set"}asSetOrThrow(){if(this.isSet())return this.internalType;throw new Error("Internal error; ts.TypeLiteral is not a set")}isSetOfObjects(){return this.isSet()&&this.asSetOrThrow().values.every(e=>e.isObject())}writeStringWithBackticks({writer:e,value:o}){e.write("`");let p=o.split(`
|
|
22
22
|
`),d=p[0]+`
|
|
23
23
|
`,u=p.slice(1).join(`
|
|
24
|
-
`);e.write(d.replaceAll("`","\\`")),e.writeNoIndent(u.replaceAll("`","\\`")),e.write("`")}writeIterable({writer:e,iterable:o}){let p=ja({values:o.values});if(p.length===0){e.write("[]");return}e.writeLine("["),e.indent();for(let d of p)d.write(e),e.writeLine(",");e.dedent(),e.write("]")}writeRecord({writer:e,record:o}){let p=$a({entries:o.entries});if(p.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let d of p)d.key.write(e),e.write(": "),d.value.write(e),e.writeLine(",");e.dedent(),e.write("}")}writeObject({writer:e,object:o}){let p=Ma({fields:o.fields});if(p.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let d of p)e.write(`${d.name}: `),d.value.write(e),e.writeLine(",");e.dedent(),e.write("}")}static array({values:e}){return new this({type:"array",values:e})}static bigint(e){return new this({type:"bigint",value:e})}static blob(e){return new this({type:"blob",value:e})}static boolean(e){return new this({type:"boolean",value:e})}static datetime(e){return new this({type:"datetime",value:e})}static number(e){return new this({type:"number",value:e})}static object({fields:e}){return new this({type:"object",fields:e})}static record({entries:e}){return new this({type:"record",entries:e})}static reference(e){return new this({type:"reference",value:e})}static set({values:e}){return new this({type:"set",values:e})}static string(e){return new this({type:"string",value:e})}static tuple({values:e}){return new this({type:"tuple",values:e})}static unknown(e){return new this({type:"unknown",value:e})}static null(){return new this({type:"null"})}static nop(){return new this({type:"nop"})}static isNop(e){return e.internalType.type==="nop"}writeUnknown({writer:e,value:o}){switch(typeof o){case"boolean":e.write(o.toString());return;case"string":e.write(o.includes('"')?`\`${o}\``:`"${o}"`);return;case"number":e.write(o.toString());return;case"object":if(o==null){e.write("null");return}if(Array.isArray(o)){this.writeUnknownArray({writer:e,value:o});return}this.writeUnknownObject({writer:e,value:o});return;default:throw new Error(`Internal error; unsupported unknown type: ${typeof o}`)}}writeUnknownArray({writer:e,value:o}){if(o.length===0){e.write("[]");return}e.writeLine("["),e.indent();for(let p of o)e.writeNode(s.unknown(p)),e.writeLine(",");e.dedent(),e.write("]")}writeUnknownObject({writer:e,value:o}){let p=Object.entries(o);if(p.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let[d,u]of p)e.write(`${d}: `),e.writeNode(s.unknown(u)),e.writeLine(",");e.dedent(),e.write("}")}};function Ma({fields:s}){return s.filter(t=>!re.isNop(t.value))}function $a({entries:s}){return s.filter(t=>!re.isNop(t.key)&&!re.isNop(t.value))}function ja({values:s}){return s.filter(t=>!re.isNop(t))}l();f();c();var Re=class extends C{constructor(e){super();b(this,"args");this.args=e}write(e){this.args.export&&e.write("export "),this.args.const?e.write("const "):e.write("let "),e.write(`${this.args.name} = `),e.writeNode(this.args.initializer)}};function Da(s){return new ve(s)}function Wa(s){return new Ie(s)}function Va(s){return new be(s)}function qa(s){return new Te(s)}function Ga(s){return new Ee(s)}function za(s){return new Ae(s)}function Ha(s){return new fe(s)}function Ya(s){return new Re(s)}l();f();c();l();f();c();function oi({generatorConfig:s,isPackagePrivate:t}){let e=s.output.mode;switch(e.type){case"downloadFiles":return;case"publish":return{packageName:e.registriesV2.npm.packageName,version:e.version,private:t,publishInfo:{registryUrl:e.registriesV2.npm.registryUrl,token:e.registriesV2.npm.token},license:void 0,repoUrl:void 0};case"github":if(e.publishInfo!=null&&e.publishInfo.type!=="npm")throw new Error(`Expected to receive npm publish info but received ${e.publishInfo.type} instead`);return{packageName:e.publishInfo!=null?e.publishInfo.packageName:"",version:e.version,private:t,publishInfo:void 0,repoUrl:Ja(e.repoUrl),license:s.license?._visit({basic:o=>o.id,custom:o=>`See ${o.filename}`,_other:()=>{}})};default:throw new Error(`Encountered unknown output mode: ${e}`)}}function Ja(s){if(s!=null)return s.startsWith("https://github.com/")?`git+${s}`:s.startsWith("ssh://github.com/")?`github:${_e(s).replace("ssh://github.com/","")}`:s.startsWith("https://bitbucket.org/")?`bitbucket:${_e(s).replace("https://bitbucket.org/","")}`:s.startsWith("ssh://bitbucket.org/")?`bitbucket:${_e(s).replace("ssh://bitbucket.org/","")}`:s.startsWith("https://gitlab.com/")?`gitlab:${_e(s).replace("https://gitlab.com/","")}`:s.startsWith("ssh://gitlab.com/")?`gitlab:${_e(s).replace("ssh://gitlab.com/","")}`:(s.startsWith("git+")||(s=`git+${s}`),s.endsWith(".git")||(s=`${s}.git`),s)}function _e(s){return s.endsWith(".git")?s.slice(0,-4):s}l();f();c();function ht({organization:s,workspaceName:t,namespaceExport:e}){return e??`${xe(Je(s))}${xe(Je(t))}`}l();f();c();l();f();c();var De={};K(De,{commons:()=>ai,dynamic:()=>wt,generatorExec:()=>vt});l();f();c();l();f();c();var ai={};l();f();c();var wt={};K(wt,{ErrorSeverity:()=>mi,HttpMethod:()=>fi,ObjectPropertyAccess:()=>hi,PrimitiveTypeV1:()=>yi,auth:()=>si,commons:()=>ui,declaration:()=>pi,endpoints:()=>li,environment:()=>ci,http:()=>yt,ir:()=>di,snippets:()=>xt,types:()=>gt,variables:()=>xi});l();f();c();l();f();c();var si={};l();f();c();var ui={};l();f();c();var pi={};l();f();c();var li={};l();f();c();var ci={};l();f();c();var yt={};K(yt,{HttpMethod:()=>fi});l();f();c();l();f();c();var fi={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE",Head:"HEAD"};var di={};l();f();c();var xt={};K(xt,{ErrorSeverity:()=>mi});l();f();c();l();f();c();var mi={Critical:"CRITICAL",Warning:"WARNING"};var gt={};K(gt,{ObjectPropertyAccess:()=>hi,PrimitiveTypeV1:()=>yi});l();f();c();l();f();c();var hi={ReadOnly:"READ_ONLY",WriteOnly:"WRITE_ONLY"};l();f();c();var yi={Integer:"INTEGER",Long:"LONG",Uint:"UINT",Uint64:"UINT_64",Float:"FLOAT",Double:"DOUBLE",Boolean:"BOOLEAN",String:"STRING",Date:"DATE",DateTime:"DATE_TIME",Uuid:"UUID",Base64:"BASE_64",BigInteger:"BIG_INTEGER"};var xi={};l();f();c();var vt={};K(vt,{LicenseId:()=>gi,config:()=>bt});l();f();c();l();f();c();var bt={};K(bt,{LicenseId:()=>gi});l();f();c();l();f();c();var gi={Mit:"MIT",Apache2:"Apache-2.0"};var Za="value",Qe=class{constructor({context:t}){b(this,"context");this.context=t}convert(t){let e=t.convertOpts;if(t.value===null)return this.context.isNullable(t.typeReference)?v.TypeLiteral.null():(this.context.errors.add({severity:F.Critical,message:"Expected non-null value, but got null"}),v.TypeLiteral.nop());if(t.value===void 0)return v.TypeLiteral.nop();switch(t.typeReference.type){case"list":return this.convertList({list:t.typeReference.value,value:t.value,convertOpts:e});case"literal":return this.convertLiteral({literalType:t.typeReference.value,value:t.value,convertOpts:e});case"map":return this.convertMap({map:t.typeReference,value:t.value,convertOpts:e});case"named":{let o=this.context.resolveNamedType({typeId:t.typeReference.value});return o==null?v.TypeLiteral.nop():this.convertNamed({named:o,value:t.value,as:t.as,convertOpts:e})}case"optional":return this.convert({typeReference:t.typeReference.value,value:t.value,as:t.as,convertOpts:e});case"nullable":return this.convert({typeReference:t.typeReference.value,value:t.value,as:t.as,convertOpts:e});case"primitive":return this.convertPrimitive({primitive:t.typeReference.value,value:t.value,as:t.as,convertOpts:e});case"set":return this.convertSet({set:t.typeReference.value,value:t.value,convertOpts:e});case"unknown":return this.convertUnknown({value:t.value,convertOpts:e});default:P(t.typeReference)}}convertLiteral({literalType:t,value:e}){switch(t.type){case"boolean":{let o=this.context.getValueAsBoolean({value:e});return o==null?v.TypeLiteral.nop():v.TypeLiteral.boolean(o)}case"string":{let o=this.context.getValueAsString({value:e});return o==null?v.TypeLiteral.nop():v.TypeLiteral.string(o)}default:P(t)}}convertList({list:t,value:e,convertOpts:o}){return Array.isArray(e)?v.TypeLiteral.array({values:e.map((p,d)=>{this.context.errors.scope({index:d});try{return this.convert({typeReference:t,value:p,convertOpts:o})}finally{this.context.errors.unscope()}})}):(this.context.errors.add({severity:F.Critical,message:`Expected array but got: ${typeof e}`}),v.TypeLiteral.nop())}convertSet({set:t,value:e,convertOpts:o}){return Array.isArray(e)?v.TypeLiteral.set({values:e.map((p,d)=>{this.context.errors.scope({index:d});try{return this.convert({typeReference:t,value:p,convertOpts:o})}finally{this.context.errors.unscope()}})}):(this.context.errors.add({severity:F.Critical,message:`Expected array but got: ${typeof e}`}),v.TypeLiteral.nop())}convertMap({map:t,value:e,convertOpts:o}){return typeof e!="object"||e==null?(this.context.errors.add({severity:F.Critical,message:`Expected object but got: ${e==null?"null":typeof e}`}),v.TypeLiteral.nop()):v.TypeLiteral.record({entries:Object.entries(e).map(([p,d])=>{this.context.errors.scope(p);try{return{key:this.convert({typeReference:t.key,value:p,as:"key",convertOpts:o}),value:this.convert({typeReference:t.value,value:d,convertOpts:o})}}finally{this.context.errors.unscope()}})})}convertNamed({named:t,value:e,as:o,convertOpts:p}){switch(t.type){case"alias":return this.context.customConfig?.useBrandedStringAliases?v.TypeLiteral.reference(v.codeblock(d=>{d.writeNode(v.reference({name:this.context.namespaceExport,importFrom:this.context.getModuleImport(),memberName:this.context.getFullyQualifiedReference({declaration:t.declaration})})),d.write("("),d.writeNode(this.convert({typeReference:t.typeReference,value:e,as:o,convertOpts:p})),d.write(")")})):this.convert({typeReference:t.typeReference,value:e,as:o,convertOpts:p});case"discriminatedUnion":return this.convertDiscriminatedUnion({discriminatedUnion:t,value:e,convertOpts:p});case"enum":return this.convertEnum({enum_:t,value:e,convertOpts:p});case"object":return this.convertObject({object_:t,value:e,convertOpts:p});case"undiscriminatedUnion":return this.convertUndiscriminatedUnion({undiscriminatedUnion:t,value:e,convertOpts:p});default:P(t)}}convertDiscriminatedUnion({discriminatedUnion:t,value:e,convertOpts:o}){let p=this.context.resolveDiscriminatedUnionTypeInstance({discriminatedUnion:t,value:e});if(p==null)return v.TypeLiteral.nop();let d=p.singleDiscriminatedUnionType,u=this.convertDiscriminatedUnionProperties({discriminatedUnionTypeInstance:p,unionVariant:d,convertOpts:o});if(u==null)return v.TypeLiteral.nop();if(this.context.customConfig?.includeUtilsOnUnionMembers)return v.TypeLiteral.reference(v.codeblock(T=>{T.writeNode(v.invokeMethod({on:v.reference({name:this.context.namespaceExport,importFrom:this.context.getModuleImport(),memberName:this.context.getFullyQualifiedReference({declaration:t.declaration})}),method:this.context.getMethodName(d.discriminantValue.name),arguments_:this.convertDiscriminatedUnionUtilsArgs({discriminatedUnionTypeInstance:p,unionVariant:d,unionProperties:u,convertOpts:o})}))}));let I={name:this.context.getPropertyName(t.discriminant.name),value:v.TypeLiteral.string(d.discriminantValue.wireValue)};return v.TypeLiteral.object({fields:[I,...u]})}convertDiscriminatedUnionProperties({discriminatedUnionTypeInstance:t,unionVariant:e,convertOpts:o}){let p=this.getBaseFields({discriminatedUnionTypeInstance:t,singleDiscriminatedUnionType:e});switch(e.type){case"samePropertiesAsObject":{let d=this.context.resolveNamedType({typeId:e.typeId});if(d==null)return;let u=this.convertNamed({named:d,value:t.value,convertOpts:o});if(!u.isObject()){this.context.errors.add({severity:F.Critical,message:"Internal error; expected union value to be an object"});return}let I=u.asObjectOrThrow();return[...p,...I.fields]}case"singleProperty":try{this.context.errors.scope(e.discriminantValue.wireValue);let d=this.context.getRecord(t.value);return d==null?[...p,{name:Za,value:this.convert({typeReference:e.typeReference,value:t.value,convertOpts:o})}]:[...p,{name:this.context.getPropertyName(e.discriminantValue.name),value:this.convert({typeReference:e.typeReference,value:d[e.discriminantValue.wireValue],convertOpts:o})}]}finally{this.context.errors.unscope()}case"noProperties":return p;default:P(e)}}convertDiscriminatedUnionUtilsArgs({discriminatedUnionTypeInstance:t,unionVariant:e,unionProperties:o,convertOpts:p}){return e.type==="singleProperty"&&this.context.getRecord(t.value)==null&&o.length===1?[this.convert({typeReference:e.typeReference,value:t.value,convertOpts:p})]:o.length>0?[v.TypeLiteral.object({fields:o})]:[]}getBaseFields({discriminatedUnionTypeInstance:t,singleDiscriminatedUnionType:e,convertOpts:o}){return this.context.associateByWireValue({parameters:e.properties??[],values:this.context.getRecord(t.value)??{},ignoreMissingParameters:!0}).map(d=>{this.context.errors.scope(d.name.wireValue);try{return{name:this.context.getPropertyName(d.name.name),value:this.convert({...d,convertOpts:o})}}finally{this.context.errors.unscope()}})}convertObject({object_:t,value:e,convertOpts:o}){let p=this.context.associateByWireValue({parameters:this.filterReadWriteProperties(t.properties,o),values:this.context.getRecord(e)??{}});return v.TypeLiteral.object({fields:p.map(d=>{this.context.errors.scope(d.name.wireValue);try{return{name:this.context.getPropertyName(d.name.name),value:this.convert({...d,convertOpts:o})}}finally{this.context.errors.unscope()}})})}filterReadWriteProperties(t,e){return this.context.customConfig?.experimentalGenerateReadWriteOnlyTypes!==!0||typeof e>"u"||(e.isForRequest&&(t=t.filter(o=>o.propertyAccess!==De.dynamic.ObjectPropertyAccess.ReadOnly)),e.isForResponse&&(t=t.filter(o=>o.propertyAccess!==De.dynamic.ObjectPropertyAccess.WriteOnly))),t}convertEnum({enum_:t,value:e}){let o=this.getEnumValue({enum_:t,value:e});return o==null?v.TypeLiteral.nop():v.TypeLiteral.string(o)}getEnumValue({enum_:t,value:e}){if(typeof e!="string"){this.context.errors.add({severity:F.Critical,message:`Expected enum value string, got: ${typeof e}`});return}if(t.values.find(p=>p.wireValue===e)==null){this.context.errors.add({severity:F.Critical,message:`An enum value named "${e}" does not exist in this context`});return}return e}convertUndiscriminatedUnion({undiscriminatedUnion:t,value:e,convertOpts:o}){let p=this.findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:e,convertOpts:o});return p??v.TypeLiteral.nop()}findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:e,convertOpts:o}){for(let p of t.types){let d=this.context.errors.size();try{let u=this.convert({typeReference:p,value:e,convertOpts:o});if(v.TypeLiteral.isNop(u)){this.context.errors.truncate(d);continue}return u}catch{this.context.errors.truncate(d);continue}}this.context.errors.add({severity:F.Critical,message:`None of the types in the undiscriminated union matched the given "${typeof e}" value`})}convertUnknown({value:t,convertOpts:e}){return v.TypeLiteral.unknown(t)}convertPrimitive({primitive:t,value:e,as:o,convertOpts:p}){switch(t){case"INTEGER":case"UINT":{let d=this.getValueAsNumber({value:e,as:o});return d==null?v.TypeLiteral.nop():v.TypeLiteral.number(d)}case"LONG":case"UINT_64":{let d=this.getValueAsNumber({value:e,as:o});return d==null?v.TypeLiteral.nop():this.context.customConfig?.useBigInt?v.TypeLiteral.bigint(BigInt(d)):v.TypeLiteral.number(d)}case"FLOAT":case"DOUBLE":{let d=this.getValueAsNumber({value:e});return d==null?v.TypeLiteral.nop():v.TypeLiteral.number(d)}case"BOOLEAN":{let d=this.getValueAsBoolean({value:e,as:o});return d==null?v.TypeLiteral.nop():v.TypeLiteral.boolean(d)}case"BASE_64":case"DATE":case"UUID":case"STRING":{let d=this.context.getValueAsString({value:e});return d==null?v.TypeLiteral.nop():v.TypeLiteral.string(d)}case"DATE_TIME":{let d=this.context.getValueAsString({value:e});return d==null?v.TypeLiteral.nop():v.TypeLiteral.datetime(d)}case"BIG_INTEGER":{let d=this.context.getValueAsString({value:e});return d==null?v.TypeLiteral.nop():this.context.customConfig?.useBigInt?v.TypeLiteral.bigint(BigInt(d)):v.TypeLiteral.string(d)}default:P(t)}}getValueAsNumber({value:t,as:e}){let o=e==="key"&&typeof t=="string"?Number(t):t;return this.context.getValueAsNumber({value:o})}getValueAsBoolean({value:t,as:e}){let o=e==="key"?typeof t=="string"?t==="true":t==="false"?!1:t:t;return this.context.getValueAsBoolean({value:o})}};l();f();c();var et=class{constructor({context:t}){b(this,"context");this.context=t}getFilePropertyInfo({body:t,value:e}){let o={fileFields:[],bodyPropertyFields:[]},p=this.context.getRecord(e)??{};for(let d of t.properties)switch(d.type){case"file":o.fileFields.push({name:this.context.getPropertyName(d.name),value:this.getSingleFileProperty({property:d,record:p})});break;case"fileArray":o.fileFields.push({name:this.context.getPropertyName(d.name),value:this.getArrayFileProperty({property:d,record:p})});break;case"bodyProperty":o.bodyPropertyFields.push({name:this.context.getPropertyName(d.name.name),value:this.getBodyProperty({property:d,record:p})});break;default:P(d)}return o}getSingleFileProperty({property:t,record:e}){let o=this.context.getSingleFileValue({property:t,record:e});return o==null?v.TypeLiteral.nop():v.TypeLiteral.blob(o)}getArrayFileProperty({property:t,record:e}){let o=this.context.getFileArrayValues({property:t,record:e});return o==null?v.TypeLiteral.nop():v.TypeLiteral.array({values:o.map(p=>v.TypeLiteral.blob(p))})}getBodyProperty({property:t,record:e}){let o=e[t.name.wireValue];return o==null?v.TypeLiteral.nop():this.context.dynamicTypeLiteralMapper.convert({typeReference:t.typeReference,value:o})}};var tt=class s extends $e{constructor({ir:e,config:o}){super({ir:e,config:o});b(this,"ir");b(this,"customConfig");b(this,"dynamicTypeLiteralMapper");b(this,"filePropertyMapper");b(this,"moduleName");b(this,"namespaceExport");this.ir=e,this.customConfig=o.customConfig!=null?o.customConfig:void 0,this.dynamicTypeLiteralMapper=new Qe({context:this}),this.filePropertyMapper=new et({context:this}),this.moduleName=Ka({config:o,customConfig:this.customConfig}),this.namespaceExport=ht({organization:o.organization,workspaceName:o.workspaceName,namespaceExport:this.customConfig?.namespaceExport})}clone(){return new s({ir:this.ir,config:this.config})}getModuleImport(){return{type:"named",moduleName:this.moduleName}}getRootClientName(){return`${this.namespaceExport}Client`}getPropertyName(e){return this.customConfig?.retainOriginalCasing||this.customConfig?.noSerdeLayer?this.formatOriginalPropertyName(e.originalName):e.camelCase.unsafeName}getMethodName(e){return e.camelCase.unsafeName}getTypeName(e){return e.pascalCase.unsafeName}getEnvironmentTypeReferenceFromID(e){let o=this.resolveEnvironmentName(e);if(o!=null)return this.getEnvironmentsTypeReference(o)}getFullyQualifiedReference({declaration:e}){return e.fernFilepath.allParts.length>0?`${e.fernFilepath.allParts.map(o=>o.camelCase.unsafeName).join(".")}.${this.getTypeName(e.name)}`:`${this.getTypeName(e.name)}`}getEnvironmentsTypeReference(e){return v.reference({name:`${this.namespaceExport}Environment`,importFrom:this.getModuleImport(),memberName:this.getTypeName(e)})}formatOriginalPropertyName(e){return e.includes("-")?`"${e}"`:e}};function Ka({config:s,customConfig:t}){return oi({generatorConfig:s,isPackagePrivate:t?.private??!1})?.packageName??s.organization}l();f();c();var wi="client",bi="main",Xa={type:"primitive",value:"STRING"},rt=class{constructor({context:t}){b(this,"context");this.context=t}async generateSnippet({endpoint:t,request:e}){return await this.buildCodeBlock({endpoint:t,snippet:e}).toStringAsync({customConfig:this.context.customConfig})}generateSnippetSync({endpoint:t,request:e}){return this.buildCodeBlock({endpoint:t,snippet:e}).toString({customConfig:this.context.customConfig})}async generateSnippetAst({endpoint:t,request:e}){return this.buildCodeBlock({endpoint:t,snippet:e})}buildCodeBlock({endpoint:t,snippet:e}){return v.codeblock(o=>{o.writeNode(v.function_({name:bi,async:!0,parameters:[],body:v.codeblock(p=>{p.writeNodeStatement(this.constructClient({endpoint:t,snippet:e})),p.writeNodeStatement(this.callMethod({endpoint:t,snippet:e}))})})),o.writeNodeStatement(v.invokeFunction({function_:v.reference({name:bi}),arguments_:[]}))})}constructClient({endpoint:t,snippet:e}){return v.variable({name:wi,const:!0,initializer:v.instantiateClass({class_:v.reference({name:this.context.getRootClientName(),importFrom:this.context.getModuleImport()}),arguments_:[this.getConstructorArgs({endpoint:t,snippet:e})]})})}getConstructorArgs({endpoint:t,snippet:e}){let o=[],p=this.getConstructorEnvironmentArgs({baseUrl:e.baseURL,environment:e.environment});return p.length>0&&o.push(...p),t.auth!=null&&(e.auth!=null?o.push(...this.getConstructorAuthArgs({auth:t.auth,values:e.auth})):this.context.errors.add({severity:F.Warning,message:`Auth with ${t.auth.type} configuration is required for this endpoint`})),this.context.errors.scope(J.PathParameters),this.context.ir.pathParameters!=null&&o.push(...this.getPathParameters({namedParameters:this.context.ir.pathParameters,snippet:e})),this.context.errors.unscope(),this.context.errors.scope(J.Headers),this.context.ir.headers!=null&&e.headers!=null&&o.push(...this.getConstructorHeaderArgs({headers:this.context.ir.headers,values:e.headers})),this.context.errors.unscope(),o.length===0?v.TypeLiteral.nop():v.TypeLiteral.object({fields:o})}getConstructorEnvironmentArgs({baseUrl:t,environment:e}){let o=this.getEnvironmentValue({baseUrl:t,environment:e});return o==null?[]:[{name:"environment",value:o}]}getEnvironmentValue({baseUrl:t,environment:e}){if(t!=null&&e!=null){this.context.errors.add({severity:F.Critical,message:"Cannot specify both baseUrl and environment options"});return}if(t!=null)return v.TypeLiteral.string(t);if(e!=null){if(this.context.isSingleEnvironmentID(e)){let o=this.context.getEnvironmentTypeReferenceFromID(e);if(o==null){this.context.errors.add({severity:F.Warning,message:`Environment ${JSON.stringify(e)} was not found`});return}return v.TypeLiteral.reference(o)}if(this.context.isMultiEnvironmentValues(e))return this.context.validateMultiEnvironmentUrlValues(e)?v.TypeLiteral.object({fields:Object.entries(e).map(([o,p])=>({name:o,value:this.context.dynamicTypeLiteralMapper.convert({typeReference:Xa,value:p})}))}):void 0}}getConstructorAuthArgs({auth:t,values:e}){switch(t.type){case"basic":return e.type!=="basic"?(this.addAuthMismatchError(t,e),[]):this.getConstructorBasicAuthArg({auth:t,values:e});case"bearer":return e.type!=="bearer"?(this.addAuthMismatchError(t,e),[]):this.getConstructorBearerAuthArgs({auth:t,values:e});case"header":return e.type!=="header"?(this.addAuthMismatchError(t,e),[]):this.getConstructorHeaderAuthArgs({auth:t,values:e});case"oauth":return e.type!=="oauth"?(this.addAuthMismatchError(t,e),[]):this.getConstructorOAuthArgs({auth:t,values:e});case"inferred":return e.type!=="inferred"?(this.addAuthMismatchError(t,e),[]):(this.addWarning("The TypeScript SDK v2 Generator does not support Inferred auth scheme yet"),[]);default:P(t)}}addAuthMismatchError(t,e){this.context.errors.add({severity:F.Critical,message:this.context.newAuthMismatchError({auth:t,values:e}).message})}addWarning(t){this.context.errors.add({severity:F.Warning,message:t})}getConstructorBasicAuthArg({auth:t,values:e}){return[{name:this.context.getPropertyName(t.username),value:v.TypeLiteral.string(e.username)},{name:this.context.getPropertyName(t.password),value:v.TypeLiteral.string(e.password)}]}getConstructorBearerAuthArgs({auth:t,values:e}){return[{name:this.context.getPropertyName(t.token),value:v.TypeLiteral.string(e.token)}]}getConstructorHeaderAuthArgs({auth:t,values:e}){return[{name:this.context.getPropertyName(t.header.name.name),value:this.context.dynamicTypeLiteralMapper.convert({typeReference:t.header.typeReference,value:e.value})}]}getConstructorOAuthArgs({auth:t,values:e}){return[{name:this.context.getPropertyName(t.clientId),value:v.TypeLiteral.string(e.clientId)},{name:this.context.getPropertyName(t.clientSecret),value:v.TypeLiteral.string(e.clientSecret)}]}getConstructorHeaderArgs({headers:t,values:e}){let o=[];for(let p of t){let d=this.getConstructorHeaderArg({header:p,value:e.value});d!=null&&o.push(d)}return o}getConstructorHeaderArg({header:t,value:e}){let o=this.context.dynamicTypeLiteralMapper.convert({typeReference:t.typeReference,value:e});if(!v.TypeLiteral.isNop(o))return{name:this.context.getPropertyName(t.name.name),value:o}}callMethod({endpoint:t,snippet:e}){return v.invokeMethod({on:v.reference({name:wi}),method:this.getMethod({endpoint:t}),async:!0,arguments_:this.getMethodArgs({endpoint:t,snippet:e})})}getMethodArgs({endpoint:t,snippet:e}){switch(t.request.type){case"inlined":return this.getMethodArgsForInlinedRequest({request:t.request,snippet:e});case"body":return this.getMethodArgsForBodyRequest({request:t.request,snippet:e});default:P(t.request)}}getMethodArgsForBodyRequest({request:t,snippet:e}){let o=[];this.context.errors.scope(J.PathParameters);let p=[...this.context.ir.pathParameters??[],...t.pathParameters??[]];return p.length>0&&o.push(...this.getPathParameters({namedParameters:p,snippet:e}).map(d=>d.value)),this.context.errors.unscope(),this.context.errors.scope(J.RequestBody),t.body!=null&&o.push(this.getBodyRequestArg({body:t.body,value:e.requestBody})),this.context.errors.unscope(),o}getBodyRequestArg({body:t,value:e}){switch(t.type){case"bytes":return this.getBytesBodyRequestArg({value:e});case"typeReference":return this.context.dynamicTypeLiteralMapper.convert({typeReference:t.value,value:e,convertOpts:{isForRequest:!0}});default:P(t)}}getBytesBodyRequestArg({value:t}){return typeof t!="string"?(this.context.errors.add({severity:F.Critical,message:`Expected bytes value to be a string, got ${typeof t}`}),v.TypeLiteral.nop()):v.TypeLiteral.blob(t)}getMethodArgsForInlinedRequest({request:t,snippet:e}){let o=[],{inlinePathParameters:p,inlineFileProperties:d}={inlinePathParameters:this.context.customConfig?.inlinePathParameters??!1,inlineFileProperties:this.context.customConfig?.inlineFileProperties??!1};this.context.errors.scope(J.PathParameters);let u=[];t.pathParameters!=null&&u.push(...this.getPathParameters({namedParameters:t.pathParameters,snippet:e})),this.context.errors.unscope(),this.context.errors.scope(J.RequestBody);let I=this.getFilePropertyInfo({request:t,snippet:e});return this.context.errors.unscope(),this.context.includePathParametersInWrappedRequest({request:t,inlinePathParameters:p})||o.push(...u.map(T=>T.value)),d||o.push(...I.fileFields.map(T=>T.value)),this.context.needsRequestParameter({request:t,inlinePathParameters:p,inlineFileProperties:d})&&o.push(this.getInlinedRequestArg({request:t,snippet:e,pathParameterFields:this.context.includePathParametersInWrappedRequest({request:t,inlinePathParameters:p})?u:[],filePropertyInfo:I})),o}getFilePropertyInfo({request:t,snippet:e}){return t.body==null||!this.context.isFileUploadRequestBody(t.body)?{fileFields:[],bodyPropertyFields:[]}:this.context.filePropertyMapper.getFilePropertyInfo({body:t.body,value:e.requestBody})}getInlinedRequestArg({request:t,snippet:e,pathParameterFields:o,filePropertyInfo:p}){this.context.errors.scope(J.QueryParameters);let u=this.context.associateQueryParametersByWireValue({parameters:t.queryParameters??[],values:e.queryParameters??{}}).map(R=>({name:this.context.getPropertyName(R.name.name),value:this.context.dynamicTypeLiteralMapper.convert({...R,convertOpts:{isForRequest:!0}})}));this.context.errors.unscope(),this.context.errors.scope(J.Headers);let T=this.context.associateByWireValue({parameters:t.headers??[],values:e.headers??{}}).map(R=>({name:this.context.getPropertyName(R.name.name),value:this.context.dynamicTypeLiteralMapper.convert({...R,convertOpts:{isForRequest:!0}})}));this.context.errors.unscope(),this.context.errors.scope(J.RequestBody);let N=t.body!=null?this.getInlinedRequestBodyObjectFields({body:t.body,value:e.requestBody,filePropertyInfo:p}):[];return this.context.errors.unscope(),v.TypeLiteral.object({fields:[...o,...u,...T,...N]})}getInlinedRequestBodyObjectFields({body:t,value:e,filePropertyInfo:o}){switch(t.type){case"properties":return this.getInlinedRequestBodyPropertyObjectFields({parameters:t.value,value:e});case"referenced":return[this.getReferencedRequestBodyPropertyObjectField({body:t,value:e})];case"fileUpload":return this.getFileUploadRequestBodyObjectFields({filePropertyInfo:o});default:P(t)}}getFileUploadRequestBodyObjectFields({filePropertyInfo:t}){return this.context.customConfig?.inlineFileProperties?[...t.fileFields,...t.bodyPropertyFields]:t.bodyPropertyFields}getReferencedRequestBodyPropertyObjectField({body:t,value:e}){return{name:this.context.getPropertyName(t.bodyKey),value:this.getReferencedRequestBodyPropertyTypeLiteral({body:t.bodyType,value:e})}}getReferencedRequestBodyPropertyTypeLiteral({body:t,value:e}){switch(t.type){case"bytes":return this.getBytesBodyRequestArg({value:e});case"typeReference":return this.context.dynamicTypeLiteralMapper.convert({typeReference:t.value,value:e,convertOpts:{isForRequest:!0}});default:P(t)}}getInlinedRequestBodyPropertyObjectFields({parameters:t,value:e}){let o=[],p=this.context.associateByWireValue({parameters:t,values:this.context.getRecord(e)??{}});for(let d of p)o.push({name:this.context.getPropertyName(d.name.name),value:this.context.dynamicTypeLiteralMapper.convert({...d,convertOpts:{isForRequest:!0}})});return o}getPathParameters({namedParameters:t,snippet:e}){let o=[],p=this.context.associateByWireValue({parameters:t,values:e.pathParameters??{},ignoreMissingParameters:!0});for(let d of p)o.push({name:this.context.getPropertyName(d.name.name),value:this.context.dynamicTypeLiteralMapper.convert({...d,convertOpts:{isForRequest:!0}})});return o}getMethod({endpoint:t}){return t.declaration.fernFilepath.allParts.length>0?`${t.declaration.fernFilepath.allParts.map(e=>this.context.getMethodName(e)).join(".")}.${this.context.getMethodName(t.declaration.name)}`:this.context.getMethodName(t.declaration.name)}};var nt=class extends Oe{constructor({ir:t,config:e}){super(new tt({ir:t,config:e}))}async generate(t){return super.generate(t)}generateSync(t){return super.generateSync(t)}async generateSnippetAst(t){return super.generateSnippetAst(t)}createSnippetGenerator(t){return new rt({context:t})}};0&&(module.exports={DynamicSnippetsGenerator});
|
|
24
|
+
`);e.write(d.replaceAll("`","\\`")),e.writeNoIndent(u.replaceAll("`","\\`")),e.write("`")}writeIterable({writer:e,iterable:o}){let p=ja({values:o.values});if(p.length===0){e.write("[]");return}e.writeLine("["),e.indent();for(let d of p)d.write(e),e.writeLine(",");e.dedent(),e.write("]")}writeRecord({writer:e,record:o}){let p=$a({entries:o.entries});if(p.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let d of p)d.key.write(e),e.write(": "),d.value.write(e),e.writeLine(",");e.dedent(),e.write("}")}writeObject({writer:e,object:o}){let p=Ma({fields:o.fields});if(p.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let d of p)e.write(`${d.name}: `),d.value.write(e),e.writeLine(",");e.dedent(),e.write("}")}static array({values:e}){return new this({type:"array",values:e})}static bigint(e){return new this({type:"bigint",value:e})}static blob(e){return new this({type:"blob",value:e})}static boolean(e){return new this({type:"boolean",value:e})}static datetime(e){return new this({type:"datetime",value:e})}static number(e){return new this({type:"number",value:e})}static object({fields:e}){return new this({type:"object",fields:e})}static record({entries:e}){return new this({type:"record",entries:e})}static reference(e){return new this({type:"reference",value:e})}static set({values:e}){return new this({type:"set",values:e})}static string(e){return new this({type:"string",value:e})}static tuple({values:e}){return new this({type:"tuple",values:e})}static unknown(e){return new this({type:"unknown",value:e})}static null(){return new this({type:"null"})}static nop(){return new this({type:"nop"})}static isNop(e){return e.internalType.type==="nop"}writeUnknown({writer:e,value:o}){switch(typeof o){case"boolean":e.write(o.toString());return;case"string":e.write(o.includes('"')?`\`${o}\``:`"${o}"`);return;case"number":e.write(o.toString());return;case"object":if(o==null){e.write("null");return}if(Array.isArray(o)){this.writeUnknownArray({writer:e,value:o});return}this.writeUnknownObject({writer:e,value:o});return;default:throw new Error(`Internal error; unsupported unknown type: ${typeof o}`)}}writeUnknownArray({writer:e,value:o}){if(o.length===0){e.write("[]");return}e.writeLine("["),e.indent();for(let p of o)e.writeNode(s.unknown(p)),e.writeLine(",");e.dedent(),e.write("]")}writeUnknownObject({writer:e,value:o}){let p=Object.entries(o);if(p.length===0){e.write("{}");return}e.writeLine("{"),e.indent();for(let[d,u]of p)e.write(`${d}: `),e.writeNode(s.unknown(u)),e.writeLine(",");e.dedent(),e.write("}")}};function Ma({fields:s}){return s.filter(t=>!re.isNop(t.value))}function $a({entries:s}){return s.filter(t=>!re.isNop(t.key)&&!re.isNop(t.value))}function ja({values:s}){return s.filter(t=>!re.isNop(t))}l();f();c();var Re=class extends C{constructor(e){super();b(this,"args");this.args=e}write(e){this.args.export&&e.write("export "),this.args.const?e.write("const "):e.write("let "),e.write(`${this.args.name} = `),e.writeNode(this.args.initializer)}};function Da(s){return new ve(s)}function Wa(s){return new Ie(s)}function Va(s){return new be(s)}function qa(s){return new Te(s)}function Ga(s){return new Ee(s)}function za(s){return new Ae(s)}function Ha(s){return new fe(s)}function Ya(s){return new Re(s)}l();f();c();l();f();c();function oi({generatorConfig:s,isPackagePrivate:t}){let e=s.output.mode;switch(e.type){case"downloadFiles":return;case"publish":return{packageName:e.registriesV2.npm.packageName,version:e.version,private:t,publishInfo:{registryUrl:e.registriesV2.npm.registryUrl,token:e.registriesV2.npm.token},license:void 0,repoUrl:void 0};case"github":if(e.publishInfo!=null&&e.publishInfo.type!=="npm")throw new Error(`Expected to receive npm publish info but received ${e.publishInfo.type} instead`);return{packageName:e.publishInfo!=null?e.publishInfo.packageName:"",version:e.version,private:t,publishInfo:void 0,repoUrl:Ja(e.repoUrl),license:s.license?._visit({basic:o=>o.id,custom:o=>`See ${o.filename}`,_other:()=>{}})};default:throw new Error(`Encountered unknown output mode: ${e}`)}}function Ja(s){if(s!=null)return s.startsWith("https://github.com/")?`git+${s}`:s.startsWith("ssh://github.com/")?`github:${_e(s).replace("ssh://github.com/","")}`:s.startsWith("https://bitbucket.org/")?`bitbucket:${_e(s).replace("https://bitbucket.org/","")}`:s.startsWith("ssh://bitbucket.org/")?`bitbucket:${_e(s).replace("ssh://bitbucket.org/","")}`:s.startsWith("https://gitlab.com/")?`gitlab:${_e(s).replace("https://gitlab.com/","")}`:s.startsWith("ssh://gitlab.com/")?`gitlab:${_e(s).replace("ssh://gitlab.com/","")}`:(s.startsWith("git+")||(s=`git+${s}`),s.endsWith(".git")||(s=`${s}.git`),s)}function _e(s){return s.endsWith(".git")?s.slice(0,-4):s}l();f();c();function ht({organization:s,workspaceName:t,namespaceExport:e}){return e??`${xe(Je(s))}${xe(Je(t))}`}l();f();c();l();f();c();var De={};K(De,{commons:()=>ai,dynamic:()=>wt,generatorExec:()=>vt});l();f();c();l();f();c();var ai={};l();f();c();var wt={};K(wt,{ErrorSeverity:()=>mi,HttpMethod:()=>fi,ObjectPropertyAccess:()=>hi,PrimitiveTypeV1:()=>yi,auth:()=>si,commons:()=>ui,declaration:()=>pi,endpoints:()=>li,environment:()=>ci,http:()=>yt,ir:()=>di,snippets:()=>xt,types:()=>gt,variables:()=>xi});l();f();c();l();f();c();var si={};l();f();c();var ui={};l();f();c();var pi={};l();f();c();var li={};l();f();c();var ci={};l();f();c();var yt={};K(yt,{HttpMethod:()=>fi});l();f();c();l();f();c();var fi={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE",Head:"HEAD"};var di={};l();f();c();var xt={};K(xt,{ErrorSeverity:()=>mi});l();f();c();l();f();c();var mi={Critical:"CRITICAL",Warning:"WARNING"};var gt={};K(gt,{ObjectPropertyAccess:()=>hi,PrimitiveTypeV1:()=>yi});l();f();c();l();f();c();var hi={ReadOnly:"READ_ONLY",WriteOnly:"WRITE_ONLY"};l();f();c();var yi={Integer:"INTEGER",Long:"LONG",Uint:"UINT",Uint64:"UINT_64",Float:"FLOAT",Double:"DOUBLE",Boolean:"BOOLEAN",String:"STRING",Date:"DATE",DateTime:"DATE_TIME",Uuid:"UUID",Base64:"BASE_64",BigInteger:"BIG_INTEGER"};var xi={};l();f();c();var vt={};K(vt,{LicenseId:()=>gi,config:()=>bt});l();f();c();l();f();c();var bt={};K(bt,{LicenseId:()=>gi});l();f();c();l();f();c();var gi={Mit:"MIT",Apache2:"Apache-2.0"};var Za="value",Qe=class{constructor({context:t}){b(this,"context");this.context=t}convert(t){let e=t.convertOpts;if(t.value===null)return this.context.isNullable(t.typeReference)?v.TypeLiteral.null():(this.context.errors.add({severity:F.Critical,message:"Expected non-null value, but got null"}),v.TypeLiteral.nop());if(t.value===void 0)return v.TypeLiteral.nop();switch(t.typeReference.type){case"list":return this.convertList({list:t.typeReference.value,value:t.value,convertOpts:e});case"literal":return this.convertLiteral({literalType:t.typeReference.value,value:t.value,convertOpts:e});case"map":return this.convertMap({map:t.typeReference,value:t.value,convertOpts:e});case"named":{let o=this.context.resolveNamedType({typeId:t.typeReference.value});return o==null?v.TypeLiteral.nop():this.convertNamed({named:o,value:t.value,as:t.as,convertOpts:e})}case"optional":return this.convert({typeReference:t.typeReference.value,value:t.value,as:t.as,convertOpts:e});case"nullable":return this.convert({typeReference:t.typeReference.value,value:t.value,as:t.as,convertOpts:e});case"primitive":return this.convertPrimitive({primitive:t.typeReference.value,value:t.value,as:t.as,convertOpts:e});case"set":return this.convertSet({set:t.typeReference.value,value:t.value,convertOpts:e});case"unknown":return this.convertUnknown({value:t.value,convertOpts:e});default:P(t.typeReference)}}convertLiteral({literalType:t,value:e}){switch(t.type){case"boolean":{let o=this.context.getValueAsBoolean({value:e});return o==null?v.TypeLiteral.nop():v.TypeLiteral.boolean(o)}case"string":{let o=this.context.getValueAsString({value:e});return o==null?v.TypeLiteral.nop():v.TypeLiteral.string(o)}default:P(t)}}convertList({list:t,value:e,convertOpts:o}){return Array.isArray(e)?v.TypeLiteral.array({values:e.map((p,d)=>{this.context.errors.scope({index:d});try{return this.convert({typeReference:t,value:p,convertOpts:o})}finally{this.context.errors.unscope()}})}):(this.context.errors.add({severity:F.Critical,message:`Expected array but got: ${typeof e}`}),v.TypeLiteral.nop())}convertSet({set:t,value:e,convertOpts:o}){return Array.isArray(e)?v.TypeLiteral.set({values:e.map((p,d)=>{this.context.errors.scope({index:d});try{return this.convert({typeReference:t,value:p,convertOpts:o})}finally{this.context.errors.unscope()}})}):(this.context.errors.add({severity:F.Critical,message:`Expected array but got: ${typeof e}`}),v.TypeLiteral.nop())}convertMap({map:t,value:e,convertOpts:o}){return typeof e!="object"||e==null?(this.context.errors.add({severity:F.Critical,message:`Expected object but got: ${e==null?"null":typeof e}`}),v.TypeLiteral.nop()):v.TypeLiteral.record({entries:Object.entries(e).map(([p,d])=>{this.context.errors.scope(p);try{return{key:this.convert({typeReference:t.key,value:p,as:"key",convertOpts:o}),value:this.convert({typeReference:t.value,value:d,convertOpts:o})}}finally{this.context.errors.unscope()}})})}convertNamed({named:t,value:e,as:o,convertOpts:p}){switch(t.type){case"alias":return this.context.customConfig?.useBrandedStringAliases?v.TypeLiteral.reference(v.codeblock(d=>{d.writeNode(v.reference({name:this.context.namespaceExport,importFrom:this.context.getModuleImport(),memberName:this.context.getFullyQualifiedReference({declaration:t.declaration})})),d.write("("),d.writeNode(this.convert({typeReference:t.typeReference,value:e,as:o,convertOpts:p})),d.write(")")})):this.convert({typeReference:t.typeReference,value:e,as:o,convertOpts:p});case"discriminatedUnion":return this.convertDiscriminatedUnion({discriminatedUnion:t,value:e,convertOpts:p});case"enum":return this.convertEnum({enum_:t,value:e,convertOpts:p});case"object":return this.convertObject({object_:t,value:e,convertOpts:p});case"undiscriminatedUnion":return this.convertUndiscriminatedUnion({undiscriminatedUnion:t,value:e,convertOpts:p});default:P(t)}}convertDiscriminatedUnion({discriminatedUnion:t,value:e,convertOpts:o}){let p=this.context.resolveDiscriminatedUnionTypeInstance({discriminatedUnion:t,value:e});if(p==null)return v.TypeLiteral.nop();let d=p.singleDiscriminatedUnionType,u=this.convertDiscriminatedUnionProperties({discriminatedUnionTypeInstance:p,unionVariant:d,convertOpts:o});if(u==null)return v.TypeLiteral.nop();if(this.context.customConfig?.includeUtilsOnUnionMembers)return v.TypeLiteral.reference(v.codeblock(T=>{T.writeNode(v.invokeMethod({on:v.reference({name:this.context.namespaceExport,importFrom:this.context.getModuleImport(),memberName:this.context.getFullyQualifiedReference({declaration:t.declaration})}),method:this.context.getMethodName(d.discriminantValue.name),arguments_:this.convertDiscriminatedUnionUtilsArgs({discriminatedUnionTypeInstance:p,unionVariant:d,unionProperties:u,convertOpts:o})}))}));let I={name:this.context.getPropertyName(t.discriminant.name),value:v.TypeLiteral.string(d.discriminantValue.wireValue)};return v.TypeLiteral.object({fields:[I,...u]})}convertDiscriminatedUnionProperties({discriminatedUnionTypeInstance:t,unionVariant:e,convertOpts:o}){let p=this.getBaseFields({discriminatedUnionTypeInstance:t,singleDiscriminatedUnionType:e});switch(e.type){case"samePropertiesAsObject":{let d=this.context.resolveNamedType({typeId:e.typeId});if(d==null)return;let u=this.convertNamed({named:d,value:t.value,convertOpts:o});if(!u.isObject()){this.context.errors.add({severity:F.Critical,message:"Internal error; expected union value to be an object"});return}let I=u.asObjectOrThrow();return[...p,...I.fields]}case"singleProperty":try{this.context.errors.scope(e.discriminantValue.wireValue);let d=this.context.getRecord(t.value);return d==null?[...p,{name:Za,value:this.convert({typeReference:e.typeReference,value:t.value,convertOpts:o})}]:[...p,{name:this.context.getPropertyName(e.discriminantValue.name),value:this.convert({typeReference:e.typeReference,value:d[e.discriminantValue.wireValue],convertOpts:o})}]}finally{this.context.errors.unscope()}case"noProperties":return p;default:P(e)}}convertDiscriminatedUnionUtilsArgs({discriminatedUnionTypeInstance:t,unionVariant:e,unionProperties:o,convertOpts:p}){return e.type==="singleProperty"&&this.context.getRecord(t.value)==null&&o.length===1?[this.convert({typeReference:e.typeReference,value:t.value,convertOpts:p})]:o.length>0?[v.TypeLiteral.object({fields:o})]:[]}getBaseFields({discriminatedUnionTypeInstance:t,singleDiscriminatedUnionType:e,convertOpts:o}){return this.context.associateByWireValue({parameters:e.properties??[],values:this.context.getRecord(t.value)??{},ignoreMissingParameters:!0}).map(d=>{this.context.errors.scope(d.name.wireValue);try{return{name:this.context.getPropertyName(d.name.name),value:this.convert({...d,convertOpts:o})}}finally{this.context.errors.unscope()}})}convertObject({object_:t,value:e,convertOpts:o}){let p=this.context.associateByWireValue({parameters:this.filterReadWriteProperties(t.properties,o),values:this.context.getRecord(e)??{}});return v.TypeLiteral.object({fields:p.map(d=>{this.context.errors.scope(d.name.wireValue);try{return{name:this.context.getPropertyName(d.name.name),value:this.convert({...d,convertOpts:o})}}finally{this.context.errors.unscope()}})})}filterReadWriteProperties(t,e){return this.context.customConfig?.experimentalGenerateReadWriteOnlyTypes!==!0||typeof e>"u"||(e.isForRequest&&(t=t.filter(o=>o.propertyAccess!==De.dynamic.ObjectPropertyAccess.ReadOnly)),e.isForResponse&&(t=t.filter(o=>o.propertyAccess!==De.dynamic.ObjectPropertyAccess.WriteOnly))),t}convertEnum({enum_:t,value:e}){let o=this.getEnumValue({enum_:t,value:e});return o==null?v.TypeLiteral.nop():v.TypeLiteral.string(o)}getEnumValue({enum_:t,value:e}){if(typeof e!="string"){this.context.errors.add({severity:F.Critical,message:`Expected enum value string, got: ${typeof e}`});return}if(t.values.find(p=>p.wireValue===e)==null){this.context.errors.add({severity:F.Critical,message:`An enum value named "${e}" does not exist in this context`});return}return e}convertUndiscriminatedUnion({undiscriminatedUnion:t,value:e,convertOpts:o}){let p=this.findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:e,convertOpts:o});return p??v.TypeLiteral.nop()}findMatchingUndiscriminatedUnionType({undiscriminatedUnion:t,value:e,convertOpts:o}){for(let p of t.types){let d=this.context.errors.size();try{let u=this.convert({typeReference:p,value:e,convertOpts:o});if(v.TypeLiteral.isNop(u)){this.context.errors.truncate(d);continue}return u}catch{this.context.errors.truncate(d);continue}}this.context.errors.add({severity:F.Critical,message:`None of the types in the undiscriminated union matched the given "${typeof e}" value`})}convertUnknown({value:t,convertOpts:e}){return v.TypeLiteral.unknown(t)}convertPrimitive({primitive:t,value:e,as:o,convertOpts:p}){switch(t){case"INTEGER":case"UINT":{let d=this.getValueAsNumber({value:e,as:o});return d==null?v.TypeLiteral.nop():v.TypeLiteral.number(d)}case"LONG":case"UINT_64":{let d=this.getValueAsNumber({value:e,as:o});return d==null?v.TypeLiteral.nop():this.context.customConfig?.useBigInt?v.TypeLiteral.bigint(BigInt(d)):v.TypeLiteral.number(d)}case"FLOAT":case"DOUBLE":{let d=this.getValueAsNumber({value:e});return d==null?v.TypeLiteral.nop():v.TypeLiteral.number(d)}case"BOOLEAN":{let d=this.getValueAsBoolean({value:e,as:o});return d==null?v.TypeLiteral.nop():v.TypeLiteral.boolean(d)}case"BASE_64":case"DATE":case"UUID":case"STRING":{let d=this.context.getValueAsString({value:e});return d==null?v.TypeLiteral.nop():v.TypeLiteral.string(d)}case"DATE_TIME":{let d=this.context.getValueAsString({value:e});return d==null?v.TypeLiteral.nop():v.TypeLiteral.datetime(d)}case"BIG_INTEGER":{let d=this.context.getValueAsString({value:e});return d==null?v.TypeLiteral.nop():this.context.customConfig?.useBigInt?v.TypeLiteral.bigint(BigInt(d)):v.TypeLiteral.string(d)}default:P(t)}}getValueAsNumber({value:t,as:e}){let o=e==="key"&&typeof t=="string"?Number(t):t;return this.context.getValueAsNumber({value:o})}getValueAsBoolean({value:t,as:e}){let o=e==="key"?typeof t=="string"?t==="true":t==="false"?!1:t:t;return this.context.getValueAsBoolean({value:o})}};l();f();c();var et=class{constructor({context:t}){b(this,"context");this.context=t}getFilePropertyInfo({body:t,value:e}){let o={fileFields:[],bodyPropertyFields:[]},p=this.context.getRecord(e)??{};for(let d of t.properties)switch(d.type){case"file":o.fileFields.push({name:this.context.getPropertyName(d.name),value:this.getSingleFileProperty({property:d,record:p})});break;case"fileArray":o.fileFields.push({name:this.context.getPropertyName(d.name),value:this.getArrayFileProperty({property:d,record:p})});break;case"bodyProperty":o.bodyPropertyFields.push({name:this.context.getPropertyName(d.name.name),value:this.getBodyProperty({property:d,record:p})});break;default:P(d)}return o}getSingleFileProperty({property:t,record:e}){let o=this.context.getSingleFileValue({property:t,record:e});return o==null?v.TypeLiteral.nop():v.TypeLiteral.blob(o)}getArrayFileProperty({property:t,record:e}){let o=this.context.getFileArrayValues({property:t,record:e});return o==null?v.TypeLiteral.nop():v.TypeLiteral.array({values:o.map(p=>v.TypeLiteral.blob(p))})}getBodyProperty({property:t,record:e}){let o=e[t.name.wireValue];return o==null?v.TypeLiteral.nop():this.context.dynamicTypeLiteralMapper.convert({typeReference:t.typeReference,value:o})}};var tt=class s extends $e{constructor({ir:e,config:o}){super({ir:e,config:o});b(this,"ir");b(this,"customConfig");b(this,"dynamicTypeLiteralMapper");b(this,"filePropertyMapper");b(this,"moduleName");b(this,"namespaceExport");this.ir=e,this.customConfig=o.customConfig!=null?o.customConfig:void 0,this.dynamicTypeLiteralMapper=new Qe({context:this}),this.filePropertyMapper=new et({context:this}),this.moduleName=Ka({config:o,customConfig:this.customConfig}),this.namespaceExport=ht({organization:o.organization,workspaceName:o.workspaceName,namespaceExport:this.customConfig?.namespaceExport})}clone(){return new s({ir:this.ir,config:this.config})}getModuleImport(){return{type:"named",moduleName:this.moduleName}}getRootClientName(){return`${this.namespaceExport}Client`}getPropertyName(e){return this.customConfig?.retainOriginalCasing||this.customConfig?.noSerdeLayer?this.formatOriginalPropertyName(e.originalName):e.camelCase.unsafeName}getMethodName(e){return e.camelCase.unsafeName}getTypeName(e){return e.pascalCase.unsafeName}getEnvironmentTypeReferenceFromID(e){let o=this.resolveEnvironmentName(e);if(o!=null)return this.getEnvironmentsTypeReference(o)}getFullyQualifiedReference({declaration:e}){return e.fernFilepath.allParts.length>0?`${e.fernFilepath.allParts.map(o=>o.camelCase.unsafeName).join(".")}.${this.getTypeName(e.name)}`:`${this.getTypeName(e.name)}`}getEnvironmentsTypeReference(e){return v.reference({name:`${this.namespaceExport}Environment`,importFrom:this.getModuleImport(),memberName:this.getTypeName(e)})}formatOriginalPropertyName(e){return e.includes("-")?`"${e}"`:e}};function Ka({config:s,customConfig:t}){return oi({generatorConfig:s,isPackagePrivate:t?.private??!1})?.packageName??s.organization}l();f();c();var wi="client",bi="main",Xa={type:"primitive",value:"STRING"},rt=class{constructor({context:t}){b(this,"context");this.context=t}async generateSnippet({endpoint:t,request:e}){return await this.buildCodeBlock({endpoint:t,snippet:e}).toStringAsync({customConfig:this.context.customConfig})}generateSnippetSync({endpoint:t,request:e}){return this.buildCodeBlock({endpoint:t,snippet:e}).toString({customConfig:this.context.customConfig})}async generateSnippetAst({endpoint:t,request:e}){return this.buildCodeBlock({endpoint:t,snippet:e})}buildCodeBlock({endpoint:t,snippet:e}){return v.codeblock(o=>{o.writeNode(v.function_({name:bi,async:!0,parameters:[],body:v.codeblock(p=>{p.writeNodeStatement(this.constructClient({endpoint:t,snippet:e})),p.writeNodeStatement(this.callMethod({endpoint:t,snippet:e}))})})),o.writeNodeStatement(v.invokeFunction({function_:v.reference({name:bi}),arguments_:[]}))})}constructClient({endpoint:t,snippet:e}){return v.variable({name:wi,const:!0,initializer:v.instantiateClass({class_:v.reference({name:this.context.getRootClientName(),importFrom:this.context.getModuleImport()}),arguments_:[this.getConstructorArgs({endpoint:t,snippet:e})]})})}getConstructorArgs({endpoint:t,snippet:e}){let o=[],p=this.getConstructorEnvironmentArgs({baseUrl:e.baseURL,environment:e.environment});return p.length>0&&o.push(...p),t.auth!=null&&(e.auth!=null?o.push(...this.getConstructorAuthArgs({auth:t.auth,values:e.auth})):this.context.errors.add({severity:F.Warning,message:`Auth with ${t.auth.type} configuration is required for this endpoint`})),this.context.errors.scope(J.PathParameters),this.context.ir.pathParameters!=null&&o.push(...this.getPathParameters({namedParameters:this.context.ir.pathParameters,snippet:e})),this.context.errors.unscope(),this.context.errors.scope(J.Headers),this.context.ir.headers!=null&&e.headers!=null&&o.push(...this.getConstructorHeaderArgs({headers:this.context.ir.headers,values:e.headers})),this.context.errors.unscope(),o.length===0?v.TypeLiteral.nop():v.TypeLiteral.object({fields:o})}getConstructorEnvironmentArgs({baseUrl:t,environment:e}){let o=this.getEnvironmentValue({baseUrl:t,environment:e});return o==null?[]:[{name:"environment",value:o}]}getEnvironmentValue({baseUrl:t,environment:e}){if(t!=null&&e!=null){this.context.errors.add({severity:F.Critical,message:"Cannot specify both baseUrl and environment options"});return}if(t!=null)return v.TypeLiteral.string(t);if(e!=null){if(this.context.isSingleEnvironmentID(e)){let o=this.context.getEnvironmentTypeReferenceFromID(e);if(o==null){this.context.errors.add({severity:F.Warning,message:`Environment ${JSON.stringify(e)} was not found`});return}return v.TypeLiteral.reference(o)}if(this.context.isMultiEnvironmentValues(e))return this.context.validateMultiEnvironmentUrlValues(e)?v.TypeLiteral.object({fields:Object.entries(e).map(([o,p])=>({name:o,value:this.context.dynamicTypeLiteralMapper.convert({typeReference:Xa,value:p})}))}):void 0}}getConstructorAuthArgs({auth:t,values:e}){switch(t.type){case"basic":return e.type!=="basic"?(this.addAuthMismatchError(t,e),[]):this.getConstructorBasicAuthArg({auth:t,values:e});case"bearer":return e.type!=="bearer"?(this.addAuthMismatchError(t,e),[]):this.getConstructorBearerAuthArgs({auth:t,values:e});case"header":return e.type!=="header"?(this.addAuthMismatchError(t,e),[]):this.getConstructorHeaderAuthArgs({auth:t,values:e});case"oauth":return e.type!=="oauth"?(this.addAuthMismatchError(t,e),[]):this.getConstructorOAuthArgs({auth:t,values:e});case"inferred":return e.type!=="inferred"?(this.addAuthMismatchError(t,e),[]):(this.addWarning("The TypeScript SDK v2 Generator does not support Inferred auth scheme yet"),[]);default:P(t)}}addAuthMismatchError(t,e){this.context.errors.add({severity:F.Critical,message:this.context.newAuthMismatchError({auth:t,values:e}).message})}addWarning(t){this.context.errors.add({severity:F.Warning,message:t})}getConstructorBasicAuthArg({auth:t,values:e}){return[{name:this.context.getPropertyName(t.username),value:v.TypeLiteral.string(e.username)},{name:this.context.getPropertyName(t.password),value:v.TypeLiteral.string(e.password)}]}getConstructorBearerAuthArgs({auth:t,values:e}){return[{name:this.context.getPropertyName(t.token),value:v.TypeLiteral.string(e.token)}]}getConstructorHeaderAuthArgs({auth:t,values:e}){return[{name:this.context.getPropertyName(t.header.name.name),value:this.context.dynamicTypeLiteralMapper.convert({typeReference:t.header.typeReference,value:e.value})}]}getConstructorOAuthArgs({auth:t,values:e}){return[{name:this.context.getPropertyName(t.clientId),value:v.TypeLiteral.string(e.clientId)},{name:this.context.getPropertyName(t.clientSecret),value:v.TypeLiteral.string(e.clientSecret)}]}getConstructorHeaderArgs({headers:t,values:e}){let o=[];for(let p of t){let d=e[p.name.wireValue],u=this.getConstructorHeaderArg({header:p,value:d});u!=null&&o.push(u)}return o}getConstructorHeaderArg({header:t,value:e}){let o=this.context.dynamicTypeLiteralMapper.convert({typeReference:t.typeReference,value:e});if(!v.TypeLiteral.isNop(o))return{name:this.context.getPropertyName(t.name.name),value:o}}callMethod({endpoint:t,snippet:e}){return v.invokeMethod({on:v.reference({name:wi}),method:this.getMethod({endpoint:t}),async:!0,arguments_:this.getMethodArgs({endpoint:t,snippet:e})})}getMethodArgs({endpoint:t,snippet:e}){switch(t.request.type){case"inlined":return this.getMethodArgsForInlinedRequest({request:t.request,snippet:e});case"body":return this.getMethodArgsForBodyRequest({request:t.request,snippet:e});default:P(t.request)}}getMethodArgsForBodyRequest({request:t,snippet:e}){let o=[];this.context.errors.scope(J.PathParameters);let p=[...this.context.ir.pathParameters??[],...t.pathParameters??[]];return p.length>0&&o.push(...this.getPathParameters({namedParameters:p,snippet:e}).map(d=>d.value)),this.context.errors.unscope(),this.context.errors.scope(J.RequestBody),t.body!=null&&o.push(this.getBodyRequestArg({body:t.body,value:e.requestBody})),this.context.errors.unscope(),o}getBodyRequestArg({body:t,value:e}){switch(t.type){case"bytes":return this.getBytesBodyRequestArg({value:e});case"typeReference":return this.context.dynamicTypeLiteralMapper.convert({typeReference:t.value,value:e,convertOpts:{isForRequest:!0}});default:P(t)}}getBytesBodyRequestArg({value:t}){return typeof t!="string"?(this.context.errors.add({severity:F.Critical,message:`Expected bytes value to be a string, got ${typeof t}`}),v.TypeLiteral.nop()):v.TypeLiteral.blob(t)}getMethodArgsForInlinedRequest({request:t,snippet:e}){let o=[],{inlinePathParameters:p,inlineFileProperties:d}={inlinePathParameters:this.context.customConfig?.inlinePathParameters??!1,inlineFileProperties:this.context.customConfig?.inlineFileProperties??!1};this.context.errors.scope(J.PathParameters);let u=[];t.pathParameters!=null&&u.push(...this.getPathParameters({namedParameters:t.pathParameters,snippet:e})),this.context.errors.unscope(),this.context.errors.scope(J.RequestBody);let I=this.getFilePropertyInfo({request:t,snippet:e});return this.context.errors.unscope(),this.context.includePathParametersInWrappedRequest({request:t,inlinePathParameters:p})||o.push(...u.map(T=>T.value)),d||o.push(...I.fileFields.map(T=>T.value)),this.context.needsRequestParameter({request:t,inlinePathParameters:p,inlineFileProperties:d})&&o.push(this.getInlinedRequestArg({request:t,snippet:e,pathParameterFields:this.context.includePathParametersInWrappedRequest({request:t,inlinePathParameters:p})?u:[],filePropertyInfo:I})),o}getFilePropertyInfo({request:t,snippet:e}){return t.body==null||!this.context.isFileUploadRequestBody(t.body)?{fileFields:[],bodyPropertyFields:[]}:this.context.filePropertyMapper.getFilePropertyInfo({body:t.body,value:e.requestBody})}getInlinedRequestArg({request:t,snippet:e,pathParameterFields:o,filePropertyInfo:p}){this.context.errors.scope(J.QueryParameters);let u=this.context.associateQueryParametersByWireValue({parameters:t.queryParameters??[],values:e.queryParameters??{}}).map(R=>({name:this.context.getPropertyName(R.name.name),value:this.context.dynamicTypeLiteralMapper.convert({...R,convertOpts:{isForRequest:!0}})}));this.context.errors.unscope(),this.context.errors.scope(J.Headers);let T=this.context.associateByWireValue({parameters:t.headers??[],values:e.headers??{}}).map(R=>({name:this.context.getPropertyName(R.name.name),value:this.context.dynamicTypeLiteralMapper.convert({...R,convertOpts:{isForRequest:!0}})}));this.context.errors.unscope(),this.context.errors.scope(J.RequestBody);let N=t.body!=null?this.getInlinedRequestBodyObjectFields({body:t.body,value:e.requestBody,filePropertyInfo:p}):[];return this.context.errors.unscope(),v.TypeLiteral.object({fields:[...o,...u,...T,...N]})}getInlinedRequestBodyObjectFields({body:t,value:e,filePropertyInfo:o}){switch(t.type){case"properties":return this.getInlinedRequestBodyPropertyObjectFields({parameters:t.value,value:e});case"referenced":return[this.getReferencedRequestBodyPropertyObjectField({body:t,value:e})];case"fileUpload":return this.getFileUploadRequestBodyObjectFields({filePropertyInfo:o});default:P(t)}}getFileUploadRequestBodyObjectFields({filePropertyInfo:t}){return this.context.customConfig?.inlineFileProperties?[...t.fileFields,...t.bodyPropertyFields]:t.bodyPropertyFields}getReferencedRequestBodyPropertyObjectField({body:t,value:e}){return{name:this.context.getPropertyName(t.bodyKey),value:this.getReferencedRequestBodyPropertyTypeLiteral({body:t.bodyType,value:e})}}getReferencedRequestBodyPropertyTypeLiteral({body:t,value:e}){switch(t.type){case"bytes":return this.getBytesBodyRequestArg({value:e});case"typeReference":return this.context.dynamicTypeLiteralMapper.convert({typeReference:t.value,value:e,convertOpts:{isForRequest:!0}});default:P(t)}}getInlinedRequestBodyPropertyObjectFields({parameters:t,value:e}){let o=[],p=this.context.associateByWireValue({parameters:t,values:this.context.getRecord(e)??{}});for(let d of p)o.push({name:this.context.getPropertyName(d.name.name),value:this.context.dynamicTypeLiteralMapper.convert({...d,convertOpts:{isForRequest:!0}})});return o}getPathParameters({namedParameters:t,snippet:e}){let o=[],p=this.context.associateByWireValue({parameters:t,values:e.pathParameters??{},ignoreMissingParameters:!0});for(let d of p)o.push({name:this.context.getPropertyName(d.name.name),value:this.context.dynamicTypeLiteralMapper.convert({...d,convertOpts:{isForRequest:!0}})});return o}getMethod({endpoint:t}){return t.declaration.fernFilepath.allParts.length>0?`${t.declaration.fernFilepath.allParts.map(e=>this.context.getMethodName(e)).join(".")}.${this.context.getMethodName(t.declaration.name)}`:this.context.getMethodName(t.declaration.name)}};var nt=class extends Oe{constructor({ir:t,config:e}){super(new tt({ir:t,config:e}))}async generate(t){return super.generate(t)}generateSync(t){return super.generateSync(t)}async generateSnippetAst(t){return super.generateSnippetAst(t)}createSnippetGenerator(t){return new rt({context:t})}};0&&(module.exports={DynamicSnippetsGenerator});
|
|
25
25
|
/*! Bundled license information:
|
|
26
26
|
|
|
27
27
|
@jspm/core/nodelibs/browser/chunk-DtuTasat.js:
|