@opra/common 1.20.0 → 1.21.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 +1 -1
- package/browser/index.mjs +1 -1
- package/cjs/document/decorators/ws-param.decorator.js +1 -1
- package/cjs/document/factory/ws-api.factory.js +14 -3
- package/cjs/document/ws/ws-operation.js +10 -2
- package/esm/document/decorators/ws-param.decorator.js +1 -1
- package/esm/document/factory/ws-api.factory.js +14 -3
- package/esm/document/ws/ws-operation.js +10 -2
- package/package.json +1 -1
- package/types/document/ws/ws-operation.d.ts +12 -3
- package/types/schema/ws/ws-api.interface.d.ts +4 -0
package/browser/index.cjs
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"use strict";var fc=Object.create;var Ar=Object.defineProperty;var mc=Object.getOwnPropertyDescriptor;var uc=Object.getOwnPropertyNames;var dc=Object.getPrototypeOf,hc=Object.prototype.hasOwnProperty;var a=(o,e)=>Ar(o,"name",{value:e,configurable:!0});var Rr=(o,e)=>{for(var t in e)Ar(o,t,{get:e[t],enumerable:!0})},ba=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of uc(e))!hc.call(o,i)&&i!==t&&Ar(o,i,{get:()=>e[i],enumerable:!(r=mc(e,i))||r.enumerable});return o};var Rt=(o,e,t)=>(t=o!=null?fc(dc(o)):{},ba(e||!o||!o.__esModule?Ar(t,"default",{value:o,enumerable:!0}):t,o)),yc=o=>ba(Ar({},"__esModule",{value:!0}),o);var zl={};Rr(zl,{AnyType:()=>Ni,ApiBase:()=>ve,ApiDocument:()=>nt,ApiDocumentFactory:()=>Aa,ApiField:()=>$,ArrayType:()=>de,BUILTIN:()=>Ie,BadRequestError:()=>Xi,Base64Type:()=>Oi,BaseI18n:()=>Ma,BigintType:()=>Mi,BooleanType:()=>Fi,CLASS_NAME_PATTERN:()=>P,ComplexType:()=>ie,ConflictError:()=>Hi,DATATYPE_METADATA:()=>d,DECODER:()=>_,DECORATOR:()=>w,DataType:()=>E,DataTypeMap:()=>W,DateTimeType:()=>Kt,DateTimeTypeTz:()=>Wt,DateType:()=>qt,DocumentElement:()=>A,DocumentInitContext:()=>he,DocumentNode:()=>Br,ENCODER:()=>g,EmailType:()=>re,EnumType:()=>te,FailedDependencyError:()=>to,FieldPathType:()=>Y,FieldsProjection:()=>Pe,FilterType:()=>We,ForbiddenError:()=>Nr,HTTP_CONTROLLER_METADATA:()=>se,HttpApi:()=>tt,HttpController:()=>ne,HttpHeaderCodes:()=>io,HttpMediaType:()=>Fe,HttpMultipartField:()=>Zr,HttpOperation:()=>D,HttpOperationResponse:()=>Hr,HttpParameter:()=>_r,HttpRequestBody:()=>ei,HttpStatusCode:()=>b,HttpStatusMessages:()=>gc,HttpStatusRange:()=>Er,I18n:()=>bt,IntegerType:()=>xt,InternalServerError:()=>no,IssueSeverity:()=>Ao,MQApi:()=>it,MQController:()=>at,MQHeader:()=>Or,MQOperation:()=>gr,MQ_CONTROLLER_METADATA:()=>ae,MappedType:()=>et,MethodNotAllowedError:()=>ao,MimeTypes:()=>N,MixinType:()=>Ot,NAMESPACE_PATTERN:()=>Ro,NotAcceptableError:()=>co,NotFoundError:()=>fo,NullType:()=>Li,NumberType:()=>ge,ObjectIdType:()=>Ai,ObjectType:()=>ji,OmitType:()=>$l,OperationResult:()=>oe,OpraDocumentError:()=>ht,OpraException:()=>ye,OpraFilter:()=>Gt,OpraHttpError:()=>v,OpraSchema:()=>f,PartialDateType:()=>tr,PartialType:()=>ql,PermissionError:()=>uo,PickType:()=>Bl,RPC_CONTROLLER_METADATA:()=>Rc,RequiredType:()=>Kl,ResourceConflictError:()=>yo,ResourceNotAvailableError:()=>Eo,ResponsiveMap:()=>S,SimpleType:()=>u,StringType:()=>He,TimeType:()=>ir,UnauthorizedError:()=>xo,UnionType:()=>gt,UnprocessableEntityError:()=>go,UrlType:()=>bi,UuidType:()=>Jr,WSApi:()=>ot,WSController:()=>At,WSOperation:()=>wr,WS_CONTROLLER_METADATA:()=>pe,WS_PARAM_METADATA:()=>Dt,WsParam:()=>Vl,classes:()=>Ra,cloneObject:()=>I,getErrorStack:()=>Ac,getStackFileName:()=>wc,i18n:()=>ti,inheritPropertyInitializers:()=>Mr,isBlob:()=>Ic,isFormData:()=>Pc,isReadable:()=>Mc,isReadableStream:()=>Fc,isStream:()=>ii,isURL:()=>Lc,isWritable:()=>vc,kCtorMap:()=>vr,kDataTypeMap:()=>L,kTypeNSMap:()=>we,mergePrototype:()=>Sr,parse:()=>No,parseFieldsProjection:()=>Do,resolveThunk:()=>H,safeJsonStringify:()=>Sc,translate:()=>Oc,uid:()=>lc.uid});module.exports=yc(zl);var gx=require("reflect-metadata");Array.prototype.findLast||(Array.prototype.findLast=function(o,e){let t=this.findLastIndex(o,e);return t>=0?this[t]:void 0},Array.prototype.findLastIndex=function(o,e){if(this==null)throw new TypeError("this is null or not defined");let t=Object(this),r=this.length;e=e||this;for(let i=r-1;i>=0;i--)if(o.call(e,t[i],i,t))return i;return-1});var Ka=require("@jsopen/objects"),Va=require("valgen");var va=require("@jsopen/objects");var Sa=Rt(require("@browsery/i18next"),1),Dr=require("fast-tokenizer");var Tc=/\\(.)/g,Ec=/(\\)/g;function Da(o){return o.replace(Ec,"\\\\")}a(Da,"escapeString");function Na(o){return o.replace(Tc,"$1")}a(Na,"unescapeString");var Ma=Object.getPrototypeOf(Sa.default.createInstance()).constructor,br=class br extends Ma{async init(e,t){let r=typeof e=="object"?e:{},i=typeof e=="function"?e:t;try{let n=await super.init(r,i),s=this.services.formatter;if(s.add("lowercase",(p,c)=>p.toLocaleLowerCase(c)),s.add("uppercase",(p,c)=>p.toLocaleUpperCase(c)),s.add("upperFirst",(p,c)=>p.charAt(0).toLocaleUpperCase(c)+p.substring(1)),r!=null&&r.resources)for(let p of Object.keys(r.resources)){let c=r.resources[p];for(let l of Object.keys(c))this.addResourceBundle(p,l,c[l],!1,!0)}return i&&i(null,n),n}catch(n){throw i&&i(n,this.t),n}}deep(e,t){if(e==null)return e;let r=new WeakMap;return this._deepTranslate(e,r,t)}createInstance(e,t){return new br(e,t)}static createInstance(e,t){return new br(e,t)}_deepTranslate(e,t,r){if(e==null||r!=null&&r.ignore&&r.ignore(e,this))return e;if(typeof e=="object"&&t.has(e))return t.get(e);if(typeof e=="string"){let i="";for(let n of(0,Dr.tokenize)(e,{brackets:{"$t(":")"},quotes:!0,keepQuotes:!0,keepBrackets:!0,keepDelimiters:!0})){if(n.startsWith("$t(")&&n.endsWith(")")){n=n.substring(3,n.length-1);let s=(0,Dr.splitString)(n,{delimiters:"?",quotes:!0,brackets:{"{":"}"}}),p=Na(n.substring((s[0]||"").length+1));n=s[0]||"";let c=[],l=null;for(let R of(0,Dr.tokenize)(n,{delimiters:",",quotes:!0,brackets:{"{":"}"}})){if(R.startsWith("{")){l=JSON.parse(R);continue}c.push(R)}let O=c.length>1?"$t("+c.join(",")+")":c[0];i+=p?this.t(O,p,{...r,...l}):this.t(O,{...r,...l});continue}i+=n}return i}if(Array.isArray(e)){let i=Array(e.length);t.set(e,i);for(let n=0,s=e.length;n<s;n++)i[n]=this._deepTranslate(e[n],t,r);return t.delete(e),i}if(typeof e=="object"){if(Buffer.isBuffer(e)||Buffer.isBuffer(e)||e instanceof Symbol||e instanceof RegExp||e instanceof Map||e instanceof Set||e instanceof WeakMap||e instanceof WeakSet)return e;let i={};t.set(e,i);let n=Object.keys(e);for(let s=0,p=n.length;s<p;s++){let c=n[s];i[c]=this._deepTranslate(e[c],t,r)}return t.delete(e),i}return e}static get defaultInstance(){return _c}};a(br,"I18n");var bt=br,_c=bt.createInstance();var xc=/(\))/g;function Oc(o,e,t){let r=e&&typeof e=="object"?e:void 0,i=typeof e=="string"?e:t;return"$t("+o+(r?","+JSON.stringify(r):"")+(i?"?"+Da(i).replace(xc,"\\$1"):"")+")"}a(Oc,"translate");var ti=bt.createInstance();ti.init().catch(()=>{});var Qi=class Qi extends Error{constructor(e,t){super("Unknown error"),this.severity="error",t=t||(e instanceof Error?e:void 0),e instanceof Error&&(t=e),t&&t instanceof Error&&(this.cause=t,t.stack&&(this.stack=t.stack)),typeof e=="string"?this.initString(e):e instanceof Error?this.initError(e):this.init(e),this.message=this.message||this.constructor.name}toString(){return ti.deep(this.message)}toJSON(){var t;let e="production";return(0,va.omitUndefined)({message:this.message,severity:this.severity,system:this.system,code:this.code,details:this.details,stack:e==="dev"||e==="development"||e==="test"?(t=this.stack)==null?void 0:t.split(`
|
|
7
7
|
`):void 0},!0)}init(e){this.message=(e==null?void 0:e.message)||this.constructor.name,this.severity=(e==null?void 0:e.severity)||"error",e&&(this.system=e.system,this.code=e.code,this.details=e.details)}initString(e){this.init({message:String(e||"")||this.constructor.name,severity:"error",code:this.constructor.name})}initError(e){this.init({message:e.message,severity:e.severity||"error",code:e.code||e.constructor.name})}};a(Qi,"OpraException");var ye=Qi;var Gi=class Gi extends ye{constructor(e,t,r){super(e,t instanceof Error?t:void 0),this.status=(typeof t=="number"?t:Number(r))||500}setStatus(e){return this.status=e,this}initError(e){typeof e.status=="number"?this.status=e.status:typeof e.getStatus=="function"&&(this.status=e.getStatus()),super.initError(e)}};a(Gi,"OpraHttpError");var v=Gi;var Zi=class Zi extends v{constructor(){super(...arguments),this.status=400}init(e){super.init({message:"Bad request",code:"BAD_REQUEST",...e})}};a(Zi,"BadRequestError");var Xi=Zi;var eo=class eo extends v{constructor(){super(...arguments),this.status=409}init(e){super.init({message:"Conflict",code:"CONFLICT",...e})}};a(eo,"ConflictError");var Hi=eo;var ro=class ro extends v{constructor(){super(...arguments),this.status=424}init(e){super.init({message:"The request failed due to failure of a previous request",code:"FAILED_DEPENDENCY",...e})}};a(ro,"FailedDependencyError");var to=ro;var io;(function(o){o.X_Opra_Version="X-Opra-Version",o.X_Total_Count="X-Total-Count",o.WWW_Authenticate="WWW-Authenticate",o.Authorization="Authorization",o.Proxy_Authenticate="Proxy-Authenticate",o.Proxy_Authorization="Proxy-Authorization",o.Age="Age",o.Cache_Control="Cache-Control",o.Clear_Site_Data="Clear-Site-Data",o.Expires="Expires",o.Pragma="Pragma",o.Last_Modified="Last-Modified",o.ETag="ETag",o.If_Match="If-Match",o.If_None_Match="If-None-Match",o.If_Modified_Since="If-Modified-Since",o.If_Unmodified_Since="If-Unmodified-Since",o.Vary="Vary",o.Connection="Connection",o.Keep_Alive="Keep-Alive",o.Accept="Accept",o.Accept_Encoding="Accept-Encoding",o.Accept_Language="Accept-Language",o.Expect="Expect",o.Cookie="Cookie",o.Set_Cookie="Set-Cookie",o.Access_Control_Allow_Origin="Access-Control-Allow-Origin",o.Access_Control_Allow_Credentials="Access-Control-Allow-Credentials",o.Access_Control_Allow_Headers="Access-Control-Allow-Headers",o.Access_Control_Allow_Methods="Access-Control-Allow-Methods",o.Access_Control_Expose_Headers="Access-Control-Expose-Headers",o.Access_Control_Max_Age="Access-Control-Max-Age",o.Access_Control_Request_Headers="Access-Control-Request-Headers",o.Access_Control_Request_Method="Access-Control-Request-Method",o.Origin="Origin",o.Timing_Allow_Origin="Timing-Allow-Origin",o.Content_Disposition="Content-Disposition",o.Content_ID="Content-ID",o.Content_Length="Content-Length",o.Content_Type="Content-Type",o.Content_Transfer_Encoding="Content-Transfer-Encoding",o.Content_Encoding="Content-Encoding",o.Content_Language="Content-Language",o.Content_Location="Content-Location",o.Forwarded="Forwarded",o.X_Forwarded_For="X-Forwarded-For",o.X_Forwarded_Host="X-Forwarded-Host",o.X_Forwarded_Proto="X-Forwarded-Proto",o.Via="Via",o.Location="Location",o.From="From",o.Host="Host",o.Referer="Referer",o.Referrer_Policy="Referrer-Policy",o.User_Agent="User-Agent",o.Allow="Allow",o.Server="Server",o.Accept_Ranges="Accept-Ranges",o.Range="Range",o.If_Range="If-Range",o.Content_Range="Content-Range",o.Cross_Origin_Embedder_Policy="Cross-Origin-Embedder-Policy",o.Cross_Origin_Opener_Policy="Cross-Origin-Opener-Policy",o.Cross_Origin_Resource_Policy="Cross-Origin-Resource-Policy",o.Content_Security_Policy="Content-Security-Policy",o.Content_Security_Policy_Report_Only="Content-Security-Policy-Report-Only",o.Expect_CT="Expect-CT",o.Feature_Policy="Feature-Policy",o.Strict_Transport_Security="Strict-Transport-Security",o.Upgrade="Upgrade",o.Upgrade_Insecure_Requests="Upgrade-Insecure-Requests",o.X_Content_Type_Options="X-Content-Type-Options",o.X_Download_Options="X-Download-Options",o.X_Frame_Options="X-Frame-Options",o.X_Permitted_Cross_Domain_Policies="X-Permitted-Cross-Domain-Policies",o.X_Powered_By="X-Powered-By",o.X_XSS_Protection="X-XSS-Protection",o.Transfer_Encoding="Transfer-Encoding",o.TE="TE",o.Trailer="Trailer",o.Sec_WebSocket_Key="Sec-WebSocket-Key",o.Sec_WebSocket_Extensions="Sec-WebSocket-Extensions",o.Sec_WebSocket_Accept="Sec-WebSocket-Accept",o.Sec_WebSocket_Protocol="Sec-WebSocket-Protocol",o.Sec_WebSocket_Version="Sec-WebSocket-Version",o.Date="Date",o.Retry_After="Retry-After",o.Server_Timing="Server-Timing",o.X_DNS_Prefetch_Control="X-DNS-Prefetch-Control",o.Max_Forwards="Max-Forwards"})(io||(io={}));var b;(function(o){o[o.CONTINUE=100]="CONTINUE",o[o.SWITCHING_PROTOCOLS=101]="SWITCHING_PROTOCOLS",o[o.PROCESSING=102]="PROCESSING",o[o.EARLYHINTS=103]="EARLYHINTS",o[o.OK=200]="OK",o[o.CREATED=201]="CREATED",o[o.ACCEPTED=202]="ACCEPTED",o[o.NON_AUTHORITATIVE_INFORMATION=203]="NON_AUTHORITATIVE_INFORMATION",o[o.NO_CONTENT=204]="NO_CONTENT",o[o.RESET_CONTENT=205]="RESET_CONTENT",o[o.PARTIAL_CONTENT=206]="PARTIAL_CONTENT",o[o.AMBIGUOUS=300]="AMBIGUOUS",o[o.MOVED_PERMANENTLY=301]="MOVED_PERMANENTLY",o[o.FOUND=302]="FOUND",o[o.SEE_OTHER=303]="SEE_OTHER",o[o.NOT_MODIFIED=304]="NOT_MODIFIED",o[o.TEMPORARY_REDIRECT=307]="TEMPORARY_REDIRECT",o[o.PERMANENT_REDIRECT=308]="PERMANENT_REDIRECT",o[o.BAD_REQUEST=400]="BAD_REQUEST",o[o.UNAUTHORIZED=401]="UNAUTHORIZED",o[o.PAYMENT_REQUIRED=402]="PAYMENT_REQUIRED",o[o.FORBIDDEN=403]="FORBIDDEN",o[o.NOT_FOUND=404]="NOT_FOUND",o[o.METHOD_NOT_ALLOWED=405]="METHOD_NOT_ALLOWED",o[o.NOT_ACCEPTABLE=406]="NOT_ACCEPTABLE",o[o.PROXY_AUTHENTICATION_REQUIRED=407]="PROXY_AUTHENTICATION_REQUIRED",o[o.REQUEST_TIMEOUT=408]="REQUEST_TIMEOUT",o[o.CONFLICT=409]="CONFLICT",o[o.GONE=410]="GONE",o[o.LENGTH_REQUIRED=411]="LENGTH_REQUIRED",o[o.PRECONDITION_FAILED=412]="PRECONDITION_FAILED",o[o.PAYLOAD_TOO_LARGE=413]="PAYLOAD_TOO_LARGE",o[o.URI_TOO_LONG=414]="URI_TOO_LONG",o[o.UNSUPPORTED_MEDIA_TYPE=415]="UNSUPPORTED_MEDIA_TYPE",o[o.REQUESTED_RANGE_NOT_SATISFIABLE=416]="REQUESTED_RANGE_NOT_SATISFIABLE",o[o.EXPECTATION_FAILED=417]="EXPECTATION_FAILED",o[o.I_AM_A_TEAPOT=418]="I_AM_A_TEAPOT",o[o.MISDIRECTED_REQUEST=421]="MISDIRECTED_REQUEST",o[o.UNPROCESSABLE_ENTITY=422]="UNPROCESSABLE_ENTITY",o[o.LOCKED=423]="LOCKED",o[o.FAILED_DEPENDENCY=424]="FAILED_DEPENDENCY",o[o.TOO_EARLY=425]="TOO_EARLY",o[o.UPGRADE_REQUIRED=426]="UPGRADE_REQUIRED",o[o.PRECONDITION_REQUIRED=428]="PRECONDITION_REQUIRED",o[o.TOO_MANY_REQUESTS=429]="TOO_MANY_REQUESTS",o[o.INTERNAL_SERVER_ERROR=500]="INTERNAL_SERVER_ERROR",o[o.NOT_IMPLEMENTED=501]="NOT_IMPLEMENTED",o[o.BAD_GATEWAY=502]="BAD_GATEWAY",o[o.SERVICE_UNAVAILABLE=503]="SERVICE_UNAVAILABLE",o[o.GATEWAY_TIMEOUT=504]="GATEWAY_TIMEOUT",o[o.HTTP_VERSION_NOT_SUPPORTED=505]="HTTP_VERSION_NOT_SUPPORTED",o[o.VARIANT_ALSO_NEGOTIATES=506]="VARIANT_ALSO_NEGOTIATES",o[o.INSUFFICIENT_STORAGE=507]="INSUFFICIENT_STORAGE",o[o.LOOP_DETECTED=508]="LOOP_DETECTED",o[o.NOT_EXTENDED=510]="NOT_EXTENDED",o[o.NETWORK_AUTHENTICATION_REQUIRED=511]="NETWORK_AUTHENTICATION_REQUIRED"})(b||(b={}));var gc={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a Teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"};var N;(function(o){o.json="application/json",o.opra_response_json="application/opra.response+json",o.xml="application/XML",o.text="text/plain",o.html="text/html",o.markdown="text/markdown",o.binary="binary/octet-stream"})(N||(N={}));var oo=class oo extends v{constructor(){super(...arguments),this.status=b.FORBIDDEN}init(e){super.init({message:"You are not authorized to perform this action",code:"FORBIDDEN",...e})}};a(oo,"ForbiddenError");var Nr=oo;var so=class so extends v{constructor(){super(...arguments),this.status=500}init(e){super.init({message:"Internal server error",code:"INTERNAL_SERVER_ERROR",severity:"fatal",...e})}};a(so,"InternalServerError");var no=so;var po=class po extends v{constructor(){super(...arguments),this.status=405}init(e){super.init({message:"Method not allowed",code:"METHOD_NOT_ALLOWED",...e})}};a(po,"MethodNotAllowedError");var ao=po;var lo=class lo extends v{constructor(){super(...arguments),this.status=406}init(e){super.init({message:"Not Acceptable",code:"NOT_ACCEPTABLE",...e})}};a(lo,"NotAcceptableError");var co=lo;var mo=class mo extends v{constructor(){super(...arguments),this.status=404}init(e){super.init({message:"Not found",code:"NOT_FOUND",...e})}};a(mo,"NotFoundError");var fo=mo;var ho=class ho extends Nr{init(e){super.init({message:"You dont have permission for this operation",code:"PERMISSION_ERROR",...e})}};a(ho,"PermissionError");var uo=ho;var To=class To extends v{constructor(e,t,r){super({message:`There is already an other "${e}" resource with same values for field(s) [${t}]`,severity:"error",code:"RESOURCE_CONFLICT",details:{resource:e,location:t}},r),this.status=409}};a(To,"ResourceConflictError");var yo=To;var _o=class _o extends v{constructor(e,t,r){super({message:`Resource "${e}${t?"/"+t:""}" is not available`,severity:"error",code:"RESOURCE_NOT_AVAILABLE",details:{resource:e,key:t}},r,b.UNPROCESSABLE_ENTITY)}};a(_o,"ResourceNotAvailableError");var Eo=_o;var Oo=class Oo extends v{constructor(){super(...arguments),this.status=401}init(e){super.init({message:"You don't have permission to perform this action",code:"UNAUTHORIZED",...e})}};a(Oo,"UnauthorizedError");var xo=Oo;var wo=class wo extends v{constructor(){super(...arguments),this.status=422}init(e){super.init({message:"Unprocessable entity",severity:"error",code:"UNPROCESSABLE_ENTITY",...e})}};a(wo,"UnprocessableEntityError");var go=wo;var Ao;(function(o){let e;(function(t){t.fatal="fatal",t.error="error",t.warning="warning",t.info="info"})(e=o.Enum||(o.Enum={})),o.name="IssueSeverity",o.description="Severity of the issue",o.Keys=Object.keys(o),o.descriptions={fatal:"The issue caused the action to fail and no further checking could be performed",error:"The issue is sufficiently important to cause the action to fail",warning:"The issue is not important enough to cause the action to fail but may cause it to be performed suboptimally or in a way that is not as desired",info:"The issue has no relation to the degree of success of the action"}})(Ao||(Ao={}));BigInt.prototype.toJSON||(BigInt.prototype.toJSON=function(){return this.toString()});RegExp.prototype.toJSON||(RegExp.prototype.toJSON=function(){return this.toString()});var Fa=require("@jsopen/objects"),Ia=Rt(require("putil-promisify"),1);async function H(o){return o=Ia.default.isPromise(o)?await o:o,typeof o=="function"?(0,Fa.isConstructor)(o)?o:await o():o}a(H,"resolveThunk");var Pa=/^(?:file:\/\/)?(.+)$/;function wc(o=1){if(o>=Error.stackTraceLimit)throw new TypeError("getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `"+o+"` and Error.stackTraceLimit was: `"+Error.stackTraceLimit+"`");let e=Error.prepareStackTrace;Error.prepareStackTrace=(r,i)=>i;let t=new Error().stack;if(Error.prepareStackTrace=e,t!==null&&typeof t=="object"){let r=t[o]?t[o].getFileName():void 0,i=r?Pa.exec(r):void 0;return i?i[1]:""}return""}a(wc,"getStackFileName");function Ac(o=1){if(o>=Error.stackTraceLimit)throw new TypeError("getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `"+o+"` and Error.stackTraceLimit was: `"+Error.stackTraceLimit+"`");let e=Error.prepareStackTrace;Error.prepareStackTrace=(r,i)=>i;let t=new Error().stack;if(Error.prepareStackTrace=e,t!==null&&typeof t=="object"){let r=t[o]?t[o].getFileName():void 0,i=r?Pa.exec(r):void 0;return i?i[1]:""}return""}a(Ac,"getErrorStack");function Sr(o,e,t){for(let r of Object.getOwnPropertyNames(e))r==="constructor"||r==="__proto__"||r==="toJSON"||r==="toString"||t&&!t(r)||Object.defineProperty(o,r,Object.getOwnPropertyDescriptor(e,r)||Object.create(null))}a(Sr,"mergePrototype");function Mr(o,e,t=r=>!0){try{let r=new e;Object.getOwnPropertyNames(r).filter(n=>typeof r[n]<"u"&&typeof o[n]>"u").filter(n=>t(n)).forEach(n=>{o[n]=r[n]})}catch{}}a(Mr,"inheritPropertyInitializers");var Fr=require("@jsopen/objects");var d=Symbol.for("opra.type.metadata"),se=Symbol("opra.http-controller.metadata"),ae=Symbol("opra.mq-controller.metadata"),pe=Symbol("opra.ws-controller.metadata"),Dt=Symbol("opra.ws-param.metadata"),Rc=Symbol("opra.rpc-controller.metadata"),_=Symbol.for("opra.type.decoder"),g=Symbol("opra.type.encoder"),w=Symbol.for("DECORATOR"),Ie=Symbol.for("BUILTIN"),Ro=/([a-z$_]\w+):(.+)/i,P=/^[a-z][\w_]*$/i,L=Symbol.for("kDataTypeMap"),vr=Symbol.for("kCtorMap"),we=Symbol.for("kTypeNSMap");function I(o,e){return(0,Fr.merge)({},o,{deep:a(t=>(0,Fr.isPlainObject)(t)&&!t[d],"deep"),symbolKeys:!0,copyDescriptors:!0,ignoreUndefined:!0,filter(t,r){let i=r[t];return!e||typeof i!="function"&&(typeof i!="object"||(0,Fr.isPlainObject)(i)||Array.isArray(i))}})}a(I,"cloneObject");var bo=require("fast-tokenizer");var bc=/^([+-])?([a-z_$]\w*)$/i,Dc=/[^.]\(/g,So=class So{};a(So,"FieldsProjection");var Pe=So;(function(o){let t=class t{};a(t,"Item");let e=t;o.Item=e})(Pe||(Pe={}));function Do(o,e){let t=Array.isArray(o)?o:[o];if(!(t&&t.length))return;let r=new Pe;for(let i of t)e||(i=i.toLowerCase()),No(i,r);return r}a(Do,"parseFieldsProjection");function No(o,e){o=o.replace(Dc,r=>r.charAt(0)+"."+r.substring(1));let t=(0,bo.splitString)(o,{delimiters:".",brackets:!0,keepBrackets:!1});for(let r=0;r<t.length;r++){let i=t[r];if(i.includes(",")){let c=(0,bo.splitString)(i,{delimiters:",",brackets:!0,keepBrackets:!0});for(let l of c)No(l,e);continue}let n=bc.exec(i);if(!n)throw new TypeError(`Invalid field path (${o})`);let s=n[2],p=e[s]=e[s]||new Pe.Item;n[1]&&(p.sign=n[1]),r===t.length-1?delete p.projection:e=p.projection=p.projection||new Pe}}a(No,"parse");function Nc(o){return o&&typeof o.forEach=="function"}a(Nc,"isMap");var X=Symbol.for("kEntries"),Te=Symbol.for("kKeyMap"),ri=Symbol.for("kWellKnownKeys"),Mo=Symbol.for("kOptions"),Nt=Symbol.for("kSize"),vo=class vo{constructor(e,t){Object.defineProperty(this,Nt,{value:0,enumerable:!1,writable:!0}),Object.defineProperty(this,X,{value:{},enumerable:!1,writable:!0}),Object.defineProperty(this,Te,{value:{},enumerable:!1,writable:!0}),Object.defineProperty(this,ri,{value:{},enumerable:!1,writable:!0});let r=!!(t!=null&&t.caseSensitive);Object.defineProperty(this,Mo,{value:{caseSensitive:r},enumerable:!1}),t!=null&&t.wellKnownKeys&&t.wellKnownKeys.forEach(i=>{r?this[ri][i]=i:this[ri][i.toLowerCase()]=i}),this.clear(),e&&this.setAll(e)}get size(){return this[Nt]}clear(){Object.keys(this[X]).forEach(e=>delete this[X][e]),Object.keys(this[Te]).forEach(e=>delete this[Te][e]),this[Nt]=0}forEach(e,t){for(let[r,i]of this.entries())e.call(t,i,r,this)}get(e){if(e)return this[X][this._getStoringKey(e)]}has(e){return e?Object.prototype.hasOwnProperty.call(this[X],this._getStoringKey(e)):!1}set(e,t){let r=this._getStoringKey(e);e=this._getOriginalKey(e);let i=Object.prototype.hasOwnProperty.call(this[X],r);return this[X][r]=t,i||this[Nt]++,this[Te][r]=e,this}setAll(e){return Nc(e)?e.forEach((t,r)=>this.set(r,t)):Object.keys(e).forEach(t=>this.set(t,e[t])),this}keys(){return Object.values(this[Te])[Symbol.iterator]()}values(){return Object.values(this[X])[Symbol.iterator]()}entries(){return Object.entries(this[X])[Symbol.iterator]()}delete(e){let t=this._getStoringKey(e),r=Object.prototype.hasOwnProperty.call(this[X],t);return delete this[X][t],delete this[Te][t],r||this[Nt]--,r}sort(e){let t={...this[X]},r={...this[Te]},i=Array.from(this.keys());e?i.sort(e):i.sort(),this.clear();for(let n of i)this[X][n]=t[n],this[Te][n]=r[n];return this[Nt]=i.length,this}toObject(){let e={};for(let[t,r]of Object.entries(this[Te]))e[r]=this[X][t];return e}[Symbol.iterator](){return this.entries()}get[Symbol.toStringTag](){return"[Object ResponsiveMap]"}_getOriginalKey(e){if(!e||this[Mo].caseSensitive)return e;let t=this._getStoringKey(e);return this[Te][t]??this[ri][t]??e}_getStoringKey(e){return this[Mo].caseSensitive?e:e.toLowerCase()}};a(vo,"ResponsiveMap");var S=vo;function Sc(o,e,t){let r=new WeakSet;return JSON.stringify(o,(i,n)=>{if(n!==null&&typeof n=="object"){if(r.has(n))return;r.add(n)}return e?e(i,n):n},t)}a(Sc,"safeJsonStringify");function ii(o){return o!==null&&typeof o=="object"&&typeof o.pipe=="function"}a(ii,"isStream");function Mc(o){return ii(o)&&typeof o._read=="function"&&typeof o._readableState=="object"}a(Mc,"isReadable");function vc(o){return ii(o)&&typeof o._write=="function"}a(vc,"isWritable");function Fc(o){return ii(o)&&typeof o.getReader=="function"&&typeof o.pipeThrough=="function"&&typeof o.pipeTo=="function"}a(Fc,"isReadableStream");function Ic(o){return o!==null&&typeof o=="object"&&typeof o.size=="number"&&typeof o.arrayBuffer=="function"&&typeof o.stream=="function"}a(Ic,"isBlob");function Pc(o){return o!==null&&typeof o.constructor=="function"&&o.constructor.name==="FormData"&&typeof o.append=="function"&&typeof o.getAll=="function"}a(Pc,"isFormData");function Lc(o){return o!==null&&typeof o=="object"&&typeof o.host=="string"&&typeof o.href=="string"}a(Lc,"isURL");var Fo=class Fo{constructor(){this.kind=Object.getPrototypeOf(this).constructor.name}};a(Fo,"Ast");var Ir=Fo;var Io=class Io extends Ir{};a(Io,"Expression");var K=Io;var Po=class Po extends K{};a(Po,"Term");var ct=Po;var Lo=class Lo extends ct{constructor(e){super(),this.value=e}toString(){return""+this.value}};a(Lo,"Literal");var k=Lo;var ko=class ko extends K{constructor(){super(),this.items=[]}append(e,t){return this.items.push(new oi({op:e,expression:t})),this}toString(){return this.items.map((e,t)=>(t>0?e.op:"")+e.expression).join("")}};a(ko,"ArithmeticExpression");var lt=ko,jo=class jo{constructor(e){Object.assign(this,e)}};a(jo,"ArithmeticExpressionItem");var oi=jo;var Co=class Co extends ct{constructor(e){super(),this.items=e}toString(){return"["+this.items.map(e=>""+e).join(",")+"]"}};a(Co,"ArrayExpression");var Ae=Co;var kc=/\w/,Uo=class Uo extends K{constructor(e){super(),Object.assign(this,e)}toString(){return`${this.left}${kc.test(this.op)?" "+this.op+" ":this.op}${this.right}`}};a(Uo,"ComparisonExpression");var Ee=Uo;var $o=class $o extends K{constructor(e){super(),Object.assign(this,e),this.op==="&&"&&(this.op="and"),this.op==="||"&&(this.op="or")}toString(){return this.items.map(e=>""+e).join(" "+this.op+" ")}};a($o,"LogicalExpression");var _e=$o;var qo=class qo extends K{constructor(e){super(),this.expression=e}toString(){return`(${this.expression})`}};a(qo,"NegativeExpression");var Pr=qo;var Bo=class Bo extends K{constructor(e){super(),this.expression=e}toString(){return`(${this.expression})`}};a(Bo,"ParenthesizedExpression");var Re=Bo;var Ko=class Ko extends k{constructor(e){super(e)}};a(Ko,"BooleanLiteral");var ft=Ko;var ka=require("putil-varhelpers");var Vo=class Vo extends TypeError{};a(Vo,"SyntaxError");var ni=Vo,Wo=class Wo extends TypeError{constructor(e){super(typeof e=="string"?e:e==null?void 0:e.message),typeof e=="object"&&Object.assign(this,e)}};a(Wo,"FilterValidationError");var xe=Wo,zo=class zo extends Error{constructor(e,t){super(e),Object.assign(this,t)}};a(zo,"FilterParseError");var si=zo;var jc=/'/g,Cc=/(\\)/g,Uc=/\\(.)/g;function $c(o){return o.replace(Cc,"\\\\")}a($c,"escapeString");function qc(o){return o.replace(Uc,"$1")}a(qc,"unescapeString");function Le(o){return"'"+$c(o).replace(jc,"\\'")+"'"}a(Le,"quoteFilterString");function Lr(o){return o&&(o.startsWith("'")||o.startsWith('"'))&&o.endsWith(o.charAt(0))?qc(o.substring(1,o.length-1)):o}a(Lr,"unquoteFilterString");var La=new Date(0),Jo=class Jo extends k{constructor(e){if(super(""),e instanceof Date){this.value=e.toISOString();return}if(typeof e=="string"&&(0,ka.toDateDef)(e,La)!==La){this.value=e;return}throw new xe(`Invalid date value "${e}"`)}toString(){return Le(this.value)}};a(Jo,"DateLiteral");var ke=Jo;var Ca=require("putil-varhelpers");var ja=new Date(0),Yo=class Yo extends k{constructor(e){if(super(""),e instanceof Date){this.value=e.toISOString();return}if(typeof e=="string"&&(0,Ca.toDateDef)(e,ja)!==ja){this.value=e;return}throw new xe(`Invalid date-time value "${e}"`)}toString(){return Le(this.value)}};a(Yo,"DateTimeLiteral");var kr=Yo;var Qo=class Qo extends k{constructor(){super(null),this.value=null}};a(Qo,"NullLiteral");var mt=Qo;var Go=class Go extends k{constructor(e){if(super(0),typeof e=="number"||typeof e=="bigint"){this.value=e;return}try{if(typeof e=="string"){if(e.includes(".")){this.value=parseFloat(e);return}let t=Number(e);""+t===e?this.value=t:this.value=BigInt(e);return}}catch{}throw new xe(`Invalid number literal ${e}`)}toString(){return typeof this.value=="bigint"?(""+this.value).replace(/n$/,""):""+this.value}};a(Go,"NumberLiteral");var be=Go;var Xo=class Xo extends k{constructor(e){super(""+e)}};a(Xo,"QualifiedIdentifier");var ce=Xo;var Zo=class Zo extends k{constructor(e){super(""+e)}toString(){return Le(this.value)}};a(Zo,"StringLiteral");var ut=Zo;var Bc=/^([01]\d|2[0-3]):([0-5]\d)(:[0-5]\d)?(\.(\d+))?$/,Ho=class Ho extends k{constructor(e){if(super(""),e instanceof Date){this.value=ai(e.getHours())+":"+ai(e.getMinutes())+(e.getSeconds()?":"+ai(e.getSeconds()):"")+(e.getMilliseconds()?"."+ai(e.getMilliseconds()):"");return}if(typeof e=="string"&&Bc.test(e)){this.value=e;return}throw new xe(`Invalid time value "${e}"`)}toString(){return Le(this.value)}};a(Ho,"TimeLiteral");var dt=Ho;function ai(o){return o<=9?"0"+o:""+o}a(ai,"pad");var _i=require("@browsery/antlr4");var le=require("@browsery/antlr4");var G=class G extends le.Lexer{constructor(e){super(e),this._interp=new le.LexerATNSimulator(this,G._ATN,G.DecisionsToDFA,new le.PredictionContextCache)}get grammarFileName(){return"OpraFilter.g4"}get literalNames(){return G.literalNames}get symbolicNames(){return G.symbolicNames}get ruleNames(){return G.ruleNames}get serializedATN(){return G._serializedATN}get channelNames(){return G.channelNames}get modeNames(){return G.modeNames}static get _ATN(){return G.__ATN||(G.__ATN=new le.ATNDeserializer().deserialize(G._serializedATN)),G.__ATN}};a(G,"OpraFilterLexer");var T=G;T.T__0=1;T.T__1=2;T.T__2=3;T.T__3=4;T.T__4=5;T.T__5=6;T.T__6=7;T.T__7=8;T.T__8=9;T.T__9=10;T.T__10=11;T.T__11=12;T.T__12=13;T.T__13=14;T.T__14=15;T.T__15=16;T.T__16=17;T.T__17=18;T.T__18=19;T.T__19=20;T.T__20=21;T.T__21=22;T.T__22=23;T.T__23=24;T.T__24=25;T.T__25=26;T.T__26=27;T.T__27=28;T.T__28=29;T.T__29=30;T.T__30=31;T.T__31=32;T.T__32=33;T.T__33=34;T.IDENTIFIER=35;T.POLAR_OP=36;T.DATE=37;T.DATETIME=38;T.TIME=39;T.NUMBER=40;T.INTEGER=41;T.STRING=42;T.WHITESPACE=43;T.EOF=le.Token.EOF;T.channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];T.literalNames=[null,"'('","')'","'not'","'!'","'.'","'@'","'['","','","']'","'true'","'false'","'null'","'Infinity'","'infinity'","'+'","'-'","'*'","'/'","'<='","'<'","'>'","'>='","'='","'!='","'in'","'!in'","'like'","'!like'","'ilike'","'!ilike'","'and'","'or'","'&&'","'||'"];T.symbolicNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"IDENTIFIER","POLAR_OP","DATE","DATETIME","TIME","NUMBER","INTEGER","STRING","WHITESPACE"];T.modeNames=["DEFAULT_MODE"];T.ruleNames=["T__0","T__1","T__2","T__3","T__4","T__5","T__6","T__7","T__8","T__9","T__10","T__11","T__12","T__13","T__14","T__15","T__16","T__17","T__18","T__19","T__20","T__21","T__22","T__23","T__24","T__25","T__26","T__27","T__28","T__29","T__30","T__31","T__32","T__33","IDENTIFIER","POLAR_OP","DATE","DATETIME","TIME","NUMBER","INTEGER","STRING","WHITESPACE","DIGIT","DATEFORMAT","TIMEFORMAT","TIMEZONEOFFSETFORMAT","ESC","UNICODE","HEX"];T._serializedATN=[4,0,43,461,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,1,0,1,0,1,1,1,1,1,2,1,2,1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,15,1,15,1,16,1,16,1,17,1,17,1,18,1,18,1,18,1,19,1,19,1,20,1,20,1,21,1,21,1,21,1,22,1,22,1,23,1,23,1,23,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,32,1,32,1,32,1,33,1,33,1,33,1,34,1,34,5,34,225,8,34,10,34,12,34,228,9,34,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,3,36,240,8,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,3,37,291,8,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,3,38,301,8,38,1,39,3,39,304,8,39,1,39,4,39,307,8,39,11,39,12,39,308,1,39,1,39,5,39,313,8,39,10,39,12,39,316,9,39,3,39,318,8,39,1,39,1,39,3,39,322,8,39,1,39,4,39,325,8,39,11,39,12,39,326,3,39,329,8,39,1,39,1,39,1,39,1,39,4,39,335,8,39,11,39,12,39,336,3,39,339,8,39,1,40,3,40,342,8,40,1,40,4,40,345,8,40,11,40,12,40,346,1,40,1,40,1,40,1,40,4,40,353,8,40,11,40,12,40,354,3,40,357,8,40,1,41,1,41,1,41,5,41,362,8,41,10,41,12,41,365,9,41,1,41,1,41,1,41,1,41,5,41,371,8,41,10,41,12,41,374,9,41,1,41,3,41,377,8,41,1,42,4,42,380,8,42,11,42,12,42,381,1,42,1,42,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,397,8,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,406,8,44,1,45,1,45,1,45,1,45,3,45,412,8,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,4,45,424,8,45,11,45,12,45,425,3,45,428,8,45,3,45,430,8,45,1,46,1,46,1,46,3,46,435,8,46,1,46,1,46,1,46,3,46,440,8,46,1,46,1,46,1,46,3,46,445,8,46,3,46,447,8,46,1,47,1,47,1,47,3,47,452,8,47,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,0,0,50,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,0,89,0,91,0,93,0,95,0,97,0,99,0,1,0,16,4,0,36,36,65,90,95,95,97,122,5,0,36,36,48,57,65,90,95,95,97,122,2,0,43,43,45,45,1,0,39,39,1,0,34,34,3,0,9,10,13,13,32,32,1,0,48,57,1,0,48,48,1,0,49,57,1,0,49,49,1,0,48,50,1,0,49,51,1,0,48,49,1,0,48,51,1,0,48,53,3,0,48,57,65,70,97,102,491,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,1,101,1,0,0,0,3,103,1,0,0,0,5,105,1,0,0,0,7,109,1,0,0,0,9,111,1,0,0,0,11,113,1,0,0,0,13,115,1,0,0,0,15,117,1,0,0,0,17,119,1,0,0,0,19,121,1,0,0,0,21,126,1,0,0,0,23,132,1,0,0,0,25,137,1,0,0,0,27,146,1,0,0,0,29,155,1,0,0,0,31,157,1,0,0,0,33,159,1,0,0,0,35,161,1,0,0,0,37,163,1,0,0,0,39,166,1,0,0,0,41,168,1,0,0,0,43,170,1,0,0,0,45,173,1,0,0,0,47,175,1,0,0,0,49,178,1,0,0,0,51,181,1,0,0,0,53,185,1,0,0,0,55,190,1,0,0,0,57,196,1,0,0,0,59,202,1,0,0,0,61,209,1,0,0,0,63,213,1,0,0,0,65,216,1,0,0,0,67,219,1,0,0,0,69,222,1,0,0,0,71,229,1,0,0,0,73,239,1,0,0,0,75,290,1,0,0,0,77,300,1,0,0,0,79,338,1,0,0,0,81,356,1,0,0,0,83,376,1,0,0,0,85,379,1,0,0,0,87,385,1,0,0,0,89,387,1,0,0,0,91,411,1,0,0,0,93,446,1,0,0,0,95,448,1,0,0,0,97,453,1,0,0,0,99,459,1,0,0,0,101,102,5,40,0,0,102,2,1,0,0,0,103,104,5,41,0,0,104,4,1,0,0,0,105,106,5,110,0,0,106,107,5,111,0,0,107,108,5,116,0,0,108,6,1,0,0,0,109,110,5,33,0,0,110,8,1,0,0,0,111,112,5,46,0,0,112,10,1,0,0,0,113,114,5,64,0,0,114,12,1,0,0,0,115,116,5,91,0,0,116,14,1,0,0,0,117,118,5,44,0,0,118,16,1,0,0,0,119,120,5,93,0,0,120,18,1,0,0,0,121,122,5,116,0,0,122,123,5,114,0,0,123,124,5,117,0,0,124,125,5,101,0,0,125,20,1,0,0,0,126,127,5,102,0,0,127,128,5,97,0,0,128,129,5,108,0,0,129,130,5,115,0,0,130,131,5,101,0,0,131,22,1,0,0,0,132,133,5,110,0,0,133,134,5,117,0,0,134,135,5,108,0,0,135,136,5,108,0,0,136,24,1,0,0,0,137,138,5,73,0,0,138,139,5,110,0,0,139,140,5,102,0,0,140,141,5,105,0,0,141,142,5,110,0,0,142,143,5,105,0,0,143,144,5,116,0,0,144,145,5,121,0,0,145,26,1,0,0,0,146,147,5,105,0,0,147,148,5,110,0,0,148,149,5,102,0,0,149,150,5,105,0,0,150,151,5,110,0,0,151,152,5,105,0,0,152,153,5,116,0,0,153,154,5,121,0,0,154,28,1,0,0,0,155,156,5,43,0,0,156,30,1,0,0,0,157,158,5,45,0,0,158,32,1,0,0,0,159,160,5,42,0,0,160,34,1,0,0,0,161,162,5,47,0,0,162,36,1,0,0,0,163,164,5,60,0,0,164,165,5,61,0,0,165,38,1,0,0,0,166,167,5,60,0,0,167,40,1,0,0,0,168,169,5,62,0,0,169,42,1,0,0,0,170,171,5,62,0,0,171,172,5,61,0,0,172,44,1,0,0,0,173,174,5,61,0,0,174,46,1,0,0,0,175,176,5,33,0,0,176,177,5,61,0,0,177,48,1,0,0,0,178,179,5,105,0,0,179,180,5,110,0,0,180,50,1,0,0,0,181,182,5,33,0,0,182,183,5,105,0,0,183,184,5,110,0,0,184,52,1,0,0,0,185,186,5,108,0,0,186,187,5,105,0,0,187,188,5,107,0,0,188,189,5,101,0,0,189,54,1,0,0,0,190,191,5,33,0,0,191,192,5,108,0,0,192,193,5,105,0,0,193,194,5,107,0,0,194,195,5,101,0,0,195,56,1,0,0,0,196,197,5,105,0,0,197,198,5,108,0,0,198,199,5,105,0,0,199,200,5,107,0,0,200,201,5,101,0,0,201,58,1,0,0,0,202,203,5,33,0,0,203,204,5,105,0,0,204,205,5,108,0,0,205,206,5,105,0,0,206,207,5,107,0,0,207,208,5,101,0,0,208,60,1,0,0,0,209,210,5,97,0,0,210,211,5,110,0,0,211,212,5,100,0,0,212,62,1,0,0,0,213,214,5,111,0,0,214,215,5,114,0,0,215,64,1,0,0,0,216,217,5,38,0,0,217,218,5,38,0,0,218,66,1,0,0,0,219,220,5,124,0,0,220,221,5,124,0,0,221,68,1,0,0,0,222,226,7,0,0,0,223,225,7,1,0,0,224,223,1,0,0,0,225,228,1,0,0,0,226,224,1,0,0,0,226,227,1,0,0,0,227,70,1,0,0,0,228,226,1,0,0,0,229,230,7,2,0,0,230,72,1,0,0,0,231,232,5,39,0,0,232,233,3,89,44,0,233,234,5,39,0,0,234,240,1,0,0,0,235,236,5,34,0,0,236,237,3,89,44,0,237,238,5,34,0,0,238,240,1,0,0,0,239,231,1,0,0,0,239,235,1,0,0,0,240,74,1,0,0,0,241,242,5,39,0,0,242,243,3,89,44,0,243,244,5,84,0,0,244,245,3,91,45,0,245,246,3,93,46,0,246,247,5,39,0,0,247,248,5,39,0,0,248,249,3,89,44,0,249,250,5,32,0,0,250,251,3,91,45,0,251,252,3,93,46,0,252,253,5,39,0,0,253,254,5,39,0,0,254,255,3,89,44,0,255,256,5,84,0,0,256,257,3,91,45,0,257,258,5,39,0,0,258,259,5,39,0,0,259,260,3,89,44,0,260,261,5,32,0,0,261,262,3,91,45,0,262,263,5,39,0,0,263,291,1,0,0,0,264,265,5,34,0,0,265,266,3,89,44,0,266,267,5,84,0,0,267,268,3,91,45,0,268,269,3,93,46,0,269,270,5,34,0,0,270,291,1,0,0,0,271,272,5,34,0,0,272,273,3,89,44,0,273,274,5,32,0,0,274,275,3,91,45,0,275,276,3,93,46,0,276,277,5,34,0,0,277,291,1,0,0,0,278,279,5,34,0,0,279,280,3,89,44,0,280,281,5,84,0,0,281,282,3,91,45,0,282,283,5,34,0,0,283,291,1,0,0,0,284,285,5,34,0,0,285,286,3,89,44,0,286,287,5,32,0,0,287,288,3,91,45,0,288,289,5,34,0,0,289,291,1,0,0,0,290,241,1,0,0,0,290,264,1,0,0,0,290,271,1,0,0,0,290,278,1,0,0,0,290,284,1,0,0,0,291,76,1,0,0,0,292,293,5,39,0,0,293,294,3,91,45,0,294,295,5,39,0,0,295,301,1,0,0,0,296,297,5,34,0,0,297,298,3,91,45,0,298,299,5,34,0,0,299,301,1,0,0,0,300,292,1,0,0,0,300,296,1,0,0,0,301,78,1,0,0,0,302,304,3,71,35,0,303,302,1,0,0,0,303,304,1,0,0,0,304,306,1,0,0,0,305,307,3,87,43,0,306,305,1,0,0,0,307,308,1,0,0,0,308,306,1,0,0,0,308,309,1,0,0,0,309,317,1,0,0,0,310,314,5,46,0,0,311,313,3,87,43,0,312,311,1,0,0,0,313,316,1,0,0,0,314,312,1,0,0,0,314,315,1,0,0,0,315,318,1,0,0,0,316,314,1,0,0,0,317,310,1,0,0,0,317,318,1,0,0,0,318,328,1,0,0,0,319,321,5,69,0,0,320,322,7,2,0,0,321,320,1,0,0,0,321,322,1,0,0,0,322,324,1,0,0,0,323,325,3,87,43,0,324,323,1,0,0,0,325,326,1,0,0,0,326,324,1,0,0,0,326,327,1,0,0,0,327,329,1,0,0,0,328,319,1,0,0,0,328,329,1,0,0,0,329,339,1,0,0,0,330,331,5,48,0,0,331,332,5,120,0,0,332,334,1,0,0,0,333,335,3,99,49,0,334,333,1,0,0,0,335,336,1,0,0,0,336,334,1,0,0,0,336,337,1,0,0,0,337,339,1,0,0,0,338,303,1,0,0,0,338,330,1,0,0,0,339,80,1,0,0,0,340,342,3,71,35,0,341,340,1,0,0,0,341,342,1,0,0,0,342,344,1,0,0,0,343,345,3,87,43,0,344,343,1,0,0,0,345,346,1,0,0,0,346,344,1,0,0,0,346,347,1,0,0,0,347,357,1,0,0,0,348,349,5,48,0,0,349,350,5,120,0,0,350,352,1,0,0,0,351,353,3,99,49,0,352,351,1,0,0,0,353,354,1,0,0,0,354,352,1,0,0,0,354,355,1,0,0,0,355,357,1,0,0,0,356,341,1,0,0,0,356,348,1,0,0,0,357,82,1,0,0,0,358,363,5,39,0,0,359,362,3,95,47,0,360,362,8,3,0,0,361,359,1,0,0,0,361,360,1,0,0,0,362,365,1,0,0,0,363,361,1,0,0,0,363,364,1,0,0,0,364,366,1,0,0,0,365,363,1,0,0,0,366,377,5,39,0,0,367,372,5,34,0,0,368,371,3,95,47,0,369,371,8,4,0,0,370,368,1,0,0,0,370,369,1,0,0,0,371,374,1,0,0,0,372,370,1,0,0,0,372,373,1,0,0,0,373,375,1,0,0,0,374,372,1,0,0,0,375,377,5,34,0,0,376,358,1,0,0,0,376,367,1,0,0,0,377,84,1,0,0,0,378,380,7,5,0,0,379,378,1,0,0,0,380,381,1,0,0,0,381,379,1,0,0,0,381,382,1,0,0,0,382,383,1,0,0,0,383,384,6,42,0,0,384,86,1,0,0,0,385,386,7,6,0,0,386,88,1,0,0,0,387,388,7,6,0,0,388,389,7,6,0,0,389,390,7,6,0,0,390,391,7,6,0,0,391,396,5,45,0,0,392,393,7,7,0,0,393,397,7,8,0,0,394,395,7,9,0,0,395,397,7,10,0,0,396,392,1,0,0,0,396,394,1,0,0,0,397,398,1,0,0,0,398,405,5,45,0,0,399,400,7,11,0,0,400,406,7,7,0,0,401,402,7,10,0,0,402,406,7,8,0,0,403,404,5,51,0,0,404,406,5,49,0,0,405,399,1,0,0,0,405,401,1,0,0,0,405,403,1,0,0,0,406,90,1,0,0,0,407,408,7,12,0,0,408,412,7,6,0,0,409,410,5,50,0,0,410,412,7,13,0,0,411,407,1,0,0,0,411,409,1,0,0,0,412,413,1,0,0,0,413,414,5,58,0,0,414,415,7,14,0,0,415,416,7,6,0,0,416,429,1,0,0,0,417,418,5,58,0,0,418,419,7,14,0,0,419,420,7,6,0,0,420,427,1,0,0,0,421,423,5,46,0,0,422,424,7,6,0,0,423,422,1,0,0,0,424,425,1,0,0,0,425,423,1,0,0,0,425,426,1,0,0,0,426,428,1,0,0,0,427,421,1,0,0,0,427,428,1,0,0,0,428,430,1,0,0,0,429,417,1,0,0,0,429,430,1,0,0,0,430,92,1,0,0,0,431,447,5,90,0,0,432,439,7,2,0,0,433,435,7,12,0,0,434,433,1,0,0,0,434,435,1,0,0,0,435,436,1,0,0,0,436,440,7,6,0,0,437,438,5,50,0,0,438,440,7,13,0,0,439,434,1,0,0,0,439,437,1,0,0,0,440,444,1,0,0,0,441,442,5,58,0,0,442,443,7,14,0,0,443,445,7,6,0,0,444,441,1,0,0,0,444,445,1,0,0,0,445,447,1,0,0,0,446,431,1,0,0,0,446,432,1,0,0,0,447,94,1,0,0,0,448,451,5,92,0,0,449,452,3,97,48,0,450,452,9,0,0,0,451,449,1,0,0,0,451,450,1,0,0,0,452,96,1,0,0,0,453,454,5,117,0,0,454,455,3,99,49,0,455,456,3,99,49,0,456,457,3,99,49,0,457,458,3,99,49,0,458,98,1,0,0,0,459,460,7,15,0,0,460,100,1,0,0,0,35,0,226,239,290,300,303,308,314,317,321,326,328,336,338,341,346,354,356,361,363,370,372,376,381,396,405,411,425,427,429,434,439,444,446,451,1,0,1,0];T.DecisionsToDFA=T._ATN.decisionToState.map((o,e)=>new le.DFA(o,e));var Ua=T;var h=require("@browsery/antlr4");var x=class x extends h.Parser{get grammarFileName(){return"OpraFilter.g4"}get literalNames(){return x.literalNames}get symbolicNames(){return x.symbolicNames}get ruleNames(){return x.ruleNames}get serializedATN(){return x._serializedATN}createFailedPredicateException(e,t){return new h.FailedPredicateException(this,e,t)}constructor(e){super(e),this._interp=new h.ParserATNSimulator(this,x._ATN,x.DecisionsToDFA,new h.PredictionContextCache)}root(){let e=new en(this,this._ctx,this.state);this.enterRule(e,0,x.RULE_root);try{this.enterOuterAlt(e,1),this.state=34,this.expression(0),this.state=35,this.match(x.EOF)}catch(t){if(t instanceof h.RecognitionException)e.exception=t,this._errHandler.reportError(this,t),this._errHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}expression(e){e===void 0&&(e=0);let t=this._ctx,r=this.state,i=new ee(this,this._ctx,r),n=i,s=2;this.enterRecursionRule(i,2,x.RULE_expression,e);let p;try{let c;this.enterOuterAlt(i,1);{switch(this.state=48,this._errHandler.sync(this),this._input.LA(1)){case 35:i=new on(this,i),this._ctx=i,n=i,this.state=38,i._left=this.comparisonLeft(),this.state=39,i._operator=this.comparisonOperator(),this.state=40,i._right=this.comparisonRight();break;case 1:i=new tn(this,i),this._ctx=i,n=i,this.state=42,this.match(x.T__0),this.state=43,this.parenthesizedItem(),this.state=44,this.match(x.T__1);break;case 3:case 4:i=new rn(this,i),this._ctx=i,n=i,this.state=46,p=this._input.LA(1),p===3||p===4?(this._errHandler.reportMatch(this),this.consume()):this._errHandler.recoverInline(this),this.state=47,this.expression(1);break;default:throw new h.NoViableAltException(this)}for(this._ctx.stop=this._input.LT(-1),this.state=56,this._errHandler.sync(this),c=this._interp.adaptivePredict(this._input,1,this._ctx);c!==2&&c!==h.ATN.INVALID_ALT_NUMBER;){if(c===1){this._parseListeners!=null&&this.triggerExitRuleEvent(),n=i;{if(i=new jr(this,new ee(this,t,r)),this.pushNewRecursionContext(i,s,x.RULE_expression),this.state=50,!this.precpred(this._ctx,3))throw this.createFailedPredicateException("this.precpred(this._ctx, 3)");this.state=51,i._op=this.logicalOperator(),this.state=52,this.expression(4)}}this.state=58,this._errHandler.sync(this),c=this._interp.adaptivePredict(this._input,1,this._ctx)}}}catch(c){if(c instanceof h.RecognitionException)i.exception=c,this._errHandler.reportError(this,c),this._errHandler.recover(this,c);else throw c}finally{this.unrollRecursionContexts(t)}return i}comparisonLeft(){let e=new pi(this,this._ctx,this.state);this.enterRule(e,4,x.RULE_comparisonLeft);try{this.enterOuterAlt(e,1),this.state=59,this.qualifiedIdentifier()}catch(t){if(t instanceof h.RecognitionException)e.exception=t,this._errHandler.reportError(this,t),this._errHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}comparisonRight(){let e=new ci(this,this._ctx,this.state);this.enterRule(e,6,x.RULE_comparisonRight);try{switch(this.state=65,this._errHandler.sync(this),this._input.LA(1)){case 10:case 11:case 12:case 13:case 14:case 37:case 38:case 39:case 40:case 42:this.enterOuterAlt(e,1),this.state=61,this.value();break;case 35:this.enterOuterAlt(e,2),this.state=62,this.qualifiedIdentifier();break;case 6:this.enterOuterAlt(e,3),this.state=63,this.externalConstant();break;case 7:this.enterOuterAlt(e,4),this.state=64,this.arrayValue();break;default:throw new h.NoViableAltException(this)}}catch(t){if(t instanceof h.RecognitionException)e.exception=t,this._errHandler.reportError(this,t),this._errHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}parenthesizedItem(){let e=new li(this,this._ctx,this.state);this.enterRule(e,8,x.RULE_parenthesizedItem);try{this.enterOuterAlt(e,1),this.state=67,this.expression(0)}catch(t){if(t instanceof h.RecognitionException)e.exception=t,this._errHandler.reportError(this,t),this._errHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}value(){let e=new Z(this,this._ctx,this.state);this.enterRule(e,10,x.RULE_value);try{switch(this.state=77,this._errHandler.sync(this),this._input.LA(1)){case 40:e=new mn(this,e),this.enterOuterAlt(e,1),this.state=69,this.match(x.NUMBER);break;case 13:case 14:e=new ln(this,e),this.enterOuterAlt(e,2),this.state=70,this.infinity();break;case 10:case 11:e=new fn(this,e),this.enterOuterAlt(e,3),this.state=71,this.boolean_();break;case 12:e=new sn(this,e),this.enterOuterAlt(e,4),this.state=72,this.null_();break;case 38:e=new an(this,e),this.enterOuterAlt(e,5),this.state=73,this.match(x.DATETIME);break;case 37:e=new cn(this,e),this.enterOuterAlt(e,6),this.state=74,this.match(x.DATE);break;case 39:e=new nn(this,e),this.enterOuterAlt(e,7),this.state=75,this.match(x.TIME);break;case 42:e=new pn(this,e),this.enterOuterAlt(e,8),this.state=76,this.match(x.STRING);break;default:throw new h.NoViableAltException(this)}}catch(t){if(t instanceof h.RecognitionException)e.exception=t,this._errHandler.reportError(this,t),this._errHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}qualifiedIdentifier(){let e=new Cr(this,this._ctx,this.state);this.enterRule(e,12,x.RULE_qualifiedIdentifier);try{let t;this.enterOuterAlt(e,1);{for(this.state=84,this._errHandler.sync(this),t=this._interp.adaptivePredict(this._input,4,this._ctx);t!==2&&t!==h.ATN.INVALID_ALT_NUMBER;)t===1&&(this.state=79,this.identifier(),this.state=80,this.match(x.T__4)),this.state=86,this._errHandler.sync(this),t=this._interp.adaptivePredict(this._input,4,this._ctx);this.state=87,this.identifier()}}catch(t){if(t instanceof h.RecognitionException)e.exception=t,this._errHandler.reportError(this,t),this._errHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}externalConstant(){let e=new fi(this,this._ctx,this.state);this.enterRule(e,14,x.RULE_externalConstant);try{this.enterOuterAlt(e,1),this.state=89,this.match(x.T__5),this.state=90,this.identifier()}catch(t){if(t instanceof h.RecognitionException)e.exception=t,this._errHandler.reportError(this,t),this._errHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}identifier(){let e=new St(this,this._ctx,this.state);this.enterRule(e,16,x.RULE_identifier);try{this.enterOuterAlt(e,1),this.state=92,this.match(x.IDENTIFIER)}catch(t){if(t instanceof h.RecognitionException)e.exception=t,this._errHandler.reportError(this,t),this._errHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}arrayValue(){let e=new mi(this,this._ctx,this.state);this.enterRule(e,18,x.RULE_arrayValue);let t;try{this.enterOuterAlt(e,1);{for(this.state=94,this.match(x.T__6),this.state=95,this.value(),this.state=100,this._errHandler.sync(this),t=this._input.LA(1);t===8;)this.state=96,this.match(x.T__7),this.state=97,this.value(),this.state=102,this._errHandler.sync(this),t=this._input.LA(1);this.state=103,this.match(x.T__8)}}catch(r){if(r instanceof h.RecognitionException)e.exception=r,this._errHandler.reportError(this,r),this._errHandler.recover(this,r);else throw r}finally{this.exitRule()}return e}boolean_(){let e=new ui(this,this._ctx,this.state);this.enterRule(e,20,x.RULE_boolean);let t;try{this.enterOuterAlt(e,1),this.state=105,t=this._input.LA(1),t===10||t===11?(this._errHandler.reportMatch(this),this.consume()):this._errHandler.recoverInline(this)}catch(r){if(r instanceof h.RecognitionException)e.exception=r,this._errHandler.reportError(this,r),this._errHandler.recover(this,r);else throw r}finally{this.exitRule()}return e}null_(){let e=new di(this,this._ctx,this.state);this.enterRule(e,22,x.RULE_null);try{this.enterOuterAlt(e,1),this.state=107,this.match(x.T__11)}catch(t){if(t instanceof h.RecognitionException)e.exception=t,this._errHandler.reportError(this,t),this._errHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}infinity(){let e=new hi(this,this._ctx,this.state);this.enterRule(e,24,x.RULE_infinity);let t;try{this.enterOuterAlt(e,1),this.state=109,t=this._input.LA(1),t===13||t===14?(this._errHandler.reportMatch(this),this.consume()):this._errHandler.recoverInline(this)}catch(r){if(r instanceof h.RecognitionException)e.exception=r,this._errHandler.reportError(this,r),this._errHandler.recover(this,r);else throw r}finally{this.exitRule()}return e}arithmeticOperator(){let e=new un(this,this._ctx,this.state);this.enterRule(e,26,x.RULE_arithmeticOperator);let t;try{this.enterOuterAlt(e,1),this.state=111,t=this._input.LA(1),(t&-32)===0&&(1<<t&491520)!==0?(this._errHandler.reportMatch(this),this.consume()):this._errHandler.recoverInline(this)}catch(r){if(r instanceof h.RecognitionException)e.exception=r,this._errHandler.reportError(this,r),this._errHandler.recover(this,r);else throw r}finally{this.exitRule()}return e}comparisonOperator(){let e=new yi(this,this._ctx,this.state);this.enterRule(e,28,x.RULE_comparisonOperator);let t;try{this.enterOuterAlt(e,1),this.state=113,t=this._input.LA(1),(t&-32)===0&&(1<<t&2146959360)!==0?(this._errHandler.reportMatch(this),this.consume()):this._errHandler.recoverInline(this)}catch(r){if(r instanceof h.RecognitionException)e.exception=r,this._errHandler.reportError(this,r),this._errHandler.recover(this,r);else throw r}finally{this.exitRule()}return e}logicalOperator(){let e=new Ti(this,this._ctx,this.state);this.enterRule(e,30,x.RULE_logicalOperator);let t;try{this.enterOuterAlt(e,1),this.state=115,t=this._input.LA(1),(t-31&-32)===0&&(1<<t-31&15)!==0?(this._errHandler.reportMatch(this),this.consume()):this._errHandler.recoverInline(this)}catch(r){if(r instanceof h.RecognitionException)e.exception=r,this._errHandler.reportError(this,r),this._errHandler.recover(this,r);else throw r}finally{this.exitRule()}return e}polarityOperator(){let e=new dn(this,this._ctx,this.state);this.enterRule(e,32,x.RULE_polarityOperator);try{this.enterOuterAlt(e,1),this.state=117,this.match(x.POLAR_OP)}catch(t){if(t instanceof h.RecognitionException)e.exception=t,this._errHandler.reportError(this,t),this._errHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sempred(e,t,r){switch(t){case 1:return this.expression_sempred(e,r)}return!0}expression_sempred(e,t){switch(t){case 0:return this.precpred(this._ctx,3)}return!0}static get _ATN(){return x.__ATN||(x.__ATN=new h.ATNDeserializer().deserialize(x._serializedATN)),x.__ATN}};a(x,"OpraFilterParser");var m=x;m.T__0=1;m.T__1=2;m.T__2=3;m.T__3=4;m.T__4=5;m.T__5=6;m.T__6=7;m.T__7=8;m.T__8=9;m.T__9=10;m.T__10=11;m.T__11=12;m.T__12=13;m.T__13=14;m.T__14=15;m.T__15=16;m.T__16=17;m.T__17=18;m.T__18=19;m.T__19=20;m.T__20=21;m.T__21=22;m.T__22=23;m.T__23=24;m.T__24=25;m.T__25=26;m.T__26=27;m.T__27=28;m.T__28=29;m.T__29=30;m.T__30=31;m.T__31=32;m.T__32=33;m.T__33=34;m.IDENTIFIER=35;m.POLAR_OP=36;m.DATE=37;m.DATETIME=38;m.TIME=39;m.NUMBER=40;m.INTEGER=41;m.STRING=42;m.WHITESPACE=43;m.EOF=h.Token.EOF;m.RULE_root=0;m.RULE_expression=1;m.RULE_comparisonLeft=2;m.RULE_comparisonRight=3;m.RULE_parenthesizedItem=4;m.RULE_value=5;m.RULE_qualifiedIdentifier=6;m.RULE_externalConstant=7;m.RULE_identifier=8;m.RULE_arrayValue=9;m.RULE_boolean=10;m.RULE_null=11;m.RULE_infinity=12;m.RULE_arithmeticOperator=13;m.RULE_comparisonOperator=14;m.RULE_logicalOperator=15;m.RULE_polarityOperator=16;m.literalNames=[null,"'('","')'","'not'","'!'","'.'","'@'","'['","','","']'","'true'","'false'","'null'","'Infinity'","'infinity'","'+'","'-'","'*'","'/'","'<='","'<'","'>'","'>='","'='","'!='","'in'","'!in'","'like'","'!like'","'ilike'","'!ilike'","'and'","'or'","'&&'","'||'"];m.symbolicNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"IDENTIFIER","POLAR_OP","DATE","DATETIME","TIME","NUMBER","INTEGER","STRING","WHITESPACE"];m.ruleNames=["root","expression","comparisonLeft","comparisonRight","parenthesizedItem","value","qualifiedIdentifier","externalConstant","identifier","arrayValue","boolean","null","infinity","arithmeticOperator","comparisonOperator","logicalOperator","polarityOperator"];m._serializedATN=[4,1,43,120,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,49,8,1,1,1,1,1,1,1,1,1,5,1,55,8,1,10,1,12,1,58,9,1,1,2,1,2,1,3,1,3,1,3,1,3,3,3,66,8,3,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,78,8,5,1,6,1,6,1,6,5,6,83,8,6,10,6,12,6,86,9,6,1,6,1,6,1,7,1,7,1,7,1,8,1,8,1,9,1,9,1,9,1,9,5,9,99,8,9,10,9,12,9,102,9,9,1,9,1,9,1,10,1,10,1,11,1,11,1,12,1,12,1,13,1,13,1,14,1,14,1,15,1,15,1,16,1,16,1,16,0,1,2,17,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,0,6,1,0,3,4,1,0,10,11,1,0,13,14,1,0,15,18,1,0,19,30,1,0,31,34,117,0,34,1,0,0,0,2,48,1,0,0,0,4,59,1,0,0,0,6,65,1,0,0,0,8,67,1,0,0,0,10,77,1,0,0,0,12,84,1,0,0,0,14,89,1,0,0,0,16,92,1,0,0,0,18,94,1,0,0,0,20,105,1,0,0,0,22,107,1,0,0,0,24,109,1,0,0,0,26,111,1,0,0,0,28,113,1,0,0,0,30,115,1,0,0,0,32,117,1,0,0,0,34,35,3,2,1,0,35,36,5,0,0,1,36,1,1,0,0,0,37,38,6,1,-1,0,38,39,3,4,2,0,39,40,3,28,14,0,40,41,3,6,3,0,41,49,1,0,0,0,42,43,5,1,0,0,43,44,3,8,4,0,44,45,5,2,0,0,45,49,1,0,0,0,46,47,7,0,0,0,47,49,3,2,1,1,48,37,1,0,0,0,48,42,1,0,0,0,48,46,1,0,0,0,49,56,1,0,0,0,50,51,10,3,0,0,51,52,3,30,15,0,52,53,3,2,1,4,53,55,1,0,0,0,54,50,1,0,0,0,55,58,1,0,0,0,56,54,1,0,0,0,56,57,1,0,0,0,57,3,1,0,0,0,58,56,1,0,0,0,59,60,3,12,6,0,60,5,1,0,0,0,61,66,3,10,5,0,62,66,3,12,6,0,63,66,3,14,7,0,64,66,3,18,9,0,65,61,1,0,0,0,65,62,1,0,0,0,65,63,1,0,0,0,65,64,1,0,0,0,66,7,1,0,0,0,67,68,3,2,1,0,68,9,1,0,0,0,69,78,5,40,0,0,70,78,3,24,12,0,71,78,3,20,10,0,72,78,3,22,11,0,73,78,5,38,0,0,74,78,5,37,0,0,75,78,5,39,0,0,76,78,5,42,0,0,77,69,1,0,0,0,77,70,1,0,0,0,77,71,1,0,0,0,77,72,1,0,0,0,77,73,1,0,0,0,77,74,1,0,0,0,77,75,1,0,0,0,77,76,1,0,0,0,78,11,1,0,0,0,79,80,3,16,8,0,80,81,5,5,0,0,81,83,1,0,0,0,82,79,1,0,0,0,83,86,1,0,0,0,84,82,1,0,0,0,84,85,1,0,0,0,85,87,1,0,0,0,86,84,1,0,0,0,87,88,3,16,8,0,88,13,1,0,0,0,89,90,5,6,0,0,90,91,3,16,8,0,91,15,1,0,0,0,92,93,5,35,0,0,93,17,1,0,0,0,94,95,5,7,0,0,95,100,3,10,5,0,96,97,5,8,0,0,97,99,3,10,5,0,98,96,1,0,0,0,99,102,1,0,0,0,100,98,1,0,0,0,100,101,1,0,0,0,101,103,1,0,0,0,102,100,1,0,0,0,103,104,5,9,0,0,104,19,1,0,0,0,105,106,7,1,0,0,106,21,1,0,0,0,107,108,5,12,0,0,108,23,1,0,0,0,109,110,7,2,0,0,110,25,1,0,0,0,111,112,7,3,0,0,112,27,1,0,0,0,113,114,7,4,0,0,114,29,1,0,0,0,115,116,7,5,0,0,116,31,1,0,0,0,117,118,5,36,0,0,118,33,1,0,0,0,6,48,56,65,77,84,100];m.DecisionsToDFA=m._ATN.decisionToState.map((o,e)=>new h.DFA(o,e));var $a=m,hn=class hn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}expression(){return this.getTypedRuleContext(ee,0)}EOF(){return this.getToken(m.EOF,0)}get ruleIndex(){return m.RULE_root}enterRule(e){e.enterRoot&&e.enterRoot(this)}exitRule(e){e.exitRoot&&e.exitRoot(this)}accept(e){return e.visitRoot?e.visitRoot(this):e.visitChildren(this)}};a(hn,"RootContext");var en=hn,yn=class yn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return m.RULE_expression}copyFrom(e){super.copyFrom(e)}};a(yn,"ExpressionContext");var ee=yn,Tn=class Tn extends ee{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}parenthesizedItem(){return this.getTypedRuleContext(li,0)}enterRule(e){e.enterParenthesizedExpression&&e.enterParenthesizedExpression(this)}exitRule(e){e.exitParenthesizedExpression&&e.exitParenthesizedExpression(this)}accept(e){return e.visitParenthesizedExpression?e.visitParenthesizedExpression(this):e.visitChildren(this)}};a(Tn,"ParenthesizedExpressionContext");var tn=Tn,En=class En extends ee{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}expression(){return this.getTypedRuleContext(ee,0)}enterRule(e){e.enterNegativeExpression&&e.enterNegativeExpression(this)}exitRule(e){e.exitNegativeExpression&&e.exitNegativeExpression(this)}accept(e){return e.visitNegativeExpression?e.visitNegativeExpression(this):e.visitChildren(this)}};a(En,"NegativeExpressionContext");var rn=En,_n=class _n extends ee{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}comparisonLeft(){return this.getTypedRuleContext(pi,0)}comparisonOperator(){return this.getTypedRuleContext(yi,0)}comparisonRight(){return this.getTypedRuleContext(ci,0)}enterRule(e){e.enterComparisonExpression&&e.enterComparisonExpression(this)}exitRule(e){e.exitComparisonExpression&&e.exitComparisonExpression(this)}accept(e){return e.visitComparisonExpression?e.visitComparisonExpression(this):e.visitChildren(this)}};a(_n,"ComparisonExpressionContext");var on=_n,xn=class xn extends ee{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}expression_list(){return this.getTypedRuleContexts(ee)}expression(e){return this.getTypedRuleContext(ee,e)}logicalOperator(){return this.getTypedRuleContext(Ti,0)}enterRule(e){e.enterLogicalExpression&&e.enterLogicalExpression(this)}exitRule(e){e.exitLogicalExpression&&e.exitLogicalExpression(this)}accept(e){return e.visitLogicalExpression?e.visitLogicalExpression(this):e.visitChildren(this)}};a(xn,"LogicalExpressionContext");var jr=xn,On=class On extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}qualifiedIdentifier(){return this.getTypedRuleContext(Cr,0)}get ruleIndex(){return m.RULE_comparisonLeft}enterRule(e){e.enterComparisonLeft&&e.enterComparisonLeft(this)}exitRule(e){e.exitComparisonLeft&&e.exitComparisonLeft(this)}accept(e){return e.visitComparisonLeft?e.visitComparisonLeft(this):e.visitChildren(this)}};a(On,"ComparisonLeftContext");var pi=On,gn=class gn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}value(){return this.getTypedRuleContext(Z,0)}qualifiedIdentifier(){return this.getTypedRuleContext(Cr,0)}externalConstant(){return this.getTypedRuleContext(fi,0)}arrayValue(){return this.getTypedRuleContext(mi,0)}get ruleIndex(){return m.RULE_comparisonRight}enterRule(e){e.enterComparisonRight&&e.enterComparisonRight(this)}exitRule(e){e.exitComparisonRight&&e.exitComparisonRight(this)}accept(e){return e.visitComparisonRight?e.visitComparisonRight(this):e.visitChildren(this)}};a(gn,"ComparisonRightContext");var ci=gn,wn=class wn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}expression(){return this.getTypedRuleContext(ee,0)}get ruleIndex(){return m.RULE_parenthesizedItem}enterRule(e){e.enterParenthesizedItem&&e.enterParenthesizedItem(this)}exitRule(e){e.exitParenthesizedItem&&e.exitParenthesizedItem(this)}accept(e){return e.visitParenthesizedItem?e.visitParenthesizedItem(this):e.visitChildren(this)}};a(wn,"ParenthesizedItemContext");var li=wn,An=class An extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return m.RULE_value}copyFrom(e){super.copyFrom(e)}};a(An,"ValueContext");var Z=An,Rn=class Rn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}TIME(){return this.getToken(m.TIME,0)}enterRule(e){e.enterTimeLiteral&&e.enterTimeLiteral(this)}exitRule(e){e.exitTimeLiteral&&e.exitTimeLiteral(this)}accept(e){return e.visitTimeLiteral?e.visitTimeLiteral(this):e.visitChildren(this)}};a(Rn,"TimeLiteralContext");var nn=Rn,bn=class bn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}null_(){return this.getTypedRuleContext(di,0)}enterRule(e){e.enterNullLiteral&&e.enterNullLiteral(this)}exitRule(e){e.exitNullLiteral&&e.exitNullLiteral(this)}accept(e){return e.visitNullLiteral?e.visitNullLiteral(this):e.visitChildren(this)}};a(bn,"NullLiteralContext");var sn=bn,Dn=class Dn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}DATETIME(){return this.getToken(m.DATETIME,0)}enterRule(e){e.enterDateTimeLiteral&&e.enterDateTimeLiteral(this)}exitRule(e){e.exitDateTimeLiteral&&e.exitDateTimeLiteral(this)}accept(e){return e.visitDateTimeLiteral?e.visitDateTimeLiteral(this):e.visitChildren(this)}};a(Dn,"DateTimeLiteralContext");var an=Dn,Nn=class Nn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}STRING(){return this.getToken(m.STRING,0)}enterRule(e){e.enterStringLiteral&&e.enterStringLiteral(this)}exitRule(e){e.exitStringLiteral&&e.exitStringLiteral(this)}accept(e){return e.visitStringLiteral?e.visitStringLiteral(this):e.visitChildren(this)}};a(Nn,"StringLiteralContext");var pn=Nn,Sn=class Sn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}DATE(){return this.getToken(m.DATE,0)}enterRule(e){e.enterDateLiteral&&e.enterDateLiteral(this)}exitRule(e){e.exitDateLiteral&&e.exitDateLiteral(this)}accept(e){return e.visitDateLiteral?e.visitDateLiteral(this):e.visitChildren(this)}};a(Sn,"DateLiteralContext");var cn=Sn,Mn=class Mn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}infinity(){return this.getTypedRuleContext(hi,0)}enterRule(e){e.enterInfinityLiteral&&e.enterInfinityLiteral(this)}exitRule(e){e.exitInfinityLiteral&&e.exitInfinityLiteral(this)}accept(e){return e.visitInfinityLiteral?e.visitInfinityLiteral(this):e.visitChildren(this)}};a(Mn,"InfinityLiteralContext");var ln=Mn,vn=class vn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}boolean_(){return this.getTypedRuleContext(ui,0)}enterRule(e){e.enterBooleanLiteral&&e.enterBooleanLiteral(this)}exitRule(e){e.exitBooleanLiteral&&e.exitBooleanLiteral(this)}accept(e){return e.visitBooleanLiteral?e.visitBooleanLiteral(this):e.visitChildren(this)}};a(vn,"BooleanLiteralContext");var fn=vn,Fn=class Fn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}NUMBER(){return this.getToken(m.NUMBER,0)}enterRule(e){e.enterNumberLiteral&&e.enterNumberLiteral(this)}exitRule(e){e.exitNumberLiteral&&e.exitNumberLiteral(this)}accept(e){return e.visitNumberLiteral?e.visitNumberLiteral(this):e.visitChildren(this)}};a(Fn,"NumberLiteralContext");var mn=Fn,In=class In extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}identifier_list(){return this.getTypedRuleContexts(St)}identifier(e){return this.getTypedRuleContext(St,e)}get ruleIndex(){return m.RULE_qualifiedIdentifier}enterRule(e){e.enterQualifiedIdentifier&&e.enterQualifiedIdentifier(this)}exitRule(e){e.exitQualifiedIdentifier&&e.exitQualifiedIdentifier(this)}accept(e){return e.visitQualifiedIdentifier?e.visitQualifiedIdentifier(this):e.visitChildren(this)}};a(In,"QualifiedIdentifierContext");var Cr=In,Pn=class Pn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}identifier(){return this.getTypedRuleContext(St,0)}get ruleIndex(){return m.RULE_externalConstant}enterRule(e){e.enterExternalConstant&&e.enterExternalConstant(this)}exitRule(e){e.exitExternalConstant&&e.exitExternalConstant(this)}accept(e){return e.visitExternalConstant?e.visitExternalConstant(this):e.visitChildren(this)}};a(Pn,"ExternalConstantContext");var fi=Pn,Ln=class Ln extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}IDENTIFIER(){return this.getToken(m.IDENTIFIER,0)}get ruleIndex(){return m.RULE_identifier}enterRule(e){e.enterIdentifier&&e.enterIdentifier(this)}exitRule(e){e.exitIdentifier&&e.exitIdentifier(this)}accept(e){return e.visitIdentifier?e.visitIdentifier(this):e.visitChildren(this)}};a(Ln,"IdentifierContext");var St=Ln,kn=class kn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}value_list(){return this.getTypedRuleContexts(Z)}value(e){return this.getTypedRuleContext(Z,e)}get ruleIndex(){return m.RULE_arrayValue}enterRule(e){e.enterArrayValue&&e.enterArrayValue(this)}exitRule(e){e.exitArrayValue&&e.exitArrayValue(this)}accept(e){return e.visitArrayValue?e.visitArrayValue(this):e.visitChildren(this)}};a(kn,"ArrayValueContext");var mi=kn,jn=class jn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return m.RULE_boolean}enterRule(e){e.enterBoolean&&e.enterBoolean(this)}exitRule(e){e.exitBoolean&&e.exitBoolean(this)}accept(e){return e.visitBoolean?e.visitBoolean(this):e.visitChildren(this)}};a(jn,"BooleanContext");var ui=jn,Cn=class Cn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return m.RULE_null}enterRule(e){e.enterNull&&e.enterNull(this)}exitRule(e){e.exitNull&&e.exitNull(this)}accept(e){return e.visitNull?e.visitNull(this):e.visitChildren(this)}};a(Cn,"NullContext");var di=Cn,Un=class Un extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return m.RULE_infinity}enterRule(e){e.enterInfinity&&e.enterInfinity(this)}exitRule(e){e.exitInfinity&&e.exitInfinity(this)}accept(e){return e.visitInfinity?e.visitInfinity(this):e.visitChildren(this)}};a(Un,"InfinityContext");var hi=Un,$n=class $n extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return m.RULE_arithmeticOperator}enterRule(e){e.enterArithmeticOperator&&e.enterArithmeticOperator(this)}exitRule(e){e.exitArithmeticOperator&&e.exitArithmeticOperator(this)}accept(e){return e.visitArithmeticOperator?e.visitArithmeticOperator(this):e.visitChildren(this)}};a($n,"ArithmeticOperatorContext");var un=$n,qn=class qn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return m.RULE_comparisonOperator}enterRule(e){e.enterComparisonOperator&&e.enterComparisonOperator(this)}exitRule(e){e.exitComparisonOperator&&e.exitComparisonOperator(this)}accept(e){return e.visitComparisonOperator?e.visitComparisonOperator(this):e.visitChildren(this)}};a(qn,"ComparisonOperatorContext");var yi=qn,Bn=class Bn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return m.RULE_logicalOperator}enterRule(e){e.enterLogicalOperator&&e.enterLogicalOperator(this)}exitRule(e){e.exitLogicalOperator&&e.exitLogicalOperator(this)}accept(e){return e.visitLogicalOperator?e.visitLogicalOperator(this):e.visitChildren(this)}};a(Bn,"LogicalOperatorContext");var Ti=Bn,Kn=class Kn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}POLAR_OP(){return this.getToken(m.POLAR_OP,0)}get ruleIndex(){return m.RULE_polarityOperator}enterRule(e){e.enterPolarityOperator&&e.enterPolarityOperator(this)}exitRule(e){e.exitPolarityOperator&&e.exitPolarityOperator(this)}accept(e){return e.visitPolarityOperator?e.visitPolarityOperator(this):e.visitChildren(this)}};a(Kn,"PolarityOperatorContext");var dn=Kn;var qa=require("@browsery/antlr4");var Vn=class Vn extends k{constructor(e){super(""+e)}toString(){return"@"+super.toString()}};a(Vn,"ExternalConstant");var Ei=Vn;var Wn=class Wn extends qa.ParseTreeVisitor{constructor(e){super(),this._timeZone=e==null?void 0:e.timeZone}visitChildren(e){let t=super.visitChildren(e);return Array.isArray(t)&&t.length<2?t[0]:t??e.getText()}defaultResult(){}visitRoot(e){return this.visit(e.expression())}visitParenthesizedExpression(e){let t=this.visit(e.parenthesizedItem());return new Re(t)}visitParenthesizedItem(e){return this.visit(e.expression())}visitNegativeExpression(e){let t=this.visit(e.expression());return new Pr(t)}visitComparisonExpression(e){return new Ee({op:e.comparisonOperator().getText(),left:this.visit(e.comparisonLeft()),right:this.visit(e.comparisonRight())})}visitLogicalExpression(e){let t=[],r=a((i,n)=>{for(let s of i){if(s instanceof jr&&s.logicalOperator().getText()===n){r(s.expression_list(),s.logicalOperator().getText());continue}let p=this.visit(s);t.push(p)}},"wrapChildren");return r(e.expression_list(),e.logicalOperator().getText()),new _e({op:e.logicalOperator().getText(),items:t})}visitQualifiedIdentifier(e){return new ce(e.getText())}visitExternalConstant(e){return new Ei(e.identifier().getText())}visitNullLiteral(){return new mt}visitBooleanLiteral(e){return new ft(e.getText()==="true")}visitNumberLiteral(e){return new be(e.getText())}visitStringLiteral(e){return new ut(Lr(e.getText()))}visitInfinityLiteral(){return new be(1/0)}visitDateLiteral(e){return new ke(Lr(e.getText()))}visitDateTimeLiteral(e){return new kr(Lr(e.getText()))}visitTimeLiteral(e){return new dt(Lr(e.getText()))}visitArrayValue(e){return new Ae(e.value_list().map(t=>this.visit(t)))}};a(Wn,"FilterTreeVisitor");var Ur=Wn;var Ba=require("@browsery/antlr4");var zn=class zn extends Ba.ErrorListener{constructor(e){super(),this.errors=e}syntaxError(e,t,r,i,n,s){this.errors.push(new si(n,{recognizer:e,offendingSymbol:t,line:r,column:i,e:s}))}};a(zn,"OpraErrorListener");var $r=zn;function Jn(o,e){let t=new _i.CharStream(o),r=new Ua(t),i=new _i.CommonTokenStream(r),n=new $a(i);n.buildParseTrees=!0;let s=[],p=new $r(s);r.removeErrorListeners(),r.addErrorListener(p),n.removeErrorListeners(),n.addErrorListener(p);let c=n.root();if(s.length){let l=[];for(let R of s)l.push(R.message+(o.includes(`
|
|
8
8
|
`)?" at line: "+R.line+" column: "+R.column:" at column: "+R.column));let O=new ni(l.join(`
|
|
9
|
-
`));throw O.errors=s,O}return e=e||new Ur,e.visit(c)}a(Jn,"parse");var Yn=class Yn{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,(0,Ka.omitUndefined)({...t,operators:r}))}normalizeFilter(e,t,r){let i=typeof e=="string"?Jn(e):e;return this.normalizeFilterAst(i,[],t,r)}normalizeFilterAst(e,t,r,i){if(e instanceof Ee){if(t.push(e),this.normalizeFilterAst(e.left,t,r),!(e.left instanceof ce&&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 ye({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 ye({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 _e)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof lt)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n.expression,t,r)),t.pop(),e;if(e instanceof Ae)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof Re)return t.push(e),this.normalizeFilterAst(e.expression,t,r),t.pop(),e;if(e instanceof ce&&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 k){let n=t.findLastIndex(s=>s instanceof Ee);if(n>=0){let s=t[n];if((e===s.right||t[n+1]===s.right)&&s&&s.left instanceof ce&&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=Va.isString:p=this._decoderCache.get(s.left.field),p||(p=s.left.field.generateCodec("decode",{scope:i,projection:"*",ignoreReadonlyFields:!0,coerce:!0}),this._decoderCache.set(s.left.field,p)),e.value=p(e.value,{coerce:!0})}}}return e}toJSON(){return this._rules.toObject()}[Symbol.iterator](){return this._rules.entries()}};a(Yn,"FilterRules");var Mt=Yn;var Xa=Rt(require("object-hash"),1),Za=require("ts-gems"),V=require("valgen");var N0=require("reflect-metadata"),Qa=require("@jsopen/objects"),Ga=require("ts-gems"),Vr=require("valgen");var f={};Rr(f,{ArrayType:()=>vt,ComplexType:()=>Ft,EnumType:()=>It,HttpController:()=>qr,HttpOperation:()=>Qn,MQController:()=>Gn,MQOperation:()=>Xn,MappedType:()=>Pt,MixinType:()=>Lt,SimpleType:()=>kt,SpecVersion:()=>ph,UnionType:()=>jt,WSController:()=>Zn,WSOperation:()=>Hn,isArrayType:()=>Gc,isComplexType:()=>Vc,isDataType:()=>Kc,isEnumType:()=>Yc,isHttpController:()=>Xc,isMappedType:()=>Jc,isMixinType:()=>zc,isSimpleType:()=>Wc,isUnionType:()=>Qc});var ph="1.0";var vt;(function(o){o.Kind="ArrayType"})(vt||(vt={}));var Ft;(function(o){o.Kind="ComplexType"})(Ft||(Ft={}));var It;(function(o){o.Kind="EnumType"})(It||(It={}));var Pt;(function(o){o.Kind="MappedType"})(Pt||(Pt={}));var Lt;(function(o){o.Kind="MixinType"})(Lt||(Lt={}));var kt;(function(o){o.Kind="SimpleType"})(kt||(kt={}));var jt;(function(o){o.Kind="UnionType"})(jt||(jt={}));var qr;(function(o){o.Kind="HttpController"})(qr||(qr={}));var Qn;(function(o){o.Kind="HttpOperation"})(Qn||(Qn={}));var Gn;(function(o){o.Kind="MQController"})(Gn||(Gn={}));var Xn;(function(o){o.Kind="MQOperation"})(Xn||(Xn={}));function Kc(o){return o&&typeof o=="object"&&(o.kind===vt.Kind||o.kind===Ft.Kind||o.kind===It.Kind||o.kind===Pt.Kind||o.kind===kt.Kind||o.kind===Lt.Kind||o.kind===jt.Kind)}a(Kc,"isDataType");function Vc(o){return o&&typeof o=="object"&&o.kind===Ft.Kind}a(Vc,"isComplexType");function Wc(o){return o&&typeof o=="object"&&o.kind===kt.Kind}a(Wc,"isSimpleType");function zc(o){return o&&typeof o=="object"&&o.kind===Lt.Kind}a(zc,"isMixinType");function Jc(o){return o&&typeof o=="object"&&o.kind===Pt.Kind}a(Jc,"isMappedType");function Yc(o){return o&&typeof o=="object"&&o.kind===It.Kind}a(Yc,"isEnumType");function Qc(o){return o&&typeof o=="object"&&o.kind===jt.Kind}a(Qc,"isUnionType");function Gc(o){return o&&typeof o=="object"&&o.kind===vt.Kind}a(Gc,"isArrayType");function Xc(o){return o&&typeof o=="object"&&o.kind===qr.Kind}a(Xc,"isHttpController");var Zn;(function(o){o.Kind="WSController"})(Zn||(Zn={}));var Hn;(function(o){o.Kind="WSOperation"})(Hn||(Hn={}));var Ja=require("@jsopen/objects"),Ya=require("ts-gems");var Wa=require("ts-gems"),za=require("uid");var es=class es{constructor(e,t){this.element=e,this.parent=t}getDocument(){if(this._document)return this._document;if(this.element[we])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[L])==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(d,e).name;else if(typeof e=="object"){let n=e[d];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}getArrayType(e,t){let r=this.getDataType(e,t);if(r.kind===f.ArrayType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MixinType`)}getComplexType(e,t){let r=this.getDataType(e,t);if(r.kind===f.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===f.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===f.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===f.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===f.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===f.UnionType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a UnionType`)}};a(es,"DocumentNode");var Br=es;var A=a(function(o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let e=(0,Wa.asMutable)(this);e.id=(0,za.uid)(16),Object.defineProperty(e,"node",{value:new Br(this,o==null?void 0:o.node),enumerable:!1,writable:!0}),o&&Object.defineProperty(e,"owner",{value:o,enumerable:!1,writable:!0})},"DocumentElement"),rs=class rs{};a(rs,"DocumentElementClass");var ts=rs;A.prototype=ts.prototype;var je=Symbol.for("nodejs.util.inspect.custom"),De="\x1B[0m",Ce="\x1B[33m",Ue="\x1B[35m";function Kr(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(Kr,"testScopeMatch");var E=a(function(o,e,t){if(!this)throw new TypeError('"this" should be passed to call class constructor');if(e!=null&&e.name&&!P.test(e.name))throw new TypeError(`"${e.name}" is not a valid DataType name`);A.call(this,o);let r=(0,Ya.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"),os=class os extends A{get embedded(){return!this.name}inScope(e){return Kr(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,Ja.omitUndefined)({kind:this.kind,description:this.description,abstract:this.abstract,examples:this.examples})}toString(){return`[${Object.getPrototypeOf(this).constructor.name} ${this.name||"#Embedded"}]`}[je](){return`[${Ce+Object.getPrototypeOf(this).constructor.name+De} ${Ue+this.name+De}]`}};a(os,"DataTypeClass");var is=os;E.prototype=is.prototype;var de=a(function(...o){if(!this)return de[w].apply(void 0,o);let[e,t,r]=o;E.call(this,e,t,r);let i=(0,Ga.asMutable)(this);i.kind=f.ArrayType.Kind,i.type=t.type,i.minOccurs=t.minOccurs,i.maxOccurs=t.maxOccurs},"ArrayType"),ss=class ss extends E{toJSON(e){let t=super.toJSON(e),r=this.node.getDataTypeNameWithNs(this.type);return(0,Qa.omitUndefined)({...t,kind:this.kind,type:r||this.type.toJSON(e),minOccurs:this.minOccurs,maxOccurs:this.maxOccurs})}generateCodec(e,t,r){let i=this.type.generateCodec(e,t,r);i=Vr.vg.isArray(i);let n=[];return this.minOccurs&&n.push(Vr.vg.lengthMin(this.minOccurs)),this.maxOccurs&&n.push(Vr.vg.lengthMax(this.maxOccurs)),n.length>0?Vr.vg.pipe([i,...n],{returnIndex:0}):i}extendsFrom(){return!1}_locateBase(){}};a(ss,"ArrayTypeClass");var ns=ss;de.prototype=ns.prototype;de[w]=Zc;function Zc(o,e){let i=class i{};a(i,"ArrayClass");let t=i,r={...e,kind:f.ArrayType.Kind,type:o};return Reflect.defineMetadata(d,r,t),t}a(Zc,"ArrayTypeFactory");var Ct=/^([+-])?([a-z$_][\w.]*)$/i,q=a(function(...o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;E.call(this,e,t,r);let i=(0,Za.asMutable)(this);i._fields=new S},"ComplexTypeBase"),ps=class ps extends E{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 R,y,z;let r=this,i,n=e.split("."),s=n.length,p=[],c=this.owner.node.getDataType("object"),l=t==null?void 0:t.allowSigns,O=a(()=>p.map(U=>U.fieldName).join("."),"getStrPath");for(let U=0;U<s;U++){let J={fieldName:n[U],dataType:c};p.push(J);let pt=Ct.exec(n[U]);if(!pt)throw new TypeError(`Invalid field name (${O()})`);if(pt[1]&&((U===0&&l==="first"||l==="each")&&(J.sign=pt[1]),J.fieldName=pt[2]),r){if(r instanceof q){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(((R=r.additionalFields)==null?void 0:R[0])===!0){J.additionalField=!0,J.dataType=c,r=void 0;continue}if(((y=r.additionalFields)==null?void 0:y[0])==="type"&&((z=r.additionalFields)==null?void 0:z[1])instanceof E){J.additionalField=!0,J.dataType=r.additionalFields[1],r=r.additionalFields[1];continue}throw new Error(`Unknown field (${p.map(Yi=>Yi.fieldName).join(".")})`)}throw new TypeError(`"${p.map(Yi=>Yi.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){var p;let r=t!=null&&t.cache?t:{...t,projection:Array.isArray(t==null?void 0:t.projection)?Do(t.projection):t==null?void 0:t.projection,currentPath:""},i=this._generateSchema(e,r),n;if(this.additionalFields instanceof E)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 c=n[1];n=(0,V.validator)((l,O,R)=>O.fail(R,c,l))}let s=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});if(r.level===0&&((p=r.forwardCallbacks)!=null&&p.size))for(let c of r.forwardCallbacks)c();return s}_generateSchema(e,t){var c;t.fieldCache=t.fieldCache||new Map,t.level=t.level||0,t.forwardCallbacks=t.forwardCallbacks||new Set;let r={},{currentPath:i,projection:n}=t,s=!!(n&&Object.values(n).find(l=>!l.sign)),p;for(let l of this.fields("*")){if(!l.inScope(t.scope)||!(t.keepKeyFields&&this.keyField)&&(t.ignoreReadonlyFields&&l.readonly||t.ignoreWriteonlyFields&&l.writeonly)){r[l.name]=V.vg.isUndefined({coerce:!0});continue}p=l.name;let O;if(n!=="*"&&(O=n==null?void 0:n[p.toLowerCase()],(O==null?void 0:O.sign)==="-"||s&&!O||!s&&l.exclusive&&!O)){r[l.name]=V.vg.isUndefined({coerce:!0});continue}let R=typeof n=="object"?((c=n[p])==null?void 0:c.projection)||"*":n,y=t.fieldCache.get(l),z=typeof R=="string"?R:(0,Xa.default)(R||{});y||(y={},t.fieldCache.set(l,y));let U=y[z];if(U===null)U=V.vg.isAny(),t.forwardCallbacks.add(()=>{U=y[z],r[p]=t.partial||!l.required?V.vg.optional(U):V.vg.required(U)});else if(!U){let J=a(()=>{y[z]=null;let pt=this._generateFieldCodec(e,l,{...t,partial:t.partial==="deep"?t.partial:void 0,projection:R,currentPath:i+(i?".":"")+p});return y[z]=pt,pt},"defaultGenerator");t.fieldHook?U=t.fieldHook(l,t.currentPath,J):U=J()}r[p]=t.partial||!(l.required||U.id==="required")?V.vg.optional(U):U.id==="required"?U:V.vg.required(U)}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.generateCodec(e,{...r,level:r.level+1});return t.fixed&&(i=V.vg.isEqual(t.fixed)),t.isArray&&!(t.type instanceof de)&&(i=V.vg.isArray(i)),i}};a(ps,"ComplexTypeBaseClass");var as=ps;q.prototype=as.prototype;var U0=require("reflect-metadata"),xi=require("@jsopen/objects"),Ha=require("ts-gems"),ep=require("valgen");var te=a(function(...o){if(!this)return te[w].apply(void 0,o);let[e,t,r]=o;E.call(this,e,t,r);let i=(0,Ha.asMutable)(this);if(i.kind=f.EnumType.Kind,t.base){if(!(t.base instanceof te))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=I(t.attributes||{}),i.attributes=i.base?I(i.base.attributes):{};for(let[n,s]of Object.entries(i.ownAttributes))i.attributes[n]=s},"EnumType"),cs=class cs extends E{extendsFrom(e){var t;return e instanceof E||(e=this.node.getDataType(e)),e instanceof te?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}generateCodec(){return ep.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,xi.omitUndefined)({...t,kind:this.kind,base:r,attributes:I(this.ownAttributes)})}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(cs,"EnumTypeClass");var Wr=cs;te.prototype=Wr.prototype;Object.assign(te,Wr);function Hc(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 l;if(!isNaN(Number(p)))return;let c=(l=r==null?void 0:r.meanings)==null?void 0:l[p];i[p]=(0,xi.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 l;if(!isNaN(Number(p)))return;let c=(l=r==null?void 0:r.meanings)==null?void 0:l[p];i[o[p]]=(0,xi.omitUndefined)({alias:p,description:c})})}let s={kind:f.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,d,{value:s,enumerable:!1,configurable:!0,writable:!0}),n}a(Hc,"EnumTypeFactory");te.prototype=Wr.prototype;te[w]=Hc;var Ss={};Rr(Ss,{Base64Type:()=>Oi,DateTimeType:()=>Kt,DateTimeTypeTz:()=>Wt,DateType:()=>qt,EmailType:()=>re,FieldPathType:()=>Y,FilterType:()=>We,ObjectIdType:()=>Ai,OperationResult:()=>oe,PartialDateType:()=>tr,TimeType:()=>ir,UrlType:()=>bi,UuidType:()=>Jr});var gi=require("tslib"),Oe=require("valgen");var G0=require("reflect-metadata"),fs=require("@jsopen/objects"),rp=require("ts-gems"),ms=require("valgen");function ls(o){let e=[],t=a(function(r){let i;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!P.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(d,r)||{};o&&Object.assign(n,o),n.kind=f.SimpleType.Kind,n.name=i,Reflect.defineMetadata(d,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(ls,"SimpleTypeDecoratorFactory");function tp(o){return(e,t)=>{if(typeof t!="string")throw new TypeError("Symbol properties can't be decorated with Attribute");let r=Reflect.getOwnMetadata(d,e.constructor)||{},i=Reflect.getMetadata("design:type",e,t),n="string";i===Boolean?n="boolean":i===Number&&(n="number"),r.kind=f.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(d,r,e.constructor)}}a(tp,"AttributeDecoratorFactory");var u=a(function(...o){var n,s;if(!this)return u[w](...o);let[e,t,r]=o;E.call(this,e,t,r);let i=(0,rp.asMutable)(this);if(i.kind=f.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=I(t.attributes||{}),i.attributes=i.base?I(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"),ds=class ds extends E{extend(e){return Object.setPrototypeOf(e,this),e}extendsFrom(e){var t;return e instanceof E||(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,{dataType:this,element:(t==null?void 0:t.documentElement)||this.owner,scope:t==null?void 0:t.scope});s=this.base}return ms.isAny}let n=this;for(;n;){if(n._generateEncoder)return n._generateEncoder(i,{dataType:this,element:(t==null?void 0:t.documentElement)||this.owner,scope:t==null?void 0:t.scope});n=this.base}return ms.isAny}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0,i=(0,fs.omitUndefined)(this.ownAttributes),n;this.properties&&typeof this.properties.toJSON=="function"?n=this.properties.toJSON(this.properties,this.owner,e):n=this.properties?I(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,fs.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(ds,"SimpleTypeClass");var us=ds;u.prototype=us.prototype;Object.assign(u,ls);u[w]=ls;u.Attribute=tp;var Ut,Oi=(Ut=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=Oe.vg.isBase64({coerce:!0});return e.designType===Buffer?Oe.vg.pipe([t,el],{coerce:!0}):e.designType===Uint8Array?Oe.vg.pipe([t,tl],{coerce:!0}):t}[g](){return rl}},a(Ut,"Base64Type"),Ut);Oi=(0,gi.__decorate)([u({name:"base64",description:"A stream of bytes, base64 encoded",nameMappings:{js:"string",json:"string"}}),(0,gi.__metadata)("design:paramtypes",[Object])],Oi);var el=(0,Oe.validator)(o=>Buffer.from(o,"base64")),tl=(0,Oe.validator)(o=>new Uint8Array(Buffer.from(o,"base64"))),rl=(0,Oe.validator)(o=>Buffer.isBuffer(o)?o.toString("base64"):(0,Oe.isBase64)(o));var $e=require("tslib"),Ne=require("valgen");var ip=Ne.vg.isDateString({precisionMin:"day",trim:"day",coerce:!0}),il=Ne.vg.isDate({trim:"day",coerce:!0}),$t,qt=($t=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t;e.designType===Date?t=il:t=ip;let r=[t];return e.minValue!=null&&r.push(Ne.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Ne.vg.isLte(t(e.maxValue))),r.length>0?Ne.vg.pipe(r,{returnIndex:0}):t}[g](e){let t=ip,r=[t];return e.minValue!=null&&r.push(Ne.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Ne.vg.isLte(t(e.maxValue))),r.length>0?Ne.vg.pipe(r,{returnIndex:0}):t}},a($t,"DateType"),$t);(0,$e.__decorate)([u.Attribute({description:"Minimum value"}),(0,$e.__metadata)("design:type",String)],qt.prototype,"minValue",void 0);(0,$e.__decorate)([u.Attribute({description:"Maximum value"}),(0,$e.__metadata)("design:type",String)],qt.prototype,"maxValue",void 0);qt=(0,$e.__decorate)([u({name:"date",description:"A date without time",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18","Full date value"),(0,$e.__metadata)("design:paramtypes",[Object])],qt);var qe=require("tslib"),Se=require("valgen");var op=Se.vg.isDateString({precisionMin:"day",trim:"tz",coerce:!0}),ol=Se.vg.isDate({coerce:!0}),Bt,Kt=(Bt=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t;e.designType===Date?t=ol:t=op;let r=[t];return e.minValue!=null&&r.push(Se.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Se.vg.isLte(t(e.maxValue))),r.length>0?Se.vg.pipe(r,{returnIndex:0}):t}[g](e){let t=op,r=[t];return e.minValue!=null&&r.push(Se.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Se.vg.isLte(t(e.maxValue))),r.length>0?Se.vg.pipe(r,{returnIndex:0}):t}},a(Bt,"DateTimeType"),Bt);(0,qe.__decorate)([u.Attribute({description:"Minimum value"}),(0,qe.__metadata)("design:type",String)],Kt.prototype,"minValue",void 0);(0,qe.__decorate)([u.Attribute({description:"Maximum value"}),(0,qe.__metadata)("design:type",String)],Kt.prototype,"maxValue",void 0);Kt=(0,qe.__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,qe.__metadata)("design:paramtypes",[Object])],Kt);var Ke=require("tslib"),Be=require("valgen");var np=Be.vg.isDateString({precisionMin:"tz",coerce:!0}),Vt,Wt=(Vt=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=np,r=[t];return e.minValue!=null&&r.push(Be.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Be.vg.isLte(t(e.maxValue))),r.length>0?Be.vg.pipe(r,{returnIndex:0}):t}[g](e){let t=np,r=[t];return e.minValue!=null&&r.push(Be.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Be.vg.isLte(t(e.maxValue))),r.length>0?Be.vg.pipe(r,{returnIndex:0}):t}},a(Vt,"DateTimeTypeTz"),Vt);(0,Ke.__decorate)([u.Attribute({description:"Minimum value"}),(0,Ke.__metadata)("design:type",String)],Wt.prototype,"minValue",void 0);(0,Ke.__decorate)([u.Attribute({description:"Maximum value"}),(0,Ke.__metadata)("design:type",String)],Wt.prototype,"maxValue",void 0);Wt=(0,Ke.__decorate)([u({name:"datetimetz",description:"A full datetime value with time zone information",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18T22:30:15+03:00"),(0,Ke.__metadata)("design:paramtypes",[Object])],Wt);var j=require("tslib"),hs=require("valgen");var zt,re=(zt=class{constructor(e){e&&Object.assign(this,e)}[_](e){return hs.vg.isEmail({...e,coerce:!0})}[g](e){return hs.vg.isEmail({...e,coerce:!0})}},a(zt,"EmailType"),zt);(0,j.__decorate)([u.Attribute({description:"If set to `true`, the validator will also match `Display Name <email-address>",default:!1}),(0,j.__metadata)("design:type",Boolean)],re.prototype,"allowDisplayName",void 0);(0,j.__decorate)([u.Attribute({description:"If set to `true`, the validator will reject strings without the format `Display Name <email-address>",default:!1}),(0,j.__metadata)("design:type",Boolean)],re.prototype,"requireDisplayName",void 0);(0,j.__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,j.__metadata)("design:type",Boolean)],re.prototype,"utf8LocalPart",void 0);(0,j.__decorate)([u.Attribute({description:"If set to `true`, the validator will not check for the standard max length of an email",default:!1}),(0,j.__metadata)("design:type",Boolean)],re.prototype,"ignoreMaxLength",void 0);(0,j.__decorate)([u.Attribute({description:"If set to `true`, the validator will allow IP addresses in the host part",default:!1}),(0,j.__metadata)("design:type",Boolean)],re.prototype,"allowIpDomain",void 0);(0,j.__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,j.__metadata)("design:type",Boolean)],re.prototype,"domainSpecificValidation",void 0);(0,j.__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,j.__metadata)("design:type",Array)],re.prototype,"hostBlacklist",void 0);(0,j.__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,j.__metadata)("design:type",Array)],re.prototype,"hostWhitelist",void 0);(0,j.__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,j.__metadata)("design:type",String)],re.prototype,"blacklistedChars",void 0);re=(0,j.__decorate)([u({name:"email",description:"An email value",nameMappings:{js:"string",json:"string"}}).Example("some.body@example.com"),(0,j.__metadata)("design:paramtypes",[Object])],re);var Ve=require("tslib"),Yt=require("valgen");var Jt,Y=(Jt=class{constructor(e){e&&Object.assign(this,e)}[_](e,{element:t,scope:r}){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),n=e.allowSigns,s=(0,Yt.validator)("decodeFieldPath",p=>i.normalizeFieldPath(p,{allowSigns:n,scope:r}));return Yt.vg.pipe([Yt.toString,s])}[g](e,t){return this[_](e,t)}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");E.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),allowSigns:e.allowSigns}}},a(Jt,"FieldPathType"),Jt);(0,Ve.__decorate)([u.Attribute({description:"Data type which field belong to"}),(0,Ve.__metadata)("design:type",Object)],Y.prototype,"dataType",void 0);(0,Ve.__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,Ve.__metadata)("design:type",String)],Y.prototype,"allowSigns",void 0);Y=(0,Ve.__decorate)([u({name:"fieldpath",description:"Field path",nameMappings:{js:"string",json:"string"}}),(0,Ve.__metadata)("design:paramtypes",[Object])],Y);var ze=require("tslib"),ys=require("valgen");var Gt={};Rr(Gt,{$and:()=>sl,$arithmetic:()=>Al,$array:()=>sp,$date:()=>al,$eq:()=>fl,$field:()=>ll,$gt:()=>ul,$gte:()=>dl,$ilike:()=>Ol,$in:()=>Tl,$like:()=>_l,$lt:()=>hl,$lte:()=>yl,$ne:()=>ml,$notILike:()=>gl,$notIn:()=>El,$notLike:()=>xl,$number:()=>cl,$or:()=>nl,$paren:()=>wl,$time:()=>pl,ArithmeticExpression:()=>lt,ArithmeticExpressionItem:()=>oi,ArrayExpression:()=>Ae,Ast:()=>Ir,BooleanLiteral:()=>ft,ComparisonExpression:()=>Ee,DateLiteral:()=>ke,DateTimeLiteral:()=>kr,Expression:()=>K,FilterTreeVisitor:()=>Ur,Literal:()=>k,LogicalExpression:()=>_e,NegativeExpression:()=>Pr,NullLiteral:()=>mt,NumberLiteral:()=>be,OpraErrorListener:()=>$r,ParenthesizedExpression:()=>Re,QualifiedIdentifier:()=>ce,StringLiteral:()=>ut,Term:()=>ct,TimeLiteral:()=>dt,parse:()=>Jn});function nl(...o){return new _e({op:"or",items:o})}a(nl,"$or");function sl(...o){return new _e({op:"and",items:o})}a(sl,"$and");function al(o){return new ke(o)}a(al,"$date");function pl(o){return new dt(o)}a(pl,"$time");function cl(o){return new be(o)}a(cl,"$number");function sp(...o){return new Ae(o.map(wi))}a(sp,"$array");function ll(o){return new ce(o)}a(ll,"$field");function fl(o,e){return fe("=",o,e)}a(fl,"$eq");function ml(o,e){return fe("!=",o,e)}a(ml,"$ne");function ul(o,e){return fe(">",o,e)}a(ul,"$gt");function dl(o,e){return fe(">=",o,e)}a(dl,"$gte");function hl(o,e){return fe("<",o,e)}a(hl,"$lt");function yl(o,e){return fe("<=",o,e)}a(yl,"$lte");function Tl(o,e){return fe("in",o,e)}a(Tl,"$in");function El(o,e){return fe("!in",o,e)}a(El,"$notIn");function _l(o,e){return fe("like",o,e)}a(_l,"$like");function xl(o,e){return fe("!like",o,e)}a(xl,"$notLike");function Ol(o,e){return fe("ilike",o,e)}a(Ol,"$ilike");function gl(o,e){return fe("!ilike",o,e)}a(gl,"$notILike");function wl(o){return new Re(o)}a(wl,"$paren");function Al(o){let e=new lt;return e.add=t=>(e.append("+",Qt(t)),e),e.sub=t=>(e.append("-",Qt(t)),e),e.mul=t=>(e.append("*",Qt(t)),e),e.div=t=>(e.append("/",Qt(t)),e),e.append("+",wi(o)),e}a(Al,"$arithmetic");function fe(o,e,t){let r=typeof e=="string"?new ce(e):wi(e),i=wi(t);return new Ee({op:o,left:r,right:i})}a(fe,"comparisonExpression");var wi=a(o=>Array.isArray(o)?sp(...o.map(Qt)):Qt(o),"wrapEntryValue"),Qt=a(o=>o instanceof K?o:typeof o=="boolean"?new ft(o):typeof o=="number"||typeof o=="bigint"?new be(o):o==null?new mt:o instanceof Date?new ke(o):new ut(""+o),"_wrapEntryValue");var Xt,We=(Xt=class{constructor(e){e&&Object.assign(this,e)}[_](e,{element:t}){let r=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),i=e.rules?new Mt(e.rules):void 0;return Rl(r,i)}[g](){return bl}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");E.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),rules:e.rules}}},a(Xt,"FilterType"),Xt);(0,ze.__decorate)([u.Attribute({description:"Data type which filtering fields belong to"}),(0,ze.__metadata)("design:type",Object)],We.prototype,"dataType",void 0);(0,ze.__decorate)([u.Attribute({description:"Stringified JSON object defines filtering rules",format:"string"}),(0,ze.__metadata)("design:type",Object)],We.prototype,"rules",void 0);We=(0,ze.__decorate)([u({name:"filter",description:"A query filter",nameMappings:{js:"object",json:"string"}}),(0,ze.__metadata)("design:paramtypes",[Object])],We);var Rl=a((o,e,t)=>(0,ys.validator)("decodeFilter",(r,i,n)=>{if(typeof r=="string")try{let s=Gt.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"),bl=(0,ys.validator)("encodeFilter",(o,e,t)=>{if(o instanceof Gt.Ast)return o.toString();e.fail(t,"Not a valid filter expression",o)});var Ri=require("tslib"),Ts=require("valgen");var Zt,Ai=(Zt=class{constructor(e){e&&Object.assign(this,e)}[_](){return Ts.vg.isObjectId({coerce:!0})}[g](){return Ts.vg.isObjectId({coerce:!0})}},a(Zt,"ObjectIdType"),Zt);Ai=(0,Ri.__decorate)([u({name:"ObjectId",description:"A MongoDB ObjectID value",nameMappings:{js:"object",json:"string"}}),(0,Ri.__metadata)("design:paramtypes",[Object])],Ai);var C=require("tslib");var _s=require("@jsopen/objects"),pp=require("ts-gems");var ap=require("@jsopen/objects");function Es(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(d,r.constructor)||{};n.kind=f.ComplexType.Kind,n.fields=n.fields||{};let s=Reflect.getMetadata("design:type",r,i),p=n.fields[i]={...o,designType:s};s===Array?p.isArray=!0:p.type=p.type||s,Reflect.defineMetadata(d,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,ap.omitUndefined)({...i,scopePattern:Array.isArray(r)?r:[r],type:void 0,isArray:void 0,isNestedEntity:void 0}))}),t),t}a(Es,"ApiFieldDecoratorFactory");var $=a(function(...o){if(!this){let[n]=o;return $[w](n)}let[e,t]=o;A.call(this,e);let r=(0,pp.asMutable)(this);r.name=t.name;let i=t.origin||e;if(!(i instanceof q))throw new Error("Field origin should be one of ComplexType, MappedType or MixinType");r.origin=i,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,r.scopePattern=t.scopePattern?Array.isArray(t.scopePattern)?t.scopePattern:[t.scopePattern]:void 0,r.designType=t.designType,r.override=t.override},"ApiField"),Os=class Os extends A{inScope(e){return Kr(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(Kr(e,r.scopePattern)){t=(0,_s.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,_s.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})}generateCodec(e,t,r){return this.type.generateCodec(e,t,{...r,designType:this.designType})}};a(Os,"ApiFieldClass");var xs=Os;$.prototype=xs.prototype;Object.assign($,Es);$[w]=Es;var y1=require("reflect-metadata"),lp=require("@jsopen/objects"),fp=require("ts-gems");var gs=class gs extends ye{constructor(){super(""),this.details=[]}add(e){return this.details.push(e),this}};a(gs,"OpraDocumentError");var ht=gs;var ws=class ws{constructor(e){this.path="",this.error=new ht,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(ws,"DocumentInitContext");var he=ws;var cp=require("@jsopen/objects");function As(o){return function(e){let t;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!P.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(d,e);r||(r={},Reflect.defineMetadata(d,r,e)),r.kind=f.ComplexType.Kind,r.name=t,o&&Object.assign(r,(0,cp.omit)(o,["name"]))}}a(As,"ComplexTypeDecorator");var ie=a(function(...o){var n;if(!this)return ie[w].apply(void 0,o);let[e,t]=o,r=o[2]||new he({maxErrors:0});q.call(this,e,t,r);let i=(0,fp.asMutable)(this);i.kind=f.ComplexType.Kind,i.discriminatorField=t.discriminatorField,i.discriminatorValue=t.discriminatorValue,t.base&&r.enter(".base",()=>{if(!(t.base instanceof q))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 $(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 $(this,{...p,name:s});this._fields.set(c.name,c)}})},"ComplexType"),bs=class bs extends q{extendsFrom(e){var t;return e instanceof E||(e=this.node.getDataType(e)),e instanceof q?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 E){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,lp.omitUndefined)(i)}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(bs,"ComplexTypeClass");var Rs=bs;ie.prototype=Rs.prototype;Object.assign(ie,As);ie[w]=As;var Ht,oe=(Ht=class{constructor(e){e&&Object.assign(this,e)}},a(Ht,"OperationResult"),Ht);(0,C.__decorate)([$(),(0,C.__metadata)("design:type",Number)],oe.prototype,"affected",void 0);(0,C.__decorate)([$(),(0,C.__metadata)("design:type",Number)],oe.prototype,"totalMatches",void 0);(0,C.__decorate)([$(),(0,C.__metadata)("design:type",String)],oe.prototype,"context",void 0);(0,C.__decorate)([$(),(0,C.__metadata)("design:type",String)],oe.prototype,"type",void 0);(0,C.__decorate)([$(),(0,C.__metadata)("design:type",String)],oe.prototype,"message",void 0);(0,C.__decorate)([$({type:"any"}),(0,C.__metadata)("design:type",Object)],oe.prototype,"payload",void 0);(0,C.__decorate)([$({type:"object"}),(0,C.__metadata)("design:type",Array)],oe.prototype,"errors",void 0);oe=(0,C.__decorate)([ie({name:"OperationResult",description:"Operation result"}),(0,C.__metadata)("design:paramtypes",[Object])],oe);(function(o){function e(t){var i;let r=(i=class extends o{constructor(...s){super(...s)}},a(i,"OperationResult_"),i);return(0,C.__decorate)([$({type:t,required:!0}),(0,C.__metadata)("design:type",Object)],r.prototype,"payload",void 0),r=(0,C.__decorate)([ie({embedded:!0}),(0,C.__metadata)("design:paramtypes",[Object])],r),r}a(e,"forPayload"),o.forPayload=e})(oe||(oe={}));var Je=require("tslib"),B=require("valgen");var er,tr=(er=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=up,r=[];return e.minValue!=null&&((0,B.isDateString)(e.minValue),r.push(B.toString,B.vg.isGte(e.minValue))),e.maxValue!=null&&((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}[g](e){let t=up,r=[];return e.minValue!=null&&((0,B.isDateString)(e.minValue),r.push(B.vg.isGte(e.minValue))),e.maxValue!=null&&((0,B.isDateString)(e.maxValue),r.push(B.vg.isLte(e.maxValue))),r.length>0?B.vg.pipe([t,...r],{returnIndex:0}):t}},a(er,"PartialDateType"),er);(0,Je.__decorate)([u.Attribute({description:"Minimum value"}),(0,Je.__metadata)("design:type",String)],tr.prototype,"minValue",void 0);(0,Je.__decorate)([u.Attribute({description:"Maximum value"}),(0,Je.__metadata)("design:type",String)],tr.prototype,"maxValue",void 0);tr=(0,Je.__decorate)([u({name:"partialdate",description:"Specifies a point in time using a 24-hour clock notation.\rFormat: YYYY-[MM-[DD-[T?HH:[MM:[SS[.S[S[S[S]]]]]]]]][+/-ZZ:ZZ].",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18T22:30:15:22+03:00").Example("2021-04-18 22:30").Example("2021-04-18").Example("2021"),(0,Je.__metadata)("design:paramtypes",[Object])],tr);var mp=B.vg.isDateString({precisionMin:"year"}),up=(0,B.validator)(o=>{if(o instanceof Date){let e=mp(o,{coerce:!0});return e.endsWith("Z")&&(e=e.substring(0,e.length-1)),e.endsWith(".000")&&(e=e.substring(0,e.length-4)),e.endsWith(":00")&&(e=e.substring(0,e.length-3)),e.endsWith("00:00")&&(e=e.substring(0,e.length-6)),e}return mp(o,{coerce:!1})});var Ye=require("tslib"),zr=require("valgen");var Dl=/^([0-1][0-9]|2[0-4]):([0-5][0-9])(?::([0-5][0-9]))?$/,rr,ir=(rr=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=zr.vg.matches(Dl,{formatName:"time",coerce:!0}),r=[];return e.minValue!=null&&r.push(zr.vg.isGte(e.minValue)),e.maxValue!=null&&r.push(zr.vg.isLte(e.maxValue)),r.length>0?zr.vg.pipe([t,...r],{returnIndex:0}):t}[g](e){return this[_](e)}},a(rr,"TimeType"),rr);(0,Ye.__decorate)([u.Attribute({description:"Minimum value"}),(0,Ye.__metadata)("design:type",String)],ir.prototype,"minValue",void 0);(0,Ye.__decorate)([u.Attribute({description:"Maximum value"}),(0,Ye.__metadata)("design:type",String)],ir.prototype,"maxValue",void 0);ir=(0,Ye.__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,Ye.__metadata)("design:paramtypes",[Object])],ir);var Di=require("tslib"),Ds=require("valgen");var or,bi=(or=class{constructor(e){e&&Object.assign(this,e)}[_](){return Ds.vg.isURL({coerce:!0})}[g](){return Ds.vg.isURL({coerce:!0})}},a(or,"UrlType"),or);bi=(0,Di.__decorate)([u({name:"url",description:"A Uniform Resource Identifier Reference (RFC 3986 icon) value",nameMappings:{js:"string",json:"string"}}).Example("http://tempuri.org"),(0,Di.__metadata)("design:paramtypes",[Object])],bi);var sr=require("tslib"),Ns=require("valgen");var nr,Jr=(nr=class{constructor(e){e&&Object.assign(this,e)}[_](e){return Ns.vg.isUUID(e==null?void 0:e.version,{coerce:!0})}[g](e){return Ns.vg.isUUID(e==null?void 0:e.version,{coerce:!0})}},a(nr,"UuidType"),nr);(0,sr.__decorate)([u.Attribute({description:"Version of the UUID"}),(0,sr.__metadata)("design:type",Number)],Jr.prototype,"version",void 0);Jr=(0,sr.__decorate)([u({name:"uuid",description:"A Universal Unique Identifier (UUID) value",nameMappings:{js:"string",json:"string"}}),(0,sr.__metadata)("design:paramtypes",[Object])],Jr);var yp=Rt(require("path-browserify"),1),Tp=require("@jsopen/objects"),Ep=require("ts-gems");var dp,hp,me=Symbol.for("kMap"),Yr=Symbol.for("kCtorMap"),Ms=class Ms{constructor(){this[dp]=new S,this[hp]=new WeakMap}get size(){return this[me].size}forEach(e,t){this[me].forEach(e,t)}get(e){let t=typeof e=="string"?e:this[Yr].get(e);if(!t&&typeof e=="function"){let i=Reflect.getMetadata(d,e);t=i==null?void 0:i.name}if(!t&&typeof e=="object"){let i=e[d];t=i==null?void 0:i.name}if(!t)return;let r=this[me].get(t);if(r)return typeof e=="function"&&r.kind==="ComplexType"?r.ctor===e?r:void 0:r}set(e,t){this[me].set(e,t),t.ctor?this[Yr].set(t.ctor,e):t.instance&&this[Yr].set(t.instance,e)}has(e){if(e instanceof E)return!!e.name&&this[me].has(e.name);let t=typeof e=="string"?e:this[Yr].get(e);return t?this[me].has(t):!1}keys(){return this[me].keys()}values(){return this[me].values()}entries(){return this[me].entries()}sort(e){return this[me].sort(e),this}[(dp=me,hp=Yr,Symbol.iterator)](){return this[me][Symbol.iterator]()}};a(Ms,"DataTypeMap");var W=Ms;var yt=require("@jsopen/objects");function F(o,e){let t=a(((r,i)=>{if(typeof i!="string")throw new TypeError("Symbol properties can not be decorated");let n={...e,kind:f.HttpOperation.Kind},s=Reflect.getOwnMetadata(se,r.constructor)||{};s.operations=s.operations||{},s.operations[i]=n;for(let p of o)p(n);Reflect.defineMetadata(se,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"};(0,yt.isConstructor)(s.type)&&(s.designType=s.type),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"};(0,yt.isConstructor)(s.type)&&(s.designType=s.type),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"};(0,yt.isConstructor)(s.type)&&(s.designType=s.type),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"};(0,yt.isConstructor)(s.type)&&(s.designType=s.type),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||N.opra_response_json,n.contentEncoding=n.contentEncoding||"utf-8"),n.contentType===N.opra_response_json&&(n.contentEncoding=n.contentEncoding||"utf-8"),(0,yt.isConstructor)(n.type)&&(n.designType=n.type),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||N.json,i.contentEncoding=i.contentEncoding||"utf-8",(0,yt.isConstructor)(i.type)&&(i.designType=i.type)),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(F,"HttpOperationDecoratorFactory");var D=a(function(...o){if(!this){let[i]=o,n=[];return D[w].call(void 0,n,i)}let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,Ep.asMutable)(this);r.parameters=[],r.responses=[],r.types=r.node[L]=new W,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?I(t.compositionOptions):void 0},"HttpOperation"),Fs=class Fs extends A{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:yp.default.posix.join(e,this.path):e:this.path||"/"}toJSON(e){var r;let t=(0,Tp.omitUndefined)({kind:f.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(Fs,"HttpOperationClass");var vs=Fs;D.prototype=vs.prototype;D[w]=F;D.GET=function(o){return F([],{...o,method:"GET"})};D.DELETE=function(o){return F([],{...o,method:"DELETE"})};D.HEAD=function(o){return F([],{...o,method:"HEAD"})};D.OPTIONS=function(o){return F([],{...o,method:"OPTIONS"})};D.PATCH=function(o){return F([],{...o,method:"PATCH"})};D.POST=function(o){return F([],{...o,method:"POST"})};D.PUT=function(o){return F([],{...o,method:"PUT"})};D.SEARCH=function(o){return F([],{...o,method:"SEARCH"})};D.Entity={};function Q(o){if(typeof o=="string")return o;let e=Reflect.getMetadata(d,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(Q,"getDataTypeName");function Qe(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(Qe,"createKeyParamDecorator");function _p(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=Ct.exec(p),l=Ct.exec(r[p]);return c&&l&&(s[c[2]]=l[2]),s},{}),n=Object.keys(r).reduce((s,p)=>{let c=Ct.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:te(n),isArray:!0,arraySeparator:",",parser:a(s=>s.map(p=>{let c=Ct.exec(p);return c?(c[1]||"")+i[c[2]]:p}),"parser")}),o}}a(_p,"createSortFieldsDecorator");function Ge(o,e,t){let r=Reflect.getMetadata("FilterRules",o);r||(r=new Mt,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(Ge,"createFilterDecorator");D.Entity.Create=function(o,e){var n;let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"POST",...t,composition:"Entity.Create",requestBody:{immediateFetch:!0,...t.requestBody,required:!0}});return i.QueryParam("projection",{description:"Determines fields projection",type:new Y({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(b.CREATED,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the created resource.',contentType:N.opra_response_json,type:t.type,partial:"deep"}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=Q(t.type)}),i};D.Entity.Delete=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"DELETE",...t,composition:"Entity.Delete"});return i.Response(b.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:N.opra_response_json}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=Q(t.type)}),i.KeyParam=Qe(i,r),i};D.Entity.DeleteMany=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"DELETE",...t,composition:"Entity.DeleteMany"});return i.Response(b.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:N.opra_response_json}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=Q(t.type)}),i.Filter=Ge(i,r,t.type),i};var ks={};Rr(ks,{AnyType:()=>Ni,BigintType:()=>Mi,BooleanType:()=>Fi,IntegerType:()=>xt,NullType:()=>Li,NumberType:()=>ge,ObjectType:()=>ji,StringType:()=>He});var Si=require("tslib"),Is=require("valgen");var ar,Ni=(ar=class{constructor(e){e&&Object.assign(this,e)}[_](){return Is.isAny}[g](){return Is.isAny}},a(ar,"AnyType"),ar);Ni=(0,Si.__decorate)([u({name:"any",description:"Represents any value"}),(0,Si.__metadata)("design:paramtypes",[Object])],Ni);var vi=require("tslib"),Et=require("valgen");var Xe=require("tslib"),Tt=require("valgen");var pr,ge=(pr=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=[];return e.minValue!=null&&t.push(Tt.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(Tt.vg.isLte(e.maxValue)),t.length>0?Tt.vg.pipe([Tt.toNumber,...t],{returnIndex:0}):Tt.toNumber}[g](e){return this[_](e)}},a(pr,"NumberType"),pr);(0,Xe.__decorate)([u.Attribute({description:"Determines the minimum value"}),(0,Xe.__metadata)("design:type",Number)],ge.prototype,"minValue",void 0);(0,Xe.__decorate)([u.Attribute({description:"Determines the maximum value"}),(0,Xe.__metadata)("design:type",Number)],ge.prototype,"maxValue",void 0);ge=(0,Xe.__decorate)([u({name:"number",description:"Both Integer as well as Floating-Point numbers",nameMappings:{js:"number",json:"number"}}),(0,Xe.__metadata)("design:paramtypes",[Object])],ge);var cr,Mi=(cr=class extends ge{constructor(e){super(e)}[_](e){let t=[];return e.minValue!=null&&t.push(Et.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(Et.vg.isLte(e.maxValue)),t.length>0?Et.vg.pipe([Et.toBigint,...t],{returnIndex:0}):Et.toBigint}[g](e){return this[_](e)}},a(cr,"BigintType"),cr);Mi=(0,vi.__decorate)([u({name:"bigint",description:"BigInt number",nameMappings:{js:"bigint",json:"string"}}),(0,vi.__metadata)("design:paramtypes",[Object])],Mi);var Ii=require("tslib"),Ps=require("valgen");var lr,Fi=(lr=class{constructor(e){e&&Object.assign(this,e)}[_](){return Ps.toBoolean}[g](){return Ps.toBoolean}},a(lr,"BooleanType"),lr);Fi=(0,Ii.__decorate)([u({name:"boolean",description:"Simple true/false value",nameMappings:{js:"boolean",json:"boolean"}}),(0,Ii.__metadata)("design:paramtypes",[Object])],Fi);var Pi=require("tslib"),_t=require("valgen");var fr,xt=(fr=class extends ge{constructor(e){super(e)}[_](e){let t=[];return e.minValue!=null&&t.push(_t.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(_t.vg.isLte(e.maxValue)),t.length>0?_t.vg.pipe([_t.toInteger,...t],{returnIndex:0}):_t.toInteger}[g](e){return this[_](e)}},a(fr,"IntegerType"),fr);xt=(0,Pi.__decorate)([u({name:"integer",description:"An integer number",nameMappings:{js:"number",json:"number"}}),(0,Pi.__metadata)("design:paramtypes",[Object])],xt);var ki=require("tslib"),Ls=require("valgen");var mr,Li=(mr=class{constructor(e){e&&Object.assign(this,e)}[_](){return Ls.isNull}[g](){return Ls.isNull}},a(mr,"NullType"),mr);Li=(0,ki.__decorate)([u({name:"null",description:"A Null value",nameMappings:{js:"null",json:"null"}}),(0,ki.__metadata)("design:paramtypes",[Object])],Li);var Ci=require("tslib");var ur,ji=(ur=class{constructor(e){e&&Object.assign(this,e)}},a(ur,"ObjectType"),ur);ji=(0,Ci.__decorate)([ie({name:"object",description:"A non modelled object",additionalFields:!0}),(0,Ci.__metadata)("design:paramtypes",[Object])],ji);var ue=require("tslib"),Ze=require("valgen");var dr,He=(dr=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=[];if(e.pattern){let r=e.patternName;r||(r=Reflect.getMetadata(d,Object.getPrototypeOf(this).constructor).name),t.push(Ze.vg.matches(e.pattern,{formatName:r}))}return e.minLength&&t.push(Ze.vg.lengthMin(e.minLength)),e.maxLength&&t.push(Ze.vg.lengthMax(e.maxLength)),t.length>0?Ze.vg.pipe([Ze.toString,...t],{returnIndex:0}):Ze.toString}[g](e){return this[_](e)}},a(dr,"StringType"),dr);(0,ue.__decorate)([u.Attribute({description:"Regex pattern to be used for validation"}),(0,ue.__metadata)("design:type",Object)],He.prototype,"pattern",void 0);(0,ue.__decorate)([u.Attribute({description:"Name of the pattern"}),(0,ue.__metadata)("design:type",String)],He.prototype,"patternName",void 0);(0,ue.__decorate)([u.Attribute({description:"Minimum number of characters"}),(0,ue.__metadata)("design:type",Number)],He.prototype,"minLength",void 0);(0,ue.__decorate)([u.Attribute({description:"Minimum number of characters"}),(0,ue.__metadata)("design:type",Number)],He.prototype,"maxLength",void 0);He=(0,ue.__decorate)([u({name:"string",description:"A sequence of characters",nameMappings:{js:"string",json:"string"}}),(0,ue.__metadata)("design:paramtypes",[Object])],He);D.Entity.FindMany=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"GET",...t,composition:"Entity.FindMany"});return i.Response(b.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains list of resources.',contentType:N.opra_response_json,type:t.type,partial:"deep",isArray:!0}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}).QueryParam("limit",{description:"Determines number of returning instances",type:new xt({minValue:1,maxValue:t.maxLimit})}).QueryParam("skip",{description:"Determines number of returning instances",type:new xt({minValue:1})}).QueryParam("count",{description:"Counts all matching instances if enabled",type:Boolean}).QueryParam("projection",{description:"Determines fields projection",type:new Y({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=Q(t.type),t.defaultLimit&&(s.defaultLimit=t.defaultLimit),t.defaultProjection&&(s.defaultProjection=t.defaultProjection),t.maxLimit&&(s.maxLimit=t.maxLimit)}),i.Filter=Ge(i,r,t.type),i.DefaultSort=(...n)=>(r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.defaultSort=n}),i),i.SortFields=_p(i,r),i};D.Entity.Get=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"GET",...t,composition:"Entity.Get"});return i.QueryParam("projection",{description:"Determines fields projection",type:new Y({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).Response(b.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the resource asked for.',contentType:N.opra_response_json,type:t.type,partial:"deep"}).Response(b.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=Q(t.type)}),i.KeyParam=Qe(i,r),i};D.Entity.Replace=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"POST",...t,composition:"Entity.Replace"});return i.QueryParam("projection",{description:"Determines fields projection",type:new Y({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).Response(b.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the resource asked for.',contentType:N.opra_response_json,type:t.type,partial:"deep"}).Response(b.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=Q(t.type)}),i.KeyParam=Qe(i,r),i};D.Entity.Update=function(o,e){var n;let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(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 Y({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(b.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains updated resource.',contentType:N.opra_response_json,type:t.type,partial:"deep"}).Response(b.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=Q(t.type)}),i.KeyParam=Qe(i,r),i.Filter=Ge(i,r,t.type),i};D.Entity.UpdateMany=function(o,e){var n;let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(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(b.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:N.opra_response_json}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=Q(t.type)}),i.Filter=Ge(i,r,t.type),i};var Ui=require("@jsopen/objects");var Nl=/^(.*)(Controller)$/,xp=[];function hr(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=Nl.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(ae,Object.getPrototypeOf(r));s&&(0,Ui.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(ae,r);p&&(0,Ui.merge)(n,p,{deep:!0}),(0,Ui.merge)(n,{...o,kind:f.MQController.Kind,name:i,path:i},{deep:!0}),Reflect.defineMetadata(ae,n,r);for(let l of e)l(n,r);Reflect.defineMetadata(ae,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),xp.forEach(r=>r(t,e,o)),t}a(hr,"MQControllerDecoratorFactory");hr.augment=function(o){xp.push(o)};var Qr=require("@jsopen/objects");var Op=[];function Gr(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:f.MQOperation.Kind,channel:s,type:e,...(0,Qr.omit)(t,["kind","type"])},c=Reflect.getOwnMetadata(ae,n.constructor)||{};c.operations=c.operations||{},c.operations[s]=p;for(let l of o)l(p,n,s);Reflect.defineMetadata(ae,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};(0,Qr.isConstructor)(c.type)&&(c.designType=c.type);let l=r?p.response:p;l.headers?l.headers=l.headers.filter(O=>String(O.name)!==String(n)):l.headers=[],l.headers.push(c)}),i),i.Response=(n,s)=>(o.push(p=>{r=!0,p.response={...s,type:n},(0,Qr.isConstructor)(n)&&(p.response.designType=n)}),i),Op.forEach(n=>n(i,o,e,t)),i}a(Gr,"MQOperationDecoratorFactory");Gr.augment=function(o){Op.push(o)};var $i=require("@jsopen/objects");var vl=/^(.*)(Controller)$/,gp=[];function yr(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=vl.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(pe,Object.getPrototypeOf(r));s&&(0,$i.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(pe,r);p&&(0,$i.merge)(n,p,{deep:!0}),(0,$i.merge)(n,{...o,kind:f.WSController.Kind,name:i,path:i},{deep:!0}),Reflect.defineMetadata(pe,n,r);for(let l of e)l(n,r);Reflect.defineMetadata(pe,n,r)},"decorator");return t.UseType=(...r)=>(e.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),gp.forEach(r=>r(t,e,o)),t}a(yr,"WSControllerDecoratorFactory");yr.augment=function(o){gp.push(o)};var wp=require("@jsopen/objects");var Ap=[];function Xr(o,e){let t=a(((r,i)=>{if(typeof i!="string")throw new TypeError("Symbol properties can not be decorated");let n={kind:f.WSOperation.Kind,event:i,...(0,wp.omit)(e,["kind"])},s=Reflect.getOwnMetadata(pe,r.constructor)||{};s.operations=s.operations||{},s.operations[i]=n;for(let p of o)p(n,r,i);Reflect.defineMetadata(pe,s,r.constructor)}),"decorator");return t.UseType=(...r)=>(o.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),Ap.forEach(r=>r(t,o,e)),t}a(Xr,"WSOperationDecoratorFactory");Xr.augment=function(o){Ap.push(o)};var AE=require("reflect-metadata"),Rp=require("@jsopen/objects"),bp=require("ts-gems");function qi(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(qi,"getIsInheritedPredicateFn");var et=a(function(...o){var n;if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;q.call(this,e,t,r);let i=(0,bp.asMutable)(this);if(i.kind=f.MappedType.Kind,t.base){if(!(t.base instanceof q))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(l=>i.base.normalizeFieldPath(l)):t.omit?i.omit=t.omit.map(l=>i.base.normalizeFieldPath(l)):t.partial?i.partial=Array.isArray(t.partial)?t.partial.map(l=>i.base.normalizeFieldPath(l)):t.partial:t.required&&(i.required=Array.isArray(t.required)?t.required.map(l=>i.base.normalizeFieldPath(l)):t.required);let s=qi(i.pick,i.omit),p=Array.isArray(i.partial)?i.partial.map(l=>l.toLowerCase()):i.partial,c=Array.isArray(i.required)?i.required.map(l=>l.toLowerCase()):i.required;for(let[l,O]of i.base.fieldEntries("*")){if(!s(l))continue;let R={...O};p===!0||Array.isArray(p)&&p.includes(O.name.toLowerCase())?R.required=!1:(c===!0||Array.isArray(c)&&c.includes(O.name.toLowerCase()))&&(R.required=!0);let y=new $(this,R);i._fields.set(y.name,y)}(!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"),Cs=class Cs extends q{extendsFrom(e){var t;return e instanceof E||(e=this.node.getDataType(e)),e instanceof q?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,Rp.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(Cs,"MappedTypeClass");var js=Cs;et.prototype=js.prototype;et._applyMixin=()=>{};var FE=require("reflect-metadata"),Dp=require("@jsopen/objects"),Np=require("ts-gems");var Ot=a(function(...o){if(!this)return Ot[w].apply(void 0,o);let[e,t,r]=o;q.call(this,e,t,r);let i=(0,Np.asMutable)(this);i.kind=f.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 $(this,s);i._fields.set(p.name,p)}i.types.push(n),n.keyField&&(i.keyField=n.keyField)}},"MixinType"),$s=class $s extends q{extendsFrom(e){if(e instanceof E||(e=this.node.getDataType(e)),!(e instanceof q))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,Dp.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 Us=$s;Ot.prototype=Us.prototype;Ot[w]=Pl;function Pl(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)Mr(this,n)}}}[t],i={...e,kind:f.MixinType.Kind,types:[]};Reflect.defineMetadata(d,i,r);for(let n of o){let s=Reflect.getMetadata(d,n);if(!(s&&(s.kind===f.ComplexType.Kind||s.kind===f.MixinType.Kind||s.kind===f.MappedType.Kind)))throw new TypeError(`Class "${n.name}" is not a ${f.ComplexType.Kind}, ${f.MixinType.Kind} or ${f.MappedType.Kind}`);i.types.push(n),Sr(r.prototype,n.prototype)}return r}a(Pl,"MixinTypeFactory");var BE=require("reflect-metadata"),Sp=require("@jsopen/objects"),Mp=require("ts-gems"),qs=require("valgen");var gt=a(function(...o){if(!this)return gt[w].apply(void 0,o);let[e,t,r]=o;E.call(this,e,t,r);let i=(0,Mp.asMutable)(this);i.kind=f.UnionType.Kind,i.discriminator=t.discriminator,i.types=[];for(let n of t.types)i.types.push(n)},"UnionType"),Ks=class Ks extends E{toJSON(e){let t=super.toJSON(e);return(0,Sp.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===f.ComplexType.Kind||i.kind===f.MappedType.Kind)&&i.discriminatorField?[n,{[i.discriminatorField]:qs.vg.isEqual(i.discriminatorValue)}]:n});return qs.vg.oneOf(r)}extendsFrom(){return!1}_locateBase(){}};a(Ks,"UnionTypeClass");var Bs=Ks;gt.prototype=Bs.prototype;gt[w]=Ll;function Ll(o,e){let i=class i{};a(i,"UnionClass");let t=i,r={...e,kind:f.UnionType.Kind,types:o};return Reflect.defineMetadata(d,r,t),t}a(Ll,"UnionTypeFactory");var Vs=Symbol("initializing"),Bi=class Bi{static async createDataType(e,t,r){e=e||new he({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[L];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 he({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,l]of n.entries())e.enter(`[${c}]`,()=>{if(!n.has(c))return;let O=this._createDataType(s,t,l);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[L])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 H(c);let l=Reflect.getMetadata(d,c)||c[d];if(!(l&&l.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(l.name,c)})}else{let p,c;for([c,p]of Object.entries(r))p=await H(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,i){var R;r=await H(r);let{importQueue:n,initArgsMap:s}=e,p=t.node.findDataType(r);if(p instanceof E)return p.name;let c,l,O;if(typeof r!="string"){let z=t.node.getDocument().types[vr].get(r);z&&(r=z)}if(typeof r=="string"){let y=r;if(r=(n==null?void 0:n.get(y))||((R=e.initArgsMap)==null?void 0:R.get(y)),!r)return e.addError(`Unknown data type (${y})`)}if(typeof r=="function"){if(c=Reflect.getMetadata(d,r),!c)return e.addError(`Class "${r.name}" doesn't have a valid DataType metadata`);l=r}else if(typeof r=="object"){if(c=r[d],c)O=r,c.kind!==f.EnumType.Kind&&(c=void 0);else if(f.isDataType(r))c=r,l=c.ctor;else if(l=Object.getPrototypeOf(r).constructor,c=l&&Reflect.getMetadata(d,l),c&&c.kind===f.SimpleType.Kind){let y=await this._importDataTypeArgs(e,t,c.name);return y?typeof y=="object"&&y.kind!==f.SimpleType.Kind?e.addError("Kind of base data type is not same"):{kind:f.SimpleType.Kind,name:void 0,base:y,properties:r}:void 0}}return c?e.enterAsync(c.name?`[${c.name}]`:"",async()=>{if(c.name){let z=s==null?void 0:s.get(c.name);if(z)return i&&z[Vs]?e.addError("Circular reference detected"):c.name}let y={kind:c.kind,name:c.name};y[Vs]=!0;try{if(y.name)if(n!=null&&n.has(y.name))s==null||s.set(c.name,y),y._instance={name:c.name},y[L]=t.node[L];else return e.addError(`Data Type (${y.name}) must be explicitly added to type list in the document scope`);switch(y.kind){case f.ArrayType.Kind:await this._prepareArrayTypeArgs(e,t,y,c);break;case f.ComplexType.Kind:y.ctor=l,await this._prepareComplexTypeArgs(e,t,y,c);break;case f.EnumType.Kind:y.instance=O,await this._prepareEnumTypeArgs(e,t,y,c);break;case f.MappedType.Kind:await this._prepareMappedTypeArgs(e,t,y,c);break;case f.MixinType.Kind:await this._prepareMixinTypeArgs(e,t,y,c);break;case f.SimpleType.Kind:y.ctor=l,await this._prepareSimpleTypeArgs(e,t,y,c);break;case f.UnionType.Kind:await this._prepareUnionTypeArgs(e,t,y,c);break;default:return e.addError(`Invalid data type kind ${c.kind}`)}}finally{y.name&&(n==null||n.delete(y.name)),delete y[Vs]}return n&&y.name?y.name:y}):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 _prepareArrayTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),await e.enterAsync(".type",async()=>{let n=await this._importDataTypeArgs(e,t,i.type);n&&(r.type=Me(n))})}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,!0);else if(r.ctor){let s=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(d,s)&&(n=await this._importDataTypeArgs(e,t,s))}n&&(r.base=Me(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=Me(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:Me(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=Me(n))}),r.attributes=I(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 l;if(i.base)l=await this._importDataTypeArgs(e,t,i.base,!0);else if(r.ctor){let O=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(d,O)&&(l=await this._importDataTypeArgs(e,t,O))}l&&(r.base=Me(l),r.ctor=r.ctor||l.ctor)}),r.properties=i.properties,r.nameMappings=i.nameMappings,!r.properties&&r.ctor&&(r.properties=new r.ctor),i.attributes&&(r.attributes=I(i.attributes)),typeof((n=r.properties)==null?void 0:n[_])=="function"&&(r.generateDecoder=(s=r.properties)==null?void 0:s[_].bind(r.properties)),typeof((p=r.properties)==null?void 0:p[g])=="function"&&(r.generateEncoder=(c=r.properties)==null?void 0:c[g].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,!0);else if(r.ctor){let s=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(d,s)&&(n=await this._importDataTypeArgs(e,t,s))}n&&(r.base=Me(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(Me(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(Me(c))})})}static _createDataType(e,t,r){var s;let i=t.node.findDataType(typeof r=="string"?r:r.name||"");if(i instanceof E)return i;let n=typeof r=="string"?(s=e.initArgsMap)==null?void 0:s.get(r):r;if(n){let p=n[L];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 f.ArrayType.Kind:return this._createArrayType(e,t,n);case f.ComplexType.Kind:return this._createComplexType(e,t,n);case f.EnumType.Kind:return this._createEnumType(e,t,n);case f.MappedType.Kind:return this._createMappedType(e,t,n);case f.MixinType.Kind:return this._createMixinType(e,t,n);case f.SimpleType.Kind:return this._createSimpleType(e,t,n);case f.UnionType.Kind:return this._createUnionType(e,t,n);default:break}}e.addError(`Unknown data type (${String(r)})`)}static _createArrayType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,de.prototype);let n=I(r);return r.type&&e.enter(".type",()=>{n.type=this._createDataType(e,t,r.type)}),de.apply(i,[t,n]),i}static _createComplexType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,ie.prototype);let n=I(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})})}),ie.apply(i,[t,n]),i}static _createEnumType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,te.prototype);let n=I(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),n.attributes=r.attributes,te.apply(i,[t,n]),i}static _createMappedType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,et.prototype);let n=I(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),et.apply(i,[t,n]),i}static _createMixinType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,Ot.prototype);let n=I(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 q))throw new TypeError(`"${c==null?void 0:c.kind}" can't be set as base for a "${n.kind}"`);n.types.push(c)})}),Ot.apply(i,[t,n]),i}static _createSimpleType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,u.prototype);let n=I(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,gt.prototype);let n=I(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)})}),gt.apply(i,[t,n]),i}};a(Bi,"DataTypeFactory");var M=Bi;function Me(o){return typeof o=="object"&&o.name?o.name:o}a(Me,"preferName");var zp=require("@jsopen/objects");var vp=require("@jsopen/objects");var Ws=class Ws extends A{constructor(e){super(e.owner),this.name="OpraApi",this.name=e.name,this.description=e.description}toJSON(e){return(0,vp.omitUndefined)({transport:this.transport,name:this.name,description:this.description})}async _initialize(e,t){if(!P.test(e.name))throw new TypeError(`Invalid api name (${e.name})`);this.name=e.name,this.description=e==null?void 0:e.description}};a(Ws,"ApiBase");var ve=Ws;var Fp=Rt(require("path-browserify"),1),Ip=require("@jsopen/objects"),Pp=require("ts-gems");var Tr=require("@jsopen/objects");var jl=/^(.*)(Controller)$/;function zs(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=jl.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(se,Object.getPrototypeOf(r));s&&(0,Tr.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(se,r);p&&(0,Tr.merge)(n,p,{deep:!0}),(0,Tr.merge)(n,{kind:f.HttpController.Kind,name:i,path:i,...(0,Tr.omit)(o,["kind","name","instance","endpoints","key"])},{deep:!0}),Reflect.defineMetadata(se,n,r);for(let l of e)l(n,r);Reflect.defineMetadata(se,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(zs,"HttpControllerDecoratorFactory");var ne=a(function(...o){var i;if(!this)return ne[w].apply(void 0,o);let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,Pp.asMutable)(this);r.kind=f.HttpController.Kind,r.types=r.node[L]=new W,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"),Ys=class Ys extends A{get isRoot(){return!(this.owner instanceof ne)}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 ne)return this.node.parent.element.findParameter(e,t)}getFullUrl(){return Fp.default.posix.join(this.owner instanceof ne?this.owner.getFullUrl():"/",this.path)}toString(){return`[HttpController ${this.name}]`}toJSON(e){let t=(0,Ip.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}[je](){return`[${Ce}HttpController${Ue+this.name+De}]`}};a(Ys,"HttpControllerClass");var Js=Ys;ne.prototype=Js.prototype;Object.assign(ne,zs);ne[w]=zs;var Qs=class Qs extends ve{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="http",this.controllers=new S,this.url=e.url}findController(e){return ne.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(Qs,"HttpApi");var tt=Qs;var Lp=Rt(require("@browsery/type-is"),1),kp=require("@jsopen/objects"),jp=require("ts-gems"),Ki=require("valgen");var Fe=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');A.call(this,o);let t=(0,jp.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 E?e.type:t.owner.node.getDataType(e.type)),t.isArray=e.isArray,t.designType=e.designType},"HttpMediaType"),Xs=class Xs extends A{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,kp.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,r){let i;return this.type?i=this.type.generateCodec(e,t,{designType:this.designType}):this.contentType&&(Array.isArray(this.contentType)?this.contentType:[this.contentType]).find(s=>Lp.default.is(s,["json"]))&&(i=this.node.findDataType("object").generateCodec(e,t,{...r,designType:this.designType})),i=i||Ki.isAny,this.isArray&&!(this.type instanceof de)?Ki.vg.isArray(i):i}};a(Xs,"HttpMediaTypeClass");var Gs=Xs;Fe.prototype=Gs.prototype;var Cp=require("@jsopen/objects");function rt(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(rt,"parseRegExp");var Zs=class Zs extends Fe{constructor(e,t){super(e,t),this.fieldName=t.fieldName instanceof RegExp?t.fieldName:t.fieldName.startsWith("/")?rt(t.fieldName):t.fieldName,this.fieldType=t.fieldType,this.required=t.required}toJSON(e){return(0,Cp.omitUndefined)({fieldName:this.fieldName,fieldType:this.fieldType,required:this.required,...super.toJSON(e)})}};a(Zs,"HttpMultipartField");var Zr=Zs;var Up=require("@jsopen/objects");var Cl=/^([1-6]\d{2})(?:-([1-6]\d{2}))?$/,Hs=class Hs{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=Cl.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(Hs,"HttpStatusRange");var Er=Hs;var ea=class ea extends Fe{constructor(e,t){super(e,t),this.parameters=[],this.statusCode=(Array.isArray(t.statusCode)?t.statusCode:[t.statusCode]).map(r=>typeof r=="object"?new Er(r.start,r.end):new Er(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,Up.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(ea,"HttpOperationResponse");var Hr=ea;var Bp=require("@jsopen/objects"),Kp=require("ts-gems"),Vp=require("valgen");var $p=require("@jsopen/objects"),qp=require("ts-gems");var wt=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');A.call(this,o);let t=(0,qp.asMutable)(this);t.description=e.description,t.type=e.type,t.examples=e.examples,t.isArray=e.isArray},"Value"),ra=class ra extends A{toJSON(e){let t=this.type?this.node.getDataTypeNameWithNs(this.type):void 0;return(0,$p.omitUndefined)({type:this.type?t||this.type.toJSON(e):"any",description:this.description,isArray:this.isArray,examples:this.examples})}};a(ra,"ValueClass");var ta=ra;wt.prototype=ta.prototype;var _r=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');wt.call(this,o,e);let t=(0,Kp.asMutable)(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?rt(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,t.designType=e.designType},"HttpParameter"),oa=class oa extends wt{toJSON(e){return(0,Bp.omitUndefined)({...super.toJSON(e),name:this.name,location:this.location,arraySeparator:this.arraySeparator,keyParam:this.keyParam,required:this.required,deprecated:this.deprecated})}generateCodec(e,t,r){var i;return((i=this.type)==null?void 0:i.generateCodec(e,t,{...r,designType:this.designType}))||Vp.vg.isAny()}};a(oa,"HttpParameterClass");var ia=oa;_r.prototype=ia.prototype;var Wp=require("@jsopen/objects");var na=class na extends A{constructor(e){super(e),this.content=[]}toJSON(e){return(0,Wp.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(na,"HttpRequestBody");var ei=na;var sa=class sa{static async createApi(e,t){let r=new tt(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,zp.isConstructor)(r)&&(r=t instanceof ne?r(t.instance):r()),r=await H(r);let i,n,s;if(typeof r=="function"){if(n=Reflect.getMetadata(se,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(se,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 ne(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 l={...c};await e.enterAsync(".type",async()=>{l.type=await M.resolveDataType(e,s,c.type)});let O=new _r(s,l);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 l=new D(s,{name:p,method:"GET"});await this._initHttpOperation(e,l,c),s.operations.set(p,l)})}),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 D.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 _r(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 Hr(t,{statusCode:s.statusCode});await this._initHttpOperationResponse(e,p,s),t.responses.push(p)})}),r.requestBody&&await e.enterAsync(".requestBody",async()=>{let n=new ei(t);await this._initHttpRequestBody(e,n,r.requestBody),t.requestBody=n}),t}static async _initHttpMediaType(e,t,r){Fe.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 Zr(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 _r(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 Fe(t,String(i));await this._initHttpMediaType(e,s,n),t.content.push(s)})})}};a(sa,"HttpApiFactory");var xr=sa;var Yp=require("@jsopen/objects"),Qp=require("super-fast-md5");var aa=class aa extends ve{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="mq",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(aa,"MQApi");var it=aa;var pa=class pa extends ve{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="ws",this.controllers=new S}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,controllers:{}};for(let r of this.controllers.values())t.controllers[r.name]=r.toJSON();return t}};a(pa,"WSApi");var ot=pa;var Jp,ca=class ca extends A{constructor(){super(null),this[Jp]=new WeakMap,this.id="",this.info={},this.references=new S,this.types=new W,this.node[L]=this.types,this.node.findDataType=this._findDataType.bind(this)}getDataTypeNs(e){let t=e instanceof E?this._findDataType(e.name||""):this._findDataType(e);if(t)return this[we].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 tt)return this.api}get mqApi(){if(this.api&&this.api instanceof it)return this.api}get wsApi(){if(this.api&&this.api instanceof ot)return this.api}getHttpApi(){if(!(this.api&&this.api instanceof tt))throw new TypeError("The document do not contains HttpApi instance");return this.api}getMqApi(){if(!(this.api&&this.api instanceof it))throw new TypeError("The document do not contains MQApi instance");return this.api}getWsApi(){if(!(this.api&&this.api instanceof ot))throw new TypeError("The document do not contains WSApi instance");return this.api}toJSON(){return this.export()}export(e){let t=(0,Yp.omitUndefined)({spec:f.SpecVersion,id:this.id,url:this.url,info:I(this.info,!0)});if(this.references.size){let r=0,i={};for(let[n,s]of this.references.entries())s[Ie]||(i[n]={id:s.id,url:s.url,info:I(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,Qp.md5)(JSON.stringify(e)),this[we]=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=Ro.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[we].set(i,p!=null&&p[Ie]?"":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[we].set(i,p!=null&&p[Ie]?"":s),i}}};a(ca,"ApiDocument");var nt=ca;Jp=we;function st(o,e,t){let r=qi(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"&&Mr(this,o,r)}}}[n];if(typeof o=="function"&&Sr(s.prototype,o.prototype),typeof o=="function"){let c=Reflect.getOwnMetadata(d,o);if(!c)throw new TypeError(`Class "${o}" doesn't have datatype metadata information`);if(!(c.kind===f.ComplexType.Kind||c.kind===f.MappedType.Kind||c.kind===f.MixinType.Kind))throw new TypeError(`Class "${o}" is not a ${f.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(d,p,s),typeof o=="function"&&et._applyMixin(s,o,{...e,isInheritedPredicate:r}),s}a(st,"createMappedClass");function $l(o,e,t){return st(o,{omit:e},t)}a($l,"OmitType");function ql(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return st(o,{partial:t},r)}a(ql,"PartialType");function Bl(o,e,t){return st(o,{pick:e},t)}a(Bl,"PickType");function Kl(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return st(o,{required:t},r)}a(Kl,"RequiredType");function Vl(o){return(e,t,r)=>{if(typeof t!="string")throw new TypeError("Un-named properties can not be decorated");if(!o&&(o=Reflect.getMetadata("design:paramtypes",e,t)[r],!o))throw new TypeError("Missing parameter type");let i=Reflect.getOwnMetadata(Dt,e,t);i||(i=[],Reflect.defineMetadata(Dt,i,e,t)),i[r]=o}}a(Vl,"WsParam");var oc=require("@jsopen/objects");var Gp=require("@jsopen/objects"),Xp=require("ts-gems");var at=a(function(...o){var i;if(!this)return at[w].apply(void 0,o);let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,Xp.asMutable)(this);r.kind=f.MQController.Kind,r.types=r.node[L]=new W,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)},"MQController"),fa=class fa extends A{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 at)return this.node.parent.element.findHeader(e,t)}toString(){return`[MQController ${this.name}]`}toJSON(){let e=(0,Gp.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}[je](){return`[${Ce}MQController${Ue+this.name+De}]`}};a(fa,"MQControllerClass");var la=fa;at.prototype=la.prototype;Object.assign(at,hr);at[w]=hr;var Zp=require("@jsopen/objects"),Hp=require("ts-gems"),ec=require("valgen");var Or=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');wt.call(this,o,e);let t=(0,Hp.asMutable)(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?rt(e.name,{includeFlags:"i",excludeFlags:"m"}):e.name),t.deprecated=e.deprecated,t.required=e.required,t.designType=e.designType},"MQHeader"),ua=class ua extends wt{toJSON(){return(0,Zp.omitUndefined)({...super.toJSON(),name:this.name,required:this.required,deprecated:this.deprecated})}generateCodec(e,t,r){var i;return((i=this.type)==null?void 0:i.generateCodec(e,t,{...r,designType:this.designType}))||ec.vg.isAny()}};a(ua,"MQHeaderClass");var ma=ua;Or.prototype=ma.prototype;var tc=require("@jsopen/objects"),rc=require("ts-gems"),da=require("valgen");var gr=a(function(...o){if(!this){let[i,n]=o,s=[];return gr[w].call(void 0,s,i,n)}let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,rc.asMutable)(this);r.headers=[],r.types=r.node[L]=new W,r.name=t.name,r.description=t.description,r.channel=t.channel,t!=null&&t.type&&(r.type=(t==null?void 0:t.type)instanceof E?t.type:r.owner.node.getDataType(t.type)),t!=null&&t.keyType&&(r.keyType=(t==null?void 0:t.keyType)instanceof E?t.keyType:r.owner.node.getDataType(t.keyType)),r.designType=t.designType,r.keyDesignType=t.keyDesignType},"MQOperation"),ya=class ya extends A{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,tc.omitUndefined)({kind:f.MQOperation.Kind,description:this.description,channel:this.channel,type:this.type.name?this.type.name:this.type.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}generateCodec(e,t,r){var i;return((i=this.type)==null?void 0:i.generateCodec(e,t,{...r,designType:this.designType}))||da.vg.isAny()}generateKeyCodec(e,t,r){var i;return((i=this.keyType)==null?void 0:i.generateCodec(e,t,{...r,designType:this.keyDesignType}))||da.vg.isAny()}};a(ya,"MQOperationClass");var ha=ya;gr.prototype=ha.prototype;gr[w]=Gr;var ic=require("@jsopen/objects");var Ta=class Ta extends A{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.type?this.type=(t==null?void 0:t.type)instanceof E?t.type:this.owner.node.getDataType(t.type):this.type=this.owner.node.getDataType("any"),t!=null&&t.keyType&&(this.keyType=(t==null?void 0:t.keyType)instanceof E?t.keyType:this.owner.node.getDataType(t.keyType)),this.designType=t==null?void 0:t.designType,this.keyDesignType=t==null?void 0:t.keyDesignType}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,ic.omitUndefined)({description:this.description,channel:this.channel,type:this.type.name?this.type.name:this.type.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(Ta,"MQOperationResponse");var Vi=Ta;var Ea=class Ea{static async createApi(e,t){let r=new it(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,oc.isConstructor)(r)&&(r=r()),r=await H(r);let n,s,p;if(typeof r=="function"){if(s=Reflect.getMetadata(ae,r),!s)return e.addError(`Class "${r.name}" doesn't have a valid MQController metadata`);n=r}else n=Object.getPrototypeOf(r).constructor,s=Reflect.getMetadata(ae,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 MQController()`);if(i=i||s.name,!i)throw new TypeError("Controller name required");let c=new at(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 l=0;for(let O of s.headers)await e.enterAsync(`[${l++}]`,async()=>{let R={...O};await e.enterAsync(".type",async()=>{O.type&&(R.type=c.node.findDataType(O.type)),!R.type&&typeof O.type=="object"&&(R.type=await M.createDataType(e,c,O.type)),R.type||(R.type=c.node.getDataType("any"))});let y=new Or(c,R);c.headers.push(y)})}),s.operations&&await e.enterAsync(".operations",async()=>{for(let[l,O]of Object.entries(s.operations))await e.enterAsync(`[${l}]`,async()=>{let R=new gr(c,{...O,name:l,types:void 0,type:void 0,keyType:void 0});await this._initMQOperation(e,R,O),c.operations.set(R.name,R)})}),c}static async _initMQOperation(e,t,r){r.types&&await e.enterAsync(".types",async()=>{await M.addDataTypes(e,t,r.types)}),t.type=await M.resolveDataType(e,t,r.type),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 Or(t,s);t.headers.push(p)})}),r.response&&await e.enterAsync(".response",async()=>{let i=new Vi(t,{...r.response,type:void 0,keyType:void 0});await this._initMQOperationResponse(e,i,r.response),t.response=i})}static async _initMQOperationResponse(e,t,r){t.type=await M.resolveDataType(e,t,r.type),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 Or(t,s);t.headers.push(p)})})}};a(Ea,"MQApiFactory");var Wi=Ea;var cc=require("@jsopen/objects");var nc=require("@jsopen/objects"),sc=require("ts-gems");var At=a(function(...o){var i;if(!this)return At[w].apply(void 0,o);let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,sc.asMutable)(this);r.kind=f.WSController.Kind,r.types=r.node[L]=new W,r.operations=new S,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)},"WSController"),xa=class xa extends A{toString(){return`[WSController ${this.name}]`}toJSON(){let e=(0,nc.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()}return e}[je](){return`[${Ce}WSController${Ue+this.name+De}]`}};a(xa,"WSControllerClass");var _a=xa;At.prototype=_a.prototype;Object.assign(At,yr);At[w]=yr;var ac=require("@jsopen/objects"),pc=require("ts-gems");var wr=a(function(...o){if(!this){let[i,n]=o,s=[];return wr[w].call(void 0,s,i,n)}let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,pc.asMutable)(this);r.types=r.node[L]=new W,r.name=t.name,r.description=t.description,t.event?this.event=t.event instanceof RegExp?t.event:t.event.startsWith("/")?rt(t.event):t.event:r.event=this.name,t!=null&&t.arguments&&(r.arguments=t.arguments.map(i=>i instanceof E?i:r.owner.node.getDataType(i))),t!=null&&t.response&&(r.response=t.response instanceof E?t.response:r.owner.node.getDataType(t.response))},"WSOperation"),ga=class ga extends A{toJSON(){var e;return(0,ac.omitUndefined)({kind:f.WSOperation.Kind,description:this.description,event:this.event,arguments:(e=this.arguments)==null?void 0:e.map(t=>t.name?t.name:t.toJSON())})}};a(ga,"WSOperationClass");var Oa=ga;wr.prototype=Oa.prototype;wr[w]=Xr;var wa=class wa{static async createApi(e,t){let r=new ot(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,cc.isConstructor)(r)&&(r=r()),r=await H(r);let n,s,p;if(typeof r=="function"){if(s=Reflect.getMetadata(pe,r),!s)return e.addError(`Class "${r.name}" doesn't have a valid WSController metadata`);n=r}else n=Object.getPrototypeOf(r).constructor,s=Reflect.getMetadata(pe,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 WSController()`);if(i=i||s.name,!i)throw new TypeError("Controller name required");let c=new At(t,{...s,name:i,instance:p,ctor:n});return s.types&&await e.enterAsync(".types",async()=>{await M.addDataTypes(e,c,s.types)}),s.operations&&await e.enterAsync(".operations",async()=>{for(let[l,O]of Object.entries(s.operations))await e.enterAsync(`[${l}]`,async()=>{let R=Reflect.getMetadata(Dt,n.prototype,l),y=O;R&&(y={...y,arguments:R});let z=new wr(c,{...y,name:l,types:void 0,type:void 0,keyType:void 0,arguments:void 0});await this._initWSOperation(e,z,y),c.operations.set(l,z)})}),c}static async _initWSOperation(e,t,r){var i;r.types&&await e.enterAsync(".types",async()=>{await M.addDataTypes(e,t,r.types)}),(i=r.arguments)!=null&&i.length&&await e.enterAsync(".arguments",async()=>{var n;t.arguments=[];for(let s of r.arguments){let p=await M.resolveDataType(e,t,s);(n=t.arguments)==null||n.push(p)}}),r.response&&await e.enterAsync(".response",async()=>{t.response=await M.resolveDataType(e,t,r.response)})}};a(wa,"WSApiFactory");var zi=wa;var Wl="https://oprajs.com/spec/v"+f.SpecVersion,Ji=class Ji{constructor(){this._allDocuments={}}static async createDocument(e,t){let r=new Ji,i=t instanceof he?t:new he(t);try{let n=new nt;if(await r.initDocument(n,i,e),i.error.details.length)throw i.error;return n}catch(n){try{n instanceof ht||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=>`
|
|
9
|
+
`));throw O.errors=s,O}return e=e||new Ur,e.visit(c)}a(Jn,"parse");var Yn=class Yn{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,(0,Ka.omitUndefined)({...t,operators:r}))}normalizeFilter(e,t,r){let i=typeof e=="string"?Jn(e):e;return this.normalizeFilterAst(i,[],t,r)}normalizeFilterAst(e,t,r,i){if(e instanceof Ee){if(t.push(e),this.normalizeFilterAst(e.left,t,r),!(e.left instanceof ce&&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 ye({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 ye({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 _e)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof lt)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n.expression,t,r)),t.pop(),e;if(e instanceof Ae)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof Re)return t.push(e),this.normalizeFilterAst(e.expression,t,r),t.pop(),e;if(e instanceof ce&&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 k){let n=t.findLastIndex(s=>s instanceof Ee);if(n>=0){let s=t[n];if((e===s.right||t[n+1]===s.right)&&s&&s.left instanceof ce&&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=Va.isString:p=this._decoderCache.get(s.left.field),p||(p=s.left.field.generateCodec("decode",{scope:i,projection:"*",ignoreReadonlyFields:!0,coerce:!0}),this._decoderCache.set(s.left.field,p)),e.value=p(e.value,{coerce:!0})}}}return e}toJSON(){return this._rules.toObject()}[Symbol.iterator](){return this._rules.entries()}};a(Yn,"FilterRules");var Mt=Yn;var Xa=Rt(require("object-hash"),1),Za=require("ts-gems"),V=require("valgen");var N0=require("reflect-metadata"),Qa=require("@jsopen/objects"),Ga=require("ts-gems"),Vr=require("valgen");var f={};Rr(f,{ArrayType:()=>vt,ComplexType:()=>Ft,EnumType:()=>It,HttpController:()=>qr,HttpOperation:()=>Qn,MQController:()=>Gn,MQOperation:()=>Xn,MappedType:()=>Pt,MixinType:()=>Lt,SimpleType:()=>kt,SpecVersion:()=>ph,UnionType:()=>jt,WSController:()=>Zn,WSOperation:()=>Hn,isArrayType:()=>Gc,isComplexType:()=>Vc,isDataType:()=>Kc,isEnumType:()=>Yc,isHttpController:()=>Xc,isMappedType:()=>Jc,isMixinType:()=>zc,isSimpleType:()=>Wc,isUnionType:()=>Qc});var ph="1.0";var vt;(function(o){o.Kind="ArrayType"})(vt||(vt={}));var Ft;(function(o){o.Kind="ComplexType"})(Ft||(Ft={}));var It;(function(o){o.Kind="EnumType"})(It||(It={}));var Pt;(function(o){o.Kind="MappedType"})(Pt||(Pt={}));var Lt;(function(o){o.Kind="MixinType"})(Lt||(Lt={}));var kt;(function(o){o.Kind="SimpleType"})(kt||(kt={}));var jt;(function(o){o.Kind="UnionType"})(jt||(jt={}));var qr;(function(o){o.Kind="HttpController"})(qr||(qr={}));var Qn;(function(o){o.Kind="HttpOperation"})(Qn||(Qn={}));var Gn;(function(o){o.Kind="MQController"})(Gn||(Gn={}));var Xn;(function(o){o.Kind="MQOperation"})(Xn||(Xn={}));function Kc(o){return o&&typeof o=="object"&&(o.kind===vt.Kind||o.kind===Ft.Kind||o.kind===It.Kind||o.kind===Pt.Kind||o.kind===kt.Kind||o.kind===Lt.Kind||o.kind===jt.Kind)}a(Kc,"isDataType");function Vc(o){return o&&typeof o=="object"&&o.kind===Ft.Kind}a(Vc,"isComplexType");function Wc(o){return o&&typeof o=="object"&&o.kind===kt.Kind}a(Wc,"isSimpleType");function zc(o){return o&&typeof o=="object"&&o.kind===Lt.Kind}a(zc,"isMixinType");function Jc(o){return o&&typeof o=="object"&&o.kind===Pt.Kind}a(Jc,"isMappedType");function Yc(o){return o&&typeof o=="object"&&o.kind===It.Kind}a(Yc,"isEnumType");function Qc(o){return o&&typeof o=="object"&&o.kind===jt.Kind}a(Qc,"isUnionType");function Gc(o){return o&&typeof o=="object"&&o.kind===vt.Kind}a(Gc,"isArrayType");function Xc(o){return o&&typeof o=="object"&&o.kind===qr.Kind}a(Xc,"isHttpController");var Zn;(function(o){o.Kind="WSController"})(Zn||(Zn={}));var Hn;(function(o){o.Kind="WSOperation"})(Hn||(Hn={}));var Ja=require("@jsopen/objects"),Ya=require("ts-gems");var Wa=require("ts-gems"),za=require("uid");var es=class es{constructor(e,t){this.element=e,this.parent=t}getDocument(){if(this._document)return this._document;if(this.element[we])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[L])==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(d,e).name;else if(typeof e=="object"){let n=e[d];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}getArrayType(e,t){let r=this.getDataType(e,t);if(r.kind===f.ArrayType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MixinType`)}getComplexType(e,t){let r=this.getDataType(e,t);if(r.kind===f.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===f.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===f.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===f.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===f.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===f.UnionType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a UnionType`)}};a(es,"DocumentNode");var Br=es;var A=a(function(o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let e=(0,Wa.asMutable)(this);e.id=(0,za.uid)(16),Object.defineProperty(e,"node",{value:new Br(this,o==null?void 0:o.node),enumerable:!1,writable:!0}),o&&Object.defineProperty(e,"owner",{value:o,enumerable:!1,writable:!0})},"DocumentElement"),rs=class rs{};a(rs,"DocumentElementClass");var ts=rs;A.prototype=ts.prototype;var je=Symbol.for("nodejs.util.inspect.custom"),De="\x1B[0m",Ce="\x1B[33m",Ue="\x1B[35m";function Kr(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(Kr,"testScopeMatch");var E=a(function(o,e,t){if(!this)throw new TypeError('"this" should be passed to call class constructor');if(e!=null&&e.name&&!P.test(e.name))throw new TypeError(`"${e.name}" is not a valid DataType name`);A.call(this,o);let r=(0,Ya.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"),os=class os extends A{get embedded(){return!this.name}inScope(e){return Kr(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,Ja.omitUndefined)({kind:this.kind,description:this.description,abstract:this.abstract,examples:this.examples})}toString(){return`[${Object.getPrototypeOf(this).constructor.name} ${this.name||"#Embedded"}]`}[je](){return`[${Ce+Object.getPrototypeOf(this).constructor.name+De} ${Ue+this.name+De}]`}};a(os,"DataTypeClass");var is=os;E.prototype=is.prototype;var de=a(function(...o){if(!this)return de[w].apply(void 0,o);let[e,t,r]=o;E.call(this,e,t,r);let i=(0,Ga.asMutable)(this);i.kind=f.ArrayType.Kind,i.type=t.type,i.minOccurs=t.minOccurs,i.maxOccurs=t.maxOccurs},"ArrayType"),ss=class ss extends E{toJSON(e){let t=super.toJSON(e),r=this.node.getDataTypeNameWithNs(this.type);return(0,Qa.omitUndefined)({...t,kind:this.kind,type:r||this.type.toJSON(e),minOccurs:this.minOccurs,maxOccurs:this.maxOccurs})}generateCodec(e,t,r){let i=this.type.generateCodec(e,t,r);i=Vr.vg.isArray(i);let n=[];return this.minOccurs&&n.push(Vr.vg.lengthMin(this.minOccurs)),this.maxOccurs&&n.push(Vr.vg.lengthMax(this.maxOccurs)),n.length>0?Vr.vg.pipe([i,...n],{returnIndex:0}):i}extendsFrom(){return!1}_locateBase(){}};a(ss,"ArrayTypeClass");var ns=ss;de.prototype=ns.prototype;de[w]=Zc;function Zc(o,e){let i=class i{};a(i,"ArrayClass");let t=i,r={...e,kind:f.ArrayType.Kind,type:o};return Reflect.defineMetadata(d,r,t),t}a(Zc,"ArrayTypeFactory");var Ct=/^([+-])?([a-z$_][\w.]*)$/i,q=a(function(...o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;E.call(this,e,t,r);let i=(0,Za.asMutable)(this);i._fields=new S},"ComplexTypeBase"),ps=class ps extends E{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 R,y,z;let r=this,i,n=e.split("."),s=n.length,p=[],c=this.owner.node.getDataType("object"),l=t==null?void 0:t.allowSigns,O=a(()=>p.map(U=>U.fieldName).join("."),"getStrPath");for(let U=0;U<s;U++){let J={fieldName:n[U],dataType:c};p.push(J);let pt=Ct.exec(n[U]);if(!pt)throw new TypeError(`Invalid field name (${O()})`);if(pt[1]&&((U===0&&l==="first"||l==="each")&&(J.sign=pt[1]),J.fieldName=pt[2]),r){if(r instanceof q){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(((R=r.additionalFields)==null?void 0:R[0])===!0){J.additionalField=!0,J.dataType=c,r=void 0;continue}if(((y=r.additionalFields)==null?void 0:y[0])==="type"&&((z=r.additionalFields)==null?void 0:z[1])instanceof E){J.additionalField=!0,J.dataType=r.additionalFields[1],r=r.additionalFields[1];continue}throw new Error(`Unknown field (${p.map(Yi=>Yi.fieldName).join(".")})`)}throw new TypeError(`"${p.map(Yi=>Yi.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){var p;let r=t!=null&&t.cache?t:{...t,projection:Array.isArray(t==null?void 0:t.projection)?Do(t.projection):t==null?void 0:t.projection,currentPath:""},i=this._generateSchema(e,r),n;if(this.additionalFields instanceof E)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 c=n[1];n=(0,V.validator)((l,O,R)=>O.fail(R,c,l))}let s=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});if(r.level===0&&((p=r.forwardCallbacks)!=null&&p.size))for(let c of r.forwardCallbacks)c();return s}_generateSchema(e,t){var c;t.fieldCache=t.fieldCache||new Map,t.level=t.level||0,t.forwardCallbacks=t.forwardCallbacks||new Set;let r={},{currentPath:i,projection:n}=t,s=!!(n&&Object.values(n).find(l=>!l.sign)),p;for(let l of this.fields("*")){if(!l.inScope(t.scope)||!(t.keepKeyFields&&this.keyField)&&(t.ignoreReadonlyFields&&l.readonly||t.ignoreWriteonlyFields&&l.writeonly)){r[l.name]=V.vg.isUndefined({coerce:!0});continue}p=l.name;let O;if(n!=="*"&&(O=n==null?void 0:n[p.toLowerCase()],(O==null?void 0:O.sign)==="-"||s&&!O||!s&&l.exclusive&&!O)){r[l.name]=V.vg.isUndefined({coerce:!0});continue}let R=typeof n=="object"?((c=n[p])==null?void 0:c.projection)||"*":n,y=t.fieldCache.get(l),z=typeof R=="string"?R:(0,Xa.default)(R||{});y||(y={},t.fieldCache.set(l,y));let U=y[z];if(U===null)U=V.vg.isAny(),t.forwardCallbacks.add(()=>{U=y[z],r[p]=t.partial||!l.required?V.vg.optional(U):V.vg.required(U)});else if(!U){let J=a(()=>{y[z]=null;let pt=this._generateFieldCodec(e,l,{...t,partial:t.partial==="deep"?t.partial:void 0,projection:R,currentPath:i+(i?".":"")+p});return y[z]=pt,pt},"defaultGenerator");t.fieldHook?U=t.fieldHook(l,t.currentPath,J):U=J()}r[p]=t.partial||!(l.required||U.id==="required")?V.vg.optional(U):U.id==="required"?U:V.vg.required(U)}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.generateCodec(e,{...r,level:r.level+1});return t.fixed&&(i=V.vg.isEqual(t.fixed)),t.isArray&&!(t.type instanceof de)&&(i=V.vg.isArray(i)),i}};a(ps,"ComplexTypeBaseClass");var as=ps;q.prototype=as.prototype;var U0=require("reflect-metadata"),xi=require("@jsopen/objects"),Ha=require("ts-gems"),ep=require("valgen");var te=a(function(...o){if(!this)return te[w].apply(void 0,o);let[e,t,r]=o;E.call(this,e,t,r);let i=(0,Ha.asMutable)(this);if(i.kind=f.EnumType.Kind,t.base){if(!(t.base instanceof te))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=I(t.attributes||{}),i.attributes=i.base?I(i.base.attributes):{};for(let[n,s]of Object.entries(i.ownAttributes))i.attributes[n]=s},"EnumType"),cs=class cs extends E{extendsFrom(e){var t;return e instanceof E||(e=this.node.getDataType(e)),e instanceof te?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}generateCodec(){return ep.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,xi.omitUndefined)({...t,kind:this.kind,base:r,attributes:I(this.ownAttributes)})}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(cs,"EnumTypeClass");var Wr=cs;te.prototype=Wr.prototype;Object.assign(te,Wr);function Hc(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 l;if(!isNaN(Number(p)))return;let c=(l=r==null?void 0:r.meanings)==null?void 0:l[p];i[p]=(0,xi.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 l;if(!isNaN(Number(p)))return;let c=(l=r==null?void 0:r.meanings)==null?void 0:l[p];i[o[p]]=(0,xi.omitUndefined)({alias:p,description:c})})}let s={kind:f.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,d,{value:s,enumerable:!1,configurable:!0,writable:!0}),n}a(Hc,"EnumTypeFactory");te.prototype=Wr.prototype;te[w]=Hc;var Ss={};Rr(Ss,{Base64Type:()=>Oi,DateTimeType:()=>Kt,DateTimeTypeTz:()=>Wt,DateType:()=>qt,EmailType:()=>re,FieldPathType:()=>Y,FilterType:()=>We,ObjectIdType:()=>Ai,OperationResult:()=>oe,PartialDateType:()=>tr,TimeType:()=>ir,UrlType:()=>bi,UuidType:()=>Jr});var gi=require("tslib"),Oe=require("valgen");var G0=require("reflect-metadata"),fs=require("@jsopen/objects"),rp=require("ts-gems"),ms=require("valgen");function ls(o){let e=[],t=a(function(r){let i;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!P.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(d,r)||{};o&&Object.assign(n,o),n.kind=f.SimpleType.Kind,n.name=i,Reflect.defineMetadata(d,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(ls,"SimpleTypeDecoratorFactory");function tp(o){return(e,t)=>{if(typeof t!="string")throw new TypeError("Symbol properties can't be decorated with Attribute");let r=Reflect.getOwnMetadata(d,e.constructor)||{},i=Reflect.getMetadata("design:type",e,t),n="string";i===Boolean?n="boolean":i===Number&&(n="number"),r.kind=f.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(d,r,e.constructor)}}a(tp,"AttributeDecoratorFactory");var u=a(function(...o){var n,s;if(!this)return u[w](...o);let[e,t,r]=o;E.call(this,e,t,r);let i=(0,rp.asMutable)(this);if(i.kind=f.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=I(t.attributes||{}),i.attributes=i.base?I(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"),ds=class ds extends E{extend(e){return Object.setPrototypeOf(e,this),e}extendsFrom(e){var t;return e instanceof E||(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,{dataType:this,element:(t==null?void 0:t.documentElement)||this.owner,scope:t==null?void 0:t.scope});s=this.base}return ms.isAny}let n=this;for(;n;){if(n._generateEncoder)return n._generateEncoder(i,{dataType:this,element:(t==null?void 0:t.documentElement)||this.owner,scope:t==null?void 0:t.scope});n=this.base}return ms.isAny}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0,i=(0,fs.omitUndefined)(this.ownAttributes),n;this.properties&&typeof this.properties.toJSON=="function"?n=this.properties.toJSON(this.properties,this.owner,e):n=this.properties?I(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,fs.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(ds,"SimpleTypeClass");var us=ds;u.prototype=us.prototype;Object.assign(u,ls);u[w]=ls;u.Attribute=tp;var Ut,Oi=(Ut=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=Oe.vg.isBase64({coerce:!0});return e.designType===Buffer?Oe.vg.pipe([t,el],{coerce:!0}):e.designType===Uint8Array?Oe.vg.pipe([t,tl],{coerce:!0}):t}[g](){return rl}},a(Ut,"Base64Type"),Ut);Oi=(0,gi.__decorate)([u({name:"base64",description:"A stream of bytes, base64 encoded",nameMappings:{js:"string",json:"string"}}),(0,gi.__metadata)("design:paramtypes",[Object])],Oi);var el=(0,Oe.validator)(o=>Buffer.from(o,"base64")),tl=(0,Oe.validator)(o=>new Uint8Array(Buffer.from(o,"base64"))),rl=(0,Oe.validator)(o=>Buffer.isBuffer(o)?o.toString("base64"):(0,Oe.isBase64)(o));var $e=require("tslib"),Ne=require("valgen");var ip=Ne.vg.isDateString({precisionMin:"day",trim:"day",coerce:!0}),il=Ne.vg.isDate({trim:"day",coerce:!0}),$t,qt=($t=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t;e.designType===Date?t=il:t=ip;let r=[t];return e.minValue!=null&&r.push(Ne.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Ne.vg.isLte(t(e.maxValue))),r.length>0?Ne.vg.pipe(r,{returnIndex:0}):t}[g](e){let t=ip,r=[t];return e.minValue!=null&&r.push(Ne.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Ne.vg.isLte(t(e.maxValue))),r.length>0?Ne.vg.pipe(r,{returnIndex:0}):t}},a($t,"DateType"),$t);(0,$e.__decorate)([u.Attribute({description:"Minimum value"}),(0,$e.__metadata)("design:type",String)],qt.prototype,"minValue",void 0);(0,$e.__decorate)([u.Attribute({description:"Maximum value"}),(0,$e.__metadata)("design:type",String)],qt.prototype,"maxValue",void 0);qt=(0,$e.__decorate)([u({name:"date",description:"A date without time",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18","Full date value"),(0,$e.__metadata)("design:paramtypes",[Object])],qt);var qe=require("tslib"),Se=require("valgen");var op=Se.vg.isDateString({precisionMin:"day",trim:"tz",coerce:!0}),ol=Se.vg.isDate({coerce:!0}),Bt,Kt=(Bt=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t;e.designType===Date?t=ol:t=op;let r=[t];return e.minValue!=null&&r.push(Se.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Se.vg.isLte(t(e.maxValue))),r.length>0?Se.vg.pipe(r,{returnIndex:0}):t}[g](e){let t=op,r=[t];return e.minValue!=null&&r.push(Se.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Se.vg.isLte(t(e.maxValue))),r.length>0?Se.vg.pipe(r,{returnIndex:0}):t}},a(Bt,"DateTimeType"),Bt);(0,qe.__decorate)([u.Attribute({description:"Minimum value"}),(0,qe.__metadata)("design:type",String)],Kt.prototype,"minValue",void 0);(0,qe.__decorate)([u.Attribute({description:"Maximum value"}),(0,qe.__metadata)("design:type",String)],Kt.prototype,"maxValue",void 0);Kt=(0,qe.__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,qe.__metadata)("design:paramtypes",[Object])],Kt);var Ke=require("tslib"),Be=require("valgen");var np=Be.vg.isDateString({precisionMin:"tz",coerce:!0}),Vt,Wt=(Vt=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=np,r=[t];return e.minValue!=null&&r.push(Be.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Be.vg.isLte(t(e.maxValue))),r.length>0?Be.vg.pipe(r,{returnIndex:0}):t}[g](e){let t=np,r=[t];return e.minValue!=null&&r.push(Be.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Be.vg.isLte(t(e.maxValue))),r.length>0?Be.vg.pipe(r,{returnIndex:0}):t}},a(Vt,"DateTimeTypeTz"),Vt);(0,Ke.__decorate)([u.Attribute({description:"Minimum value"}),(0,Ke.__metadata)("design:type",String)],Wt.prototype,"minValue",void 0);(0,Ke.__decorate)([u.Attribute({description:"Maximum value"}),(0,Ke.__metadata)("design:type",String)],Wt.prototype,"maxValue",void 0);Wt=(0,Ke.__decorate)([u({name:"datetimetz",description:"A full datetime value with time zone information",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18T22:30:15+03:00"),(0,Ke.__metadata)("design:paramtypes",[Object])],Wt);var j=require("tslib"),hs=require("valgen");var zt,re=(zt=class{constructor(e){e&&Object.assign(this,e)}[_](e){return hs.vg.isEmail({...e,coerce:!0})}[g](e){return hs.vg.isEmail({...e,coerce:!0})}},a(zt,"EmailType"),zt);(0,j.__decorate)([u.Attribute({description:"If set to `true`, the validator will also match `Display Name <email-address>",default:!1}),(0,j.__metadata)("design:type",Boolean)],re.prototype,"allowDisplayName",void 0);(0,j.__decorate)([u.Attribute({description:"If set to `true`, the validator will reject strings without the format `Display Name <email-address>",default:!1}),(0,j.__metadata)("design:type",Boolean)],re.prototype,"requireDisplayName",void 0);(0,j.__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,j.__metadata)("design:type",Boolean)],re.prototype,"utf8LocalPart",void 0);(0,j.__decorate)([u.Attribute({description:"If set to `true`, the validator will not check for the standard max length of an email",default:!1}),(0,j.__metadata)("design:type",Boolean)],re.prototype,"ignoreMaxLength",void 0);(0,j.__decorate)([u.Attribute({description:"If set to `true`, the validator will allow IP addresses in the host part",default:!1}),(0,j.__metadata)("design:type",Boolean)],re.prototype,"allowIpDomain",void 0);(0,j.__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,j.__metadata)("design:type",Boolean)],re.prototype,"domainSpecificValidation",void 0);(0,j.__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,j.__metadata)("design:type",Array)],re.prototype,"hostBlacklist",void 0);(0,j.__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,j.__metadata)("design:type",Array)],re.prototype,"hostWhitelist",void 0);(0,j.__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,j.__metadata)("design:type",String)],re.prototype,"blacklistedChars",void 0);re=(0,j.__decorate)([u({name:"email",description:"An email value",nameMappings:{js:"string",json:"string"}}).Example("some.body@example.com"),(0,j.__metadata)("design:paramtypes",[Object])],re);var Ve=require("tslib"),Yt=require("valgen");var Jt,Y=(Jt=class{constructor(e){e&&Object.assign(this,e)}[_](e,{element:t,scope:r}){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),n=e.allowSigns,s=(0,Yt.validator)("decodeFieldPath",p=>i.normalizeFieldPath(p,{allowSigns:n,scope:r}));return Yt.vg.pipe([Yt.toString,s])}[g](e,t){return this[_](e,t)}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");E.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),allowSigns:e.allowSigns}}},a(Jt,"FieldPathType"),Jt);(0,Ve.__decorate)([u.Attribute({description:"Data type which field belong to"}),(0,Ve.__metadata)("design:type",Object)],Y.prototype,"dataType",void 0);(0,Ve.__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,Ve.__metadata)("design:type",String)],Y.prototype,"allowSigns",void 0);Y=(0,Ve.__decorate)([u({name:"fieldpath",description:"Field path",nameMappings:{js:"string",json:"string"}}),(0,Ve.__metadata)("design:paramtypes",[Object])],Y);var ze=require("tslib"),ys=require("valgen");var Gt={};Rr(Gt,{$and:()=>sl,$arithmetic:()=>Al,$array:()=>sp,$date:()=>al,$eq:()=>fl,$field:()=>ll,$gt:()=>ul,$gte:()=>dl,$ilike:()=>Ol,$in:()=>Tl,$like:()=>_l,$lt:()=>hl,$lte:()=>yl,$ne:()=>ml,$notILike:()=>gl,$notIn:()=>El,$notLike:()=>xl,$number:()=>cl,$or:()=>nl,$paren:()=>wl,$time:()=>pl,ArithmeticExpression:()=>lt,ArithmeticExpressionItem:()=>oi,ArrayExpression:()=>Ae,Ast:()=>Ir,BooleanLiteral:()=>ft,ComparisonExpression:()=>Ee,DateLiteral:()=>ke,DateTimeLiteral:()=>kr,Expression:()=>K,FilterTreeVisitor:()=>Ur,Literal:()=>k,LogicalExpression:()=>_e,NegativeExpression:()=>Pr,NullLiteral:()=>mt,NumberLiteral:()=>be,OpraErrorListener:()=>$r,ParenthesizedExpression:()=>Re,QualifiedIdentifier:()=>ce,StringLiteral:()=>ut,Term:()=>ct,TimeLiteral:()=>dt,parse:()=>Jn});function nl(...o){return new _e({op:"or",items:o})}a(nl,"$or");function sl(...o){return new _e({op:"and",items:o})}a(sl,"$and");function al(o){return new ke(o)}a(al,"$date");function pl(o){return new dt(o)}a(pl,"$time");function cl(o){return new be(o)}a(cl,"$number");function sp(...o){return new Ae(o.map(wi))}a(sp,"$array");function ll(o){return new ce(o)}a(ll,"$field");function fl(o,e){return fe("=",o,e)}a(fl,"$eq");function ml(o,e){return fe("!=",o,e)}a(ml,"$ne");function ul(o,e){return fe(">",o,e)}a(ul,"$gt");function dl(o,e){return fe(">=",o,e)}a(dl,"$gte");function hl(o,e){return fe("<",o,e)}a(hl,"$lt");function yl(o,e){return fe("<=",o,e)}a(yl,"$lte");function Tl(o,e){return fe("in",o,e)}a(Tl,"$in");function El(o,e){return fe("!in",o,e)}a(El,"$notIn");function _l(o,e){return fe("like",o,e)}a(_l,"$like");function xl(o,e){return fe("!like",o,e)}a(xl,"$notLike");function Ol(o,e){return fe("ilike",o,e)}a(Ol,"$ilike");function gl(o,e){return fe("!ilike",o,e)}a(gl,"$notILike");function wl(o){return new Re(o)}a(wl,"$paren");function Al(o){let e=new lt;return e.add=t=>(e.append("+",Qt(t)),e),e.sub=t=>(e.append("-",Qt(t)),e),e.mul=t=>(e.append("*",Qt(t)),e),e.div=t=>(e.append("/",Qt(t)),e),e.append("+",wi(o)),e}a(Al,"$arithmetic");function fe(o,e,t){let r=typeof e=="string"?new ce(e):wi(e),i=wi(t);return new Ee({op:o,left:r,right:i})}a(fe,"comparisonExpression");var wi=a(o=>Array.isArray(o)?sp(...o.map(Qt)):Qt(o),"wrapEntryValue"),Qt=a(o=>o instanceof K?o:typeof o=="boolean"?new ft(o):typeof o=="number"||typeof o=="bigint"?new be(o):o==null?new mt:o instanceof Date?new ke(o):new ut(""+o),"_wrapEntryValue");var Xt,We=(Xt=class{constructor(e){e&&Object.assign(this,e)}[_](e,{element:t}){let r=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),i=e.rules?new Mt(e.rules):void 0;return Rl(r,i)}[g](){return bl}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");E.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),rules:e.rules}}},a(Xt,"FilterType"),Xt);(0,ze.__decorate)([u.Attribute({description:"Data type which filtering fields belong to"}),(0,ze.__metadata)("design:type",Object)],We.prototype,"dataType",void 0);(0,ze.__decorate)([u.Attribute({description:"Stringified JSON object defines filtering rules",format:"string"}),(0,ze.__metadata)("design:type",Object)],We.prototype,"rules",void 0);We=(0,ze.__decorate)([u({name:"filter",description:"A query filter",nameMappings:{js:"object",json:"string"}}),(0,ze.__metadata)("design:paramtypes",[Object])],We);var Rl=a((o,e,t)=>(0,ys.validator)("decodeFilter",(r,i,n)=>{if(typeof r=="string")try{let s=Gt.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"),bl=(0,ys.validator)("encodeFilter",(o,e,t)=>{if(o instanceof Gt.Ast)return o.toString();e.fail(t,"Not a valid filter expression",o)});var Ri=require("tslib"),Ts=require("valgen");var Zt,Ai=(Zt=class{constructor(e){e&&Object.assign(this,e)}[_](){return Ts.vg.isObjectId({coerce:!0})}[g](){return Ts.vg.isObjectId({coerce:!0})}},a(Zt,"ObjectIdType"),Zt);Ai=(0,Ri.__decorate)([u({name:"ObjectId",description:"A MongoDB ObjectID value",nameMappings:{js:"object",json:"string"}}),(0,Ri.__metadata)("design:paramtypes",[Object])],Ai);var C=require("tslib");var _s=require("@jsopen/objects"),pp=require("ts-gems");var ap=require("@jsopen/objects");function Es(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(d,r.constructor)||{};n.kind=f.ComplexType.Kind,n.fields=n.fields||{};let s=Reflect.getMetadata("design:type",r,i),p=n.fields[i]={...o,designType:s};s===Array?p.isArray=!0:p.type=p.type||s,Reflect.defineMetadata(d,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,ap.omitUndefined)({...i,scopePattern:Array.isArray(r)?r:[r],type:void 0,isArray:void 0,isNestedEntity:void 0}))}),t),t}a(Es,"ApiFieldDecoratorFactory");var $=a(function(...o){if(!this){let[n]=o;return $[w](n)}let[e,t]=o;A.call(this,e);let r=(0,pp.asMutable)(this);r.name=t.name;let i=t.origin||e;if(!(i instanceof q))throw new Error("Field origin should be one of ComplexType, MappedType or MixinType");r.origin=i,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,r.scopePattern=t.scopePattern?Array.isArray(t.scopePattern)?t.scopePattern:[t.scopePattern]:void 0,r.designType=t.designType,r.override=t.override},"ApiField"),Os=class Os extends A{inScope(e){return Kr(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(Kr(e,r.scopePattern)){t=(0,_s.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,_s.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})}generateCodec(e,t,r){return this.type.generateCodec(e,t,{...r,designType:this.designType})}};a(Os,"ApiFieldClass");var xs=Os;$.prototype=xs.prototype;Object.assign($,Es);$[w]=Es;var y1=require("reflect-metadata"),lp=require("@jsopen/objects"),fp=require("ts-gems");var gs=class gs extends ye{constructor(){super(""),this.details=[]}add(e){return this.details.push(e),this}};a(gs,"OpraDocumentError");var ht=gs;var ws=class ws{constructor(e){this.path="",this.error=new ht,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(ws,"DocumentInitContext");var he=ws;var cp=require("@jsopen/objects");function As(o){return function(e){let t;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!P.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(d,e);r||(r={},Reflect.defineMetadata(d,r,e)),r.kind=f.ComplexType.Kind,r.name=t,o&&Object.assign(r,(0,cp.omit)(o,["name"]))}}a(As,"ComplexTypeDecorator");var ie=a(function(...o){var n;if(!this)return ie[w].apply(void 0,o);let[e,t]=o,r=o[2]||new he({maxErrors:0});q.call(this,e,t,r);let i=(0,fp.asMutable)(this);i.kind=f.ComplexType.Kind,i.discriminatorField=t.discriminatorField,i.discriminatorValue=t.discriminatorValue,t.base&&r.enter(".base",()=>{if(!(t.base instanceof q))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 $(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 $(this,{...p,name:s});this._fields.set(c.name,c)}})},"ComplexType"),bs=class bs extends q{extendsFrom(e){var t;return e instanceof E||(e=this.node.getDataType(e)),e instanceof q?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 E){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,lp.omitUndefined)(i)}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(bs,"ComplexTypeClass");var Rs=bs;ie.prototype=Rs.prototype;Object.assign(ie,As);ie[w]=As;var Ht,oe=(Ht=class{constructor(e){e&&Object.assign(this,e)}},a(Ht,"OperationResult"),Ht);(0,C.__decorate)([$(),(0,C.__metadata)("design:type",Number)],oe.prototype,"affected",void 0);(0,C.__decorate)([$(),(0,C.__metadata)("design:type",Number)],oe.prototype,"totalMatches",void 0);(0,C.__decorate)([$(),(0,C.__metadata)("design:type",String)],oe.prototype,"context",void 0);(0,C.__decorate)([$(),(0,C.__metadata)("design:type",String)],oe.prototype,"type",void 0);(0,C.__decorate)([$(),(0,C.__metadata)("design:type",String)],oe.prototype,"message",void 0);(0,C.__decorate)([$({type:"any"}),(0,C.__metadata)("design:type",Object)],oe.prototype,"payload",void 0);(0,C.__decorate)([$({type:"object"}),(0,C.__metadata)("design:type",Array)],oe.prototype,"errors",void 0);oe=(0,C.__decorate)([ie({name:"OperationResult",description:"Operation result"}),(0,C.__metadata)("design:paramtypes",[Object])],oe);(function(o){function e(t){var i;let r=(i=class extends o{constructor(...s){super(...s)}},a(i,"OperationResult_"),i);return(0,C.__decorate)([$({type:t,required:!0}),(0,C.__metadata)("design:type",Object)],r.prototype,"payload",void 0),r=(0,C.__decorate)([ie({embedded:!0}),(0,C.__metadata)("design:paramtypes",[Object])],r),r}a(e,"forPayload"),o.forPayload=e})(oe||(oe={}));var Je=require("tslib"),B=require("valgen");var er,tr=(er=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=up,r=[];return e.minValue!=null&&((0,B.isDateString)(e.minValue),r.push(B.toString,B.vg.isGte(e.minValue))),e.maxValue!=null&&((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}[g](e){let t=up,r=[];return e.minValue!=null&&((0,B.isDateString)(e.minValue),r.push(B.vg.isGte(e.minValue))),e.maxValue!=null&&((0,B.isDateString)(e.maxValue),r.push(B.vg.isLte(e.maxValue))),r.length>0?B.vg.pipe([t,...r],{returnIndex:0}):t}},a(er,"PartialDateType"),er);(0,Je.__decorate)([u.Attribute({description:"Minimum value"}),(0,Je.__metadata)("design:type",String)],tr.prototype,"minValue",void 0);(0,Je.__decorate)([u.Attribute({description:"Maximum value"}),(0,Je.__metadata)("design:type",String)],tr.prototype,"maxValue",void 0);tr=(0,Je.__decorate)([u({name:"partialdate",description:"Specifies a point in time using a 24-hour clock notation.\rFormat: YYYY-[MM-[DD-[T?HH:[MM:[SS[.S[S[S[S]]]]]]]]][+/-ZZ:ZZ].",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18T22:30:15:22+03:00").Example("2021-04-18 22:30").Example("2021-04-18").Example("2021"),(0,Je.__metadata)("design:paramtypes",[Object])],tr);var mp=B.vg.isDateString({precisionMin:"year"}),up=(0,B.validator)(o=>{if(o instanceof Date){let e=mp(o,{coerce:!0});return e.endsWith("Z")&&(e=e.substring(0,e.length-1)),e.endsWith(".000")&&(e=e.substring(0,e.length-4)),e.endsWith(":00")&&(e=e.substring(0,e.length-3)),e.endsWith("00:00")&&(e=e.substring(0,e.length-6)),e}return mp(o,{coerce:!1})});var Ye=require("tslib"),zr=require("valgen");var Dl=/^([0-1][0-9]|2[0-4]):([0-5][0-9])(?::([0-5][0-9]))?$/,rr,ir=(rr=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=zr.vg.matches(Dl,{formatName:"time",coerce:!0}),r=[];return e.minValue!=null&&r.push(zr.vg.isGte(e.minValue)),e.maxValue!=null&&r.push(zr.vg.isLte(e.maxValue)),r.length>0?zr.vg.pipe([t,...r],{returnIndex:0}):t}[g](e){return this[_](e)}},a(rr,"TimeType"),rr);(0,Ye.__decorate)([u.Attribute({description:"Minimum value"}),(0,Ye.__metadata)("design:type",String)],ir.prototype,"minValue",void 0);(0,Ye.__decorate)([u.Attribute({description:"Maximum value"}),(0,Ye.__metadata)("design:type",String)],ir.prototype,"maxValue",void 0);ir=(0,Ye.__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,Ye.__metadata)("design:paramtypes",[Object])],ir);var Di=require("tslib"),Ds=require("valgen");var or,bi=(or=class{constructor(e){e&&Object.assign(this,e)}[_](){return Ds.vg.isURL({coerce:!0})}[g](){return Ds.vg.isURL({coerce:!0})}},a(or,"UrlType"),or);bi=(0,Di.__decorate)([u({name:"url",description:"A Uniform Resource Identifier Reference (RFC 3986 icon) value",nameMappings:{js:"string",json:"string"}}).Example("http://tempuri.org"),(0,Di.__metadata)("design:paramtypes",[Object])],bi);var sr=require("tslib"),Ns=require("valgen");var nr,Jr=(nr=class{constructor(e){e&&Object.assign(this,e)}[_](e){return Ns.vg.isUUID(e==null?void 0:e.version,{coerce:!0})}[g](e){return Ns.vg.isUUID(e==null?void 0:e.version,{coerce:!0})}},a(nr,"UuidType"),nr);(0,sr.__decorate)([u.Attribute({description:"Version of the UUID"}),(0,sr.__metadata)("design:type",Number)],Jr.prototype,"version",void 0);Jr=(0,sr.__decorate)([u({name:"uuid",description:"A Universal Unique Identifier (UUID) value",nameMappings:{js:"string",json:"string"}}),(0,sr.__metadata)("design:paramtypes",[Object])],Jr);var yp=Rt(require("path-browserify"),1),Tp=require("@jsopen/objects"),Ep=require("ts-gems");var dp,hp,me=Symbol.for("kMap"),Yr=Symbol.for("kCtorMap"),Ms=class Ms{constructor(){this[dp]=new S,this[hp]=new WeakMap}get size(){return this[me].size}forEach(e,t){this[me].forEach(e,t)}get(e){let t=typeof e=="string"?e:this[Yr].get(e);if(!t&&typeof e=="function"){let i=Reflect.getMetadata(d,e);t=i==null?void 0:i.name}if(!t&&typeof e=="object"){let i=e[d];t=i==null?void 0:i.name}if(!t)return;let r=this[me].get(t);if(r)return typeof e=="function"&&r.kind==="ComplexType"?r.ctor===e?r:void 0:r}set(e,t){this[me].set(e,t),t.ctor?this[Yr].set(t.ctor,e):t.instance&&this[Yr].set(t.instance,e)}has(e){if(e instanceof E)return!!e.name&&this[me].has(e.name);let t=typeof e=="string"?e:this[Yr].get(e);return t?this[me].has(t):!1}keys(){return this[me].keys()}values(){return this[me].values()}entries(){return this[me].entries()}sort(e){return this[me].sort(e),this}[(dp=me,hp=Yr,Symbol.iterator)](){return this[me][Symbol.iterator]()}};a(Ms,"DataTypeMap");var W=Ms;var yt=require("@jsopen/objects");function F(o,e){let t=a(((r,i)=>{if(typeof i!="string")throw new TypeError("Symbol properties can not be decorated");let n={...e,kind:f.HttpOperation.Kind},s=Reflect.getOwnMetadata(se,r.constructor)||{};s.operations=s.operations||{},s.operations[i]=n;for(let p of o)p(n);Reflect.defineMetadata(se,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"};(0,yt.isConstructor)(s.type)&&(s.designType=s.type),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"};(0,yt.isConstructor)(s.type)&&(s.designType=s.type),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"};(0,yt.isConstructor)(s.type)&&(s.designType=s.type),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"};(0,yt.isConstructor)(s.type)&&(s.designType=s.type),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||N.opra_response_json,n.contentEncoding=n.contentEncoding||"utf-8"),n.contentType===N.opra_response_json&&(n.contentEncoding=n.contentEncoding||"utf-8"),(0,yt.isConstructor)(n.type)&&(n.designType=n.type),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||N.json,i.contentEncoding=i.contentEncoding||"utf-8",(0,yt.isConstructor)(i.type)&&(i.designType=i.type)),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(F,"HttpOperationDecoratorFactory");var D=a(function(...o){if(!this){let[i]=o,n=[];return D[w].call(void 0,n,i)}let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,Ep.asMutable)(this);r.parameters=[],r.responses=[],r.types=r.node[L]=new W,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?I(t.compositionOptions):void 0},"HttpOperation"),Fs=class Fs extends A{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:yp.default.posix.join(e,this.path):e:this.path||"/"}toJSON(e){var r;let t=(0,Tp.omitUndefined)({kind:f.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(Fs,"HttpOperationClass");var vs=Fs;D.prototype=vs.prototype;D[w]=F;D.GET=function(o){return F([],{...o,method:"GET"})};D.DELETE=function(o){return F([],{...o,method:"DELETE"})};D.HEAD=function(o){return F([],{...o,method:"HEAD"})};D.OPTIONS=function(o){return F([],{...o,method:"OPTIONS"})};D.PATCH=function(o){return F([],{...o,method:"PATCH"})};D.POST=function(o){return F([],{...o,method:"POST"})};D.PUT=function(o){return F([],{...o,method:"PUT"})};D.SEARCH=function(o){return F([],{...o,method:"SEARCH"})};D.Entity={};function Q(o){if(typeof o=="string")return o;let e=Reflect.getMetadata(d,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(Q,"getDataTypeName");function Qe(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(Qe,"createKeyParamDecorator");function _p(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=Ct.exec(p),l=Ct.exec(r[p]);return c&&l&&(s[c[2]]=l[2]),s},{}),n=Object.keys(r).reduce((s,p)=>{let c=Ct.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:te(n),isArray:!0,arraySeparator:",",parser:a(s=>s.map(p=>{let c=Ct.exec(p);return c?(c[1]||"")+i[c[2]]:p}),"parser")}),o}}a(_p,"createSortFieldsDecorator");function Ge(o,e,t){let r=Reflect.getMetadata("FilterRules",o);r||(r=new Mt,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(Ge,"createFilterDecorator");D.Entity.Create=function(o,e){var n;let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"POST",...t,composition:"Entity.Create",requestBody:{immediateFetch:!0,...t.requestBody,required:!0}});return i.QueryParam("projection",{description:"Determines fields projection",type:new Y({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(b.CREATED,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the created resource.',contentType:N.opra_response_json,type:t.type,partial:"deep"}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=Q(t.type)}),i};D.Entity.Delete=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"DELETE",...t,composition:"Entity.Delete"});return i.Response(b.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:N.opra_response_json}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=Q(t.type)}),i.KeyParam=Qe(i,r),i};D.Entity.DeleteMany=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"DELETE",...t,composition:"Entity.DeleteMany"});return i.Response(b.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:N.opra_response_json}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=Q(t.type)}),i.Filter=Ge(i,r,t.type),i};var ks={};Rr(ks,{AnyType:()=>Ni,BigintType:()=>Mi,BooleanType:()=>Fi,IntegerType:()=>xt,NullType:()=>Li,NumberType:()=>ge,ObjectType:()=>ji,StringType:()=>He});var Si=require("tslib"),Is=require("valgen");var ar,Ni=(ar=class{constructor(e){e&&Object.assign(this,e)}[_](){return Is.isAny}[g](){return Is.isAny}},a(ar,"AnyType"),ar);Ni=(0,Si.__decorate)([u({name:"any",description:"Represents any value"}),(0,Si.__metadata)("design:paramtypes",[Object])],Ni);var vi=require("tslib"),Et=require("valgen");var Xe=require("tslib"),Tt=require("valgen");var pr,ge=(pr=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=[];return e.minValue!=null&&t.push(Tt.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(Tt.vg.isLte(e.maxValue)),t.length>0?Tt.vg.pipe([Tt.toNumber,...t],{returnIndex:0}):Tt.toNumber}[g](e){return this[_](e)}},a(pr,"NumberType"),pr);(0,Xe.__decorate)([u.Attribute({description:"Determines the minimum value"}),(0,Xe.__metadata)("design:type",Number)],ge.prototype,"minValue",void 0);(0,Xe.__decorate)([u.Attribute({description:"Determines the maximum value"}),(0,Xe.__metadata)("design:type",Number)],ge.prototype,"maxValue",void 0);ge=(0,Xe.__decorate)([u({name:"number",description:"Both Integer as well as Floating-Point numbers",nameMappings:{js:"number",json:"number"}}),(0,Xe.__metadata)("design:paramtypes",[Object])],ge);var cr,Mi=(cr=class extends ge{constructor(e){super(e)}[_](e){let t=[];return e.minValue!=null&&t.push(Et.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(Et.vg.isLte(e.maxValue)),t.length>0?Et.vg.pipe([Et.toBigint,...t],{returnIndex:0}):Et.toBigint}[g](e){return this[_](e)}},a(cr,"BigintType"),cr);Mi=(0,vi.__decorate)([u({name:"bigint",description:"BigInt number",nameMappings:{js:"bigint",json:"string"}}),(0,vi.__metadata)("design:paramtypes",[Object])],Mi);var Ii=require("tslib"),Ps=require("valgen");var lr,Fi=(lr=class{constructor(e){e&&Object.assign(this,e)}[_](){return Ps.toBoolean}[g](){return Ps.toBoolean}},a(lr,"BooleanType"),lr);Fi=(0,Ii.__decorate)([u({name:"boolean",description:"Simple true/false value",nameMappings:{js:"boolean",json:"boolean"}}),(0,Ii.__metadata)("design:paramtypes",[Object])],Fi);var Pi=require("tslib"),_t=require("valgen");var fr,xt=(fr=class extends ge{constructor(e){super(e)}[_](e){let t=[];return e.minValue!=null&&t.push(_t.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(_t.vg.isLte(e.maxValue)),t.length>0?_t.vg.pipe([_t.toInteger,...t],{returnIndex:0}):_t.toInteger}[g](e){return this[_](e)}},a(fr,"IntegerType"),fr);xt=(0,Pi.__decorate)([u({name:"integer",description:"An integer number",nameMappings:{js:"number",json:"number"}}),(0,Pi.__metadata)("design:paramtypes",[Object])],xt);var ki=require("tslib"),Ls=require("valgen");var mr,Li=(mr=class{constructor(e){e&&Object.assign(this,e)}[_](){return Ls.isNull}[g](){return Ls.isNull}},a(mr,"NullType"),mr);Li=(0,ki.__decorate)([u({name:"null",description:"A Null value",nameMappings:{js:"null",json:"null"}}),(0,ki.__metadata)("design:paramtypes",[Object])],Li);var Ci=require("tslib");var ur,ji=(ur=class{constructor(e){e&&Object.assign(this,e)}},a(ur,"ObjectType"),ur);ji=(0,Ci.__decorate)([ie({name:"object",description:"A non modelled object",additionalFields:!0}),(0,Ci.__metadata)("design:paramtypes",[Object])],ji);var ue=require("tslib"),Ze=require("valgen");var dr,He=(dr=class{constructor(e){e&&Object.assign(this,e)}[_](e){let t=[];if(e.pattern){let r=e.patternName;r||(r=Reflect.getMetadata(d,Object.getPrototypeOf(this).constructor).name),t.push(Ze.vg.matches(e.pattern,{formatName:r}))}return e.minLength&&t.push(Ze.vg.lengthMin(e.minLength)),e.maxLength&&t.push(Ze.vg.lengthMax(e.maxLength)),t.length>0?Ze.vg.pipe([Ze.toString,...t],{returnIndex:0}):Ze.toString}[g](e){return this[_](e)}},a(dr,"StringType"),dr);(0,ue.__decorate)([u.Attribute({description:"Regex pattern to be used for validation"}),(0,ue.__metadata)("design:type",Object)],He.prototype,"pattern",void 0);(0,ue.__decorate)([u.Attribute({description:"Name of the pattern"}),(0,ue.__metadata)("design:type",String)],He.prototype,"patternName",void 0);(0,ue.__decorate)([u.Attribute({description:"Minimum number of characters"}),(0,ue.__metadata)("design:type",Number)],He.prototype,"minLength",void 0);(0,ue.__decorate)([u.Attribute({description:"Minimum number of characters"}),(0,ue.__metadata)("design:type",Number)],He.prototype,"maxLength",void 0);He=(0,ue.__decorate)([u({name:"string",description:"A sequence of characters",nameMappings:{js:"string",json:"string"}}),(0,ue.__metadata)("design:paramtypes",[Object])],He);D.Entity.FindMany=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"GET",...t,composition:"Entity.FindMany"});return i.Response(b.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains list of resources.',contentType:N.opra_response_json,type:t.type,partial:"deep",isArray:!0}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}).QueryParam("limit",{description:"Determines number of returning instances",type:new xt({minValue:1,maxValue:t.maxLimit})}).QueryParam("skip",{description:"Determines number of returning instances",type:new xt({minValue:1})}).QueryParam("count",{description:"Counts all matching instances if enabled",type:Boolean}).QueryParam("projection",{description:"Determines fields projection",type:new Y({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=Q(t.type),t.defaultLimit&&(s.defaultLimit=t.defaultLimit),t.defaultProjection&&(s.defaultProjection=t.defaultProjection),t.maxLimit&&(s.maxLimit=t.maxLimit)}),i.Filter=Ge(i,r,t.type),i.DefaultSort=(...n)=>(r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.defaultSort=n}),i),i.SortFields=_p(i,r),i};D.Entity.Get=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"GET",...t,composition:"Entity.Get"});return i.QueryParam("projection",{description:"Determines fields projection",type:new Y({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).Response(b.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the resource asked for.',contentType:N.opra_response_json,type:t.type,partial:"deep"}).Response(b.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=Q(t.type)}),i.KeyParam=Qe(i,r),i};D.Entity.Replace=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(r,{method:"POST",...t,composition:"Entity.Replace"});return i.QueryParam("projection",{description:"Determines fields projection",type:new Y({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).Response(b.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the resource asked for.',contentType:N.opra_response_json,type:t.type,partial:"deep"}).Response(b.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=Q(t.type)}),i.KeyParam=Qe(i,r),i};D.Entity.Update=function(o,e){var n;let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(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 Y({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(b.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains updated resource.',contentType:N.opra_response_json,type:t.type,partial:"deep"}).Response(b.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=Q(t.type)}),i.KeyParam=Qe(i,r),i.Filter=Ge(i,r,t.type),i};D.Entity.UpdateMany=function(o,e){var n;let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=F(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(b.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:N.opra_response_json}).Response(b.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:N.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=Q(t.type)}),i.Filter=Ge(i,r,t.type),i};var Ui=require("@jsopen/objects");var Nl=/^(.*)(Controller)$/,xp=[];function hr(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=Nl.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(ae,Object.getPrototypeOf(r));s&&(0,Ui.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(ae,r);p&&(0,Ui.merge)(n,p,{deep:!0}),(0,Ui.merge)(n,{...o,kind:f.MQController.Kind,name:i,path:i},{deep:!0}),Reflect.defineMetadata(ae,n,r);for(let l of e)l(n,r);Reflect.defineMetadata(ae,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),xp.forEach(r=>r(t,e,o)),t}a(hr,"MQControllerDecoratorFactory");hr.augment=function(o){xp.push(o)};var Qr=require("@jsopen/objects");var Op=[];function Gr(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:f.MQOperation.Kind,channel:s,type:e,...(0,Qr.omit)(t,["kind","type"])},c=Reflect.getOwnMetadata(ae,n.constructor)||{};c.operations=c.operations||{},c.operations[s]=p;for(let l of o)l(p,n,s);Reflect.defineMetadata(ae,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};(0,Qr.isConstructor)(c.type)&&(c.designType=c.type);let l=r?p.response:p;l.headers?l.headers=l.headers.filter(O=>String(O.name)!==String(n)):l.headers=[],l.headers.push(c)}),i),i.Response=(n,s)=>(o.push(p=>{r=!0,p.response={...s,type:n},(0,Qr.isConstructor)(n)&&(p.response.designType=n)}),i),Op.forEach(n=>n(i,o,e,t)),i}a(Gr,"MQOperationDecoratorFactory");Gr.augment=function(o){Op.push(o)};var $i=require("@jsopen/objects");var vl=/^(.*)(Controller)$/,gp=[];function yr(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=vl.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(pe,Object.getPrototypeOf(r));s&&(0,$i.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(pe,r);p&&(0,$i.merge)(n,p,{deep:!0}),(0,$i.merge)(n,{...o,kind:f.WSController.Kind,name:i,path:i},{deep:!0}),Reflect.defineMetadata(pe,n,r);for(let l of e)l(n,r);Reflect.defineMetadata(pe,n,r)},"decorator");return t.UseType=(...r)=>(e.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),gp.forEach(r=>r(t,e,o)),t}a(yr,"WSControllerDecoratorFactory");yr.augment=function(o){gp.push(o)};var wp=require("@jsopen/objects");var Ap=[];function Xr(o,e){let t=a(((r,i)=>{if(typeof i!="string")throw new TypeError("Symbol properties can not be decorated");let n={kind:f.WSOperation.Kind,event:i,...(0,wp.omit)(e,["kind"])},s=Reflect.getOwnMetadata(pe,r.constructor)||{};s.operations=s.operations||{},s.operations[i]=n;for(let p of o)p(n,r,i);Reflect.defineMetadata(pe,s,r.constructor)}),"decorator");return t.UseType=(...r)=>(o.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),Ap.forEach(r=>r(t,o,e)),t}a(Xr,"WSOperationDecoratorFactory");Xr.augment=function(o){Ap.push(o)};var AE=require("reflect-metadata"),Rp=require("@jsopen/objects"),bp=require("ts-gems");function qi(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(qi,"getIsInheritedPredicateFn");var et=a(function(...o){var n;if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;q.call(this,e,t,r);let i=(0,bp.asMutable)(this);if(i.kind=f.MappedType.Kind,t.base){if(!(t.base instanceof q))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(l=>i.base.normalizeFieldPath(l)):t.omit?i.omit=t.omit.map(l=>i.base.normalizeFieldPath(l)):t.partial?i.partial=Array.isArray(t.partial)?t.partial.map(l=>i.base.normalizeFieldPath(l)):t.partial:t.required&&(i.required=Array.isArray(t.required)?t.required.map(l=>i.base.normalizeFieldPath(l)):t.required);let s=qi(i.pick,i.omit),p=Array.isArray(i.partial)?i.partial.map(l=>l.toLowerCase()):i.partial,c=Array.isArray(i.required)?i.required.map(l=>l.toLowerCase()):i.required;for(let[l,O]of i.base.fieldEntries("*")){if(!s(l))continue;let R={...O};p===!0||Array.isArray(p)&&p.includes(O.name.toLowerCase())?R.required=!1:(c===!0||Array.isArray(c)&&c.includes(O.name.toLowerCase()))&&(R.required=!0);let y=new $(this,R);i._fields.set(y.name,y)}(!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"),Cs=class Cs extends q{extendsFrom(e){var t;return e instanceof E||(e=this.node.getDataType(e)),e instanceof q?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,Rp.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(Cs,"MappedTypeClass");var js=Cs;et.prototype=js.prototype;et._applyMixin=()=>{};var FE=require("reflect-metadata"),Dp=require("@jsopen/objects"),Np=require("ts-gems");var Ot=a(function(...o){if(!this)return Ot[w].apply(void 0,o);let[e,t,r]=o;q.call(this,e,t,r);let i=(0,Np.asMutable)(this);i.kind=f.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 $(this,s);i._fields.set(p.name,p)}i.types.push(n),n.keyField&&(i.keyField=n.keyField)}},"MixinType"),$s=class $s extends q{extendsFrom(e){if(e instanceof E||(e=this.node.getDataType(e)),!(e instanceof q))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,Dp.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 Us=$s;Ot.prototype=Us.prototype;Ot[w]=Pl;function Pl(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)Mr(this,n)}}}[t],i={...e,kind:f.MixinType.Kind,types:[]};Reflect.defineMetadata(d,i,r);for(let n of o){let s=Reflect.getMetadata(d,n);if(!(s&&(s.kind===f.ComplexType.Kind||s.kind===f.MixinType.Kind||s.kind===f.MappedType.Kind)))throw new TypeError(`Class "${n.name}" is not a ${f.ComplexType.Kind}, ${f.MixinType.Kind} or ${f.MappedType.Kind}`);i.types.push(n),Sr(r.prototype,n.prototype)}return r}a(Pl,"MixinTypeFactory");var BE=require("reflect-metadata"),Sp=require("@jsopen/objects"),Mp=require("ts-gems"),qs=require("valgen");var gt=a(function(...o){if(!this)return gt[w].apply(void 0,o);let[e,t,r]=o;E.call(this,e,t,r);let i=(0,Mp.asMutable)(this);i.kind=f.UnionType.Kind,i.discriminator=t.discriminator,i.types=[];for(let n of t.types)i.types.push(n)},"UnionType"),Ks=class Ks extends E{toJSON(e){let t=super.toJSON(e);return(0,Sp.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===f.ComplexType.Kind||i.kind===f.MappedType.Kind)&&i.discriminatorField?[n,{[i.discriminatorField]:qs.vg.isEqual(i.discriminatorValue)}]:n});return qs.vg.oneOf(r)}extendsFrom(){return!1}_locateBase(){}};a(Ks,"UnionTypeClass");var Bs=Ks;gt.prototype=Bs.prototype;gt[w]=Ll;function Ll(o,e){let i=class i{};a(i,"UnionClass");let t=i,r={...e,kind:f.UnionType.Kind,types:o};return Reflect.defineMetadata(d,r,t),t}a(Ll,"UnionTypeFactory");var Vs=Symbol("initializing"),Bi=class Bi{static async createDataType(e,t,r){e=e||new he({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[L];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 he({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,l]of n.entries())e.enter(`[${c}]`,()=>{if(!n.has(c))return;let O=this._createDataType(s,t,l);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[L])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 H(c);let l=Reflect.getMetadata(d,c)||c[d];if(!(l&&l.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(l.name,c)})}else{let p,c;for([c,p]of Object.entries(r))p=await H(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,i){var R;r=await H(r);let{importQueue:n,initArgsMap:s}=e,p=t.node.findDataType(r);if(p instanceof E)return p.name;let c,l,O;if(typeof r!="string"){let z=t.node.getDocument().types[vr].get(r);z&&(r=z)}if(typeof r=="string"){let y=r;if(r=(n==null?void 0:n.get(y))||((R=e.initArgsMap)==null?void 0:R.get(y)),!r)return e.addError(`Unknown data type (${y})`)}if(typeof r=="function"){if(c=Reflect.getMetadata(d,r),!c)return e.addError(`Class "${r.name}" doesn't have a valid DataType metadata`);l=r}else if(typeof r=="object"){if(c=r[d],c)O=r,c.kind!==f.EnumType.Kind&&(c=void 0);else if(f.isDataType(r))c=r,l=c.ctor;else if(l=Object.getPrototypeOf(r).constructor,c=l&&Reflect.getMetadata(d,l),c&&c.kind===f.SimpleType.Kind){let y=await this._importDataTypeArgs(e,t,c.name);return y?typeof y=="object"&&y.kind!==f.SimpleType.Kind?e.addError("Kind of base data type is not same"):{kind:f.SimpleType.Kind,name:void 0,base:y,properties:r}:void 0}}return c?e.enterAsync(c.name?`[${c.name}]`:"",async()=>{if(c.name){let z=s==null?void 0:s.get(c.name);if(z)return i&&z[Vs]?e.addError("Circular reference detected"):c.name}let y={kind:c.kind,name:c.name};y[Vs]=!0;try{if(y.name)if(n!=null&&n.has(y.name))s==null||s.set(c.name,y),y._instance={name:c.name},y[L]=t.node[L];else return e.addError(`Data Type (${y.name}) must be explicitly added to type list in the document scope`);switch(y.kind){case f.ArrayType.Kind:await this._prepareArrayTypeArgs(e,t,y,c);break;case f.ComplexType.Kind:y.ctor=l,await this._prepareComplexTypeArgs(e,t,y,c);break;case f.EnumType.Kind:y.instance=O,await this._prepareEnumTypeArgs(e,t,y,c);break;case f.MappedType.Kind:await this._prepareMappedTypeArgs(e,t,y,c);break;case f.MixinType.Kind:await this._prepareMixinTypeArgs(e,t,y,c);break;case f.SimpleType.Kind:y.ctor=l,await this._prepareSimpleTypeArgs(e,t,y,c);break;case f.UnionType.Kind:await this._prepareUnionTypeArgs(e,t,y,c);break;default:return e.addError(`Invalid data type kind ${c.kind}`)}}finally{y.name&&(n==null||n.delete(y.name)),delete y[Vs]}return n&&y.name?y.name:y}):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 _prepareArrayTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),await e.enterAsync(".type",async()=>{let n=await this._importDataTypeArgs(e,t,i.type);n&&(r.type=Me(n))})}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,!0);else if(r.ctor){let s=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(d,s)&&(n=await this._importDataTypeArgs(e,t,s))}n&&(r.base=Me(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=Me(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:Me(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=Me(n))}),r.attributes=I(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 l;if(i.base)l=await this._importDataTypeArgs(e,t,i.base,!0);else if(r.ctor){let O=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(d,O)&&(l=await this._importDataTypeArgs(e,t,O))}l&&(r.base=Me(l),r.ctor=r.ctor||l.ctor)}),r.properties=i.properties,r.nameMappings=i.nameMappings,!r.properties&&r.ctor&&(r.properties=new r.ctor),i.attributes&&(r.attributes=I(i.attributes)),typeof((n=r.properties)==null?void 0:n[_])=="function"&&(r.generateDecoder=(s=r.properties)==null?void 0:s[_].bind(r.properties)),typeof((p=r.properties)==null?void 0:p[g])=="function"&&(r.generateEncoder=(c=r.properties)==null?void 0:c[g].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,!0);else if(r.ctor){let s=Object.getPrototypeOf(r.ctor.prototype).constructor;Reflect.hasMetadata(d,s)&&(n=await this._importDataTypeArgs(e,t,s))}n&&(r.base=Me(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(Me(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(Me(c))})})}static _createDataType(e,t,r){var s;let i=t.node.findDataType(typeof r=="string"?r:r.name||"");if(i instanceof E)return i;let n=typeof r=="string"?(s=e.initArgsMap)==null?void 0:s.get(r):r;if(n){let p=n[L];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 f.ArrayType.Kind:return this._createArrayType(e,t,n);case f.ComplexType.Kind:return this._createComplexType(e,t,n);case f.EnumType.Kind:return this._createEnumType(e,t,n);case f.MappedType.Kind:return this._createMappedType(e,t,n);case f.MixinType.Kind:return this._createMixinType(e,t,n);case f.SimpleType.Kind:return this._createSimpleType(e,t,n);case f.UnionType.Kind:return this._createUnionType(e,t,n);default:break}}e.addError(`Unknown data type (${String(r)})`)}static _createArrayType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,de.prototype);let n=I(r);return r.type&&e.enter(".type",()=>{n.type=this._createDataType(e,t,r.type)}),de.apply(i,[t,n]),i}static _createComplexType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,ie.prototype);let n=I(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})})}),ie.apply(i,[t,n]),i}static _createEnumType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,te.prototype);let n=I(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),n.attributes=r.attributes,te.apply(i,[t,n]),i}static _createMappedType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,et.prototype);let n=I(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),et.apply(i,[t,n]),i}static _createMixinType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,Ot.prototype);let n=I(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 q))throw new TypeError(`"${c==null?void 0:c.kind}" can't be set as base for a "${n.kind}"`);n.types.push(c)})}),Ot.apply(i,[t,n]),i}static _createSimpleType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,u.prototype);let n=I(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,gt.prototype);let n=I(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)})}),gt.apply(i,[t,n]),i}};a(Bi,"DataTypeFactory");var M=Bi;function Me(o){return typeof o=="object"&&o.name?o.name:o}a(Me,"preferName");var zp=require("@jsopen/objects");var vp=require("@jsopen/objects");var Ws=class Ws extends A{constructor(e){super(e.owner),this.name="OpraApi",this.name=e.name,this.description=e.description}toJSON(e){return(0,vp.omitUndefined)({transport:this.transport,name:this.name,description:this.description})}async _initialize(e,t){if(!P.test(e.name))throw new TypeError(`Invalid api name (${e.name})`);this.name=e.name,this.description=e==null?void 0:e.description}};a(Ws,"ApiBase");var ve=Ws;var Fp=Rt(require("path-browserify"),1),Ip=require("@jsopen/objects"),Pp=require("ts-gems");var Tr=require("@jsopen/objects");var jl=/^(.*)(Controller)$/;function zs(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=jl.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(se,Object.getPrototypeOf(r));s&&(0,Tr.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(se,r);p&&(0,Tr.merge)(n,p,{deep:!0}),(0,Tr.merge)(n,{kind:f.HttpController.Kind,name:i,path:i,...(0,Tr.omit)(o,["kind","name","instance","endpoints","key"])},{deep:!0}),Reflect.defineMetadata(se,n,r);for(let l of e)l(n,r);Reflect.defineMetadata(se,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(zs,"HttpControllerDecoratorFactory");var ne=a(function(...o){var i;if(!this)return ne[w].apply(void 0,o);let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,Pp.asMutable)(this);r.kind=f.HttpController.Kind,r.types=r.node[L]=new W,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"),Ys=class Ys extends A{get isRoot(){return!(this.owner instanceof ne)}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 ne)return this.node.parent.element.findParameter(e,t)}getFullUrl(){return Fp.default.posix.join(this.owner instanceof ne?this.owner.getFullUrl():"/",this.path)}toString(){return`[HttpController ${this.name}]`}toJSON(e){let t=(0,Ip.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}[je](){return`[${Ce}HttpController${Ue+this.name+De}]`}};a(Ys,"HttpControllerClass");var Js=Ys;ne.prototype=Js.prototype;Object.assign(ne,zs);ne[w]=zs;var Qs=class Qs extends ve{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="http",this.controllers=new S,this.url=e.url}findController(e){return ne.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(Qs,"HttpApi");var tt=Qs;var Lp=Rt(require("@browsery/type-is"),1),kp=require("@jsopen/objects"),jp=require("ts-gems"),Ki=require("valgen");var Fe=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');A.call(this,o);let t=(0,jp.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 E?e.type:t.owner.node.getDataType(e.type)),t.isArray=e.isArray,t.designType=e.designType},"HttpMediaType"),Xs=class Xs extends A{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,kp.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,r){let i;return this.type?i=this.type.generateCodec(e,t,{designType:this.designType}):this.contentType&&(Array.isArray(this.contentType)?this.contentType:[this.contentType]).find(s=>Lp.default.is(s,["json"]))&&(i=this.node.findDataType("object").generateCodec(e,t,{...r,designType:this.designType})),i=i||Ki.isAny,this.isArray&&!(this.type instanceof de)?Ki.vg.isArray(i):i}};a(Xs,"HttpMediaTypeClass");var Gs=Xs;Fe.prototype=Gs.prototype;var Cp=require("@jsopen/objects");function rt(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(rt,"parseRegExp");var Zs=class Zs extends Fe{constructor(e,t){super(e,t),this.fieldName=t.fieldName instanceof RegExp?t.fieldName:t.fieldName.startsWith("/")?rt(t.fieldName):t.fieldName,this.fieldType=t.fieldType,this.required=t.required}toJSON(e){return(0,Cp.omitUndefined)({fieldName:this.fieldName,fieldType:this.fieldType,required:this.required,...super.toJSON(e)})}};a(Zs,"HttpMultipartField");var Zr=Zs;var Up=require("@jsopen/objects");var Cl=/^([1-6]\d{2})(?:-([1-6]\d{2}))?$/,Hs=class Hs{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=Cl.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(Hs,"HttpStatusRange");var Er=Hs;var ea=class ea extends Fe{constructor(e,t){super(e,t),this.parameters=[],this.statusCode=(Array.isArray(t.statusCode)?t.statusCode:[t.statusCode]).map(r=>typeof r=="object"?new Er(r.start,r.end):new Er(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,Up.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(ea,"HttpOperationResponse");var Hr=ea;var Bp=require("@jsopen/objects"),Kp=require("ts-gems"),Vp=require("valgen");var $p=require("@jsopen/objects"),qp=require("ts-gems");var wt=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');A.call(this,o);let t=(0,qp.asMutable)(this);t.description=e.description,t.type=e.type,t.examples=e.examples,t.isArray=e.isArray},"Value"),ra=class ra extends A{toJSON(e){let t=this.type?this.node.getDataTypeNameWithNs(this.type):void 0;return(0,$p.omitUndefined)({type:this.type?t||this.type.toJSON(e):"any",description:this.description,isArray:this.isArray,examples:this.examples})}};a(ra,"ValueClass");var ta=ra;wt.prototype=ta.prototype;var _r=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');wt.call(this,o,e);let t=(0,Kp.asMutable)(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?rt(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,t.designType=e.designType},"HttpParameter"),oa=class oa extends wt{toJSON(e){return(0,Bp.omitUndefined)({...super.toJSON(e),name:this.name,location:this.location,arraySeparator:this.arraySeparator,keyParam:this.keyParam,required:this.required,deprecated:this.deprecated})}generateCodec(e,t,r){var i;return((i=this.type)==null?void 0:i.generateCodec(e,t,{...r,designType:this.designType}))||Vp.vg.isAny()}};a(oa,"HttpParameterClass");var ia=oa;_r.prototype=ia.prototype;var Wp=require("@jsopen/objects");var na=class na extends A{constructor(e){super(e),this.content=[]}toJSON(e){return(0,Wp.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(na,"HttpRequestBody");var ei=na;var sa=class sa{static async createApi(e,t){let r=new tt(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,zp.isConstructor)(r)&&(r=t instanceof ne?r(t.instance):r()),r=await H(r);let i,n,s;if(typeof r=="function"){if(n=Reflect.getMetadata(se,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(se,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 ne(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 l={...c};await e.enterAsync(".type",async()=>{l.type=await M.resolveDataType(e,s,c.type)});let O=new _r(s,l);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 l=new D(s,{name:p,method:"GET"});await this._initHttpOperation(e,l,c),s.operations.set(p,l)})}),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 D.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 _r(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 Hr(t,{statusCode:s.statusCode});await this._initHttpOperationResponse(e,p,s),t.responses.push(p)})}),r.requestBody&&await e.enterAsync(".requestBody",async()=>{let n=new ei(t);await this._initHttpRequestBody(e,n,r.requestBody),t.requestBody=n}),t}static async _initHttpMediaType(e,t,r){Fe.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 Zr(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 _r(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 Fe(t,String(i));await this._initHttpMediaType(e,s,n),t.content.push(s)})})}};a(sa,"HttpApiFactory");var xr=sa;var Yp=require("@jsopen/objects"),Qp=require("super-fast-md5");var aa=class aa extends ve{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="mq",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(aa,"MQApi");var it=aa;var pa=class pa extends ve{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="ws",this.controllers=new S}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,controllers:{}};for(let r of this.controllers.values())t.controllers[r.name]=r.toJSON();return t}};a(pa,"WSApi");var ot=pa;var Jp,ca=class ca extends A{constructor(){super(null),this[Jp]=new WeakMap,this.id="",this.info={},this.references=new S,this.types=new W,this.node[L]=this.types,this.node.findDataType=this._findDataType.bind(this)}getDataTypeNs(e){let t=e instanceof E?this._findDataType(e.name||""):this._findDataType(e);if(t)return this[we].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 tt)return this.api}get mqApi(){if(this.api&&this.api instanceof it)return this.api}get wsApi(){if(this.api&&this.api instanceof ot)return this.api}getHttpApi(){if(!(this.api&&this.api instanceof tt))throw new TypeError("The document do not contains HttpApi instance");return this.api}getMqApi(){if(!(this.api&&this.api instanceof it))throw new TypeError("The document do not contains MQApi instance");return this.api}getWsApi(){if(!(this.api&&this.api instanceof ot))throw new TypeError("The document do not contains WSApi instance");return this.api}toJSON(){return this.export()}export(e){let t=(0,Yp.omitUndefined)({spec:f.SpecVersion,id:this.id,url:this.url,info:I(this.info,!0)});if(this.references.size){let r=0,i={};for(let[n,s]of this.references.entries())s[Ie]||(i[n]={id:s.id,url:s.url,info:I(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,Qp.md5)(JSON.stringify(e)),this[we]=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=Ro.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[we].set(i,p!=null&&p[Ie]?"":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[we].set(i,p!=null&&p[Ie]?"":s),i}}};a(ca,"ApiDocument");var nt=ca;Jp=we;function st(o,e,t){let r=qi(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"&&Mr(this,o,r)}}}[n];if(typeof o=="function"&&Sr(s.prototype,o.prototype),typeof o=="function"){let c=Reflect.getOwnMetadata(d,o);if(!c)throw new TypeError(`Class "${o}" doesn't have datatype metadata information`);if(!(c.kind===f.ComplexType.Kind||c.kind===f.MappedType.Kind||c.kind===f.MixinType.Kind))throw new TypeError(`Class "${o}" is not a ${f.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(d,p,s),typeof o=="function"&&et._applyMixin(s,o,{...e,isInheritedPredicate:r}),s}a(st,"createMappedClass");function $l(o,e,t){return st(o,{omit:e},t)}a($l,"OmitType");function ql(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return st(o,{partial:t},r)}a(ql,"PartialType");function Bl(o,e,t){return st(o,{pick:e},t)}a(Bl,"PickType");function Kl(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return st(o,{required:t},r)}a(Kl,"RequiredType");function Vl(o){return(e,t,r)=>{if(typeof t!="string")throw new TypeError("Un-named properties can not be decorated");if(!o&&(o=Reflect.getMetadata("design:paramtypes",e,t)[r],!o))throw new TypeError("Missing parameter type");let i=Reflect.getOwnMetadata(Dt,e,t);i||(i=[],Reflect.defineMetadata(Dt,i,e,t)),i.push({type:o,parameterIndex:r})}}a(Vl,"WsParam");var oc=require("@jsopen/objects");var Gp=require("@jsopen/objects"),Xp=require("ts-gems");var at=a(function(...o){var i;if(!this)return at[w].apply(void 0,o);let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,Xp.asMutable)(this);r.kind=f.MQController.Kind,r.types=r.node[L]=new W,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)},"MQController"),fa=class fa extends A{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 at)return this.node.parent.element.findHeader(e,t)}toString(){return`[MQController ${this.name}]`}toJSON(){let e=(0,Gp.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}[je](){return`[${Ce}MQController${Ue+this.name+De}]`}};a(fa,"MQControllerClass");var la=fa;at.prototype=la.prototype;Object.assign(at,hr);at[w]=hr;var Zp=require("@jsopen/objects"),Hp=require("ts-gems"),ec=require("valgen");var Or=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');wt.call(this,o,e);let t=(0,Hp.asMutable)(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?rt(e.name,{includeFlags:"i",excludeFlags:"m"}):e.name),t.deprecated=e.deprecated,t.required=e.required,t.designType=e.designType},"MQHeader"),ua=class ua extends wt{toJSON(){return(0,Zp.omitUndefined)({...super.toJSON(),name:this.name,required:this.required,deprecated:this.deprecated})}generateCodec(e,t,r){var i;return((i=this.type)==null?void 0:i.generateCodec(e,t,{...r,designType:this.designType}))||ec.vg.isAny()}};a(ua,"MQHeaderClass");var ma=ua;Or.prototype=ma.prototype;var tc=require("@jsopen/objects"),rc=require("ts-gems"),da=require("valgen");var gr=a(function(...o){if(!this){let[i,n]=o,s=[];return gr[w].call(void 0,s,i,n)}let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,rc.asMutable)(this);r.headers=[],r.types=r.node[L]=new W,r.name=t.name,r.description=t.description,r.channel=t.channel,t!=null&&t.type&&(r.type=(t==null?void 0:t.type)instanceof E?t.type:r.owner.node.getDataType(t.type)),t!=null&&t.keyType&&(r.keyType=(t==null?void 0:t.keyType)instanceof E?t.keyType:r.owner.node.getDataType(t.keyType)),r.designType=t.designType,r.keyDesignType=t.keyDesignType},"MQOperation"),ya=class ya extends A{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,tc.omitUndefined)({kind:f.MQOperation.Kind,description:this.description,channel:this.channel,type:this.type.name?this.type.name:this.type.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}generateCodec(e,t,r){var i;return((i=this.type)==null?void 0:i.generateCodec(e,t,{...r,designType:this.designType}))||da.vg.isAny()}generateKeyCodec(e,t,r){var i;return((i=this.keyType)==null?void 0:i.generateCodec(e,t,{...r,designType:this.keyDesignType}))||da.vg.isAny()}};a(ya,"MQOperationClass");var ha=ya;gr.prototype=ha.prototype;gr[w]=Gr;var ic=require("@jsopen/objects");var Ta=class Ta extends A{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.type?this.type=(t==null?void 0:t.type)instanceof E?t.type:this.owner.node.getDataType(t.type):this.type=this.owner.node.getDataType("any"),t!=null&&t.keyType&&(this.keyType=(t==null?void 0:t.keyType)instanceof E?t.keyType:this.owner.node.getDataType(t.keyType)),this.designType=t==null?void 0:t.designType,this.keyDesignType=t==null?void 0:t.keyDesignType}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,ic.omitUndefined)({description:this.description,channel:this.channel,type:this.type.name?this.type.name:this.type.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(Ta,"MQOperationResponse");var Vi=Ta;var Ea=class Ea{static async createApi(e,t){let r=new it(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,oc.isConstructor)(r)&&(r=r()),r=await H(r);let n,s,p;if(typeof r=="function"){if(s=Reflect.getMetadata(ae,r),!s)return e.addError(`Class "${r.name}" doesn't have a valid MQController metadata`);n=r}else n=Object.getPrototypeOf(r).constructor,s=Reflect.getMetadata(ae,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 MQController()`);if(i=i||s.name,!i)throw new TypeError("Controller name required");let c=new at(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 l=0;for(let O of s.headers)await e.enterAsync(`[${l++}]`,async()=>{let R={...O};await e.enterAsync(".type",async()=>{O.type&&(R.type=c.node.findDataType(O.type)),!R.type&&typeof O.type=="object"&&(R.type=await M.createDataType(e,c,O.type)),R.type||(R.type=c.node.getDataType("any"))});let y=new Or(c,R);c.headers.push(y)})}),s.operations&&await e.enterAsync(".operations",async()=>{for(let[l,O]of Object.entries(s.operations))await e.enterAsync(`[${l}]`,async()=>{let R=new gr(c,{...O,name:l,types:void 0,type:void 0,keyType:void 0});await this._initMQOperation(e,R,O),c.operations.set(R.name,R)})}),c}static async _initMQOperation(e,t,r){r.types&&await e.enterAsync(".types",async()=>{await M.addDataTypes(e,t,r.types)}),t.type=await M.resolveDataType(e,t,r.type),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 Or(t,s);t.headers.push(p)})}),r.response&&await e.enterAsync(".response",async()=>{let i=new Vi(t,{...r.response,type:void 0,keyType:void 0});await this._initMQOperationResponse(e,i,r.response),t.response=i})}static async _initMQOperationResponse(e,t,r){t.type=await M.resolveDataType(e,t,r.type),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 Or(t,s);t.headers.push(p)})})}};a(Ea,"MQApiFactory");var Wi=Ea;var cc=require("@jsopen/objects");var nc=require("@jsopen/objects"),sc=require("ts-gems");var At=a(function(...o){var i;if(!this)return At[w].apply(void 0,o);let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,sc.asMutable)(this);r.kind=f.WSController.Kind,r.types=r.node[L]=new W,r.operations=new S,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)},"WSController"),xa=class xa extends A{toString(){return`[WSController ${this.name}]`}toJSON(){let e=(0,nc.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()}return e}[je](){return`[${Ce}WSController${Ue+this.name+De}]`}};a(xa,"WSControllerClass");var _a=xa;At.prototype=_a.prototype;Object.assign(At,yr);At[w]=yr;var ac=require("@jsopen/objects"),pc=require("ts-gems");var wr=a(function(...o){if(!this){let[i,n]=o,s=[];return wr[w].call(void 0,s,i,n)}let[e,t]=o;if(A.call(this,e),!P.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,pc.asMutable)(this);r.types=r.node[L]=new W,r.name=t.name,r.description=t.description,t.event?this.event=t.event instanceof RegExp?t.event:t.event.startsWith("/")?rt(t.event):t.event:r.event=this.name,t!=null&&t.arguments?r.arguments=t.arguments.map(i=>({type:i.type instanceof E?i.type:r.owner.node.getDataType(i.type),parameterIndex:i.parameterIndex})):r.arguments=[],t!=null&&t.response&&(r.response=t.response instanceof E?t.response:r.owner.node.getDataType(t.response))},"WSOperation"),ga=class ga extends A{toJSON(){var e;return(0,ac.omitUndefined)({kind:f.WSOperation.Kind,description:this.description,event:this.event,arguments:(e=this.arguments)==null?void 0:e.map(t=>t.type.name?t.type.name:t.type.toJSON())})}};a(ga,"WSOperationClass");var Oa=ga;wr.prototype=Oa.prototype;wr[w]=Xr;var wa=class wa{static async createApi(e,t){let r=new ot(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,cc.isConstructor)(r)&&(r=r()),r=await H(r);let n,s,p;if(typeof r=="function"){if(s=Reflect.getMetadata(pe,r),!s)return e.addError(`Class "${r.name}" doesn't have a valid WSController metadata`);n=r}else n=Object.getPrototypeOf(r).constructor,s=Reflect.getMetadata(pe,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 WSController()`);if(i=i||s.name,!i)throw new TypeError("Controller name required");let c=new At(t,{...s,name:i,instance:p,ctor:n});return s.types&&await e.enterAsync(".types",async()=>{await M.addDataTypes(e,c,s.types)}),s.operations&&await e.enterAsync(".operations",async()=>{for(let[l,O]of Object.entries(s.operations))await e.enterAsync(`[${l}]`,async()=>{let R=Reflect.getMetadata(Dt,n.prototype,l),y=O;R&&(y={...y,arguments:R});let z=new wr(c,{...y,name:l,types:void 0,type:void 0,keyType:void 0,arguments:void 0,response:void 0});await this._initWSOperation(e,z,y),c.operations.set(l,z)})}),c}static async _initWSOperation(e,t,r){var i;r.types&&await e.enterAsync(".types",async()=>{await M.addDataTypes(e,t,r.types)}),(i=r.arguments)!=null&&i.length&&await e.enterAsync(".arguments",async()=>{var s;t.arguments=[];let n;for(n of r.arguments){let p={};typeof n=="object"&&n.type&&n.parameterIndex!==null?Object.assign(p,n):p.type=n;let c=await M.resolveDataType(e,t,p.type);(s=t.arguments)==null||s.push({type:c,parameterIndex:p.parameterIndex})}}),r.response&&await e.enterAsync(".response",async()=>{t.response=await M.resolveDataType(e,t,r.response)})}};a(wa,"WSApiFactory");var zi=wa;var Wl="https://oprajs.com/spec/v"+f.SpecVersion,Ji=class Ji{constructor(){this._allDocuments={}}static async createDocument(e,t){let r=new Ji,i=t instanceof he?t:new he(t);try{let n=new nt;if(await r.initDocument(n,i,e),i.error.details.length)throw i.error;return n}catch(n){try{n instanceof ht||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
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[Ie]){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||f.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 H(p),await t.enterAsync(`[${s}]`,async()=>{if(!P.test(s))throw new TypeError(`Invalid namespace (${s})`);if(p instanceof nt){e.references.set(s,p);return}let c=new nt;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 xr.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else if(i.api&&i.api.transport==="mq"){let s=await Wi.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else if(i.api&&i.api.transport==="ws"){let s=await zi.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:f.SpecVersion,url:Wl,info:{version:f.SpecVersion,title:"Opra built-in types",license:{url:"https://github.com/oprajs/opra/blob/main/LICENSE",name:"MIT"}},types:[...Object.values(ks),...Object.values(Ss)]},r=new nt;r[Ie]=!0;let i=Object.getPrototypeOf(BigInt(0)).constructor,n=Object.getPrototypeOf(Buffer.from([])),s=r.types[vr];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(Ji,"ApiDocumentFactory");var Aa=Ji;var Ra;(function(o){o.HttpApiFactory=xr,o.DataTypeFactory=M,o.MQOperationDecoratorFactory=Gr,o.MQControllerDecoratorFactory=hr,o.WSOperationDecoratorFactory=Xr,o.WSControllerDecoratorFactory=yr})(Ra||(Ra={}));var lc=require("uid");
|