UNPKG

openapi-typescript-codegen

Version:

Library that generates Typescript clients based on the OpenAPI specification.

1 lines 218 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,n=require("camelcase"),r=require("@apidevtools/json-schema-ref-parser"),o=require("path"),a=require("fs-extra"),l=require("os");exports.HttpClient=void 0,(e=exports.HttpClient||(exports.HttpClient={})).FETCH="fetch",e.XHR="xhr",e.NODE="node",e.AXIOS="axios",e.ANGULAR="angular",exports.Indent=void 0,(t=exports.Indent||(exports.Indent={})).SPACE_4="4",t.SPACE_2="2",t.TAB="tab";const s=/^(arguments|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|function|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)$/g,i=e=>null==e?void 0:e.replace(/\\/g,"\\\\").replace(/'/g,"\\'"),u=e=>"string"==typeof e,p=(e,t)=>{var n,r;const o=null===(n=t["x-enum-varnames"])||void 0===n?void 0:n.filter(u),a=null===(r=t["x-enum-descriptions"])||void 0===r?void 0:r.filter(u);return e.map((e,t)=>({name:(null==o?void 0:o[t])||e.name,description:(null==a?void 0:a[t])||e.description,value:e.value,type:e.type}))},c=e=>Array.isArray(e)?e.filter((e,t,n)=>n.indexOf(e)===t).filter(e=>"number"==typeof e||"string"==typeof e).map(e=>"number"==typeof e?{name:`'_${e}'`,value:String(e),type:"number",description:null}:{name:String(e).replace(/\W+/g,"_").replace(/^(\d+)/g,"_$1").replace(/([a-z])([A-Z]+)/g,"$1_$2").toUpperCase(),value:`'${e.replace(/'/g,"\\'")}'`,type:"string",description:null}):[],m=e=>{if(e||""===e){if(!/^[a-zA-Z_$][\w$]+$/g.test(e))return`'${e}'`}return e},d=new Map([["file","binary"],["any","any"],["object","any"],["array","any[]"],["boolean","boolean"],["byte","number"],["int","number"],["integer","number"],["float","number"],["double","number"],["short","number"],["long","number"],["number","number"],["char","string"],["date","string"],["date-time","string"],["password","string"],["string","string"],["void","void"],["null","null"]]),f=e=>e.replace(/^[^a-zA-Z_$]+/g,"").replace(/[^\w$]+/g,"_"),h=(e="any",t)=>{const n={type:"any",base:"any",template:null,imports:[],isNullable:!1},r=((e,t)=>"binary"===t?"binary":d.get(e))(e,t);if(r)return n.type=r,n.base=r,n;const o=decodeURIComponent(e.trim().replace(/^#\/definitions\//,"").replace(/^#\/parameters\//,"").replace(/^#\/responses\//,"").replace(/^#\/securityDefinitions\//,""));if(/\[.*\]$/g.test(o)){const e=o.match(/(.*?)\[(.*)\]$/);if(null==e?void 0:e.length){const t=h(f(e[1])),r=h(f(e[2]));return"any[]"===t.type?(n.type=`${r.type}[]`,n.base=r.type,t.imports=[]):r.type?(n.type=`${t.type}<${r.type}>`,n.base=t.type,n.template=r.type):(n.type=t.type,n.base=t.type,n.template=t.type),n.imports.push(...t.imports),n.imports.push(...r.imports),n}}if(o){const e=f(o);return n.type=e,n.base=e,n.imports.push(e),n}return n},y=(e,t,n)=>{var r;const o=[];for(const a in t.properties)if(Object.prototype.hasOwnProperty.call(t.properties,a)){const l=t.properties[a],s=!!(null===(r=t.required)||void 0===r?void 0:r.includes(a));if(l.$ref){const e=h(l.$ref);o.push({name:m(a),export:"reference",type:e.type,base:e.base,template:e.template,link:null,description:l.description||null,isDefinition:!1,isReadOnly:!0===l.readOnly,isRequired:s,isNullable:!0===l["x-nullable"],format:l.format,maximum:l.maximum,exclusiveMaximum:l.exclusiveMaximum,minimum:l.minimum,exclusiveMinimum:l.exclusiveMinimum,multipleOf:l.multipleOf,maxLength:l.maxLength,minLength:l.minLength,maxItems:l.maxItems,minItems:l.minItems,uniqueItems:l.uniqueItems,maxProperties:l.maxProperties,minProperties:l.minProperties,pattern:i(l.pattern),imports:e.imports,enum:[],enums:[],properties:[]})}else{const t=n(e,l);o.push({name:m(a),export:t.export,type:t.type,base:t.base,template:t.template,link:t.link,description:l.description||null,isDefinition:!1,isReadOnly:!0===l.readOnly,isRequired:s,isNullable:!0===l["x-nullable"],format:l.format,maximum:l.maximum,exclusiveMaximum:l.exclusiveMaximum,minimum:l.minimum,exclusiveMinimum:l.exclusiveMinimum,multipleOf:l.multipleOf,maxLength:l.maxLength,minLength:l.minLength,maxItems:l.maxItems,minItems:l.minItems,uniqueItems:l.uniqueItems,maxProperties:l.maxProperties,minProperties:l.minProperties,pattern:i(l.pattern),imports:t.imports,enum:t.enum,enums:t.enums,properties:t.properties})}}return o},v=/~1/g,g=/~0/g,P=(e,t)=>{if(t.$ref){const n=t.$ref.replace(/^#/g,"").split("/").filter(e=>e);let r=e;return n.forEach(e=>{const n=decodeURIComponent(e.replace(v,"/").replace(g,"~"));if(!Object.prototype.hasOwnProperty.call(r,n))throw new Error(`Could not find reference: "${t.$ref}"`);r=r[n]}),r}return t},b=(e,t,n,r,o)=>{const a={type:r,imports:[],enums:[],properties:[]},l=[];if(n.map(t=>o(e,t)).filter(e=>{const t=e.properties.length,n=e.enums.length;return!("any"===e.type&&!t&&!n)}).forEach(e=>{a.imports.push(...e.imports),a.enums.push(...e.enums),a.properties.push(e)}),t.required){const r=((e,t,n,r)=>n.reduce((t,n)=>{if(n.$ref){const o=P(e,n);return[...t,...r(e,o).properties]}return[...t,...r(e,n).properties]},[]).filter(e=>!e.isRequired&&t.includes(e.name)).map(e=>({...e,isRequired:!0})))(e,t.required,n,o);r.forEach(e=>{a.imports.push(...e.imports),a.enums.push(...e.enums)}),l.push(...r)}if(t.properties){const n=y(e,t,o);n.forEach(e=>{a.imports.push(...e.imports),a.enums.push(...e.enums),"enum"===e.export&&a.enums.push(e)}),l.push(...n)}return l.length&&a.properties.push({name:"properties",export:"interface",type:"any",base:"any",template:null,link:null,description:"",isDefinition:!1,isReadOnly:!1,isNullable:!1,isRequired:!1,imports:[],enum:[],enums:[],properties:l}),a},O=(e,t,n=!1,r="")=>{var o;const a={name:r,export:"interface",type:"any",base:"any",template:null,link:null,description:t.description||null,isDefinition:n,isReadOnly:!0===t.readOnly,isNullable:!0===t["x-nullable"],isRequired:!1,format:t.format,maximum:t.maximum,exclusiveMaximum:t.exclusiveMaximum,minimum:t.minimum,exclusiveMinimum:t.exclusiveMinimum,multipleOf:t.multipleOf,maxLength:t.maxLength,minLength:t.minLength,maxItems:t.maxItems,minItems:t.minItems,uniqueItems:t.uniqueItems,maxProperties:t.maxProperties,minProperties:t.minProperties,pattern:i(t.pattern),imports:[],enum:[],enums:[],properties:[]};if(t.$ref){const e=h(t.$ref);return a.export="reference",a.type=e.type,a.base=e.base,a.template=e.template,a.imports.push(...e.imports),a}if(t.enum&&"boolean"!==t.type){const e=c(t.enum),n=p(e,t);if(n.length)return a.export="enum",a.type="string",a.base="string",a.enum.push(...n),a}if("array"===t.type&&t.items){if(t.items.$ref){const e=h(t.items.$ref);return a.export="array",a.type=e.type,a.base=e.base,a.template=e.template,a.imports.push(...e.imports),a}{const n=O(e,t.items);return a.export="array",a.type=n.type,a.base=n.base,a.template=n.template,a.link=n,a.imports.push(...n.imports),a}}if("object"===t.type&&"object"==typeof t.additionalProperties){if(t.additionalProperties.$ref){const e=h(t.additionalProperties.$ref);return a.export="dictionary",a.type=e.type,a.base=e.base,a.template=e.template,a.imports.push(...e.imports),a}{const n=O(e,t.additionalProperties);return a.export="dictionary",a.type=n.type,a.base=n.base,a.template=n.template,a.link=n,a.imports.push(...n.imports),a}}if(null===(o=t.allOf)||void 0===o?void 0:o.length){const n=b(e,t,t.allOf,"all-of",O);return a.export=n.type,a.imports.push(...n.imports),a.properties.push(...n.properties),a.enums.push(...n.enums),a}if("object"===t.type){if(a.export="interface",a.type="any",a.base="any",t.properties){y(e,t,O).forEach(e=>{a.imports.push(...e.imports),a.enums.push(...e.enums),a.properties.push(e),"enum"===e.export&&a.enums.push(e)})}return a}if(t.type){const e=h(t.type,t.format);return a.export="generic",a.type=e.type,a.base=e.base,a.template=e.template,a.imports.push(...e.imports),a}return a},x=(e,t,n)=>n.indexOf(e)===t,k=(e,t)=>{var n;if(void 0===e.default)return;if(null===e.default)return"null";switch(e.type||typeof e.default){case"int":case"integer":case"number":return"enum"===t.export&&(null===(n=t.enum)||void 0===n?void 0:n[e.default])?t.enum[e.default].value:e.default;case"boolean":return JSON.stringify(e.default);case"string":return`'${e.default}'`;case"object":try{return JSON.stringify(e.default,null,4)}catch{}}},C=e=>{const t=e.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w-]+/g,"-").trim();return n(t).replace(s,"_$1")},R=(e,t)=>{const n={imports:[],parameters:[],parametersPath:[],parametersQuery:[],parametersForm:[],parametersCookie:[],parametersHeader:[],parametersBody:null};return t.forEach(t=>{const r=P(e,t),o=((e,t)=>{var n;const r={in:t.in,prop:t.name,export:"interface",name:C(t.name),type:"any",base:"any",template:null,link:null,description:t.description||null,isDefinition:!1,isReadOnly:!1,isRequired:!0===t.required,isNullable:!0===t["x-nullable"],format:t.format,maximum:t.maximum,exclusiveMaximum:t.exclusiveMaximum,minimum:t.minimum,exclusiveMinimum:t.exclusiveMinimum,multipleOf:t.multipleOf,maxLength:t.maxLength,minLength:t.minLength,maxItems:t.maxItems,minItems:t.minItems,uniqueItems:t.uniqueItems,pattern:i(t.pattern),imports:[],enum:[],enums:[],properties:[],mediaType:null};if(t.$ref){const e=h(t.$ref);return r.export="reference",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=k(t,r),r}if(t.enum){const e=c(t.enum),n=p(e,t);if(n.length)return r.export="enum",r.type="string",r.base="string",r.enum.push(...n),r.default=k(t,r),r}if("array"===t.type&&t.items){const e=h(t.items.type,t.items.format);return r.export="array",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=k(t,r),r}if("object"===t.type&&t.items){const e=h(t.items.type,t.items.format);return r.export="dictionary",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=k(t,r),r}let o=t.schema;if(o){if((null===(n=o.$ref)||void 0===n?void 0:n.startsWith("#/parameters/"))&&(o=P(e,o)),o.$ref){const e=h(o.$ref);return r.export="reference",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=k(t,r),r}{const n=O(e,o);return r.export=n.export,r.type=n.type,r.base=n.base,r.template=n.template,r.link=n.link,r.imports.push(...n.imports),r.enum.push(...n.enum),r.enums.push(...n.enums),r.properties.push(...n.properties),r.default=k(t,r),r}}if(t.type){const e=h(t.type,t.format);return r.export="generic",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=k(t,r),r}return r})(e,r);if("api-version"!==o.prop)switch(o.in){case"path":n.parametersPath.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"query":n.parametersQuery.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"header":n.parametersHeader.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"formData":n.parametersForm.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"body":n.parametersBody=o,n.parameters.push(o),n.imports.push(...o.imports)}}),n},w=(e,t,n)=>{var r;const o={in:"response",name:"",code:n,description:t.description||null,export:"generic",type:"any",base:"any",template:null,link:null,isDefinition:!1,isReadOnly:!1,isRequired:!1,isNullable:!1,imports:[],enum:[],enums:[],properties:[]};let a=t.schema;if(a){if((null===(r=a.$ref)||void 0===r?void 0:r.startsWith("#/responses/"))&&(a=P(e,a)),a.$ref){const e=h(a.$ref);return o.export="reference",o.type=e.type,o.base=e.base,o.template=e.template,o.imports.push(...e.imports),o}{const t=O(e,a);return o.export=t.export,o.type=t.type,o.base=t.base,o.template=t.template,o.link=t.link,o.isReadOnly=t.isReadOnly,o.isRequired=t.isRequired,o.isNullable=t.isNullable,o.format=t.format,o.maximum=t.maximum,o.exclusiveMaximum=t.exclusiveMaximum,o.minimum=t.minimum,o.exclusiveMinimum=t.exclusiveMinimum,o.multipleOf=t.multipleOf,o.maxLength=t.maxLength,o.minLength=t.minLength,o.maxItems=t.maxItems,o.minItems=t.minItems,o.uniqueItems=t.uniqueItems,o.maxProperties=t.maxProperties,o.minProperties=t.minProperties,o.pattern=i(t.pattern),o.imports.push(...t.imports),o.enum.push(...t.enum),o.enums.push(...t.enums),o.properties.push(...t.properties),o}}if(t.headers)for(const e in t.headers)if(Object.prototype.hasOwnProperty.call(t.headers,e))return o.in="header",o.name=e,o.type="string",o.base="string",o;return o},q=e=>{if("default"===e)return 200;if(/[0-9]+/g.test(e)){const t=parseInt(e);if(Number.isInteger(t))return Math.abs(t)}return null},j=(e,t)=>{const n=e.type===t.type&&e.base===t.base&&e.template===t.template;return n&&e.link&&t.link?j(e.link,t.link):n},A=(e,t)=>{const n=e.isRequired&&void 0===e.default,r=t.isRequired&&void 0===t.default;return n&&!r?-1:r&&!n?1:0},H=(e,t,r,o,a,l)=>{const s=(e=>{const t=e.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w-]+/g,"-").trim();return n(t,{pascalCase:!0})})(o),i=((e,t,r)=>{if(r)return n(r.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w-]+/g,"-").trim());const o=e.replace(/[^/]*?{api-version}.*?\//g,"").replace(/{(.*?)}/g,"").replace(/\//g,"-");return n(`${t}-${o}`)})(t,r,a.operationId),u={service:s,name:i,summary:a.summary||null,description:a.description||null,deprecated:!0===a.deprecated,method:r.toUpperCase(),path:t,parameters:[...l.parameters],parametersPath:[...l.parametersPath],parametersQuery:[...l.parametersQuery],parametersForm:[...l.parametersForm],parametersHeader:[...l.parametersHeader],parametersCookie:[...l.parametersCookie],parametersBody:l.parametersBody,imports:[],errors:[],results:[],responseHeader:null};if(a.parameters){const t=R(e,a.parameters);u.imports.push(...t.imports),u.parameters.push(...t.parameters),u.parametersPath.push(...t.parametersPath),u.parametersQuery.push(...t.parametersQuery),u.parametersForm.push(...t.parametersForm),u.parametersHeader.push(...t.parametersHeader),u.parametersCookie.push(...t.parametersCookie),u.parametersBody=t.parametersBody}if(a.responses){const t=((e,t)=>{const n=[];for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)){const o=t[r],a=P(e,o),l=q(r);if(l){const t=w(e,a,l);n.push(t)}}return n.sort((e,t)=>e.code<t.code?-1:e.code>t.code?1:0)})(e,a.responses),n=(e=>{const t=[];return e.forEach(e=>{const{code:n}=e;n&&204!==n&&n>=200&&n<300&&t.push(e)}),t.length||t.push({in:"response",name:"",code:200,description:"",export:"generic",type:"void",base:"void",template:null,link:null,isDefinition:!1,isReadOnly:!1,isRequired:!1,isNullable:!1,imports:[],enum:[],enums:[],properties:[]}),t.filter((e,t,n)=>n.findIndex(t=>j(t,e))===t)})(t);u.errors=(e=>e.filter(e=>e.code>=300&&e.description).map(e=>({code:e.code,description:e.description})))(t),u.responseHeader=(e=>{const t=e.find(e=>"header"===e.in);return t?t.name:null})(n),n.forEach(e=>{u.results.push(e),u.imports.push(...e.imports)})}return u.parameters=u.parameters.sort(A),u},E=e=>{const t=((e="1.0")=>String(e).replace(/^v/gi,""))(e.info.version),n=(e=>{var t;const n=(null===(t=e.schemes)||void 0===t?void 0:t[0])||"http",r=e.host,o=e.basePath||"";return(r?`${n}://${r}${o}`:o).replace(/\/$/g,"")})(e),r=(e=>{const t=[];for(const n in e.definitions)if(Object.prototype.hasOwnProperty.call(e.definitions,n)){const r=e.definitions[n],o=h(n),a=O(e,r,!0,o.base.replace(s,"_$1"));t.push(a)}return t})(e),o=(e=>{var t;const n=new Map;for(const r in e.paths)if(Object.prototype.hasOwnProperty.call(e.paths,r)){const o=e.paths[r],a=R(e,o.parameters||[]);for(const l in o)if(Object.prototype.hasOwnProperty.call(o,l))switch(l){case"get":case"put":case"post":case"delete":case"options":case"head":case"patch":{const s=o[l];((null===(t=s.tags)||void 0===t?void 0:t.length)?s.tags.filter(x):["Default"]).forEach(t=>{const o=H(e,r,l,t,s,a),i=n.get(o.service)||{name:o.service,operations:[],imports:[]};i.operations.push(o),i.imports.push(...o.imports),n.set(o.service,i)});break}}}return Array.from(n.values())})(e);return{version:t,server:n,models:r,services:o}},D=e=>e.trim().replace(/^#\/components\/schemas\//,"").replace(/^#\/components\/responses\//,"").replace(/^#\/components\/parameters\//,"").replace(/^#\/components\/examples\//,"").replace(/^#\/components\/requestBodies\//,"").replace(/^#\/components\/headers\//,"").replace(/^#\/components\/securitySchemes\//,"").replace(/^#\/components\/links\//,"").replace(/^#\/components\/callbacks\//,""),T=(e,t)=>{if(e.mapping){const n=(e=>{const t={};for(const n in e)t[e[n]]=n;return t})(e.mapping),r=Object.keys(n).find(e=>D(e)==t.name);if(r&&n[r])return n[r]}return t.name},I=e=>{if(e||""===e){if(!/^[a-zA-Z_$][\w$]+$/g.test(e))return`'${e}'`}return e},S=e=>null!=e&&""!==e,N=new Map([["file","binary"],["any","any"],["object","any"],["array","any[]"],["boolean","boolean"],["byte","number"],["int","number"],["integer","number"],["float","number"],["double","number"],["short","number"],["long","number"],["number","number"],["char","string"],["date","string"],["date-time","string"],["password","string"],["string","string"],["void","void"],["null","null"]]),_=(e,t)=>"binary"===t?"binary":N.get(e),B=e=>e.replace(/^[^a-zA-Z_$]+/g,"").replace(/[^\w$]+/g,"_"),$=(e="any",t)=>{const n={type:"any",base:"any",template:null,imports:[],isNullable:!1};if(Array.isArray(e)){const r=e.filter(e=>"null"!==e).map(e=>_(e,t)).filter(S).join(" | ");return n.type=r,n.base=r,n.isNullable=e.includes("null"),n}const r=_(e,t);if(r)return n.type=r,n.base=r,n;const o=decodeURIComponent(D(e));if(/\[.*\]$/g.test(o)){const e=o.match(/(.*?)\[(.*)\]$/);if(null==e?void 0:e.length){const t=$(B(e[1])),r=$(B(e[2]));return"any[]"===t.type?(n.type=`${r.type}[]`,n.base=`${r.type}`,t.imports=[]):r.type?(n.type=`${t.type}<${r.type}>`,n.base=t.type,n.template=r.type):(n.type=t.type,n.base=t.type,n.template=t.type),n.imports.push(...t.imports),n.imports.push(...r.imports),n}}if(o){const e=B(o);return n.type=e,n.base=e,n.imports.push(e),n}return n},M=(e,t,n,r)=>{var o;const a=[],l=((e,t)=>{var n;if(e.components&&t)for(const r in e.components.schemas)if(Object.prototype.hasOwnProperty.call(e.components.schemas,r)){const o=e.components.schemas[r];if(o.discriminator&&(null===(n=o.oneOf)||void 0===n?void 0:n.length)&&o.oneOf.some(e=>e.$ref&&D(e.$ref)==t.name))return o.discriminator}})(e,r);for(const s in t.properties)if(Object.prototype.hasOwnProperty.call(t.properties,s)){const u=t.properties[s],p=!!(null===(o=t.required)||void 0===o?void 0:o.includes(s)),c={name:I(s),description:u.description||null,deprecated:!0===u.deprecated,isDefinition:!1,isReadOnly:!0===u.readOnly,isRequired:p,format:u.format,maximum:u.maximum,exclusiveMaximum:u.exclusiveMaximum,minimum:u.minimum,exclusiveMinimum:u.exclusiveMinimum,multipleOf:u.multipleOf,maxLength:u.maxLength,minLength:u.minLength,maxItems:u.maxItems,minItems:u.minItems,uniqueItems:u.uniqueItems,maxProperties:u.maxProperties,minProperties:u.minProperties,pattern:i(u.pattern)};if(r&&(null==l?void 0:l.propertyName)==s)a.push({export:"reference",type:"string",base:`'${T(l,r)}'`,template:null,isNullable:!0===u.nullable,link:null,imports:[],enum:[],enums:[],properties:[],...c});else if(u.$ref){const e=$(u.$ref);a.push({export:"reference",type:e.type,base:e.base,template:e.template,link:null,isNullable:e.isNullable||!0===u.nullable,imports:e.imports,enum:[],enums:[],properties:[],...c})}else{const t=n(e,u);a.push({export:t.export,type:t.type,base:t.base,template:t.template,link:t.link,isNullable:t.isNullable||!0===u.nullable,imports:t.imports,enum:t.enum,enums:t.enums,properties:t.properties,...c})}}return a},L=/~1/g,F=/~0/g,W=(e,t)=>{if(t.$ref){const n=t.$ref.replace(/^#/g,"").split("/").filter(e=>e);let r=e;return n.forEach(e=>{const n=decodeURIComponent(e.replace(L,"/").replace(F,"~"));if(!Object.prototype.hasOwnProperty.call(r,n))throw new Error(`Could not find reference: "${t.$ref}"`);r=r[n]}),r}return t},V=(e,t,n,r,o)=>{const a={type:r,imports:[],enums:[],properties:[]},l=[];if(n.map(t=>o(e,t)).filter(e=>{const t=e.properties.length,n=e.enums.length,r="any"===e.type,o="dictionary"===e.export;return!(r&&!t&&!n)||o}).forEach(e=>{a.imports.push(...e.imports),a.enums.push(...e.enums),a.properties.push(e)}),t.required){const r=((e,t,n,r)=>n.reduce((t,n)=>{if(n.$ref){const o=W(e,n);return[...t,...r(e,o).properties]}return[...t,...r(e,n).properties]},[]).filter(e=>!e.isRequired&&t.includes(e.name)).map(e=>({...e,isRequired:!0})))(e,t.required,n,o);r.forEach(e=>{a.imports.push(...e.imports),a.enums.push(...e.enums)}),l.push(...r)}if(t.properties){const n=M(e,t,o);n.forEach(e=>{a.imports.push(...e.imports),a.enums.push(...e.enums),"enum"===e.export&&a.enums.push(e)}),l.push(...n)}return l.length&&a.properties.push({name:"properties",export:"interface",type:"any",base:"any",template:null,link:null,description:"",isDefinition:!1,isReadOnly:!1,isNullable:!1,isRequired:!1,imports:[],enum:[],enums:[],properties:l}),a},U=(e,t)=>{var n;if(void 0===e.default)return;if(null===e.default)return"null";switch(e.type||typeof e.default){case"int":case"integer":case"number":return"enum"===(null==t?void 0:t.export)&&(null===(n=t.enum)||void 0===n?void 0:n[e.default])?t.enum[e.default].value:e.default;case"boolean":return JSON.stringify(e.default);case"string":return`'${e.default}'`;case"object":try{return JSON.stringify(e.default,null,4)}catch{}}},Q=(e,t,n=!1,r="")=>{var o,a,l;const s={name:r,export:"interface",type:"any",base:"any",template:null,link:null,description:t.description||null,deprecated:!0===t.deprecated,isDefinition:n,isReadOnly:!0===t.readOnly,isNullable:!0===t.nullable,isRequired:!1,format:t.format,maximum:t.maximum,exclusiveMaximum:t.exclusiveMaximum,minimum:t.minimum,exclusiveMinimum:t.exclusiveMinimum,multipleOf:t.multipleOf,maxLength:t.maxLength,minLength:t.minLength,maxItems:t.maxItems,minItems:t.minItems,uniqueItems:t.uniqueItems,maxProperties:t.maxProperties,minProperties:t.minProperties,pattern:i(t.pattern),imports:[],enum:[],enums:[],properties:[]};if(t.$ref){const e=$(t.$ref);return s.export="reference",s.type=e.type,s.base=e.base,s.template=e.template,s.imports.push(...e.imports),s.default=U(t,s),s}if(t.enum&&"boolean"!==t.type){const e=(p=t.enum,Array.isArray(p)?p.filter((e,t,n)=>n.indexOf(e)===t).filter(e=>"number"==typeof e||"string"==typeof e).map(e=>"number"==typeof e?{name:`'_${e}'`,value:String(e),type:"number",description:null}:{name:String(e).replace(/\W+/g,"_").replace(/^(\d+)/g,"_$1").replace(/([a-z])([A-Z]+)/g,"$1_$2").toUpperCase(),value:`'${e.replace(/'/g,"\\'")}'`,type:"string",description:null}):[]),n=((e,t)=>{var n,r;const o=null===(n=t["x-enum-varnames"])||void 0===n?void 0:n.filter(u),a=null===(r=t["x-enum-descriptions"])||void 0===r?void 0:r.filter(u);return e.map((e,t)=>({name:(null==o?void 0:o[t])||e.name,description:(null==a?void 0:a[t])||e.description,value:e.value,type:e.type}))})(e,t);if(n.length)return s.export="enum",s.type="string",s.base="string",s.enum.push(...n),s.default=U(t,s),s}var p;if("array"===t.type&&t.items){if(t.items.$ref){const e=$(t.items.$ref);return s.export="array",s.type=e.type,s.base=e.base,s.template=e.template,s.imports.push(...e.imports),s.default=U(t,s),s}{const n=Q(e,t.items);return s.export="array",s.type=n.type,s.base=n.base,s.template=n.template,s.link=n,s.imports.push(...n.imports),s.default=U(t,s),s}}if("object"===t.type&&("object"==typeof t.additionalProperties||!0===t.additionalProperties)){const n="object"==typeof t.additionalProperties?t.additionalProperties:{};if(n.$ref){const e=$(n.$ref);return s.export="dictionary",s.type=e.type,s.base=e.base,s.template=e.template,s.imports.push(...e.imports),s.default=U(t,s),s}{const r=Q(e,n);return s.export="dictionary",s.type=r.type,s.base=r.base,s.template=r.template,s.link=r,s.imports.push(...r.imports),s.default=U(t,s),s}}if(null===(o=t.oneOf)||void 0===o?void 0:o.length){const n=V(e,t,t.oneOf,"one-of",Q);return s.export=n.type,s.imports.push(...n.imports),s.properties.push(...n.properties),s.enums.push(...n.enums),s}if(null===(a=t.anyOf)||void 0===a?void 0:a.length){const n=V(e,t,t.anyOf,"any-of",Q);return s.export=n.type,s.imports.push(...n.imports),s.properties.push(...n.properties),s.enums.push(...n.enums),s}if(null===(l=t.allOf)||void 0===l?void 0:l.length){const n=V(e,t,t.allOf,"all-of",Q);return s.export=n.type,s.imports.push(...n.imports),s.properties.push(...n.properties),s.enums.push(...n.enums),s}if("object"===t.type){if(t.properties){s.export="interface",s.type="any",s.base="any",s.default=U(t,s);return M(e,t,Q,s).forEach(e=>{s.imports.push(...e.imports),s.enums.push(...e.enums),s.properties.push(e),"enum"===e.export&&s.enums.push(e)}),s}{const n=Q(e,{});return s.export="dictionary",s.type=n.type,s.base=n.base,s.template=n.template,s.link=n,s.imports.push(...n.imports),s.default=U(t,s),s}}if(t.type){const e=$(t.type,t.format);return s.export="generic",s.type=e.type,s.base=e.base,s.template=e.template,s.isNullable=e.isNullable||s.isNullable,s.imports.push(...e.imports),s.default=U(t,s),s}return s},z=e=>{const t=e.replace(/^[^a-zA-Z]+/g,"").replace("[]","Array").replace(/[^\w-]+/g,"-").trim();return n(t).replace(s,"_$1")},J=(e,t)=>{const n={imports:[],parameters:[],parametersPath:[],parametersQuery:[],parametersForm:[],parametersCookie:[],parametersHeader:[],parametersBody:null};return t.forEach(t=>{const r=W(e,t),o=((e,t)=>{var n;const r={in:t.in,prop:t.name,export:"interface",name:z(t.name),type:"any",base:"any",template:null,link:null,description:t.description||null,deprecated:!0===t.deprecated,isDefinition:!1,isReadOnly:!1,isRequired:!0===t.required,isNullable:!0===t.nullable,imports:[],enum:[],enums:[],properties:[],mediaType:null};if(t.$ref){const e=$(t.$ref);return r.export="reference",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r}let o=t.schema;if(o){if((null===(n=o.$ref)||void 0===n?void 0:n.startsWith("#/components/parameters/"))&&(o=W(e,o)),o.$ref){const e=$(o.$ref);return r.export="reference",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=U(o),r}{const t=Q(e,o);return r.export=t.export,r.type=t.type,r.base=t.base,r.template=t.template,r.link=t.link,r.isReadOnly=t.isReadOnly,r.isRequired=r.isRequired||t.isRequired,r.isNullable=r.isNullable||t.isNullable,r.format=t.format,r.maximum=t.maximum,r.exclusiveMaximum=t.exclusiveMaximum,r.minimum=t.minimum,r.exclusiveMinimum=t.exclusiveMinimum,r.multipleOf=t.multipleOf,r.maxLength=t.maxLength,r.minLength=t.minLength,r.maxItems=t.maxItems,r.minItems=t.minItems,r.uniqueItems=t.uniqueItems,r.maxProperties=t.maxProperties,r.minProperties=t.minProperties,r.pattern=i(t.pattern),r.default=t.default,r.imports.push(...t.imports),r.enum.push(...t.enum),r.enums.push(...t.enums),r.properties.push(...t.properties),r}}return r})(e,r);if("api-version"!==o.prop)switch(r.in){case"path":n.parametersPath.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"query":n.parametersQuery.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"formData":n.parametersForm.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"cookie":n.parametersCookie.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"header":n.parametersHeader.push(o),n.parameters.push(o),n.imports.push(...o.imports)}}),n},G=["application/json-patch+json","application/json","application/x-www-form-urlencoded","text/json","text/plain","multipart/form-data","multipart/mixed","multipart/related","multipart/batch"],Z=(e,t)=>{const n=Object.keys(t).filter(e=>{const t=e.split(";")[0].trim();return G.includes(t)}).find(e=>{var n;return S(null===(n=t[e])||void 0===n?void 0:n.schema)});if(n)return{mediaType:n,schema:t[n].schema};const r=Object.keys(t).find(e=>{var n;return S(null===(n=t[e])||void 0===n?void 0:n.schema)});return r?{mediaType:r,schema:t[r].schema}:null},K=(e,t,n)=>{var r;const o={in:"response",name:"",code:n,description:t.description||null,export:"generic",type:"any",base:"any",template:null,link:null,isDefinition:!1,isReadOnly:!1,isRequired:!1,isNullable:!1,imports:[],enum:[],enums:[],properties:[]};if(t.content){const n=Z(0,t.content);if(n){if((null===(r=n.schema.$ref)||void 0===r?void 0:r.startsWith("#/components/responses/"))&&(n.schema=W(e,n.schema)),n.schema.$ref){const e=$(n.schema.$ref);return o.export="reference",o.type=e.type,o.base=e.base,o.template=e.template,o.imports.push(...e.imports),o}{const t=Q(e,n.schema);return o.export=t.export,o.type=t.type,o.base=t.base,o.template=t.template,o.link=t.link,o.isReadOnly=t.isReadOnly,o.isRequired=t.isRequired,o.isNullable=t.isNullable,o.format=t.format,o.maximum=t.maximum,o.exclusiveMaximum=t.exclusiveMaximum,o.minimum=t.minimum,o.exclusiveMinimum=t.exclusiveMinimum,o.multipleOf=t.multipleOf,o.maxLength=t.maxLength,o.minLength=t.minLength,o.maxItems=t.maxItems,o.minItems=t.minItems,o.uniqueItems=t.uniqueItems,o.maxProperties=t.maxProperties,o.minProperties=t.minProperties,o.pattern=i(t.pattern),o.imports.push(...t.imports),o.enum.push(...t.enum),o.enums.push(...t.enums),o.properties.push(...t.properties),o}}}if(t.headers)for(const e in t.headers)if(Object.prototype.hasOwnProperty.call(t.headers,e))return o.in="header",o.name=e,o.type="string",o.base="string",o;return o},X=e=>{if("default"===e)return 200;if(/[0-9]+/g.test(e)){const t=parseInt(e);if(Number.isInteger(t))return Math.abs(t)}return null},Y=(e,t)=>{const n=e.type===t.type&&e.base===t.base&&e.template===t.template;return n&&e.link&&t.link?Y(e.link,t.link):n},ee=(e,t)=>{const n=e.isRequired&&void 0===e.default,r=t.isRequired&&void 0===t.default;return n&&!r?-1:r&&!n?1:0},te=(e,t,r,o,a,l)=>{const s=(e=>{const t=e.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w-]+/g,"-").trim();return n(t,{pascalCase:!0})})(o),u=((e,t,r)=>{if(r)return n(r.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w-]+/g,"-").trim());const o=e.replace(/[^/]*?{api-version}.*?\//g,"").replace(/{(.*?)}/g,"").replace(/\//g,"-");return n(`${t}-${o}`)})(t,r,a.operationId),p={service:s,name:u,summary:a.summary||null,description:a.description||null,deprecated:!0===a.deprecated,method:r.toUpperCase(),path:t,parameters:[...l.parameters],parametersPath:[...l.parametersPath],parametersQuery:[...l.parametersQuery],parametersForm:[...l.parametersForm],parametersHeader:[...l.parametersHeader],parametersCookie:[...l.parametersCookie],parametersBody:l.parametersBody,imports:[],errors:[],results:[],responseHeader:null};if(a.parameters){const t=J(e,a.parameters);p.imports.push(...t.imports),p.parameters.push(...t.parameters),p.parametersPath.push(...t.parametersPath),p.parametersQuery.push(...t.parametersQuery),p.parametersForm.push(...t.parametersForm),p.parametersHeader.push(...t.parametersHeader),p.parametersCookie.push(...t.parametersCookie),p.parametersBody=t.parametersBody}if(a.requestBody){const t=((e,t)=>{const n={in:"body",export:"interface",prop:"requestBody",name:"requestBody",type:"any",base:"any",template:null,link:null,description:t.description||null,default:void 0,isDefinition:!1,isReadOnly:!1,isRequired:!0===t.required,isNullable:!0===t.nullable,imports:[],enum:[],enums:[],properties:[],mediaType:null};if(t.content){const r=Z(0,t.content);if(r){switch(n.mediaType=r.mediaType,n.mediaType){case"application/x-www-form-urlencoded":case"multipart/form-data":n.in="formData",n.name="formData",n.prop="formData"}if(r.schema.$ref){const e=$(r.schema.$ref);return n.export="reference",n.type=e.type,n.base=e.base,n.template=e.template,n.imports.push(...e.imports),n}{const t=Q(e,r.schema);return n.export=t.export,n.type=t.type,n.base=t.base,n.template=t.template,n.link=t.link,n.isReadOnly=t.isReadOnly,n.isRequired=n.isRequired||t.isRequired,n.isNullable=n.isNullable||t.isNullable,n.format=t.format,n.maximum=t.maximum,n.exclusiveMaximum=t.exclusiveMaximum,n.minimum=t.minimum,n.exclusiveMinimum=t.exclusiveMinimum,n.multipleOf=t.multipleOf,n.maxLength=t.maxLength,n.minLength=t.minLength,n.maxItems=t.maxItems,n.minItems=t.minItems,n.uniqueItems=t.uniqueItems,n.maxProperties=t.maxProperties,n.minProperties=t.minProperties,n.pattern=i(t.pattern),n.imports.push(...t.imports),n.enum.push(...t.enum),n.enums.push(...t.enums),n.properties.push(...t.properties),n}}}return n})(e,W(e,a.requestBody));p.imports.push(...t.imports),p.parameters.push(t),p.parametersBody=t}if(a.responses){const t=((e,t)=>{const n=[];for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)){const o=t[r],a=W(e,o),l=X(r);if(l){const t=K(e,a,l);n.push(t)}}return n.sort((e,t)=>e.code<t.code?-1:e.code>t.code?1:0)})(e,a.responses),n=(e=>{const t=[];return e.forEach(e=>{const{code:n}=e;n&&204!==n&&n>=200&&n<300&&t.push(e)}),t.length||t.push({in:"response",name:"",code:200,description:"",export:"generic",type:"void",base:"void",template:null,link:null,isDefinition:!1,isReadOnly:!1,isRequired:!1,isNullable:!1,imports:[],enum:[],enums:[],properties:[]}),t.filter((e,t,n)=>n.findIndex(t=>Y(t,e))===t)})(t);p.errors=(e=>e.filter(e=>e.code>=300&&e.description).map(e=>({code:e.code,description:e.description})))(t),p.responseHeader=(e=>{const t=e.find(e=>"header"===e.in);return t?t.name:null})(n),n.forEach(e=>{p.results.push(e),p.imports.push(...e.imports)})}return p.parameters=p.parameters.sort(ee),p},ne=e=>{const t=((e="1.0")=>String(e).replace(/^v/gi,""))(e.info.version),n=(e=>{var t;const n=null===(t=e.servers)||void 0===t?void 0:t[0],r=(null==n?void 0:n.variables)||{};let o=(null==n?void 0:n.url)||"";for(const e in r)Object.prototype.hasOwnProperty.call(r,e)&&(o=o.replace(`{${e}}`,r[e].default));return o.replace(/\/$/g,"")})(e),r=(e=>{const t=[];if(e.components){for(const n in e.components.schemas)if(Object.prototype.hasOwnProperty.call(e.components.schemas,n)){const r=e.components.schemas[n],o=$(n),a=Q(e,r,!0,o.base.replace(s,"_$1"));t.push(a)}for(const n in e.components.parameters)if(Object.prototype.hasOwnProperty.call(e.components.parameters,n)){const r=e.components.parameters[n],o=$(n),a=r.schema;if(a){const n=Q(e,a,!0,o.base.replace(s,"_$1"));n.description=r.description||null,n.deprecated=r.deprecated,t.push(n)}}}return t})(e),o=(e=>{var t;const n=new Map;for(const r in e.paths)if(Object.prototype.hasOwnProperty.call(e.paths,r)){const o=e.paths[r],a=J(e,o.parameters||[]);for(const l in o)if(Object.prototype.hasOwnProperty.call(o,l))switch(l){case"get":case"put":case"post":case"delete":case"options":case"head":case"patch":{const s=o[l];((null===(t=s.tags)||void 0===t?void 0:t.length)?s.tags.filter(x):["Default"]).forEach(t=>{const o=te(e,r,l,t,s,a),i=n.get(o.service)||{name:o.service,operations:[],imports:[]};i.operations.push(o),i.imports.push(...o.imports),n.set(o.service,i)});break}}}return Array.from(n.values())})(e);return{version:t,server:n,models:r,services:o}},re=a.writeFile,oe=a.copyFile,ae=a.pathExists,le=a.mkdirp,se=a.remove;var ie;!function(e){e[e.V2=2]="V2",e[e.V3=3]="V3"}(ie||(ie={}));const ue=e=>e.enum.filter((e,t,n)=>n.findIndex(t=>t.name===e.name)===t),pe=e=>e.enums.filter((e,t,n)=>n.findIndex(t=>t.name===e.name)===t),ce=(e,t)=>{const n=e.toLowerCase(),r=t.toLowerCase();return n.localeCompare(r,"en")},me=e=>e.imports.filter(x).sort(ce).filter(t=>e.name!==t),de=(e,t)=>{const n=[];return e.map(t).forEach(e=>{n.push(...e)}),n},fe=e=>{const t={...e};return t.operations=(e=>{const t=new Map;return e.operations.map(e=>{const n={...e};n.imports.push(...de(n.parameters,e=>e.imports)),n.imports.push(...de(n.results,e=>e.imports));const r=n.name,o=t.get(r)||0;return o>0&&(n.name=`${r}${o}`),t.set(r,o+1),n})})(t),t.operations.forEach(e=>{t.imports.push(...e.imports)}),t.imports=(e=>e.imports.filter(x).sort(ce))(t),t},he=e=>({...e,models:e.models.map(e=>(e=>({...e,imports:me(e),enums:pe(e),enum:ue(e)}))(e)),services:e.services.map(e=>fe(e))});function ye(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ve,ge={exports:{}},Pe={},be={};function Oe(){if(ve)return be;ve=1,be.__esModule=!0,be.extend=o,be.indexOf=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},be.escapeExpression=function(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return"";if(!e)return e+"";e=""+e}if(!n.test(e))return e;return e.replace(t,r)},be.isEmpty=function(e){return!e&&0!==e||!(!s(e)||0!==e.length)},be.createFrame=function(e){var t=o({},e);return t._parent=e,t},be.blockParams=function(e,t){return e.path=t,e},be.appendContextPath=function(e,t){return(e?e+".":"")+t};var e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},t=/[&<>"'`=]/g,n=/[&<>"'`=]/;function r(t){return e[t]}function o(e){for(var t=1;t<arguments.length;t++)for(var n in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],n)&&(e[n]=arguments[t][n]);return e}var a=Object.prototype.toString;be.toString=a;var l=function(e){return"function"==typeof e};l(/x/)&&(be.isFunction=l=function(e){return"function"==typeof e&&"[object Function]"===a.call(e)}),be.isFunction=l;var s=Array.isArray||function(e){return!(!e||"object"!=typeof e)&&"[object Array]"===a.call(e)};return be.isArray=s,be}var xe,ke={exports:{}};function Ce(){return xe||(xe=1,function(e,t){t.__esModule=!0;var n=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function r(e,t){var o=t&&t.loc,a=void 0,l=void 0,s=void 0,i=void 0;o&&(a=o.start.line,l=o.end.line,s=o.start.column,i=o.end.column,e+=" - "+a+":"+s);for(var u=Error.prototype.constructor.call(this,e),p=0;p<n.length;p++)this[n[p]]=u[n[p]];Error.captureStackTrace&&Error.captureStackTrace(this,r);try{o&&(this.lineNumber=a,this.endLineNumber=l,Object.defineProperty?(Object.defineProperty(this,"column",{value:s,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:i,enumerable:!0})):(this.column=s,this.endColumn=i))}catch(e){}}r.prototype=new Error,t.default=r,e.exports=t.default}(ke,ke.exports)),ke.exports}var Re,we={},qe={exports:{}};var je,Ae={exports:{}};var He,Ee={exports:{}};var De,Te={exports:{}};var Ie,Se={exports:{}};var Ne,_e={exports:{}};var Be,$e,Me={exports:{}};function Le(){if($e)return we;function e(e){return e&&e.__esModule?e:{default:e}}$e=1,we.__esModule=!0,we.registerDefaultHelpers=function(e){o.default(e),l.default(e),i.default(e),p.default(e),m.default(e),f.default(e),y.default(e)},we.moveHelperToHooks=function(e,t,n){e.helpers[t]&&(e.hooks[t]=e.helpers[t],n||delete e.helpers[t])};var t,n,r=(Re||(Re=1,function(e,t){t.__esModule=!0;var n=Oe();t.default=function(e){e.registerHelper("blockHelperMissing",function(t,r){var o=r.inverse,a=r.fn;if(!0===t)return a(this);if(!1===t||null==t)return o(this);if(n.isArray(t))return t.length>0?(r.ids&&(r.ids=[r.name]),e.helpers.each(t,r)):o(this);if(r.data&&r.ids){var l=n.createFrame(r.data);l.contextPath=n.appendContextPath(r.data.contextPath,r.name),r={data:l}}return a(t,r)})},e.exports=t.default}(qe,qe.exports)),qe.exports),o=e(r),a=(je||(je=1,function(e,t){t.__esModule=!0;var n,r=Oe(),o=(n=Ce())&&n.__esModule?n:{default:n};t.default=function(e){e.registerHelper("each",function(e,t){if(!t)throw new o.default("Must pass iterator to #each");var n,a=t.fn,l=t.inverse,s=0,i="",u=void 0,p=void 0;function c(t,n,o){u&&(u.key=t,u.index=n,u.first=0===n,u.last=!!o,p&&(u.contextPath=p+t)),i+=a(e[t],{data:u,blockParams:r.blockParams([e[t],t],[p+t,null])})}if(t.data&&t.ids&&(p=r.appendContextPath(t.data.contextPath,t.ids[0])+"."),r.isFunction(e)&&(e=e.call(this)),t.data&&(u=r.createFrame(t.data)),e&&"object"==typeof e)if(r.isArray(e))for(var m=e.length;s<m;s++)s in e&&c(s,s,s===e.length-1);else if("function"==typeof Symbol&&e[Symbol.iterator]){for(var d=[],f=e[Symbol.iterator](),h=f.next();!h.done;h=f.next())d.push(h.value);for(m=(e=d).length;s<m;s++)c(s,s,s===e.length-1)}else n=void 0,Object.keys(e).forEach(function(e){void 0!==n&&c(n,s-1),n=e,s++}),void 0!==n&&c(n,s-1,!0);return 0===s&&(i=l(this)),i})},e.exports=t.default}(Ae,Ae.exports)),Ae.exports),l=e(a),s=(He||(He=1,function(e,t){t.__esModule=!0;var n,r=(n=Ce())&&n.__esModule?n:{default:n};t.default=function(e){e.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new r.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})},e.exports=t.default}(Ee,Ee.exports)),Ee.exports),i=e(s),u=(De||(De=1,function(e,t){t.__esModule=!0;var n,r=Oe(),o=(n=Ce())&&n.__esModule?n:{default:n};t.default=function(e){e.registerHelper("if",function(e,t){if(2!=arguments.length)throw new o.default("#if requires exactly one argument");return r.isFunction(e)&&(e=e.call(this)),!t.hash.includeZero&&!e||r.isEmpty(e)?t.inverse(this):t.fn(this)}),e.registerHelper("unless",function(t,n){if(2!=arguments.length)throw new o.default("#unless requires exactly one argument");return e.helpers.if.call(this,t,{fn:n.inverse,inverse:n.fn,hash:n.hash})})},e.exports=t.default}(Te,Te.exports)),Te.exports),p=e(u),c=(Ie||(Ie=1,t=Se,(n=Se.exports).__esModule=!0,n.default=function(e){e.registerHelper("log",function(){for(var t=[void 0],n=arguments[arguments.length-1],r=0;r<arguments.length-1;r++)t.push(arguments[r]);var o=1;null!=n.hash.level?o=n.hash.level:n.data&&null!=n.data.level&&(o=n.data.level),t[0]=o,e.log.apply(e,t)})},t.exports=n.default),Se.exports),m=e(c),d=function(){return Ne||(Ne=1,e=_e,(t=_e.exports).__esModule=!0,t.default=function(e){e.registerHelper("lookup",function(e,t,n){return e?n.lookupProperty(e,t):e})},e.exports=t.default),_e.exports;var e,t}(),f=e(d),h=(Be||(Be=1,function(e,t){t.__esModule=!0;var n,r=Oe(),o=(n=Ce())&&n.__esModule?n:{default:n};t.default=function(e){e.registerHelper("with",function(e,t){if(2!=arguments.length)throw new o.default("#with requires exactly one argument");r.isFunction(e)&&(e=e.call(this));var n=t.fn;if(r.isEmpty(e))return t.inverse(this);var a=t.data;return t.data&&t.ids&&((a=r.createFrame(t.data)).contextPath=r.appendContextPath(t.data.contextPath,t.ids[0])),n(e,{data:a,blockParams:r.blockParams([e],[a&&a.contextPath])})})},e.exports=t.default}(Me,Me.exports)),Me.exports),y=e(h);return we}var Fe,We,Ve={},Ue={exports:{}};function Qe(){if(We)return Ve;We=1,Ve.__esModule=!0,Ve.registerDefaultDecorators=function(e){n.default(e)};var e,t=(Fe||(Fe=1,function(e,t){t.__esModule=!0;var n=Oe();t.default=function(e){e.registerDecorator("inline",function(e,t,r,o){var a=e;return t.partials||(t.partials={},a=function(o,a){var l=r.partials;r.partials=n.extend({},l,t.partials);var s=e(o,a);return r.partials=l,s}),t.partials[o.args[0]]=o.fn,a})},e.exports=t.default}(Ue,Ue.exports)),Ue.exports),n=(e=t)&&e.__esModule?e:{default:e};return Ve}var ze,Je={exports:{}};function Ge(){return ze||(ze=1,function(e,t){t.__esModule=!0;var n=Oe(),r={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(e){if("string"==typeof e){var t=n.indexOf(r.methodMap,e.toLowerCase());e=t>=0?t:parseInt(e,10)}return e},log:function(e){if(e=r.lookupLevel(e),"undefined"!=typeof console&&r.lookupLevel(r.level)<=e){var t=r.methodMap[e];console[t]||(t="log");for(var n=arguments.length,o=Array(n>1?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];console[t].apply(console,o)}}};t.default=r,e.exports=t.default}(Je,Je.exports)),Je.exports}var Ze,Ke,Xe,Ye={},et={};function tt(){if(Ke)return Ye;Ke=1,Ye.__esModule=!0,Ye.createProtoAccessControl=function(e){var n=Object.create(null);n.constructor=!1,n.__defineGetter__=!1,n.__defineSetter__=!1,n.__lookupGetter__=!1;var r=Object.create(null);return r.__proto__=!1,{properties:{whitelist:t.createNewLookupObject(r,e.allowedProtoProperties),defaultValue:e.allowProtoPropertiesByDefault},methods:{whitelist:t.createNewLookupObject(n,e.allowedProtoMethods),defaultValue:e.allowProtoMethodsByDefault}}},Ye.resultIsAllowed=function(e,t,n){return a("function"==typeof e?t.methods:t.properties,n)},Ye.resetLoggedProperties=function(){Object.keys(o).forEach(function(e){delete o[e]})};var e,t=function(){if(Ze)return et;Ze=1,et.__esModule=!0,et.createNewLookupObject=function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.extend.apply(void 0,[Object.create(null)].concat(n))};var e=Oe();return et}(),n=Ge(),r=(e=n)&&e.__esModule?e:{default:e},o=Object.create(null);function a(e,t){return void 0!==e.whitelist[t]?!0===e.whitelist[t]:void 0!==e.defaultValue?e.defaultValue:(function(e){!0!==o[e]&&(o[e]=!0,r.default.log("error",'Handlebars: Access has been denied to resolve the property "'+e+'" because it is not an "own property" of its parent.\nYou can add a runtime option to disable the check or this warning:\nSee https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details'))}(t),!1)}return Ye}function nt(){if(Xe)return Pe;function e(e){return e&&e.__esModule?e:{default:e}}Xe=1,Pe.__esModule=!0,Pe.HandlebarsEnvironment=i;var t=Oe(),n=e(Ce()),r=Le(),o=Qe(),a=e(Ge()),l=tt();Pe.VERSION="4.7.8";Pe.COMPILER_REVISION=8;Pe.LAST_COMPATIBLE_COMPILER_REVISION=7;Pe.REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};var s="[object Object]";function i(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},r.registerDefaultHelpers(this),o.registerDefaultDecorators(this)}i.prototype={constructor:i,logger:a.default,log:a.default.log,registerHelper:function(e,r){if(t.toString.call(e)===s){if(r)throw new n.default("Arg not supported with multiple helpers");t.extend(this.helpers,e)}else this.helpers[e]=r},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,r){if(t.toString.call(e)===s)t.extend(this.partials,e);else{if(void 0===r)throw new n.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=r}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,r){if(t.toString.call(e)===s){if(r)throw new n.default("Arg not supported with multiple decorators");t.extend(this.decorators,e)}else this.decorators[e]=r},unregisterDecorator:function(e){delete this.decorators[e]},resetLoggedPropertyAccesses:function(){l.resetLoggedProperties()}};var u=a.default.log;return Pe.log=u,Pe.createFrame=t.createFrame,Pe.logger=a.default,Pe}var rt,ot={exports:{}};var at,lt,st={},it={};function ut(){if(lt)return st;lt=1,st.__esModule=!0,st.checkRevision=function(e){var t=e&&e[0]||1,n=o.COMPILER_REVISION;if(t>=o.LAST_COMPATIBLE_COMPILER_REVISION&&t<=o.COMPILER_REVISION)return;if(t<o.LAST_COMPATIBLE_COMPILER_REVISION){var a=o.REVISION_CHANGES[n],l=o.REVISION_CHANGES[t];throw new r.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+a+") or downgrade your runtime to an older version ("+l+").")}throw new r.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+e[1]+").")},st.template=function(e,n){if(!n)throw new r.default("No environment passed to template");if(!e||!e.main)throw new r.default("Unknown template object: "+typeof e);e.main.decorator=e.main_d,n.VM.checkRevision(e.compiler);var u=e.compiler&&7===e.compiler[0];var c={strict:function(e,t,n){if(!e||!(t in e))throw new r.default('"'+t+'" not defined in '+e,{loc:n});return c.lookupProperty(e,t)},lookupProperty:function(e,t){var n=e[t];return null==n||Object.prototype.hasOwnProperty.call(e,t)||s.resultIsAllowed(n,c.protoAccessControl,t)?n:void 0},lookup:function(e,t){for(var n=e.length,r=0;r<n;r++){if(null!=(e[r]&&c.lookupProperty(e[r],t)))return e[r][t]}},lambda:function(e,t){return"function"==typeof e?e.call(t):e},escapeExpression:t.escapeExpression,invokePartial:function(o,a,l){l.hash&&(a=t.extend({},a,l.hash),l.ids&&(l.ids[0]=!0)),o=n.VM.resolvePartial.call(this,o,a,l);var s=t.extend({},l,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),i=n.VM.invokePartial.call(this,o,a,s);if(null==i&&n.compile&&(l.partials[l.name]=n.compile(o,e.compilerOptions,n),i=l.partials[l.name](a,s)),null!=i){if(l.indent){for(var u=i.split("\n"),p=0,c=u.length;p<c&&(u[p]||p+1!==c);p++)u[p]=l.indent+u[p];i=u.join("\n")}return i}throw new r.default("The partial "+l.name+" could not be compiled when running in runtime-only mode")},fn:function(t){var n=e[t];return n.decorator=e[t+"_d"],n},programs:[],program:function(e,t,n,r,o){var a=this.programs[e],l=this.fn(e);return t||o||r||n?a=i(this,e,l,t,n,r,o):a||(a=this.programs[e]=i(this,e,l)),a},data:function(e,t){for(;e&&t--;)e=e._parent;return e},mergeIfNeeded:function(e,n){var r=e||n;return e&&n&&e!==n&&(r=t.extend({},n,e)),r},nullContext:Object.seal({}),noop:n.VM.noop,compilerInfo:e.compiler};function m(t){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],r=n.data;m._setup(n),!n.partial&&e.useData&&(r=function(e,t){t&&"root"in t||((t=t?o.createFrame(t):{}).root=e);return t}(t,r));var a=void 0,l=e.useBlockParams?[]:void 0;function s(t){return""+e.main(c,t,c.helpers,c.partials,r,l,a)}return e.useDepths&&(a=n.depths?t!=n.depths[0]?[t].concat(n.depths):n.depths:[t]),(s=p(e.main,s,c,n.depths||[],r,l))(t,n)}return m.isTop=!0,m._setup=function(r){if(r.partial)c.protoAccessControl=r.protoAccessControl,c.helpers=r.helpers,c.partials=r.partials,c.decorators=r.decorators,c.hooks=r.hooks;else{var o=t.extend({},n.helpers,r.helpers);!function(e,n){Object.keys(e).forEach(function(r){var o=e[r];e[r]=function(e,n){var r=n.lookupProperty;return l.wrapHelper(e,function(e){return t.extend({lookupProperty:r},e)})}(o,n)})}(o,c),c.helpers=o,e.usePartial&&(c.partials=c.mergeIfNeeded(r.partials,n.partials)),(e.usePartial||e.useDecorators)&&(c.decorators=t.extend({},n.decorators,r.decorators)),c.hooks={},c.protoAccessControl=s.createProtoAccessControl(r);var i=r.allowCallsToHelperMissing||u;a.moveHelperToHooks(c,"helperMissing",i),a.moveHelperToHooks(c,"blockHelperMissing",i)}},m._child=function(t,n,o,a){if(e.useBlockParams&&!o)throw new r.default("must pass block params");if(e.useDepths&&!a)throw new r.default("must pass parent depths");return i(c,t,e[t],n,0,o,a)},m},st.wrapProgram=i,st.resolvePartial=function(e,t,n){e?e.call||n.name||(n.name=e,e=n.partials[e]):e="@partial-block"===n.name?n.data["partial-block"]:n.partials[n.name];return e},st.invokePartial=function(e,n,a){var l=a.data&&a.data["partial-block"];a.partial=!0,a.ids&