@opra/common 1.15.1 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/browser/index.cjs CHANGED
@@ -9,4 +9,4 @@
9
9
  `));throw g.errors=s,g}return e=e||new Ar,e.visit(c)}a(Mn,"parse");var vn=class vn{constructor(e,t){if(this._rules=new F,this._decoderCache=new WeakMap,Object.defineProperty(this,"_rules",{value:new F(null,{caseSensitive:t==null?void 0:t.caseSensitive}),enumerable:!1}),e)for(let[r,i]of Object.entries(e))this.set(r,i)}set(e,t){let r=typeof(t==null?void 0:t.operators)=="string"?t.operators.split(/\s*[,| ]\s*/):t==null?void 0:t.operators;this._rules.set(e,(0,ya.omitUndefined)({...t,operators:r}))}normalizeFilter(e,t,r){let i=typeof e=="string"?Mn(e):e;return this.normalizeFilterAst(i,[],t,r)}normalizeFilterAst(e,t,r,i){if(e instanceof ye){if(t.push(e),this.normalizeFilterAst(e.left,t,r),!(e.left instanceof se&&e.left.field))throw new TypeError("Invalid filter query. Left side should be a data field.");let n=this._rules.get(e.left.value);if(!n)throw new de({message:`Field '${e.left.value}' is not available for filter operation`,code:"UNACCEPTED_FILTER_FIELD",details:{field:e.left.value}});if(n.operators&&!n.operators.includes(e.op))throw new de({message:`'${e.left.value}' field do not accept '${e.op}' filter operator`,code:"UNACCEPTED_FILTER_OPERATION",details:{field:e.left.value,operator:e.op}});return n.mappedField&&(e.left.value=n.mappedField),n.prepare&&(e.prepare=n.prepare),this.normalizeFilterAst(e.right,t,r),t.pop(),e}if(e instanceof Te)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof Ge)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n.expression,t,r)),t.pop(),e;if(e instanceof xe)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof Oe)return t.push(e),this.normalizeFilterAst(e.expression,t,r),t.pop(),e;if(e instanceof se&&r)return e.value=r.normalizeFieldPath(e.value,{scope:i}),e.field=r.getField(e.value,i),e.dataType=e.field.type,e;if(e instanceof v){let n=t.findLastIndex(s=>s instanceof ye);if(n>=0){let s=t[n];if((e===s.right||t[n+1]===s.right)&&s&&s.left instanceof se&&s.left.field){if(e.value==null&&!s.left.field.required)return e.value;let p;s.op==="like"||s.op==="!like"||s.op==="ilike"||s.op==="!ilike"?p=Ta.isString:p=this._decoderCache.get(s.left.field),p||(p=s.left.field.type.generateCodec("decode",{scope:i,projection:"*",ignoreWriteonlyFields:!0,coerce:!0}),this._decoderCache.set(s.left.field,p)),e.value=p(e.value)}}}return e}toJSON(){return this._rules.toObject()}[Symbol.iterator](){return this._rules.entries()}};a(vn,"FilterRules");var _t=vn;var ga=require("ts-gems"),V=require("valgen");var xa=require("@jsopen/objects"),Oa=require("ts-gems");var Ea=require("ts-gems"),_a=require("uid");var m={};vi(m,{ComplexType:()=>xt,EnumType:()=>Ot,HttpController:()=>Dr,HttpOperation:()=>In,MappedType:()=>gt,MixinType:()=>wt,RpcController:()=>Pn,RpcOperation:()=>Ln,SimpleType:()=>Rt,SpecVersion:()=>Zp,UnionType:()=>At,isComplexType:()=>ec,isDataType:()=>Hp,isEnumType:()=>oc,isHttpController:()=>sc,isMappedType:()=>ic,isMixinType:()=>rc,isSimpleType:()=>tc,isUnionType:()=>nc});var Zp="1.0";var xt;(function(o){o.Kind="ComplexType"})(xt||(xt={}));var Ot;(function(o){o.Kind="EnumType"})(Ot||(Ot={}));var gt;(function(o){o.Kind="MappedType"})(gt||(gt={}));var wt;(function(o){o.Kind="MixinType"})(wt||(wt={}));var Rt;(function(o){o.Kind="SimpleType"})(Rt||(Rt={}));var At;(function(o){o.Kind="UnionType"})(At||(At={}));var Dr;(function(o){o.Kind="HttpController"})(Dr||(Dr={}));var In;(function(o){o.Kind="HttpOperation"})(In||(In={}));var Pn;(function(o){o.Kind="RpcController"})(Pn||(Pn={}));var Ln;(function(o){o.Kind="RpcOperation"})(Ln||(Ln={}));function Hp(o){return o&&typeof o=="object"&&(o.kind===xt.Kind||o.kind===Ot.Kind||o.kind===gt.Kind||o.kind===Rt.Kind||o.kind===wt.Kind||o.kind===At.Kind)}a(Hp,"isDataType");function ec(o){return o&&typeof o=="object"&&o.kind===xt.Kind}a(ec,"isComplexType");function tc(o){return o&&typeof o=="object"&&o.kind===Rt.Kind}a(tc,"isSimpleType");function rc(o){return o&&typeof o=="object"&&o.kind===wt.Kind}a(rc,"isMixinType");function ic(o){return o&&typeof o=="object"&&o.kind===gt.Kind}a(ic,"isMappedType");function oc(o){return o&&typeof o=="object"&&o.kind===Ot.Kind}a(oc,"isEnumType");function nc(o){return o&&typeof o=="object"&&o.kind===At.Kind}a(nc,"isUnionType");function sc(o){return o&&typeof o=="object"&&o.kind===Dr.Kind}a(sc,"isHttpController");var kn=class kn{constructor(e,t){this.element=e,this.parent=t}getDocument(){if(this._document)return this._document;if(this.element[_e])return this.element;if(this.parent)return this._document=this.parent.getDocument();throw new Error("ApiDocument not found in document tree")}hasDataType(e,t){return!!this.findDataType(e,t)}findDataType(e,t){var i;let r=(i=this[U])==null?void 0:i.get(e);return r&&r.inScope(t)?r:this.parent?this.parent.findDataType(e,t):void 0}getDataType(e,t){let r=this.findDataType(e,t);if(r)return r;let i="";if(typeof e=="function")i=Reflect.getMetadata(h,e).name;else if(typeof e=="object"){let n=e[h];i=n==null?void 0:n.name}throw i||(e&&typeof e=="string"?i=e:typeof e=="function"&&(i=e.name)),r?new TypeError(`Data type${i?" ("+i+")":""} is not in requested scope (${t})`):new TypeError(`Unknown data type${i?" ("+i+")":""}`)}getDataTypeNameWithNs(e){if(!e.name)return;let t=this.getDocument().getDataTypeNs(e);return t?t+":"+e.name:e.name}getComplexType(e,t){let r=this.getDataType(e,t);if(r.kind===m.ComplexType.Kind)return r;throw new TypeError(`Data type "${r.name}" is not a ComplexType`)}getSimpleType(e,t){let r=this.getDataType(e,t);if(r.kind===m.SimpleType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a SimpleType`)}getEnumType(e,t){let r=this.getDataType(e,t);if(r.kind===m.EnumType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a EnumType`)}getMappedType(e,t){let r=this.getDataType(e,t);if(r.kind===m.MappedType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MappedType`)}getMixinType(e,t){let r=this.getDataType(e,t);if(r.kind===m.MixinType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MixinType`)}getUnionType(e,t){let r=this.getDataType(e,t);if(r.kind===m.UnionType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MixinType`)}};a(kn,"DocumentNode");var Nr=kn;var R=a(function(o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let e=(0,Ea.asMutable)(this);e.id=(0,_a.uid)(16),Object.defineProperty(e,"node",{value:new Nr(this,o==null?void 0:o.node),enumerable:!1,writable:!0}),o&&Object.defineProperty(e,"owner",{value:o,enumerable:!1,writable:!0})},"DocumentElement"),Cn=class Cn{};a(Cn,"DocumentElementClass");var jn=Cn;R.prototype=jn.prototype;var bt=Symbol.for("nodejs.util.inspect.custom"),et="\x1B[0m",Dt="\x1B[33m",Nt="\x1B[35m";function Sr(o,e){return!e||o==="*"?!0:o?Array.isArray(e)?e.some(t=>typeof t=="string"?o===t:t.test(o)):typeof e=="string"?o===e:e.test(o):!1}a(Sr,"testScopeMatch");var x=a(function(o,e,t){if(!this)throw new TypeError('"this" should be passed to call class constructor');if(e!=null&&e.name&&!C.test(e.name))throw new TypeError(`"${e.name}" is not a valid DataType name`);R.call(this,o);let r=(0,Oa.asMutable)(this);r.kind=e.kind,r.scopePattern=e.scopePattern?Array.isArray(e.scopePattern)?e.scopePattern:[e.scopePattern]:void 0,r.name=e.name,r.description=e.description,r.abstract=e.abstract,r.examples=e.examples},"DataType"),$n=class $n extends R{get embedded(){return!this.name}inScope(e){return Sr(e,this.scopePattern)}toJSON(e){let t=this._locateBase(r=>!r.inScope(e==null?void 0:e.scope));if(t){let r=this.node.getDataTypeNameWithNs(t);throw new TypeError(`"${r}" model is not available for "${(e==null?void 0:e.scope)||"null"}" scope`)}return(0,xa.omitUndefined)({kind:this.kind,description:this.description,abstract:this.abstract,examples:this.examples})}toString(){return`[${Object.getPrototypeOf(this).constructor.name} ${this.name||"#Embedded"}]`}[bt](){return`[${Dt+Object.getPrototypeOf(this).constructor.name+et} ${Nt+this.name+et}]`}};a($n,"DataTypeClass");var Un=$n;x.prototype=Un.prototype;var St=/^([+-])?([a-z$_][\w.]*)$/i,j=a(function(...o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;x.call(this,e,t,r);let i=(0,ga.asMutable)(this);i._fields=new F},"ComplexTypeBase"),qn=class qn extends x{fieldCount(e){if(e==="*")return this._fields.size;let t=0;for(let r of this.fields(e))t++;return t}fieldEntries(e){let t=this._fields.entries();if(e==="*")return t;let r;return{next(){for(;t&&(r=t.next(),!(r.done||r.value&&r.value[1].inScope(e))););return r.done?{done:r.done,value:void 0}:{done:r.done,value:[r.value[0],r.value[1].forScope(e)]}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}fields(e){let t=this.fieldEntries(e),r;return{next(){var i;return t?(r=t.next(),{done:r.done,value:(i=r.value)==null?void 0:i[1]}):{done:!0,value:void 0}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}fieldNames(e){if(e==="*")return this._fields.keys();let t=this.fieldEntries(e),r;return{next(){var i;return t?(r=t.next(),{done:r.done,value:(i=r.value)==null?void 0:i[0]}):{done:!0,value:void 0}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}findField(e,t){if(e.includes(".")){let i=this.parseFieldPath(e,{scope:t});if(i.length===0)throw new Error(`Field "${e}" does not exist in scope "${t}"`);let n=i.pop();return n==null?void 0:n.field}let r=this._fields.get(e);if(r&&r.inScope(t))return r.forScope(t)}getField(e,t){let r=this.findField(e,"*");if(r&&!r.inScope(t))throw new Error(`Field "${e}" does not exist in scope "${t||"null"}"`);if(!r)throw new Error(`Field (${e}) does not exist`);return r.forScope(t)}parseFieldPath(e,t){var d,X,Zs;let r=this,i,n=e.split("."),s=n.length,p=[],c=this.owner.node.getDataType("object"),f=t==null?void 0:t.allowSigns,g=a(()=>p.map(We=>We.fieldName).join("."),"getStrPath");for(let We=0;We<s;We++){let Z={fieldName:n[We],dataType:c};p.push(Z);let Wr=St.exec(n[We]);if(!Wr)throw new TypeError(`Invalid field name (${g()})`);if(Wr[1]&&((We===0&&f==="first"||f==="each")&&(Z.sign=Wr[1]),Z.fieldName=Wr[2]),r){if(r instanceof j){if(i=r.findField(Z.fieldName,t==null?void 0:t.scope),i){Z.fieldName=i.name,Z.field=i,Z.dataType=i.type,r=i.type;continue}if(((d=r.additionalFields)==null?void 0:d[0])===!0){Z.additionalField=!0,Z.dataType=c,r=void 0;continue}if(((X=r.additionalFields)==null?void 0:X[0])==="type"&&((Zs=r.additionalFields)==null?void 0:Zs[1])instanceof x){Z.additionalField=!0,Z.dataType=r.additionalFields[1],r=r.additionalFields[1];continue}throw new Error(`Unknown field (${p.map(Mi=>Mi.fieldName).join(".")})`)}throw new TypeError(`"${p.map(Mi=>Mi.fieldName).join(".")}" field is not a complex type and has no child fields`)}Z.additionalField=!0,Z.dataType=c}return p}normalizeFieldPath(e,t){return this.parseFieldPath(e,t).map(r=>(r.sign||"")+r.fieldName).join(".")}generateCodec(e,t){let r=Array.isArray(t==null?void 0:t.projection)?lo(t.projection):t==null?void 0:t.projection,i=this._generateSchema(e,{...t,projection:r,currentPath:""}),n;if(this.additionalFields instanceof x)n=this.additionalFields.generateCodec(e,t);else if(typeof this.additionalFields=="boolean")n=this.additionalFields;else if(Array.isArray(this.additionalFields))if(this.additionalFields.length<2)n="error";else{let s=n[1];n=(0,V.validator)((p,c,f)=>c.fail(f,s,p))}return V.vg.isObject(i,{ctor:this.name==="object"?Object:this.ctor,additionalFields:n,name:this.name,coerce:!0,caseInSensitive:t==null?void 0:t.caseInSensitive,onFail:t==null?void 0:t.onFail})}_generateSchema(e,t){var c;let r={},{currentPath:i,projection:n}=t,s=!!(n&&Object.values(n).find(f=>!f.sign)),p;for(let f of this.fields("*")){if(!f.inScope(t.scope)||!(t.keepKeyFields&&this.keyField)&&(t.ignoreReadonlyFields&&f.readonly||t.ignoreWriteonlyFields&&f.writeonly)){r[f.name]=V.vg.isUndefined({coerce:!0});continue}p=f.name;let g;if(n!=="*"&&(g=n==null?void 0:n[p.toLowerCase()],(g==null?void 0:g.sign)==="-"||s&&!g||!s&&f.exclusive&&!g)){r[f.name]=V.vg.isUndefined({coerce:!0});continue}let d=this._generateFieldCodec(e,f,{...t,partial:t.partial==="deep"?t.partial:void 0,projection:typeof n=="object"?((c=n[p])==null?void 0:c.projection)||"*":n,currentPath:i+(i?".":"")+p});r[p]=t.partial||!f.required?V.vg.optional(d):V.vg.pipe([V.vg.required(d),V.vg.isNotEmpty()])}return t.allowPatchOperators&&(r._$pull=V.vg.optional(V.vg.isAny()),r._$push=V.vg.optional(V.vg.isAny())),r}_generateFieldCodec(e,t,r){let i=t.type.generateCodec(e,r);return t.fixed&&(i=V.vg.isEqual(t.fixed)),t.isArray&&(i=V.vg.isArray(i)),i}};a(qn,"ComplexTypeBaseClass");var Bn=qn;j.prototype=Bn.prototype;var _0=require("reflect-metadata"),ui=require("@jsopen/objects"),wa=require("ts-gems"),Ra=require("valgen");var ee=a(function(...o){if(!this)return ee[D].apply(void 0,o);let[e,t,r]=o;x.call(this,e,t,r);let i=(0,wa.asMutable)(this);if(i.kind=m.EnumType.Kind,t.base){if(!(t.base instanceof ee))throw new TypeError(`"${t.base.kind}" can't be set as base for a "${i.kind}"`);i.base=t.base}i.instance=t.instance,i.ownAttributes=M(t.attributes||{}),i.attributes=i.base?M(i.base.attributes):{};for(let[n,s]of Object.entries(i.ownAttributes))i.attributes[n]=s},"EnumType"),Kn=class Kn extends x{extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof ee?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}generateCodec(){return Ra.vg.isEnum(Object.keys(this.attributes))}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0;return(0,ui.omitUndefined)({...t,kind:this.kind,base:r,attributes:M(this.ownAttributes)})}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(Kn,"EnumTypeClass");var Fr=Kn;ee.prototype=Fr.prototype;Object.assign(ee,Fr);function ac(o,...e){let t=e.length>=2?e[0]:void 0,r=e.length>=2?e[1]:e[0],i={},n=o;if(Array.isArray(o)){if(t){if(!Array.isArray(t))throw new TypeError('Both "target" and "base" arguments should be array');n=[...t,...o]}i={},o.forEach(p=>{var f;let c=(f=r==null?void 0:r.meanings)==null?void 0:f[p];i[p]=(0,ui.omitUndefined)({description:c})})}else{if(t){if(Array.isArray(t))throw new TypeError('Both "target" and "base" arguments should be enum object');n={...t,...o}}Object.keys(o).forEach(p=>{var f;let c=(f=r==null?void 0:r.meanings)==null?void 0:f[p];i[o[p]]=(0,ui.omitUndefined)({alias:p,description:c})})}let s={kind:m.EnumType.Kind,attributes:i,base:r==null?void 0:r.base,name:r==null?void 0:r.name,description:r==null?void 0:r.description};return Object.defineProperty(o,h,{value:s,enumerable:!1,configurable:!0,writable:!0}),n}a(ac,"EnumTypeFactory");ee.prototype=Fr.prototype;ee[D]=ac;var di=require("tslib"),Gn=require("valgen");var F0=require("reflect-metadata"),zn=require("@jsopen/objects"),ba=require("ts-gems"),Jn=require("valgen");function Vn(o){let e=[],t=a(function(r){let i;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!C.test(o.name))throw new TypeError(`"${o.name}" is not a valid type name`);i=o.name}else i=r.name,i=i.toLowerCase();let n=Reflect.getOwnMetadata(h,r)||{};o&&Object.assign(n,o),n.kind=m.SimpleType.Kind,n.name=i,Reflect.defineMetadata(h,n,r);for(let s of e)s(n,r)},"decorator");return t.Example=(r,i)=>(e.push(n=>{n.examples=n.examples||[],n.examples.push({description:i,value:r})}),t),t}a(Vn,"SimpleTypeDecoratorFactory");function Aa(o){return(e,t)=>{if(typeof t!="string")throw new TypeError("Symbol properties can't be decorated with Attribute");let r=Reflect.getOwnMetadata(h,e.constructor)||{},i=Reflect.getMetadata("design:type",e,t),n="string";i===Boolean?n="boolean":i===Number&&(n="number"),r.kind=m.SimpleType.Kind,r.attributes=r.attributes||{},r.attributes[t]={format:(o==null?void 0:o.format)||n,description:o==null?void 0:o.description,deprecated:o==null?void 0:o.deprecated},Reflect.defineMetadata(h,r,e.constructor)}}a(Aa,"AttributeDecoratorFactory");var u=a(function(...o){var n,s;if(!this)return u[D](...o);let[e,t,r]=o;x.call(this,e,t,r);let i=(0,ba.asMutable)(this);if(i.kind=m.SimpleType.Kind,t.base){if(!(t.base instanceof u))throw new TypeError(`"${t.base.kind}" can't be set as base for a "${this.kind}"`);i.base=t.base}if(i.properties=t.properties,i.ownNameMappings={...t.nameMappings},i.nameMappings={...(n=i.base)==null?void 0:n.nameMappings,...t.nameMappings},i.ownAttributes=M(t.attributes||{}),i.attributes=i.base?M(i.base.attributes):{},i.ownAttributes)for(let[p,c]of Object.entries(i.ownAttributes)){if((s=i.attributes[p])!=null&&s.sealed)throw new TypeError(`Sealed attribute "${p}" can not be overwritten`);i.attributes[p]=c}i._generateDecoder=t.generateDecoder,i._generateEncoder=t.generateEncoder},"SimpleType"),Yn=class Yn extends x{extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof u?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}generateCodec(e,t,r){let i={...this.properties,...r};if(e==="decode"){let s=this;for(;s;){if(s._generateDecoder)return s._generateDecoder(i,(t==null?void 0:t.documentElement)||this.owner,t==null?void 0:t.scope);s=this.base}return Jn.isAny}let n=this;for(;n;){if(n._generateEncoder)return n._generateEncoder(i,(t==null?void 0:t.documentElement)||this.owner,t==null?void 0:t.scope);n=this.base}return Jn.isAny}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0,i=(0,zn.omitUndefined)(this.ownAttributes),n;this.properties&&typeof this.properties.toJSON=="function"?n=this.properties.toJSON(this.properties,this.owner,e):n=this.properties?M(this.properties):{};let s={...t,kind:this.kind,base:r,attributes:i&&Object.keys(i).length?i:void 0,properties:Object.keys(n).length?n:void 0};return Object.keys(this.ownNameMappings).length&&(s.nameMappings={...this.ownNameMappings}),(0,zn.omitUndefined)(s,!0)}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(Yn,"SimpleTypeClass");var Wn=Yn;u.prototype=Wn.prototype;Object.assign(u,Vn);u[D]=Vn;u.Attribute=Aa;var Ft,Mr=(Ft=class{constructor(e){e&&Object.assign(this,e)}[E](){return Gn.vg.isBase64({coerce:!0})}[O](){return Gn.vg.isBase64({coerce:!0})}},a(Ft,"Base64Type"),Ft);Mr=(0,di.__decorate)([u({name:"base64",description:"A stream of bytes, base64 encoded",nameMappings:{js:"string",json:"string"}}),(0,di.__metadata)("design:paramtypes",[Object])],Mr);var Fe=require("tslib"),B=require("valgen");var Mt,tt=(Mt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=B.vg.isDate({precision:"date",coerce:!0}),r=[];return e.minValue&&((0,B.isDateString)(e.minValue),r.push(B.toString,B.vg.isGte(e.minValue))),e.maxValue&&((0,B.isDateString)(e.maxValue),r.push(B.toString,B.vg.isLte(e.maxValue))),r.length>0?B.vg.pipe([t,...r],{returnIndex:0}):t}[O](e){let t=B.vg.isDateString({precision:"date",trim:"date",coerce:!0}),r=[];return e.minValue&&((0,B.isDateString)(e.minValue),r.push(B.vg.isGte(e.minValue))),e.maxValue&&((0,B.isDateString)(e.maxValue),r.push(B.vg.isLte(e.maxValue))),r.length>0?B.vg.pipe([t,...r],{returnIndex:0}):t}},a(Mt,"DateType"),Mt);(0,Fe.__decorate)([u.Attribute({description:"Minimum value"}),(0,Fe.__metadata)("design:type",String)],tt.prototype,"minValue",void 0);(0,Fe.__decorate)([u.Attribute({description:"Maximum value"}),(0,Fe.__metadata)("design:type",String)],tt.prototype,"maxValue",void 0);tt=(0,Fe.__decorate)([u({name:"date",description:"A date without time",nameMappings:{js:"Date",json:"string"}}).Example("2021-04-18","Full date value"),(0,Fe.__metadata)("design:paramtypes",[Object])],tt);var Me=require("tslib"),vr=require("valgen");var vt,rt=(vt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=vr.vg.isDateString({trim:"date",coerce:!0}),r=[];return e.minValue&&r.push(vr.vg.isGte(e.minValue)),e.maxValue&&r.push(vr.vg.isLte(e.maxValue)),r.length>0?vr.vg.pipe([t,...r],{returnIndex:0}):t}[O](e){return this[E](e)}},a(vt,"DateStringType"),vt);(0,Me.__decorate)([u.Attribute({description:"Minimum value"}),(0,Me.__metadata)("design:type",String)],rt.prototype,"minValue",void 0);(0,Me.__decorate)([u.Attribute({description:"Maximum value"}),(0,Me.__metadata)("design:type",String)],rt.prototype,"maxValue",void 0);rt=(0,Me.__decorate)([u({name:"datestring",description:"Date string value",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18","Full date value").Example("2021-04","Date value without day").Example("2021","Year only value"),(0,Me.__metadata)("design:paramtypes",[Object])],rt);var ve=require("tslib"),q=require("valgen");var It,it=(It=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=q.vg.isDate({precision:"time",coerce:!0}),r=[];return e.minValue&&((0,q.isDateString)(e.minValue),r.push(q.toString,q.vg.isGte(e.minValue))),e.maxValue&&((0,q.isDateString)(e.maxValue),r.push(q.toString,q.vg.isLte(e.maxValue))),r.length>0?q.vg.pipe([t,...r],{returnIndex:0}):t}[O](e){let t=q.vg.isDateString({precision:"time",trim:"time",coerce:!0}),r=[];return e.minValue&&((0,q.isDateString)(e.minValue),r.push(q.vg.isGte(e.minValue))),e.maxValue&&((0,q.isDateString)(e.maxValue),r.push(q.vg.isLte(e.maxValue))),r.length>0?q.vg.pipe([t,...r],{returnIndex:0}):t}},a(It,"DateTimeType"),It);(0,ve.__decorate)([u.Attribute({description:"Minimum value"}),(0,ve.__metadata)("design:type",String)],it.prototype,"minValue",void 0);(0,ve.__decorate)([u.Attribute({description:"Maximum value"}),(0,ve.__metadata)("design:type",String)],it.prototype,"maxValue",void 0);it=(0,ve.__decorate)([u({name:"datetime",description:"A full datetime value",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18T22:30:15").Example("2021-04-18 22:30:15").Example("2021-04-18 22:30"),(0,ve.__metadata)("design:paramtypes",[Object])],it);var Ie=require("tslib"),Ir=require("valgen");var Pt,ot=(Pt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=Ir.vg.isDateString({coerce:!0}),r=[];return e.minValue&&r.push(Ir.vg.isGte(e.minValue)),e.maxValue&&r.push(Ir.vg.isLte(e.maxValue)),r.length>0?Ir.vg.pipe([t,...r]):t}[O](e){return this[E](e)}},a(Pt,"DateTimeStringType"),Pt);(0,Ie.__decorate)([u.Attribute({description:"Minimum value"}),(0,Ie.__metadata)("design:type",String)],ot.prototype,"minValue",void 0);(0,Ie.__decorate)([u.Attribute({description:"Maximum value"}),(0,Ie.__metadata)("design:type",String)],ot.prototype,"maxValue",void 0);ot=(0,Ie.__decorate)([u({name:"datetimestring",description:"DateTime string value",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18T22:30:15+01:00","Full date-time value with timezone").Example("2021-04-18T22:30:15","Full date-time value without timezone").Example("2021-04-18 22:30","Date-time value").Example("2021-04-18","Date value").Example("2021-04","Date value without day").Example("2021","Year only value"),(0,Ie.__metadata)("design:paramtypes",[Object])],ot);var P=require("tslib"),Qn=require("valgen");var Lt,G=(Lt=class{constructor(e){e&&Object.assign(this,e)}[E](e){return Qn.vg.isEmail({...e,coerce:!0})}[O](e){return Qn.vg.isEmail({...e,coerce:!0})}},a(Lt,"EmailType"),Lt);(0,P.__decorate)([u.Attribute({description:"If set to `true`, the validator will also match `Display Name <email-address>",default:!1}),(0,P.__metadata)("design:type",Boolean)],G.prototype,"allowDisplayName",void 0);(0,P.__decorate)([u.Attribute({description:"If set to `true`, the validator will reject strings without the format `Display Name <email-address>",default:!1}),(0,P.__metadata)("design:type",Boolean)],G.prototype,"requireDisplayName",void 0);(0,P.__decorate)([u.Attribute({description:"If set to `false`, the validator will not allow any non-English UTF8 character in email address's local part",default:!0}),(0,P.__metadata)("design:type",Boolean)],G.prototype,"utf8LocalPart",void 0);(0,P.__decorate)([u.Attribute({description:"If set to `true`, the validator will not check for the standard max length of an email",default:!1}),(0,P.__metadata)("design:type",Boolean)],G.prototype,"ignoreMaxLength",void 0);(0,P.__decorate)([u.Attribute({description:"If set to `true`, the validator will allow IP addresses in the host part",default:!1}),(0,P.__metadata)("design:type",Boolean)],G.prototype,"allowIpDomain",void 0);(0,P.__decorate)([u.Attribute({description:"If set to `true`, some additional validation will be enabled, e.g. disallowing certain syntactically valid email addresses that are rejected by GMail.",default:!1}),(0,P.__metadata)("design:type",Boolean)],G.prototype,"domainSpecificValidation",void 0);(0,P.__decorate)([u.Attribute({description:"If set to an array of strings and the part of the email after the @ symbol one of the strings defined in it, the validation fails."}),(0,P.__metadata)("design:type",Array)],G.prototype,"hostBlacklist",void 0);(0,P.__decorate)([u.Attribute({description:"If set to an array of strings and the part of the email after the @ symbol matches none of the strings defined in it, the validation fails."}),(0,P.__metadata)("design:type",Array)],G.prototype,"hostWhitelist",void 0);(0,P.__decorate)([u.Attribute({description:"If set to a string, then the validator will reject emails that include any of the characters in the string, in the name part."}),(0,P.__metadata)("design:type",String)],G.prototype,"blacklistedChars",void 0);G=(0,P.__decorate)([u({name:"email",description:"An email value",nameMappings:{js:"string",json:"string"}}).Example("some.body@example.com"),(0,P.__metadata)("design:paramtypes",[Object])],G);var Pe=require("tslib"),jt=require("valgen");var kt,K=(kt=class{constructor(e){e&&Object.assign(this,e)}[E](e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),n=e.allowSigns,s=(0,jt.validator)("decodeFieldPath",p=>i.normalizeFieldPath(p,{allowSigns:n,scope:r}));return jt.vg.pipe([jt.toString,s])}[O](e,t,r){return this[E](e,t,r)}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");x.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),allowSigns:e.allowSigns}}},a(kt,"FieldPathType"),kt);(0,Pe.__decorate)([u.Attribute({description:"Data type which field belong to"}),(0,Pe.__metadata)("design:type",Object)],K.prototype,"dataType",void 0);(0,Pe.__decorate)([u.Attribute({description:'Determines if signs (+,-) are allowed. If set "first" signs are allowed only beginning of the field pathIf set "each" signs are allowed at each field in the path'}),(0,Pe.__metadata)("design:type",String)],K.prototype,"allowSigns",void 0);K=(0,Pe.__decorate)([u({name:"fieldpath",description:"Field path",nameMappings:{js:"string",json:"string"}}),(0,Pe.__metadata)("design:paramtypes",[Object])],K);var Le=require("tslib"),Xn=require("valgen");var Ut={};vi(Ut,{$and:()=>cc,$arithmetic:()=>Dc,$array:()=>Da,$date:()=>lc,$eq:()=>dc,$field:()=>uc,$gt:()=>yc,$gte:()=>Tc,$ilike:()=>Rc,$in:()=>xc,$like:()=>gc,$lt:()=>Ec,$lte:()=>_c,$ne:()=>hc,$notILike:()=>Ac,$notIn:()=>Oc,$notLike:()=>wc,$number:()=>mc,$or:()=>pc,$paren:()=>bc,$time:()=>fc,ArithmeticExpression:()=>Ge,ArithmeticExpressionItem:()=>Xr,ArrayExpression:()=>xe,Ast:()=>_r,BooleanLiteral:()=>Qe,ComparisonExpression:()=>ye,DateLiteral:()=>Se,DateTimeLiteral:()=>gr,Expression:()=>$,FilterTreeVisitor:()=>Ar,Literal:()=>v,LogicalExpression:()=>Te,NegativeExpression:()=>xr,NullLiteral:()=>Xe,NumberLiteral:()=>ge,OpraErrorListener:()=>br,ParenthesizedExpression:()=>Oe,QualifiedIdentifier:()=>se,StringLiteral:()=>Ze,Term:()=>Ye,TimeLiteral:()=>He,parse:()=>Mn});function pc(...o){return new Te({op:"or",items:o})}a(pc,"$or");function cc(...o){return new Te({op:"and",items:o})}a(cc,"$and");function lc(o){return new Se(o)}a(lc,"$date");function fc(o){return new He(o)}a(fc,"$time");function mc(o){return new ge(o)}a(mc,"$number");function Da(...o){return new xe(o.map(hi))}a(Da,"$array");function uc(o){return new se(o)}a(uc,"$field");function dc(o,e){return pe("=",o,e)}a(dc,"$eq");function hc(o,e){return pe("!=",o,e)}a(hc,"$ne");function yc(o,e){return pe(">",o,e)}a(yc,"$gt");function Tc(o,e){return pe(">=",o,e)}a(Tc,"$gte");function Ec(o,e){return pe("<",o,e)}a(Ec,"$lt");function _c(o,e){return pe("<=",o,e)}a(_c,"$lte");function xc(o,e){return pe("in",o,e)}a(xc,"$in");function Oc(o,e){return pe("!in",o,e)}a(Oc,"$notIn");function gc(o,e){return pe("like",o,e)}a(gc,"$like");function wc(o,e){return pe("!like",o,e)}a(wc,"$notLike");function Rc(o,e){return pe("ilike",o,e)}a(Rc,"$ilike");function Ac(o,e){return pe("!ilike",o,e)}a(Ac,"$notILike");function bc(o){return new Oe(o)}a(bc,"$paren");function Dc(o){let e=new Ge;return e.add=t=>(e.append("+",Ct(t)),e),e.sub=t=>(e.append("-",Ct(t)),e),e.mul=t=>(e.append("*",Ct(t)),e),e.div=t=>(e.append("/",Ct(t)),e),e.append("+",hi(o)),e}a(Dc,"$arithmetic");function pe(o,e,t){let r=typeof e=="string"?new se(e):hi(e),i=hi(t);return new ye({op:o,left:r,right:i})}a(pe,"comparisonExpression");var hi=a(o=>Array.isArray(o)?Da(...o.map(Ct)):Ct(o),"wrapEntryValue"),Ct=a(o=>o instanceof $?o:typeof o=="boolean"?new Qe(o):typeof o=="number"||typeof o=="bigint"?new ge(o):o==null?new Xe:o instanceof Date?new Se(o):new Ze(""+o),"_wrapEntryValue");var $t,we=($t=class{constructor(e){e&&Object.assign(this,e)}[E](e,t){let r=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),i=e.rules?new _t(e.rules):void 0;return Nc(r,i)}[O](){return Sc}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");x.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),rules:e.rules}}},a($t,"FilterType"),$t);(0,Le.__decorate)([u.Attribute({description:"Data type which filtering fields belong to"}),(0,Le.__metadata)("design:type",Object)],we.prototype,"dataType",void 0);(0,Le.__decorate)([u.Attribute({description:"Stringified JSON object defines filtering rules",format:"string"}),(0,Le.__metadata)("design:type",Object)],we.prototype,"rules",void 0);we=(0,Le.__decorate)([u({name:"filter",description:"A query filter",nameMappings:{js:"object",json:"string"}}),(0,Le.__metadata)("design:paramtypes",[Object])],we);var Nc=a((o,e,t)=>(0,Xn.validator)("decodeFilter",(r,i,n)=>{if(typeof r=="string")try{let s=Ut.parse(r);return e?e.normalizeFilter(s,o,t):s}catch(s){i.fail(n,`Not a valid filter expression. ${s.message}`,r);return}i.fail(n,"Nt a valid filter expression string",r)}),"decodeFilter"),Sc=(0,Xn.validator)("encodeFilter",(o,e,t)=>{if(o instanceof Ut.Ast)return o.toString();e.fail(t,"Not a valid filter expression",o)});var yi=require("tslib"),Zn=require("valgen");var Bt,Pr=(Bt=class{constructor(e){e&&Object.assign(this,e)}[E](){return Zn.vg.isObjectId({coerce:!0})}[O](){return Zn.vg.isObjectId({coerce:!0})}},a(Bt,"ObjectIdType"),Bt);Pr=(0,yi.__decorate)([u({name:"ObjectId",description:"A MongoDB ObjectID value",nameMappings:{js:"object",json:"string"}}),(0,yi.__metadata)("design:paramtypes",[Object])],Pr);var L=require("tslib");var es=require("@jsopen/objects"),Sa=require("ts-gems");var Na=require("@jsopen/objects");function Hn(o){let e=[],t=a(function(r,i){if(typeof i!="string")throw new TypeError("Symbol properties can't be used as a field");let n=Reflect.getOwnMetadata(h,r.constructor)||{};n.kind=m.ComplexType.Kind,n.fields=n.fields||{};let s=Reflect.getMetadata("design:type",r,i),p=n.fields[i]={...o};s===Array?p.isArray=!0:p.type=p.type||s,Reflect.defineMetadata(h,n,r.constructor);for(let c of e)c(p)},"decorator");return t.Override=(r,i)=>(e.push(n=>{n.override=n.override||[],n.override.push((0,Na.omitUndefined)({...i,scopePattern:Array.isArray(r)?r:[r],type:void 0,isArray:void 0,isNestedEntity:void 0}))}),t),t}a(Hn,"ApiFieldDecoratorFactory");var k=a(function(...o){if(!this){let[n]=o;return k[D](n)}let[e,t]=o;R.call(this,e);let r=(0,Sa.asMutable)(this);r.name=t.name;let i=t.origin||e;if(!(i instanceof j))throw new Error("Field origin should be one of ComplexType, MappedType or MixinType");r.origin=i,r.scopePattern=t.scopePattern?Array.isArray(t.scopePattern)?t.scopePattern:[t.scopePattern]:void 0,r.type=t.type||e.node.getDataType("any"),r.description=t.description,r.isArray=t.isArray,r.isNestedEntity=t.isNestedEntity,r.default=t.default,r.fixed=t.fixed,r.required=t.required,r.exclusive=t.exclusive,r.localization=t.localization,r.keyField=t.keyField,r.deprecated=t.deprecated,r.readonly=t.readonly,r.writeonly=t.writeonly,r.examples=t.examples,r.override=t.override},"ApiField"),rs=class rs extends R{inScope(e){return Sr(e,this.scopePattern)}forScope(e){if(!(e&&this.override))return this;this._overrideCache=this._overrideCache||{};let t=this._overrideCache[e];if(t)return t;if(e!=="*"){for(let r of this.override)if(Sr(e,r.scopePattern)){t=(0,es.omitUndefined)({...r,id:void 0,owner:void 0,node:void 0,origin:void 0,name:void 0,type:void 0,override:void 0,_overrideCache:void 0,scopePattern:r.scopePattern}),Object.setPrototypeOf(t,this);break}}return t=t||this,this._overrideCache[e]=t,t}toJSON(e){var r;let t=this.type?this.node.getDataTypeNameWithNs(this.type):void 0;return(0,es.omitUndefined)({type:t||((r=this.type)==null?void 0:r.toJSON(e)),description:this.description,isArray:this.isArray||void 0,isNestedEntity:this.isNestedEntity||void 0,default:this.default,fixed:this.fixed,required:this.required||void 0,exclusive:this.exclusive||void 0,localization:this.localization||void 0,keyField:this.keyField||void 0,deprecated:this.deprecated||void 0,readonly:this.readonly||void 0,writeonly:this.writeonly||void 0,examples:this.examples})}};a(rs,"ApiFieldClass");var ts=rs;k.prototype=ts.prototype;Object.assign(k,Hn);k[D]=Hn;var ey=require("reflect-metadata"),Ma=require("@jsopen/objects"),va=require("ts-gems");var is=class is extends de{constructor(){super(""),this.details=[]}add(e){return this.details.push(e),this}};a(is,"OpraDocumentError");var nt=is;var os=class os{constructor(e){this.path="",this.error=new nt,this.showErrorDetails=!0,this.maxErrors=(e==null?void 0:e.maxErrors)||0,this.error.message=""}addError(e){if(!this.error.details.length)if(e instanceof Error)this.error.stack=e.stack;else{let t=new Error;Error.captureStackTrace(t,this.addError),this.error.stack=t.stack}if(this.error.add({message:typeof e=="string"?e:e.message,path:this.path,...typeof e=="object"?e:void 0}),this.error.details.length>=this.maxErrors)throw this.error}enter(e,t){let r=this.path;this.path=this.path+e;try{return t()}catch(i){i!==this.error&&this.addError(i)}finally{this.path=r}}async enterAsync(e,t){let r=this.path;this.path=this.path+e;try{return await t()}catch(i){i!==this.error&&this.addError(i)}finally{this.path=r}}extend(e){let t={...e};return Object.setPrototypeOf(t,this),t}};a(os,"DocumentInitContext");var me=os;var Fa=require("@jsopen/objects");function ns(o){return function(e){let t;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!C.test(o.name))throw new TypeError(`"${o.name}" is not a valid type name`);t=o.name}else t=e.name;let r=Reflect.getOwnMetadata(h,e);r||(r={},Reflect.defineMetadata(h,r,e)),r.kind=m.ComplexType.Kind,r.name=t,o&&Object.assign(r,(0,Fa.omit)(o,["name"]))}}a(ns,"ComplexTypeDecorator");var te=a(function(...o){var n;if(!this)return te[D].apply(void 0,o);let[e,t]=o,r=o[2]||new me({maxErrors:0});j.call(this,e,t,r);let i=(0,va.asMutable)(this);i.kind=m.ComplexType.Kind,i.discriminatorField=t.discriminatorField,i.discriminatorValue=t.discriminatorValue,t.base&&r.enter(".base",()=>{if(!(t.base instanceof j))throw new TypeError(`"${t.base.kind}" can't be set as base for a "${this.kind}"`);i.base=t.base,i.additionalFields=i.base.additionalFields,i.keyField=i.base.keyField;for(let s of i.base.fields("*"))i._fields.set(s.name,new k(this,s))}),t.additionalFields!==void 0&&(i.additionalFields=t.additionalFields),t.keyField!==void 0&&(i.keyField=t.keyField),i.ctor=t.ctor||((n=i.base)==null?void 0:n.ctor),t.fields&&r.enter(".fields",()=>{for(let[s,p]of Object.entries(t.fields)){let c=new k(this,{...p,name:s});this._fields.set(c.name,c)}})},"ComplexType"),as=class as extends j{extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof j?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0,i={...t,kind:this.kind,base:this.base?r||this.base.toJSON(e):void 0,discriminatorField:this.discriminatorField,discriminatorValue:this.discriminatorValue};if(this.additionalFields)if(this.additionalFields instanceof x){let n=this.node.getDataTypeNameWithNs(this.additionalFields);i.additionalFields=n||this.additionalFields.toJSON(e)}else i.additionalFields=this.additionalFields;if(this._fields.size){let n={},s=0;for(let p of this._fields.values())p.origin===this&&p.inScope(e==null?void 0:e.scope)&&(n[p.name]=p.toJSON(e),s++);s&&(i.fields=n)}return(0,Ma.omitUndefined)(i)}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(as,"ComplexTypeClass");var ss=as;te.prototype=ss.prototype;Object.assign(te,ns);te[D]=ns;var qt,Q=(qt=class{constructor(e){e&&Object.assign(this,e)}},a(qt,"OperationResult"),qt);(0,L.__decorate)([k(),(0,L.__metadata)("design:type",Number)],Q.prototype,"affected",void 0);(0,L.__decorate)([k(),(0,L.__metadata)("design:type",Number)],Q.prototype,"totalMatches",void 0);(0,L.__decorate)([k(),(0,L.__metadata)("design:type",String)],Q.prototype,"context",void 0);(0,L.__decorate)([k(),(0,L.__metadata)("design:type",String)],Q.prototype,"type",void 0);(0,L.__decorate)([k(),(0,L.__metadata)("design:type",String)],Q.prototype,"message",void 0);(0,L.__decorate)([k({type:"any"}),(0,L.__metadata)("design:type",Object)],Q.prototype,"payload",void 0);(0,L.__decorate)([k({type:"object"}),(0,L.__metadata)("design:type",Array)],Q.prototype,"errors",void 0);Q=(0,L.__decorate)([te({name:"OperationResult",description:"Operation result"}),(0,L.__metadata)("design:paramtypes",[Object])],Q);(function(o){function e(t){var i;let r=(i=class extends o{constructor(...s){super(...s)}},a(i,"OperationResult_"),i);return(0,L.__decorate)([k({type:t,required:!0}),(0,L.__metadata)("design:type",Object)],r.prototype,"payload",void 0),r=(0,L.__decorate)([te({embedded:!0}),(0,L.__metadata)("design:paramtypes",[Object])],r),r}a(e,"forPayload"),o.forPayload=e})(Q||(Q={}));var ke=require("tslib"),Lr=require("valgen");var Fc=/^([0-1][0-9]|2[0-4]):([0-5][0-9])(?::([0-5][0-9]))?$/,Kt,st=(Kt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=Lr.vg.matches(Fc,{formatName:"time",coerce:!0}),r=[];return e.minValue&&r.push(Lr.vg.isGte(e.minValue)),e.maxValue&&r.push(Lr.vg.isLte(e.maxValue)),r.length>0?Lr.vg.pipe([t,...r],{returnIndex:0}):t}[O](e){return this[E](e)}},a(Kt,"TimeType"),Kt);(0,ke.__decorate)([u.Attribute({description:"Minimum value"}),(0,ke.__metadata)("design:type",String)],st.prototype,"minValue",void 0);(0,ke.__decorate)([u.Attribute({description:"Maximum value"}),(0,ke.__metadata)("design:type",String)],st.prototype,"maxValue",void 0);st=(0,ke.__decorate)([u({name:"time",description:"Time string in 24h format",nameMappings:{js:"string",json:"string"}}).Example("18:23:00","Full time value").Example("18:23:00","Time value without seconds"),(0,ke.__metadata)("design:paramtypes",[Object])],st);var Ti=require("tslib"),ps=require("valgen");var Vt,kr=(Vt=class{constructor(e){e&&Object.assign(this,e)}[E](){return ps.vg.isURL({coerce:!0})}[O](){return ps.vg.isURL({coerce:!0})}},a(Vt,"UrlType"),Vt);kr=(0,Ti.__decorate)([u({name:"url",description:"A Uniform Resource Identifier Reference (RFC 3986 icon) value",nameMappings:{js:"string",json:"string"}}).Example("http://tempuri.org"),(0,Ti.__metadata)("design:paramtypes",[Object])],kr);var Wt=require("tslib"),cs=require("valgen");var zt,Jt=(zt=class{constructor(e){e&&Object.assign(this,e)}[E](e){return cs.vg.isUUID(e==null?void 0:e.version,{coerce:!0})}[O](e){return cs.vg.isUUID(e==null?void 0:e.version,{coerce:!0})}},a(zt,"UuidType"),zt);(0,Wt.__decorate)([u.Attribute({description:"Version of the UUID"}),(0,Wt.__metadata)("design:type",Number)],Jt.prototype,"version",void 0);Jt=(0,Wt.__decorate)([u({name:"uuid",description:"A Universal Unique Identifier (UUID) value",nameMappings:{js:"string",json:"string"}}),(0,Wt.__metadata)("design:paramtypes",[Object])],Jt);var La=fr(require("path-browserify"),1),ka=require("@jsopen/objects"),ja=require("ts-gems");var Ia,Pa,ce=Symbol.for("kMap"),jr=Symbol.for("kCtorMap"),ls=class ls{constructor(){this[Ia]=new F,this[Pa]=new WeakMap}get size(){return this[ce].size}forEach(e,t){this[ce].forEach(e,t)}get(e){let t=typeof e=="string"?e:this[jr].get(e);if(!t&&typeof e=="function"){let i=Reflect.getMetadata(h,e);t=i==null?void 0:i.name}if(!t&&typeof e=="object"){let i=e[h];t=i==null?void 0:i.name}if(!t)return;let r=this[ce].get(t);if(r)return typeof e=="function"&&r.kind==="ComplexType"?r.ctor===e?r:void 0:r}set(e,t){this[ce].set(e,t),t.ctor?this[jr].set(t.ctor,e):t.instance&&this[jr].set(t.instance,e)}has(e){if(e instanceof x)return!!e.name&&this[ce].has(e.name);let t=typeof e=="string"?e:this[jr].get(e);return t?this[ce].has(t):!1}keys(){return this[ce].keys()}values(){return this[ce].values()}entries(){return this[ce].entries()}sort(e){return this[ce].sort(e),this}[(Ia=ce,Pa=jr,Symbol.iterator)](){return this[ce][Symbol.iterator]()}};a(ls,"DataTypeMap");var re=ls;function S(o,e){let t=a((r,i)=>{if(typeof i!="string")throw new TypeError("Symbol properties can not be decorated");let n={...e,kind:m.HttpOperation.Kind},s=Reflect.getOwnMetadata(oe,r.constructor)||{};s.operations=s.operations||{},s.operations[i]=n;for(let p of o)p(n);Reflect.defineMetadata(oe,s,r.constructor)},"decorator");return t.Cookie=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"cookie",type:i}:{...i,name:r,location:"cookie"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="cookie"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.Header=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"header",type:i}:{...i,name:r,location:"header"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="header"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.QueryParam=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"query",type:i}:{...i,name:r,location:"query"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="query"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.PathParam=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"path",type:i}:{...i,name:r,location:"path"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="path"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.Response=(r,i)=>{let n={...i,statusCode:r};return n.type&&(n.contentType=n.contentType||b.opra_response_json,n.contentEncoding=n.contentEncoding||"utf-8"),n.contentType===b.opra_response_json&&(n.contentEncoding=n.contentEncoding||"utf-8"),o.push(s=>{s.responses=s.responses||[],s.responses.push(n)}),t},t.RequestContent=function(r){let i=typeof r=="object"?r:{type:r};return i.type&&(i.contentType=i.contentType||b.json,i.contentEncoding=i.contentEncoding||"utf-8"),o.push(n=>{n.requestBody=n.requestBody||{required:!0,content:[]},n.requestBody.content=n.requestBody.content||[],n.requestBody.content.push(i)}),t},t.MultipartContent=function(r,i){let n={...r,contentType:(r==null?void 0:r.contentType)||"multipart/form-data"};if(o.push(s=>{s.requestBody=s.requestBody||{required:!0,content:[]},s.requestBody.content=s.requestBody.content||[],s.requestBody.content.push(n)}),i){let s={Field(p,c){return n.multipartFields=n.multipartFields||[],n.multipartFields.push({fieldName:p,fieldType:"field",...c}),s},File(p,c){return n.multipartFields=n.multipartFields||[],n.multipartFields.push({fieldName:p,fieldType:"file",...c}),s}};i(s)}return t},t.UseType=(...r)=>(o.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),t}a(S,"HttpOperationDecoratorFactory");var A=a(function(...o){if(!this){let[i]=o,n=[];return A[D].call(void 0,n,i)}let[e,t]=o;if(R.call(this,e),!C.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,ja.asMutable)(this);r.parameters=[],r.responses=[],r.types=r.node[U]=new re,r.name=t.name,r.path=t.path,r.mergePath=t.mergePath,r.method=t.method||"GET",r.description=t.description,r.composition=t.composition,r.compositionOptions=t.compositionOptions?M(t.compositionOptions):void 0},"HttpOperation"),ms=class ms extends R{findParameter(e,t){let r=e.toLowerCase(),i;for(i of this.parameters)if(!(t&&t!==i.location)&&(typeof i.name=="string"&&(i._nameLower=i._nameLower||i.name.toLowerCase(),i._nameLower===r)||i.name instanceof RegExp&&i.name.test(e)))return i}getFullUrl(){let e=this.owner.getFullUrl();return e?this.path?this.mergePath?e+this.path:La.default.posix.join(e,this.path):e:this.path||"/"}toJSON(e){var r;let t=(0,ka.omitUndefined)({kind:m.HttpOperation.Kind,description:this.description,method:this.method,path:this.path,mergePath:this.mergePath,composition:this.composition,requestBody:(r=this.requestBody)==null?void 0:r.toJSON(e)});if(this.types.size){t.types={};for(let i of this.types.values())t.types[i.name]=i.toJSON(e)}if(this.parameters.length){t.parameters=[];for(let i of this.parameters)t.parameters.push(i.toJSON(e))}return this.responses.length&&(t.responses=this.responses.map(i=>i.toJSON(e))),t}};a(ms,"HttpOperationClass");var fs=ms;A.prototype=fs.prototype;A[D]=S;A.GET=function(o){return S([],{...o,method:"GET"})};A.DELETE=function(o){return S([],{...o,method:"DELETE"})};A.HEAD=function(o){return S([],{...o,method:"HEAD"})};A.OPTIONS=function(o){return S([],{...o,method:"OPTIONS"})};A.PATCH=function(o){return S([],{...o,method:"PATCH"})};A.POST=function(o){return S([],{...o,method:"POST"})};A.PUT=function(o){return S([],{...o,method:"PUT"})};A.SEARCH=function(o){return S([],{...o,method:"SEARCH"})};A.Entity={};function z(o){if(typeof o=="string")return o;let e=Reflect.getMetadata(h,o);if(!e)throw new TypeError(`Type (${o}) is not decorated with any datatype decorators`);if(e!=null&&e.name)return e.name;throw new TypeError("You should provide named data type but embedded one found")}a(z,"getDataTypeName");function je(o,e){return(t,r)=>{let i=typeof r=="string"||typeof r=="function"?{name:t,location:"path",type:r,keyParam:!0}:{...r,name:t,location:"path",keyParam:!0};return o.PathParam(t,i),e.push(n=>{var s;(s=n.path)!=null&&s.includes(":"+t)||(n.path=(n.path||"")+"@:"+t),n.mergePath=!0}),o}}a(je,"createKeyParamDecorator");function Ca(o,e){return(...t)=>{let r=typeof t[0]=="object"?t[0]:t.reduce((s,p)=>{let c=p.split(":");return s[c[0]]=c[1]||c[0],s},{}),i=Object.keys(r).reduce((s,p)=>{let c=St.exec(p),f=St.exec(r[p]);return c&&f&&(s[c[2]]=f[2]),s},{}),n=Object.keys(r).reduce((s,p)=>{let c=St.exec(p);return c&&(c[1]!="-"&&(s[c[2]]=c[2]),c[1]!="+"&&(s["-"+c[2]]="-"+c[2])),s},{});return e.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.sortFields=i}),o.QueryParam("sort",{description:"Determines sort fields",type:ee(n),isArray:!0,arraySeparator:",",parser:a(s=>s.map(p=>{let c=St.exec(p);return c?(c[1]||"")+i[c[2]]:p}),"parser")}),o}}a(Ca,"createSortFieldsDecorator");function Ce(o,e,t){let r=Reflect.getMetadata("FilterRules",o);r||(r=new _t,Reflect.defineMetadata("FilterRules",r,o));let i=Reflect.getMetadata("FilterType",o);return i||(i=new we({dataType:t}),i.rules={},Reflect.defineMetadata("FilterType",i,o)),(n,s)=>{let p=(Array.isArray(s)?{operators:s}:typeof s=="string"?{operators:s.split(/\s*,\s*/)}:s)||{};if(p.operators=p.operators||["=","!="],n.includes(":")){let c=n.split(":");n=c[0],p.mappedField=c[1]}return e.push(()=>{r.set(n,p),i.rules=r.toJSON()}),o.QueryParam("filter",{type:i,description:"Determines filter fields"}),o}}a(Ce,"createFilterDecorator");A.Entity.Create=function(o,e){var n;let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=S(r,{method:"POST",...t,composition:"Entity.Create",requestBody:{immediateFetch:!0,...t.requestBody,required:!0}});return i.QueryParam("projection",{description:"Determines fields projection",type:new K({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(w.CREATED,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the created resource.',contentType:b.opra_response_json,type:t.type,partial:"deep"}).Response(w.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:b.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=z(t.type)}),i};A.Entity.Delete=function(o,e){let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=S(r,{method:"DELETE",...t,composition:"Entity.Delete"});return i.Response(w.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:b.opra_response_json}).Response(w.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:b.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=z(t.type)}),i.KeyParam=je(i,r),i};A.Entity.DeleteMany=function(o,e){let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=S(r,{method:"DELETE",...t,composition:"Entity.DeleteMany"});return i.Response(w.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:b.opra_response_json}).Response(w.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:b.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=z(t.type)}),i.Filter=Ce(i,r,t.type),i};var Ei=require("tslib"),us=require("valgen");var Yt,Cr=(Yt=class{constructor(e){e&&Object.assign(this,e)}[E](){return us.isAny}[O](){return us.isAny}},a(Yt,"AnyType"),Yt);Cr=(0,Ei.__decorate)([u({name:"any",description:"Represents any value"}),(0,Ei.__metadata)("design:paramtypes",[Object])],Cr);var _i=require("tslib"),pt=require("valgen");var Ue=require("tslib"),at=require("valgen");var Gt,ue=(Gt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=[];return e.minValue&&t.push(at.vg.isGte(e.minValue)),e.maxValue&&t.push(at.vg.isLte(e.maxValue)),t.length>0?at.vg.pipe([at.toNumber,...t],{returnIndex:0}):at.toNumber}[O](e){return this[E](e)}},a(Gt,"NumberType"),Gt);(0,Ue.__decorate)([u.Attribute({description:"Determines the minimum value"}),(0,Ue.__metadata)("design:type",Number)],ue.prototype,"minValue",void 0);(0,Ue.__decorate)([u.Attribute({description:"Determines the maximum value"}),(0,Ue.__metadata)("design:type",Number)],ue.prototype,"maxValue",void 0);ue=(0,Ue.__decorate)([u({name:"number",description:"Both Integer as well as Floating-Point numbers",nameMappings:{js:"number",json:"number"}}),(0,Ue.__metadata)("design:paramtypes",[Object])],ue);var Qt,Ur=(Qt=class extends ue{constructor(e){super(e)}[E](e){let t=[];return e.minValue&&t.push(pt.vg.isGte(e.minValue)),e.maxValue&&t.push(pt.vg.isLte(e.maxValue)),t.length>0?pt.vg.pipe([pt.toBigint,...t],{returnIndex:0}):pt.toBigint}[O](e){return this[E](e)}},a(Qt,"BigintType"),Qt);Ur=(0,_i.__decorate)([u({name:"bigint",description:"BigInt number",nameMappings:{js:"bigint",json:"string"}}),(0,_i.__metadata)("design:paramtypes",[Object])],Ur);var xi=require("tslib"),ds=require("valgen");var Xt,$r=(Xt=class{constructor(e){e&&Object.assign(this,e)}[E](){return ds.toBoolean}[O](){return ds.toBoolean}},a(Xt,"BooleanType"),Xt);$r=(0,xi.__decorate)([u({name:"boolean",description:"Simple true/false value",nameMappings:{js:"boolean",json:"boolean"}}),(0,xi.__metadata)("design:paramtypes",[Object])],$r);var Oi=require("tslib"),ct=require("valgen");var Zt,$e=(Zt=class extends ue{constructor(e){super(e)}[E](e){let t=[];return e.minValue&&t.push(ct.vg.isGte(e.minValue)),e.maxValue&&t.push(ct.vg.isLte(e.maxValue)),t.length>0?ct.vg.pipe([ct.toInteger,...t],{returnIndex:0}):ct.toInteger}[O](e){return this[E](e)}},a(Zt,"IntegerType"),Zt);$e=(0,Oi.__decorate)([u({name:"integer",description:"An integer number",nameMappings:{js:"number",json:"number"}}),(0,Oi.__metadata)("design:paramtypes",[Object])],$e);var gi=require("tslib"),hs=require("valgen");var Ht,Br=(Ht=class{constructor(e){e&&Object.assign(this,e)}[E](){return hs.isNull}[O](){return hs.isNull}},a(Ht,"NullType"),Ht);Br=(0,gi.__decorate)([u({name:"null",description:"A Null value",nameMappings:{js:"null",json:"null"}}),(0,gi.__metadata)("design:paramtypes",[Object])],Br);var wi=require("tslib");var er,qr=(er=class{constructor(e){e&&Object.assign(this,e)}},a(er,"ObjectType"),er);qr=(0,wi.__decorate)([te({name:"object",description:"A non modelled object",additionalFields:!0}),(0,wi.__metadata)("design:paramtypes",[Object])],qr);var le=require("tslib"),Be=require("valgen");var tr,Re=(tr=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=[];if(e.pattern){let r=e.patternName;r||(r=Reflect.getMetadata(h,Object.getPrototypeOf(this).constructor).name),t.push(Be.vg.matches(e.pattern,{formatName:r}))}return e.minLength&&t.push(Be.vg.lengthMin(e.minLength)),e.maxLength&&t.push(Be.vg.lengthMax(e.maxLength)),t.length>0?Be.vg.pipe([Be.toString,...t],{returnIndex:0}):Be.toString}[O](e){return this[E](e)}},a(tr,"StringType"),tr);(0,le.__decorate)([u.Attribute({description:"Regex pattern to be used for validation"}),(0,le.__metadata)("design:type",Object)],Re.prototype,"pattern",void 0);(0,le.__decorate)([u.Attribute({description:"Name of the pattern"}),(0,le.__metadata)("design:type",String)],Re.prototype,"patternName",void 0);(0,le.__decorate)([u.Attribute({description:"Minimum number of characters"}),(0,le.__metadata)("design:type",Number)],Re.prototype,"minLength",void 0);(0,le.__decorate)([u.Attribute({description:"Minimum number of characters"}),(0,le.__metadata)("design:type",Number)],Re.prototype,"maxLength",void 0);Re=(0,le.__decorate)([u({name:"string",description:"A sequence of characters",nameMappings:{js:"string",json:"string"}}),(0,le.__metadata)("design:paramtypes",[Object])],Re);A.Entity.FindMany=function(o,e){let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=S(r,{method:"GET",...t,composition:"Entity.FindMany"});return i.Response(w.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains list of resources.',contentType:b.opra_response_json,type:t.type,partial:"deep",isArray:!0}).Response(w.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:b.opra_response_json}).QueryParam("limit",{description:"Determines number of returning instances",type:new $e({minValue:1,maxValue:t.maxLimit})}).QueryParam("skip",{description:"Determines number of returning instances",type:new $e({minValue:1})}).QueryParam("count",{description:"Counts all matching instances if enabled",type:Boolean}).QueryParam("projection",{description:"Determines fields projection",type:new K({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=z(t.type),t.defaultLimit&&(s.defaultLimit=t.defaultLimit),t.defaultProjection&&(s.defaultProjection=t.defaultProjection),t.maxLimit&&(s.maxLimit=t.maxLimit)}),i.Filter=Ce(i,r,t.type),i.DefaultSort=(...n)=>(r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.defaultSort=n}),i),i.SortFields=Ca(i,r),i};A.Entity.Get=function(o,e){let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=S(r,{method:"GET",...t,composition:"Entity.Get"});return i.QueryParam("projection",{description:"Determines fields projection",type:new K({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).Response(w.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the resource asked for.',contentType:b.opra_response_json,type:t.type,partial:"deep"}).Response(w.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(w.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:b.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=z(t.type)}),i.KeyParam=je(i,r),i};A.Entity.Replace=function(o,e){let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=S(r,{method:"POST",...t,composition:"Entity.Replace"});return i.QueryParam("projection",{description:"Determines fields projection",type:new K({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).Response(w.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the resource asked for.',contentType:b.opra_response_json,type:t.type,partial:"deep"}).Response(w.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(w.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:b.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=z(t.type)}),i.KeyParam=je(i,r),i};A.Entity.Update=function(o,e){var n;let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=S(r,{method:"PATCH",...t,composition:"Entity.Update",requestBody:{partial:"deep",immediateFetch:!0,allowPatchOperators:!0,keepKeyFields:!0,...t.requestBody,required:!0}});return i.QueryParam("projection",{description:"Determines fields projection",type:new K({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(w.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains updated resource.',contentType:b.opra_response_json,type:t.type,partial:"deep"}).Response(w.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(w.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:b.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=z(t.type)}),i.KeyParam=je(i,r),i.Filter=Ce(i,r,t.type),i};A.Entity.UpdateMany=function(o,e){var n;let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=S(r,{method:"PATCH",...t,composition:"Entity.UpdateMany",requestBody:{immediateFetch:!0,partial:"deep",allowPatchOperators:!0,keepKeyFields:!0,...t.requestBody,required:!0}});return i.RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(w.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:b.opra_response_json}).Response(w.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:b.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=z(t.type)}),i.Filter=Ce(i,r,t.type),i};var Ri=require("@jsopen/objects");var Mc=/^(.*)(Controller)$/,Ua=[];function rr(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=Mc.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(ne,Object.getPrototypeOf(r));s&&(0,Ri.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(ne,r);p&&(0,Ri.merge)(n,p,{deep:!0}),(0,Ri.merge)(n,{...o,kind:m.RpcController.Kind,name:i,path:i},{deep:!0}),Reflect.defineMetadata(ne,n,r);for(let f of e)f(n,r);Reflect.defineMetadata(ne,n,r)},"decorator");return t.Header=(r,i)=>(e.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,type:i}:{...i,name:r};n.headers=n.headers||[],n.headers.push(s)}),t),t.UseType=(...r)=>(e.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),Ua.forEach(r=>r(t,e,o)),t}a(rr,"RpcControllerDecoratorFactory");rr.augment=function(o){Ua.push(o)};var $a=require("@jsopen/objects");var Ba=[];function Kr(o,e,t){let r=!1,i=a((n,s)=>{if(typeof s!="string")throw new TypeError("Symbol properties can not be decorated");let p={kind:m.RpcOperation.Kind,channel:s,payloadType:e,...(0,$a.omit)(t,["kind","payloadType"])},c=Reflect.getOwnMetadata(ne,n.constructor)||{};c.operations=c.operations||{},c.operations[s]=p;for(let f of o)f(p,n,s);Reflect.defineMetadata(ne,c,n.constructor)},"decorator");return i.UseType=(...n)=>(o.push(s=>{s.types=s.types||[],s.types.push(...n)}),i),i.Header=(n,s)=>(o.push(p=>{let c=typeof s=="string"||typeof s=="function"?{name:n,type:s}:{...s,name:n},f=r?p.response:p;f.headers?f.headers=f.headers.filter(g=>String(g.name)!==String(n)):f.headers=[],f.headers.push(c)}),i),i.Response=(n,s)=>(o.push(p=>{r=!0,p.response={...s,payloadType:n}}),i),Ba.forEach(n=>n(i,o,e,t)),i}a(Kr,"RpcOperationDecoratorFactory");Kr.augment=function(o){Ba.push(o)};var e3=require("reflect-metadata"),qa=require("@jsopen/objects"),Ka=require("ts-gems");function Ai(o,e){let t=o==null?void 0:o.map(i=>String(i).toLowerCase()),r=e==null?void 0:e.map(i=>String(i).toLowerCase());return i=>r&&r.includes(i.toLowerCase())?!1:t?t.includes(i.toLowerCase()):!0}a(Ai,"getIsInheritedPredicateFn");var qe=a(function(...o){var n;if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;j.call(this,e,t,r);let i=(0,Ka.asMutable)(this);if(i.kind=m.MappedType.Kind,t.base){if(!(t.base instanceof j))throw new TypeError(`"${t.base.kind}" can't be set as base for a "${this.kind}"`);i.base=t.base,i.ctor=t.ctor||i.base.ctor,t.pick?i.pick=t.pick.map(f=>i.base.normalizeFieldPath(f)):t.omit?i.omit=t.omit.map(f=>i.base.normalizeFieldPath(f)):t.partial?i.partial=Array.isArray(t.partial)?t.partial.map(f=>i.base.normalizeFieldPath(f)):t.partial:t.required&&(i.required=Array.isArray(t.required)?t.required.map(f=>i.base.normalizeFieldPath(f)):t.required);let s=Ai(i.pick,i.omit),p=Array.isArray(i.partial)?i.partial.map(f=>f.toLowerCase()):i.partial,c=Array.isArray(i.required)?i.required.map(f=>f.toLowerCase()):i.required;for(let[f,g]of i.base.fieldEntries("*")){if(!s(f))continue;let d={...g};p===!0||Array.isArray(p)&&p.includes(g.name.toLowerCase())?d.required=!1:(c===!0||Array.isArray(c)&&c.includes(g.name.toLowerCase()))&&(d.required=!0);let X=new k(this,d);i._fields.set(X.name,X)}(!i.pick||i.base.additionalFields===!1||Array.isArray(i.base.additionalFields)&&((n=i.base.additionalFields)==null?void 0:n[0])==="error")&&(i.additionalFields=i.base.additionalFields),t.base.keyField&&s(t.base.keyField)&&(i.keyField=t.base.keyField),i.discriminatorField=t.base.discriminatorField,i.discriminatorValue=t.base.discriminatorValue}},"MappedType"),Ts=class Ts extends j{extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof j?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0;return(0,qa.omitUndefined)({...t,base:r||this.base.toJSON(e),kind:this.kind,pick:this.pick,omit:this.omit,partial:this.partial,required:this.required,discriminatorField:this.discriminatorField,discriminatorValue:this.discriminatorValue})}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(Ts,"MappedTypeClass");var ys=Ts;qe.prototype=ys.prototype;qe._applyMixin=()=>{};var p3=require("reflect-metadata"),Va=require("@jsopen/objects"),za=require("ts-gems");var lt=a(function(...o){if(!this)return lt[D].apply(void 0,o);let[e,t,r]=o;j.call(this,e,t,r);let i=(0,za.asMutable)(this);i.kind=m.MixinType.Kind,i.types=[];for(let n of t.types){i.additionalFields!==!0&&(n.additionalFields===!0?i.additionalFields=!0:i.additionalFields||(i.additionalFields=n.additionalFields));for(let s of n.fields("*")){let p=new k(this,s);i._fields.set(p.name,p)}i.types.push(n),n.keyField&&(i.keyField=n.keyField)}},"MixinType"),_s=class _s extends j{extendsFrom(e){if(e instanceof x||(e=this.node.getDataType(e)),!(e instanceof j))return!1;if(e===this)return!0;for(let t of this.types)if(t.extendsFrom(e))return!0;return!1}toJSON(e){let t=super.toJSON(e);return(0,Va.omitUndefined)({...t,kind:this.kind,types:this.types.map(r=>{let i=this.node.getDataTypeNameWithNs(r);return i||r.toJSON(e)})})}_locateBase(e){for(let t of this.types){if(e(t))return t;if(t._locateBase){let r=t._locateBase(e);if(r)return r}}}};a(_s,"MixinTypeClass");var Es=_s;lt.prototype=Es.prototype;lt[D]=Pc;function Pc(o,e){if(o=o.filter(n=>typeof n=="function"),!o.length)throw new TypeError("No Class has been provided");if(o.length===1)return o[0];let t=o[0].name+"Mixin",r={[t]:class{constructor(){for(let n of o)yr(this,n)}}}[t],i={...e,kind:m.MixinType.Kind,types:[]};Reflect.defineMetadata(h,i,r);for(let n of o){let s=Reflect.getMetadata(h,n);if(!(s&&(s.kind===m.ComplexType.Kind||s.kind===m.MixinType.Kind||s.kind===m.MappedType.Kind)))throw new TypeError(`Class "${n.name}" is not a ${m.ComplexType.Kind}, ${m.MixinType.Kind} or ${m.MappedType.Kind}`);i.types.push(n),hr(r.prototype,n.prototype)}return r}a(Pc,"MixinTypeFactory");var E3=require("reflect-metadata"),Ja=require("@jsopen/objects"),Wa=require("ts-gems"),xs=require("valgen");var ft=a(function(...o){if(!this)return ft[D].apply(void 0,o);let[e,t,r]=o;x.call(this,e,t,r);let i=(0,Wa.asMutable)(this);i.kind=m.UnionType.Kind,i.discriminator=t.discriminator,i.types=[];for(let n of t.types)i.types.push(n)},"UnionType"),gs=class gs extends x{toJSON(e){let t=super.toJSON(e);return(0,Ja.omitUndefined)({...t,kind:this.kind,discriminator:this.discriminator,types:this.types.map(r=>{let i=this.node.getDataTypeNameWithNs(r);return i||r.toJSON(e)})})}generateCodec(e,t){let r=this.types.map(i=>{let n=i.generateCodec(e,t);return(i.kind===m.ComplexType.Kind||i.kind===m.MappedType.Kind)&&i.discriminatorField?[n,{[i.discriminatorField]:xs.vg.isEqual(i.discriminatorValue)}]:n});return xs.vg.oneOf(r)}extendsFrom(){return!1}_locateBase(){}};a(gs,"UnionTypeClass");var Os=gs;ft.prototype=Os.prototype;ft[D]=Lc;function Lc(o,e){let i=class i{};a(i,"UnionClass");let t=i,r={...e,kind:m.UnionType.Kind,types:o};return Reflect.defineMetadata(h,r,t),t}a(Lc,"UnionTypeFactory");var ws=Symbol("initializing"),bi=class bi{static async createDataType(e,t,r){e=e||new me({maxErrors:0});let i=await this._importDataTypeArgs(e,t,r);if(i)return typeof i=="string"?t.node.getDataType(i):this._createDataType(e,t,i)}static async resolveDataType(e,t,r){if(r){let i=t.node.findDataType(r);if(i)return i}if(typeof r=="object"||typeof r=="function"){let i=await bi.createDataType(e,t,r);if(i)return i}if(r){let i=t.node.getDataType(r);if(i)return i}return t.node.getDataType("any")}static async addDataTypes(e,t,r){let i=t.node[U];if(!i)throw new TypeError("DocumentElement should has [kDataTypeMap] property");let n=await this.createAllDataTypes(e,t,r);if(n)for(let s of n)s!=null&&s.name&&i.set(s.name,s)}static async createAllDataTypes(e,t,r){e=e||new me({maxErrors:0});let i=await this._prepareAllInitArgs(e,t,r);if(!i)return;let n=new F;for(let c of i)n.set(c.name,c);let s=e.extend({initArgsMap:n}),p=[];for(let[c,f]of n.entries())e.enter(`[${c}]`,()=>{if(!n.has(c))return;let g=this._createDataType(s,t,f);g&&p.push(g)});return p}static async _prepareAllInitArgs(e,t,r){let i=new F,n=new F,s=e.extend({owner:t,importQueue:i,initArgsMap:n});if(!t.node[U])throw new TypeError("DocumentElement should has [kDataTypeMap] property");if(Array.isArray(r)){let p=0;for(let c of r)await s.enterAsync(`$[${p++}]`,async()=>{c=await fe(c);let f=Reflect.getMetadata(h,c)||c[h];if(!(f&&f.name))return typeof c=="function"?s.addError(`Class "${c.name}" doesn't have a valid data type metadata`):s.addError("Object doesn't have a valid data type metadata");i.set(f.name,c)})}else{let p,c;for([c,p]of Object.entries(r))p=await fe(p),i.set(c,typeof p=="object"?{...p,name:c}:p)}for(let p of Array.from(i.keys())){if(!i.has(p))continue;let c=await this._importDataTypeArgs(s,t,p);c&&typeof c!="string"&&s.addError("Embedded data type can't be loaded into document node directly")}return Array.from(n.values())}static async _importDataTypeArgs(e,t,r){var g;r=await fe(r);let{importQueue:i,initArgsMap:n}=e,s=t.node.findDataType(r);if(s instanceof x)return s.name;let p,c,f;if(typeof r!="string"){let X=t.node.getDocument().types[Tr].get(r);X&&(r=X)}if(typeof r=="string"){let d=r;if(r=(i==null?void 0:i.get(d))||((g=e.initArgsMap)==null?void 0:g.get(d)),!r)return e.addError(`Unknown data type (${d})`)}if(typeof r=="function"){if(p=Reflect.getMetadata(h,r),!p)return e.addError(`Class "${r.name}" doesn't have a valid DataType metadata`);c=r}else if(typeof r=="object"){if(p=r[h],p)f=r,p.kind!==m.EnumType.Kind&&(p=void 0);else if(m.isDataType(r))p=r,c=p.ctor;else if(c=Object.getPrototypeOf(r).constructor,p=c&&Reflect.getMetadata(h,c),p&&p.kind===m.SimpleType.Kind){let d=await this._importDataTypeArgs(e,t,p.name);return d?typeof d=="object"&&d.kind!==m.SimpleType.Kind?e.addError("Kind of base data type is not same"):{kind:m.SimpleType.Kind,name:void 0,base:d,properties:r}:void 0}}return p?e.enterAsync(p.name?`[${p.name}]`:"",async()=>{if(p.name){let X=n==null?void 0:n.get(p.name);if(X)return X[ws]?e.addError("Circular reference detected"):p.name}let d={kind:p.kind,name:p.name};d[ws]=!0;try{if(d.name)if(i!=null&&i.has(d.name))n==null||n.set(p.name,d),d._instance={name:p.name},d[U]=t.node[U];else return e.addError(`Data Type (${d.name}) must be explicitly added to type list in the document scope`);switch(d.kind){case m.ComplexType.Kind:d.ctor=c,await this._prepareComplexTypeArgs(e,t,d,p);break;case m.EnumType.Kind:d.instance=f,await this._prepareEnumTypeArgs(e,t,d,p);break;case m.MappedType.Kind:await this._prepareMappedTypeArgs(e,t,d,p);break;case m.MixinType.Kind:await this._prepareMixinTypeArgs(e,t,d,p);break;case m.SimpleType.Kind:d.ctor=c,await this._prepareSimpleTypeArgs(e,t,d,p);break;case m.UnionType.Kind:await this._prepareUnionTypeArgs(e,t,d,p);break;default:return e.addError(`Invalid data type kind ${p.kind}`)}}finally{d.name&&(i==null||i.delete(d.name)),delete d[ws]}return i&&d.name?d.name:d}):e.addError("No DataType metadata found")}static async _prepareDataTypeArgs(e,t,r){t.description=r.description,t.abstract=r.abstract,t.examples=r.examples,t.scopePattern=r.scopePattern}static async _prepareComplexTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),r.keyField=i.keyField,r.discriminatorField=i.discriminatorField,r.discriminatorValue=i.discriminatorValue,await e.enterAsync(".base",async()=>{let n;if(i.base)n=await this._importDataTypeArgs(e,t,i.base);else if(r.ctor){let s=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(h,s)&&(n=await this._importDataTypeArgs(e,t,s))}n&&(r.base=Ke(n),r.ctor=r.ctor||n.ctor)}),i.additionalFields!=null&&(typeof i.additionalFields=="boolean"||Array.isArray(i.additionalFields)?r.additionalFields=i.additionalFields:await e.enterAsync(".additionalFields",async()=>{let n=await this._importDataTypeArgs(e,t,i.additionalFields);n&&(r.additionalFields=Ke(n))})),i.fields&&(r.fields={},await e.enterAsync(".fields",async()=>{for(let[n,s]of Object.entries(i.fields))await e.enterAsync(`[${n}]`,async()=>{let p=typeof s=="string"?{type:s}:s;if(p.isArray&&!p.type)return e.addError('"type" must be defined explicitly for array fields');let c=await this._importDataTypeArgs(e,t,p.type||"any");c&&(r.fields[n]={...p,type:Ke(c)})})}))}static async _prepareEnumTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),i.base&&await e.enterAsync(".base",async()=>{let n=await this._importDataTypeArgs(e,t,i.base);n&&(r.base=Ke(n))}),r.attributes=M(i.attributes)}static async _prepareSimpleTypeArgs(e,t,r,i){var n,s,p,c;await this._prepareDataTypeArgs(e,r,i),await e.enterAsync(".base",async()=>{let f;if(i.base)f=await this._importDataTypeArgs(e,t,i.base);else if(r.ctor){let g=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(h,g)&&(f=await this._importDataTypeArgs(e,t,g))}f&&(r.base=Ke(f),r.ctor=r.ctor||f.ctor)}),r.properties=i.properties,r.nameMappings=i.nameMappings,!r.properties&&r.ctor&&(r.properties=new r.ctor),i.attributes&&(r.attributes=M(i.attributes)),typeof((n=r.properties)==null?void 0:n[E])=="function"&&(r.generateDecoder=(s=r.properties)==null?void 0:s[E].bind(r.properties)),typeof((p=r.properties)==null?void 0:p[O])=="function"&&(r.generateEncoder=(c=r.properties)==null?void 0:c[O].bind(r.properties))}static async _prepareMappedTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),r.discriminatorField=i.discriminatorField,r.discriminatorValue=i.discriminatorValue,await e.enterAsync(".base",async()=>{let n;if(i.base)n=await this._importDataTypeArgs(e,t,i.base);else if(r.ctor){let s=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(h,s)&&(n=await this._importDataTypeArgs(e,t,s))}n&&(r.base=Ke(n),r.ctor=r.ctor||n.ctor)}),i.pick?r.pick=[...i.pick]:i.omit?r.omit=[...i.omit]:i.partial?r.partial=Array.isArray(i.partial)?[...i.partial]:i.partial:i.required&&(r.required=Array.isArray(i.required)?[...i.required]:i.required)}static async _prepareMixinTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),r.types=[],await e.enterAsync(".types",async()=>{let n=i.types,s=0;for(let p of n)await e.enterAsync(`[${s++}]`,async()=>{let c=await this._importDataTypeArgs(e,t,p);c&&r.types.push(Ke(c))})})}static async _prepareUnionTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),r.types=[],await e.enterAsync(".types",async()=>{let n=i.types,s=0;for(let p of n)await e.enterAsync(`[${s++}]`,async()=>{let c=await this._importDataTypeArgs(e,t,p);c&&r.types.push(Ke(c))})})}static _createDataType(e,t,r){var s;let i=t.node.findDataType(typeof r=="string"?r:r.name||"");if(i instanceof x)return i;let n=typeof r=="string"?(s=e.initArgsMap)==null?void 0:s.get(r):r;if(n){let p=n[U];switch(p||delete n._instance,i=n._instance,i!=null&&i.name&&p&&p.set(i.name,i),n==null?void 0:n.kind){case m.ComplexType.Kind:return this._createComplexType(e,t,n);case m.EnumType.Kind:return this._createEnumType(e,t,n);case m.MappedType.Kind:return this._createMappedType(e,t,n);case m.MixinType.Kind:return this._createMixinType(e,t,n);case m.SimpleType.Kind:return this._createSimpleType(e,t,n);case m.UnionType.Kind:return this._createUnionType(e,t,n);default:break}}e.addError(`Unknown data type (${String(r)})`)}static _createComplexType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,te.prototype);let n=M(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),r.additionalFields&&e.enter(".additionalFields",()=>{typeof r.additionalFields=="boolean"||Array.isArray(r.additionalFields)?n.additionalFields=r.additionalFields:n.additionalFields=this._createDataType(e,t,r.additionalFields)}),n.fields={},r.fields&&e.enter(".fields",()=>{for(let[s,p]of Object.entries(r.fields))e.enter(`[${s}]`,()=>{let c=this._createDataType(e,t,p.type);c&&(n.fields[s]={...p,name:s,type:c})})}),te.apply(i,[t,n]),i}static _createEnumType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,ee.prototype);let n=M(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),n.attributes=r.attributes,ee.apply(i,[t,n]),i}static _createMappedType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,qe.prototype);let n=M(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),qe.apply(i,[t,n]),i}static _createMixinType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,lt.prototype);let n=M(r);return r.types&&e.enter(".types",()=>{n.types=[];let s=0;for(let p of r.types)e.enter(`[${s++}]`,()=>{let c=this._createDataType(e,t,p);if(!(c instanceof j))throw new TypeError(`"${c==null?void 0:c.kind}" can't be set as base for a "${n.kind}"`);n.types.push(c)})}),lt.apply(i,[t,n]),i}static _createSimpleType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,u.prototype);let n=M(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),u.apply(i,[t,n]),i}static _createUnionType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,ft.prototype);let n=M(r);return r.types&&e.enter(".types",()=>{n.types=[];let s=0;for(let p of r.types)e.enter(`[${s++}]`,()=>{let c=this._createDataType(e,t,p);n.types.push(c)})}),ft.apply(i,[t,n]),i}};a(bi,"DataTypeFactory");var I=bi;function Ke(o){return typeof o=="object"&&o.name?o.name:o}a(Ke,"preferName");var pp=require("@jsopen/objects");var Ya=require("@jsopen/objects");var Rs=class Rs extends R{constructor(e){super(e.owner),this.name="OpraApi",this.name=e.name,this.description=e.description}toJSON(e){return(0,Ya.omitUndefined)({transport:this.transport,name:this.name,description:this.description})}async _initialize(e,t){if(!C.test(e.name))throw new TypeError(`Invalid api name (${e.name})`);this.name=e.name,this.description=e==null?void 0:e.description}};a(Rs,"ApiBase");var mt=Rs;var Ga=fr(require("path-browserify"),1),Qa=require("@jsopen/objects"),Xa=require("ts-gems");var ir=require("@jsopen/objects");var jc=/^(.*)(Controller)$/;function As(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=jc.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(oe,Object.getPrototypeOf(r));s&&(0,ir.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(oe,r);p&&(0,ir.merge)(n,p,{deep:!0}),(0,ir.merge)(n,{kind:m.HttpController.Kind,name:i,path:i,...(0,ir.omit)(o,["kind","name","instance","endpoints","key"])},{deep:!0}),Reflect.defineMetadata(oe,n,r);for(let f of e)f(n,r);Reflect.defineMetadata(oe,n,r)},"decorator");return t.Cookie=(r,i)=>(e.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"cookie",type:i}:{...i,name:r,location:"cookie"};n.parameters=n.parameters||[],n.parameters.push(s)}),t),t.Header=(r,i)=>(e.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"header",type:i}:{...i,name:r,location:"header"};n.parameters=n.parameters||[],n.parameters.push(s)}),t),t.QueryParam=(r,i)=>(e.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"query",type:i}:{...i,name:r,location:"query"};n.parameters=n.parameters||[],n.parameters.push(s)}),t),t.PathParam=(r,i)=>(e.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"path",type:i}:{...i,name:r,location:"path"};n.parameters=n.parameters||[],n.parameters.push(s)}),t),t.KeyParam=(r,i)=>(e.push(n=>{var p;(p=n.path)!=null&&p.includes(":"+r)||(n.path=(n.path||"")+"@:"+r);let s=typeof i=="string"||typeof i=="function"?{name:r,location:"path",type:i,keyParam:!0}:{...i,name:r,location:"path",keyParam:!0};n.parameters=n.parameters||[],n.parameters.push(s)}),t),t.UseType=(...r)=>(e.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),t}a(As,"HttpControllerDecoratorFactory");var ie=a(function(...o){var i;if(!this)return ie[D].apply(void 0,o);let[e,t]=o;if(R.call(this,e),!C.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,Xa.asMutable)(this);r.kind=m.HttpController.Kind,r.types=r.node[U]=new re,r.operations=new F,r.controllers=new F,r.parameters=[],r.name=t.name,r.description=t.description,r.path=t.path??t.name,r.instance=t.instance,r.ctor=t.ctor,r._controllerReverseMap=new WeakMap,(i=r._initialize)==null||i.call(r,t)},"HttpController"),Ds=class Ds extends R{get isRoot(){return!(this.owner instanceof ie)}findController(e){if(typeof e=="function"){let t=this._controllerReverseMap.get(e);if(t!=null)return t;for(let r of this.controllers.values()){if(r.ctor===e)return this._controllerReverseMap.set(e,r),r;if(r.controllers.size&&(t=r.findController(e),t))return this._controllerReverseMap.set(e,t),t}this._controllerReverseMap.set(e,null);return}if(e.startsWith("/")&&(e=e.substring(1)),e.includes("/")){let t=e.split("/"),r=this;for(;r&&t.length>0;)r=r.controllers.get(t.shift());return r}return this.controllers.get(e)}findParameter(e,t){let r=e.toLowerCase(),i;for(i of this.parameters)if(!(t&&t!==i.location)&&(typeof i.name=="string"&&(i._nameLower=i._nameLower||i.name.toLowerCase(),i._nameLower===r)||i.name instanceof RegExp&&i.name.test(e)))return i;if(this.node.parent&&this.node.parent.element instanceof ie)return this.node.parent.element.findParameter(e,t)}getFullUrl(){return Ga.default.posix.join(this.owner instanceof ie?this.owner.getFullUrl():"/",this.path)}toString(){return`[HttpController ${this.name}]`}toJSON(e){let t=(0,Qa.omitUndefined)({kind:this.kind,description:this.description,path:this.path});if(this.operations.size){t.operations={};for(let r of this.operations.values())t.operations[r.name]=r.toJSON(e)}if(this.controllers.size){t.controllers={};for(let r of this.controllers.values())t.controllers[r.name]=r.toJSON(e)}if(this.types.size){t.types={};for(let r of this.types.values())t.types[r.name]=r.toJSON(e)}if(this.parameters.length){t.parameters=[];for(let r of this.parameters)t.parameters.push(r.toJSON(e))}return t}[bt](){return`[${Dt}HttpController${Nt+this.name+et}]`}};a(Ds,"HttpControllerClass");var bs=Ds;ie.prototype=bs.prototype;Object.assign(ie,As);ie[D]=As;var Ns=class Ns extends mt{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="http",this.controllers=new F,this.url=e.url}findController(e){return ie.prototype.findController.call(this,e)}findOperation(e,t){let r=this.findController(e);return r==null?void 0:r.operations.get(t)}toJSON(e){let r={...super.toJSON(),transport:this.transport,url:this.url,controllers:{}};for(let i of this.controllers.values())r.controllers[i.name]=i.toJSON(e);return r}};a(Ns,"HttpApi");var ut=Ns;var Za=fr(require("@browsery/type-is"),1),Ha=require("@jsopen/objects"),ep=require("ts-gems"),Di=require("valgen");var Ae=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');R.call(this,o);let t=(0,ep.asMutable)(this);if(e.contentType){let r=Array.isArray(e.contentType)?e.contentType:[e.contentType];r=r.map(i=>i.split(/\s*,\s*/)).flat(),t.contentType=r.length>1?r:r[0]}t.description=e.description,t.contentEncoding=e.contentEncoding,t.examples=e.examples,t.multipartFields=[],t.maxFieldsSize=e.maxFieldsSize,t.maxFields=e.maxFields,t.maxFiles=e.maxFiles,t.maxFileSize=e.maxFileSize,t.maxTotalFileSize=e.maxTotalFileSize,e!=null&&e.type&&(t.type=(e==null?void 0:e.type)instanceof x?e.type:t.owner.node.getDataType(e.type)),t.isArray=e.isArray},"HttpMediaType"),Fs=class Fs extends R{findMultipartField(e,t){if(this.multipartFields){for(let r of this.multipartFields)if((!t||t===r.fieldType)&&(r.fieldName instanceof RegExp&&r.fieldName.test(e)||r.fieldName===e))return r}}toJSON(e){var i,n;let t=this.type?this.node.getDataTypeNameWithNs(this.type):void 0,r=(0,Ha.omitUndefined)({description:this.description,contentType:this.contentType,contentEncoding:this.contentEncoding,type:t||((i=this.type)==null?void 0:i.toJSON(e)),isArray:this.isArray,example:this.example,examples:this.examples,maxFields:this.maxFields,maxFieldsSize:this.maxFieldsSize,maxFiles:this.maxFiles,maxFileSize:this.maxFileSize,maxTotalFileSize:this.maxTotalFileSize});return(n=this.multipartFields)!=null&&n.length&&(r.multipartFields=this.multipartFields.map(s=>s.toJSON(e))),r}generateCodec(e,t){let r;return this.type?r=this.type.generateCodec(e,t):this.contentType&&(Array.isArray(this.contentType)?this.contentType:[this.contentType]).find(n=>Za.default.is(n,["json"]))&&(r=this.node.findDataType("object").generateCodec(e)),r=r||Di.isAny,this.isArray?Di.vg.isArray(r):r}};a(Fs,"HttpMediaTypeClass");var Ss=Fs;Ae.prototype=Ss.prototype;var tp=require("@jsopen/objects");function or(o,e){let t=o.lastIndexOf("/");if(o.startsWith("/")&&t){let r=o.substring(1,t),i=o.substring(t+1);if(e!=null&&e.includeFlags)for(let n of e.includeFlags)i.includes(n)||(i+=n);if(e!=null&&e.excludeFlags)for(let n of e.excludeFlags)i.replace(n,"");return new RegExp(r,i)}throw new TypeError(`"${o}" is not a valid RegExp string`)}a(or,"parseRegExp");var Ms=class Ms extends Ae{constructor(e,t){super(e,t),this.fieldName=t.fieldName instanceof RegExp?t.fieldName:t.fieldName.startsWith("/")?or(t.fieldName):t.fieldName,this.fieldType=t.fieldType,this.required=t.required}toJSON(e){return(0,tp.omitUndefined)({fieldName:this.fieldName,fieldType:this.fieldType,required:this.required,...super.toJSON(e)})}};a(Ms,"HttpMultipartField");var Vr=Ms;var rp=require("@jsopen/objects");var Cc=/^([1-6]\d{2})(?:-([1-6]\d{2}))?$/,vs=class vs{constructor(e,t){if(this.start=0,this.end=0,e&&typeof e=="object"&&(this.start=e.start||0,this.end=e.end||0),typeof e=="number"&&(this.start=e,this.end=t||this.start),typeof e=="string"){let r=Cc.exec(e);if(!r)throw new TypeError(`"${e}" is not a valid Status Code range`);this.start=parseInt(r[1],10),this.end=r[2]?parseInt(r[2],10):this.start}}includes(e){return e>=this.start&&e<=this.end}intersects(e,t){return t>=this.start&&e<=this.end}toString(){return this.start===this.end?String(this.start):String(this.start)+"-"+String(this.end)}toJSON(){return!this.end||this.start===this.end?this.start:{start:this.start,end:this.end}}};a(vs,"HttpStatusRange");var nr=vs;var Is=class Is extends Ae{constructor(e,t){super(e,t),this.parameters=[],this.statusCode=(Array.isArray(t.statusCode)?t.statusCode:[t.statusCode]).map(r=>typeof r=="object"?new nr(r.start,r.end):new nr(r)),this.partial=t.partial}findParameter(e,t){e=e.toLowerCase();for(let r of this.parameters)if((!t||t===r.location)&&(r.name instanceof RegExp&&r.name.test(e)||r.name===e))return r}toJSON(e){let t=this.statusCode.map(i=>i.toJSON()),r=(0,rp.omitUndefined)({...super.toJSON(e),statusCode:t.length===1&&typeof t[0]=="number"?t[0]:t,partial:this.partial});if(this.parameters.length){r.parameters=[];for(let i of this.parameters)r.parameters.push(i.toJSON(e))}return r}};a(Is,"HttpOperationResponse");var zr=Is;var np=require("@jsopen/objects"),sp=require("ts-gems");var ip=require("@jsopen/objects"),op=require("ts-gems");var dt=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');R.call(this,o);let t=(0,op.asMutable)(this);t.description=e.description,t.type=e.type,t.examples=e.examples,t.isArray=e.isArray},"Value"),Ls=class Ls extends R{toJSON(e){let t=this.type?this.node.getDataTypeNameWithNs(this.type):void 0;return(0,ip.omitUndefined)({type:this.type?t||this.type.toJSON(e):"any",description:this.description,isArray:this.isArray,examples:this.examples})}};a(Ls,"ValueClass");var Ps=Ls;dt.prototype=Ps.prototype;var sr=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');dt.call(this,o,e);let t=(0,sp.asMutable)(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?or(e.name,{includeFlags:"i",excludeFlags:"m"}):e.name),t.location=e.location,t.deprecated=e.deprecated,t.required=e.required,t.required==null&&e.location==="path"&&(t.required=!0),t.arraySeparator=e.arraySeparator,t.keyParam=e.keyParam,t.parser=e.parser},"HttpParameter"),js=class js extends dt{toJSON(e){return(0,np.omitUndefined)({...super.toJSON(e),name:this.name,location:this.location,arraySeparator:this.arraySeparator,keyParam:this.keyParam,required:this.required,deprecated:this.deprecated})}};a(js,"HttpParameterClass");var ks=js;sr.prototype=ks.prototype;var ap=require("@jsopen/objects");var Cs=class Cs extends R{constructor(e){super(e),this.content=[]}toJSON(e){return(0,ap.omitUndefined)({description:this.description,required:this.required,maxContentSize:this.maxContentSize,content:this.content.length?this.content.map(t=>t.toJSON(e)):[],partial:this.partial,allowPatchOperators:this.allowPatchOperators})}};a(Cs,"HttpRequestBody");var Jr=Cs;var Us=class Us{static async createApi(e,t){let r=new ut(t);return t.controllers&&await e.enterAsync(".controllers",async()=>{await this._createControllers(e,r,t.controllers)}),r}static async _createControllers(e,t,r){if(Array.isArray(r)){let i=0;for(let n of r){let s;await e.enterAsync(`[${i++}]`,async()=>{s=await this._resolveControllerMetadata(e,t,n)}),s&&await e.enterAsync(`[${s.metadata.name}]`,async()=>{let p=await this._createController(e,t,s.metadata,s.instance,s.ctor);p&&(t.controllers.get(p.name)&&e.addError(`Duplicate controller name (${s.name})`),t.controllers.set(p.name,p))})}return}for(let[i,n]of Object.entries(r))await e.enterAsync(`[${i}]`,async()=>{let s=await this._resolveControllerMetadata(e,t,n);if(!s)return;let p=await this._createController(e,t,{...s.metadata,name:i},s.instance,s.ctor);p&&(t.controllers.get(p.name)&&e.addError(`Duplicate controller name (${i})`),t.controllers.set(p.name,p))})}static async _resolveControllerMetadata(e,t,r){typeof r=="function"&&!(0,pp.isConstructor)(r)&&(r=t instanceof ie?r(t.instance):r()),r=await fe(r);let i,n,s;if(typeof r=="function"){if(n=Reflect.getMetadata(oe,r),!n)return e.addError(`Class "${r.name}" doesn't have a valid HttpController metadata`);i=r}else i=Object.getPrototypeOf(r).constructor,n=Reflect.getMetadata(oe,i),n?s=r:(n=r,r.instance==="object"&&(s=r.instance,i=Object.getPrototypeOf(s).constructor));return n?{metadata:n,instance:s,ctor:i}:e.addError(`Class "${i.name}" is not decorated with HttpController()`)}static async _createController(e,t,r,i,n){if(!r.name)throw new TypeError("Controller name required");let s=new ie(t,{...r,instance:i,ctor:n});return r.types&&await e.enterAsync(".types",async()=>{await I.addDataTypes(e,s,r.types)}),r.parameters&&await e.enterAsync(".parameters",async()=>{let p=0;for(let c of r.parameters)await e.enterAsync(`[${p++}]`,async()=>{let f={...c};await e.enterAsync(".type",async()=>{f.type=await I.resolveDataType(e,s,c.type)});let g=new sr(s,f);s.parameters.push(g)})}),r.operations&&await e.enterAsync(".operations",async()=>{for(let[p,c]of Object.entries(r.operations))await e.enterAsync(`[${p}]`,async()=>{let f=new A(s,{name:p,method:"GET"});await this._initHttpOperation(e,f,c),s.operations.set(p,f)})}),r.controllers&&await e.enterAsync(".controllers",async()=>{await this._createControllers(e,s,r.controllers)}),s}static async _initHttpOperation(e,t,r){let i={...r,name:t.name,types:void 0};return A.apply(t,[t.owner,i]),r.types&&await e.enterAsync(".types",async()=>{await I.addDataTypes(e,t,r.types)}),r.parameters&&await e.enterAsync(".parameters",async()=>{let n=0;for(let s of r.parameters)await e.enterAsync(`[${n++}]`,async()=>{let p={...s};await e.enterAsync(".type",async()=>{p.type=await I.resolveDataType(e,t,s.type)});let c=new sr(t,p);t.parameters.push(c)})}),r.responses&&await e.enterAsync(".responses",async()=>{let n=0;for(let s of r.responses)await e.enterAsync(`[${n++}]`,async()=>{let p=new zr(t,{statusCode:s.statusCode});await this._initHttpOperationResponse(e,p,s),t.responses.push(p)})}),r.requestBody&&await e.enterAsync(".requestBody",async()=>{let n=new Jr(t);await this._initHttpRequestBody(e,n,r.requestBody),t.requestBody=n}),t}static async _initHttpMediaType(e,t,r){Ae.call(t,t.owner,{...r,type:void 0,multipartFields:void 0}),r.type&&await e.enterAsync(".type",async()=>{t.type=await I.resolveDataType(e,t,r.type)}),r.multipartFields&&await e.enterAsync(".multipartFields",async()=>{for(let i=0;i<r.multipartFields.length;i++)await e.enterAsync(`[${i}]`,async()=>{let n=r.multipartFields[i],s=new Vr(t,{fieldName:n.fieldName,fieldType:n.fieldType});await this._initHttpMediaType(e,s,n),t.multipartFields.push(s)})})}static async _initHttpOperationResponse(e,t,r){await this._initHttpMediaType(e,t,r),t.partial=r.partial,r.parameters&&await e.enterAsync(".parameters",async()=>{let i=0;for(let n of r.parameters)await e.enterAsync(`[${i++}]`,async()=>{let s={...n};await e.enterAsync(".type",async()=>{s.type=await I.resolveDataType(e,t,n.type)});let p=new sr(t,s);t.parameters.push(p)})})}static async _initHttpRequestBody(e,t,r){t.description=r.description,t.required=r.required,t.maxContentSize=r.maxContentSize,t.immediateFetch=r.immediateFetch,t.partial=r.partial,t.allowPatchOperators=r.allowPatchOperators,t.keepKeyFields=r.keepKeyFields,r.content&&await e.enterAsync(".content",async()=>{for(let i=0;i<r.content.length;i++)await e.enterAsync(`[${i}]`,async()=>{let n=r.content[i],s=new Ae(t,String(i));await this._initHttpMediaType(e,s,n),t.content.push(s)})})}};a(Us,"HttpApiFactory");var ar=Us;var lp=require("@jsopen/objects"),fp=require("super-fast-md5");var $s=class $s extends mt{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="rpc",this.controllers=new F,this.platform=e.platform}findController(e){if(typeof e=="function"){let t=this._controllerReverseMap.get(e);if(t!=null)return t;for(let r of this.controllers.values())if(r.ctor===e)return this._controllerReverseMap.set(e,r),r;this._controllerReverseMap.set(e,null);return}return this.controllers.get(e)}findOperation(e,t){let r=this.findController(e);return r==null?void 0:r.operations.get(t)}toJSON(){let t={...super.toJSON(),transport:this.transport,platform:this.platform,controllers:{}};for(let r of this.controllers.values())t.controllers[r.name]=r.toJSON();return t}};a($s,"RpcApi");var ht=$s;var cp,Bs=class Bs extends R{constructor(){super(null),this[cp]=new WeakMap,this.id="",this.info={},this.references=new F,this.types=new re,this.node[U]=this.types,this.node.findDataType=this._findDataType.bind(this)}getDataTypeNs(e){let t=e instanceof x?this._findDataType(e.name||""):this._findDataType(e);if(t)return this[_e].get(t)}findDocument(e){if(this.id===e)return this;for(let t of this.references.values()){if(t.id===e)return t;let r=t.findDocument(e);if(r)return r}}get httpApi(){if(!(this.api&&this.api instanceof ut))throw new TypeError("The document do not contains HttpApi instance");return this.api}get rpcApi(){if(!(this.api&&this.api instanceof ht))throw new TypeError("The document do not contains RpcApi instance");return this.api}toJSON(){return this.export()}export(e){let t=(0,lp.omitUndefined)({spec:m.SpecVersion,id:this.id,url:this.url,info:M(this.info,!0)});if(this.references.size){let r=0,i={};for(let[n,s]of this.references.entries())s[be]||(i[n]={id:s.id,url:s.url,info:M(s.info,!0)},r++);r&&(t.references=i)}if(this.types.size){t.types={};for(let r of this.types.values())r.inScope(e==null?void 0:e.scope)&&(t.types[r.name]=r.toJSON(e))}return this.api&&(t.api=this.api.toJSON(e)),t}invalidate(){let e=this.export({});delete e.id,this.id=(0,fp.md5)(JSON.stringify(e)),this[_e]=new WeakMap}_findDataType(e,t,r){let i=this.types.get(e);if(i&&i.inScope(t))return i;if(!this.references.size)return;if(typeof e=="string"){let s=po.exec(e);if(s){let p=s[1];if(p){let c=this.references.get(p);return c?(r=r||new WeakMap,r.set(this,!0),r.set(c,!0),c._findDataType(s[2],t,r)):void 0}e=s[2]}}r=r||new WeakMap,r.set(this,!0);let n=Array.from(this.references.keys()).reverse();for(let s of n){let p=this.references.get(s);if(i=p==null?void 0:p.types.get(e),i)return this[_e].set(i,p!=null&&p[be]?"":s),i}for(let s of n){let p=this.references.get(s);if(r.set(p,!0),i=p._findDataType(e,t,r),i)return this[_e].set(i,p!=null&&p[be]?"":s),i}}};a(Bs,"ApiDocument");var Ve=Bs;cp=_e;function ze(o,e,t){let r=Ai(e.pick,e.omit),i=typeof o=="string"?o.charAt(0).toUpperCase()+o.substring(1):o.name,n=(t==null?void 0:t.name)||i+"Mapped",s={[n]:class{constructor(){typeof o=="function"&&yr(this,o,r)}}}[n];if(typeof o=="function"&&hr(s.prototype,o.prototype),typeof o=="function"){let c=Reflect.getOwnMetadata(h,o);if(!c)throw new TypeError(`Class "${o}" doesn't have datatype metadata information`);if(!(c.kind===m.ComplexType.Kind||c.kind===m.MappedType.Kind||c.kind===m.MixinType.Kind))throw new TypeError(`Class "${o}" is not a ${m.ComplexType.Kind}`)}let p={...t,kind:"MappedType",base:o};return e.pick&&(p.pick=e.pick),e.omit&&(p.omit=e.omit),e.partial&&(p.partial=e.partial),e.required&&(p.required=e.required),Reflect.defineMetadata(h,p,s),typeof o=="function"&&qe._applyMixin(s,o,{...e,isInheritedPredicate:r}),s}a(ze,"createMappedClass");function $c(o,e,t){return ze(o,{omit:e},t)}a($c,"OmitType");function Bc(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return ze(o,{partial:t},r)}a(Bc,"PartialType");function qc(o,e,t){return ze(o,{pick:e},t)}a(qc,"PickType");function Kc(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return ze(o,{required:t},r)}a(Kc,"RequiredType");var _p=require("@jsopen/objects");var mp=require("@jsopen/objects"),up=require("ts-gems");var Je=a(function(...o){var i;if(!this)return Je[D].apply(void 0,o);let[e,t]=o;if(R.call(this,e),!C.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,up.asMutable)(this);r.kind=m.RpcController.Kind,r.types=r.node[U]=new re,r.operations=new F,r.headers=[],r.name=t.name,r.description=t.description,r.instance=t.instance,r.ctor=t.ctor,r._controllerReverseMap=new WeakMap,(i=r._initialize)==null||i.call(r,t)},"RpcController"),Ks=class Ks extends R{findHeader(e,t){let r=e.toLowerCase(),i;for(i of this.headers)if(typeof i.name=="string"&&(i._nameLower=i._nameLower||i.name.toLowerCase(),i._nameLower===r)||i.name instanceof RegExp&&i.name.test(e))return i;if(this.node.parent&&this.node.parent.element instanceof Je)return this.node.parent.element.findHeader(e,t)}toString(){return`[RpcController ${this.name}]`}toJSON(){let e=(0,mp.omitUndefined)({kind:this.kind,description:this.description});if(this.operations.size){e.operations={};for(let t of this.operations.values())e.operations[t.name]=t.toJSON()}if(this.types.size){e.types={};for(let t of this.types.values())e.types[t.name]=t.toJSON()}if(this.headers.length){e.headers=[];for(let t of this.headers)e.headers.push(t.toJSON())}return e}[bt](){return`[${Dt}RpcController${Nt+this.name+et}]`}};a(Ks,"RpcControllerClass");var qs=Ks;Je.prototype=qs.prototype;Object.assign(Je,rr);Je[D]=rr;var dp=require("@jsopen/objects"),hp=require("ts-gems");var pr=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');dt.call(this,o,e);let t=(0,hp.asMutable)(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?or(e.name,{includeFlags:"i",excludeFlags:"m"}):e.name),t.deprecated=e.deprecated,t.required=e.required},"RpcHeader"),zs=class zs extends dt{toJSON(){return(0,dp.omitUndefined)({...super.toJSON(),name:this.name,required:this.required,deprecated:this.deprecated})}};a(zs,"RpcHeaderClass");var Vs=zs;pr.prototype=Vs.prototype;var yp=require("@jsopen/objects"),Tp=require("ts-gems");var cr=a(function(...o){if(!this){let[i,n]=o,s=[];return cr[D].call(void 0,s,i,n)}let[e,t]=o;if(R.call(this,e),!C.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,Tp.asMutable)(this);r.headers=[],r.types=r.node[U]=new re,r.name=t.name,r.description=t.description,r.channel=t.channel,t!=null&&t.payloadType&&(r.payloadType=(t==null?void 0:t.payloadType)instanceof x?t.payloadType:r.owner.node.getDataType(t.payloadType)),t!=null&&t.keyType&&(r.keyType=(t==null?void 0:t.keyType)instanceof x?t.keyType:r.owner.node.getDataType(t.keyType))},"RpcOperation"),Ws=class Ws extends R{findHeader(e){let t=e.toLowerCase(),r;for(r of this.headers)if(typeof r.name=="string"&&(r._nameLower=r._nameLower||r.name.toLowerCase(),r._nameLower===t)||r.name instanceof RegExp&&r.name.test(e))return r}toJSON(){var t;let e=(0,yp.omitUndefined)({kind:m.RpcOperation.Kind,description:this.description,channel:this.channel,payloadType:this.payloadType.name?this.payloadType.name:this.payloadType.toJSON(),keyType:this.keyType?this.keyType.name?this.keyType.name:this.keyType.toJSON():void 0,response:(t=this.response)==null?void 0:t.toJSON()});if(this.headers.length){e.headers=[];for(let r of this.headers)e.headers.push(r.toJSON())}return e}};a(Ws,"RpcOperationClass");var Js=Ws;cr.prototype=Js.prototype;cr[D]=Kr;var Ep=require("@jsopen/objects");var Ys=class Ys extends R{constructor(e,t){super(e),this.headers=[],this.channel=t==null?void 0:t.channel,this.description=t==null?void 0:t.description,t!=null&&t.payloadType?this.payloadType=(t==null?void 0:t.payloadType)instanceof x?t.payloadType:this.owner.node.getDataType(t.payloadType):this.payloadType=this.owner.node.getDataType("any"),t!=null&&t.keyType&&(this.keyType=(t==null?void 0:t.keyType)instanceof x?t.keyType:this.owner.node.getDataType(t.keyType))}findHeader(e){let t=e.toLowerCase(),r;for(r of this.headers)if(typeof r.name=="string"&&(r._nameLower=r._nameLower||r.name.toLowerCase(),r._nameLower===t)||r.name instanceof RegExp&&r.name.test(e))return r}toJSON(){let e=(0,Ep.omitUndefined)({description:this.description,channel:this.channel,payloadType:this.payloadType.name?this.payloadType.name:this.payloadType.toJSON(),keyType:this.keyType?this.keyType.name?this.keyType.name:this.keyType.toJSON():void 0});if(this.headers.length){e.headers=[];for(let t of this.headers)e.headers.push(t.toJSON())}return e}};a(Ys,"RpcOperationResponse");var Ni=Ys;var Gs=class Gs{static async createApi(e,t){let r=new ht(t);return t.controllers&&await e.enterAsync(".controllers",async()=>{if(Array.isArray(t.controllers))for(let i of t.controllers){let n=await this._createController(e,r,i);n&&r.controllers.set(n.name,n)}else for(let[i,n]of Object.entries(t.controllers)){let s=await this._createController(e,r,n,i);s&&r.controllers.set(s.name,s)}}),r}static async _createController(e,t,r,i){typeof r=="function"&&!(0,_p.isConstructor)(r)&&(r=r()),r=await fe(r);let n,s,p;if(typeof r=="function"){if(s=Reflect.getMetadata(ne,r),!s)return e.addError(`Class "${r.name}" doesn't have a valid RpcController metadata`);n=r}else n=Object.getPrototypeOf(r).constructor,s=Reflect.getMetadata(ne,n),s?p=r:(s=r,r.instance==="object"&&(p=r.instance,n=Object.getPrototypeOf(p).constructor));if(!s)return e.addError(`Class "${n.name}" is not decorated with RpcController()`);if(i=i||s.name,!i)throw new TypeError("Controller name required");let c=new Je(t,{...s,name:i,instance:p,ctor:n});return s.types&&await e.enterAsync(".types",async()=>{await I.addDataTypes(e,c,s.types)}),s.headers&&await e.enterAsync(".headers",async()=>{let f=0;for(let g of s.headers)await e.enterAsync(`[${f++}]`,async()=>{let d={...g};await e.enterAsync(".type",async()=>{g.type&&(d.type=c.node.findDataType(g.type)),!d.type&&typeof g.type=="object"&&(d.type=await I.createDataType(e,c,g.type)),d.type||(d.type=c.node.getDataType("any"))});let X=new pr(c,d);c.headers.push(X)})}),s.operations&&await e.enterAsync(".operations",async()=>{for(let[f,g]of Object.entries(s.operations))await e.enterAsync(`[${f}]`,async()=>{let d=new cr(c,{...g,name:f,types:void 0,payloadType:void 0,keyType:void 0});await this._initRpcOperation(e,d,g),c.operations.set(d.name,d)})}),c}static async _initRpcOperation(e,t,r){r.types&&await e.enterAsync(".types",async()=>{await I.addDataTypes(e,t,r.types)}),t.payloadType=await I.resolveDataType(e,t,r.payloadType),r.keyType&&(t.keyType=await I.resolveDataType(e,t,r.keyType)),r.headers&&await e.enterAsync(".headers",async()=>{let i=0;for(let n of r.headers)await e.enterAsync(`[${i++}]`,async()=>{let s={...n};await e.enterAsync(".type",async()=>{s.type=await I.resolveDataType(e,t,n.type)});let p=new pr(t,s);t.headers.push(p)})}),r.response&&await e.enterAsync(".response",async()=>{let i=new Ni(t,{...r.response,payloadType:void 0,keyType:void 0});await this._initRpcOperationResponse(e,i,r.response),t.response=i})}static async _initRpcOperationResponse(e,t,r){t.payloadType=await I.resolveDataType(e,t,r.payloadType),r.keyType&&(t.keyType=await I.resolveDataType(e,t,r.keyType)),r.headers&&await e.enterAsync(".headers",async()=>{let i=0;for(let n of r.headers)await e.enterAsync(`[${i++}]`,async()=>{let s={...n};await e.enterAsync(".type",async()=>{s.type=await I.resolveDataType(e,t,n.type)});let p=new pr(t,s);t.headers.push(p)})})}};a(Gs,"RpcApiFactory");var Si=Gs;var Vc="https://oprajs.com/spec/v"+m.SpecVersion,Fi=class Fi{constructor(){this._allDocuments={}}static async createDocument(e,t){let r=new Fi,i=t instanceof me?t:new me(t);try{let n=new Ve;if(await r.initDocument(n,i,e),i.error.details.length)throw i.error;return n}catch(n){try{n instanceof nt||i.addError(n)}catch{}if(!i.error.message){let s=i.error.details.length;i.error.message=`(${s}) error${s>1?"s":""} found in document schema.`,i.showErrorDetails&&(i.error.message+=i.error.details.map(p=>`
10
10
 
11
11
  - ${p.message}`+(p.path?`
12
- @${p.path}`:"")).join(""))}throw i.error}}async initDocument(e,t,r){let i;if(typeof r=="string"){if(i=await(await fetch(r,{method:"GET"})).json(),!i)return t.addError(`Invalid response returned from url: ${r}`);i.url=r}else i=r;let n;if(!e[be]){let s=e.node.findDataType("string");n=s==null?void 0:s.node.getDocument(),n||(n=await this.createBuiltinDocument(t),e.references.set("opra",n))}i.spec=i.spec||m.SpecVersion,e.url=i.url,i.info&&(e.info={...i.info}),i.references&&await t.enterAsync(".references",async()=>{let s,p;for([s,p]of Object.entries(i.references))p=await fe(p),await t.enterAsync(`[${s}]`,async()=>{if(!C.test(s))throw new TypeError(`Invalid namespace (${s})`);if(p instanceof Ve){e.references.set(s,p);return}let c=new Ve;n&&c.references.set("opra",n),await this.initDocument(c,t,p),e.references.set(s,this._allDocuments[c.id])})}),i.types&&await t.enterAsync(".types",async()=>{await I.addDataTypes(t,e,i.types)}),i.api&&await t.enterAsync(".api",async()=>{if(i.api&&i.api.transport==="http"){let s=await ar.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else if(i.api&&i.api.transport==="rpc"){let s=await Si.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else t.addError(`Unknown service transport (${i.api.transport})`)}),e.invalidate(),this._allDocuments[e.id]||(this._allDocuments[e.id]=e)}async createBuiltinDocument(e){let t={spec:m.SpecVersion,url:Vc,info:{version:m.SpecVersion,title:"Opra built-in types",license:{url:"https://github.com/oprajs/opra/blob/main/LICENSE",name:"MIT"}},types:[Cr,Ur,$r,$e,Br,ue,qr,Re,Mr,tt,rt,it,ot,G,K,we,Pr,Q,st,kr,Jt]},r=new Ve;r[be]=!0;let i=Object.getPrototypeOf(BigInt(0)).constructor,n=Object.getPrototypeOf(Buffer.from([])),s=r.types[Tr];return s.set(Object,"object"),s.set(String,"string"),s.set(Number,"number"),s.set(Boolean,"boolean"),s.set(Object,"any"),s.set(Date,"datetime"),s.set(i,"bigint"),s.set(ArrayBuffer,"base64"),s.set(SharedArrayBuffer,"base64"),s.set(n,"base64"),await this.initDocument(r,e,t),r}};a(Fi,"ApiDocumentFactory");var Qs=Fi;var Xs;(function(o){o.HttpApiFactory=ar,o.DataTypeFactory=I,o.RpcOperationDecoratorFactory=Kr,o.RpcControllerDecoratorFactory=rr})(Xs||(Xs={}));var xp=require("uid");
12
+ @${p.path}`:"")).join(""))}throw i.error}}async initDocument(e,t,r){let i;if(typeof r=="string"){if(i=await(await fetch(r,{method:"GET"})).json(),!i)return t.addError(`Invalid response returned from url: ${r}`);i.url=r}else i=r;let n;if(!e[be]){let s=e.node.findDataType("string");n=s==null?void 0:s.node.getDocument(),n||(n=await this.createBuiltinDocument(t),e.references.set("opra",n))}i.spec=i.spec||m.SpecVersion,e.url=i.url,i.info&&(e.info={...i.info}),i.references&&await t.enterAsync(".references",async()=>{let s,p;for([s,p]of Object.entries(i.references))p=await fe(p),await t.enterAsync(`[${s}]`,async()=>{if(!C.test(s))throw new TypeError(`Invalid namespace (${s})`);if(p instanceof Ve){e.references.set(s,p);return}let c=new Ve;n&&c.references.set("opra",n),await this.initDocument(c,t,p),e.references.set(s,this._allDocuments[c.id])})}),i.types&&await t.enterAsync(".types",async()=>{await I.addDataTypes(t,e,i.types)}),i.api&&await t.enterAsync(".api",async()=>{if(i.api&&i.api.transport==="http"){let s=await ar.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else if(i.api&&i.api.transport==="rpc"){let s=await Si.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else t.addError(`Unknown service transport (${i.api.transport})`)}),e.invalidate(),this._allDocuments[e.id]||(this._allDocuments[e.id]=e)}async createBuiltinDocument(e){let t={spec:m.SpecVersion,url:Vc,info:{version:m.SpecVersion,title:"Opra built-in types",license:{url:"https://github.com/oprajs/opra/blob/main/LICENSE",name:"MIT"}},types:[Cr,Ur,$r,$e,Br,ue,qr,Re,Mr,tt,rt,it,ot,G,K,we,Pr,Q,st,kr,Jt]},r=new Ve;r[be]=!0;let i=Object.getPrototypeOf(BigInt(0)).constructor,n=Object.getPrototypeOf(Buffer.from([])),s=r.types[Tr];return s.set(Object,"object"),s.set(String,"string"),s.set(Number,"number"),s.set(Boolean,"boolean"),s.set(Object,"any"),s.set(Date,"datetime"),s.set(i,"bigint"),s.set(ArrayBuffer,"base64"),s.set(n,"base64"),await this.initDocument(r,e,t),r}};a(Fi,"ApiDocumentFactory");var Qs=Fi;var Xs;(function(o){o.HttpApiFactory=ar,o.DataTypeFactory=I,o.RpcOperationDecoratorFactory=Kr,o.RpcControllerDecoratorFactory=rr})(Xs||(Xs={}));var xp=require("uid");
package/browser/index.mjs CHANGED
@@ -9,4 +9,4 @@ var ys=Object.defineProperty;var a=(o,e)=>ys(o,"name",{value:e,configurable:!0})
9
9
  `));throw O.errors=s,O}return e=e||new Xt,e.visit(c)}a($o,"parse");var Bo=class Bo{constructor(e,t){if(this._rules=new S,this._decoderCache=new WeakMap,Object.defineProperty(this,"_rules",{value:new S(null,{caseSensitive:t==null?void 0:t.caseSensitive}),enumerable:!1}),e)for(let[r,i]of Object.entries(e))this.set(r,i)}set(e,t){let r=typeof(t==null?void 0:t.operators)=="string"?t.operators.split(/\s*[,| ]\s*/):t==null?void 0:t.operators;this._rules.set(e,cp({...t,operators:r}))}normalizeFilter(e,t,r){let i=typeof e=="string"?$o(e):e;return this.normalizeFilterAst(i,[],t,r)}normalizeFilterAst(e,t,r,i){if(e instanceof pe){if(t.push(e),this.normalizeFilterAst(e.left,t,r),!(e.left instanceof X&&e.left.field))throw new TypeError("Invalid filter query. Left side should be a data field.");let n=this._rules.get(e.left.value);if(!n)throw new Te({message:`Field '${e.left.value}' is not available for filter operation`,code:"UNACCEPTED_FILTER_FIELD",details:{field:e.left.value}});if(n.operators&&!n.operators.includes(e.op))throw new Te({message:`'${e.left.value}' field do not accept '${e.op}' filter operator`,code:"UNACCEPTED_FILTER_OPERATION",details:{field:e.left.value,operator:e.op}});return n.mappedField&&(e.left.value=n.mappedField),n.prepare&&(e.prepare=n.prepare),this.normalizeFilterAst(e.right,t,r),t.pop(),e}if(e instanceof ce)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof je)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n.expression,t,r)),t.pop(),e;if(e instanceof Ee)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof _e)return t.push(e),this.normalizeFilterAst(e.expression,t,r),t.pop(),e;if(e instanceof X&&r)return e.value=r.normalizeFieldPath(e.value,{scope:i}),e.field=r.getField(e.value,i),e.dataType=e.field.type,e;if(e instanceof F){let n=t.findLastIndex(s=>s instanceof pe);if(n>=0){let s=t[n];if((e===s.right||t[n+1]===s.right)&&s&&s.left instanceof X&&s.left.field){if(e.value==null&&!s.left.field.required)return e.value;let p;s.op==="like"||s.op==="!like"||s.op==="ilike"||s.op==="!ilike"?p=lp:p=this._decoderCache.get(s.left.field),p||(p=s.left.field.type.generateCodec("decode",{scope:i,projection:"*",ignoreWriteonlyFields:!0,coerce:!0}),this._decoderCache.set(s.left.field,p)),e.value=p(e.value)}}}return e}toJSON(){return this._rules.toObject()}[Symbol.iterator](){return this._rules.entries()}};a(Bo,"FilterRules");var Qe=Bo;import{asMutable as Rp}from"ts-gems";import{validator as Ap,vg as Y}from"valgen";import{omitUndefined as gp}from"@jsopen/objects";import{asMutable as wp}from"ts-gems";import{asMutable as xp}from"ts-gems";import{uid as Op}from"uid";var m={};Ts(m,{ComplexType:()=>Xe,EnumType:()=>Ze,HttpController:()=>Ht,HttpOperation:()=>qo,MappedType:()=>He,MixinType:()=>et,RpcController:()=>Ko,RpcOperation:()=>Vo,SimpleType:()=>tt,SpecVersion:()=>fp,UnionType:()=>rt,isComplexType:()=>up,isDataType:()=>mp,isEnumType:()=>Tp,isHttpController:()=>_p,isMappedType:()=>yp,isMixinType:()=>hp,isSimpleType:()=>dp,isUnionType:()=>Ep});var fp="1.0";var Xe;(function(o){o.Kind="ComplexType"})(Xe||(Xe={}));var Ze;(function(o){o.Kind="EnumType"})(Ze||(Ze={}));var He;(function(o){o.Kind="MappedType"})(He||(He={}));var et;(function(o){o.Kind="MixinType"})(et||(et={}));var tt;(function(o){o.Kind="SimpleType"})(tt||(tt={}));var rt;(function(o){o.Kind="UnionType"})(rt||(rt={}));var Ht;(function(o){o.Kind="HttpController"})(Ht||(Ht={}));var qo;(function(o){o.Kind="HttpOperation"})(qo||(qo={}));var Ko;(function(o){o.Kind="RpcController"})(Ko||(Ko={}));var Vo;(function(o){o.Kind="RpcOperation"})(Vo||(Vo={}));function mp(o){return o&&typeof o=="object"&&(o.kind===Xe.Kind||o.kind===Ze.Kind||o.kind===He.Kind||o.kind===tt.Kind||o.kind===et.Kind||o.kind===rt.Kind)}a(mp,"isDataType");function up(o){return o&&typeof o=="object"&&o.kind===Xe.Kind}a(up,"isComplexType");function dp(o){return o&&typeof o=="object"&&o.kind===tt.Kind}a(dp,"isSimpleType");function hp(o){return o&&typeof o=="object"&&o.kind===et.Kind}a(hp,"isMixinType");function yp(o){return o&&typeof o=="object"&&o.kind===He.Kind}a(yp,"isMappedType");function Tp(o){return o&&typeof o=="object"&&o.kind===Ze.Kind}a(Tp,"isEnumType");function Ep(o){return o&&typeof o=="object"&&o.kind===rt.Kind}a(Ep,"isUnionType");function _p(o){return o&&typeof o=="object"&&o.kind===Ht.Kind}a(_p,"isHttpController");var zo=class zo{constructor(e,t){this.element=e,this.parent=t}getDocument(){if(this._document)return this._document;if(this.element[Oe])return this.element;if(this.parent)return this._document=this.parent.getDocument();throw new Error("ApiDocument not found in document tree")}hasDataType(e,t){return!!this.findDataType(e,t)}findDataType(e,t){var i;let r=(i=this[k])==null?void 0:i.get(e);return r&&r.inScope(t)?r:this.parent?this.parent.findDataType(e,t):void 0}getDataType(e,t){let r=this.findDataType(e,t);if(r)return r;let i="";if(typeof e=="function")i=Reflect.getMetadata(h,e).name;else if(typeof e=="object"){let n=e[h];i=n==null?void 0:n.name}throw i||(e&&typeof e=="string"?i=e:typeof e=="function"&&(i=e.name)),r?new TypeError(`Data type${i?" ("+i+")":""} is not in requested scope (${t})`):new TypeError(`Unknown data type${i?" ("+i+")":""}`)}getDataTypeNameWithNs(e){if(!e.name)return;let t=this.getDocument().getDataTypeNs(e);return t?t+":"+e.name:e.name}getComplexType(e,t){let r=this.getDataType(e,t);if(r.kind===m.ComplexType.Kind)return r;throw new TypeError(`Data type "${r.name}" is not a ComplexType`)}getSimpleType(e,t){let r=this.getDataType(e,t);if(r.kind===m.SimpleType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a SimpleType`)}getEnumType(e,t){let r=this.getDataType(e,t);if(r.kind===m.EnumType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a EnumType`)}getMappedType(e,t){let r=this.getDataType(e,t);if(r.kind===m.MappedType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MappedType`)}getMixinType(e,t){let r=this.getDataType(e,t);if(r.kind===m.MixinType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MixinType`)}getUnionType(e,t){let r=this.getDataType(e,t);if(r.kind===m.UnionType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MixinType`)}};a(zo,"DocumentNode");var Ir=zo;var w=a(function(o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let e=xp(this);e.id=Op(16),Object.defineProperty(e,"node",{value:new Ir(this,o==null?void 0:o.node),enumerable:!1,writable:!0}),o&&Object.defineProperty(e,"owner",{value:o,enumerable:!1,writable:!0})},"DocumentElement"),Wo=class Wo{};a(Wo,"DocumentElementClass");var Jo=Wo;w.prototype=Jo.prototype;var it=Symbol.for("nodejs.util.inspect.custom"),qe="\x1B[0m",ot="\x1B[33m",nt="\x1B[35m";function er(o,e){return!e||o==="*"?!0:o?Array.isArray(e)?e.some(t=>typeof t=="string"?o===t:t.test(o)):typeof e=="string"?o===e:e.test(o):!1}a(er,"testScopeMatch");var _=a(function(o,e,t){if(!this)throw new TypeError('"this" should be passed to call class constructor');if(e!=null&&e.name&&!L.test(e.name))throw new TypeError(`"${e.name}" is not a valid DataType name`);w.call(this,o);let r=wp(this);r.kind=e.kind,r.scopePattern=e.scopePattern?Array.isArray(e.scopePattern)?e.scopePattern:[e.scopePattern]:void 0,r.name=e.name,r.description=e.description,r.abstract=e.abstract,r.examples=e.examples},"DataType"),Go=class Go extends w{get embedded(){return!this.name}inScope(e){return er(e,this.scopePattern)}toJSON(e){let t=this._locateBase(r=>!r.inScope(e==null?void 0:e.scope));if(t){let r=this.node.getDataTypeNameWithNs(t);throw new TypeError(`"${r}" model is not available for "${(e==null?void 0:e.scope)||"null"}" scope`)}return gp({kind:this.kind,description:this.description,abstract:this.abstract,examples:this.examples})}toString(){return`[${Object.getPrototypeOf(this).constructor.name} ${this.name||"#Embedded"}]`}[it](){return`[${ot+Object.getPrototypeOf(this).constructor.name+qe} ${nt+this.name+qe}]`}};a(Go,"DataTypeClass");var Yo=Go;_.prototype=Yo.prototype;var st=/^([+-])?([a-z$_][\w.]*)$/i,I=a(function(...o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;_.call(this,e,t,r);let i=Rp(this);i._fields=new S},"ComplexTypeBase"),Xo=class Xo extends _{fieldCount(e){if(e==="*")return this._fields.size;let t=0;for(let r of this.fields(e))t++;return t}fieldEntries(e){let t=this._fields.entries();if(e==="*")return t;let r;return{next(){for(;t&&(r=t.next(),!(r.done||r.value&&r.value[1].inScope(e))););return r.done?{done:r.done,value:void 0}:{done:r.done,value:[r.value[0],r.value[1].forScope(e)]}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}fields(e){let t=this.fieldEntries(e),r;return{next(){var i;return t?(r=t.next(),{done:r.done,value:(i=r.value)==null?void 0:i[1]}):{done:!0,value:void 0}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}fieldNames(e){if(e==="*")return this._fields.keys();let t=this.fieldEntries(e),r;return{next(){var i;return t?(r=t.next(),{done:r.done,value:(i=r.value)==null?void 0:i[0]}):{done:!0,value:void 0}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}findField(e,t){if(e.includes(".")){let i=this.parseFieldPath(e,{scope:t});if(i.length===0)throw new Error(`Field "${e}" does not exist in scope "${t}"`);let n=i.pop();return n==null?void 0:n.field}let r=this._fields.get(e);if(r&&r.inScope(t))return r.forScope(t)}getField(e,t){let r=this.findField(e,"*");if(r&&!r.inScope(t))throw new Error(`Field "${e}" does not exist in scope "${t||"null"}"`);if(!r)throw new Error(`Field (${e}) does not exist`);return r.forScope(t)}parseFieldPath(e,t){var d,z,hs;let r=this,i,n=e.split("."),s=n.length,p=[],c=this.owner.node.getDataType("object"),f=t==null?void 0:t.allowSigns,O=a(()=>p.map(Ie=>Ie.fieldName).join("."),"getStrPath");for(let Ie=0;Ie<s;Ie++){let J={fieldName:n[Ie],dataType:c};p.push(J);let mr=st.exec(n[Ie]);if(!mr)throw new TypeError(`Invalid field name (${O()})`);if(mr[1]&&((Ie===0&&f==="first"||f==="each")&&(J.sign=mr[1]),J.fieldName=mr[2]),r){if(r instanceof I){if(i=r.findField(J.fieldName,t==null?void 0:t.scope),i){J.fieldName=i.name,J.field=i,J.dataType=i.type,r=i.type;continue}if(((d=r.additionalFields)==null?void 0:d[0])===!0){J.additionalField=!0,J.dataType=c,r=void 0;continue}if(((z=r.additionalFields)==null?void 0:z[0])==="type"&&((hs=r.additionalFields)==null?void 0:hs[1])instanceof _){J.additionalField=!0,J.dataType=r.additionalFields[1],r=r.additionalFields[1];continue}throw new Error(`Unknown field (${p.map(ii=>ii.fieldName).join(".")})`)}throw new TypeError(`"${p.map(ii=>ii.fieldName).join(".")}" field is not a complex type and has no child fields`)}J.additionalField=!0,J.dataType=c}return p}normalizeFieldPath(e,t){return this.parseFieldPath(e,t).map(r=>(r.sign||"")+r.fieldName).join(".")}generateCodec(e,t){let r=Array.isArray(t==null?void 0:t.projection)?Us(t.projection):t==null?void 0:t.projection,i=this._generateSchema(e,{...t,projection:r,currentPath:""}),n;if(this.additionalFields instanceof _)n=this.additionalFields.generateCodec(e,t);else if(typeof this.additionalFields=="boolean")n=this.additionalFields;else if(Array.isArray(this.additionalFields))if(this.additionalFields.length<2)n="error";else{let s=n[1];n=Ap((p,c,f)=>c.fail(f,s,p))}return Y.isObject(i,{ctor:this.name==="object"?Object:this.ctor,additionalFields:n,name:this.name,coerce:!0,caseInSensitive:t==null?void 0:t.caseInSensitive,onFail:t==null?void 0:t.onFail})}_generateSchema(e,t){var c;let r={},{currentPath:i,projection:n}=t,s=!!(n&&Object.values(n).find(f=>!f.sign)),p;for(let f of this.fields("*")){if(!f.inScope(t.scope)||!(t.keepKeyFields&&this.keyField)&&(t.ignoreReadonlyFields&&f.readonly||t.ignoreWriteonlyFields&&f.writeonly)){r[f.name]=Y.isUndefined({coerce:!0});continue}p=f.name;let O;if(n!=="*"&&(O=n==null?void 0:n[p.toLowerCase()],(O==null?void 0:O.sign)==="-"||s&&!O||!s&&f.exclusive&&!O)){r[f.name]=Y.isUndefined({coerce:!0});continue}let d=this._generateFieldCodec(e,f,{...t,partial:t.partial==="deep"?t.partial:void 0,projection:typeof n=="object"?((c=n[p])==null?void 0:c.projection)||"*":n,currentPath:i+(i?".":"")+p});r[p]=t.partial||!f.required?Y.optional(d):Y.pipe([Y.required(d),Y.isNotEmpty()])}return t.allowPatchOperators&&(r._$pull=Y.optional(Y.isAny()),r._$push=Y.optional(Y.isAny())),r}_generateFieldCodec(e,t,r){let i=t.type.generateCodec(e,r);return t.fixed&&(i=Y.isEqual(t.fixed)),t.isArray&&(i=Y.isArray(i)),i}};a(Xo,"ComplexTypeBaseClass");var Qo=Xo;I.prototype=Qo.prototype;import"reflect-metadata";import{omitUndefined as Zo}from"@jsopen/objects";import{asMutable as bp}from"ts-gems";import{vg as Dp}from"valgen";var Z=a(function(...o){if(!this)return Z[b].apply(void 0,o);let[e,t,r]=o;_.call(this,e,t,r);let i=bp(this);if(i.kind=m.EnumType.Kind,t.base){if(!(t.base instanceof Z))throw new TypeError(`"${t.base.kind}" can't be set as base for a "${i.kind}"`);i.base=t.base}i.instance=t.instance,i.ownAttributes=v(t.attributes||{}),i.attributes=i.base?v(i.base.attributes):{};for(let[n,s]of Object.entries(i.ownAttributes))i.attributes[n]=s},"EnumType"),Ho=class Ho extends _{extendsFrom(e){var t;return e instanceof _||(e=this.node.getDataType(e)),e instanceof Z?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}generateCodec(){return Dp.isEnum(Object.keys(this.attributes))}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0;return Zo({...t,kind:this.kind,base:r,attributes:v(this.ownAttributes)})}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(Ho,"EnumTypeClass");var tr=Ho;Z.prototype=tr.prototype;Object.assign(Z,tr);function Np(o,...e){let t=e.length>=2?e[0]:void 0,r=e.length>=2?e[1]:e[0],i={},n=o;if(Array.isArray(o)){if(t){if(!Array.isArray(t))throw new TypeError('Both "target" and "base" arguments should be array');n=[...t,...o]}i={},o.forEach(p=>{var f;let c=(f=r==null?void 0:r.meanings)==null?void 0:f[p];i[p]=Zo({description:c})})}else{if(t){if(Array.isArray(t))throw new TypeError('Both "target" and "base" arguments should be enum object');n={...t,...o}}Object.keys(o).forEach(p=>{var f;let c=(f=r==null?void 0:r.meanings)==null?void 0:f[p];i[o[p]]=Zo({alias:p,description:c})})}let s={kind:m.EnumType.Kind,attributes:i,base:r==null?void 0:r.base,name:r==null?void 0:r.name,description:r==null?void 0:r.description};return Object.defineProperty(o,h,{value:s,enumerable:!1,configurable:!0,writable:!0}),n}a(Np,"EnumTypeFactory");Z.prototype=tr.prototype;Z[b]=Np;import{__decorate as Fp,__metadata as Mp}from"tslib";import{vg as Gs}from"valgen";import"reflect-metadata";import{omitUndefined as Ws}from"@jsopen/objects";import{asMutable as Sp}from"ts-gems";import{isAny as Ys}from"valgen";function en(o){let e=[],t=a(function(r){let i;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!L.test(o.name))throw new TypeError(`"${o.name}" is not a valid type name`);i=o.name}else i=r.name,i=i.toLowerCase();let n=Reflect.getOwnMetadata(h,r)||{};o&&Object.assign(n,o),n.kind=m.SimpleType.Kind,n.name=i,Reflect.defineMetadata(h,n,r);for(let s of e)s(n,r)},"decorator");return t.Example=(r,i)=>(e.push(n=>{n.examples=n.examples||[],n.examples.push({description:i,value:r})}),t),t}a(en,"SimpleTypeDecoratorFactory");function Js(o){return(e,t)=>{if(typeof t!="string")throw new TypeError("Symbol properties can't be decorated with Attribute");let r=Reflect.getOwnMetadata(h,e.constructor)||{},i=Reflect.getMetadata("design:type",e,t),n="string";i===Boolean?n="boolean":i===Number&&(n="number"),r.kind=m.SimpleType.Kind,r.attributes=r.attributes||{},r.attributes[t]={format:(o==null?void 0:o.format)||n,description:o==null?void 0:o.description,deprecated:o==null?void 0:o.deprecated},Reflect.defineMetadata(h,r,e.constructor)}}a(Js,"AttributeDecoratorFactory");var u=a(function(...o){var n,s;if(!this)return u[b](...o);let[e,t,r]=o;_.call(this,e,t,r);let i=Sp(this);if(i.kind=m.SimpleType.Kind,t.base){if(!(t.base instanceof u))throw new TypeError(`"${t.base.kind}" can't be set as base for a "${this.kind}"`);i.base=t.base}if(i.properties=t.properties,i.ownNameMappings={...t.nameMappings},i.nameMappings={...(n=i.base)==null?void 0:n.nameMappings,...t.nameMappings},i.ownAttributes=v(t.attributes||{}),i.attributes=i.base?v(i.base.attributes):{},i.ownAttributes)for(let[p,c]of Object.entries(i.ownAttributes)){if((s=i.attributes[p])!=null&&s.sealed)throw new TypeError(`Sealed attribute "${p}" can not be overwritten`);i.attributes[p]=c}i._generateDecoder=t.generateDecoder,i._generateEncoder=t.generateEncoder},"SimpleType"),rn=class rn extends _{extendsFrom(e){var t;return e instanceof _||(e=this.node.getDataType(e)),e instanceof u?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}generateCodec(e,t,r){let i={...this.properties,...r};if(e==="decode"){let s=this;for(;s;){if(s._generateDecoder)return s._generateDecoder(i,(t==null?void 0:t.documentElement)||this.owner,t==null?void 0:t.scope);s=this.base}return Ys}let n=this;for(;n;){if(n._generateEncoder)return n._generateEncoder(i,(t==null?void 0:t.documentElement)||this.owner,t==null?void 0:t.scope);n=this.base}return Ys}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0,i=Ws(this.ownAttributes),n;this.properties&&typeof this.properties.toJSON=="function"?n=this.properties.toJSON(this.properties,this.owner,e):n=this.properties?v(this.properties):{};let s={...t,kind:this.kind,base:r,attributes:i&&Object.keys(i).length?i:void 0,properties:Object.keys(n).length?n:void 0};return Object.keys(this.ownNameMappings).length&&(s.nameMappings={...this.ownNameMappings}),Ws(s,!0)}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(rn,"SimpleTypeClass");var tn=rn;u.prototype=tn.prototype;Object.assign(u,en);u[b]=en;u.Attribute=Js;var at,Pr=(at=class{constructor(e){e&&Object.assign(this,e)}[T](){return Gs.isBase64({coerce:!0})}[x](){return Gs.isBase64({coerce:!0})}},a(at,"Base64Type"),at);Pr=Fp([u({name:"base64",description:"A stream of bytes, base64 encoded",nameMappings:{js:"string",json:"string"}}),Mp("design:paramtypes",[Object])],Pr);import{__decorate as on,__metadata as nn}from"tslib";import{isDateString as Lr,toString as Qs,vg as Re}from"valgen";var pt,ct=(pt=class{constructor(e){e&&Object.assign(this,e)}[T](e){let t=Re.isDate({precision:"date",coerce:!0}),r=[];return e.minValue&&(Lr(e.minValue),r.push(Qs,Re.isGte(e.minValue))),e.maxValue&&(Lr(e.maxValue),r.push(Qs,Re.isLte(e.maxValue))),r.length>0?Re.pipe([t,...r],{returnIndex:0}):t}[x](e){let t=Re.isDateString({precision:"date",trim:"date",coerce:!0}),r=[];return e.minValue&&(Lr(e.minValue),r.push(Re.isGte(e.minValue))),e.maxValue&&(Lr(e.maxValue),r.push(Re.isLte(e.maxValue))),r.length>0?Re.pipe([t,...r],{returnIndex:0}):t}},a(pt,"DateType"),pt);on([u.Attribute({description:"Minimum value"}),nn("design:type",String)],ct.prototype,"minValue",void 0);on([u.Attribute({description:"Maximum value"}),nn("design:type",String)],ct.prototype,"maxValue",void 0);ct=on([u({name:"date",description:"A date without time",nameMappings:{js:"Date",json:"string"}}).Example("2021-04-18","Full date value"),nn("design:paramtypes",[Object])],ct);import{__decorate as sn,__metadata as an}from"tslib";import{vg as kr}from"valgen";var lt,ft=(lt=class{constructor(e){e&&Object.assign(this,e)}[T](e){let t=kr.isDateString({trim:"date",coerce:!0}),r=[];return e.minValue&&r.push(kr.isGte(e.minValue)),e.maxValue&&r.push(kr.isLte(e.maxValue)),r.length>0?kr.pipe([t,...r],{returnIndex:0}):t}[x](e){return this[T](e)}},a(lt,"DateStringType"),lt);sn([u.Attribute({description:"Minimum value"}),an("design:type",String)],ft.prototype,"minValue",void 0);sn([u.Attribute({description:"Maximum value"}),an("design:type",String)],ft.prototype,"maxValue",void 0);ft=sn([u({name:"datestring",description:"Date string value",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18","Full date value").Example("2021-04","Date value without day").Example("2021","Year only value"),an("design:paramtypes",[Object])],ft);import{__decorate as pn,__metadata as cn}from"tslib";import{isDateString as jr,toString as Xs,vg as Ae}from"valgen";var mt,ut=(mt=class{constructor(e){e&&Object.assign(this,e)}[T](e){let t=Ae.isDate({precision:"time",coerce:!0}),r=[];return e.minValue&&(jr(e.minValue),r.push(Xs,Ae.isGte(e.minValue))),e.maxValue&&(jr(e.maxValue),r.push(Xs,Ae.isLte(e.maxValue))),r.length>0?Ae.pipe([t,...r],{returnIndex:0}):t}[x](e){let t=Ae.isDateString({precision:"time",trim:"time",coerce:!0}),r=[];return e.minValue&&(jr(e.minValue),r.push(Ae.isGte(e.minValue))),e.maxValue&&(jr(e.maxValue),r.push(Ae.isLte(e.maxValue))),r.length>0?Ae.pipe([t,...r],{returnIndex:0}):t}},a(mt,"DateTimeType"),mt);pn([u.Attribute({description:"Minimum value"}),cn("design:type",String)],ut.prototype,"minValue",void 0);pn([u.Attribute({description:"Maximum value"}),cn("design:type",String)],ut.prototype,"maxValue",void 0);ut=pn([u({name:"datetime",description:"A full datetime value",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18T22:30:15").Example("2021-04-18 22:30:15").Example("2021-04-18 22:30"),cn("design:paramtypes",[Object])],ut);import{__decorate as ln,__metadata as fn}from"tslib";import{vg as Cr}from"valgen";var dt,ht=(dt=class{constructor(e){e&&Object.assign(this,e)}[T](e){let t=Cr.isDateString({coerce:!0}),r=[];return e.minValue&&r.push(Cr.isGte(e.minValue)),e.maxValue&&r.push(Cr.isLte(e.maxValue)),r.length>0?Cr.pipe([t,...r]):t}[x](e){return this[T](e)}},a(dt,"DateTimeStringType"),dt);ln([u.Attribute({description:"Minimum value"}),fn("design:type",String)],ht.prototype,"minValue",void 0);ln([u.Attribute({description:"Maximum value"}),fn("design:type",String)],ht.prototype,"maxValue",void 0);ht=ln([u({name:"datetimestring",description:"DateTime string value",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18T22:30:15+01:00","Full date-time value with timezone").Example("2021-04-18T22:30:15","Full date-time value without timezone").Example("2021-04-18 22:30","Date-time value").Example("2021-04-18","Date value").Example("2021-04","Date value without day").Example("2021","Year only value"),fn("design:paramtypes",[Object])],ht);import{__decorate as fe,__metadata as me}from"tslib";import{vg as Zs}from"valgen";var yt,G=(yt=class{constructor(e){e&&Object.assign(this,e)}[T](e){return Zs.isEmail({...e,coerce:!0})}[x](e){return Zs.isEmail({...e,coerce:!0})}},a(yt,"EmailType"),yt);fe([u.Attribute({description:"If set to `true`, the validator will also match `Display Name <email-address>",default:!1}),me("design:type",Boolean)],G.prototype,"allowDisplayName",void 0);fe([u.Attribute({description:"If set to `true`, the validator will reject strings without the format `Display Name <email-address>",default:!1}),me("design:type",Boolean)],G.prototype,"requireDisplayName",void 0);fe([u.Attribute({description:"If set to `false`, the validator will not allow any non-English UTF8 character in email address's local part",default:!0}),me("design:type",Boolean)],G.prototype,"utf8LocalPart",void 0);fe([u.Attribute({description:"If set to `true`, the validator will not check for the standard max length of an email",default:!1}),me("design:type",Boolean)],G.prototype,"ignoreMaxLength",void 0);fe([u.Attribute({description:"If set to `true`, the validator will allow IP addresses in the host part",default:!1}),me("design:type",Boolean)],G.prototype,"allowIpDomain",void 0);fe([u.Attribute({description:"If set to `true`, some additional validation will be enabled, e.g. disallowing certain syntactically valid email addresses that are rejected by GMail.",default:!1}),me("design:type",Boolean)],G.prototype,"domainSpecificValidation",void 0);fe([u.Attribute({description:"If set to an array of strings and the part of the email after the @ symbol one of the strings defined in it, the validation fails."}),me("design:type",Array)],G.prototype,"hostBlacklist",void 0);fe([u.Attribute({description:"If set to an array of strings and the part of the email after the @ symbol matches none of the strings defined in it, the validation fails."}),me("design:type",Array)],G.prototype,"hostWhitelist",void 0);fe([u.Attribute({description:"If set to a string, then the validator will reject emails that include any of the characters in the string, in the name part."}),me("design:type",String)],G.prototype,"blacklistedChars",void 0);G=fe([u({name:"email",description:"An email value",nameMappings:{js:"string",json:"string"}}).Example("some.body@example.com"),me("design:paramtypes",[Object])],G);import{__decorate as mn,__metadata as un}from"tslib";import{toString as vp,validator as Ip,vg as Pp}from"valgen";var Tt,$=(Tt=class{constructor(e){e&&Object.assign(this,e)}[T](e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),n=e.allowSigns,s=Ip("decodeFieldPath",p=>i.normalizeFieldPath(p,{allowSigns:n,scope:r}));return Pp.pipe([vp,s])}[x](e,t,r){return this[T](e,t,r)}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");_.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),allowSigns:e.allowSigns}}},a(Tt,"FieldPathType"),Tt);mn([u.Attribute({description:"Data type which field belong to"}),un("design:type",Object)],$.prototype,"dataType",void 0);mn([u.Attribute({description:'Determines if signs (+,-) are allowed. If set "first" signs are allowed only beginning of the field pathIf set "each" signs are allowed at each field in the path'}),un("design:type",String)],$.prototype,"allowSigns",void 0);$=mn([u({name:"fieldpath",description:"Field path",nameMappings:{js:"string",json:"string"}}),un("design:paramtypes",[Object])],$);import{__decorate as dn,__metadata as hn}from"tslib";import{validator as ea}from"valgen";var rr={};Ts(rr,{$and:()=>kp,$arithmetic:()=>ec,$array:()=>Hs,$date:()=>jp,$eq:()=>Bp,$field:()=>$p,$gt:()=>Kp,$gte:()=>Vp,$ilike:()=>Xp,$in:()=>Wp,$like:()=>Gp,$lt:()=>zp,$lte:()=>Jp,$ne:()=>qp,$notILike:()=>Zp,$notIn:()=>Yp,$notLike:()=>Qp,$number:()=>Up,$or:()=>Lp,$paren:()=>Hp,$time:()=>Cp,ArithmeticExpression:()=>je,ArithmeticExpressionItem:()=>Er,ArrayExpression:()=>Ee,Ast:()=>zt,BooleanLiteral:()=>Ce,ComparisonExpression:()=>pe,DateLiteral:()=>we,DateTimeLiteral:()=>Yt,Expression:()=>j,FilterTreeVisitor:()=>Xt,Literal:()=>F,LogicalExpression:()=>ce,NegativeExpression:()=>Jt,NullLiteral:()=>Ue,NumberLiteral:()=>xe,OpraErrorListener:()=>Zt,ParenthesizedExpression:()=>_e,QualifiedIdentifier:()=>X,StringLiteral:()=>$e,Term:()=>ke,TimeLiteral:()=>Be,parse:()=>$o});function Lp(...o){return new ce({op:"or",items:o})}a(Lp,"$or");function kp(...o){return new ce({op:"and",items:o})}a(kp,"$and");function jp(o){return new we(o)}a(jp,"$date");function Cp(o){return new Be(o)}a(Cp,"$time");function Up(o){return new xe(o)}a(Up,"$number");function Hs(...o){return new Ee(o.map(Ur))}a(Hs,"$array");function $p(o){return new X(o)}a($p,"$field");function Bp(o,e){return H("=",o,e)}a(Bp,"$eq");function qp(o,e){return H("!=",o,e)}a(qp,"$ne");function Kp(o,e){return H(">",o,e)}a(Kp,"$gt");function Vp(o,e){return H(">=",o,e)}a(Vp,"$gte");function zp(o,e){return H("<",o,e)}a(zp,"$lt");function Jp(o,e){return H("<=",o,e)}a(Jp,"$lte");function Wp(o,e){return H("in",o,e)}a(Wp,"$in");function Yp(o,e){return H("!in",o,e)}a(Yp,"$notIn");function Gp(o,e){return H("like",o,e)}a(Gp,"$like");function Qp(o,e){return H("!like",o,e)}a(Qp,"$notLike");function Xp(o,e){return H("ilike",o,e)}a(Xp,"$ilike");function Zp(o,e){return H("!ilike",o,e)}a(Zp,"$notILike");function Hp(o){return new _e(o)}a(Hp,"$paren");function ec(o){let e=new je;return e.add=t=>(e.append("+",Et(t)),e),e.sub=t=>(e.append("-",Et(t)),e),e.mul=t=>(e.append("*",Et(t)),e),e.div=t=>(e.append("/",Et(t)),e),e.append("+",Ur(o)),e}a(ec,"$arithmetic");function H(o,e,t){let r=typeof e=="string"?new X(e):Ur(e),i=Ur(t);return new pe({op:o,left:r,right:i})}a(H,"comparisonExpression");var Ur=a(o=>Array.isArray(o)?Hs(...o.map(Et)):Et(o),"wrapEntryValue"),Et=a(o=>o instanceof j?o:typeof o=="boolean"?new Ce(o):typeof o=="number"||typeof o=="bigint"?new xe(o):o==null?new Ue:o instanceof Date?new we(o):new $e(""+o),"_wrapEntryValue");var _t,be=(_t=class{constructor(e){e&&Object.assign(this,e)}[T](e,t){let r=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),i=e.rules?new Qe(e.rules):void 0;return tc(r,i)}[x](){return rc}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");_.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),rules:e.rules}}},a(_t,"FilterType"),_t);dn([u.Attribute({description:"Data type which filtering fields belong to"}),hn("design:type",Object)],be.prototype,"dataType",void 0);dn([u.Attribute({description:"Stringified JSON object defines filtering rules",format:"string"}),hn("design:type",Object)],be.prototype,"rules",void 0);be=dn([u({name:"filter",description:"A query filter",nameMappings:{js:"object",json:"string"}}),hn("design:paramtypes",[Object])],be);var tc=a((o,e,t)=>ea("decodeFilter",(r,i,n)=>{if(typeof r=="string")try{let s=rr.parse(r);return e?e.normalizeFilter(s,o,t):s}catch(s){i.fail(n,`Not a valid filter expression. ${s.message}`,r);return}i.fail(n,"Nt a valid filter expression string",r)}),"decodeFilter"),rc=ea("encodeFilter",(o,e,t)=>{if(o instanceof rr.Ast)return o.toString();e.fail(t,"Not a valid filter expression",o)});import{__decorate as ic,__metadata as oc}from"tslib";import{vg as ta}from"valgen";var xt,$r=(xt=class{constructor(e){e&&Object.assign(this,e)}[T](){return ta.isObjectId({coerce:!0})}[x](){return ta.isObjectId({coerce:!0})}},a(xt,"ObjectIdType"),xt);$r=ic([u({name:"ObjectId",description:"A MongoDB ObjectID value",nameMappings:{js:"object",json:"string"}}),oc("design:paramtypes",[Object])],$r);import{__decorate as de,__metadata as he}from"tslib";import{omitUndefined as ra}from"@jsopen/objects";import{asMutable as sc}from"ts-gems";import{omitUndefined as nc}from"@jsopen/objects";function yn(o){let e=[],t=a(function(r,i){if(typeof i!="string")throw new TypeError("Symbol properties can't be used as a field");let n=Reflect.getOwnMetadata(h,r.constructor)||{};n.kind=m.ComplexType.Kind,n.fields=n.fields||{};let s=Reflect.getMetadata("design:type",r,i),p=n.fields[i]={...o};s===Array?p.isArray=!0:p.type=p.type||s,Reflect.defineMetadata(h,n,r.constructor);for(let c of e)c(p)},"decorator");return t.Override=(r,i)=>(e.push(n=>{n.override=n.override||[],n.override.push(nc({...i,scopePattern:Array.isArray(r)?r:[r],type:void 0,isArray:void 0,isNestedEntity:void 0}))}),t),t}a(yn,"ApiFieldDecoratorFactory");var P=a(function(...o){if(!this){let[n]=o;return P[b](n)}let[e,t]=o;w.call(this,e);let r=sc(this);r.name=t.name;let i=t.origin||e;if(!(i instanceof I))throw new Error("Field origin should be one of ComplexType, MappedType or MixinType");r.origin=i,r.scopePattern=t.scopePattern?Array.isArray(t.scopePattern)?t.scopePattern:[t.scopePattern]:void 0,r.type=t.type||e.node.getDataType("any"),r.description=t.description,r.isArray=t.isArray,r.isNestedEntity=t.isNestedEntity,r.default=t.default,r.fixed=t.fixed,r.required=t.required,r.exclusive=t.exclusive,r.localization=t.localization,r.keyField=t.keyField,r.deprecated=t.deprecated,r.readonly=t.readonly,r.writeonly=t.writeonly,r.examples=t.examples,r.override=t.override},"ApiField"),En=class En extends w{inScope(e){return er(e,this.scopePattern)}forScope(e){if(!(e&&this.override))return this;this._overrideCache=this._overrideCache||{};let t=this._overrideCache[e];if(t)return t;if(e!=="*"){for(let r of this.override)if(er(e,r.scopePattern)){t=ra({...r,id:void 0,owner:void 0,node:void 0,origin:void 0,name:void 0,type:void 0,override:void 0,_overrideCache:void 0,scopePattern:r.scopePattern}),Object.setPrototypeOf(t,this);break}}return t=t||this,this._overrideCache[e]=t,t}toJSON(e){var r;let t=this.type?this.node.getDataTypeNameWithNs(this.type):void 0;return ra({type:t||((r=this.type)==null?void 0:r.toJSON(e)),description:this.description,isArray:this.isArray||void 0,isNestedEntity:this.isNestedEntity||void 0,default:this.default,fixed:this.fixed,required:this.required||void 0,exclusive:this.exclusive||void 0,localization:this.localization||void 0,keyField:this.keyField||void 0,deprecated:this.deprecated||void 0,readonly:this.readonly||void 0,writeonly:this.writeonly||void 0,examples:this.examples})}};a(En,"ApiFieldClass");var Tn=En;P.prototype=Tn.prototype;Object.assign(P,yn);P[b]=yn;import"reflect-metadata";import{omitUndefined as pc}from"@jsopen/objects";import{asMutable as cc}from"ts-gems";var _n=class _n extends Te{constructor(){super(""),this.details=[]}add(e){return this.details.push(e),this}};a(_n,"OpraDocumentError");var Ot=_n;var xn=class xn{constructor(e){this.path="",this.error=new Ot,this.showErrorDetails=!0,this.maxErrors=(e==null?void 0:e.maxErrors)||0,this.error.message=""}addError(e){if(!this.error.details.length)if(e instanceof Error)this.error.stack=e.stack;else{let t=new Error;Error.captureStackTrace(t,this.addError),this.error.stack=t.stack}if(this.error.add({message:typeof e=="string"?e:e.message,path:this.path,...typeof e=="object"?e:void 0}),this.error.details.length>=this.maxErrors)throw this.error}enter(e,t){let r=this.path;this.path=this.path+e;try{return t()}catch(i){i!==this.error&&this.addError(i)}finally{this.path=r}}async enterAsync(e,t){let r=this.path;this.path=this.path+e;try{return await t()}catch(i){i!==this.error&&this.addError(i)}finally{this.path=r}}extend(e){let t={...e};return Object.setPrototypeOf(t,this),t}};a(xn,"DocumentInitContext");var ue=xn;import{omit as ac}from"@jsopen/objects";function On(o){return function(e){let t;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!L.test(o.name))throw new TypeError(`"${o.name}" is not a valid type name`);t=o.name}else t=e.name;let r=Reflect.getOwnMetadata(h,e);r||(r={},Reflect.defineMetadata(h,r,e)),r.kind=m.ComplexType.Kind,r.name=t,o&&Object.assign(r,ac(o,["name"]))}}a(On,"ComplexTypeDecorator");var ee=a(function(...o){var n;if(!this)return ee[b].apply(void 0,o);let[e,t]=o,r=o[2]||new ue({maxErrors:0});I.call(this,e,t,r);let i=cc(this);i.kind=m.ComplexType.Kind,i.discriminatorField=t.discriminatorField,i.discriminatorValue=t.discriminatorValue,t.base&&r.enter(".base",()=>{if(!(t.base instanceof I))throw new TypeError(`"${t.base.kind}" can't be set as base for a "${this.kind}"`);i.base=t.base,i.additionalFields=i.base.additionalFields,i.keyField=i.base.keyField;for(let s of i.base.fields("*"))i._fields.set(s.name,new P(this,s))}),t.additionalFields!==void 0&&(i.additionalFields=t.additionalFields),t.keyField!==void 0&&(i.keyField=t.keyField),i.ctor=t.ctor||((n=i.base)==null?void 0:n.ctor),t.fields&&r.enter(".fields",()=>{for(let[s,p]of Object.entries(t.fields)){let c=new P(this,{...p,name:s});this._fields.set(c.name,c)}})},"ComplexType"),wn=class wn extends I{extendsFrom(e){var t;return e instanceof _||(e=this.node.getDataType(e)),e instanceof I?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0,i={...t,kind:this.kind,base:this.base?r||this.base.toJSON(e):void 0,discriminatorField:this.discriminatorField,discriminatorValue:this.discriminatorValue};if(this.additionalFields)if(this.additionalFields instanceof _){let n=this.node.getDataTypeNameWithNs(this.additionalFields);i.additionalFields=n||this.additionalFields.toJSON(e)}else i.additionalFields=this.additionalFields;if(this._fields.size){let n={},s=0;for(let p of this._fields.values())p.origin===this&&p.inScope(e==null?void 0:e.scope)&&(n[p.name]=p.toJSON(e),s++);s&&(i.fields=n)}return pc(i)}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(wn,"ComplexTypeClass");var gn=wn;ee.prototype=gn.prototype;Object.assign(ee,On);ee[b]=On;var gt,Q=(gt=class{constructor(e){e&&Object.assign(this,e)}},a(gt,"OperationResult"),gt);de([P(),he("design:type",Number)],Q.prototype,"affected",void 0);de([P(),he("design:type",Number)],Q.prototype,"totalMatches",void 0);de([P(),he("design:type",String)],Q.prototype,"context",void 0);de([P(),he("design:type",String)],Q.prototype,"type",void 0);de([P(),he("design:type",String)],Q.prototype,"message",void 0);de([P({type:"any"}),he("design:type",Object)],Q.prototype,"payload",void 0);de([P({type:"object"}),he("design:type",Array)],Q.prototype,"errors",void 0);Q=de([ee({name:"OperationResult",description:"Operation result"}),he("design:paramtypes",[Object])],Q);(function(o){function e(t){var i;let r=(i=class extends o{constructor(...s){super(...s)}},a(i,"OperationResult_"),i);return de([P({type:t,required:!0}),he("design:type",Object)],r.prototype,"payload",void 0),r=de([ee({embedded:!0}),he("design:paramtypes",[Object])],r),r}a(e,"forPayload"),o.forPayload=e})(Q||(Q={}));import{__decorate as Rn,__metadata as An}from"tslib";import{vg as Br}from"valgen";var lc=/^([0-1][0-9]|2[0-4]):([0-5][0-9])(?::([0-5][0-9]))?$/,wt,Rt=(wt=class{constructor(e){e&&Object.assign(this,e)}[T](e){let t=Br.matches(lc,{formatName:"time",coerce:!0}),r=[];return e.minValue&&r.push(Br.isGte(e.minValue)),e.maxValue&&r.push(Br.isLte(e.maxValue)),r.length>0?Br.pipe([t,...r],{returnIndex:0}):t}[x](e){return this[T](e)}},a(wt,"TimeType"),wt);Rn([u.Attribute({description:"Minimum value"}),An("design:type",String)],Rt.prototype,"minValue",void 0);Rn([u.Attribute({description:"Maximum value"}),An("design:type",String)],Rt.prototype,"maxValue",void 0);Rt=Rn([u({name:"time",description:"Time string in 24h format",nameMappings:{js:"string",json:"string"}}).Example("18:23:00","Full time value").Example("18:23:00","Time value without seconds"),An("design:paramtypes",[Object])],Rt);import{__decorate as fc,__metadata as mc}from"tslib";import{vg as ia}from"valgen";var At,qr=(At=class{constructor(e){e&&Object.assign(this,e)}[T](){return ia.isURL({coerce:!0})}[x](){return ia.isURL({coerce:!0})}},a(At,"UrlType"),At);qr=fc([u({name:"url",description:"A Uniform Resource Identifier Reference (RFC 3986 icon) value",nameMappings:{js:"string",json:"string"}}).Example("http://tempuri.org"),mc("design:paramtypes",[Object])],qr);import{__decorate as na,__metadata as sa}from"tslib";import{vg as oa}from"valgen";var bt,ir=(bt=class{constructor(e){e&&Object.assign(this,e)}[T](e){return oa.isUUID(e==null?void 0:e.version,{coerce:!0})}[x](e){return oa.isUUID(e==null?void 0:e.version,{coerce:!0})}},a(bt,"UuidType"),bt);na([u.Attribute({description:"Version of the UUID"}),sa("design:type",Number)],ir.prototype,"version",void 0);ir=na([u({name:"uuid",description:"A Universal Unique Identifier (UUID) value",nameMappings:{js:"string",json:"string"}}),sa("design:paramtypes",[Object])],ir);import uc from"path-browserify";import{omitUndefined as dc}from"@jsopen/objects";import{asMutable as hc}from"ts-gems";var aa,pa,te=Symbol.for("kMap"),or=Symbol.for("kCtorMap"),bn=class bn{constructor(){this[aa]=new S,this[pa]=new WeakMap}get size(){return this[te].size}forEach(e,t){this[te].forEach(e,t)}get(e){let t=typeof e=="string"?e:this[or].get(e);if(!t&&typeof e=="function"){let i=Reflect.getMetadata(h,e);t=i==null?void 0:i.name}if(!t&&typeof e=="object"){let i=e[h];t=i==null?void 0:i.name}if(!t)return;let r=this[te].get(t);if(r)return typeof e=="function"&&r.kind==="ComplexType"?r.ctor===e?r:void 0:r}set(e,t){this[te].set(e,t),t.ctor?this[or].set(t.ctor,e):t.instance&&this[or].set(t.instance,e)}has(e){if(e instanceof _)return!!e.name&&this[te].has(e.name);let t=typeof e=="string"?e:this[or].get(e);return t?this[te].has(t):!1}keys(){return this[te].keys()}values(){return this[te].values()}entries(){return this[te].entries()}sort(e){return this[te].sort(e),this}[(aa=te,pa=or,Symbol.iterator)](){return this[te][Symbol.iterator]()}};a(bn,"DataTypeMap");var re=bn;function N(o,e){let t=a((r,i)=>{if(typeof i!="string")throw new TypeError("Symbol properties can not be decorated");let n={...e,kind:m.HttpOperation.Kind},s=Reflect.getOwnMetadata(oe,r.constructor)||{};s.operations=s.operations||{},s.operations[i]=n;for(let p of o)p(n);Reflect.defineMetadata(oe,s,r.constructor)},"decorator");return t.Cookie=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"cookie",type:i}:{...i,name:r,location:"cookie"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="cookie"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.Header=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"header",type:i}:{...i,name:r,location:"header"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="header"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.QueryParam=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"query",type:i}:{...i,name:r,location:"query"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="query"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.PathParam=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"path",type:i}:{...i,name:r,location:"path"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="path"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.Response=(r,i)=>{let n={...i,statusCode:r};return n.type&&(n.contentType=n.contentType||A.opra_response_json,n.contentEncoding=n.contentEncoding||"utf-8"),n.contentType===A.opra_response_json&&(n.contentEncoding=n.contentEncoding||"utf-8"),o.push(s=>{s.responses=s.responses||[],s.responses.push(n)}),t},t.RequestContent=function(r){let i=typeof r=="object"?r:{type:r};return i.type&&(i.contentType=i.contentType||A.json,i.contentEncoding=i.contentEncoding||"utf-8"),o.push(n=>{n.requestBody=n.requestBody||{required:!0,content:[]},n.requestBody.content=n.requestBody.content||[],n.requestBody.content.push(i)}),t},t.MultipartContent=function(r,i){let n={...r,contentType:(r==null?void 0:r.contentType)||"multipart/form-data"};if(o.push(s=>{s.requestBody=s.requestBody||{required:!0,content:[]},s.requestBody.content=s.requestBody.content||[],s.requestBody.content.push(n)}),i){let s={Field(p,c){return n.multipartFields=n.multipartFields||[],n.multipartFields.push({fieldName:p,fieldType:"field",...c}),s},File(p,c){return n.multipartFields=n.multipartFields||[],n.multipartFields.push({fieldName:p,fieldType:"file",...c}),s}};i(s)}return t},t.UseType=(...r)=>(o.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),t}a(N,"HttpOperationDecoratorFactory");var R=a(function(...o){if(!this){let[i]=o,n=[];return R[b].call(void 0,n,i)}let[e,t]=o;if(w.call(this,e),!L.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=hc(this);r.parameters=[],r.responses=[],r.types=r.node[k]=new re,r.name=t.name,r.path=t.path,r.mergePath=t.mergePath,r.method=t.method||"GET",r.description=t.description,r.composition=t.composition,r.compositionOptions=t.compositionOptions?v(t.compositionOptions):void 0},"HttpOperation"),Nn=class Nn extends w{findParameter(e,t){let r=e.toLowerCase(),i;for(i of this.parameters)if(!(t&&t!==i.location)&&(typeof i.name=="string"&&(i._nameLower=i._nameLower||i.name.toLowerCase(),i._nameLower===r)||i.name instanceof RegExp&&i.name.test(e)))return i}getFullUrl(){let e=this.owner.getFullUrl();return e?this.path?this.mergePath?e+this.path:uc.posix.join(e,this.path):e:this.path||"/"}toJSON(e){var r;let t=dc({kind:m.HttpOperation.Kind,description:this.description,method:this.method,path:this.path,mergePath:this.mergePath,composition:this.composition,requestBody:(r=this.requestBody)==null?void 0:r.toJSON(e)});if(this.types.size){t.types={};for(let i of this.types.values())t.types[i.name]=i.toJSON(e)}if(this.parameters.length){t.parameters=[];for(let i of this.parameters)t.parameters.push(i.toJSON(e))}return this.responses.length&&(t.responses=this.responses.map(i=>i.toJSON(e))),t}};a(Nn,"HttpOperationClass");var Dn=Nn;R.prototype=Dn.prototype;R[b]=N;R.GET=function(o){return N([],{...o,method:"GET"})};R.DELETE=function(o){return N([],{...o,method:"DELETE"})};R.HEAD=function(o){return N([],{...o,method:"HEAD"})};R.OPTIONS=function(o){return N([],{...o,method:"OPTIONS"})};R.PATCH=function(o){return N([],{...o,method:"PATCH"})};R.POST=function(o){return N([],{...o,method:"POST"})};R.PUT=function(o){return N([],{...o,method:"PUT"})};R.SEARCH=function(o){return N([],{...o,method:"SEARCH"})};R.Entity={};function B(o){if(typeof o=="string")return o;let e=Reflect.getMetadata(h,o);if(!e)throw new TypeError(`Type (${o}) is not decorated with any datatype decorators`);if(e!=null&&e.name)return e.name;throw new TypeError("You should provide named data type but embedded one found")}a(B,"getDataTypeName");function De(o,e){return(t,r)=>{let i=typeof r=="string"||typeof r=="function"?{name:t,location:"path",type:r,keyParam:!0}:{...r,name:t,location:"path",keyParam:!0};return o.PathParam(t,i),e.push(n=>{var s;(s=n.path)!=null&&s.includes(":"+t)||(n.path=(n.path||"")+"@:"+t),n.mergePath=!0}),o}}a(De,"createKeyParamDecorator");function ca(o,e){return(...t)=>{let r=typeof t[0]=="object"?t[0]:t.reduce((s,p)=>{let c=p.split(":");return s[c[0]]=c[1]||c[0],s},{}),i=Object.keys(r).reduce((s,p)=>{let c=st.exec(p),f=st.exec(r[p]);return c&&f&&(s[c[2]]=f[2]),s},{}),n=Object.keys(r).reduce((s,p)=>{let c=st.exec(p);return c&&(c[1]!="-"&&(s[c[2]]=c[2]),c[1]!="+"&&(s["-"+c[2]]="-"+c[2])),s},{});return e.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.sortFields=i}),o.QueryParam("sort",{description:"Determines sort fields",type:Z(n),isArray:!0,arraySeparator:",",parser:a(s=>s.map(p=>{let c=st.exec(p);return c?(c[1]||"")+i[c[2]]:p}),"parser")}),o}}a(ca,"createSortFieldsDecorator");function Ne(o,e,t){let r=Reflect.getMetadata("FilterRules",o);r||(r=new Qe,Reflect.defineMetadata("FilterRules",r,o));let i=Reflect.getMetadata("FilterType",o);return i||(i=new be({dataType:t}),i.rules={},Reflect.defineMetadata("FilterType",i,o)),(n,s)=>{let p=(Array.isArray(s)?{operators:s}:typeof s=="string"?{operators:s.split(/\s*,\s*/)}:s)||{};if(p.operators=p.operators||["=","!="],n.includes(":")){let c=n.split(":");n=c[0],p.mappedField=c[1]}return e.push(()=>{r.set(n,p),i.rules=r.toJSON()}),o.QueryParam("filter",{type:i,description:"Determines filter fields"}),o}}a(Ne,"createFilterDecorator");R.Entity.Create=function(o,e){var n;let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=N(r,{method:"POST",...t,composition:"Entity.Create",requestBody:{immediateFetch:!0,...t.requestBody,required:!0}});return i.QueryParam("projection",{description:"Determines fields projection",type:new $({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(g.CREATED,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the created resource.',contentType:A.opra_response_json,type:t.type,partial:"deep"}).Response(g.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:A.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=B(t.type)}),i};R.Entity.Delete=function(o,e){let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=N(r,{method:"DELETE",...t,composition:"Entity.Delete"});return i.Response(g.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:A.opra_response_json}).Response(g.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:A.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=B(t.type)}),i.KeyParam=De(i,r),i};R.Entity.DeleteMany=function(o,e){let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=N(r,{method:"DELETE",...t,composition:"Entity.DeleteMany"});return i.Response(g.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:A.opra_response_json}).Response(g.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:A.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=B(t.type)}),i.Filter=Ne(i,r,t.type),i};import{__decorate as yc,__metadata as Tc}from"tslib";import{isAny as la}from"valgen";var Dt,Kr=(Dt=class{constructor(e){e&&Object.assign(this,e)}[T](){return la}[x](){return la}},a(Dt,"AnyType"),Dt);Kr=yc([u({name:"any",description:"Represents any value"}),Tc("design:paramtypes",[Object])],Kr);import{__decorate as Ec,__metadata as _c}from"tslib";import{toBigint as ma,vg as vn}from"valgen";import{__decorate as Fn,__metadata as Mn}from"tslib";import{toNumber as fa,vg as Sn}from"valgen";var Nt,ye=(Nt=class{constructor(e){e&&Object.assign(this,e)}[T](e){let t=[];return e.minValue&&t.push(Sn.isGte(e.minValue)),e.maxValue&&t.push(Sn.isLte(e.maxValue)),t.length>0?Sn.pipe([fa,...t],{returnIndex:0}):fa}[x](e){return this[T](e)}},a(Nt,"NumberType"),Nt);Fn([u.Attribute({description:"Determines the minimum value"}),Mn("design:type",Number)],ye.prototype,"minValue",void 0);Fn([u.Attribute({description:"Determines the maximum value"}),Mn("design:type",Number)],ye.prototype,"maxValue",void 0);ye=Fn([u({name:"number",description:"Both Integer as well as Floating-Point numbers",nameMappings:{js:"number",json:"number"}}),Mn("design:paramtypes",[Object])],ye);var St,Vr=(St=class extends ye{constructor(e){super(e)}[T](e){let t=[];return e.minValue&&t.push(vn.isGte(e.minValue)),e.maxValue&&t.push(vn.isLte(e.maxValue)),t.length>0?vn.pipe([ma,...t],{returnIndex:0}):ma}[x](e){return this[T](e)}},a(St,"BigintType"),St);Vr=Ec([u({name:"bigint",description:"BigInt number",nameMappings:{js:"bigint",json:"string"}}),_c("design:paramtypes",[Object])],Vr);import{__decorate as xc,__metadata as Oc}from"tslib";import{toBoolean as ua}from"valgen";var Ft,zr=(Ft=class{constructor(e){e&&Object.assign(this,e)}[T](){return ua}[x](){return ua}},a(Ft,"BooleanType"),Ft);zr=xc([u({name:"boolean",description:"Simple true/false value",nameMappings:{js:"boolean",json:"boolean"}}),Oc("design:paramtypes",[Object])],zr);import{__decorate as gc,__metadata as wc}from"tslib";import{toInteger as da,vg as In}from"valgen";var Mt,Ke=(Mt=class extends ye{constructor(e){super(e)}[T](e){let t=[];return e.minValue&&t.push(In.isGte(e.minValue)),e.maxValue&&t.push(In.isLte(e.maxValue)),t.length>0?In.pipe([da,...t],{returnIndex:0}):da}[x](e){return this[T](e)}},a(Mt,"IntegerType"),Mt);Ke=gc([u({name:"integer",description:"An integer number",nameMappings:{js:"number",json:"number"}}),wc("design:paramtypes",[Object])],Ke);import{__decorate as Rc,__metadata as Ac}from"tslib";import{isNull as ha}from"valgen";var vt,Jr=(vt=class{constructor(e){e&&Object.assign(this,e)}[T](){return ha}[x](){return ha}},a(vt,"NullType"),vt);Jr=Rc([u({name:"null",description:"A Null value",nameMappings:{js:"null",json:"null"}}),Ac("design:paramtypes",[Object])],Jr);import{__decorate as bc,__metadata as Dc}from"tslib";var It,Wr=(It=class{constructor(e){e&&Object.assign(this,e)}},a(It,"ObjectType"),It);Wr=bc([ee({name:"object",description:"A non modelled object",additionalFields:!0}),Dc("design:paramtypes",[Object])],Wr);import{__decorate as nr,__metadata as sr}from"tslib";import{toString as ya,vg as Yr}from"valgen";var Pt,Se=(Pt=class{constructor(e){e&&Object.assign(this,e)}[T](e){let t=[];if(e.pattern){let r=e.patternName;r||(r=Reflect.getMetadata(h,Object.getPrototypeOf(this).constructor).name),t.push(Yr.matches(e.pattern,{formatName:r}))}return e.minLength&&t.push(Yr.lengthMin(e.minLength)),e.maxLength&&t.push(Yr.lengthMax(e.maxLength)),t.length>0?Yr.pipe([ya,...t],{returnIndex:0}):ya}[x](e){return this[T](e)}},a(Pt,"StringType"),Pt);nr([u.Attribute({description:"Regex pattern to be used for validation"}),sr("design:type",Object)],Se.prototype,"pattern",void 0);nr([u.Attribute({description:"Name of the pattern"}),sr("design:type",String)],Se.prototype,"patternName",void 0);nr([u.Attribute({description:"Minimum number of characters"}),sr("design:type",Number)],Se.prototype,"minLength",void 0);nr([u.Attribute({description:"Minimum number of characters"}),sr("design:type",Number)],Se.prototype,"maxLength",void 0);Se=nr([u({name:"string",description:"A sequence of characters",nameMappings:{js:"string",json:"string"}}),sr("design:paramtypes",[Object])],Se);R.Entity.FindMany=function(o,e){let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=N(r,{method:"GET",...t,composition:"Entity.FindMany"});return i.Response(g.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains list of resources.',contentType:A.opra_response_json,type:t.type,partial:"deep",isArray:!0}).Response(g.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:A.opra_response_json}).QueryParam("limit",{description:"Determines number of returning instances",type:new Ke({minValue:1,maxValue:t.maxLimit})}).QueryParam("skip",{description:"Determines number of returning instances",type:new Ke({minValue:1})}).QueryParam("count",{description:"Counts all matching instances if enabled",type:Boolean}).QueryParam("projection",{description:"Determines fields projection",type:new $({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=B(t.type),t.defaultLimit&&(s.defaultLimit=t.defaultLimit),t.defaultProjection&&(s.defaultProjection=t.defaultProjection),t.maxLimit&&(s.maxLimit=t.maxLimit)}),i.Filter=Ne(i,r,t.type),i.DefaultSort=(...n)=>(r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.defaultSort=n}),i),i.SortFields=ca(i,r),i};R.Entity.Get=function(o,e){let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=N(r,{method:"GET",...t,composition:"Entity.Get"});return i.QueryParam("projection",{description:"Determines fields projection",type:new $({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).Response(g.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the resource asked for.',contentType:A.opra_response_json,type:t.type,partial:"deep"}).Response(g.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(g.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:A.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=B(t.type)}),i.KeyParam=De(i,r),i};R.Entity.Replace=function(o,e){let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=N(r,{method:"POST",...t,composition:"Entity.Replace"});return i.QueryParam("projection",{description:"Determines fields projection",type:new $({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).Response(g.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the resource asked for.',contentType:A.opra_response_json,type:t.type,partial:"deep"}).Response(g.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(g.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:A.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=B(t.type)}),i.KeyParam=De(i,r),i};R.Entity.Update=function(o,e){var n;let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=N(r,{method:"PATCH",...t,composition:"Entity.Update",requestBody:{partial:"deep",immediateFetch:!0,allowPatchOperators:!0,keepKeyFields:!0,...t.requestBody,required:!0}});return i.QueryParam("projection",{description:"Determines fields projection",type:new $({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(g.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains updated resource.',contentType:A.opra_response_json,type:t.type,partial:"deep"}).Response(g.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(g.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:A.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=B(t.type)}),i.KeyParam=De(i,r),i.Filter=Ne(i,r,t.type),i};R.Entity.UpdateMany=function(o,e){var n;let t;typeof o=="object"&&!o[h]?t=o:t={...e,type:o};let r=[],i=N(r,{method:"PATCH",...t,composition:"Entity.UpdateMany",requestBody:{immediateFetch:!0,partial:"deep",allowPatchOperators:!0,keepKeyFields:!0,...t.requestBody,required:!0}});return i.RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(g.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:A.opra_response_json}).Response(g.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:A.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=B(t.type)}),i.Filter=Ne(i,r,t.type),i};import{merge as Pn}from"@jsopen/objects";var Nc=/^(.*)(Controller)$/,Ta=[];function Lt(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=Nc.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(ne,Object.getPrototypeOf(r));s&&Pn(n,s,{deep:!0});let p=Reflect.getOwnMetadata(ne,r);p&&Pn(n,p,{deep:!0}),Pn(n,{...o,kind:m.RpcController.Kind,name:i,path:i},{deep:!0}),Reflect.defineMetadata(ne,n,r);for(let f of e)f(n,r);Reflect.defineMetadata(ne,n,r)},"decorator");return t.Header=(r,i)=>(e.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,type:i}:{...i,name:r};n.headers=n.headers||[],n.headers.push(s)}),t),t.UseType=(...r)=>(e.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),Ta.forEach(r=>r(t,e,o)),t}a(Lt,"RpcControllerDecoratorFactory");Lt.augment=function(o){Ta.push(o)};import{omit as Fc}from"@jsopen/objects";var Ea=[];function ar(o,e,t){let r=!1,i=a((n,s)=>{if(typeof s!="string")throw new TypeError("Symbol properties can not be decorated");let p={kind:m.RpcOperation.Kind,channel:s,payloadType:e,...Fc(t,["kind","payloadType"])},c=Reflect.getOwnMetadata(ne,n.constructor)||{};c.operations=c.operations||{},c.operations[s]=p;for(let f of o)f(p,n,s);Reflect.defineMetadata(ne,c,n.constructor)},"decorator");return i.UseType=(...n)=>(o.push(s=>{s.types=s.types||[],s.types.push(...n)}),i),i.Header=(n,s)=>(o.push(p=>{let c=typeof s=="string"||typeof s=="function"?{name:n,type:s}:{...s,name:n},f=r?p.response:p;f.headers?f.headers=f.headers.filter(O=>String(O.name)!==String(n)):f.headers=[],f.headers.push(c)}),i),i.Response=(n,s)=>(o.push(p=>{r=!0,p.response={...s,payloadType:n}}),i),Ea.forEach(n=>n(i,o,e,t)),i}a(ar,"RpcOperationDecoratorFactory");ar.augment=function(o){Ea.push(o)};import"reflect-metadata";import{omitUndefined as vc}from"@jsopen/objects";import{asMutable as Ic}from"ts-gems";function Gr(o,e){let t=o==null?void 0:o.map(i=>String(i).toLowerCase()),r=e==null?void 0:e.map(i=>String(i).toLowerCase());return i=>r&&r.includes(i.toLowerCase())?!1:t?t.includes(i.toLowerCase()):!0}a(Gr,"getIsInheritedPredicateFn");var Ve=a(function(...o){var n;if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;I.call(this,e,t,r);let i=Ic(this);if(i.kind=m.MappedType.Kind,t.base){if(!(t.base instanceof I))throw new TypeError(`"${t.base.kind}" can't be set as base for a "${this.kind}"`);i.base=t.base,i.ctor=t.ctor||i.base.ctor,t.pick?i.pick=t.pick.map(f=>i.base.normalizeFieldPath(f)):t.omit?i.omit=t.omit.map(f=>i.base.normalizeFieldPath(f)):t.partial?i.partial=Array.isArray(t.partial)?t.partial.map(f=>i.base.normalizeFieldPath(f)):t.partial:t.required&&(i.required=Array.isArray(t.required)?t.required.map(f=>i.base.normalizeFieldPath(f)):t.required);let s=Gr(i.pick,i.omit),p=Array.isArray(i.partial)?i.partial.map(f=>f.toLowerCase()):i.partial,c=Array.isArray(i.required)?i.required.map(f=>f.toLowerCase()):i.required;for(let[f,O]of i.base.fieldEntries("*")){if(!s(f))continue;let d={...O};p===!0||Array.isArray(p)&&p.includes(O.name.toLowerCase())?d.required=!1:(c===!0||Array.isArray(c)&&c.includes(O.name.toLowerCase()))&&(d.required=!0);let z=new P(this,d);i._fields.set(z.name,z)}(!i.pick||i.base.additionalFields===!1||Array.isArray(i.base.additionalFields)&&((n=i.base.additionalFields)==null?void 0:n[0])==="error")&&(i.additionalFields=i.base.additionalFields),t.base.keyField&&s(t.base.keyField)&&(i.keyField=t.base.keyField),i.discriminatorField=t.base.discriminatorField,i.discriminatorValue=t.base.discriminatorValue}},"MappedType"),kn=class kn extends I{extendsFrom(e){var t;return e instanceof _||(e=this.node.getDataType(e)),e instanceof I?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0;return vc({...t,base:r||this.base.toJSON(e),kind:this.kind,pick:this.pick,omit:this.omit,partial:this.partial,required:this.required,discriminatorField:this.discriminatorField,discriminatorValue:this.discriminatorValue})}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(kn,"MappedTypeClass");var Ln=kn;Ve.prototype=Ln.prototype;Ve._applyMixin=()=>{};import"reflect-metadata";import{omitUndefined as Pc}from"@jsopen/objects";import{asMutable as Lc}from"ts-gems";var kt=a(function(...o){if(!this)return kt[b].apply(void 0,o);let[e,t,r]=o;I.call(this,e,t,r);let i=Lc(this);i.kind=m.MixinType.Kind,i.types=[];for(let n of t.types){i.additionalFields!==!0&&(n.additionalFields===!0?i.additionalFields=!0:i.additionalFields||(i.additionalFields=n.additionalFields));for(let s of n.fields("*")){let p=new P(this,s);i._fields.set(p.name,p)}i.types.push(n),n.keyField&&(i.keyField=n.keyField)}},"MixinType"),Cn=class Cn extends I{extendsFrom(e){if(e instanceof _||(e=this.node.getDataType(e)),!(e instanceof I))return!1;if(e===this)return!0;for(let t of this.types)if(t.extendsFrom(e))return!0;return!1}toJSON(e){let t=super.toJSON(e);return Pc({...t,kind:this.kind,types:this.types.map(r=>{let i=this.node.getDataTypeNameWithNs(r);return i||r.toJSON(e)})})}_locateBase(e){for(let t of this.types){if(e(t))return t;if(t._locateBase){let r=t._locateBase(e);if(r)return r}}}};a(Cn,"MixinTypeClass");var jn=Cn;kt.prototype=jn.prototype;kt[b]=kc;function kc(o,e){if(o=o.filter(n=>typeof n=="function"),!o.length)throw new TypeError("No Class has been provided");if(o.length===1)return o[0];let t=o[0].name+"Mixin",r={[t]:class{constructor(){for(let n of o)hr(this,n)}}}[t],i={...e,kind:m.MixinType.Kind,types:[]};Reflect.defineMetadata(h,i,r);for(let n of o){let s=Reflect.getMetadata(h,n);if(!(s&&(s.kind===m.ComplexType.Kind||s.kind===m.MixinType.Kind||s.kind===m.MappedType.Kind)))throw new TypeError(`Class "${n.name}" is not a ${m.ComplexType.Kind}, ${m.MixinType.Kind} or ${m.MappedType.Kind}`);i.types.push(n),dr(r.prototype,n.prototype)}return r}a(kc,"MixinTypeFactory");import"reflect-metadata";import{omitUndefined as jc}from"@jsopen/objects";import{asMutable as Cc}from"ts-gems";import{vg as _a}from"valgen";var jt=a(function(...o){if(!this)return jt[b].apply(void 0,o);let[e,t,r]=o;_.call(this,e,t,r);let i=Cc(this);i.kind=m.UnionType.Kind,i.discriminator=t.discriminator,i.types=[];for(let n of t.types)i.types.push(n)},"UnionType"),$n=class $n extends _{toJSON(e){let t=super.toJSON(e);return jc({...t,kind:this.kind,discriminator:this.discriminator,types:this.types.map(r=>{let i=this.node.getDataTypeNameWithNs(r);return i||r.toJSON(e)})})}generateCodec(e,t){let r=this.types.map(i=>{let n=i.generateCodec(e,t);return(i.kind===m.ComplexType.Kind||i.kind===m.MappedType.Kind)&&i.discriminatorField?[n,{[i.discriminatorField]:_a.isEqual(i.discriminatorValue)}]:n});return _a.oneOf(r)}extendsFrom(){return!1}_locateBase(){}};a($n,"UnionTypeClass");var Un=$n;jt.prototype=Un.prototype;jt[b]=Uc;function Uc(o,e){let i=class i{};a(i,"UnionClass");let t=i,r={...e,kind:m.UnionType.Kind,types:o};return Reflect.defineMetadata(h,r,t),t}a(Uc,"UnionTypeFactory");var Bn=Symbol("initializing"),Qr=class Qr{static async createDataType(e,t,r){e=e||new ue({maxErrors:0});let i=await this._importDataTypeArgs(e,t,r);if(i)return typeof i=="string"?t.node.getDataType(i):this._createDataType(e,t,i)}static async resolveDataType(e,t,r){if(r){let i=t.node.findDataType(r);if(i)return i}if(typeof r=="object"||typeof r=="function"){let i=await Qr.createDataType(e,t,r);if(i)return i}if(r){let i=t.node.getDataType(r);if(i)return i}return t.node.getDataType("any")}static async addDataTypes(e,t,r){let i=t.node[k];if(!i)throw new TypeError("DocumentElement should has [kDataTypeMap] property");let n=await this.createAllDataTypes(e,t,r);if(n)for(let s of n)s!=null&&s.name&&i.set(s.name,s)}static async createAllDataTypes(e,t,r){e=e||new ue({maxErrors:0});let i=await this._prepareAllInitArgs(e,t,r);if(!i)return;let n=new S;for(let c of i)n.set(c.name,c);let s=e.extend({initArgsMap:n}),p=[];for(let[c,f]of n.entries())e.enter(`[${c}]`,()=>{if(!n.has(c))return;let O=this._createDataType(s,t,f);O&&p.push(O)});return p}static async _prepareAllInitArgs(e,t,r){let i=new S,n=new S,s=e.extend({owner:t,importQueue:i,initArgsMap:n});if(!t.node[k])throw new TypeError("DocumentElement should has [kDataTypeMap] property");if(Array.isArray(r)){let p=0;for(let c of r)await s.enterAsync(`$[${p++}]`,async()=>{c=await se(c);let f=Reflect.getMetadata(h,c)||c[h];if(!(f&&f.name))return typeof c=="function"?s.addError(`Class "${c.name}" doesn't have a valid data type metadata`):s.addError("Object doesn't have a valid data type metadata");i.set(f.name,c)})}else{let p,c;for([c,p]of Object.entries(r))p=await se(p),i.set(c,typeof p=="object"?{...p,name:c}:p)}for(let p of Array.from(i.keys())){if(!i.has(p))continue;let c=await this._importDataTypeArgs(s,t,p);c&&typeof c!="string"&&s.addError("Embedded data type can't be loaded into document node directly")}return Array.from(n.values())}static async _importDataTypeArgs(e,t,r){var O;r=await se(r);let{importQueue:i,initArgsMap:n}=e,s=t.node.findDataType(r);if(s instanceof _)return s.name;let p,c,f;if(typeof r!="string"){let z=t.node.getDocument().types[yr].get(r);z&&(r=z)}if(typeof r=="string"){let d=r;if(r=(i==null?void 0:i.get(d))||((O=e.initArgsMap)==null?void 0:O.get(d)),!r)return e.addError(`Unknown data type (${d})`)}if(typeof r=="function"){if(p=Reflect.getMetadata(h,r),!p)return e.addError(`Class "${r.name}" doesn't have a valid DataType metadata`);c=r}else if(typeof r=="object"){if(p=r[h],p)f=r,p.kind!==m.EnumType.Kind&&(p=void 0);else if(m.isDataType(r))p=r,c=p.ctor;else if(c=Object.getPrototypeOf(r).constructor,p=c&&Reflect.getMetadata(h,c),p&&p.kind===m.SimpleType.Kind){let d=await this._importDataTypeArgs(e,t,p.name);return d?typeof d=="object"&&d.kind!==m.SimpleType.Kind?e.addError("Kind of base data type is not same"):{kind:m.SimpleType.Kind,name:void 0,base:d,properties:r}:void 0}}return p?e.enterAsync(p.name?`[${p.name}]`:"",async()=>{if(p.name){let z=n==null?void 0:n.get(p.name);if(z)return z[Bn]?e.addError("Circular reference detected"):p.name}let d={kind:p.kind,name:p.name};d[Bn]=!0;try{if(d.name)if(i!=null&&i.has(d.name))n==null||n.set(p.name,d),d._instance={name:p.name},d[k]=t.node[k];else return e.addError(`Data Type (${d.name}) must be explicitly added to type list in the document scope`);switch(d.kind){case m.ComplexType.Kind:d.ctor=c,await this._prepareComplexTypeArgs(e,t,d,p);break;case m.EnumType.Kind:d.instance=f,await this._prepareEnumTypeArgs(e,t,d,p);break;case m.MappedType.Kind:await this._prepareMappedTypeArgs(e,t,d,p);break;case m.MixinType.Kind:await this._prepareMixinTypeArgs(e,t,d,p);break;case m.SimpleType.Kind:d.ctor=c,await this._prepareSimpleTypeArgs(e,t,d,p);break;case m.UnionType.Kind:await this._prepareUnionTypeArgs(e,t,d,p);break;default:return e.addError(`Invalid data type kind ${p.kind}`)}}finally{d.name&&(i==null||i.delete(d.name)),delete d[Bn]}return i&&d.name?d.name:d}):e.addError("No DataType metadata found")}static async _prepareDataTypeArgs(e,t,r){t.description=r.description,t.abstract=r.abstract,t.examples=r.examples,t.scopePattern=r.scopePattern}static async _prepareComplexTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),r.keyField=i.keyField,r.discriminatorField=i.discriminatorField,r.discriminatorValue=i.discriminatorValue,await e.enterAsync(".base",async()=>{let n;if(i.base)n=await this._importDataTypeArgs(e,t,i.base);else if(r.ctor){let s=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(h,s)&&(n=await this._importDataTypeArgs(e,t,s))}n&&(r.base=Fe(n),r.ctor=r.ctor||n.ctor)}),i.additionalFields!=null&&(typeof i.additionalFields=="boolean"||Array.isArray(i.additionalFields)?r.additionalFields=i.additionalFields:await e.enterAsync(".additionalFields",async()=>{let n=await this._importDataTypeArgs(e,t,i.additionalFields);n&&(r.additionalFields=Fe(n))})),i.fields&&(r.fields={},await e.enterAsync(".fields",async()=>{for(let[n,s]of Object.entries(i.fields))await e.enterAsync(`[${n}]`,async()=>{let p=typeof s=="string"?{type:s}:s;if(p.isArray&&!p.type)return e.addError('"type" must be defined explicitly for array fields');let c=await this._importDataTypeArgs(e,t,p.type||"any");c&&(r.fields[n]={...p,type:Fe(c)})})}))}static async _prepareEnumTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),i.base&&await e.enterAsync(".base",async()=>{let n=await this._importDataTypeArgs(e,t,i.base);n&&(r.base=Fe(n))}),r.attributes=v(i.attributes)}static async _prepareSimpleTypeArgs(e,t,r,i){var n,s,p,c;await this._prepareDataTypeArgs(e,r,i),await e.enterAsync(".base",async()=>{let f;if(i.base)f=await this._importDataTypeArgs(e,t,i.base);else if(r.ctor){let O=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(h,O)&&(f=await this._importDataTypeArgs(e,t,O))}f&&(r.base=Fe(f),r.ctor=r.ctor||f.ctor)}),r.properties=i.properties,r.nameMappings=i.nameMappings,!r.properties&&r.ctor&&(r.properties=new r.ctor),i.attributes&&(r.attributes=v(i.attributes)),typeof((n=r.properties)==null?void 0:n[T])=="function"&&(r.generateDecoder=(s=r.properties)==null?void 0:s[T].bind(r.properties)),typeof((p=r.properties)==null?void 0:p[x])=="function"&&(r.generateEncoder=(c=r.properties)==null?void 0:c[x].bind(r.properties))}static async _prepareMappedTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),r.discriminatorField=i.discriminatorField,r.discriminatorValue=i.discriminatorValue,await e.enterAsync(".base",async()=>{let n;if(i.base)n=await this._importDataTypeArgs(e,t,i.base);else if(r.ctor){let s=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(h,s)&&(n=await this._importDataTypeArgs(e,t,s))}n&&(r.base=Fe(n),r.ctor=r.ctor||n.ctor)}),i.pick?r.pick=[...i.pick]:i.omit?r.omit=[...i.omit]:i.partial?r.partial=Array.isArray(i.partial)?[...i.partial]:i.partial:i.required&&(r.required=Array.isArray(i.required)?[...i.required]:i.required)}static async _prepareMixinTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),r.types=[],await e.enterAsync(".types",async()=>{let n=i.types,s=0;for(let p of n)await e.enterAsync(`[${s++}]`,async()=>{let c=await this._importDataTypeArgs(e,t,p);c&&r.types.push(Fe(c))})})}static async _prepareUnionTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),r.types=[],await e.enterAsync(".types",async()=>{let n=i.types,s=0;for(let p of n)await e.enterAsync(`[${s++}]`,async()=>{let c=await this._importDataTypeArgs(e,t,p);c&&r.types.push(Fe(c))})})}static _createDataType(e,t,r){var s;let i=t.node.findDataType(typeof r=="string"?r:r.name||"");if(i instanceof _)return i;let n=typeof r=="string"?(s=e.initArgsMap)==null?void 0:s.get(r):r;if(n){let p=n[k];switch(p||delete n._instance,i=n._instance,i!=null&&i.name&&p&&p.set(i.name,i),n==null?void 0:n.kind){case m.ComplexType.Kind:return this._createComplexType(e,t,n);case m.EnumType.Kind:return this._createEnumType(e,t,n);case m.MappedType.Kind:return this._createMappedType(e,t,n);case m.MixinType.Kind:return this._createMixinType(e,t,n);case m.SimpleType.Kind:return this._createSimpleType(e,t,n);case m.UnionType.Kind:return this._createUnionType(e,t,n);default:break}}e.addError(`Unknown data type (${String(r)})`)}static _createComplexType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,ee.prototype);let n=v(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),r.additionalFields&&e.enter(".additionalFields",()=>{typeof r.additionalFields=="boolean"||Array.isArray(r.additionalFields)?n.additionalFields=r.additionalFields:n.additionalFields=this._createDataType(e,t,r.additionalFields)}),n.fields={},r.fields&&e.enter(".fields",()=>{for(let[s,p]of Object.entries(r.fields))e.enter(`[${s}]`,()=>{let c=this._createDataType(e,t,p.type);c&&(n.fields[s]={...p,name:s,type:c})})}),ee.apply(i,[t,n]),i}static _createEnumType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,Z.prototype);let n=v(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),n.attributes=r.attributes,Z.apply(i,[t,n]),i}static _createMappedType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,Ve.prototype);let n=v(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),Ve.apply(i,[t,n]),i}static _createMixinType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,kt.prototype);let n=v(r);return r.types&&e.enter(".types",()=>{n.types=[];let s=0;for(let p of r.types)e.enter(`[${s++}]`,()=>{let c=this._createDataType(e,t,p);if(!(c instanceof I))throw new TypeError(`"${c==null?void 0:c.kind}" can't be set as base for a "${n.kind}"`);n.types.push(c)})}),kt.apply(i,[t,n]),i}static _createSimpleType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,u.prototype);let n=v(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),u.apply(i,[t,n]),i}static _createUnionType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,jt.prototype);let n=v(r);return r.types&&e.enter(".types",()=>{n.types=[];let s=0;for(let p of r.types)e.enter(`[${s++}]`,()=>{let c=this._createDataType(e,t,p);n.types.push(c)})}),jt.apply(i,[t,n]),i}};a(Qr,"DataTypeFactory");var M=Qr;function Fe(o){return typeof o=="object"&&o.name?o.name:o}a(Fe,"preferName");import{isConstructor as sl}from"@jsopen/objects";import{omitUndefined as Bc}from"@jsopen/objects";var qn=class qn extends w{constructor(e){super(e.owner),this.name="OpraApi",this.name=e.name,this.description=e.description}toJSON(e){return Bc({transport:this.transport,name:this.name,description:this.description})}async _initialize(e,t){if(!L.test(e.name))throw new TypeError(`Invalid api name (${e.name})`);this.name=e.name,this.description=e==null?void 0:e.description}};a(qn,"ApiBase");var Ct=qn;import Vc from"path-browserify";import{omitUndefined as zc}from"@jsopen/objects";import{asMutable as Jc}from"ts-gems";import{merge as Kn,omit as qc}from"@jsopen/objects";var Kc=/^(.*)(Controller)$/;function Vn(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=Kc.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(oe,Object.getPrototypeOf(r));s&&Kn(n,s,{deep:!0});let p=Reflect.getOwnMetadata(oe,r);p&&Kn(n,p,{deep:!0}),Kn(n,{kind:m.HttpController.Kind,name:i,path:i,...qc(o,["kind","name","instance","endpoints","key"])},{deep:!0}),Reflect.defineMetadata(oe,n,r);for(let f of e)f(n,r);Reflect.defineMetadata(oe,n,r)},"decorator");return t.Cookie=(r,i)=>(e.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"cookie",type:i}:{...i,name:r,location:"cookie"};n.parameters=n.parameters||[],n.parameters.push(s)}),t),t.Header=(r,i)=>(e.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"header",type:i}:{...i,name:r,location:"header"};n.parameters=n.parameters||[],n.parameters.push(s)}),t),t.QueryParam=(r,i)=>(e.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"query",type:i}:{...i,name:r,location:"query"};n.parameters=n.parameters||[],n.parameters.push(s)}),t),t.PathParam=(r,i)=>(e.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"path",type:i}:{...i,name:r,location:"path"};n.parameters=n.parameters||[],n.parameters.push(s)}),t),t.KeyParam=(r,i)=>(e.push(n=>{var p;(p=n.path)!=null&&p.includes(":"+r)||(n.path=(n.path||"")+"@:"+r);let s=typeof i=="string"||typeof i=="function"?{name:r,location:"path",type:i,keyParam:!0}:{...i,name:r,location:"path",keyParam:!0};n.parameters=n.parameters||[],n.parameters.push(s)}),t),t.UseType=(...r)=>(e.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),t}a(Vn,"HttpControllerDecoratorFactory");var ie=a(function(...o){var i;if(!this)return ie[b].apply(void 0,o);let[e,t]=o;if(w.call(this,e),!L.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=Jc(this);r.kind=m.HttpController.Kind,r.types=r.node[k]=new re,r.operations=new S,r.controllers=new S,r.parameters=[],r.name=t.name,r.description=t.description,r.path=t.path??t.name,r.instance=t.instance,r.ctor=t.ctor,r._controllerReverseMap=new WeakMap,(i=r._initialize)==null||i.call(r,t)},"HttpController"),Jn=class Jn extends w{get isRoot(){return!(this.owner instanceof ie)}findController(e){if(typeof e=="function"){let t=this._controllerReverseMap.get(e);if(t!=null)return t;for(let r of this.controllers.values()){if(r.ctor===e)return this._controllerReverseMap.set(e,r),r;if(r.controllers.size&&(t=r.findController(e),t))return this._controllerReverseMap.set(e,t),t}this._controllerReverseMap.set(e,null);return}if(e.startsWith("/")&&(e=e.substring(1)),e.includes("/")){let t=e.split("/"),r=this;for(;r&&t.length>0;)r=r.controllers.get(t.shift());return r}return this.controllers.get(e)}findParameter(e,t){let r=e.toLowerCase(),i;for(i of this.parameters)if(!(t&&t!==i.location)&&(typeof i.name=="string"&&(i._nameLower=i._nameLower||i.name.toLowerCase(),i._nameLower===r)||i.name instanceof RegExp&&i.name.test(e)))return i;if(this.node.parent&&this.node.parent.element instanceof ie)return this.node.parent.element.findParameter(e,t)}getFullUrl(){return Vc.posix.join(this.owner instanceof ie?this.owner.getFullUrl():"/",this.path)}toString(){return`[HttpController ${this.name}]`}toJSON(e){let t=zc({kind:this.kind,description:this.description,path:this.path});if(this.operations.size){t.operations={};for(let r of this.operations.values())t.operations[r.name]=r.toJSON(e)}if(this.controllers.size){t.controllers={};for(let r of this.controllers.values())t.controllers[r.name]=r.toJSON(e)}if(this.types.size){t.types={};for(let r of this.types.values())t.types[r.name]=r.toJSON(e)}if(this.parameters.length){t.parameters=[];for(let r of this.parameters)t.parameters.push(r.toJSON(e))}return t}[it](){return`[${ot}HttpController${nt+this.name+qe}]`}};a(Jn,"HttpControllerClass");var zn=Jn;ie.prototype=zn.prototype;Object.assign(ie,Vn);ie[b]=Vn;var Wn=class Wn extends Ct{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="http",this.controllers=new S,this.url=e.url}findController(e){return ie.prototype.findController.call(this,e)}findOperation(e,t){let r=this.findController(e);return r==null?void 0:r.operations.get(t)}toJSON(e){let r={...super.toJSON(),transport:this.transport,url:this.url,controllers:{}};for(let i of this.controllers.values())r.controllers[i.name]=i.toJSON(e);return r}};a(Wn,"HttpApi");var Ut=Wn;import Wc from"@browsery/type-is";import{omitUndefined as Yc}from"@jsopen/objects";import{asMutable as Gc}from"ts-gems";import{isAny as Qc,vg as Xc}from"valgen";var Me=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');w.call(this,o);let t=Gc(this);if(e.contentType){let r=Array.isArray(e.contentType)?e.contentType:[e.contentType];r=r.map(i=>i.split(/\s*,\s*/)).flat(),t.contentType=r.length>1?r:r[0]}t.description=e.description,t.contentEncoding=e.contentEncoding,t.examples=e.examples,t.multipartFields=[],t.maxFieldsSize=e.maxFieldsSize,t.maxFields=e.maxFields,t.maxFiles=e.maxFiles,t.maxFileSize=e.maxFileSize,t.maxTotalFileSize=e.maxTotalFileSize,e!=null&&e.type&&(t.type=(e==null?void 0:e.type)instanceof _?e.type:t.owner.node.getDataType(e.type)),t.isArray=e.isArray},"HttpMediaType"),Gn=class Gn extends w{findMultipartField(e,t){if(this.multipartFields){for(let r of this.multipartFields)if((!t||t===r.fieldType)&&(r.fieldName instanceof RegExp&&r.fieldName.test(e)||r.fieldName===e))return r}}toJSON(e){var i,n;let t=this.type?this.node.getDataTypeNameWithNs(this.type):void 0,r=Yc({description:this.description,contentType:this.contentType,contentEncoding:this.contentEncoding,type:t||((i=this.type)==null?void 0:i.toJSON(e)),isArray:this.isArray,example:this.example,examples:this.examples,maxFields:this.maxFields,maxFieldsSize:this.maxFieldsSize,maxFiles:this.maxFiles,maxFileSize:this.maxFileSize,maxTotalFileSize:this.maxTotalFileSize});return(n=this.multipartFields)!=null&&n.length&&(r.multipartFields=this.multipartFields.map(s=>s.toJSON(e))),r}generateCodec(e,t){let r;return this.type?r=this.type.generateCodec(e,t):this.contentType&&(Array.isArray(this.contentType)?this.contentType:[this.contentType]).find(n=>Wc.is(n,["json"]))&&(r=this.node.findDataType("object").generateCodec(e)),r=r||Qc,this.isArray?Xc.isArray(r):r}};a(Gn,"HttpMediaTypeClass");var Yn=Gn;Me.prototype=Yn.prototype;import{omitUndefined as Zc}from"@jsopen/objects";function $t(o,e){let t=o.lastIndexOf("/");if(o.startsWith("/")&&t){let r=o.substring(1,t),i=o.substring(t+1);if(e!=null&&e.includeFlags)for(let n of e.includeFlags)i.includes(n)||(i+=n);if(e!=null&&e.excludeFlags)for(let n of e.excludeFlags)i.replace(n,"");return new RegExp(r,i)}throw new TypeError(`"${o}" is not a valid RegExp string`)}a($t,"parseRegExp");var Qn=class Qn extends Me{constructor(e,t){super(e,t),this.fieldName=t.fieldName instanceof RegExp?t.fieldName:t.fieldName.startsWith("/")?$t(t.fieldName):t.fieldName,this.fieldType=t.fieldType,this.required=t.required}toJSON(e){return Zc({fieldName:this.fieldName,fieldType:this.fieldType,required:this.required,...super.toJSON(e)})}};a(Qn,"HttpMultipartField");var Xr=Qn;import{omitUndefined as el}from"@jsopen/objects";var Hc=/^([1-6]\d{2})(?:-([1-6]\d{2}))?$/,Xn=class Xn{constructor(e,t){if(this.start=0,this.end=0,e&&typeof e=="object"&&(this.start=e.start||0,this.end=e.end||0),typeof e=="number"&&(this.start=e,this.end=t||this.start),typeof e=="string"){let r=Hc.exec(e);if(!r)throw new TypeError(`"${e}" is not a valid Status Code range`);this.start=parseInt(r[1],10),this.end=r[2]?parseInt(r[2],10):this.start}}includes(e){return e>=this.start&&e<=this.end}intersects(e,t){return t>=this.start&&e<=this.end}toString(){return this.start===this.end?String(this.start):String(this.start)+"-"+String(this.end)}toJSON(){return!this.end||this.start===this.end?this.start:{start:this.start,end:this.end}}};a(Xn,"HttpStatusRange");var pr=Xn;var Zn=class Zn extends Me{constructor(e,t){super(e,t),this.parameters=[],this.statusCode=(Array.isArray(t.statusCode)?t.statusCode:[t.statusCode]).map(r=>typeof r=="object"?new pr(r.start,r.end):new pr(r)),this.partial=t.partial}findParameter(e,t){e=e.toLowerCase();for(let r of this.parameters)if((!t||t===r.location)&&(r.name instanceof RegExp&&r.name.test(e)||r.name===e))return r}toJSON(e){let t=this.statusCode.map(i=>i.toJSON()),r=el({...super.toJSON(e),statusCode:t.length===1&&typeof t[0]=="number"?t[0]:t,partial:this.partial});if(this.parameters.length){r.parameters=[];for(let i of this.parameters)r.parameters.push(i.toJSON(e))}return r}};a(Zn,"HttpOperationResponse");var Zr=Zn;import{omitUndefined as il}from"@jsopen/objects";import{asMutable as ol}from"ts-gems";import{omitUndefined as tl}from"@jsopen/objects";import{asMutable as rl}from"ts-gems";var ze=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');w.call(this,o);let t=rl(this);t.description=e.description,t.type=e.type,t.examples=e.examples,t.isArray=e.isArray},"Value"),es=class es extends w{toJSON(e){let t=this.type?this.node.getDataTypeNameWithNs(this.type):void 0;return tl({type:this.type?t||this.type.toJSON(e):"any",description:this.description,isArray:this.isArray,examples:this.examples})}};a(es,"ValueClass");var Hn=es;ze.prototype=Hn.prototype;var cr=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');ze.call(this,o,e);let t=ol(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?$t(e.name,{includeFlags:"i",excludeFlags:"m"}):e.name),t.location=e.location,t.deprecated=e.deprecated,t.required=e.required,t.required==null&&e.location==="path"&&(t.required=!0),t.arraySeparator=e.arraySeparator,t.keyParam=e.keyParam,t.parser=e.parser},"HttpParameter"),rs=class rs extends ze{toJSON(e){return il({...super.toJSON(e),name:this.name,location:this.location,arraySeparator:this.arraySeparator,keyParam:this.keyParam,required:this.required,deprecated:this.deprecated})}};a(rs,"HttpParameterClass");var ts=rs;cr.prototype=ts.prototype;import{omitUndefined as nl}from"@jsopen/objects";var is=class is extends w{constructor(e){super(e),this.content=[]}toJSON(e){return nl({description:this.description,required:this.required,maxContentSize:this.maxContentSize,content:this.content.length?this.content.map(t=>t.toJSON(e)):[],partial:this.partial,allowPatchOperators:this.allowPatchOperators})}};a(is,"HttpRequestBody");var Hr=is;var os=class os{static async createApi(e,t){let r=new Ut(t);return t.controllers&&await e.enterAsync(".controllers",async()=>{await this._createControllers(e,r,t.controllers)}),r}static async _createControllers(e,t,r){if(Array.isArray(r)){let i=0;for(let n of r){let s;await e.enterAsync(`[${i++}]`,async()=>{s=await this._resolveControllerMetadata(e,t,n)}),s&&await e.enterAsync(`[${s.metadata.name}]`,async()=>{let p=await this._createController(e,t,s.metadata,s.instance,s.ctor);p&&(t.controllers.get(p.name)&&e.addError(`Duplicate controller name (${s.name})`),t.controllers.set(p.name,p))})}return}for(let[i,n]of Object.entries(r))await e.enterAsync(`[${i}]`,async()=>{let s=await this._resolveControllerMetadata(e,t,n);if(!s)return;let p=await this._createController(e,t,{...s.metadata,name:i},s.instance,s.ctor);p&&(t.controllers.get(p.name)&&e.addError(`Duplicate controller name (${i})`),t.controllers.set(p.name,p))})}static async _resolveControllerMetadata(e,t,r){typeof r=="function"&&!sl(r)&&(r=t instanceof ie?r(t.instance):r()),r=await se(r);let i,n,s;if(typeof r=="function"){if(n=Reflect.getMetadata(oe,r),!n)return e.addError(`Class "${r.name}" doesn't have a valid HttpController metadata`);i=r}else i=Object.getPrototypeOf(r).constructor,n=Reflect.getMetadata(oe,i),n?s=r:(n=r,r.instance==="object"&&(s=r.instance,i=Object.getPrototypeOf(s).constructor));return n?{metadata:n,instance:s,ctor:i}:e.addError(`Class "${i.name}" is not decorated with HttpController()`)}static async _createController(e,t,r,i,n){if(!r.name)throw new TypeError("Controller name required");let s=new ie(t,{...r,instance:i,ctor:n});return r.types&&await e.enterAsync(".types",async()=>{await M.addDataTypes(e,s,r.types)}),r.parameters&&await e.enterAsync(".parameters",async()=>{let p=0;for(let c of r.parameters)await e.enterAsync(`[${p++}]`,async()=>{let f={...c};await e.enterAsync(".type",async()=>{f.type=await M.resolveDataType(e,s,c.type)});let O=new cr(s,f);s.parameters.push(O)})}),r.operations&&await e.enterAsync(".operations",async()=>{for(let[p,c]of Object.entries(r.operations))await e.enterAsync(`[${p}]`,async()=>{let f=new R(s,{name:p,method:"GET"});await this._initHttpOperation(e,f,c),s.operations.set(p,f)})}),r.controllers&&await e.enterAsync(".controllers",async()=>{await this._createControllers(e,s,r.controllers)}),s}static async _initHttpOperation(e,t,r){let i={...r,name:t.name,types:void 0};return R.apply(t,[t.owner,i]),r.types&&await e.enterAsync(".types",async()=>{await M.addDataTypes(e,t,r.types)}),r.parameters&&await e.enterAsync(".parameters",async()=>{let n=0;for(let s of r.parameters)await e.enterAsync(`[${n++}]`,async()=>{let p={...s};await e.enterAsync(".type",async()=>{p.type=await M.resolveDataType(e,t,s.type)});let c=new cr(t,p);t.parameters.push(c)})}),r.responses&&await e.enterAsync(".responses",async()=>{let n=0;for(let s of r.responses)await e.enterAsync(`[${n++}]`,async()=>{let p=new Zr(t,{statusCode:s.statusCode});await this._initHttpOperationResponse(e,p,s),t.responses.push(p)})}),r.requestBody&&await e.enterAsync(".requestBody",async()=>{let n=new Hr(t);await this._initHttpRequestBody(e,n,r.requestBody),t.requestBody=n}),t}static async _initHttpMediaType(e,t,r){Me.call(t,t.owner,{...r,type:void 0,multipartFields:void 0}),r.type&&await e.enterAsync(".type",async()=>{t.type=await M.resolveDataType(e,t,r.type)}),r.multipartFields&&await e.enterAsync(".multipartFields",async()=>{for(let i=0;i<r.multipartFields.length;i++)await e.enterAsync(`[${i}]`,async()=>{let n=r.multipartFields[i],s=new Xr(t,{fieldName:n.fieldName,fieldType:n.fieldType});await this._initHttpMediaType(e,s,n),t.multipartFields.push(s)})})}static async _initHttpOperationResponse(e,t,r){await this._initHttpMediaType(e,t,r),t.partial=r.partial,r.parameters&&await e.enterAsync(".parameters",async()=>{let i=0;for(let n of r.parameters)await e.enterAsync(`[${i++}]`,async()=>{let s={...n};await e.enterAsync(".type",async()=>{s.type=await M.resolveDataType(e,t,n.type)});let p=new cr(t,s);t.parameters.push(p)})})}static async _initHttpRequestBody(e,t,r){t.description=r.description,t.required=r.required,t.maxContentSize=r.maxContentSize,t.immediateFetch=r.immediateFetch,t.partial=r.partial,t.allowPatchOperators=r.allowPatchOperators,t.keepKeyFields=r.keepKeyFields,r.content&&await e.enterAsync(".content",async()=>{for(let i=0;i<r.content.length;i++)await e.enterAsync(`[${i}]`,async()=>{let n=r.content[i],s=new Me(t,String(i));await this._initHttpMediaType(e,s,n),t.content.push(s)})})}};a(os,"HttpApiFactory");var Bt=os;import{omitUndefined as pl}from"@jsopen/objects";import{md5 as cl}from"super-fast-md5";var ns=class ns extends Ct{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="rpc",this.controllers=new S,this.platform=e.platform}findController(e){if(typeof e=="function"){let t=this._controllerReverseMap.get(e);if(t!=null)return t;for(let r of this.controllers.values())if(r.ctor===e)return this._controllerReverseMap.set(e,r),r;this._controllerReverseMap.set(e,null);return}return this.controllers.get(e)}findOperation(e,t){let r=this.findController(e);return r==null?void 0:r.operations.get(t)}toJSON(){let t={...super.toJSON(),transport:this.transport,platform:this.platform,controllers:{}};for(let r of this.controllers.values())t.controllers[r.name]=r.toJSON();return t}};a(ns,"RpcApi");var qt=ns;var xa,ss=class ss extends w{constructor(){super(null),this[xa]=new WeakMap,this.id="",this.info={},this.references=new S,this.types=new re,this.node[k]=this.types,this.node.findDataType=this._findDataType.bind(this)}getDataTypeNs(e){let t=e instanceof _?this._findDataType(e.name||""):this._findDataType(e);if(t)return this[Oe].get(t)}findDocument(e){if(this.id===e)return this;for(let t of this.references.values()){if(t.id===e)return t;let r=t.findDocument(e);if(r)return r}}get httpApi(){if(!(this.api&&this.api instanceof Ut))throw new TypeError("The document do not contains HttpApi instance");return this.api}get rpcApi(){if(!(this.api&&this.api instanceof qt))throw new TypeError("The document do not contains RpcApi instance");return this.api}toJSON(){return this.export()}export(e){let t=pl({spec:m.SpecVersion,id:this.id,url:this.url,info:v(this.info,!0)});if(this.references.size){let r=0,i={};for(let[n,s]of this.references.entries())s[Pe]||(i[n]={id:s.id,url:s.url,info:v(s.info,!0)},r++);r&&(t.references=i)}if(this.types.size){t.types={};for(let r of this.types.values())r.inScope(e==null?void 0:e.scope)&&(t.types[r.name]=r.toJSON(e))}return this.api&&(t.api=this.api.toJSON(e)),t}invalidate(){let e=this.export({});delete e.id,this.id=cl(JSON.stringify(e)),this[Oe]=new WeakMap}_findDataType(e,t,r){let i=this.types.get(e);if(i&&i.inScope(t))return i;if(!this.references.size)return;if(typeof e=="string"){let s=ks.exec(e);if(s){let p=s[1];if(p){let c=this.references.get(p);return c?(r=r||new WeakMap,r.set(this,!0),r.set(c,!0),c._findDataType(s[2],t,r)):void 0}e=s[2]}}r=r||new WeakMap,r.set(this,!0);let n=Array.from(this.references.keys()).reverse();for(let s of n){let p=this.references.get(s);if(i=p==null?void 0:p.types.get(e),i)return this[Oe].set(i,p!=null&&p[Pe]?"":s),i}for(let s of n){let p=this.references.get(s);if(r.set(p,!0),i=p._findDataType(e,t,r),i)return this[Oe].set(i,p!=null&&p[Pe]?"":s),i}}};a(ss,"ApiDocument");var Je=ss;xa=Oe;function ve(o,e,t){let r=Gr(e.pick,e.omit),i=typeof o=="string"?o.charAt(0).toUpperCase()+o.substring(1):o.name,n=(t==null?void 0:t.name)||i+"Mapped",s={[n]:class{constructor(){typeof o=="function"&&hr(this,o,r)}}}[n];if(typeof o=="function"&&dr(s.prototype,o.prototype),typeof o=="function"){let c=Reflect.getOwnMetadata(h,o);if(!c)throw new TypeError(`Class "${o}" doesn't have datatype metadata information`);if(!(c.kind===m.ComplexType.Kind||c.kind===m.MappedType.Kind||c.kind===m.MixinType.Kind))throw new TypeError(`Class "${o}" is not a ${m.ComplexType.Kind}`)}let p={...t,kind:"MappedType",base:o};return e.pick&&(p.pick=e.pick),e.omit&&(p.omit=e.omit),e.partial&&(p.partial=e.partial),e.required&&(p.required=e.required),Reflect.defineMetadata(h,p,s),typeof o=="function"&&Ve._applyMixin(s,o,{...e,isInheritedPredicate:r}),s}a(ve,"createMappedClass");function W4(o,e,t){return ve(o,{omit:e},t)}a(W4,"OmitType");function X4(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return ve(o,{partial:t},r)}a(X4,"PartialType");function tx(o,e,t){return ve(o,{pick:e},t)}a(tx,"PickType");function nx(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return ve(o,{required:t},r)}a(nx,"RequiredType");import{isConstructor as Tl}from"@jsopen/objects";import{omitUndefined as ll}from"@jsopen/objects";import{asMutable as fl}from"ts-gems";var We=a(function(...o){var i;if(!this)return We[b].apply(void 0,o);let[e,t]=o;if(w.call(this,e),!L.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=fl(this);r.kind=m.RpcController.Kind,r.types=r.node[k]=new re,r.operations=new S,r.headers=[],r.name=t.name,r.description=t.description,r.instance=t.instance,r.ctor=t.ctor,r._controllerReverseMap=new WeakMap,(i=r._initialize)==null||i.call(r,t)},"RpcController"),ps=class ps extends w{findHeader(e,t){let r=e.toLowerCase(),i;for(i of this.headers)if(typeof i.name=="string"&&(i._nameLower=i._nameLower||i.name.toLowerCase(),i._nameLower===r)||i.name instanceof RegExp&&i.name.test(e))return i;if(this.node.parent&&this.node.parent.element instanceof We)return this.node.parent.element.findHeader(e,t)}toString(){return`[RpcController ${this.name}]`}toJSON(){let e=ll({kind:this.kind,description:this.description});if(this.operations.size){e.operations={};for(let t of this.operations.values())e.operations[t.name]=t.toJSON()}if(this.types.size){e.types={};for(let t of this.types.values())e.types[t.name]=t.toJSON()}if(this.headers.length){e.headers=[];for(let t of this.headers)e.headers.push(t.toJSON())}return e}[it](){return`[${ot}RpcController${nt+this.name+qe}]`}};a(ps,"RpcControllerClass");var as=ps;We.prototype=as.prototype;Object.assign(We,Lt);We[b]=Lt;import{omitUndefined as ml}from"@jsopen/objects";import{asMutable as ul}from"ts-gems";var lr=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');ze.call(this,o,e);let t=ul(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?$t(e.name,{includeFlags:"i",excludeFlags:"m"}):e.name),t.deprecated=e.deprecated,t.required=e.required},"RpcHeader"),ls=class ls extends ze{toJSON(){return ml({...super.toJSON(),name:this.name,required:this.required,deprecated:this.deprecated})}};a(ls,"RpcHeaderClass");var cs=ls;lr.prototype=cs.prototype;import{omitUndefined as dl}from"@jsopen/objects";import{asMutable as hl}from"ts-gems";var fr=a(function(...o){if(!this){let[i,n]=o,s=[];return fr[b].call(void 0,s,i,n)}let[e,t]=o;if(w.call(this,e),!L.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=hl(this);r.headers=[],r.types=r.node[k]=new re,r.name=t.name,r.description=t.description,r.channel=t.channel,t!=null&&t.payloadType&&(r.payloadType=(t==null?void 0:t.payloadType)instanceof _?t.payloadType:r.owner.node.getDataType(t.payloadType)),t!=null&&t.keyType&&(r.keyType=(t==null?void 0:t.keyType)instanceof _?t.keyType:r.owner.node.getDataType(t.keyType))},"RpcOperation"),ms=class ms extends w{findHeader(e){let t=e.toLowerCase(),r;for(r of this.headers)if(typeof r.name=="string"&&(r._nameLower=r._nameLower||r.name.toLowerCase(),r._nameLower===t)||r.name instanceof RegExp&&r.name.test(e))return r}toJSON(){var t;let e=dl({kind:m.RpcOperation.Kind,description:this.description,channel:this.channel,payloadType:this.payloadType.name?this.payloadType.name:this.payloadType.toJSON(),keyType:this.keyType?this.keyType.name?this.keyType.name:this.keyType.toJSON():void 0,response:(t=this.response)==null?void 0:t.toJSON()});if(this.headers.length){e.headers=[];for(let r of this.headers)e.headers.push(r.toJSON())}return e}};a(ms,"RpcOperationClass");var fs=ms;fr.prototype=fs.prototype;fr[b]=ar;import{omitUndefined as yl}from"@jsopen/objects";var us=class us extends w{constructor(e,t){super(e),this.headers=[],this.channel=t==null?void 0:t.channel,this.description=t==null?void 0:t.description,t!=null&&t.payloadType?this.payloadType=(t==null?void 0:t.payloadType)instanceof _?t.payloadType:this.owner.node.getDataType(t.payloadType):this.payloadType=this.owner.node.getDataType("any"),t!=null&&t.keyType&&(this.keyType=(t==null?void 0:t.keyType)instanceof _?t.keyType:this.owner.node.getDataType(t.keyType))}findHeader(e){let t=e.toLowerCase(),r;for(r of this.headers)if(typeof r.name=="string"&&(r._nameLower=r._nameLower||r.name.toLowerCase(),r._nameLower===t)||r.name instanceof RegExp&&r.name.test(e))return r}toJSON(){let e=yl({description:this.description,channel:this.channel,payloadType:this.payloadType.name?this.payloadType.name:this.payloadType.toJSON(),keyType:this.keyType?this.keyType.name?this.keyType.name:this.keyType.toJSON():void 0});if(this.headers.length){e.headers=[];for(let t of this.headers)e.headers.push(t.toJSON())}return e}};a(us,"RpcOperationResponse");var ei=us;var ds=class ds{static async createApi(e,t){let r=new qt(t);return t.controllers&&await e.enterAsync(".controllers",async()=>{if(Array.isArray(t.controllers))for(let i of t.controllers){let n=await this._createController(e,r,i);n&&r.controllers.set(n.name,n)}else for(let[i,n]of Object.entries(t.controllers)){let s=await this._createController(e,r,n,i);s&&r.controllers.set(s.name,s)}}),r}static async _createController(e,t,r,i){typeof r=="function"&&!Tl(r)&&(r=r()),r=await se(r);let n,s,p;if(typeof r=="function"){if(s=Reflect.getMetadata(ne,r),!s)return e.addError(`Class "${r.name}" doesn't have a valid RpcController metadata`);n=r}else n=Object.getPrototypeOf(r).constructor,s=Reflect.getMetadata(ne,n),s?p=r:(s=r,r.instance==="object"&&(p=r.instance,n=Object.getPrototypeOf(p).constructor));if(!s)return e.addError(`Class "${n.name}" is not decorated with RpcController()`);if(i=i||s.name,!i)throw new TypeError("Controller name required");let c=new We(t,{...s,name:i,instance:p,ctor:n});return s.types&&await e.enterAsync(".types",async()=>{await M.addDataTypes(e,c,s.types)}),s.headers&&await e.enterAsync(".headers",async()=>{let f=0;for(let O of s.headers)await e.enterAsync(`[${f++}]`,async()=>{let d={...O};await e.enterAsync(".type",async()=>{O.type&&(d.type=c.node.findDataType(O.type)),!d.type&&typeof O.type=="object"&&(d.type=await M.createDataType(e,c,O.type)),d.type||(d.type=c.node.getDataType("any"))});let z=new lr(c,d);c.headers.push(z)})}),s.operations&&await e.enterAsync(".operations",async()=>{for(let[f,O]of Object.entries(s.operations))await e.enterAsync(`[${f}]`,async()=>{let d=new fr(c,{...O,name:f,types:void 0,payloadType:void 0,keyType:void 0});await this._initRpcOperation(e,d,O),c.operations.set(d.name,d)})}),c}static async _initRpcOperation(e,t,r){r.types&&await e.enterAsync(".types",async()=>{await M.addDataTypes(e,t,r.types)}),t.payloadType=await M.resolveDataType(e,t,r.payloadType),r.keyType&&(t.keyType=await M.resolveDataType(e,t,r.keyType)),r.headers&&await e.enterAsync(".headers",async()=>{let i=0;for(let n of r.headers)await e.enterAsync(`[${i++}]`,async()=>{let s={...n};await e.enterAsync(".type",async()=>{s.type=await M.resolveDataType(e,t,n.type)});let p=new lr(t,s);t.headers.push(p)})}),r.response&&await e.enterAsync(".response",async()=>{let i=new ei(t,{...r.response,payloadType:void 0,keyType:void 0});await this._initRpcOperationResponse(e,i,r.response),t.response=i})}static async _initRpcOperationResponse(e,t,r){t.payloadType=await M.resolveDataType(e,t,r.payloadType),r.keyType&&(t.keyType=await M.resolveDataType(e,t,r.keyType)),r.headers&&await e.enterAsync(".headers",async()=>{let i=0;for(let n of r.headers)await e.enterAsync(`[${i++}]`,async()=>{let s={...n};await e.enterAsync(".type",async()=>{s.type=await M.resolveDataType(e,t,n.type)});let p=new lr(t,s);t.headers.push(p)})})}};a(ds,"RpcApiFactory");var ti=ds;var El="https://oprajs.com/spec/v"+m.SpecVersion,ri=class ri{constructor(){this._allDocuments={}}static async createDocument(e,t){let r=new ri,i=t instanceof ue?t:new ue(t);try{let n=new Je;if(await r.initDocument(n,i,e),i.error.details.length)throw i.error;return n}catch(n){try{n instanceof Ot||i.addError(n)}catch{}if(!i.error.message){let s=i.error.details.length;i.error.message=`(${s}) error${s>1?"s":""} found in document schema.`,i.showErrorDetails&&(i.error.message+=i.error.details.map(p=>`
10
10
 
11
11
  - ${p.message}`+(p.path?`
12
- @${p.path}`:"")).join(""))}throw i.error}}async initDocument(e,t,r){let i;if(typeof r=="string"){if(i=await(await fetch(r,{method:"GET"})).json(),!i)return t.addError(`Invalid response returned from url: ${r}`);i.url=r}else i=r;let n;if(!e[Pe]){let s=e.node.findDataType("string");n=s==null?void 0:s.node.getDocument(),n||(n=await this.createBuiltinDocument(t),e.references.set("opra",n))}i.spec=i.spec||m.SpecVersion,e.url=i.url,i.info&&(e.info={...i.info}),i.references&&await t.enterAsync(".references",async()=>{let s,p;for([s,p]of Object.entries(i.references))p=await se(p),await t.enterAsync(`[${s}]`,async()=>{if(!L.test(s))throw new TypeError(`Invalid namespace (${s})`);if(p instanceof Je){e.references.set(s,p);return}let c=new Je;n&&c.references.set("opra",n),await this.initDocument(c,t,p),e.references.set(s,this._allDocuments[c.id])})}),i.types&&await t.enterAsync(".types",async()=>{await M.addDataTypes(t,e,i.types)}),i.api&&await t.enterAsync(".api",async()=>{if(i.api&&i.api.transport==="http"){let s=await Bt.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else if(i.api&&i.api.transport==="rpc"){let s=await ti.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else t.addError(`Unknown service transport (${i.api.transport})`)}),e.invalidate(),this._allDocuments[e.id]||(this._allDocuments[e.id]=e)}async createBuiltinDocument(e){let t={spec:m.SpecVersion,url:El,info:{version:m.SpecVersion,title:"Opra built-in types",license:{url:"https://github.com/oprajs/opra/blob/main/LICENSE",name:"MIT"}},types:[Kr,Vr,zr,Ke,Jr,ye,Wr,Se,Pr,ct,ft,ut,ht,G,$,be,$r,Q,Rt,qr,ir]},r=new Je;r[Pe]=!0;let i=Object.getPrototypeOf(BigInt(0)).constructor,n=Object.getPrototypeOf(Buffer.from([])),s=r.types[yr];return s.set(Object,"object"),s.set(String,"string"),s.set(Number,"number"),s.set(Boolean,"boolean"),s.set(Object,"any"),s.set(Date,"datetime"),s.set(i,"bigint"),s.set(ArrayBuffer,"base64"),s.set(SharedArrayBuffer,"base64"),s.set(n,"base64"),await this.initDocument(r,e,t),r}};a(ri,"ApiDocumentFactory");var Oa=ri;var ga;(function(o){o.HttpApiFactory=Bt,o.DataTypeFactory=M,o.RpcOperationDecoratorFactory=ar,o.RpcControllerDecoratorFactory=Lt})(ga||(ga={}));import{uid as ug}from"uid";export{Kr as AnyType,Ct as ApiBase,Je as ApiDocument,Oa as ApiDocumentFactory,P as ApiField,Pe as BUILTIN,Os as BadRequestError,Pr as Base64Type,Da as BaseI18n,Vr as BigintType,zr as BooleanType,L as CLASS_NAME_PATTERN,ee as ComplexType,gs as ConflictError,h as DATATYPE_METADATA,T as DECODER,b as DECORATOR,_ as DataType,re as DataTypeMap,ft as DateStringType,ht as DateTimeStringType,ut as DateTimeType,ct as DateType,w as DocumentElement,ue as DocumentInitContext,Ir as DocumentNode,x as ENCODER,G as EmailType,Z as EnumType,ws as FailedDependencyError,$ as FieldPathType,Le as FieldsProjection,be as FilterType,ur as ForbiddenError,oe as HTTP_CONTROLLER_METADATA,Ut as HttpApi,ie as HttpController,Rs as HttpHeaderCodes,Me as HttpMediaType,Xr as HttpMultipartField,R as HttpOperation,Zr as HttpOperationResponse,cr as HttpParameter,Hr as HttpRequestBody,g as HttpStatusCode,Hl as HttpStatusMessages,pr as HttpStatusRange,Vt as I18n,Ke as IntegerType,As as InternalServerError,Ps as IssueSeverity,Ve as MappedType,bs as MethodNotAllowedError,A as MimeTypes,kt as MixinType,ks as NAMESPACE_PATTERN,Ds as NotAcceptableError,Ns as NotFoundError,Jr as NullType,ye as NumberType,$r as ObjectIdType,Wr as ObjectType,W4 as OmitType,Q as OperationResult,Ot as OpraDocumentError,Te as OpraException,rr as OpraFilter,D as OpraHttpError,m as OpraSchema,X4 as PartialType,Ss as PermissionError,tx as PickType,ne as RPC_CONTROLLER_METADATA,nx as RequiredType,Fs as ResourceConflictError,Ms as ResourceNotAvailableError,S as ResponsiveMap,qt as RpcApi,We as RpcController,lr as RpcHeader,fr as RpcOperation,u as SimpleType,Se as StringType,Rt as TimeType,vs as UnauthorizedError,jt as UnionType,Is as UnprocessableEntityError,qr as UrlType,ir as UuidType,ga as classes,v as cloneObject,lm as getErrorStack,cm as getStackFileName,oi as i18n,hr as inheritPropertyInitializers,Mm as isBlob,vm as isFormData,Nm as isReadable,Fm as isReadableStream,wi as isStream,Im as isURL,Sm as isWritable,yr as kCtorMap,k as kDataTypeMap,Oe as kTypeNSMap,dr as mergePrototype,$s as parse,Us as parseFieldsProjection,se as resolveThunk,Am as safeJsonStringify,Nl as translate,ug as uid};
12
+ @${p.path}`:"")).join(""))}throw i.error}}async initDocument(e,t,r){let i;if(typeof r=="string"){if(i=await(await fetch(r,{method:"GET"})).json(),!i)return t.addError(`Invalid response returned from url: ${r}`);i.url=r}else i=r;let n;if(!e[Pe]){let s=e.node.findDataType("string");n=s==null?void 0:s.node.getDocument(),n||(n=await this.createBuiltinDocument(t),e.references.set("opra",n))}i.spec=i.spec||m.SpecVersion,e.url=i.url,i.info&&(e.info={...i.info}),i.references&&await t.enterAsync(".references",async()=>{let s,p;for([s,p]of Object.entries(i.references))p=await se(p),await t.enterAsync(`[${s}]`,async()=>{if(!L.test(s))throw new TypeError(`Invalid namespace (${s})`);if(p instanceof Je){e.references.set(s,p);return}let c=new Je;n&&c.references.set("opra",n),await this.initDocument(c,t,p),e.references.set(s,this._allDocuments[c.id])})}),i.types&&await t.enterAsync(".types",async()=>{await M.addDataTypes(t,e,i.types)}),i.api&&await t.enterAsync(".api",async()=>{if(i.api&&i.api.transport==="http"){let s=await Bt.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else if(i.api&&i.api.transport==="rpc"){let s=await ti.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else t.addError(`Unknown service transport (${i.api.transport})`)}),e.invalidate(),this._allDocuments[e.id]||(this._allDocuments[e.id]=e)}async createBuiltinDocument(e){let t={spec:m.SpecVersion,url:El,info:{version:m.SpecVersion,title:"Opra built-in types",license:{url:"https://github.com/oprajs/opra/blob/main/LICENSE",name:"MIT"}},types:[Kr,Vr,zr,Ke,Jr,ye,Wr,Se,Pr,ct,ft,ut,ht,G,$,be,$r,Q,Rt,qr,ir]},r=new Je;r[Pe]=!0;let i=Object.getPrototypeOf(BigInt(0)).constructor,n=Object.getPrototypeOf(Buffer.from([])),s=r.types[yr];return s.set(Object,"object"),s.set(String,"string"),s.set(Number,"number"),s.set(Boolean,"boolean"),s.set(Object,"any"),s.set(Date,"datetime"),s.set(i,"bigint"),s.set(ArrayBuffer,"base64"),s.set(n,"base64"),await this.initDocument(r,e,t),r}};a(ri,"ApiDocumentFactory");var Oa=ri;var ga;(function(o){o.HttpApiFactory=Bt,o.DataTypeFactory=M,o.RpcOperationDecoratorFactory=ar,o.RpcControllerDecoratorFactory=Lt})(ga||(ga={}));import{uid as ug}from"uid";export{Kr as AnyType,Ct as ApiBase,Je as ApiDocument,Oa as ApiDocumentFactory,P as ApiField,Pe as BUILTIN,Os as BadRequestError,Pr as Base64Type,Da as BaseI18n,Vr as BigintType,zr as BooleanType,L as CLASS_NAME_PATTERN,ee as ComplexType,gs as ConflictError,h as DATATYPE_METADATA,T as DECODER,b as DECORATOR,_ as DataType,re as DataTypeMap,ft as DateStringType,ht as DateTimeStringType,ut as DateTimeType,ct as DateType,w as DocumentElement,ue as DocumentInitContext,Ir as DocumentNode,x as ENCODER,G as EmailType,Z as EnumType,ws as FailedDependencyError,$ as FieldPathType,Le as FieldsProjection,be as FilterType,ur as ForbiddenError,oe as HTTP_CONTROLLER_METADATA,Ut as HttpApi,ie as HttpController,Rs as HttpHeaderCodes,Me as HttpMediaType,Xr as HttpMultipartField,R as HttpOperation,Zr as HttpOperationResponse,cr as HttpParameter,Hr as HttpRequestBody,g as HttpStatusCode,Hl as HttpStatusMessages,pr as HttpStatusRange,Vt as I18n,Ke as IntegerType,As as InternalServerError,Ps as IssueSeverity,Ve as MappedType,bs as MethodNotAllowedError,A as MimeTypes,kt as MixinType,ks as NAMESPACE_PATTERN,Ds as NotAcceptableError,Ns as NotFoundError,Jr as NullType,ye as NumberType,$r as ObjectIdType,Wr as ObjectType,W4 as OmitType,Q as OperationResult,Ot as OpraDocumentError,Te as OpraException,rr as OpraFilter,D as OpraHttpError,m as OpraSchema,X4 as PartialType,Ss as PermissionError,tx as PickType,ne as RPC_CONTROLLER_METADATA,nx as RequiredType,Fs as ResourceConflictError,Ms as ResourceNotAvailableError,S as ResponsiveMap,qt as RpcApi,We as RpcController,lr as RpcHeader,fr as RpcOperation,u as SimpleType,Se as StringType,Rt as TimeType,vs as UnauthorizedError,jt as UnionType,Is as UnprocessableEntityError,qr as UrlType,ir as UuidType,ga as classes,v as cloneObject,lm as getErrorStack,cm as getStackFileName,oi as i18n,hr as inheritPropertyInitializers,Mm as isBlob,vm as isFormData,Nm as isReadable,Fm as isReadableStream,wi as isStream,Im as isURL,Sm as isWritable,yr as kCtorMap,k as kDataTypeMap,Oe as kTypeNSMap,dr as mergePrototype,$s as parse,Us as parseFieldsProjection,se as resolveThunk,Am as safeJsonStringify,Nl as translate,ug as uid};
@@ -195,7 +195,6 @@ class ApiDocumentFactory {
195
195
  _ctorTypeMap.set(Date, 'datetime');
196
196
  _ctorTypeMap.set(BigIntConstructor, 'bigint');
197
197
  _ctorTypeMap.set(ArrayBuffer, 'base64');
198
- _ctorTypeMap.set(SharedArrayBuffer, 'base64');
199
198
  _ctorTypeMap.set(BufferConstructor, 'base64');
200
199
  await this.initDocument(document, context, init);
201
200
  return document;
@@ -192,7 +192,6 @@ export class ApiDocumentFactory {
192
192
  _ctorTypeMap.set(Date, 'datetime');
193
193
  _ctorTypeMap.set(BigIntConstructor, 'bigint');
194
194
  _ctorTypeMap.set(ArrayBuffer, 'base64');
195
- _ctorTypeMap.set(SharedArrayBuffer, 'base64');
196
195
  _ctorTypeMap.set(BufferConstructor, 'base64');
197
196
  await this.initDocument(document, context, init);
198
197
  return document;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opra/common",
3
- "version": "1.15.1",
3
+ "version": "1.16.0",
4
4
  "description": "Opra common package",
5
5
  "author": "Panates",
6
6
  "license": "MIT",