@opra/common 1.19.3 → 1.19.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/browser/index.cjs +5 -5
  2. package/browser/index.mjs +5 -5
  3. package/cjs/document/api-document.js +11 -4
  4. package/cjs/document/constants.js +3 -1
  5. package/cjs/document/data-type/enum-type.js +4 -0
  6. package/cjs/document/decorators/{rpc-controller.decorator.js → mq-controller.decorator.js} +8 -8
  7. package/cjs/document/decorators/{rpc-operation.decorator.js → mq-operation.decorator.js} +6 -6
  8. package/cjs/document/decorators/ws-controller.decorator.js +51 -0
  9. package/cjs/document/decorators/ws-operation.decorator.js +43 -0
  10. package/cjs/document/factory/api-document.factory.js +3 -3
  11. package/cjs/document/factory/{rpc-api.factory.js → mq-api.factory.js} +28 -28
  12. package/cjs/document/factory/ws-api.factory.js +123 -0
  13. package/cjs/document/index.js +15 -8
  14. package/cjs/document/{rpc/rpc-api.js → mq/mq-api.js} +5 -5
  15. package/cjs/document/{rpc/rpc-controller.js → mq/mq-controller.js} +14 -14
  16. package/cjs/document/{rpc/rpc-header.js → mq/mq-header.js} +5 -5
  17. package/cjs/document/{rpc/rpc-operation-response.js → mq/mq-operation-response.js} +4 -4
  18. package/cjs/document/{rpc/rpc-operation.js → mq/mq-operation.js} +10 -10
  19. package/cjs/document/ws/ws-api.js +52 -0
  20. package/cjs/document/ws/ws-controller.js +78 -0
  21. package/cjs/document/ws/ws-operation.js +62 -0
  22. package/cjs/filter/antlr/OpraFilterLexer.js +361 -211
  23. package/cjs/filter/antlr/OpraFilterParser.js +174 -92
  24. package/cjs/schema/http/http-api.interface.js +2 -0
  25. package/cjs/schema/mq/mq-api.interface.js +2 -0
  26. package/cjs/schema/mq/mq-controller.interface.js +11 -0
  27. package/cjs/schema/mq/mq-header.interface.js +2 -0
  28. package/cjs/schema/mq/mq-operation.interface.js +7 -0
  29. package/cjs/schema/opra-schema.js +9 -3
  30. package/cjs/schema/ws/ws-api.interface.js +2 -0
  31. package/cjs/schema/ws/ws-controller.interface.js +11 -0
  32. package/cjs/schema/ws/ws-operation.interface.js +7 -0
  33. package/esm/document/api-document.js +11 -4
  34. package/esm/document/constants.js +2 -0
  35. package/esm/document/data-type/enum-type.js +4 -0
  36. package/esm/document/decorators/{rpc-controller.decorator.js → mq-controller.decorator.js} +8 -8
  37. package/esm/document/decorators/{rpc-operation.decorator.js → mq-operation.decorator.js} +6 -6
  38. package/esm/document/decorators/ws-controller.decorator.js +48 -0
  39. package/esm/document/decorators/ws-operation.decorator.js +40 -0
  40. package/esm/document/factory/api-document.factory.js +3 -3
  41. package/esm/document/factory/{rpc-api.factory.js → mq-api.factory.js} +27 -27
  42. package/esm/document/factory/ws-api.factory.js +119 -0
  43. package/esm/document/index.js +15 -8
  44. package/esm/document/{rpc/rpc-api.js → mq/mq-api.js} +3 -3
  45. package/esm/document/{rpc/rpc-controller.js → mq/mq-controller.js} +13 -13
  46. package/esm/document/{rpc/rpc-header.js → mq/mq-header.js} +4 -4
  47. package/esm/document/{rpc/rpc-operation-response.js → mq/mq-operation-response.js} +2 -2
  48. package/esm/document/{rpc/rpc-operation.js → mq/mq-operation.js} +9 -9
  49. package/esm/document/ws/ws-api.js +48 -0
  50. package/esm/document/ws/ws-controller.js +75 -0
  51. package/esm/document/ws/ws-operation.js +59 -0
  52. package/esm/filter/antlr/OpraFilterLexer.js +362 -212
  53. package/esm/filter/antlr/OpraFilterListener.js +1 -1
  54. package/esm/filter/antlr/OpraFilterParser.js +174 -92
  55. package/esm/schema/http/http-api.interface.js +1 -0
  56. package/esm/schema/mq/mq-api.interface.js +1 -0
  57. package/esm/schema/mq/mq-controller.interface.js +8 -0
  58. package/esm/schema/mq/mq-header.interface.js +1 -0
  59. package/esm/schema/mq/mq-operation.interface.js +4 -0
  60. package/esm/schema/opra-schema.js +9 -3
  61. package/esm/schema/ws/ws-api.interface.js +1 -0
  62. package/esm/schema/ws/ws-controller.interface.js +8 -0
  63. package/esm/schema/ws/ws-operation.interface.js +4 -0
  64. package/package.json +6 -6
  65. package/types/document/api-document.d.ts +5 -3
  66. package/types/document/constants.d.ts +2 -0
  67. package/types/document/decorators/mq-controller.decorator.d.ts +20 -0
  68. package/types/document/decorators/mq-operation.decorator.d.ts +32 -0
  69. package/types/document/decorators/ws-controller.decorator.d.ts +20 -0
  70. package/types/document/decorators/ws-operation.decorator.d.ts +24 -0
  71. package/types/document/factory/api-document.factory.d.ts +3 -2
  72. package/types/document/factory/mq-api.factory.d.ts +40 -0
  73. package/types/document/factory/ws-api.factory.d.ts +31 -0
  74. package/types/document/index.d.ts +20 -11
  75. package/types/document/mq/mq-api.d.ts +27 -0
  76. package/types/document/mq/mq-controller.d.ts +83 -0
  77. package/types/document/{rpc/rpc-header.d.ts → mq/mq-header.d.ts} +15 -15
  78. package/types/document/{rpc/rpc-operation-response.d.ts → mq/mq-operation-response.d.ts} +13 -13
  79. package/types/document/{rpc/rpc-operation.d.ts → mq/mq-operation.d.ts} +27 -27
  80. package/types/document/ws/ws-api.d.ts +26 -0
  81. package/types/document/ws/ws-controller.d.ts +79 -0
  82. package/types/document/ws/ws-operation.d.ts +70 -0
  83. package/types/exception/error-issue.d.ts +2 -0
  84. package/types/filter/antlr/OpraFilterLexer.d.ts +1 -1
  85. package/types/filter/antlr/OpraFilterListener.d.ts +28 -28
  86. package/types/filter/antlr/OpraFilterVisitor.d.ts +27 -27
  87. package/types/schema/api-document.interface.d.ts +4 -46
  88. package/types/schema/api.interface.d.ts +13 -0
  89. package/types/schema/http/http-api.interface.d.ts +12 -0
  90. package/types/schema/mq/mq-api.interface.d.ts +15 -0
  91. package/types/schema/mq/mq-controller.interface.d.ts +22 -0
  92. package/types/schema/{rpc/rpc-header.interface.d.ts → mq/mq-header.interface.d.ts} +2 -2
  93. package/types/schema/{rpc/rpc-operation.interface.d.ts → mq/mq-operation.interface.d.ts} +11 -11
  94. package/types/schema/opra-schema.d.ts +9 -3
  95. package/types/schema/types.d.ts +11 -0
  96. package/types/schema/ws/ws-api.interface.d.ts +11 -0
  97. package/types/schema/ws/ws-controller.interface.d.ts +20 -0
  98. package/types/schema/ws/ws-operation.interface.d.ts +15 -0
  99. package/cjs/schema/rpc/rpc-controller.interface.js +0 -11
  100. package/cjs/schema/rpc/rpc-operation.interface.js +0 -7
  101. package/esm/schema/rpc/rpc-controller.interface.js +0 -8
  102. package/esm/schema/rpc/rpc-operation.interface.js +0 -4
  103. package/types/document/decorators/rpc-controller.decorator.d.ts +0 -20
  104. package/types/document/decorators/rpc-operation.decorator.d.ts +0 -32
  105. package/types/document/factory/rpc-api.factory.d.ts +0 -40
  106. package/types/document/rpc/rpc-api.d.ts +0 -27
  107. package/types/document/rpc/rpc-controller.d.ts +0 -83
  108. package/types/schema/rpc/rpc-controller.interface.d.ts +0 -22
  109. /package/cjs/schema/{rpc/rpc-header.interface.js → api.interface.js} +0 -0
  110. /package/esm/schema/{rpc/rpc-header.interface.js → api.interface.js} +0 -0
package/browser/index.cjs CHANGED
@@ -3,10 +3,10 @@
3
3
  * http://www.panates.com
4
4
  *****************************************/
5
5
 
6
- "use strict";var Sp=Object.create;var hr=Object.defineProperty;var vp=Object.getOwnPropertyDescriptor;var Mp=Object.getOwnPropertyNames;var Fp=Object.getPrototypeOf,Ip=Object.prototype.hasOwnProperty;var a=(o,e)=>hr(o,"name",{value:e,configurable:!0});var yr=(o,e)=>{for(var t in e)hr(o,t,{get:e[t],enumerable:!0})},ta=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Mp(e))!Ip.call(o,i)&&i!==t&&hr(o,i,{get:()=>e[i],enumerable:!(r=vp(e,i))||r.enumerable});return o};var yt=(o,e,t)=>(t=o!=null?Sp(Fp(o)):{},ta(e||!o||!o.__esModule?hr(t,"default",{value:o,enumerable:!0}):t,o)),Pp=o=>ta(hr({},"__esModule",{value:!0}),o);var rl={};yr(rl,{AnyType:()=>yi,ApiBase:()=>mt,ApiDocument:()=>Ye,ApiDocumentFactory:()=>Hs,ApiField:()=>C,BUILTIN:()=>De,BadRequestError:()=>ji,Base64Type:()=>ci,BaseI18n:()=>na,BigintType:()=>Ei,BooleanType:()=>xi,CLASS_NAME_PATTERN:()=>$,ComplexType:()=>te,ConflictError:()=>Ui,DATATYPE_METADATA:()=>d,DECODER:()=>E,DECORATOR:()=>N,DataType:()=>x,DataTypeMap:()=>ie,DateTimeType:()=>Lt,DateTimeTypeTz:()=>jt,DateType:()=>It,DocumentElement:()=>b,DocumentInitContext:()=>ue,DocumentNode:()=>Ir,ENCODER:()=>g,EmailType:()=>ee,EnumType:()=>H,FailedDependencyError:()=>Bi,FieldPathType:()=>J,FieldsProjection:()=>Ne,FilterType:()=>je,ForbiddenError:()=>_r,HTTP_CONTROLLER_METADATA:()=>ne,HttpApi:()=>ut,HttpController:()=>oe,HttpHeaderCodes:()=>Ki,HttpMediaType:()=>Ae,HttpMultipartField:()=>$r,HttpOperation:()=>A,HttpOperationResponse:()=>Br,HttpParameter:()=>fr,HttpRequestBody:()=>qr,HttpStatusCode:()=>R,HttpStatusMessages:()=>$p,HttpStatusRange:()=>lr,I18n:()=>Tt,IntegerType:()=>ct,InternalServerError:()=>zi,IssueSeverity:()=>co,MappedType:()=>Je,MethodNotAllowedError:()=>Wi,MimeTypes:()=>D,MixinType:()=>lt,NAMESPACE_PATTERN:()=>lo,NotAcceptableError:()=>Gi,NotFoundError:()=>Xi,NullType:()=>wi,NumberType:()=>_e,ObjectIdType:()=>mi,ObjectType:()=>bi,OmitType:()=>Xc,OperationResult:()=>re,OpraDocumentError:()=>nt,OpraException:()=>de,OpraFilter:()=>qt,OpraHttpError:()=>S,OpraSchema:()=>m,PartialDateType:()=>Wt,PartialType:()=>Zc,PermissionError:()=>Hi,PickType:()=>Hc,RPC_CONTROLLER_METADATA:()=>se,RequiredType:()=>el,ResourceConflictError:()=>to,ResourceNotAvailableError:()=>io,ResponsiveMap:()=>M,RpcApi:()=>ht,RpcController:()=>Qe,RpcHeader:()=>ur,RpcOperation:()=>dr,SimpleType:()=>u,StringType:()=>ze,TimeType:()=>Gt,UnauthorizedError:()=>no,UnionType:()=>ft,UnprocessableEntityError:()=>ao,UrlType:()=>di,UuidType:()=>jr,classes:()=>ea,cloneObject:()=>F,getErrorStack:()=>qp,getStackFileName:()=>Bp,i18n:()=>Kr,inheritPropertyInitializers:()=>Or,isBlob:()=>Qp,isFormData:()=>Xp,isReadable:()=>Wp,isReadableStream:()=>Gp,isStream:()=>zr,isURL:()=>Zp,isWritable:()=>Yp,kCtorMap:()=>gr,kDataTypeMap:()=>B,kTypeNSMap:()=>xe,mergePrototype:()=>xr,parse:()=>uo,parseFieldsProjection:()=>mo,resolveThunk:()=>me,safeJsonStringify:()=>Jp,translate:()=>Up,uid:()=>Np.uid});module.exports=Pp(rl);var b2=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 Ea=require("@jsopen/objects"),_a=require("valgen");var sa=require("@jsopen/objects");var oa=yt(require("@browsery/i18next"),1),Er=require("fast-tokenizer");var Lp=/\\(.)/g,kp=/(\\)/g;function ra(o){return o.replace(kp,"\\\\")}a(ra,"escapeString");function ia(o){return o.replace(Lp,"$1")}a(ia,"unescapeString");var na=Object.getPrototypeOf(oa.default.createInstance()).constructor,Tr=class Tr extends na{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 Tr(e,t)}static createInstance(e,t){return new Tr(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,Er.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,Er.splitString)(n,{delimiters:"?",quotes:!0,brackets:{"{":"}"}}),p=ia(n.substring((s[0]||"").length+1));n=s[0]||"";let c=[],l=null;for(let w of(0,Er.tokenize)(n,{delimiters:",",quotes:!0,brackets:{"{":"}"}})){if(w.startsWith("{")){l=JSON.parse(w);continue}c.push(w)}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 jp}};a(Tr,"I18n");var Tt=Tr,jp=Tt.createInstance();var Cp=/(\))/g;function Up(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?"?"+ra(i).replace(Cp,"\\$1"):"")+")"}a(Up,"translate");var Kr=Tt.createInstance();Kr.init().catch(()=>{});var Li=class Li 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 Kr.deep(this.message)}toJSON(){var t;let e="production";return(0,sa.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
- `):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(Li,"OpraException");var de=Li;var ki=class ki extends de{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(ki,"OpraHttpError");var S=ki;var Ci=class Ci extends S{constructor(){super(...arguments),this.status=400}init(e){super.init({message:"Bad request",code:"BAD_REQUEST",...e})}};a(Ci,"BadRequestError");var ji=Ci;var $i=class $i extends S{constructor(){super(...arguments),this.status=409}init(e){super.init({message:"Conflict",code:"CONFLICT",...e})}};a($i,"ConflictError");var Ui=$i;var qi=class qi extends S{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(qi,"FailedDependencyError");var Bi=qi;var Ki;(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"})(Ki||(Ki={}));var R;(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"})(R||(R={}));var $p={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 D;(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"})(D||(D={}));var Vi=class Vi extends S{constructor(){super(...arguments),this.status=R.FORBIDDEN}init(e){super.init({message:"You are not authorized to perform this action",code:"FORBIDDEN",...e})}};a(Vi,"ForbiddenError");var _r=Vi;var Ji=class Ji extends S{constructor(){super(...arguments),this.status=500}init(e){super.init({message:"Internal server error",code:"INTERNAL_SERVER_ERROR",severity:"fatal",...e})}};a(Ji,"InternalServerError");var zi=Ji;var Yi=class Yi extends S{constructor(){super(...arguments),this.status=405}init(e){super.init({message:"Method not allowed",code:"METHOD_NOT_ALLOWED",...e})}};a(Yi,"MethodNotAllowedError");var Wi=Yi;var Qi=class Qi extends S{constructor(){super(...arguments),this.status=406}init(e){super.init({message:"Not Acceptable",code:"NOT_ACCEPTABLE",...e})}};a(Qi,"NotAcceptableError");var Gi=Qi;var Zi=class Zi extends S{constructor(){super(...arguments),this.status=404}init(e){super.init({message:"Not found",code:"NOT_FOUND",...e})}};a(Zi,"NotFoundError");var Xi=Zi;var eo=class eo extends _r{init(e){super.init({message:"You dont have permission for this operation",code:"PERMISSION_ERROR",...e})}};a(eo,"PermissionError");var Hi=eo;var ro=class ro extends S{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(ro,"ResourceConflictError");var to=ro;var oo=class oo extends S{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,R.UNPROCESSABLE_ENTITY)}};a(oo,"ResourceNotAvailableError");var io=oo;var so=class so extends S{constructor(){super(...arguments),this.status=401}init(e){super.init({message:"You don't have permission to perform this action",code:"UNAUTHORIZED",...e})}};a(so,"UnauthorizedError");var no=so;var po=class po extends S{constructor(){super(...arguments),this.status=422}init(e){super.init({message:"Unprocessable entity",severity:"error",code:"UNPROCESSABLE_ENTITY",...e})}};a(po,"UnprocessableEntityError");var ao=po;var co;(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"}})(co||(co={}));BigInt.prototype.toJSON||(BigInt.prototype.toJSON=function(){return this.toString()});RegExp.prototype.toJSON||(RegExp.prototype.toJSON=function(){return this.toString()});var aa=require("@jsopen/objects"),pa=yt(require("putil-promisify"),1);async function me(o){return o=pa.default.isPromise(o)?await o:o,typeof o=="function"?(0,aa.isConstructor)(o)?o:await o():o}a(me,"resolveThunk");var ca=/^(?:file:\/\/)?(.+)$/;function Bp(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?ca.exec(r):void 0;return i?i[1]:""}return""}a(Bp,"getStackFileName");function qp(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?ca.exec(r):void 0;return i?i[1]:""}return""}a(qp,"getErrorStack");function xr(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(xr,"mergePrototype");function Or(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(Or,"inheritPropertyInitializers");var wr=require("@jsopen/objects");var d=Symbol.for("opra.type.metadata"),ne=Symbol("opra.http-controller.metadata"),se=Symbol("opra.rpc-controller.metadata"),E=Symbol.for("opra.type.decoder"),g=Symbol("opra.type.encoder"),N=Symbol.for("DECORATOR"),De=Symbol.for("BUILTIN"),lo=/([a-z$_]\w+):(.+)/i,$=/^[a-z][\w_]*$/i,B=Symbol.for("kDataTypeMap"),gr=Symbol.for("kCtorMap"),xe=Symbol.for("kTypeNSMap");function F(o,e){return(0,wr.merge)({},o,{deep:a(t=>(0,wr.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,wr.isPlainObject)(i)||Array.isArray(i))}})}a(F,"cloneObject");var fo=require("fast-tokenizer");var Kp=/^([+-])?([a-z_$]\w*)$/i,Vp=/[^.]\(/g,ho=class ho{};a(ho,"FieldsProjection");var Ne=ho;(function(o){let t=class t{};a(t,"Item");let e=t;o.Item=e})(Ne||(Ne={}));function mo(o,e){let t=Array.isArray(o)?o:[o];if(!(t&&t.length))return;let r=new Ne;for(let i of t)e||(i=i.toLowerCase()),uo(i,r);return r}a(mo,"parseFieldsProjection");function uo(o,e){o=o.replace(Vp,r=>r.charAt(0)+"."+r.substring(1));let t=(0,fo.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,fo.splitString)(i,{delimiters:",",brackets:!0,keepBrackets:!0});for(let l of c)uo(l,e);continue}let n=Kp.exec(i);if(!n)throw new TypeError(`Invalid field path (${o})`);let s=n[2],p=e[s]=e[s]||new Ne.Item;n[1]&&(p.sign=n[1]),r===t.length-1?delete p.projection:e=p.projection=p.projection||new Ne}}a(uo,"parse");function zp(o){return o&&typeof o.forEach=="function"}a(zp,"isMap");var G=Symbol.for("kEntries"),he=Symbol.for("kKeyMap"),Vr=Symbol.for("kWellKnownKeys"),yo=Symbol.for("kOptions"),Et=Symbol.for("kSize"),To=class To{constructor(e,t){Object.defineProperty(this,Et,{value:0,enumerable:!1,writable:!0}),Object.defineProperty(this,G,{value:{},enumerable:!1,writable:!0}),Object.defineProperty(this,he,{value:{},enumerable:!1,writable:!0}),Object.defineProperty(this,Vr,{value:{},enumerable:!1,writable:!0});let r=!!(t!=null&&t.caseSensitive);Object.defineProperty(this,yo,{value:{caseSensitive:r},enumerable:!1}),t!=null&&t.wellKnownKeys&&t.wellKnownKeys.forEach(i=>{r?this[Vr][i]=i:this[Vr][i.toLowerCase()]=i}),this.clear(),e&&this.setAll(e)}get size(){return this[Et]}clear(){Object.keys(this[G]).forEach(e=>delete this[G][e]),Object.keys(this[he]).forEach(e=>delete this[he][e]),this[Et]=0}forEach(e,t){for(let[r,i]of this.entries())e.call(t,i,r,this)}get(e){if(e)return this[G][this._getStoringKey(e)]}has(e){return e?Object.prototype.hasOwnProperty.call(this[G],this._getStoringKey(e)):!1}set(e,t){let r=this._getStoringKey(e);e=this._getOriginalKey(e);let i=Object.prototype.hasOwnProperty.call(this[G],r);return this[G][r]=t,i||this[Et]++,this[he][r]=e,this}setAll(e){return zp(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[he])[Symbol.iterator]()}values(){return Object.values(this[G])[Symbol.iterator]()}entries(){return Object.entries(this[G])[Symbol.iterator]()}delete(e){let t=this._getStoringKey(e),r=Object.prototype.hasOwnProperty.call(this[G],t);return delete this[G][t],delete this[he][t],r||this[Et]--,r}sort(e){let t={...this[G]},r={...this[he]},i=Array.from(this.keys());e?i.sort(e):i.sort(),this.clear();for(let n of i)this[G][n]=t[n],this[he][n]=r[n];return this[Et]=i.length,this}toObject(){let e={};for(let[t,r]of Object.entries(this[he]))e[r]=this[G][t];return e}[Symbol.iterator](){return this.entries()}get[Symbol.toStringTag](){return"[Object ResponsiveMap]"}_getOriginalKey(e){if(!e||this[yo].caseSensitive)return e;let t=this._getStoringKey(e);return this[he][t]??this[Vr][t]??e}_getStoringKey(e){return this[yo].caseSensitive?e:e.toLowerCase()}};a(To,"ResponsiveMap");var M=To;function Jp(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(Jp,"safeJsonStringify");function zr(o){return o!==null&&typeof o=="object"&&typeof o.pipe=="function"}a(zr,"isStream");function Wp(o){return zr(o)&&typeof o._read=="function"&&typeof o._readableState=="object"}a(Wp,"isReadable");function Yp(o){return zr(o)&&typeof o._write=="function"}a(Yp,"isWritable");function Gp(o){return zr(o)&&typeof o.getReader=="function"&&typeof o.pipeThrough=="function"&&typeof o.pipeTo=="function"}a(Gp,"isReadableStream");function Qp(o){return o!==null&&typeof o=="object"&&typeof o.size=="number"&&typeof o.arrayBuffer=="function"&&typeof o.stream=="function"}a(Qp,"isBlob");function Xp(o){return o!==null&&typeof o.constructor=="function"&&o.constructor.name==="FormData"&&typeof o.append=="function"&&typeof o.getAll=="function"}a(Xp,"isFormData");function Zp(o){return o!==null&&typeof o=="object"&&typeof o.host=="string"&&typeof o.href=="string"}a(Zp,"isURL");var Eo=class Eo{constructor(){this.kind=Object.getPrototypeOf(this).constructor.name}};a(Eo,"Ast");var Rr=Eo;var _o=class _o extends Rr{};a(_o,"Expression");var K=_o;var xo=class xo extends K{};a(xo,"Term");var Ze=xo;var Oo=class Oo extends Ze{constructor(e){super(),this.value=e}toString(){return""+this.value}};a(Oo,"Literal");var I=Oo;var go=class go extends K{constructor(){super(),this.items=[]}append(e,t){return this.items.push(new Jr({op:e,expression:t})),this}toString(){return this.items.map((e,t)=>(t>0?e.op:"")+e.expression).join("")}};a(go,"ArithmeticExpression");var He=go,wo=class wo{constructor(e){Object.assign(this,e)}};a(wo,"ArithmeticExpressionItem");var Jr=wo;var Ro=class Ro extends Ze{constructor(e){super(),this.items=e}toString(){return"["+this.items.map(e=>""+e).join(",")+"]"}};a(Ro,"ArrayExpression");var Oe=Ro;var Hp=/\w/,bo=class bo extends K{constructor(e){super(),Object.assign(this,e)}toString(){return`${this.left}${Hp.test(this.op)?" "+this.op+" ":this.op}${this.right}`}};a(bo,"ComparisonExpression");var ye=bo;var Ao=class Ao 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(Ao,"LogicalExpression");var Te=Ao;var Do=class Do extends K{constructor(e){super(),this.expression=e}toString(){return`(${this.expression})`}};a(Do,"NegativeExpression");var br=Do;var No=class No extends K{constructor(e){super(),this.expression=e}toString(){return`(${this.expression})`}};a(No,"ParenthesizedExpression");var ge=No;var So=class So extends I{constructor(e){super(e)}};a(So,"BooleanLiteral");var et=So;var fa=require("putil-varhelpers");var vo=class vo extends TypeError{};a(vo,"SyntaxError");var Wr=vo,Mo=class Mo extends TypeError{constructor(e){super(typeof e=="string"?e:e==null?void 0:e.message),typeof e=="object"&&Object.assign(this,e)}};a(Mo,"FilterValidationError");var Ee=Mo,Fo=class Fo extends Error{constructor(e,t){super(e),Object.assign(this,t)}};a(Fo,"FilterParseError");var Yr=Fo;var ec=/'/g,tc=/(\\)/g,rc=/\\(.)/g;function ic(o){return o.replace(tc,"\\\\")}a(ic,"escapeString");function oc(o){return o.replace(rc,"$1")}a(oc,"unescapeString");function Se(o){return"'"+ic(o).replace(ec,"\\'")+"'"}a(Se,"quoteFilterString");function Ar(o){return o&&(o.startsWith("'")||o.startsWith('"'))&&o.endsWith(o.charAt(0))?oc(o.substring(1,o.length-1)):o}a(Ar,"unquoteFilterString");var la=new Date(0),Io=class Io extends I{constructor(e){if(super(""),e instanceof Date){this.value=e.toISOString();return}if(typeof e=="string"&&(0,fa.toDateDef)(e,la)!==la){this.value=e;return}throw new Ee(`Invalid date value "${e}"`)}toString(){return Se(this.value)}};a(Io,"DateLiteral");var ve=Io;var ua=require("putil-varhelpers");var ma=new Date(0),Po=class Po extends I{constructor(e){if(super(""),e instanceof Date){this.value=e.toISOString();return}if(typeof e=="string"&&(0,ua.toDateDef)(e,ma)!==ma){this.value=e;return}throw new Ee(`Invalid date-time value "${e}"`)}toString(){return Se(this.value)}};a(Po,"DateTimeLiteral");var Dr=Po;var Lo=class Lo extends I{constructor(){super(null),this.value=null}};a(Lo,"NullLiteral");var tt=Lo;var ko=class ko extends I{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 Ee(`Invalid number literal ${e}`)}toString(){return typeof this.value=="bigint"?(""+this.value).replace(/n$/,""):""+this.value}};a(ko,"NumberLiteral");var we=ko;var jo=class jo extends I{constructor(e){super(""+e)}};a(jo,"QualifiedIdentifier");var ae=jo;var Co=class Co extends I{constructor(e){super(""+e)}toString(){return Se(this.value)}};a(Co,"StringLiteral");var rt=Co;var nc=/^([01]\d|2[0-3]):([0-5]\d)(:[0-5]\d)?(\.(\d+))?$/,Uo=class Uo extends I{constructor(e){if(super(""),e instanceof Date){this.value=Gr(e.getHours())+":"+Gr(e.getMinutes())+(e.getSeconds()?":"+Gr(e.getSeconds()):"")+(e.getMilliseconds()?"."+Gr(e.getMilliseconds()):"");return}if(typeof e=="string"&&nc.test(e)){this.value=e;return}throw new Ee(`Invalid time value "${e}"`)}toString(){return Se(this.value)}};a(Uo,"TimeLiteral");var it=Uo;function Gr(o){return o<=9?"0"+o:""+o}a(Gr,"pad");var ai=require("@browsery/antlr4");var pe=require("@browsery/antlr4");var Y=class Y extends pe.Lexer{constructor(e){super(e),this._interp=new pe.LexerATNSimulator(this,Y._ATN,Y.DecisionsToDFA,new pe.PredictionContextCache)}get grammarFileName(){return"OpraFilter.g4"}get literalNames(){return Y.literalNames}get symbolicNames(){return Y.symbolicNames}get ruleNames(){return Y.ruleNames}get serializedATN(){return Y._serializedATN}get channelNames(){return Y.channelNames}get modeNames(){return Y.modeNames}static get _ATN(){return Y.__ATN||(Y.__ATN=new pe.ATNDeserializer().deserialize(Y._serializedATN)),Y.__ATN}};a(Y,"OpraFilterLexer");var y=Y;y.T__0=1;y.T__1=2;y.T__2=3;y.T__3=4;y.T__4=5;y.T__5=6;y.T__6=7;y.T__7=8;y.T__8=9;y.T__9=10;y.T__10=11;y.T__11=12;y.T__12=13;y.T__13=14;y.T__14=15;y.T__15=16;y.T__16=17;y.T__17=18;y.T__18=19;y.T__19=20;y.T__20=21;y.T__21=22;y.T__22=23;y.T__23=24;y.T__24=25;y.T__25=26;y.T__26=27;y.T__27=28;y.T__28=29;y.T__29=30;y.T__30=31;y.T__31=32;y.T__32=33;y.T__33=34;y.IDENTIFIER=35;y.POLAR_OP=36;y.DATE=37;y.DATETIME=38;y.TIME=39;y.NUMBER=40;y.INTEGER=41;y.STRING=42;y.WHITESPACE=43;y.EOF=pe.Token.EOF;y.channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];y.literalNames=[null,"'('","')'","'not'","'!'","'.'","'@'","'['","','","']'","'true'","'false'","'null'","'Infinity'","'infinity'","'+'","'-'","'*'","'/'","'<='","'<'","'>'","'>='","'='","'!='","'in'","'!in'","'like'","'!like'","'ilike'","'!ilike'","'and'","'or'","'&&'","'||'"];y.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"];y.modeNames=["DEFAULT_MODE"];y.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"];y._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];y.DecisionsToDFA=y._ATN.decisionToState.map((o,e)=>new pe.DFA(o,e));var da=y;var h=require("@browsery/antlr4");var _=class _ extends h.Parser{get grammarFileName(){return"OpraFilter.g4"}get literalNames(){return _.literalNames}get symbolicNames(){return _.symbolicNames}get ruleNames(){return _.ruleNames}get serializedATN(){return _._serializedATN}createFailedPredicateException(e,t){return new h.FailedPredicateException(this,e,t)}constructor(e){super(e),this._interp=new h.ParserATNSimulator(this,_._ATN,_.DecisionsToDFA,new h.PredictionContextCache)}root(){let e=new $o(this,this._ctx,this.state);this.enterRule(e,0,_.RULE_root);try{this.enterOuterAlt(e,1),this.state=34,this.expression(0),this.state=35,this.match(_.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 Z(this,this._ctx,r),n=i,s=2;this.enterRecursionRule(i,2,_.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 Ko(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 Bo(this,i),this._ctx=i,n=i,this.state=42,this.match(_.T__0),this.state=43,this.parenthesizedItem(),this.state=44,this.match(_.T__1);break;case 3:case 4:i=new qo(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 Nr(this,new Z(this,t,r)),this.pushNewRecursionContext(i,s,_.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 Qr(this,this._ctx,this.state);this.enterRule(e,4,_.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 Xr(this,this._ctx,this.state);this.enterRule(e,6,_.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 Zr(this,this._ctx,this.state);this.enterRule(e,8,_.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 Q(this,this._ctx,this.state);this.enterRule(e,10,_.RULE_value);try{switch(this.state=77,this._errHandler.sync(this),this._input.LA(1)){case 40:e=new Xo(this,e),this.enterOuterAlt(e,1),this.state=69,this.match(_.NUMBER);break;case 13:case 14:e=new Go(this,e),this.enterOuterAlt(e,2),this.state=70,this.infinity();break;case 10:case 11:e=new Qo(this,e),this.enterOuterAlt(e,3),this.state=71,this.boolean_();break;case 12:e=new zo(this,e),this.enterOuterAlt(e,4),this.state=72,this.null_();break;case 38:e=new Jo(this,e),this.enterOuterAlt(e,5),this.state=73,this.match(_.DATETIME);break;case 37:e=new Yo(this,e),this.enterOuterAlt(e,6),this.state=74,this.match(_.DATE);break;case 39:e=new Vo(this,e),this.enterOuterAlt(e,7),this.state=75,this.match(_.TIME);break;case 42:e=new Wo(this,e),this.enterOuterAlt(e,8),this.state=76,this.match(_.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 Sr(this,this._ctx,this.state);this.enterRule(e,12,_.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(_.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 Hr(this,this._ctx,this.state);this.enterRule(e,14,_.RULE_externalConstant);try{this.enterOuterAlt(e,1),this.state=89,this.match(_.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 _t(this,this._ctx,this.state);this.enterRule(e,16,_.RULE_identifier);try{this.enterOuterAlt(e,1),this.state=92,this.match(_.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 ei(this,this._ctx,this.state);this.enterRule(e,18,_.RULE_arrayValue);let t;try{this.enterOuterAlt(e,1);{for(this.state=94,this.match(_.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(_.T__7),this.state=97,this.value(),this.state=102,this._errHandler.sync(this),t=this._input.LA(1);this.state=103,this.match(_.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 ti(this,this._ctx,this.state);this.enterRule(e,20,_.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 ri(this,this._ctx,this.state);this.enterRule(e,22,_.RULE_null);try{this.enterOuterAlt(e,1),this.state=107,this.match(_.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 ii(this,this._ctx,this.state);this.enterRule(e,24,_.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 Zo(this,this._ctx,this.state);this.enterRule(e,26,_.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 oi(this,this._ctx,this.state);this.enterRule(e,28,_.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 ni(this,this._ctx,this.state);this.enterRule(e,30,_.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 Ho(this,this._ctx,this.state);this.enterRule(e,32,_.RULE_polarityOperator);try{this.enterOuterAlt(e,1),this.state=117,this.match(_.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 _.__ATN||(_.__ATN=new h.ATNDeserializer().deserialize(_._serializedATN)),_.__ATN}};a(_,"OpraFilterParser");var f=_;f.T__0=1;f.T__1=2;f.T__2=3;f.T__3=4;f.T__4=5;f.T__5=6;f.T__6=7;f.T__7=8;f.T__8=9;f.T__9=10;f.T__10=11;f.T__11=12;f.T__12=13;f.T__13=14;f.T__14=15;f.T__15=16;f.T__16=17;f.T__17=18;f.T__18=19;f.T__19=20;f.T__20=21;f.T__21=22;f.T__22=23;f.T__23=24;f.T__24=25;f.T__25=26;f.T__26=27;f.T__27=28;f.T__28=29;f.T__29=30;f.T__30=31;f.T__31=32;f.T__32=33;f.T__33=34;f.IDENTIFIER=35;f.POLAR_OP=36;f.DATE=37;f.DATETIME=38;f.TIME=39;f.NUMBER=40;f.INTEGER=41;f.STRING=42;f.WHITESPACE=43;f.EOF=h.Token.EOF;f.RULE_root=0;f.RULE_expression=1;f.RULE_comparisonLeft=2;f.RULE_comparisonRight=3;f.RULE_parenthesizedItem=4;f.RULE_value=5;f.RULE_qualifiedIdentifier=6;f.RULE_externalConstant=7;f.RULE_identifier=8;f.RULE_arrayValue=9;f.RULE_boolean=10;f.RULE_null=11;f.RULE_infinity=12;f.RULE_arithmeticOperator=13;f.RULE_comparisonOperator=14;f.RULE_logicalOperator=15;f.RULE_polarityOperator=16;f.literalNames=[null,"'('","')'","'not'","'!'","'.'","'@'","'['","','","']'","'true'","'false'","'null'","'Infinity'","'infinity'","'+'","'-'","'*'","'/'","'<='","'<'","'>'","'>='","'='","'!='","'in'","'!in'","'like'","'!like'","'ilike'","'!ilike'","'and'","'or'","'&&'","'||'"];f.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"];f.ruleNames=["root","expression","comparisonLeft","comparisonRight","parenthesizedItem","value","qualifiedIdentifier","externalConstant","identifier","arrayValue","boolean","null","infinity","arithmeticOperator","comparisonOperator","logicalOperator","polarityOperator"];f._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];f.DecisionsToDFA=f._ATN.decisionToState.map((o,e)=>new h.DFA(o,e));var ha=f,en=class en extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}expression(){return this.getTypedRuleContext(Z,0)}EOF(){return this.getToken(f.EOF,0)}get ruleIndex(){return f.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(en,"RootContext");var $o=en,tn=class tn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.RULE_expression}copyFrom(e){super.copyFrom(e)}};a(tn,"ExpressionContext");var Z=tn,rn=class rn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}parenthesizedItem(){return this.getTypedRuleContext(Zr,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(rn,"ParenthesizedExpressionContext");var Bo=rn,on=class on extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}expression(){return this.getTypedRuleContext(Z,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(on,"NegativeExpressionContext");var qo=on,nn=class nn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}comparisonLeft(){return this.getTypedRuleContext(Qr,0)}comparisonOperator(){return this.getTypedRuleContext(oi,0)}comparisonRight(){return this.getTypedRuleContext(Xr,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(nn,"ComparisonExpressionContext");var Ko=nn,sn=class sn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}expression_list(){return this.getTypedRuleContexts(Z)}expression(e){return this.getTypedRuleContext(Z,e)}logicalOperator(){return this.getTypedRuleContext(ni,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(sn,"LogicalExpressionContext");var Nr=sn,an=class an extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}qualifiedIdentifier(){return this.getTypedRuleContext(Sr,0)}get ruleIndex(){return f.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(an,"ComparisonLeftContext");var Qr=an,pn=class pn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}value(){return this.getTypedRuleContext(Q,0)}qualifiedIdentifier(){return this.getTypedRuleContext(Sr,0)}externalConstant(){return this.getTypedRuleContext(Hr,0)}arrayValue(){return this.getTypedRuleContext(ei,0)}get ruleIndex(){return f.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(pn,"ComparisonRightContext");var Xr=pn,cn=class cn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}expression(){return this.getTypedRuleContext(Z,0)}get ruleIndex(){return f.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(cn,"ParenthesizedItemContext");var Zr=cn,ln=class ln extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.RULE_value}copyFrom(e){super.copyFrom(e)}};a(ln,"ValueContext");var Q=ln,fn=class fn extends Q{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}TIME(){return this.getToken(f.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(fn,"TimeLiteralContext");var Vo=fn,mn=class mn extends Q{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}null_(){return this.getTypedRuleContext(ri,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(mn,"NullLiteralContext");var zo=mn,un=class un extends Q{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}DATETIME(){return this.getToken(f.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(un,"DateTimeLiteralContext");var Jo=un,dn=class dn extends Q{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}STRING(){return this.getToken(f.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(dn,"StringLiteralContext");var Wo=dn,hn=class hn extends Q{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}DATE(){return this.getToken(f.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(hn,"DateLiteralContext");var Yo=hn,yn=class yn extends Q{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}infinity(){return this.getTypedRuleContext(ii,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(yn,"InfinityLiteralContext");var Go=yn,Tn=class Tn extends Q{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}boolean_(){return this.getTypedRuleContext(ti,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(Tn,"BooleanLiteralContext");var Qo=Tn,En=class En extends Q{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}NUMBER(){return this.getToken(f.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(En,"NumberLiteralContext");var Xo=En,_n=class _n extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}identifier_list(){return this.getTypedRuleContexts(_t)}identifier(e){return this.getTypedRuleContext(_t,e)}get ruleIndex(){return f.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(_n,"QualifiedIdentifierContext");var Sr=_n,xn=class xn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}identifier(){return this.getTypedRuleContext(_t,0)}get ruleIndex(){return f.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(xn,"ExternalConstantContext");var Hr=xn,On=class On extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}IDENTIFIER(){return this.getToken(f.IDENTIFIER,0)}get ruleIndex(){return f.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(On,"IdentifierContext");var _t=On,gn=class gn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}value_list(){return this.getTypedRuleContexts(Q)}value(e){return this.getTypedRuleContext(Q,e)}get ruleIndex(){return f.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(gn,"ArrayValueContext");var ei=gn,wn=class wn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(wn,"BooleanContext");var ti=wn,Rn=class Rn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(Rn,"NullContext");var ri=Rn,bn=class bn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(bn,"InfinityContext");var ii=bn,An=class An extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(An,"ArithmeticOperatorContext");var Zo=An,Dn=class Dn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(Dn,"ComparisonOperatorContext");var oi=Dn,Nn=class Nn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(Nn,"LogicalOperatorContext");var ni=Nn,Sn=class Sn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}POLAR_OP(){return this.getToken(f.POLAR_OP,0)}get ruleIndex(){return f.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(Sn,"PolarityOperatorContext");var Ho=Sn;var ya=require("@browsery/antlr4");var vn=class vn extends I{constructor(e){super(""+e)}toString(){return"@"+super.toString()}};a(vn,"ExternalConstant");var si=vn;var Mn=class Mn extends ya.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 ge(t)}visitParenthesizedItem(e){return this.visit(e.expression())}visitNegativeExpression(e){let t=this.visit(e.expression());return new br(t)}visitComparisonExpression(e){return new ye({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 Nr&&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 Te({op:e.logicalOperator().getText(),items:t})}visitQualifiedIdentifier(e){return new ae(e.getText())}visitExternalConstant(e){return new si(e.identifier().getText())}visitNullLiteral(){return new tt}visitBooleanLiteral(e){return new et(e.getText()==="true")}visitNumberLiteral(e){return new we(e.getText())}visitStringLiteral(e){return new rt(Ar(e.getText()))}visitInfinityLiteral(){return new we(1/0)}visitDateLiteral(e){return new ve(Ar(e.getText()))}visitDateTimeLiteral(e){return new Dr(Ar(e.getText()))}visitTimeLiteral(e){return new it(Ar(e.getText()))}visitArrayValue(e){return new Oe(e.value_list().map(t=>this.visit(t)))}};a(Mn,"FilterTreeVisitor");var vr=Mn;var Ta=require("@browsery/antlr4");var Fn=class Fn extends Ta.ErrorListener{constructor(e){super(),this.errors=e}syntaxError(e,t,r,i,n,s){this.errors.push(new Yr(n,{recognizer:e,offendingSymbol:t,line:r,column:i,e:s}))}};a(Fn,"OpraErrorListener");var Mr=Fn;function In(o,e){let t=new ai.CharStream(o),r=new da(t),i=new ai.CommonTokenStream(r),n=new ha(i);n.buildParseTrees=!0;let s=[],p=new Mr(s);r.removeErrorListeners(),r.addErrorListener(p),n.removeErrorListeners(),n.addErrorListener(p);let c=n.root();if(s.length){let l=[];for(let w of s)l.push(w.message+(o.includes(`
8
- `)?" at line: "+w.line+" column: "+w.column:" at column: "+w.column));let O=new Wr(l.join(`
9
- `));throw O.errors=s,O}return e=e||new vr,e.visit(c)}a(In,"parse");var Pn=class Pn{constructor(e,t){if(this._rules=new M,this._decoderCache=new WeakMap,Object.defineProperty(this,"_rules",{value:new M(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,Ea.omitUndefined)({...t,operators:r}))}normalizeFilter(e,t,r){let i=typeof e=="string"?In(e):e;return this.normalizeFilterAst(i,[],t,r)}normalizeFilterAst(e,t,r,i){if(e instanceof ye){if(t.push(e),this.normalizeFilterAst(e.left,t,r),!(e.left instanceof ae&&e.left.field))throw new TypeError("Invalid filter query. Left side should be a data field.");let n=this._rules.get(e.left.value);if(!n)throw new de({message:`Field '${e.left.value}' is not available for filter operation`,code:"UNACCEPTED_FILTER_FIELD",details:{field:e.left.value}});if(n.operators&&!n.operators.includes(e.op))throw new de({message:`'${e.left.value}' field do not accept '${e.op}' filter operator`,code:"UNACCEPTED_FILTER_OPERATION",details:{field:e.left.value,operator:e.op}});return n.mappedField&&(e.left.value=n.mappedField),n.prepare&&(e.prepare=n.prepare),this.normalizeFilterAst(e.right,t,r),t.pop(),e}if(e instanceof Te)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof He)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n.expression,t,r)),t.pop(),e;if(e instanceof Oe)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof ge)return t.push(e),this.normalizeFilterAst(e.expression,t,r),t.pop(),e;if(e instanceof ae&&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 I){let n=t.findLastIndex(s=>s instanceof ye);if(n>=0){let s=t[n];if((e===s.right||t[n+1]===s.right)&&s&&s.left instanceof ae&&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=_a.isString:p=this._decoderCache.get(s.left.field),p||(p=s.left.field.type.generateCodec("decode",{scope:i,projection:"*",ignoreWriteonlyFields:!0,coerce:!0}),this._decoderCache.set(s.left.field,p)),e.value=p(e.value,{coerce:!0})}}}return e}toJSON(){return this._rules.toObject()}[Symbol.iterator](){return this._rules.entries()}};a(Pn,"FilterRules");var xt=Pn;var Ra=yt(require("object-hash"),1),ba=require("ts-gems"),V=require("valgen");var ga=require("@jsopen/objects"),wa=require("ts-gems");var xa=require("ts-gems"),Oa=require("uid");var m={};yr(m,{ComplexType:()=>Ot,EnumType:()=>gt,HttpController:()=>Fr,HttpOperation:()=>Ln,MappedType:()=>wt,MixinType:()=>Rt,RpcController:()=>kn,RpcOperation:()=>jn,SimpleType:()=>bt,SpecVersion:()=>Ed,UnionType:()=>At,isComplexType:()=>ac,isDataType:()=>sc,isEnumType:()=>fc,isHttpController:()=>uc,isMappedType:()=>lc,isMixinType:()=>cc,isSimpleType:()=>pc,isUnionType:()=>mc});var Ed="1.0";var Ot;(function(o){o.Kind="ComplexType"})(Ot||(Ot={}));var gt;(function(o){o.Kind="EnumType"})(gt||(gt={}));var wt;(function(o){o.Kind="MappedType"})(wt||(wt={}));var Rt;(function(o){o.Kind="MixinType"})(Rt||(Rt={}));var bt;(function(o){o.Kind="SimpleType"})(bt||(bt={}));var At;(function(o){o.Kind="UnionType"})(At||(At={}));var Fr;(function(o){o.Kind="HttpController"})(Fr||(Fr={}));var Ln;(function(o){o.Kind="HttpOperation"})(Ln||(Ln={}));var kn;(function(o){o.Kind="RpcController"})(kn||(kn={}));var jn;(function(o){o.Kind="RpcOperation"})(jn||(jn={}));function sc(o){return o&&typeof o=="object"&&(o.kind===Ot.Kind||o.kind===gt.Kind||o.kind===wt.Kind||o.kind===bt.Kind||o.kind===Rt.Kind||o.kind===At.Kind)}a(sc,"isDataType");function ac(o){return o&&typeof o=="object"&&o.kind===Ot.Kind}a(ac,"isComplexType");function pc(o){return o&&typeof o=="object"&&o.kind===bt.Kind}a(pc,"isSimpleType");function cc(o){return o&&typeof o=="object"&&o.kind===Rt.Kind}a(cc,"isMixinType");function lc(o){return o&&typeof o=="object"&&o.kind===wt.Kind}a(lc,"isMappedType");function fc(o){return o&&typeof o=="object"&&o.kind===gt.Kind}a(fc,"isEnumType");function mc(o){return o&&typeof o=="object"&&o.kind===At.Kind}a(mc,"isUnionType");function uc(o){return o&&typeof o=="object"&&o.kind===Fr.Kind}a(uc,"isHttpController");var Cn=class Cn{constructor(e,t){this.element=e,this.parent=t}getDocument(){if(this._document)return this._document;if(this.element[xe])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[B])==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}getComplexType(e,t){let r=this.getDataType(e,t);if(r.kind===m.ComplexType.Kind)return r;throw new TypeError(`Data type "${r.name}" is not a ComplexType`)}getSimpleType(e,t){let r=this.getDataType(e,t);if(r.kind===m.SimpleType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a SimpleType`)}getEnumType(e,t){let r=this.getDataType(e,t);if(r.kind===m.EnumType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a EnumType`)}getMappedType(e,t){let r=this.getDataType(e,t);if(r.kind===m.MappedType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MappedType`)}getMixinType(e,t){let r=this.getDataType(e,t);if(r.kind===m.MixinType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MixinType`)}getUnionType(e,t){let r=this.getDataType(e,t);if(r.kind===m.UnionType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MixinType`)}};a(Cn,"DocumentNode");var Ir=Cn;var b=a(function(o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let e=(0,xa.asMutable)(this);e.id=(0,Oa.uid)(16),Object.defineProperty(e,"node",{value:new Ir(this,o==null?void 0:o.node),enumerable:!1,writable:!0}),o&&Object.defineProperty(e,"owner",{value:o,enumerable:!1,writable:!0})},"DocumentElement"),$n=class $n{};a($n,"DocumentElementClass");var Un=$n;b.prototype=Un.prototype;var Dt=Symbol.for("nodejs.util.inspect.custom"),ot="\x1B[0m",Nt="\x1B[33m",St="\x1B[35m";function Pr(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(Pr,"testScopeMatch");var x=a(function(o,e,t){if(!this)throw new TypeError('"this" should be passed to call class constructor');if(e!=null&&e.name&&!$.test(e.name))throw new TypeError(`"${e.name}" is not a valid DataType name`);b.call(this,o);let r=(0,wa.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"),qn=class qn extends b{get embedded(){return!this.name}inScope(e){return Pr(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,ga.omitUndefined)({kind:this.kind,description:this.description,abstract:this.abstract,examples:this.examples})}toString(){return`[${Object.getPrototypeOf(this).constructor.name} ${this.name||"#Embedded"}]`}[Dt](){return`[${Nt+Object.getPrototypeOf(this).constructor.name+ot} ${St+this.name+ot}]`}};a(qn,"DataTypeClass");var Bn=qn;x.prototype=Bn.prototype;var vt=/^([+-])?([a-z$_][\w.]*)$/i,U=a(function(...o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;x.call(this,e,t,r);let i=(0,ba.asMutable)(this);i._fields=new M},"ComplexTypeBase"),Vn=class Vn extends x{fieldCount(e){if(e==="*")return this._fields.size;let t=0;for(let r of this.fields(e))t++;return t}fieldEntries(e){let t=this._fields.entries();if(e==="*")return t;let r;return{next(){for(;t&&(r=t.next(),!(r.done||r.value&&r.value[1].inScope(e))););return r.done?{done:r.done,value:void 0}:{done:r.done,value:[r.value[0],r.value[1].forScope(e)]}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}fields(e){let t=this.fieldEntries(e),r;return{next(){var i;return t?(r=t.next(),{done:r.done,value:(i=r.value)==null?void 0:i[1]}):{done:!0,value:void 0}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}fieldNames(e){if(e==="*")return this._fields.keys();let t=this.fieldEntries(e),r;return{next(){var i;return t?(r=t.next(),{done:r.done,value:(i=r.value)==null?void 0:i[0]}):{done:!0,value:void 0}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}findField(e,t){if(e.includes(".")){let i=this.parseFieldPath(e,{scope:t});if(i.length===0)throw new Error(`Field "${e}" does not exist in scope "${t}"`);let n=i.pop();return n==null?void 0:n.field}let r=this._fields.get(e);if(r&&r.inScope(t))return r.forScope(t)}getField(e,t){let r=this.findField(e,"*");if(r&&!r.inScope(t))throw new Error(`Field "${e}" does not exist in scope "${t||"null"}"`);if(!r)throw new Error(`Field (${e}) does not exist`);return r.forScope(t)}parseFieldPath(e,t){var w,T,X;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(j=>j.fieldName).join("."),"getStrPath");for(let j=0;j<s;j++){let z={fieldName:n[j],dataType:c};p.push(z);let Xe=vt.exec(n[j]);if(!Xe)throw new TypeError(`Invalid field name (${O()})`);if(Xe[1]&&((j===0&&l==="first"||l==="each")&&(z.sign=Xe[1]),z.fieldName=Xe[2]),r){if(r instanceof U){if(i=r.findField(z.fieldName,t==null?void 0:t.scope),i){z.fieldName=i.name,z.field=i,z.dataType=i.type,r=i.type;continue}if(((w=r.additionalFields)==null?void 0:w[0])===!0){z.additionalField=!0,z.dataType=c,r=void 0;continue}if(((T=r.additionalFields)==null?void 0:T[0])==="type"&&((X=r.additionalFields)==null?void 0:X[1])instanceof x){z.additionalField=!0,z.dataType=r.additionalFields[1],r=r.additionalFields[1];continue}throw new Error(`Unknown field (${p.map(Pi=>Pi.fieldName).join(".")})`)}throw new TypeError(`"${p.map(Pi=>Pi.fieldName).join(".")}" field is not a complex type and has no child fields`)}z.additionalField=!0,z.dataType=c}return p}normalizeFieldPath(e,t){return this.parseFieldPath(e,t).map(r=>(r.sign||"")+r.fieldName).join(".")}generateCodec(e,t){var p;let r=t!=null&&t.cache?t:{...t,projection:Array.isArray(t==null?void 0:t.projection)?mo(t.projection):t==null?void 0:t.projection,currentPath:""},i=this._generateSchema(e,r),n;if(this.additionalFields instanceof x)n=this.additionalFields.generateCodec(e,t);else if(typeof this.additionalFields=="boolean")n=this.additionalFields;else if(Array.isArray(this.additionalFields))if(this.additionalFields.length<2)n="error";else{let c=n[1];n=(0,V.validator)((l,O,w)=>O.fail(w,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 w=typeof n=="object"?((c=n[p])==null?void 0:c.projection)||"*":n,T=t.fieldCache.get(l),X=typeof w=="string"?w:(0,Ra.default)(w||{});T||(T={},t.fieldCache.set(l,T));let j=T[X];if(j===null)j=V.vg.isAny(),t.forwardCallbacks.add(()=>{j=T[X],r[p]=t.partial||!l.required?V.vg.optional(j):V.vg.required(j)});else if(!j){let z=a(()=>{T[X]=null;let Xe=this._generateFieldCodec(e,l,{...t,partial:t.partial==="deep"?t.partial:void 0,projection:w,currentPath:i+(i?".":"")+p});return T[X]=Xe,Xe},"defaultGenerator");t.fieldHook?j=t.fieldHook(l,t.currentPath,z):j=z()}r[p]=t.partial||!(l.required||j.id==="required")?V.vg.optional(j):j.id==="required"?j:V.vg.required(j)}return t.allowPatchOperators&&(r._$pull=V.vg.optional(V.vg.isAny()),r._$push=V.vg.optional(V.vg.isAny())),r}_generateFieldCodec(e,t,r){let i=t.type.generateCodec(e,{...r,level:r.level+1},{convertToNative:t.convertToNative});return t.fixed&&(i=V.vg.isEqual(t.fixed)),t.isArray&&(i=V.vg.isArray(i)),i}};a(Vn,"ComplexTypeBaseClass");var Kn=Vn;U.prototype=Kn.prototype;var M0=require("reflect-metadata"),pi=require("@jsopen/objects"),Aa=require("ts-gems"),Da=require("valgen");var H=a(function(...o){if(!this)return H[N].apply(void 0,o);let[e,t,r]=o;x.call(this,e,t,r);let i=(0,Aa.asMutable)(this);if(i.kind=m.EnumType.Kind,t.base){if(!(t.base instanceof H))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=F(t.attributes||{}),i.attributes=i.base?F(i.base.attributes):{};for(let[n,s]of Object.entries(i.ownAttributes))i.attributes[n]=s},"EnumType"),zn=class zn extends x{extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof H?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}generateCodec(){return Da.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,pi.omitUndefined)({...t,kind:this.kind,base:r,attributes:F(this.ownAttributes)})}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(zn,"EnumTypeClass");var Lr=zn;H.prototype=Lr.prototype;Object.assign(H,Lr);function dc(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;let c=(l=r==null?void 0:r.meanings)==null?void 0:l[p];i[p]=(0,pi.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;let c=(l=r==null?void 0:r.meanings)==null?void 0:l[p];i[o[p]]=(0,pi.omitUndefined)({alias:p,description:c})})}let s={kind:m.EnumType.Kind,attributes:i,base:r==null?void 0:r.base,name:r==null?void 0:r.name,description:r==null?void 0:r.description};return Object.defineProperty(o,d,{value:s,enumerable:!1,configurable:!0,writable:!0}),n}a(dc,"EnumTypeFactory");H.prototype=Lr.prototype;H[N]=dc;var fs={};yr(fs,{Base64Type:()=>ci,DateTimeType:()=>Lt,DateTimeTypeTz:()=>jt,DateType:()=>It,EmailType:()=>ee,FieldPathType:()=>J,FilterType:()=>je,ObjectIdType:()=>mi,OperationResult:()=>re,PartialDateType:()=>Wt,TimeType:()=>Gt,UrlType:()=>di,UuidType:()=>jr});var li=require("tslib"),Me=require("valgen");var q0=require("reflect-metadata"),Wn=require("@jsopen/objects"),Sa=require("ts-gems"),Yn=require("valgen");function Jn(o){let e=[],t=a(function(r){let i;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!$.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=m.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(Jn,"SimpleTypeDecoratorFactory");function Na(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=m.SimpleType.Kind,r.attributes=r.attributes||{},r.attributes[t]={format:(o==null?void 0:o.format)||n,description:o==null?void 0:o.description,deprecated:o==null?void 0:o.deprecated},Reflect.defineMetadata(d,r,e.constructor)}}a(Na,"AttributeDecoratorFactory");var u=a(function(...o){var n,s;if(!this)return u[N](...o);let[e,t,r]=o;x.call(this,e,t,r);let i=(0,Sa.asMutable)(this);if(i.kind=m.SimpleType.Kind,t.base){if(!(t.base instanceof u))throw new TypeError(`"${t.base.kind}" can't be set as base for a "${this.kind}"`);i.base=t.base}if(i.properties=t.properties,i.ownNameMappings={...t.nameMappings},i.nameMappings={...(n=i.base)==null?void 0:n.nameMappings,...t.nameMappings},i.ownAttributes=F(t.attributes||{}),i.attributes=i.base?F(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"),Qn=class Qn extends x{extend(e){return Object.setPrototypeOf(e,this),e}extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof u?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}generateCodec(e,t,r){let i={...this.properties,...r};if(e==="decode"){let s=this;for(;s;){if(s._generateDecoder)return s._generateDecoder(i,(t==null?void 0:t.documentElement)||this.owner,t==null?void 0:t.scope);s=this.base}return Yn.isAny}let n=this;for(;n;){if(n._generateEncoder)return n._generateEncoder(i,(t==null?void 0:t.documentElement)||this.owner,t==null?void 0:t.scope);n=this.base}return Yn.isAny}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0,i=(0,Wn.omitUndefined)(this.ownAttributes),n;this.properties&&typeof this.properties.toJSON=="function"?n=this.properties.toJSON(this.properties,this.owner,e):n=this.properties?F(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,Wn.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(Qn,"SimpleTypeClass");var Gn=Qn;u.prototype=Gn.prototype;Object.assign(u,Jn);u[N]=Jn;u.Attribute=Na;var Mt,ci=(Mt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=Me.vg.isBase64({coerce:!0});return e.convertToNative?Me.vg.pipe([t,hc],{coerce:!0}):t}[g](){return yc}},a(Mt,"Base64Type"),Mt);ci=(0,li.__decorate)([u({name:"base64",description:"A stream of bytes, base64 encoded",nameMappings:{js:"string",json:"string"}}),(0,li.__metadata)("design:paramtypes",[Object])],ci);var hc=(0,Me.validator)(o=>Buffer.from(o,"base64")),yc=(0,Me.validator)(o=>Buffer.isBuffer(o)?o.toString("base64"):(0,Me.isBase64)(o));var Fe=require("tslib"),Re=require("valgen");var va=Re.vg.isDateString({precisionMin:"day",trim:"day",coerce:!0}),Tc=Re.vg.isDate({trim:"day",coerce:!0}),Ft,It=(Ft=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t;e.convertToNative?t=Tc:t=va;let r=[t];return e.minValue!=null&&r.push(Re.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Re.vg.isLte(t(e.maxValue))),r.length>0?Re.vg.pipe(r,{returnIndex:0}):t}[g](e){let t=va,r=[t];return e.minValue!=null&&r.push(Re.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Re.vg.isLte(t(e.maxValue))),r.length>0?Re.vg.pipe(r,{returnIndex:0}):t}},a(Ft,"DateType"),Ft);(0,Fe.__decorate)([u.Attribute({description:"Minimum value"}),(0,Fe.__metadata)("design:type",String)],It.prototype,"minValue",void 0);(0,Fe.__decorate)([u.Attribute({description:"Maximum value"}),(0,Fe.__metadata)("design:type",String)],It.prototype,"maxValue",void 0);It=(0,Fe.__decorate)([u({name:"date",description:"A date without time",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18","Full date value"),(0,Fe.__metadata)("design:paramtypes",[Object])],It);var Ie=require("tslib"),be=require("valgen");var Ma=be.vg.isDateString({precisionMin:"day",trim:"tz",coerce:!0}),Ec=be.vg.isDate({coerce:!0}),Pt,Lt=(Pt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t;e.convertToNative?t=Ec:t=Ma;let 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=Ma,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(Pt,"DateTimeType"),Pt);(0,Ie.__decorate)([u.Attribute({description:"Minimum value"}),(0,Ie.__metadata)("design:type",String)],Lt.prototype,"minValue",void 0);(0,Ie.__decorate)([u.Attribute({description:"Maximum value"}),(0,Ie.__metadata)("design:type",String)],Lt.prototype,"maxValue",void 0);Lt=(0,Ie.__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,Ie.__metadata)("design:paramtypes",[Object])],Lt);var Le=require("tslib"),Pe=require("valgen");var Fa=Pe.vg.isDateString({precisionMin:"tz",coerce:!0}),kt,jt=(kt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=Fa,r=[t];return e.minValue!=null&&r.push(Pe.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Pe.vg.isLte(t(e.maxValue))),r.length>0?Pe.vg.pipe(r,{returnIndex:0}):t}[g](e){let t=Fa,r=[t];return e.minValue!=null&&r.push(Pe.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Pe.vg.isLte(t(e.maxValue))),r.length>0?Pe.vg.pipe(r,{returnIndex:0}):t}},a(kt,"DateTimeTypeTz"),kt);(0,Le.__decorate)([u.Attribute({description:"Minimum value"}),(0,Le.__metadata)("design:type",String)],jt.prototype,"minValue",void 0);(0,Le.__decorate)([u.Attribute({description:"Maximum value"}),(0,Le.__metadata)("design:type",String)],jt.prototype,"maxValue",void 0);jt=(0,Le.__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,Le.__metadata)("design:paramtypes",[Object])],jt);var L=require("tslib"),Xn=require("valgen");var Ct,ee=(Ct=class{constructor(e){e&&Object.assign(this,e)}[E](e){return Xn.vg.isEmail({...e,coerce:!0})}[g](e){return Xn.vg.isEmail({...e,coerce:!0})}},a(Ct,"EmailType"),Ct);(0,L.__decorate)([u.Attribute({description:"If set to `true`, the validator will also match `Display Name <email-address>",default:!1}),(0,L.__metadata)("design:type",Boolean)],ee.prototype,"allowDisplayName",void 0);(0,L.__decorate)([u.Attribute({description:"If set to `true`, the validator will reject strings without the format `Display Name <email-address>",default:!1}),(0,L.__metadata)("design:type",Boolean)],ee.prototype,"requireDisplayName",void 0);(0,L.__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,L.__metadata)("design:type",Boolean)],ee.prototype,"utf8LocalPart",void 0);(0,L.__decorate)([u.Attribute({description:"If set to `true`, the validator will not check for the standard max length of an email",default:!1}),(0,L.__metadata)("design:type",Boolean)],ee.prototype,"ignoreMaxLength",void 0);(0,L.__decorate)([u.Attribute({description:"If set to `true`, the validator will allow IP addresses in the host part",default:!1}),(0,L.__metadata)("design:type",Boolean)],ee.prototype,"allowIpDomain",void 0);(0,L.__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,L.__metadata)("design:type",Boolean)],ee.prototype,"domainSpecificValidation",void 0);(0,L.__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,L.__metadata)("design:type",Array)],ee.prototype,"hostBlacklist",void 0);(0,L.__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,L.__metadata)("design:type",Array)],ee.prototype,"hostWhitelist",void 0);(0,L.__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,L.__metadata)("design:type",String)],ee.prototype,"blacklistedChars",void 0);ee=(0,L.__decorate)([u({name:"email",description:"An email value",nameMappings:{js:"string",json:"string"}}).Example("some.body@example.com"),(0,L.__metadata)("design:paramtypes",[Object])],ee);var ke=require("tslib"),$t=require("valgen");var Ut,J=(Ut=class{constructor(e){e&&Object.assign(this,e)}[E](e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),n=e.allowSigns,s=(0,$t.validator)("decodeFieldPath",p=>i.normalizeFieldPath(p,{allowSigns:n,scope:r}));return $t.vg.pipe([$t.toString,s])}[g](e,t,r){return this[E](e,t,r)}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");x.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),allowSigns:e.allowSigns}}},a(Ut,"FieldPathType"),Ut);(0,ke.__decorate)([u.Attribute({description:"Data type which field belong to"}),(0,ke.__metadata)("design:type",Object)],J.prototype,"dataType",void 0);(0,ke.__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,ke.__metadata)("design:type",String)],J.prototype,"allowSigns",void 0);J=(0,ke.__decorate)([u({name:"fieldpath",description:"Field path",nameMappings:{js:"string",json:"string"}}),(0,ke.__metadata)("design:paramtypes",[Object])],J);var Ce=require("tslib"),Zn=require("valgen");var qt={};yr(qt,{$and:()=>xc,$arithmetic:()=>Cc,$array:()=>Ia,$date:()=>Oc,$eq:()=>bc,$field:()=>Rc,$gt:()=>Dc,$gte:()=>Nc,$ilike:()=>Lc,$in:()=>Mc,$like:()=>Ic,$lt:()=>Sc,$lte:()=>vc,$ne:()=>Ac,$notILike:()=>kc,$notIn:()=>Fc,$notLike:()=>Pc,$number:()=>wc,$or:()=>_c,$paren:()=>jc,$time:()=>gc,ArithmeticExpression:()=>He,ArithmeticExpressionItem:()=>Jr,ArrayExpression:()=>Oe,Ast:()=>Rr,BooleanLiteral:()=>et,ComparisonExpression:()=>ye,DateLiteral:()=>ve,DateTimeLiteral:()=>Dr,Expression:()=>K,FilterTreeVisitor:()=>vr,Literal:()=>I,LogicalExpression:()=>Te,NegativeExpression:()=>br,NullLiteral:()=>tt,NumberLiteral:()=>we,OpraErrorListener:()=>Mr,ParenthesizedExpression:()=>ge,QualifiedIdentifier:()=>ae,StringLiteral:()=>rt,Term:()=>Ze,TimeLiteral:()=>it,parse:()=>In});function _c(...o){return new Te({op:"or",items:o})}a(_c,"$or");function xc(...o){return new Te({op:"and",items:o})}a(xc,"$and");function Oc(o){return new ve(o)}a(Oc,"$date");function gc(o){return new it(o)}a(gc,"$time");function wc(o){return new we(o)}a(wc,"$number");function Ia(...o){return new Oe(o.map(fi))}a(Ia,"$array");function Rc(o){return new ae(o)}a(Rc,"$field");function bc(o,e){return ce("=",o,e)}a(bc,"$eq");function Ac(o,e){return ce("!=",o,e)}a(Ac,"$ne");function Dc(o,e){return ce(">",o,e)}a(Dc,"$gt");function Nc(o,e){return ce(">=",o,e)}a(Nc,"$gte");function Sc(o,e){return ce("<",o,e)}a(Sc,"$lt");function vc(o,e){return ce("<=",o,e)}a(vc,"$lte");function Mc(o,e){return ce("in",o,e)}a(Mc,"$in");function Fc(o,e){return ce("!in",o,e)}a(Fc,"$notIn");function Ic(o,e){return ce("like",o,e)}a(Ic,"$like");function Pc(o,e){return ce("!like",o,e)}a(Pc,"$notLike");function Lc(o,e){return ce("ilike",o,e)}a(Lc,"$ilike");function kc(o,e){return ce("!ilike",o,e)}a(kc,"$notILike");function jc(o){return new ge(o)}a(jc,"$paren");function Cc(o){let e=new He;return e.add=t=>(e.append("+",Bt(t)),e),e.sub=t=>(e.append("-",Bt(t)),e),e.mul=t=>(e.append("*",Bt(t)),e),e.div=t=>(e.append("/",Bt(t)),e),e.append("+",fi(o)),e}a(Cc,"$arithmetic");function ce(o,e,t){let r=typeof e=="string"?new ae(e):fi(e),i=fi(t);return new ye({op:o,left:r,right:i})}a(ce,"comparisonExpression");var fi=a(o=>Array.isArray(o)?Ia(...o.map(Bt)):Bt(o),"wrapEntryValue"),Bt=a(o=>o instanceof K?o:typeof o=="boolean"?new et(o):typeof o=="number"||typeof o=="bigint"?new we(o):o==null?new tt:o instanceof Date?new ve(o):new rt(""+o),"_wrapEntryValue");var Kt,je=(Kt=class{constructor(e){e&&Object.assign(this,e)}[E](e,t){let r=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),i=e.rules?new xt(e.rules):void 0;return Uc(r,i)}[g](){return $c}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");x.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),rules:e.rules}}},a(Kt,"FilterType"),Kt);(0,Ce.__decorate)([u.Attribute({description:"Data type which filtering fields belong to"}),(0,Ce.__metadata)("design:type",Object)],je.prototype,"dataType",void 0);(0,Ce.__decorate)([u.Attribute({description:"Stringified JSON object defines filtering rules",format:"string"}),(0,Ce.__metadata)("design:type",Object)],je.prototype,"rules",void 0);je=(0,Ce.__decorate)([u({name:"filter",description:"A query filter",nameMappings:{js:"object",json:"string"}}),(0,Ce.__metadata)("design:paramtypes",[Object])],je);var Uc=a((o,e,t)=>(0,Zn.validator)("decodeFilter",(r,i,n)=>{if(typeof r=="string")try{let s=qt.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"),$c=(0,Zn.validator)("encodeFilter",(o,e,t)=>{if(o instanceof qt.Ast)return o.toString();e.fail(t,"Not a valid filter expression",o)});var ui=require("tslib"),Hn=require("valgen");var Vt,mi=(Vt=class{constructor(e){e&&Object.assign(this,e)}[E](){return Hn.vg.isObjectId({coerce:!0})}[g](){return Hn.vg.isObjectId({coerce:!0})}},a(Vt,"ObjectIdType"),Vt);mi=(0,ui.__decorate)([u({name:"ObjectId",description:"A MongoDB ObjectID value",nameMappings:{js:"object",json:"string"}}),(0,ui.__metadata)("design:paramtypes",[Object])],mi);var k=require("tslib");var ts=require("@jsopen/objects"),La=require("ts-gems");var Pa=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=m.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,Pa.omitUndefined)({...i,scopePattern:Array.isArray(r)?r:[r],type:void 0,isArray:void 0,isNestedEntity:void 0}))}),t),t}a(es,"ApiFieldDecoratorFactory");var C=a(function(...o){if(!this){let[n]=o;return C[N](n)}let[e,t]=o;b.call(this,e);let r=(0,La.asMutable)(this);r.name=t.name;let i=t.origin||e;if(!(i instanceof U))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.convertToNative=t.convertToNative??(r.type.kind==="SimpleType"&&t.designType!==String&&typeof t.designType=="function"&&t.designType!==Object),r.override=t.override},"ApiField"),is=class is extends b{inScope(e){return Pr(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(Pr(e,r.scopePattern)){t=(0,ts.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,ts.omitUndefined)({type:t||((r=this.type)==null?void 0:r.toJSON(e)),description:this.description,isArray:this.isArray||void 0,isNestedEntity:this.isNestedEntity||void 0,default:this.default,fixed:this.fixed,required:this.required||void 0,exclusive:this.exclusive||void 0,localization:this.localization||void 0,keyField:this.keyField||void 0,deprecated:this.deprecated||void 0,readonly:this.readonly||void 0,writeonly:this.writeonly||void 0,examples:this.examples})}};a(is,"ApiFieldClass");var rs=is;C.prototype=rs.prototype;Object.assign(C,es);C[N]=es;var py=require("reflect-metadata"),ja=require("@jsopen/objects"),Ca=require("ts-gems");var os=class os extends de{constructor(){super(""),this.details=[]}add(e){return this.details.push(e),this}};a(os,"OpraDocumentError");var nt=os;var ns=class ns{constructor(e){this.path="",this.error=new nt,this.showErrorDetails=!0,this.maxErrors=(e==null?void 0:e.maxErrors)||0,this.error.message=""}addError(e){if(!this.error.details.length)if(e instanceof Error)this.error.stack=e.stack;else{let t=new Error;Error.captureStackTrace(t,this.addError),this.error.stack=t.stack}if(this.error.add({message:typeof e=="string"?e:e.message,path:this.path,...typeof e=="object"?e:void 0}),this.error.details.length>=this.maxErrors)throw this.error}enter(e,t){let r=this.path;this.path=this.path+e;try{return t()}catch(i){i!==this.error&&this.addError(i)}finally{this.path=r}}async enterAsync(e,t){let r=this.path;this.path=this.path+e;try{return await t()}catch(i){i!==this.error&&this.addError(i)}finally{this.path=r}}extend(e){let t={...e};return Object.setPrototypeOf(t,this),t}};a(ns,"DocumentInitContext");var ue=ns;var ka=require("@jsopen/objects");function ss(o){return function(e){let t;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!$.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=m.ComplexType.Kind,r.name=t,o&&Object.assign(r,(0,ka.omit)(o,["name"]))}}a(ss,"ComplexTypeDecorator");var te=a(function(...o){var n;if(!this)return te[N].apply(void 0,o);let[e,t]=o,r=o[2]||new ue({maxErrors:0});U.call(this,e,t,r);let i=(0,Ca.asMutable)(this);i.kind=m.ComplexType.Kind,i.discriminatorField=t.discriminatorField,i.discriminatorValue=t.discriminatorValue,t.base&&r.enter(".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,i.additionalFields=i.base.additionalFields,i.keyField=i.base.keyField;for(let s of i.base.fields("*"))i._fields.set(s.name,new C(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 C(this,{...p,name:s});this._fields.set(c.name,c)}})},"ComplexType"),ps=class ps extends U{extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof U?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0,i={...t,kind:this.kind,base:this.base?r||this.base.toJSON(e):void 0,discriminatorField:this.discriminatorField,discriminatorValue:this.discriminatorValue};if(this.additionalFields)if(this.additionalFields instanceof x){let n=this.node.getDataTypeNameWithNs(this.additionalFields);i.additionalFields=n||this.additionalFields.toJSON(e)}else i.additionalFields=this.additionalFields;if(this._fields.size){let n={},s=0;for(let p of this._fields.values())p.origin===this&&p.inScope(e==null?void 0:e.scope)&&(n[p.name]=p.toJSON(e),s++);s&&(i.fields=n)}return(0,ja.omitUndefined)(i)}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(ps,"ComplexTypeClass");var as=ps;te.prototype=as.prototype;Object.assign(te,ss);te[N]=ss;var zt,re=(zt=class{constructor(e){e&&Object.assign(this,e)}},a(zt,"OperationResult"),zt);(0,k.__decorate)([C(),(0,k.__metadata)("design:type",Number)],re.prototype,"affected",void 0);(0,k.__decorate)([C(),(0,k.__metadata)("design:type",Number)],re.prototype,"totalMatches",void 0);(0,k.__decorate)([C(),(0,k.__metadata)("design:type",String)],re.prototype,"context",void 0);(0,k.__decorate)([C(),(0,k.__metadata)("design:type",String)],re.prototype,"type",void 0);(0,k.__decorate)([C(),(0,k.__metadata)("design:type",String)],re.prototype,"message",void 0);(0,k.__decorate)([C({type:"any"}),(0,k.__metadata)("design:type",Object)],re.prototype,"payload",void 0);(0,k.__decorate)([C({type:"object"}),(0,k.__metadata)("design:type",Array)],re.prototype,"errors",void 0);re=(0,k.__decorate)([te({name:"OperationResult",description:"Operation result"}),(0,k.__metadata)("design:paramtypes",[Object])],re);(function(o){function e(t){var i;let r=(i=class extends o{constructor(...s){super(...s)}},a(i,"OperationResult_"),i);return(0,k.__decorate)([C({type:t,required:!0}),(0,k.__metadata)("design:type",Object)],r.prototype,"payload",void 0),r=(0,k.__decorate)([te({embedded:!0}),(0,k.__metadata)("design:paramtypes",[Object])],r),r}a(e,"forPayload"),o.forPayload=e})(re||(re={}));var Ue=require("tslib"),q=require("valgen");var Jt,Wt=(Jt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=$a,r=[];return e.minValue!=null&&((0,q.isDateString)(e.minValue),r.push(q.toString,q.vg.isGte(e.minValue))),e.maxValue!=null&&((0,q.isDateString)(e.maxValue),r.push(q.toString,q.vg.isLte(e.maxValue))),r.length>0?q.vg.pipe([t,...r],{returnIndex:0}):t}[g](e){let t=$a,r=[];return e.minValue!=null&&((0,q.isDateString)(e.minValue),r.push(q.vg.isGte(e.minValue))),e.maxValue!=null&&((0,q.isDateString)(e.maxValue),r.push(q.vg.isLte(e.maxValue))),r.length>0?q.vg.pipe([t,...r],{returnIndex:0}):t}},a(Jt,"PartialDateType"),Jt);(0,Ue.__decorate)([u.Attribute({description:"Minimum value"}),(0,Ue.__metadata)("design:type",String)],Wt.prototype,"minValue",void 0);(0,Ue.__decorate)([u.Attribute({description:"Maximum value"}),(0,Ue.__metadata)("design:type",String)],Wt.prototype,"maxValue",void 0);Wt=(0,Ue.__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,Ue.__metadata)("design:paramtypes",[Object])],Wt);var Ua=q.vg.isDateString({precisionMin:"year"}),$a=(0,q.validator)(o=>{if(o instanceof Date){let e=Ua(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 Ua(o,{coerce:!1})});var $e=require("tslib"),kr=require("valgen");var Bc=/^([0-1][0-9]|2[0-4]):([0-5][0-9])(?::([0-5][0-9]))?$/,Yt,Gt=(Yt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=kr.vg.matches(Bc,{formatName:"time",coerce:!0}),r=[];return e.minValue!=null&&r.push(kr.vg.isGte(e.minValue)),e.maxValue!=null&&r.push(kr.vg.isLte(e.maxValue)),r.length>0?kr.vg.pipe([t,...r],{returnIndex:0}):t}[g](e){return this[E](e)}},a(Yt,"TimeType"),Yt);(0,$e.__decorate)([u.Attribute({description:"Minimum value"}),(0,$e.__metadata)("design:type",String)],Gt.prototype,"minValue",void 0);(0,$e.__decorate)([u.Attribute({description:"Maximum value"}),(0,$e.__metadata)("design:type",String)],Gt.prototype,"maxValue",void 0);Gt=(0,$e.__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,$e.__metadata)("design:paramtypes",[Object])],Gt);var hi=require("tslib"),cs=require("valgen");var Qt,di=(Qt=class{constructor(e){e&&Object.assign(this,e)}[E](){return cs.vg.isURL({coerce:!0})}[g](){return cs.vg.isURL({coerce:!0})}},a(Qt,"UrlType"),Qt);di=(0,hi.__decorate)([u({name:"url",description:"A Uniform Resource Identifier Reference (RFC 3986 icon) value",nameMappings:{js:"string",json:"string"}}).Example("http://tempuri.org"),(0,hi.__metadata)("design:paramtypes",[Object])],di);var Zt=require("tslib"),ls=require("valgen");var Xt,jr=(Xt=class{constructor(e){e&&Object.assign(this,e)}[E](e){return ls.vg.isUUID(e==null?void 0:e.version,{coerce:!0})}[g](e){return ls.vg.isUUID(e==null?void 0:e.version,{coerce:!0})}},a(Xt,"UuidType"),Xt);(0,Zt.__decorate)([u.Attribute({description:"Version of the UUID"}),(0,Zt.__metadata)("design:type",Number)],jr.prototype,"version",void 0);jr=(0,Zt.__decorate)([u({name:"uuid",description:"A Universal Unique Identifier (UUID) value",nameMappings:{js:"string",json:"string"}}),(0,Zt.__metadata)("design:paramtypes",[Object])],jr);var Ka=yt(require("path-browserify"),1),Va=require("@jsopen/objects"),za=require("ts-gems");var Ba,qa,le=Symbol.for("kMap"),Cr=Symbol.for("kCtorMap"),ms=class ms{constructor(){this[Ba]=new M,this[qa]=new WeakMap}get size(){return this[le].size}forEach(e,t){this[le].forEach(e,t)}get(e){let t=typeof e=="string"?e:this[Cr].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[le].get(t);if(r)return typeof e=="function"&&r.kind==="ComplexType"?r.ctor===e?r:void 0:r}set(e,t){this[le].set(e,t),t.ctor?this[Cr].set(t.ctor,e):t.instance&&this[Cr].set(t.instance,e)}has(e){if(e instanceof x)return!!e.name&&this[le].has(e.name);let t=typeof e=="string"?e:this[Cr].get(e);return t?this[le].has(t):!1}keys(){return this[le].keys()}values(){return this[le].values()}entries(){return this[le].entries()}sort(e){return this[le].sort(e),this}[(Ba=le,qa=Cr,Symbol.iterator)](){return this[le][Symbol.iterator]()}};a(ms,"DataTypeMap");var ie=ms;function v(o,e){let t=a(((r,i)=>{if(typeof i!="string")throw new TypeError("Symbol properties can not be decorated");let n={...e,kind:m.HttpOperation.Kind},s=Reflect.getOwnMetadata(ne,r.constructor)||{};s.operations=s.operations||{},s.operations[i]=n;for(let p of o)p(n);Reflect.defineMetadata(ne,s,r.constructor)}),"decorator");return t.Cookie=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"cookie",type:i}:{...i,name:r,location:"cookie"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="cookie"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.Header=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"header",type:i}:{...i,name:r,location:"header"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="header"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.QueryParam=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"query",type:i}:{...i,name:r,location:"query"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="query"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.PathParam=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"path",type:i}:{...i,name:r,location:"path"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="path"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.Response=(r,i)=>{let n={...i,statusCode:r};return n.type&&(n.contentType=n.contentType||D.opra_response_json,n.contentEncoding=n.contentEncoding||"utf-8"),n.contentType===D.opra_response_json&&(n.contentEncoding=n.contentEncoding||"utf-8"),o.push(s=>{s.responses=s.responses||[],s.responses.push(n)}),t},t.RequestContent=function(r){let i=typeof r=="object"?r:{type:r};return i.type&&(i.contentType=i.contentType||D.json,i.contentEncoding=i.contentEncoding||"utf-8"),o.push(n=>{n.requestBody=n.requestBody||{required:!0,content:[]},n.requestBody.content=n.requestBody.content||[],n.requestBody.content.push(i)}),t},t.MultipartContent=function(r,i){let n={...r,contentType:(r==null?void 0:r.contentType)||"multipart/form-data"};if(o.push(s=>{s.requestBody=s.requestBody||{required:!0,content:[]},s.requestBody.content=s.requestBody.content||[],s.requestBody.content.push(n)}),i){let s={Field(p,c){return n.multipartFields=n.multipartFields||[],n.multipartFields.push({fieldName:p,fieldType:"field",...c}),s},File(p,c){return n.multipartFields=n.multipartFields||[],n.multipartFields.push({fieldName:p,fieldType:"file",...c}),s}};i(s)}return t},t.UseType=(...r)=>(o.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),t}a(v,"HttpOperationDecoratorFactory");var A=a(function(...o){if(!this){let[i]=o,n=[];return A[N].call(void 0,n,i)}let[e,t]=o;if(b.call(this,e),!$.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,za.asMutable)(this);r.parameters=[],r.responses=[],r.types=r.node[B]=new ie,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?F(t.compositionOptions):void 0},"HttpOperation"),ds=class ds extends b{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:Ka.default.posix.join(e,this.path):e:this.path||"/"}toJSON(e){var r;let t=(0,Va.omitUndefined)({kind:m.HttpOperation.Kind,description:this.description,method:this.method,path:this.path,mergePath:this.mergePath,composition:this.composition,requestBody:(r=this.requestBody)==null?void 0:r.toJSON(e)});if(this.types.size){t.types={};for(let i of this.types.values())t.types[i.name]=i.toJSON(e)}if(this.parameters.length){t.parameters=[];for(let i of this.parameters)t.parameters.push(i.toJSON(e))}return this.responses.length&&(t.responses=this.responses.map(i=>i.toJSON(e))),t}};a(ds,"HttpOperationClass");var us=ds;A.prototype=us.prototype;A[N]=v;A.GET=function(o){return v([],{...o,method:"GET"})};A.DELETE=function(o){return v([],{...o,method:"DELETE"})};A.HEAD=function(o){return v([],{...o,method:"HEAD"})};A.OPTIONS=function(o){return v([],{...o,method:"OPTIONS"})};A.PATCH=function(o){return v([],{...o,method:"PATCH"})};A.POST=function(o){return v([],{...o,method:"POST"})};A.PUT=function(o){return v([],{...o,method:"PUT"})};A.SEARCH=function(o){return v([],{...o,method:"SEARCH"})};A.Entity={};function W(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(W,"getDataTypeName");function Be(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(Be,"createKeyParamDecorator");function Ja(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=vt.exec(p),l=vt.exec(r[p]);return c&&l&&(s[c[2]]=l[2]),s},{}),n=Object.keys(r).reduce((s,p)=>{let c=vt.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:H(n),isArray:!0,arraySeparator:",",parser:a(s=>s.map(p=>{let c=vt.exec(p);return c?(c[1]||"")+i[c[2]]:p}),"parser")}),o}}a(Ja,"createSortFieldsDecorator");function qe(o,e,t){let r=Reflect.getMetadata("FilterRules",o);r||(r=new xt,Reflect.defineMetadata("FilterRules",r,o));let i=Reflect.getMetadata("FilterType",o);return i||(i=new je({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(qe,"createFilterDecorator");A.Entity.Create=function(o,e){var n;let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=v(r,{method:"POST",...t,composition:"Entity.Create",requestBody:{immediateFetch:!0,...t.requestBody,required:!0}});return i.QueryParam("projection",{description:"Determines fields projection",type:new J({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(R.CREATED,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the created resource.',contentType:D.opra_response_json,type:t.type,partial:"deep"}).Response(R.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:D.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=W(t.type)}),i};A.Entity.Delete=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=v(r,{method:"DELETE",...t,composition:"Entity.Delete"});return i.Response(R.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:D.opra_response_json}).Response(R.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:D.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=W(t.type)}),i.KeyParam=Be(i,r),i};A.Entity.DeleteMany=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=v(r,{method:"DELETE",...t,composition:"Entity.DeleteMany"});return i.Response(R.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:D.opra_response_json}).Response(R.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:D.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=W(t.type)}),i.Filter=qe(i,r,t.type),i};var Es={};yr(Es,{AnyType:()=>yi,BigintType:()=>Ei,BooleanType:()=>xi,IntegerType:()=>ct,NullType:()=>wi,NumberType:()=>_e,ObjectType:()=>bi,StringType:()=>ze});var Ti=require("tslib"),hs=require("valgen");var Ht,yi=(Ht=class{constructor(e){e&&Object.assign(this,e)}[E](){return hs.isAny}[g](){return hs.isAny}},a(Ht,"AnyType"),Ht);yi=(0,Ti.__decorate)([u({name:"any",description:"Represents any value"}),(0,Ti.__metadata)("design:paramtypes",[Object])],yi);var _i=require("tslib"),at=require("valgen");var Ke=require("tslib"),st=require("valgen");var er,_e=(er=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=[];return e.minValue!=null&&t.push(st.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(st.vg.isLte(e.maxValue)),t.length>0?st.vg.pipe([st.toNumber,...t],{returnIndex:0}):st.toNumber}[g](e){return this[E](e)}},a(er,"NumberType"),er);(0,Ke.__decorate)([u.Attribute({description:"Determines the minimum value"}),(0,Ke.__metadata)("design:type",Number)],_e.prototype,"minValue",void 0);(0,Ke.__decorate)([u.Attribute({description:"Determines the maximum value"}),(0,Ke.__metadata)("design:type",Number)],_e.prototype,"maxValue",void 0);_e=(0,Ke.__decorate)([u({name:"number",description:"Both Integer as well as Floating-Point numbers",nameMappings:{js:"number",json:"number"}}),(0,Ke.__metadata)("design:paramtypes",[Object])],_e);var tr,Ei=(tr=class extends _e{constructor(e){super(e)}[E](e){let t=[];return e.minValue!=null&&t.push(at.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(at.vg.isLte(e.maxValue)),t.length>0?at.vg.pipe([at.toBigint,...t],{returnIndex:0}):at.toBigint}[g](e){return this[E](e)}},a(tr,"BigintType"),tr);Ei=(0,_i.__decorate)([u({name:"bigint",description:"BigInt number",nameMappings:{js:"bigint",json:"string"}}),(0,_i.__metadata)("design:paramtypes",[Object])],Ei);var Oi=require("tslib"),ys=require("valgen");var rr,xi=(rr=class{constructor(e){e&&Object.assign(this,e)}[E](){return ys.toBoolean}[g](){return ys.toBoolean}},a(rr,"BooleanType"),rr);xi=(0,Oi.__decorate)([u({name:"boolean",description:"Simple true/false value",nameMappings:{js:"boolean",json:"boolean"}}),(0,Oi.__metadata)("design:paramtypes",[Object])],xi);var gi=require("tslib"),pt=require("valgen");var ir,ct=(ir=class extends _e{constructor(e){super(e)}[E](e){let t=[];return e.minValue!=null&&t.push(pt.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(pt.vg.isLte(e.maxValue)),t.length>0?pt.vg.pipe([pt.toInteger,...t],{returnIndex:0}):pt.toInteger}[g](e){return this[E](e)}},a(ir,"IntegerType"),ir);ct=(0,gi.__decorate)([u({name:"integer",description:"An integer number",nameMappings:{js:"number",json:"number"}}),(0,gi.__metadata)("design:paramtypes",[Object])],ct);var Ri=require("tslib"),Ts=require("valgen");var or,wi=(or=class{constructor(e){e&&Object.assign(this,e)}[E](){return Ts.isNull}[g](){return Ts.isNull}},a(or,"NullType"),or);wi=(0,Ri.__decorate)([u({name:"null",description:"A Null value",nameMappings:{js:"null",json:"null"}}),(0,Ri.__metadata)("design:paramtypes",[Object])],wi);var Ai=require("tslib");var nr,bi=(nr=class{constructor(e){e&&Object.assign(this,e)}},a(nr,"ObjectType"),nr);bi=(0,Ai.__decorate)([te({name:"object",description:"A non modelled object",additionalFields:!0}),(0,Ai.__metadata)("design:paramtypes",[Object])],bi);var fe=require("tslib"),Ve=require("valgen");var sr,ze=(sr=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=[];if(e.pattern){let r=e.patternName;r||(r=Reflect.getMetadata(d,Object.getPrototypeOf(this).constructor).name),t.push(Ve.vg.matches(e.pattern,{formatName:r}))}return e.minLength&&t.push(Ve.vg.lengthMin(e.minLength)),e.maxLength&&t.push(Ve.vg.lengthMax(e.maxLength)),t.length>0?Ve.vg.pipe([Ve.toString,...t],{returnIndex:0}):Ve.toString}[g](e){return this[E](e)}},a(sr,"StringType"),sr);(0,fe.__decorate)([u.Attribute({description:"Regex pattern to be used for validation"}),(0,fe.__metadata)("design:type",Object)],ze.prototype,"pattern",void 0);(0,fe.__decorate)([u.Attribute({description:"Name of the pattern"}),(0,fe.__metadata)("design:type",String)],ze.prototype,"patternName",void 0);(0,fe.__decorate)([u.Attribute({description:"Minimum number of characters"}),(0,fe.__metadata)("design:type",Number)],ze.prototype,"minLength",void 0);(0,fe.__decorate)([u.Attribute({description:"Minimum number of characters"}),(0,fe.__metadata)("design:type",Number)],ze.prototype,"maxLength",void 0);ze=(0,fe.__decorate)([u({name:"string",description:"A sequence of characters",nameMappings:{js:"string",json:"string"}}),(0,fe.__metadata)("design:paramtypes",[Object])],ze);A.Entity.FindMany=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=v(r,{method:"GET",...t,composition:"Entity.FindMany"});return i.Response(R.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains list of resources.',contentType:D.opra_response_json,type:t.type,partial:"deep",isArray:!0}).Response(R.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:D.opra_response_json}).QueryParam("limit",{description:"Determines number of returning instances",type:new ct({minValue:1,maxValue:t.maxLimit})}).QueryParam("skip",{description:"Determines number of returning instances",type:new ct({minValue:1})}).QueryParam("count",{description:"Counts all matching instances if enabled",type:Boolean}).QueryParam("projection",{description:"Determines fields projection",type:new J({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=W(t.type),t.defaultLimit&&(s.defaultLimit=t.defaultLimit),t.defaultProjection&&(s.defaultProjection=t.defaultProjection),t.maxLimit&&(s.maxLimit=t.maxLimit)}),i.Filter=qe(i,r,t.type),i.DefaultSort=(...n)=>(r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.defaultSort=n}),i),i.SortFields=Ja(i,r),i};A.Entity.Get=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=v(r,{method:"GET",...t,composition:"Entity.Get"});return i.QueryParam("projection",{description:"Determines fields projection",type:new J({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).Response(R.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the resource asked for.',contentType:D.opra_response_json,type:t.type,partial:"deep"}).Response(R.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(R.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:D.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=W(t.type)}),i.KeyParam=Be(i,r),i};A.Entity.Replace=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=v(r,{method:"POST",...t,composition:"Entity.Replace"});return i.QueryParam("projection",{description:"Determines fields projection",type:new J({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).Response(R.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains the resource asked for.',contentType:D.opra_response_json,type:t.type,partial:"deep"}).Response(R.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(R.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:D.opra_response_json}),r.push(n=>{let s=n.compositionOptions=n.compositionOptions||{};s.type=W(t.type)}),i.KeyParam=Be(i,r),i};A.Entity.Update=function(o,e){var n;let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=v(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 J({dataType:t.type,allowSigns:"each"}),isArray:!0,arraySeparator:","}).RequestContent(((n=t.requestBody)==null?void 0:n.type)||t.type).Response(R.OK,{description:'Operation is successful. Returns OperationResult with "payload" field that contains updated resource.',contentType:D.opra_response_json,type:t.type,partial:"deep"}).Response(R.NO_CONTENT,{description:"Operation is successful but no resource found"}).Response(R.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:D.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=W(t.type)}),i.KeyParam=Be(i,r),i.Filter=qe(i,r,t.type),i};A.Entity.UpdateMany=function(o,e){var n;let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=v(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(R.OK,{description:'Operation is successful. Returns OperationResult with "affected" field.',contentType:D.opra_response_json}).Response(R.UNPROCESSABLE_ENTITY,{description:"The request was well-formed but was unable to process operation due to one or many errors.",contentType:D.opra_response_json}),r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.type=W(t.type)}),i.Filter=qe(i,r,t.type),i};var Di=require("@jsopen/objects");var qc=/^(.*)(Controller)$/,Wa=[];function ar(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=qc.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(se,Object.getPrototypeOf(r));s&&(0,Di.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(se,r);p&&(0,Di.merge)(n,p,{deep:!0}),(0,Di.merge)(n,{...o,kind:m.RpcController.Kind,name:i,path:i},{deep:!0}),Reflect.defineMetadata(se,n,r);for(let l of e)l(n,r);Reflect.defineMetadata(se,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),Wa.forEach(r=>r(t,e,o)),t}a(ar,"RpcControllerDecoratorFactory");ar.augment=function(o){Wa.push(o)};var Ya=require("@jsopen/objects");var Ga=[];function Ur(o,e,t){let r=!1,i=a(((n,s)=>{if(typeof s!="string")throw new TypeError("Symbol properties can not be decorated");let p={kind:m.RpcOperation.Kind,channel:s,payloadType:e,...(0,Ya.omit)(t,["kind","payloadType"])},c=Reflect.getOwnMetadata(se,n.constructor)||{};c.operations=c.operations||{},c.operations[s]=p;for(let l of o)l(p,n,s);Reflect.defineMetadata(se,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},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,payloadType:n}}),i),Ga.forEach(n=>n(i,o,e,t)),i}a(Ur,"RpcOperationDecoratorFactory");Ur.augment=function(o){Ga.push(o)};var l3=require("reflect-metadata"),Qa=require("@jsopen/objects"),Xa=require("ts-gems");function Ni(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(Ni,"getIsInheritedPredicateFn");var Je=a(function(...o){var n;if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;U.call(this,e,t,r);let i=(0,Xa.asMutable)(this);if(i.kind=m.MappedType.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,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=Ni(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 w={...O};p===!0||Array.isArray(p)&&p.includes(O.name.toLowerCase())?w.required=!1:(c===!0||Array.isArray(c)&&c.includes(O.name.toLowerCase()))&&(w.required=!0);let T=new C(this,w);i._fields.set(T.name,T)}(!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"),xs=class xs extends U{extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof U?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0;return(0,Qa.omitUndefined)({...t,base:r||this.base.toJSON(e),kind:this.kind,pick:this.pick,omit:this.omit,partial:this.partial,required:this.required,discriminatorField:this.discriminatorField,discriminatorValue:this.discriminatorValue})}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(xs,"MappedTypeClass");var _s=xs;Je.prototype=_s.prototype;Je._applyMixin=()=>{};var E3=require("reflect-metadata"),Za=require("@jsopen/objects"),Ha=require("ts-gems");var lt=a(function(...o){if(!this)return lt[N].apply(void 0,o);let[e,t,r]=o;U.call(this,e,t,r);let i=(0,Ha.asMutable)(this);i.kind=m.MixinType.Kind,i.types=[];for(let n of t.types){i.additionalFields!==!0&&(n.additionalFields===!0?i.additionalFields=!0:i.additionalFields||(i.additionalFields=n.additionalFields));for(let s of n.fields("*")){let p=new C(this,s);i._fields.set(p.name,p)}i.types.push(n),n.keyField&&(i.keyField=n.keyField)}},"MixinType"),gs=class gs extends U{extendsFrom(e){if(e instanceof x||(e=this.node.getDataType(e)),!(e instanceof U))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,Za.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(gs,"MixinTypeClass");var Os=gs;lt.prototype=Os.prototype;lt[N]=zc;function zc(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)Or(this,n)}}}[t],i={...e,kind:m.MixinType.Kind,types:[]};Reflect.defineMetadata(d,i,r);for(let n of o){let s=Reflect.getMetadata(d,n);if(!(s&&(s.kind===m.ComplexType.Kind||s.kind===m.MixinType.Kind||s.kind===m.MappedType.Kind)))throw new TypeError(`Class "${n.name}" is not a ${m.ComplexType.Kind}, ${m.MixinType.Kind} or ${m.MappedType.Kind}`);i.types.push(n),xr(r.prototype,n.prototype)}return r}a(zc,"MixinTypeFactory");var N3=require("reflect-metadata"),ep=require("@jsopen/objects"),tp=require("ts-gems"),ws=require("valgen");var ft=a(function(...o){if(!this)return ft[N].apply(void 0,o);let[e,t,r]=o;x.call(this,e,t,r);let i=(0,tp.asMutable)(this);i.kind=m.UnionType.Kind,i.discriminator=t.discriminator,i.types=[];for(let n of t.types)i.types.push(n)},"UnionType"),bs=class bs extends x{toJSON(e){let t=super.toJSON(e);return(0,ep.omitUndefined)({...t,kind:this.kind,discriminator:this.discriminator,types:this.types.map(r=>{let i=this.node.getDataTypeNameWithNs(r);return i||r.toJSON(e)})})}generateCodec(e,t){let r=this.types.map(i=>{let n=i.generateCodec(e,t);return(i.kind===m.ComplexType.Kind||i.kind===m.MappedType.Kind)&&i.discriminatorField?[n,{[i.discriminatorField]:ws.vg.isEqual(i.discriminatorValue)}]:n});return ws.vg.oneOf(r)}extendsFrom(){return!1}_locateBase(){}};a(bs,"UnionTypeClass");var Rs=bs;ft.prototype=Rs.prototype;ft[N]=Jc;function Jc(o,e){let i=class i{};a(i,"UnionClass");let t=i,r={...e,kind:m.UnionType.Kind,types:o};return Reflect.defineMetadata(d,r,t),t}a(Jc,"UnionTypeFactory");var As=Symbol("initializing"),Si=class Si{static async createDataType(e,t,r){e=e||new ue({maxErrors:0});let i=await this._importDataTypeArgs(e,t,r);if(i)return typeof i=="string"?t.node.getDataType(i):this._createDataType(e,t,i)}static async resolveDataType(e,t,r){if(r){let i=t.node.findDataType(r);if(i)return i}if(typeof r=="object"||typeof r=="function"){let i=await Si.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[B];if(!i)throw new TypeError("DocumentElement should has [kDataTypeMap] property");let n=await this.createAllDataTypes(e,t,r);if(n)for(let s of n)s!=null&&s.name&&i.set(s.name,s)}static async createAllDataTypes(e,t,r){e=e||new ue({maxErrors:0});let i=await this._prepareAllInitArgs(e,t,r);if(!i)return;let n=new M;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 M,n=new M,s=e.extend({owner:t,importQueue:i,initArgsMap:n});if(!t.node[B])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 me(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 me(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 w;r=await me(r);let{importQueue:n,initArgsMap:s}=e,p=t.node.findDataType(r);if(p instanceof x)return p.name;let c,l,O;if(typeof r!="string"){let X=t.node.getDocument().types[gr].get(r);X&&(r=X)}if(typeof r=="string"){let T=r;if(r=(n==null?void 0:n.get(T))||((w=e.initArgsMap)==null?void 0:w.get(T)),!r)return e.addError(`Unknown data type (${T})`)}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!==m.EnumType.Kind&&(c=void 0);else if(m.isDataType(r))c=r,l=c.ctor;else if(l=Object.getPrototypeOf(r).constructor,c=l&&Reflect.getMetadata(d,l),c&&c.kind===m.SimpleType.Kind){let T=await this._importDataTypeArgs(e,t,c.name);return T?typeof T=="object"&&T.kind!==m.SimpleType.Kind?e.addError("Kind of base data type is not same"):{kind:m.SimpleType.Kind,name:void 0,base:T,properties:r}:void 0}}return c?e.enterAsync(c.name?`[${c.name}]`:"",async()=>{if(c.name){let X=s==null?void 0:s.get(c.name);if(X)return i&&X[As]?e.addError("Circular reference detected"):c.name}let T={kind:c.kind,name:c.name};T[As]=!0;try{if(T.name)if(n!=null&&n.has(T.name))s==null||s.set(c.name,T),T._instance={name:c.name},T[B]=t.node[B];else return e.addError(`Data Type (${T.name}) must be explicitly added to type list in the document scope`);switch(T.kind){case m.ComplexType.Kind:T.ctor=l,await this._prepareComplexTypeArgs(e,t,T,c);break;case m.EnumType.Kind:T.instance=O,await this._prepareEnumTypeArgs(e,t,T,c);break;case m.MappedType.Kind:await this._prepareMappedTypeArgs(e,t,T,c);break;case m.MixinType.Kind:await this._prepareMixinTypeArgs(e,t,T,c);break;case m.SimpleType.Kind:T.ctor=l,await this._prepareSimpleTypeArgs(e,t,T,c);break;case m.UnionType.Kind:await this._prepareUnionTypeArgs(e,t,T,c);break;default:return e.addError(`Invalid data type kind ${c.kind}`)}}finally{T.name&&(n==null||n.delete(T.name)),delete T[As]}return n&&T.name?T.name:T}):e.addError("No DataType metadata found")}static async _prepareDataTypeArgs(e,t,r){t.description=r.description,t.abstract=r.abstract,t.examples=r.examples,t.scopePattern=r.scopePattern}static async _prepareComplexTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),r.keyField=i.keyField,r.discriminatorField=i.discriminatorField,r.discriminatorValue=i.discriminatorValue,await e.enterAsync(".base",async()=>{let n;if(i.base)n=await this._importDataTypeArgs(e,t,i.base,!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=We(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=We(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:We(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=We(n))}),r.attributes=F(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=We(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=F(i.attributes)),typeof((n=r.properties)==null?void 0:n[E])=="function"&&(r.generateDecoder=(s=r.properties)==null?void 0:s[E].bind(r.properties)),typeof((p=r.properties)==null?void 0:p[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=We(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(We(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(We(c))})})}static _createDataType(e,t,r){var s;let i=t.node.findDataType(typeof r=="string"?r:r.name||"");if(i instanceof x)return i;let n=typeof r=="string"?(s=e.initArgsMap)==null?void 0:s.get(r):r;if(n){let p=n[B];switch(p||delete n._instance,i=n._instance,i!=null&&i.name&&p&&p.set(i.name,i),n==null?void 0:n.kind){case m.ComplexType.Kind:return this._createComplexType(e,t,n);case m.EnumType.Kind:return this._createEnumType(e,t,n);case m.MappedType.Kind:return this._createMappedType(e,t,n);case m.MixinType.Kind:return this._createMixinType(e,t,n);case m.SimpleType.Kind:return this._createSimpleType(e,t,n);case m.UnionType.Kind:return this._createUnionType(e,t,n);default:break}}e.addError(`Unknown data type (${String(r)})`)}static _createComplexType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,te.prototype);let n=F(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),r.additionalFields&&e.enter(".additionalFields",()=>{typeof r.additionalFields=="boolean"||Array.isArray(r.additionalFields)?n.additionalFields=r.additionalFields:n.additionalFields=this._createDataType(e,t,r.additionalFields)}),n.fields={},r.fields&&e.enter(".fields",()=>{for(let[s,p]of Object.entries(r.fields))e.enter(`[${s}]`,()=>{let c=this._createDataType(e,t,p.type);c&&(n.fields[s]={...p,name:s,type:c})})}),te.apply(i,[t,n]),i}static _createEnumType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,H.prototype);let n=F(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),n.attributes=r.attributes,H.apply(i,[t,n]),i}static _createMappedType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,Je.prototype);let n=F(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),Je.apply(i,[t,n]),i}static _createMixinType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,lt.prototype);let n=F(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 U))throw new TypeError(`"${c==null?void 0:c.kind}" can't be set as base for a "${n.kind}"`);n.types.push(c)})}),lt.apply(i,[t,n]),i}static _createSimpleType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,u.prototype);let n=F(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),u.apply(i,[t,n]),i}static _createUnionType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,ft.prototype);let n=F(r);return r.types&&e.enter(".types",()=>{n.types=[];let s=0;for(let p of r.types)e.enter(`[${s++}]`,()=>{let c=this._createDataType(e,t,p);n.types.push(c)})}),ft.apply(i,[t,n]),i}};a(Si,"DataTypeFactory");var P=Si;function We(o){return typeof o=="object"&&o.name?o.name:o}a(We,"preferName");var yp=require("@jsopen/objects");var rp=require("@jsopen/objects");var Ds=class Ds extends b{constructor(e){super(e.owner),this.name="OpraApi",this.name=e.name,this.description=e.description}toJSON(e){return(0,rp.omitUndefined)({transport:this.transport,name:this.name,description:this.description})}async _initialize(e,t){if(!$.test(e.name))throw new TypeError(`Invalid api name (${e.name})`);this.name=e.name,this.description=e==null?void 0:e.description}};a(Ds,"ApiBase");var mt=Ds;var ip=yt(require("path-browserify"),1),op=require("@jsopen/objects"),np=require("ts-gems");var pr=require("@jsopen/objects");var Yc=/^(.*)(Controller)$/;function Ns(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=Yc.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(ne,Object.getPrototypeOf(r));s&&(0,pr.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(ne,r);p&&(0,pr.merge)(n,p,{deep:!0}),(0,pr.merge)(n,{kind:m.HttpController.Kind,name:i,path:i,...(0,pr.omit)(o,["kind","name","instance","endpoints","key"])},{deep:!0}),Reflect.defineMetadata(ne,n,r);for(let l of e)l(n,r);Reflect.defineMetadata(ne,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(Ns,"HttpControllerDecoratorFactory");var oe=a(function(...o){var i;if(!this)return oe[N].apply(void 0,o);let[e,t]=o;if(b.call(this,e),!$.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,np.asMutable)(this);r.kind=m.HttpController.Kind,r.types=r.node[B]=new ie,r.operations=new M,r.controllers=new M,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"),vs=class vs extends b{get isRoot(){return!(this.owner instanceof oe)}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 oe)return this.node.parent.element.findParameter(e,t)}getFullUrl(){return ip.default.posix.join(this.owner instanceof oe?this.owner.getFullUrl():"/",this.path)}toString(){return`[HttpController ${this.name}]`}toJSON(e){let t=(0,op.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}[Dt](){return`[${Nt}HttpController${St+this.name+ot}]`}};a(vs,"HttpControllerClass");var Ss=vs;oe.prototype=Ss.prototype;Object.assign(oe,Ns);oe[N]=Ns;var Ms=class Ms extends mt{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="http",this.controllers=new M,this.url=e.url}findController(e){return oe.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(Ms,"HttpApi");var ut=Ms;var sp=yt(require("@browsery/type-is"),1),ap=require("@jsopen/objects"),pp=require("ts-gems"),vi=require("valgen");var Ae=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');b.call(this,o);let t=(0,pp.asMutable)(this);if(e.contentType){let r=Array.isArray(e.contentType)?e.contentType:[e.contentType];r=r.map(i=>i.split(/\s*,\s*/)).flat(),t.contentType=r.length>1?r:r[0]}t.description=e.description,t.contentEncoding=e.contentEncoding,t.examples=e.examples,t.multipartFields=[],t.maxFieldsSize=e.maxFieldsSize,t.maxFields=e.maxFields,t.maxFiles=e.maxFiles,t.maxFileSize=e.maxFileSize,t.maxTotalFileSize=e.maxTotalFileSize,e!=null&&e.type&&(t.type=(e==null?void 0:e.type)instanceof x?e.type:t.owner.node.getDataType(e.type)),t.isArray=e.isArray},"HttpMediaType"),Is=class Is extends b{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,ap.omitUndefined)({description:this.description,contentType:this.contentType,contentEncoding:this.contentEncoding,type:t||((i=this.type)==null?void 0:i.toJSON(e)),isArray:this.isArray,example:this.example,examples:this.examples,maxFields:this.maxFields,maxFieldsSize:this.maxFieldsSize,maxFiles:this.maxFiles,maxFileSize:this.maxFileSize,maxTotalFileSize:this.maxTotalFileSize});return(n=this.multipartFields)!=null&&n.length&&(r.multipartFields=this.multipartFields.map(s=>s.toJSON(e))),r}generateCodec(e,t){let r;return this.type?r=this.type.generateCodec(e,t):this.contentType&&(Array.isArray(this.contentType)?this.contentType:[this.contentType]).find(n=>sp.default.is(n,["json"]))&&(r=this.node.findDataType("object").generateCodec(e)),r=r||vi.isAny,this.isArray?vi.vg.isArray(r):r}};a(Is,"HttpMediaTypeClass");var Fs=Is;Ae.prototype=Fs.prototype;var cp=require("@jsopen/objects");function cr(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(cr,"parseRegExp");var Ps=class Ps extends Ae{constructor(e,t){super(e,t),this.fieldName=t.fieldName instanceof RegExp?t.fieldName:t.fieldName.startsWith("/")?cr(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(Ps,"HttpMultipartField");var $r=Ps;var lp=require("@jsopen/objects");var Gc=/^([1-6]\d{2})(?:-([1-6]\d{2}))?$/,Ls=class Ls{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=Gc.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(Ls,"HttpStatusRange");var lr=Ls;var ks=class ks extends Ae{constructor(e,t){super(e,t),this.parameters=[],this.statusCode=(Array.isArray(t.statusCode)?t.statusCode:[t.statusCode]).map(r=>typeof r=="object"?new lr(r.start,r.end):new lr(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,lp.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(ks,"HttpOperationResponse");var Br=ks;var up=require("@jsopen/objects"),dp=require("ts-gems");var fp=require("@jsopen/objects"),mp=require("ts-gems");var dt=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');b.call(this,o);let t=(0,mp.asMutable)(this);t.description=e.description,t.type=e.type,t.examples=e.examples,t.isArray=e.isArray},"Value"),Cs=class Cs extends b{toJSON(e){let t=this.type?this.node.getDataTypeNameWithNs(this.type):void 0;return(0,fp.omitUndefined)({type:this.type?t||this.type.toJSON(e):"any",description:this.description,isArray:this.isArray,examples:this.examples})}};a(Cs,"ValueClass");var js=Cs;dt.prototype=js.prototype;var fr=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');dt.call(this,o,e);let t=(0,dp.asMutable)(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?cr(e.name,{includeFlags:"i",excludeFlags:"m"}):e.name),t.location=e.location,t.deprecated=e.deprecated,t.required=e.required,t.required==null&&e.location==="path"&&(t.required=!0),t.arraySeparator=e.arraySeparator,t.keyParam=e.keyParam,t.parser=e.parser},"HttpParameter"),$s=class $s extends dt{toJSON(e){return(0,up.omitUndefined)({...super.toJSON(e),name:this.name,location:this.location,arraySeparator:this.arraySeparator,keyParam:this.keyParam,required:this.required,deprecated:this.deprecated})}};a($s,"HttpParameterClass");var Us=$s;fr.prototype=Us.prototype;var hp=require("@jsopen/objects");var Bs=class Bs extends b{constructor(e){super(e),this.content=[]}toJSON(e){return(0,hp.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(Bs,"HttpRequestBody");var qr=Bs;var qs=class qs{static async createApi(e,t){let r=new ut(t);return t.controllers&&await e.enterAsync(".controllers",async()=>{await this._createControllers(e,r,t.controllers)}),r}static async _createControllers(e,t,r){if(Array.isArray(r)){let i=0;for(let n of r){let s;await e.enterAsync(`[${i++}]`,async()=>{s=await this._resolveControllerMetadata(e,t,n)}),s&&await e.enterAsync(`[${s.metadata.name}]`,async()=>{let p=await this._createController(e,t,s.metadata,s.instance,s.ctor);p&&(t.controllers.get(p.name)&&e.addError(`Duplicate controller name (${s.name})`),t.controllers.set(p.name,p))})}return}for(let[i,n]of Object.entries(r))await e.enterAsync(`[${i}]`,async()=>{let s=await this._resolveControllerMetadata(e,t,n);if(!s)return;let p=await this._createController(e,t,{...s.metadata,name:i},s.instance,s.ctor);p&&(t.controllers.get(p.name)&&e.addError(`Duplicate controller name (${i})`),t.controllers.set(p.name,p))})}static async _resolveControllerMetadata(e,t,r){typeof r=="function"&&!(0,yp.isConstructor)(r)&&(r=t instanceof oe?r(t.instance):r()),r=await me(r);let i,n,s;if(typeof r=="function"){if(n=Reflect.getMetadata(ne,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(ne,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 oe(t,{...r,instance:i,ctor:n});return r.types&&await e.enterAsync(".types",async()=>{await P.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 P.resolveDataType(e,s,c.type)});let O=new fr(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 A(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 A.apply(t,[t.owner,i]),r.types&&await e.enterAsync(".types",async()=>{await P.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 P.resolveDataType(e,t,s.type)});let c=new fr(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 Br(t,{statusCode:s.statusCode});await this._initHttpOperationResponse(e,p,s),t.responses.push(p)})}),r.requestBody&&await e.enterAsync(".requestBody",async()=>{let n=new qr(t);await this._initHttpRequestBody(e,n,r.requestBody),t.requestBody=n}),t}static async _initHttpMediaType(e,t,r){Ae.call(t,t.owner,{...r,type:void 0,multipartFields:void 0}),r.type&&await e.enterAsync(".type",async()=>{t.type=await P.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 $r(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 P.resolveDataType(e,t,n.type)});let p=new fr(t,s);t.parameters.push(p)})})}static async _initHttpRequestBody(e,t,r){t.description=r.description,t.required=r.required,t.maxContentSize=r.maxContentSize,t.immediateFetch=r.immediateFetch,t.partial=r.partial,t.allowPatchOperators=r.allowPatchOperators,t.keepKeyFields=r.keepKeyFields,r.content&&await e.enterAsync(".content",async()=>{for(let i=0;i<r.content.length;i++)await e.enterAsync(`[${i}]`,async()=>{let n=r.content[i],s=new Ae(t,String(i));await this._initHttpMediaType(e,s,n),t.content.push(s)})})}};a(qs,"HttpApiFactory");var mr=qs;var Ep=require("@jsopen/objects"),_p=require("super-fast-md5");var Ks=class Ks extends mt{constructor(e){super(e),this._controllerReverseMap=new WeakMap,this.transport="rpc",this.controllers=new M,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(Ks,"RpcApi");var ht=Ks;var Tp,Vs=class Vs extends b{constructor(){super(null),this[Tp]=new WeakMap,this.id="",this.info={},this.references=new M,this.types=new ie,this.node[B]=this.types,this.node.findDataType=this._findDataType.bind(this)}getDataTypeNs(e){let t=e instanceof x?this._findDataType(e.name||""):this._findDataType(e);if(t)return this[xe].get(t)}findDocument(e){if(this.id===e)return this;for(let t of this.references.values()){if(t.id===e)return t;let r=t.findDocument(e);if(r)return r}}get httpApi(){if(!(this.api&&this.api instanceof ut))throw new TypeError("The document do not contains HttpApi instance");return this.api}get rpcApi(){if(!(this.api&&this.api instanceof ht))throw new TypeError("The document do not contains RpcApi instance");return this.api}toJSON(){return this.export()}export(e){let t=(0,Ep.omitUndefined)({spec:m.SpecVersion,id:this.id,url:this.url,info:F(this.info,!0)});if(this.references.size){let r=0,i={};for(let[n,s]of this.references.entries())s[De]||(i[n]={id:s.id,url:s.url,info:F(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,_p.md5)(JSON.stringify(e)),this[xe]=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=lo.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[xe].set(i,p!=null&&p[De]?"":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[xe].set(i,p!=null&&p[De]?"":s),i}}};a(Vs,"ApiDocument");var Ye=Vs;Tp=xe;function Ge(o,e,t){let r=Ni(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"&&Or(this,o,r)}}}[n];if(typeof o=="function"&&xr(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===m.ComplexType.Kind||c.kind===m.MappedType.Kind||c.kind===m.MixinType.Kind))throw new TypeError(`Class "${o}" is not a ${m.ComplexType.Kind}`)}let p={...t,kind:"MappedType",base:o};return e.pick&&(p.pick=e.pick),e.omit&&(p.omit=e.omit),e.partial&&(p.partial=e.partial),e.required&&(p.required=e.required),Reflect.defineMetadata(d,p,s),typeof o=="function"&&Je._applyMixin(s,o,{...e,isInheritedPredicate:r}),s}a(Ge,"createMappedClass");function Xc(o,e,t){return Ge(o,{omit:e},t)}a(Xc,"OmitType");function Zc(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return Ge(o,{partial:t},r)}a(Zc,"PartialType");function Hc(o,e,t){return Ge(o,{pick:e},t)}a(Hc,"PickType");function el(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return Ge(o,{required:t},r)}a(el,"RequiredType");var Dp=require("@jsopen/objects");var xp=require("@jsopen/objects"),Op=require("ts-gems");var Qe=a(function(...o){var i;if(!this)return Qe[N].apply(void 0,o);let[e,t]=o;if(b.call(this,e),!$.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,Op.asMutable)(this);r.kind=m.RpcController.Kind,r.types=r.node[B]=new ie,r.operations=new M,r.headers=[],r.name=t.name,r.description=t.description,r.instance=t.instance,r.ctor=t.ctor,r._controllerReverseMap=new WeakMap,(i=r._initialize)==null||i.call(r,t)},"RpcController"),Js=class Js extends b{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 Qe)return this.node.parent.element.findHeader(e,t)}toString(){return`[RpcController ${this.name}]`}toJSON(){let e=(0,xp.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}[Dt](){return`[${Nt}RpcController${St+this.name+ot}]`}};a(Js,"RpcControllerClass");var zs=Js;Qe.prototype=zs.prototype;Object.assign(Qe,ar);Qe[N]=ar;var gp=require("@jsopen/objects"),wp=require("ts-gems");var ur=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');dt.call(this,o,e);let t=(0,wp.asMutable)(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?cr(e.name,{includeFlags:"i",excludeFlags:"m"}):e.name),t.deprecated=e.deprecated,t.required=e.required},"RpcHeader"),Ys=class Ys extends dt{toJSON(){return(0,gp.omitUndefined)({...super.toJSON(),name:this.name,required:this.required,deprecated:this.deprecated})}};a(Ys,"RpcHeaderClass");var Ws=Ys;ur.prototype=Ws.prototype;var Rp=require("@jsopen/objects"),bp=require("ts-gems");var dr=a(function(...o){if(!this){let[i,n]=o,s=[];return dr[N].call(void 0,s,i,n)}let[e,t]=o;if(b.call(this,e),!$.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,bp.asMutable)(this);r.headers=[],r.types=r.node[B]=new ie,r.name=t.name,r.description=t.description,r.channel=t.channel,t!=null&&t.payloadType&&(r.payloadType=(t==null?void 0:t.payloadType)instanceof x?t.payloadType:r.owner.node.getDataType(t.payloadType)),t!=null&&t.keyType&&(r.keyType=(t==null?void 0:t.keyType)instanceof x?t.keyType:r.owner.node.getDataType(t.keyType))},"RpcOperation"),Qs=class Qs extends b{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,Rp.omitUndefined)({kind:m.RpcOperation.Kind,description:this.description,channel:this.channel,payloadType:this.payloadType.name?this.payloadType.name:this.payloadType.toJSON(),keyType:this.keyType?this.keyType.name?this.keyType.name:this.keyType.toJSON():void 0,response:(t=this.response)==null?void 0:t.toJSON()});if(this.headers.length){e.headers=[];for(let r of this.headers)e.headers.push(r.toJSON())}return e}};a(Qs,"RpcOperationClass");var Gs=Qs;dr.prototype=Gs.prototype;dr[N]=Ur;var Ap=require("@jsopen/objects");var Xs=class Xs extends b{constructor(e,t){super(e),this.headers=[],this.channel=t==null?void 0:t.channel,this.description=t==null?void 0:t.description,t!=null&&t.payloadType?this.payloadType=(t==null?void 0:t.payloadType)instanceof x?t.payloadType:this.owner.node.getDataType(t.payloadType):this.payloadType=this.owner.node.getDataType("any"),t!=null&&t.keyType&&(this.keyType=(t==null?void 0:t.keyType)instanceof x?t.keyType:this.owner.node.getDataType(t.keyType))}findHeader(e){let t=e.toLowerCase(),r;for(r of this.headers)if(typeof r.name=="string"&&(r._nameLower=r._nameLower||r.name.toLowerCase(),r._nameLower===t)||r.name instanceof RegExp&&r.name.test(e))return r}toJSON(){let e=(0,Ap.omitUndefined)({description:this.description,channel:this.channel,payloadType:this.payloadType.name?this.payloadType.name:this.payloadType.toJSON(),keyType:this.keyType?this.keyType.name?this.keyType.name:this.keyType.toJSON():void 0});if(this.headers.length){e.headers=[];for(let t of this.headers)e.headers.push(t.toJSON())}return e}};a(Xs,"RpcOperationResponse");var Mi=Xs;var Zs=class Zs{static async createApi(e,t){let r=new ht(t);return t.controllers&&await e.enterAsync(".controllers",async()=>{if(Array.isArray(t.controllers))for(let i of t.controllers){let n=await this._createController(e,r,i);n&&r.controllers.set(n.name,n)}else for(let[i,n]of Object.entries(t.controllers)){let s=await this._createController(e,r,n,i);s&&r.controllers.set(s.name,s)}}),r}static async _createController(e,t,r,i){typeof r=="function"&&!(0,Dp.isConstructor)(r)&&(r=r()),r=await me(r);let n,s,p;if(typeof r=="function"){if(s=Reflect.getMetadata(se,r),!s)return e.addError(`Class "${r.name}" doesn't have a valid RpcController metadata`);n=r}else n=Object.getPrototypeOf(r).constructor,s=Reflect.getMetadata(se,n),s?p=r:(s=r,r.instance==="object"&&(p=r.instance,n=Object.getPrototypeOf(p).constructor));if(!s)return e.addError(`Class "${n.name}" is not decorated with RpcController()`);if(i=i||s.name,!i)throw new TypeError("Controller name required");let c=new Qe(t,{...s,name:i,instance:p,ctor:n});return s.types&&await e.enterAsync(".types",async()=>{await P.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 w={...O};await e.enterAsync(".type",async()=>{O.type&&(w.type=c.node.findDataType(O.type)),!w.type&&typeof O.type=="object"&&(w.type=await P.createDataType(e,c,O.type)),w.type||(w.type=c.node.getDataType("any"))});let T=new ur(c,w);c.headers.push(T)})}),s.operations&&await e.enterAsync(".operations",async()=>{for(let[l,O]of Object.entries(s.operations))await e.enterAsync(`[${l}]`,async()=>{let w=new dr(c,{...O,name:l,types:void 0,payloadType:void 0,keyType:void 0});await this._initRpcOperation(e,w,O),c.operations.set(w.name,w)})}),c}static async _initRpcOperation(e,t,r){r.types&&await e.enterAsync(".types",async()=>{await P.addDataTypes(e,t,r.types)}),t.payloadType=await P.resolveDataType(e,t,r.payloadType),r.keyType&&(t.keyType=await P.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 P.resolveDataType(e,t,n.type)});let p=new ur(t,s);t.headers.push(p)})}),r.response&&await e.enterAsync(".response",async()=>{let i=new Mi(t,{...r.response,payloadType:void 0,keyType:void 0});await this._initRpcOperationResponse(e,i,r.response),t.response=i})}static async _initRpcOperationResponse(e,t,r){t.payloadType=await P.resolveDataType(e,t,r.payloadType),r.keyType&&(t.keyType=await P.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 P.resolveDataType(e,t,n.type)});let p=new ur(t,s);t.headers.push(p)})})}};a(Zs,"RpcApiFactory");var Fi=Zs;var tl="https://oprajs.com/spec/v"+m.SpecVersion,Ii=class Ii{constructor(){this._allDocuments={}}static async createDocument(e,t){let r=new Ii,i=t instanceof ue?t:new ue(t);try{let n=new Ye;if(await r.initDocument(n,i,e),i.error.details.length)throw i.error;return n}catch(n){try{n instanceof nt||i.addError(n)}catch{}if(!i.error.message){let s=i.error.details.length;i.error.message=`(${s}) error${s>1?"s":""} found in document schema.`,i.showErrorDetails&&(i.error.message+=i.error.details.map(p=>`
6
+ "use strict";var Qp=Object.create;var yr=Object.defineProperty;var Gp=Object.getOwnPropertyDescriptor;var Xp=Object.getOwnPropertyNames;var Zp=Object.getPrototypeOf,Hp=Object.prototype.hasOwnProperty;var a=(o,e)=>yr(o,"name",{value:e,configurable:!0});var Tr=(o,e)=>{for(var t in e)yr(o,t,{get:e[t],enumerable:!0})},da=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Xp(e))!Hp.call(o,i)&&i!==t&&yr(o,i,{get:()=>e[i],enumerable:!(r=Gp(e,i))||r.enumerable});return o};var _t=(o,e,t)=>(t=o!=null?Qp(Zp(o)):{},da(e||!o||!o.__esModule?yr(t,"default",{value:o,enumerable:!0}):t,o)),ec=o=>da(yr({},"__esModule",{value:!0}),o);var Dl={};Tr(Dl,{AnyType:()=>xi,ApiBase:()=>De,ApiDocument:()=>He,ApiDocumentFactory:()=>pa,ApiField:()=>$,BUILTIN:()=>Se,BadRequestError:()=>Ki,Base64Type:()=>ui,BaseI18n:()=>Ea,BigintType:()=>gi,BooleanType:()=>Ai,CLASS_NAME_PATTERN:()=>F,ComplexType:()=>ie,ConflictError:()=>zi,DATATYPE_METADATA:()=>d,DECODER:()=>E,DECORATOR:()=>A,DataType:()=>x,DataTypeMap:()=>J,DateTimeType:()=>Pt,DateTimeTypeTz:()=>jt,DateType:()=>It,DocumentElement:()=>w,DocumentInitContext:()=>ue,DocumentNode:()=>Lr,ENCODER:()=>g,EmailType:()=>re,EnumType:()=>te,FailedDependencyError:()=>Wi,FieldPathType:()=>Y,FieldsProjection:()=>Me,FilterType:()=>Be,ForbiddenError:()=>xr,HTTP_CONTROLLER_METADATA:()=>se,HttpApi:()=>yt,HttpController:()=>ne,HttpHeaderCodes:()=>Qi,HttpMediaType:()=>Ne,HttpMultipartField:()=>Br,HttpOperation:()=>D,HttpOperationResponse:()=>Kr,HttpParameter:()=>mr,HttpRequestBody:()=>Vr,HttpStatusCode:()=>b,HttpStatusMessages:()=>sc,HttpStatusRange:()=>fr,I18n:()=>xt,IntegerType:()=>ut,InternalServerError:()=>Xi,IssueSeverity:()=>yo,MQApi:()=>Et,MQController:()=>tt,MQHeader:()=>dr,MQOperation:()=>hr,MQ_CONTROLLER_METADATA:()=>q,MappedType:()=>Xe,MethodNotAllowedError:()=>Hi,MimeTypes:()=>N,MixinType:()=>dt,NAMESPACE_PATTERN:()=>To,NotAcceptableError:()=>to,NotFoundError:()=>io,NullType:()=>Di,NumberType:()=>_e,ObjectIdType:()=>yi,ObjectType:()=>Si,OmitType:()=>gl,OperationResult:()=>oe,OpraDocumentError:()=>ct,OpraException:()=>de,OpraFilter:()=>Bt,OpraHttpError:()=>M,OpraSchema:()=>m,PartialDateType:()=>Wt,PartialType:()=>wl,PermissionError:()=>no,PickType:()=>Al,RPC_CONTROLLER_METADATA:()=>lc,RequiredType:()=>Rl,ResourceConflictError:()=>ao,ResourceNotAvailableError:()=>co,ResponsiveMap:()=>S,SimpleType:()=>u,StringType:()=>Ge,TimeType:()=>Qt,UnauthorizedError:()=>fo,UnionType:()=>ht,UnprocessableEntityError:()=>uo,UrlType:()=>Ei,UuidType:()=>Cr,WSApi:()=>zr,WSController:()=>Jr,WSOperation:()=>Ui,WS_CONTROLLER_METADATA:()=>cc,classes:()=>ua,cloneObject:()=>L,getErrorStack:()=>pc,getStackFileName:()=>ac,i18n:()=>Wr,inheritPropertyInitializers:()=>gr,isBlob:()=>Ec,isFormData:()=>_c,isReadable:()=>hc,isReadableStream:()=>Tc,isStream:()=>Qr,isURL:()=>xc,isWritable:()=>yc,kCtorMap:()=>wr,kDataTypeMap:()=>I,kTypeNSMap:()=>xe,mergePrototype:()=>Or,parse:()=>xo,parseFieldsProjection:()=>_o,resolveThunk:()=>me,safeJsonStringify:()=>dc,translate:()=>nc,uid:()=>Yp.uid});module.exports=ec(Dl);var F4=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 va=require("@jsopen/objects"),Fa=require("valgen");var _a=require("@jsopen/objects");var Ta=_t(require("@browsery/i18next"),1),_r=require("fast-tokenizer");var tc=/\\(.)/g,rc=/(\\)/g;function ha(o){return o.replace(rc,"\\\\")}a(ha,"escapeString");function ya(o){return o.replace(tc,"$1")}a(ya,"unescapeString");var Ea=Object.getPrototypeOf(Ta.default.createInstance()).constructor,Er=class Er extends Ea{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 Er(e,t)}static createInstance(e,t){return new Er(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,_r.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,_r.splitString)(n,{delimiters:"?",quotes:!0,brackets:{"{":"}"}}),p=ya(n.substring((s[0]||"").length+1));n=s[0]||"";let c=[],l=null;for(let R of(0,_r.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 ic}};a(Er,"I18n");var xt=Er,ic=xt.createInstance();var oc=/(\))/g;function nc(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?"?"+ha(i).replace(oc,"\\$1"):"")+")"}a(nc,"translate");var Wr=xt.createInstance();Wr.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 Wr.deep(this.message)}toJSON(){var t;let e="production";return(0,_a.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
+ `):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 de=qi;var Bi=class Bi extends de{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(Bi,"OpraHttpError");var M=Bi;var Vi=class Vi extends M{constructor(){super(...arguments),this.status=400}init(e){super.init({message:"Bad request",code:"BAD_REQUEST",...e})}};a(Vi,"BadRequestError");var Ki=Vi;var Ji=class Ji extends M{constructor(){super(...arguments),this.status=409}init(e){super.init({message:"Conflict",code:"CONFLICT",...e})}};a(Ji,"ConflictError");var zi=Ji;var Yi=class Yi extends M{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(Yi,"FailedDependencyError");var Wi=Yi;var Qi;(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"})(Qi||(Qi={}));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 sc={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 Gi=class Gi extends M{constructor(){super(...arguments),this.status=b.FORBIDDEN}init(e){super.init({message:"You are not authorized to perform this action",code:"FORBIDDEN",...e})}};a(Gi,"ForbiddenError");var xr=Gi;var Zi=class Zi extends M{constructor(){super(...arguments),this.status=500}init(e){super.init({message:"Internal server error",code:"INTERNAL_SERVER_ERROR",severity:"fatal",...e})}};a(Zi,"InternalServerError");var Xi=Zi;var eo=class eo extends M{constructor(){super(...arguments),this.status=405}init(e){super.init({message:"Method not allowed",code:"METHOD_NOT_ALLOWED",...e})}};a(eo,"MethodNotAllowedError");var Hi=eo;var ro=class ro extends M{constructor(){super(...arguments),this.status=406}init(e){super.init({message:"Not Acceptable",code:"NOT_ACCEPTABLE",...e})}};a(ro,"NotAcceptableError");var to=ro;var oo=class oo extends M{constructor(){super(...arguments),this.status=404}init(e){super.init({message:"Not found",code:"NOT_FOUND",...e})}};a(oo,"NotFoundError");var io=oo;var so=class so extends xr{init(e){super.init({message:"You dont have permission for this operation",code:"PERMISSION_ERROR",...e})}};a(so,"PermissionError");var no=so;var po=class po extends M{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(po,"ResourceConflictError");var ao=po;var lo=class lo extends M{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(lo,"ResourceNotAvailableError");var co=lo;var mo=class mo extends M{constructor(){super(...arguments),this.status=401}init(e){super.init({message:"You don't have permission to perform this action",code:"UNAUTHORIZED",...e})}};a(mo,"UnauthorizedError");var fo=mo;var ho=class ho extends M{constructor(){super(...arguments),this.status=422}init(e){super.init({message:"Unprocessable entity",severity:"error",code:"UNPROCESSABLE_ENTITY",...e})}};a(ho,"UnprocessableEntityError");var uo=ho;var yo;(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"}})(yo||(yo={}));BigInt.prototype.toJSON||(BigInt.prototype.toJSON=function(){return this.toString()});RegExp.prototype.toJSON||(RegExp.prototype.toJSON=function(){return this.toString()});var xa=require("@jsopen/objects"),Oa=_t(require("putil-promisify"),1);async function me(o){return o=Oa.default.isPromise(o)?await o:o,typeof o=="function"?(0,xa.isConstructor)(o)?o:await o():o}a(me,"resolveThunk");var ga=/^(?:file:\/\/)?(.+)$/;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?ga.exec(r):void 0;return i?i[1]:""}return""}a(ac,"getStackFileName");function pc(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?ga.exec(r):void 0;return i?i[1]:""}return""}a(pc,"getErrorStack");function Or(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(Or,"mergePrototype");function gr(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(gr,"inheritPropertyInitializers");var Ar=require("@jsopen/objects");var d=Symbol.for("opra.type.metadata"),se=Symbol("opra.http-controller.metadata"),q=Symbol("opra.mq-controller.metadata"),cc=Symbol("opra.ws-controller.metadata"),lc=Symbol("opra.rpc-controller.metadata"),E=Symbol.for("opra.type.decoder"),g=Symbol("opra.type.encoder"),A=Symbol.for("DECORATOR"),Se=Symbol.for("BUILTIN"),To=/([a-z$_]\w+):(.+)/i,F=/^[a-z][\w_]*$/i,I=Symbol.for("kDataTypeMap"),wr=Symbol.for("kCtorMap"),xe=Symbol.for("kTypeNSMap");function L(o,e){return(0,Ar.merge)({},o,{deep:a(t=>(0,Ar.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,Ar.isPlainObject)(i)||Array.isArray(i))}})}a(L,"cloneObject");var Eo=require("fast-tokenizer");var fc=/^([+-])?([a-z_$]\w*)$/i,mc=/[^.]\(/g,Oo=class Oo{};a(Oo,"FieldsProjection");var Me=Oo;(function(o){let t=class t{};a(t,"Item");let e=t;o.Item=e})(Me||(Me={}));function _o(o,e){let t=Array.isArray(o)?o:[o];if(!(t&&t.length))return;let r=new Me;for(let i of t)e||(i=i.toLowerCase()),xo(i,r);return r}a(_o,"parseFieldsProjection");function xo(o,e){o=o.replace(mc,r=>r.charAt(0)+"."+r.substring(1));let t=(0,Eo.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,Eo.splitString)(i,{delimiters:",",brackets:!0,keepBrackets:!0});for(let l of c)xo(l,e);continue}let n=fc.exec(i);if(!n)throw new TypeError(`Invalid field path (${o})`);let s=n[2],p=e[s]=e[s]||new Me.Item;n[1]&&(p.sign=n[1]),r===t.length-1?delete p.projection:e=p.projection=p.projection||new Me}}a(xo,"parse");function uc(o){return o&&typeof o.forEach=="function"}a(uc,"isMap");var X=Symbol.for("kEntries"),he=Symbol.for("kKeyMap"),Yr=Symbol.for("kWellKnownKeys"),go=Symbol.for("kOptions"),Ot=Symbol.for("kSize"),wo=class wo{constructor(e,t){Object.defineProperty(this,Ot,{value:0,enumerable:!1,writable:!0}),Object.defineProperty(this,X,{value:{},enumerable:!1,writable:!0}),Object.defineProperty(this,he,{value:{},enumerable:!1,writable:!0}),Object.defineProperty(this,Yr,{value:{},enumerable:!1,writable:!0});let r=!!(t!=null&&t.caseSensitive);Object.defineProperty(this,go,{value:{caseSensitive:r},enumerable:!1}),t!=null&&t.wellKnownKeys&&t.wellKnownKeys.forEach(i=>{r?this[Yr][i]=i:this[Yr][i.toLowerCase()]=i}),this.clear(),e&&this.setAll(e)}get size(){return this[Ot]}clear(){Object.keys(this[X]).forEach(e=>delete this[X][e]),Object.keys(this[he]).forEach(e=>delete this[he][e]),this[Ot]=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[Ot]++,this[he][r]=e,this}setAll(e){return uc(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[he])[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[he][t],r||this[Ot]--,r}sort(e){let t={...this[X]},r={...this[he]},i=Array.from(this.keys());e?i.sort(e):i.sort(),this.clear();for(let n of i)this[X][n]=t[n],this[he][n]=r[n];return this[Ot]=i.length,this}toObject(){let e={};for(let[t,r]of Object.entries(this[he]))e[r]=this[X][t];return e}[Symbol.iterator](){return this.entries()}get[Symbol.toStringTag](){return"[Object ResponsiveMap]"}_getOriginalKey(e){if(!e||this[go].caseSensitive)return e;let t=this._getStoringKey(e);return this[he][t]??this[Yr][t]??e}_getStoringKey(e){return this[go].caseSensitive?e:e.toLowerCase()}};a(wo,"ResponsiveMap");var S=wo;function dc(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(dc,"safeJsonStringify");function Qr(o){return o!==null&&typeof o=="object"&&typeof o.pipe=="function"}a(Qr,"isStream");function hc(o){return Qr(o)&&typeof o._read=="function"&&typeof o._readableState=="object"}a(hc,"isReadable");function yc(o){return Qr(o)&&typeof o._write=="function"}a(yc,"isWritable");function Tc(o){return Qr(o)&&typeof o.getReader=="function"&&typeof o.pipeThrough=="function"&&typeof o.pipeTo=="function"}a(Tc,"isReadableStream");function Ec(o){return o!==null&&typeof o=="object"&&typeof o.size=="number"&&typeof o.arrayBuffer=="function"&&typeof o.stream=="function"}a(Ec,"isBlob");function _c(o){return o!==null&&typeof o.constructor=="function"&&o.constructor.name==="FormData"&&typeof o.append=="function"&&typeof o.getAll=="function"}a(_c,"isFormData");function xc(o){return o!==null&&typeof o=="object"&&typeof o.host=="string"&&typeof o.href=="string"}a(xc,"isURL");var Ao=class Ao{constructor(){this.kind=Object.getPrototypeOf(this).constructor.name}};a(Ao,"Ast");var Rr=Ao;var Ro=class Ro extends Rr{};a(Ro,"Expression");var V=Ro;var bo=class bo extends V{};a(bo,"Term");var it=bo;var Do=class Do extends it{constructor(e){super(),this.value=e}toString(){return""+this.value}};a(Do,"Literal");var P=Do;var No=class No extends V{constructor(){super(),this.items=[]}append(e,t){return this.items.push(new Gr({op:e,expression:t})),this}toString(){return this.items.map((e,t)=>(t>0?e.op:"")+e.expression).join("")}};a(No,"ArithmeticExpression");var ot=No,So=class So{constructor(e){Object.assign(this,e)}};a(So,"ArithmeticExpressionItem");var Gr=So;var Mo=class Mo extends it{constructor(e){super(),this.items=e}toString(){return"["+this.items.map(e=>""+e).join(",")+"]"}};a(Mo,"ArrayExpression");var Oe=Mo;var Oc=/\w/,vo=class vo extends V{constructor(e){super(),Object.assign(this,e)}toString(){return`${this.left}${Oc.test(this.op)?" "+this.op+" ":this.op}${this.right}`}};a(vo,"ComparisonExpression");var ye=vo;var Fo=class Fo extends V{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(Fo,"LogicalExpression");var Te=Fo;var Io=class Io extends V{constructor(e){super(),this.expression=e}toString(){return`(${this.expression})`}};a(Io,"NegativeExpression");var br=Io;var Lo=class Lo extends V{constructor(e){super(),this.expression=e}toString(){return`(${this.expression})`}};a(Lo,"ParenthesizedExpression");var ge=Lo;var Po=class Po extends P{constructor(e){super(e)}};a(Po,"BooleanLiteral");var nt=Po;var Aa=require("putil-varhelpers");var ko=class ko extends TypeError{};a(ko,"SyntaxError");var Xr=ko,jo=class jo extends TypeError{constructor(e){super(typeof e=="string"?e:e==null?void 0:e.message),typeof e=="object"&&Object.assign(this,e)}};a(jo,"FilterValidationError");var Ee=jo,Co=class Co extends Error{constructor(e,t){super(e),Object.assign(this,t)}};a(Co,"FilterParseError");var Zr=Co;var gc=/'/g,wc=/(\\)/g,Ac=/\\(.)/g;function Rc(o){return o.replace(wc,"\\\\")}a(Rc,"escapeString");function bc(o){return o.replace(Ac,"$1")}a(bc,"unescapeString");function ve(o){return"'"+Rc(o).replace(gc,"\\'")+"'"}a(ve,"quoteFilterString");function Dr(o){return o&&(o.startsWith("'")||o.startsWith('"'))&&o.endsWith(o.charAt(0))?bc(o.substring(1,o.length-1)):o}a(Dr,"unquoteFilterString");var wa=new Date(0),Uo=class Uo extends P{constructor(e){if(super(""),e instanceof Date){this.value=e.toISOString();return}if(typeof e=="string"&&(0,Aa.toDateDef)(e,wa)!==wa){this.value=e;return}throw new Ee(`Invalid date value "${e}"`)}toString(){return ve(this.value)}};a(Uo,"DateLiteral");var Fe=Uo;var ba=require("putil-varhelpers");var Ra=new Date(0),$o=class $o extends P{constructor(e){if(super(""),e instanceof Date){this.value=e.toISOString();return}if(typeof e=="string"&&(0,ba.toDateDef)(e,Ra)!==Ra){this.value=e;return}throw new Ee(`Invalid date-time value "${e}"`)}toString(){return ve(this.value)}};a($o,"DateTimeLiteral");var Nr=$o;var qo=class qo extends P{constructor(){super(null),this.value=null}};a(qo,"NullLiteral");var st=qo;var Bo=class Bo extends P{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 Ee(`Invalid number literal ${e}`)}toString(){return typeof this.value=="bigint"?(""+this.value).replace(/n$/,""):""+this.value}};a(Bo,"NumberLiteral");var we=Bo;var Ko=class Ko extends P{constructor(e){super(""+e)}};a(Ko,"QualifiedIdentifier");var ae=Ko;var Vo=class Vo extends P{constructor(e){super(""+e)}toString(){return ve(this.value)}};a(Vo,"StringLiteral");var at=Vo;var Dc=/^([01]\d|2[0-3]):([0-5]\d)(:[0-5]\d)?(\.(\d+))?$/,zo=class zo extends P{constructor(e){if(super(""),e instanceof Date){this.value=Hr(e.getHours())+":"+Hr(e.getMinutes())+(e.getSeconds()?":"+Hr(e.getSeconds()):"")+(e.getMilliseconds()?"."+Hr(e.getMilliseconds()):"");return}if(typeof e=="string"&&Dc.test(e)){this.value=e;return}throw new Ee(`Invalid time value "${e}"`)}toString(){return ve(this.value)}};a(zo,"TimeLiteral");var pt=zo;function Hr(o){return o<=9?"0"+o:""+o}a(Hr,"pad");var fi=require("@browsery/antlr4");var pe=require("@browsery/antlr4");var G=class G extends pe.Lexer{constructor(e){super(e),this._interp=new pe.LexerATNSimulator(this,G._ATN,G.DecisionsToDFA,new pe.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 pe.ATNDeserializer().deserialize(G._serializedATN)),G.__ATN}};a(G,"OpraFilterLexer");var y=G;y.T__0=1;y.T__1=2;y.T__2=3;y.T__3=4;y.T__4=5;y.T__5=6;y.T__6=7;y.T__7=8;y.T__8=9;y.T__9=10;y.T__10=11;y.T__11=12;y.T__12=13;y.T__13=14;y.T__14=15;y.T__15=16;y.T__16=17;y.T__17=18;y.T__18=19;y.T__19=20;y.T__20=21;y.T__21=22;y.T__22=23;y.T__23=24;y.T__24=25;y.T__25=26;y.T__26=27;y.T__27=28;y.T__28=29;y.T__29=30;y.T__30=31;y.T__31=32;y.T__32=33;y.T__33=34;y.IDENTIFIER=35;y.POLAR_OP=36;y.DATE=37;y.DATETIME=38;y.TIME=39;y.NUMBER=40;y.INTEGER=41;y.STRING=42;y.WHITESPACE=43;y.EOF=pe.Token.EOF;y.channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];y.literalNames=[null,"'('","')'","'not'","'!'","'.'","'@'","'['","','","']'","'true'","'false'","'null'","'Infinity'","'infinity'","'+'","'-'","'*'","'/'","'<='","'<'","'>'","'>='","'='","'!='","'in'","'!in'","'like'","'!like'","'ilike'","'!ilike'","'and'","'or'","'&&'","'||'"];y.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"];y.modeNames=["DEFAULT_MODE"];y.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"];y._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];y.DecisionsToDFA=y._ATN.decisionToState.map((o,e)=>new pe.DFA(o,e));var Da=y;var h=require("@browsery/antlr4");var _=class _ extends h.Parser{get grammarFileName(){return"OpraFilter.g4"}get literalNames(){return _.literalNames}get symbolicNames(){return _.symbolicNames}get ruleNames(){return _.ruleNames}get serializedATN(){return _._serializedATN}createFailedPredicateException(e,t){return new h.FailedPredicateException(this,e,t)}constructor(e){super(e),this._interp=new h.ParserATNSimulator(this,_._ATN,_.DecisionsToDFA,new h.PredictionContextCache)}root(){let e=new Jo(this,this._ctx,this.state);this.enterRule(e,0,_.RULE_root);try{this.enterOuterAlt(e,1),this.state=34,this.expression(0),this.state=35,this.match(_.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,_.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 Qo(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 Wo(this,i),this._ctx=i,n=i,this.state=42,this.match(_.T__0),this.state=43,this.parenthesizedItem(),this.state=44,this.match(_.T__1);break;case 3:case 4:i=new Yo(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 Sr(this,new ee(this,t,r)),this.pushNewRecursionContext(i,s,_.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 ei(this,this._ctx,this.state);this.enterRule(e,4,_.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 ti(this,this._ctx,this.state);this.enterRule(e,6,_.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 ri(this,this._ctx,this.state);this.enterRule(e,8,_.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,_.RULE_value);try{switch(this.state=77,this._errHandler.sync(this),this._input.LA(1)){case 40:e=new on(this,e),this.enterOuterAlt(e,1),this.state=69,this.match(_.NUMBER);break;case 13:case 14:e=new tn(this,e),this.enterOuterAlt(e,2),this.state=70,this.infinity();break;case 10:case 11:e=new rn(this,e),this.enterOuterAlt(e,3),this.state=71,this.boolean_();break;case 12:e=new Xo(this,e),this.enterOuterAlt(e,4),this.state=72,this.null_();break;case 38:e=new Zo(this,e),this.enterOuterAlt(e,5),this.state=73,this.match(_.DATETIME);break;case 37:e=new en(this,e),this.enterOuterAlt(e,6),this.state=74,this.match(_.DATE);break;case 39:e=new Go(this,e),this.enterOuterAlt(e,7),this.state=75,this.match(_.TIME);break;case 42:e=new Ho(this,e),this.enterOuterAlt(e,8),this.state=76,this.match(_.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 Mr(this,this._ctx,this.state);this.enterRule(e,12,_.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(_.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 ii(this,this._ctx,this.state);this.enterRule(e,14,_.RULE_externalConstant);try{this.enterOuterAlt(e,1),this.state=89,this.match(_.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 gt(this,this._ctx,this.state);this.enterRule(e,16,_.RULE_identifier);try{this.enterOuterAlt(e,1),this.state=92,this.match(_.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 oi(this,this._ctx,this.state);this.enterRule(e,18,_.RULE_arrayValue);let t;try{this.enterOuterAlt(e,1);{for(this.state=94,this.match(_.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(_.T__7),this.state=97,this.value(),this.state=102,this._errHandler.sync(this),t=this._input.LA(1);this.state=103,this.match(_.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 ni(this,this._ctx,this.state);this.enterRule(e,20,_.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 si(this,this._ctx,this.state);this.enterRule(e,22,_.RULE_null);try{this.enterOuterAlt(e,1),this.state=107,this.match(_.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 ai(this,this._ctx,this.state);this.enterRule(e,24,_.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 nn(this,this._ctx,this.state);this.enterRule(e,26,_.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 pi(this,this._ctx,this.state);this.enterRule(e,28,_.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 ci(this,this._ctx,this.state);this.enterRule(e,30,_.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 sn(this,this._ctx,this.state);this.enterRule(e,32,_.RULE_polarityOperator);try{this.enterOuterAlt(e,1),this.state=117,this.match(_.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 _.__ATN||(_.__ATN=new h.ATNDeserializer().deserialize(_._serializedATN)),_.__ATN}};a(_,"OpraFilterParser");var f=_;f.T__0=1;f.T__1=2;f.T__2=3;f.T__3=4;f.T__4=5;f.T__5=6;f.T__6=7;f.T__7=8;f.T__8=9;f.T__9=10;f.T__10=11;f.T__11=12;f.T__12=13;f.T__13=14;f.T__14=15;f.T__15=16;f.T__16=17;f.T__17=18;f.T__18=19;f.T__19=20;f.T__20=21;f.T__21=22;f.T__22=23;f.T__23=24;f.T__24=25;f.T__25=26;f.T__26=27;f.T__27=28;f.T__28=29;f.T__29=30;f.T__30=31;f.T__31=32;f.T__32=33;f.T__33=34;f.IDENTIFIER=35;f.POLAR_OP=36;f.DATE=37;f.DATETIME=38;f.TIME=39;f.NUMBER=40;f.INTEGER=41;f.STRING=42;f.WHITESPACE=43;f.EOF=h.Token.EOF;f.RULE_root=0;f.RULE_expression=1;f.RULE_comparisonLeft=2;f.RULE_comparisonRight=3;f.RULE_parenthesizedItem=4;f.RULE_value=5;f.RULE_qualifiedIdentifier=6;f.RULE_externalConstant=7;f.RULE_identifier=8;f.RULE_arrayValue=9;f.RULE_boolean=10;f.RULE_null=11;f.RULE_infinity=12;f.RULE_arithmeticOperator=13;f.RULE_comparisonOperator=14;f.RULE_logicalOperator=15;f.RULE_polarityOperator=16;f.literalNames=[null,"'('","')'","'not'","'!'","'.'","'@'","'['","','","']'","'true'","'false'","'null'","'Infinity'","'infinity'","'+'","'-'","'*'","'/'","'<='","'<'","'>'","'>='","'='","'!='","'in'","'!in'","'like'","'!like'","'ilike'","'!ilike'","'and'","'or'","'&&'","'||'"];f.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"];f.ruleNames=["root","expression","comparisonLeft","comparisonRight","parenthesizedItem","value","qualifiedIdentifier","externalConstant","identifier","arrayValue","boolean","null","infinity","arithmeticOperator","comparisonOperator","logicalOperator","polarityOperator"];f._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];f.DecisionsToDFA=f._ATN.decisionToState.map((o,e)=>new h.DFA(o,e));var Na=f,an=class an extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}expression(){return this.getTypedRuleContext(ee,0)}EOF(){return this.getToken(f.EOF,0)}get ruleIndex(){return f.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(an,"RootContext");var Jo=an,pn=class pn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.RULE_expression}copyFrom(e){super.copyFrom(e)}};a(pn,"ExpressionContext");var ee=pn,cn=class cn extends ee{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}parenthesizedItem(){return this.getTypedRuleContext(ri,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(cn,"ParenthesizedExpressionContext");var Wo=cn,ln=class ln 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(ln,"NegativeExpressionContext");var Yo=ln,fn=class fn extends ee{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}comparisonLeft(){return this.getTypedRuleContext(ei,0)}comparisonOperator(){return this.getTypedRuleContext(pi,0)}comparisonRight(){return this.getTypedRuleContext(ti,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(fn,"ComparisonExpressionContext");var Qo=fn,mn=class mn 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(ci,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(mn,"LogicalExpressionContext");var Sr=mn,un=class un extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}qualifiedIdentifier(){return this.getTypedRuleContext(Mr,0)}get ruleIndex(){return f.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(un,"ComparisonLeftContext");var ei=un,dn=class dn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}value(){return this.getTypedRuleContext(Z,0)}qualifiedIdentifier(){return this.getTypedRuleContext(Mr,0)}externalConstant(){return this.getTypedRuleContext(ii,0)}arrayValue(){return this.getTypedRuleContext(oi,0)}get ruleIndex(){return f.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(dn,"ComparisonRightContext");var ti=dn,hn=class hn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}expression(){return this.getTypedRuleContext(ee,0)}get ruleIndex(){return f.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(hn,"ParenthesizedItemContext");var ri=hn,yn=class yn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.RULE_value}copyFrom(e){super.copyFrom(e)}};a(yn,"ValueContext");var Z=yn,Tn=class Tn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}TIME(){return this.getToken(f.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(Tn,"TimeLiteralContext");var Go=Tn,En=class En extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}null_(){return this.getTypedRuleContext(si,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(En,"NullLiteralContext");var Xo=En,_n=class _n extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}DATETIME(){return this.getToken(f.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(_n,"DateTimeLiteralContext");var Zo=_n,xn=class xn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}STRING(){return this.getToken(f.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(xn,"StringLiteralContext");var Ho=xn,On=class On extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}DATE(){return this.getToken(f.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(On,"DateLiteralContext");var en=On,gn=class gn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}infinity(){return this.getTypedRuleContext(ai,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(gn,"InfinityLiteralContext");var tn=gn,wn=class wn extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}boolean_(){return this.getTypedRuleContext(ni,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(wn,"BooleanLiteralContext");var rn=wn,An=class An extends Z{constructor(e,t){super(e,t.parentCtx,t.invokingState),super.copyFrom(t)}NUMBER(){return this.getToken(f.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(An,"NumberLiteralContext");var on=An,Rn=class Rn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}identifier_list(){return this.getTypedRuleContexts(gt)}identifier(e){return this.getTypedRuleContext(gt,e)}get ruleIndex(){return f.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(Rn,"QualifiedIdentifierContext");var Mr=Rn,bn=class bn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}identifier(){return this.getTypedRuleContext(gt,0)}get ruleIndex(){return f.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(bn,"ExternalConstantContext");var ii=bn,Dn=class Dn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}IDENTIFIER(){return this.getToken(f.IDENTIFIER,0)}get ruleIndex(){return f.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(Dn,"IdentifierContext");var gt=Dn,Nn=class Nn 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 f.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(Nn,"ArrayValueContext");var oi=Nn,Sn=class Sn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(Sn,"BooleanContext");var ni=Sn,Mn=class Mn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(Mn,"NullContext");var si=Mn,vn=class vn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(vn,"InfinityContext");var ai=vn,Fn=class Fn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(Fn,"ArithmeticOperatorContext");var nn=Fn,In=class In extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(In,"ComparisonOperatorContext");var pi=In,Ln=class Ln extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}get ruleIndex(){return f.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(Ln,"LogicalOperatorContext");var ci=Ln,Pn=class Pn extends h.ParserRuleContext{constructor(e,t,r){super(t,r),this.parser=e}POLAR_OP(){return this.getToken(f.POLAR_OP,0)}get ruleIndex(){return f.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(Pn,"PolarityOperatorContext");var sn=Pn;var Sa=require("@browsery/antlr4");var kn=class kn extends P{constructor(e){super(""+e)}toString(){return"@"+super.toString()}};a(kn,"ExternalConstant");var li=kn;var jn=class jn extends Sa.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 ge(t)}visitParenthesizedItem(e){return this.visit(e.expression())}visitNegativeExpression(e){let t=this.visit(e.expression());return new br(t)}visitComparisonExpression(e){return new ye({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 Sr&&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 Te({op:e.logicalOperator().getText(),items:t})}visitQualifiedIdentifier(e){return new ae(e.getText())}visitExternalConstant(e){return new li(e.identifier().getText())}visitNullLiteral(){return new st}visitBooleanLiteral(e){return new nt(e.getText()==="true")}visitNumberLiteral(e){return new we(e.getText())}visitStringLiteral(e){return new at(Dr(e.getText()))}visitInfinityLiteral(){return new we(1/0)}visitDateLiteral(e){return new Fe(Dr(e.getText()))}visitDateTimeLiteral(e){return new Nr(Dr(e.getText()))}visitTimeLiteral(e){return new pt(Dr(e.getText()))}visitArrayValue(e){return new Oe(e.value_list().map(t=>this.visit(t)))}};a(jn,"FilterTreeVisitor");var vr=jn;var Ma=require("@browsery/antlr4");var Cn=class Cn extends Ma.ErrorListener{constructor(e){super(),this.errors=e}syntaxError(e,t,r,i,n,s){this.errors.push(new Zr(n,{recognizer:e,offendingSymbol:t,line:r,column:i,e:s}))}};a(Cn,"OpraErrorListener");var Fr=Cn;function Un(o,e){let t=new fi.CharStream(o),r=new Da(t),i=new fi.CommonTokenStream(r),n=new Na(i);n.buildParseTrees=!0;let s=[],p=new Fr(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
+ `)?" at line: "+R.line+" column: "+R.column:" at column: "+R.column));let O=new Xr(l.join(`
9
+ `));throw O.errors=s,O}return e=e||new vr,e.visit(c)}a(Un,"parse");var $n=class $n{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,va.omitUndefined)({...t,operators:r}))}normalizeFilter(e,t,r){let i=typeof e=="string"?Un(e):e;return this.normalizeFilterAst(i,[],t,r)}normalizeFilterAst(e,t,r,i){if(e instanceof ye){if(t.push(e),this.normalizeFilterAst(e.left,t,r),!(e.left instanceof ae&&e.left.field))throw new TypeError("Invalid filter query. Left side should be a data field.");let n=this._rules.get(e.left.value);if(!n)throw new de({message:`Field '${e.left.value}' is not available for filter operation`,code:"UNACCEPTED_FILTER_FIELD",details:{field:e.left.value}});if(n.operators&&!n.operators.includes(e.op))throw new de({message:`'${e.left.value}' field do not accept '${e.op}' filter operator`,code:"UNACCEPTED_FILTER_OPERATION",details:{field:e.left.value,operator:e.op}});return n.mappedField&&(e.left.value=n.mappedField),n.prepare&&(e.prepare=n.prepare),this.normalizeFilterAst(e.right,t,r),t.pop(),e}if(e instanceof Te)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof ot)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n.expression,t,r)),t.pop(),e;if(e instanceof Oe)return t.push(e),e.items.forEach(n=>this.normalizeFilterAst(n,t,r)),t.pop(),e;if(e instanceof ge)return t.push(e),this.normalizeFilterAst(e.expression,t,r),t.pop(),e;if(e instanceof ae&&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 P){let n=t.findLastIndex(s=>s instanceof ye);if(n>=0){let s=t[n];if((e===s.right||t[n+1]===s.right)&&s&&s.left instanceof ae&&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=Fa.isString:p=this._decoderCache.get(s.left.field),p||(p=s.left.field.type.generateCodec("decode",{scope:i,projection:"*",ignoreWriteonlyFields:!0,coerce:!0}),this._decoderCache.set(s.left.field,p)),e.value=p(e.value,{coerce:!0})}}}return e}toJSON(){return this._rules.toObject()}[Symbol.iterator](){return this._rules.entries()}};a($n,"FilterRules");var wt=$n;var ja=_t(require("object-hash"),1),Ca=require("ts-gems"),z=require("valgen");var Pa=require("@jsopen/objects"),ka=require("ts-gems");var Ia=require("ts-gems"),La=require("uid");var m={};Tr(m,{ComplexType:()=>At,EnumType:()=>Rt,HttpController:()=>Ir,HttpOperation:()=>qn,MQController:()=>Bn,MQOperation:()=>Kn,MappedType:()=>bt,MixinType:()=>Dt,SimpleType:()=>Nt,SpecVersion:()=>Kd,UnionType:()=>St,WSController:()=>Vn,WSOperation:()=>zn,isComplexType:()=>Sc,isDataType:()=>Nc,isEnumType:()=>Ic,isHttpController:()=>Pc,isMappedType:()=>Fc,isMixinType:()=>vc,isSimpleType:()=>Mc,isUnionType:()=>Lc});var Kd="1.0";var At;(function(o){o.Kind="ComplexType"})(At||(At={}));var Rt;(function(o){o.Kind="EnumType"})(Rt||(Rt={}));var bt;(function(o){o.Kind="MappedType"})(bt||(bt={}));var Dt;(function(o){o.Kind="MixinType"})(Dt||(Dt={}));var Nt;(function(o){o.Kind="SimpleType"})(Nt||(Nt={}));var St;(function(o){o.Kind="UnionType"})(St||(St={}));var Ir;(function(o){o.Kind="HttpController"})(Ir||(Ir={}));var qn;(function(o){o.Kind="HttpOperation"})(qn||(qn={}));var Bn;(function(o){o.Kind="MQController"})(Bn||(Bn={}));var Kn;(function(o){o.Kind="MQOperation"})(Kn||(Kn={}));function Nc(o){return o&&typeof o=="object"&&(o.kind===At.Kind||o.kind===Rt.Kind||o.kind===bt.Kind||o.kind===Nt.Kind||o.kind===Dt.Kind||o.kind===St.Kind)}a(Nc,"isDataType");function Sc(o){return o&&typeof o=="object"&&o.kind===At.Kind}a(Sc,"isComplexType");function Mc(o){return o&&typeof o=="object"&&o.kind===Nt.Kind}a(Mc,"isSimpleType");function vc(o){return o&&typeof o=="object"&&o.kind===Dt.Kind}a(vc,"isMixinType");function Fc(o){return o&&typeof o=="object"&&o.kind===bt.Kind}a(Fc,"isMappedType");function Ic(o){return o&&typeof o=="object"&&o.kind===Rt.Kind}a(Ic,"isEnumType");function Lc(o){return o&&typeof o=="object"&&o.kind===St.Kind}a(Lc,"isUnionType");function Pc(o){return o&&typeof o=="object"&&o.kind===Ir.Kind}a(Pc,"isHttpController");var Vn;(function(o){o.Kind="WSController"})(Vn||(Vn={}));var zn;(function(o){o.Kind="WSOperation"})(zn||(zn={}));var Jn=class Jn{constructor(e,t){this.element=e,this.parent=t}getDocument(){if(this._document)return this._document;if(this.element[xe])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[I])==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}getComplexType(e,t){let r=this.getDataType(e,t);if(r.kind===m.ComplexType.Kind)return r;throw new TypeError(`Data type "${r.name}" is not a ComplexType`)}getSimpleType(e,t){let r=this.getDataType(e,t);if(r.kind===m.SimpleType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a SimpleType`)}getEnumType(e,t){let r=this.getDataType(e,t);if(r.kind===m.EnumType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a EnumType`)}getMappedType(e,t){let r=this.getDataType(e,t);if(r.kind===m.MappedType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MappedType`)}getMixinType(e,t){let r=this.getDataType(e,t);if(r.kind===m.MixinType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MixinType`)}getUnionType(e,t){let r=this.getDataType(e,t);if(r.kind===m.UnionType.Kind)return r;throw new TypeError(`Data type "${r.name||r}" is not a MixinType`)}};a(Jn,"DocumentNode");var Lr=Jn;var w=a(function(o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let e=(0,Ia.asMutable)(this);e.id=(0,La.uid)(16),Object.defineProperty(e,"node",{value:new Lr(this,o==null?void 0:o.node),enumerable:!1,writable:!0}),o&&Object.defineProperty(e,"owner",{value:o,enumerable:!1,writable:!0})},"DocumentElement"),Yn=class Yn{};a(Yn,"DocumentElementClass");var Wn=Yn;w.prototype=Wn.prototype;var Ie=Symbol.for("nodejs.util.inspect.custom"),Ae="\x1B[0m",Le="\x1B[33m",Pe="\x1B[35m";function Pr(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(Pr,"testScopeMatch");var x=a(function(o,e,t){if(!this)throw new TypeError('"this" should be passed to call class constructor');if(e!=null&&e.name&&!F.test(e.name))throw new TypeError(`"${e.name}" is not a valid DataType name`);w.call(this,o);let r=(0,ka.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"),Gn=class Gn extends w{get embedded(){return!this.name}inScope(e){return Pr(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,Pa.omitUndefined)({kind:this.kind,description:this.description,abstract:this.abstract,examples:this.examples})}toString(){return`[${Object.getPrototypeOf(this).constructor.name} ${this.name||"#Embedded"}]`}[Ie](){return`[${Le+Object.getPrototypeOf(this).constructor.name+Ae} ${Pe+this.name+Ae}]`}};a(Gn,"DataTypeClass");var Qn=Gn;x.prototype=Qn.prototype;var Mt=/^([+-])?([a-z$_][\w.]*)$/i,B=a(function(...o){if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;x.call(this,e,t,r);let i=(0,Ca.asMutable)(this);i._fields=new S},"ComplexTypeBase"),Zn=class Zn extends x{fieldCount(e){if(e==="*")return this._fields.size;let t=0;for(let r of this.fields(e))t++;return t}fieldEntries(e){let t=this._fields.entries();if(e==="*")return t;let r;return{next(){for(;t&&(r=t.next(),!(r.done||r.value&&r.value[1].inScope(e))););return r.done?{done:r.done,value:void 0}:{done:r.done,value:[r.value[0],r.value[1].forScope(e)]}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}fields(e){let t=this.fieldEntries(e),r;return{next(){var i;return t?(r=t.next(),{done:r.done,value:(i=r.value)==null?void 0:i[1]}):{done:!0,value:void 0}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}fieldNames(e){if(e==="*")return this._fields.keys();let t=this.fieldEntries(e),r;return{next(){var i;return t?(r=t.next(),{done:r.done,value:(i=r.value)==null?void 0:i[0]}):{done:!0,value:void 0}},return(i){return t=void 0,{done:!0,value:i}},[Symbol.iterator](){return this}}}findField(e,t){if(e.includes(".")){let i=this.parseFieldPath(e,{scope:t});if(i.length===0)throw new Error(`Field "${e}" does not exist in scope "${t}"`);let n=i.pop();return n==null?void 0:n.field}let r=this._fields.get(e);if(r&&r.inScope(t))return r.forScope(t)}getField(e,t){let r=this.findField(e,"*");if(r&&!r.inScope(t))throw new Error(`Field "${e}" does not exist in scope "${t||"null"}"`);if(!r)throw new Error(`Field (${e}) does not exist`);return r.forScope(t)}parseFieldPath(e,t){var R,T,H;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 W={fieldName:n[U],dataType:c};p.push(W);let rt=Mt.exec(n[U]);if(!rt)throw new TypeError(`Invalid field name (${O()})`);if(rt[1]&&((U===0&&l==="first"||l==="each")&&(W.sign=rt[1]),W.fieldName=rt[2]),r){if(r instanceof B){if(i=r.findField(W.fieldName,t==null?void 0:t.scope),i){W.fieldName=i.name,W.field=i,W.dataType=i.type,r=i.type;continue}if(((R=r.additionalFields)==null?void 0:R[0])===!0){W.additionalField=!0,W.dataType=c,r=void 0;continue}if(((T=r.additionalFields)==null?void 0:T[0])==="type"&&((H=r.additionalFields)==null?void 0:H[1])instanceof x){W.additionalField=!0,W.dataType=r.additionalFields[1],r=r.additionalFields[1];continue}throw new Error(`Unknown field (${p.map($i=>$i.fieldName).join(".")})`)}throw new TypeError(`"${p.map($i=>$i.fieldName).join(".")}" field is not a complex type and has no child fields`)}W.additionalField=!0,W.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)?_o(t.projection):t==null?void 0:t.projection,currentPath:""},i=this._generateSchema(e,r),n;if(this.additionalFields instanceof x)n=this.additionalFields.generateCodec(e,t);else if(typeof this.additionalFields=="boolean")n=this.additionalFields;else if(Array.isArray(this.additionalFields))if(this.additionalFields.length<2)n="error";else{let c=n[1];n=(0,z.validator)((l,O,R)=>O.fail(R,c,l))}let s=z.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]=z.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]=z.vg.isUndefined({coerce:!0});continue}let R=typeof n=="object"?((c=n[p])==null?void 0:c.projection)||"*":n,T=t.fieldCache.get(l),H=typeof R=="string"?R:(0,ja.default)(R||{});T||(T={},t.fieldCache.set(l,T));let U=T[H];if(U===null)U=z.vg.isAny(),t.forwardCallbacks.add(()=>{U=T[H],r[p]=t.partial||!l.required?z.vg.optional(U):z.vg.required(U)});else if(!U){let W=a(()=>{T[H]=null;let rt=this._generateFieldCodec(e,l,{...t,partial:t.partial==="deep"?t.partial:void 0,projection:R,currentPath:i+(i?".":"")+p});return T[H]=rt,rt},"defaultGenerator");t.fieldHook?U=t.fieldHook(l,t.currentPath,W):U=W()}r[p]=t.partial||!(l.required||U.id==="required")?z.vg.optional(U):U.id==="required"?U:z.vg.required(U)}return t.allowPatchOperators&&(r._$pull=z.vg.optional(z.vg.isAny()),r._$push=z.vg.optional(z.vg.isAny())),r}_generateFieldCodec(e,t,r){let i=t.type.generateCodec(e,{...r,level:r.level+1},{convertToNative:t.convertToNative});return t.fixed&&(i=z.vg.isEqual(t.fixed)),t.isArray&&(i=z.vg.isArray(i)),i}};a(Zn,"ComplexTypeBaseClass");var Xn=Zn;B.prototype=Xn.prototype;var l0=require("reflect-metadata"),mi=require("@jsopen/objects"),Ua=require("ts-gems"),$a=require("valgen");var te=a(function(...o){if(!this)return te[A].apply(void 0,o);let[e,t,r]=o;x.call(this,e,t,r);let i=(0,Ua.asMutable)(this);if(i.kind=m.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=L(t.attributes||{}),i.attributes=i.base?L(i.base.attributes):{};for(let[n,s]of Object.entries(i.ownAttributes))i.attributes[n]=s},"EnumType"),Hn=class Hn extends x{extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof te?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}generateCodec(){return $a.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,mi.omitUndefined)({...t,kind:this.kind,base:r,attributes:L(this.ownAttributes)})}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(Hn,"EnumTypeClass");var kr=Hn;te.prototype=kr.prototype;Object.assign(te,kr);function kc(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,mi.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,mi.omitUndefined)({alias:p,description:c})})}let s={kind:m.EnumType.Kind,attributes:i,base:r==null?void 0:r.base,name:r==null?void 0:r.name,description:r==null?void 0:r.description};return Object.defineProperty(o,d,{value:s,enumerable:!1,configurable:!0,writable:!0}),n}a(kc,"EnumTypeFactory");te.prototype=kr.prototype;te[A]=kc;var _s={};Tr(_s,{Base64Type:()=>ui,DateTimeType:()=>Pt,DateTimeTypeTz:()=>jt,DateType:()=>It,EmailType:()=>re,FieldPathType:()=>Y,FilterType:()=>Be,ObjectIdType:()=>yi,OperationResult:()=>oe,PartialDateType:()=>Wt,TimeType:()=>Qt,UrlType:()=>Ei,UuidType:()=>Cr});var di=require("tslib"),ke=require("valgen");var O0=require("reflect-metadata"),ts=require("@jsopen/objects"),Ba=require("ts-gems"),rs=require("valgen");function es(o){let e=[],t=a(function(r){let i;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!F.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=m.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(es,"SimpleTypeDecoratorFactory");function qa(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=m.SimpleType.Kind,r.attributes=r.attributes||{},r.attributes[t]={format:(o==null?void 0:o.format)||n,description:o==null?void 0:o.description,deprecated:o==null?void 0:o.deprecated},Reflect.defineMetadata(d,r,e.constructor)}}a(qa,"AttributeDecoratorFactory");var u=a(function(...o){var n,s;if(!this)return u[A](...o);let[e,t,r]=o;x.call(this,e,t,r);let i=(0,Ba.asMutable)(this);if(i.kind=m.SimpleType.Kind,t.base){if(!(t.base instanceof u))throw new TypeError(`"${t.base.kind}" can't be set as base for a "${this.kind}"`);i.base=t.base}if(i.properties=t.properties,i.ownNameMappings={...t.nameMappings},i.nameMappings={...(n=i.base)==null?void 0:n.nameMappings,...t.nameMappings},i.ownAttributes=L(t.attributes||{}),i.attributes=i.base?L(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"),os=class os extends x{extend(e){return Object.setPrototypeOf(e,this),e}extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof u?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}generateCodec(e,t,r){let i={...this.properties,...r};if(e==="decode"){let s=this;for(;s;){if(s._generateDecoder)return s._generateDecoder(i,(t==null?void 0:t.documentElement)||this.owner,t==null?void 0:t.scope);s=this.base}return rs.isAny}let n=this;for(;n;){if(n._generateEncoder)return n._generateEncoder(i,(t==null?void 0:t.documentElement)||this.owner,t==null?void 0:t.scope);n=this.base}return rs.isAny}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0,i=(0,ts.omitUndefined)(this.ownAttributes),n;this.properties&&typeof this.properties.toJSON=="function"?n=this.properties.toJSON(this.properties,this.owner,e):n=this.properties?L(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,ts.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(os,"SimpleTypeClass");var is=os;u.prototype=is.prototype;Object.assign(u,es);u[A]=es;u.Attribute=qa;var vt,ui=(vt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=ke.vg.isBase64({coerce:!0});return e.convertToNative?ke.vg.pipe([t,jc],{coerce:!0}):t}[g](){return Cc}},a(vt,"Base64Type"),vt);ui=(0,di.__decorate)([u({name:"base64",description:"A stream of bytes, base64 encoded",nameMappings:{js:"string",json:"string"}}),(0,di.__metadata)("design:paramtypes",[Object])],ui);var jc=(0,ke.validator)(o=>Buffer.from(o,"base64")),Cc=(0,ke.validator)(o=>Buffer.isBuffer(o)?o.toString("base64"):(0,ke.isBase64)(o));var je=require("tslib"),Re=require("valgen");var Ka=Re.vg.isDateString({precisionMin:"day",trim:"day",coerce:!0}),Uc=Re.vg.isDate({trim:"day",coerce:!0}),Ft,It=(Ft=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t;e.convertToNative?t=Uc:t=Ka;let r=[t];return e.minValue!=null&&r.push(Re.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Re.vg.isLte(t(e.maxValue))),r.length>0?Re.vg.pipe(r,{returnIndex:0}):t}[g](e){let t=Ka,r=[t];return e.minValue!=null&&r.push(Re.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Re.vg.isLte(t(e.maxValue))),r.length>0?Re.vg.pipe(r,{returnIndex:0}):t}},a(Ft,"DateType"),Ft);(0,je.__decorate)([u.Attribute({description:"Minimum value"}),(0,je.__metadata)("design:type",String)],It.prototype,"minValue",void 0);(0,je.__decorate)([u.Attribute({description:"Maximum value"}),(0,je.__metadata)("design:type",String)],It.prototype,"maxValue",void 0);It=(0,je.__decorate)([u({name:"date",description:"A date without time",nameMappings:{js:"string",json:"string"}}).Example("2021-04-18","Full date value"),(0,je.__metadata)("design:paramtypes",[Object])],It);var Ce=require("tslib"),be=require("valgen");var Va=be.vg.isDateString({precisionMin:"day",trim:"tz",coerce:!0}),$c=be.vg.isDate({coerce:!0}),Lt,Pt=(Lt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t;e.convertToNative?t=$c:t=Va;let 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=Va,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(Lt,"DateTimeType"),Lt);(0,Ce.__decorate)([u.Attribute({description:"Minimum value"}),(0,Ce.__metadata)("design:type",String)],Pt.prototype,"minValue",void 0);(0,Ce.__decorate)([u.Attribute({description:"Maximum value"}),(0,Ce.__metadata)("design:type",String)],Pt.prototype,"maxValue",void 0);Pt=(0,Ce.__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,Ce.__metadata)("design:paramtypes",[Object])],Pt);var $e=require("tslib"),Ue=require("valgen");var za=Ue.vg.isDateString({precisionMin:"tz",coerce:!0}),kt,jt=(kt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=za,r=[t];return e.minValue!=null&&r.push(Ue.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Ue.vg.isLte(t(e.maxValue))),r.length>0?Ue.vg.pipe(r,{returnIndex:0}):t}[g](e){let t=za,r=[t];return e.minValue!=null&&r.push(Ue.vg.isGte(t(e.minValue))),e.maxValue!=null&&r.push(Ue.vg.isLte(t(e.maxValue))),r.length>0?Ue.vg.pipe(r,{returnIndex:0}):t}},a(kt,"DateTimeTypeTz"),kt);(0,$e.__decorate)([u.Attribute({description:"Minimum value"}),(0,$e.__metadata)("design:type",String)],jt.prototype,"minValue",void 0);(0,$e.__decorate)([u.Attribute({description:"Maximum value"}),(0,$e.__metadata)("design:type",String)],jt.prototype,"maxValue",void 0);jt=(0,$e.__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,$e.__metadata)("design:paramtypes",[Object])],jt);var j=require("tslib"),ns=require("valgen");var Ct,re=(Ct=class{constructor(e){e&&Object.assign(this,e)}[E](e){return ns.vg.isEmail({...e,coerce:!0})}[g](e){return ns.vg.isEmail({...e,coerce:!0})}},a(Ct,"EmailType"),Ct);(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 qe=require("tslib"),$t=require("valgen");var Ut,Y=(Ut=class{constructor(e){e&&Object.assign(this,e)}[E](e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),n=e.allowSigns,s=(0,$t.validator)("decodeFieldPath",p=>i.normalizeFieldPath(p,{allowSigns:n,scope:r}));return $t.vg.pipe([$t.toString,s])}[g](e,t,r){return this[E](e,t,r)}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");x.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),allowSigns:e.allowSigns}}},a(Ut,"FieldPathType"),Ut);(0,qe.__decorate)([u.Attribute({description:"Data type which field belong to"}),(0,qe.__metadata)("design:type",Object)],Y.prototype,"dataType",void 0);(0,qe.__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,qe.__metadata)("design:type",String)],Y.prototype,"allowSigns",void 0);Y=(0,qe.__decorate)([u({name:"fieldpath",description:"Field path",nameMappings:{js:"string",json:"string"}}),(0,qe.__metadata)("design:paramtypes",[Object])],Y);var Ke=require("tslib"),ss=require("valgen");var Bt={};Tr(Bt,{$and:()=>Bc,$arithmetic:()=>sl,$array:()=>Ja,$date:()=>Kc,$eq:()=>Wc,$field:()=>Jc,$gt:()=>Qc,$gte:()=>Gc,$ilike:()=>il,$in:()=>Hc,$like:()=>tl,$lt:()=>Xc,$lte:()=>Zc,$ne:()=>Yc,$notILike:()=>ol,$notIn:()=>el,$notLike:()=>rl,$number:()=>zc,$or:()=>qc,$paren:()=>nl,$time:()=>Vc,ArithmeticExpression:()=>ot,ArithmeticExpressionItem:()=>Gr,ArrayExpression:()=>Oe,Ast:()=>Rr,BooleanLiteral:()=>nt,ComparisonExpression:()=>ye,DateLiteral:()=>Fe,DateTimeLiteral:()=>Nr,Expression:()=>V,FilterTreeVisitor:()=>vr,Literal:()=>P,LogicalExpression:()=>Te,NegativeExpression:()=>br,NullLiteral:()=>st,NumberLiteral:()=>we,OpraErrorListener:()=>Fr,ParenthesizedExpression:()=>ge,QualifiedIdentifier:()=>ae,StringLiteral:()=>at,Term:()=>it,TimeLiteral:()=>pt,parse:()=>Un});function qc(...o){return new Te({op:"or",items:o})}a(qc,"$or");function Bc(...o){return new Te({op:"and",items:o})}a(Bc,"$and");function Kc(o){return new Fe(o)}a(Kc,"$date");function Vc(o){return new pt(o)}a(Vc,"$time");function zc(o){return new we(o)}a(zc,"$number");function Ja(...o){return new Oe(o.map(hi))}a(Ja,"$array");function Jc(o){return new ae(o)}a(Jc,"$field");function Wc(o,e){return ce("=",o,e)}a(Wc,"$eq");function Yc(o,e){return ce("!=",o,e)}a(Yc,"$ne");function Qc(o,e){return ce(">",o,e)}a(Qc,"$gt");function Gc(o,e){return ce(">=",o,e)}a(Gc,"$gte");function Xc(o,e){return ce("<",o,e)}a(Xc,"$lt");function Zc(o,e){return ce("<=",o,e)}a(Zc,"$lte");function Hc(o,e){return ce("in",o,e)}a(Hc,"$in");function el(o,e){return ce("!in",o,e)}a(el,"$notIn");function tl(o,e){return ce("like",o,e)}a(tl,"$like");function rl(o,e){return ce("!like",o,e)}a(rl,"$notLike");function il(o,e){return ce("ilike",o,e)}a(il,"$ilike");function ol(o,e){return ce("!ilike",o,e)}a(ol,"$notILike");function nl(o){return new ge(o)}a(nl,"$paren");function sl(o){let e=new ot;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("+",hi(o)),e}a(sl,"$arithmetic");function ce(o,e,t){let r=typeof e=="string"?new ae(e):hi(e),i=hi(t);return new ye({op:o,left:r,right:i})}a(ce,"comparisonExpression");var hi=a(o=>Array.isArray(o)?Ja(...o.map(qt)):qt(o),"wrapEntryValue"),qt=a(o=>o instanceof V?o:typeof o=="boolean"?new nt(o):typeof o=="number"||typeof o=="bigint"?new we(o):o==null?new st:o instanceof Date?new Fe(o):new at(""+o),"_wrapEntryValue");var Kt,Be=(Kt=class{constructor(e){e&&Object.assign(this,e)}[E](e,t){let r=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object"),i=e.rules?new wt(e.rules):void 0;return al(r,i)}[g](){return pl}toJSON(e,t,r){let i=e.dataType?t.node.getComplexType(e.dataType):t.node.getComplexType("object");x.prototype.toJSON.call(i,r);let n=i?t.node.getDataTypeNameWithNs(i):void 0;return{dataType:n||i.toJSON(r),rules:e.rules}}},a(Kt,"FilterType"),Kt);(0,Ke.__decorate)([u.Attribute({description:"Data type which filtering fields belong to"}),(0,Ke.__metadata)("design:type",Object)],Be.prototype,"dataType",void 0);(0,Ke.__decorate)([u.Attribute({description:"Stringified JSON object defines filtering rules",format:"string"}),(0,Ke.__metadata)("design:type",Object)],Be.prototype,"rules",void 0);Be=(0,Ke.__decorate)([u({name:"filter",description:"A query filter",nameMappings:{js:"object",json:"string"}}),(0,Ke.__metadata)("design:paramtypes",[Object])],Be);var al=a((o,e,t)=>(0,ss.validator)("decodeFilter",(r,i,n)=>{if(typeof r=="string")try{let s=Bt.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"),pl=(0,ss.validator)("encodeFilter",(o,e,t)=>{if(o instanceof Bt.Ast)return o.toString();e.fail(t,"Not a valid filter expression",o)});var Ti=require("tslib"),as=require("valgen");var Vt,yi=(Vt=class{constructor(e){e&&Object.assign(this,e)}[E](){return as.vg.isObjectId({coerce:!0})}[g](){return as.vg.isObjectId({coerce:!0})}},a(Vt,"ObjectIdType"),Vt);yi=(0,Ti.__decorate)([u({name:"ObjectId",description:"A MongoDB ObjectID value",nameMappings:{js:"object",json:"string"}}),(0,Ti.__metadata)("design:paramtypes",[Object])],yi);var C=require("tslib");var cs=require("@jsopen/objects"),Ya=require("ts-gems");var Wa=require("@jsopen/objects");function ps(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=m.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,Wa.omitUndefined)({...i,scopePattern:Array.isArray(r)?r:[r],type:void 0,isArray:void 0,isNestedEntity:void 0}))}),t),t}a(ps,"ApiFieldDecoratorFactory");var $=a(function(...o){if(!this){let[n]=o;return $[A](n)}let[e,t]=o;w.call(this,e);let r=(0,Ya.asMutable)(this);r.name=t.name;let i=t.origin||e;if(!(i instanceof B))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.convertToNative=t.convertToNative??(r.type.kind==="SimpleType"&&t.designType!==String&&typeof t.designType=="function"&&t.designType!==Object),r.override=t.override},"ApiField"),fs=class fs extends w{inScope(e){return Pr(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(Pr(e,r.scopePattern)){t=(0,cs.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,cs.omitUndefined)({type:t||((r=this.type)==null?void 0:r.toJSON(e)),description:this.description,isArray:this.isArray||void 0,isNestedEntity:this.isNestedEntity||void 0,default:this.default,fixed:this.fixed,required:this.required||void 0,exclusive:this.exclusive||void 0,localization:this.localization||void 0,keyField:this.keyField||void 0,deprecated:this.deprecated||void 0,readonly:this.readonly||void 0,writeonly:this.writeonly||void 0,examples:this.examples})}};a(fs,"ApiFieldClass");var ls=fs;$.prototype=ls.prototype;Object.assign($,ps);$[A]=ps;var qy=require("reflect-metadata"),Ga=require("@jsopen/objects"),Xa=require("ts-gems");var ms=class ms extends de{constructor(){super(""),this.details=[]}add(e){return this.details.push(e),this}};a(ms,"OpraDocumentError");var ct=ms;var us=class us{constructor(e){this.path="",this.error=new ct,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(us,"DocumentInitContext");var ue=us;var Qa=require("@jsopen/objects");function ds(o){return function(e){let t;if(!(o!=null&&o.embedded))if(o!=null&&o.name){if(!F.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=m.ComplexType.Kind,r.name=t,o&&Object.assign(r,(0,Qa.omit)(o,["name"]))}}a(ds,"ComplexTypeDecorator");var ie=a(function(...o){var n;if(!this)return ie[A].apply(void 0,o);let[e,t]=o,r=o[2]||new ue({maxErrors:0});B.call(this,e,t,r);let i=(0,Xa.asMutable)(this);i.kind=m.ComplexType.Kind,i.discriminatorField=t.discriminatorField,i.discriminatorValue=t.discriminatorValue,t.base&&r.enter(".base",()=>{if(!(t.base instanceof B))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"),ys=class ys extends B{extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof B?e===this?!0:!!((t=this.base)!=null&&t.extendsFrom(e)):!1}toJSON(e){let t=super.toJSON(e),r=this.base?this.node.getDataTypeNameWithNs(this.base):void 0,i={...t,kind:this.kind,base:this.base?r||this.base.toJSON(e):void 0,discriminatorField:this.discriminatorField,discriminatorValue:this.discriminatorValue};if(this.additionalFields)if(this.additionalFields instanceof x){let n=this.node.getDataTypeNameWithNs(this.additionalFields);i.additionalFields=n||this.additionalFields.toJSON(e)}else i.additionalFields=this.additionalFields;if(this._fields.size){let n={},s=0;for(let p of this._fields.values())p.origin===this&&p.inScope(e==null?void 0:e.scope)&&(n[p.name]=p.toJSON(e),s++);s&&(i.fields=n)}return(0,Ga.omitUndefined)(i)}_locateBase(e){if(this.base){if(e(this.base))return this.base;if(this.base._locateBase)return this.base._locateBase(e)}}};a(ys,"ComplexTypeClass");var hs=ys;ie.prototype=hs.prototype;Object.assign(ie,ds);ie[A]=ds;var zt,oe=(zt=class{constructor(e){e&&Object.assign(this,e)}},a(zt,"OperationResult"),zt);(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 Ve=require("tslib"),K=require("valgen");var Jt,Wt=(Jt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=Ha,r=[];return e.minValue!=null&&((0,K.isDateString)(e.minValue),r.push(K.toString,K.vg.isGte(e.minValue))),e.maxValue!=null&&((0,K.isDateString)(e.maxValue),r.push(K.toString,K.vg.isLte(e.maxValue))),r.length>0?K.vg.pipe([t,...r],{returnIndex:0}):t}[g](e){let t=Ha,r=[];return e.minValue!=null&&((0,K.isDateString)(e.minValue),r.push(K.vg.isGte(e.minValue))),e.maxValue!=null&&((0,K.isDateString)(e.maxValue),r.push(K.vg.isLte(e.maxValue))),r.length>0?K.vg.pipe([t,...r],{returnIndex:0}):t}},a(Jt,"PartialDateType"),Jt);(0,Ve.__decorate)([u.Attribute({description:"Minimum value"}),(0,Ve.__metadata)("design:type",String)],Wt.prototype,"minValue",void 0);(0,Ve.__decorate)([u.Attribute({description:"Maximum value"}),(0,Ve.__metadata)("design:type",String)],Wt.prototype,"maxValue",void 0);Wt=(0,Ve.__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,Ve.__metadata)("design:paramtypes",[Object])],Wt);var Za=K.vg.isDateString({precisionMin:"year"}),Ha=(0,K.validator)(o=>{if(o instanceof Date){let e=Za(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 Za(o,{coerce:!1})});var ze=require("tslib"),jr=require("valgen");var cl=/^([0-1][0-9]|2[0-4]):([0-5][0-9])(?::([0-5][0-9]))?$/,Yt,Qt=(Yt=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=jr.vg.matches(cl,{formatName:"time",coerce:!0}),r=[];return e.minValue!=null&&r.push(jr.vg.isGte(e.minValue)),e.maxValue!=null&&r.push(jr.vg.isLte(e.maxValue)),r.length>0?jr.vg.pipe([t,...r],{returnIndex:0}):t}[g](e){return this[E](e)}},a(Yt,"TimeType"),Yt);(0,ze.__decorate)([u.Attribute({description:"Minimum value"}),(0,ze.__metadata)("design:type",String)],Qt.prototype,"minValue",void 0);(0,ze.__decorate)([u.Attribute({description:"Maximum value"}),(0,ze.__metadata)("design:type",String)],Qt.prototype,"maxValue",void 0);Qt=(0,ze.__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,ze.__metadata)("design:paramtypes",[Object])],Qt);var _i=require("tslib"),Ts=require("valgen");var Gt,Ei=(Gt=class{constructor(e){e&&Object.assign(this,e)}[E](){return Ts.vg.isURL({coerce:!0})}[g](){return Ts.vg.isURL({coerce:!0})}},a(Gt,"UrlType"),Gt);Ei=(0,_i.__decorate)([u({name:"url",description:"A Uniform Resource Identifier Reference (RFC 3986 icon) value",nameMappings:{js:"string",json:"string"}}).Example("http://tempuri.org"),(0,_i.__metadata)("design:paramtypes",[Object])],Ei);var Zt=require("tslib"),Es=require("valgen");var Xt,Cr=(Xt=class{constructor(e){e&&Object.assign(this,e)}[E](e){return Es.vg.isUUID(e==null?void 0:e.version,{coerce:!0})}[g](e){return Es.vg.isUUID(e==null?void 0:e.version,{coerce:!0})}},a(Xt,"UuidType"),Xt);(0,Zt.__decorate)([u.Attribute({description:"Version of the UUID"}),(0,Zt.__metadata)("design:type",Number)],Cr.prototype,"version",void 0);Cr=(0,Zt.__decorate)([u({name:"uuid",description:"A Universal Unique Identifier (UUID) value",nameMappings:{js:"string",json:"string"}}),(0,Zt.__metadata)("design:paramtypes",[Object])],Cr);var rp=_t(require("path-browserify"),1),ip=require("@jsopen/objects"),op=require("ts-gems");var ep,tp,le=Symbol.for("kMap"),Ur=Symbol.for("kCtorMap"),xs=class xs{constructor(){this[ep]=new S,this[tp]=new WeakMap}get size(){return this[le].size}forEach(e,t){this[le].forEach(e,t)}get(e){let t=typeof e=="string"?e:this[Ur].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[le].get(t);if(r)return typeof e=="function"&&r.kind==="ComplexType"?r.ctor===e?r:void 0:r}set(e,t){this[le].set(e,t),t.ctor?this[Ur].set(t.ctor,e):t.instance&&this[Ur].set(t.instance,e)}has(e){if(e instanceof x)return!!e.name&&this[le].has(e.name);let t=typeof e=="string"?e:this[Ur].get(e);return t?this[le].has(t):!1}keys(){return this[le].keys()}values(){return this[le].values()}entries(){return this[le].entries()}sort(e){return this[le].sort(e),this}[(ep=le,tp=Ur,Symbol.iterator)](){return this[le][Symbol.iterator]()}};a(xs,"DataTypeMap");var J=xs;function v(o,e){let t=a(((r,i)=>{if(typeof i!="string")throw new TypeError("Symbol properties can not be decorated");let n={...e,kind:m.HttpOperation.Kind},s=Reflect.getOwnMetadata(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"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="cookie"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.Header=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"header",type:i}:{...i,name:r,location:"header"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="header"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.QueryParam=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"query",type:i}:{...i,name:r,location:"query"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="query"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.PathParam=(r,i)=>(o.push(n=>{let s=typeof i=="string"||typeof i=="function"?{name:r,location:"path",type:i}:{...i,name:r,location:"path"};n.parameters?n.parameters=n.parameters.filter(p=>!(p.location==="path"&&String(p.name)===String(r))):n.parameters=[],n.parameters.push(s)}),t),t.Response=(r,i)=>{let n={...i,statusCode:r};return n.type&&(n.contentType=n.contentType||N.opra_response_json,n.contentEncoding=n.contentEncoding||"utf-8"),n.contentType===N.opra_response_json&&(n.contentEncoding=n.contentEncoding||"utf-8"),o.push(s=>{s.responses=s.responses||[],s.responses.push(n)}),t},t.RequestContent=function(r){let i=typeof r=="object"?r:{type:r};return i.type&&(i.contentType=i.contentType||N.json,i.contentEncoding=i.contentEncoding||"utf-8"),o.push(n=>{n.requestBody=n.requestBody||{required:!0,content:[]},n.requestBody.content=n.requestBody.content||[],n.requestBody.content.push(i)}),t},t.MultipartContent=function(r,i){let n={...r,contentType:(r==null?void 0:r.contentType)||"multipart/form-data"};if(o.push(s=>{s.requestBody=s.requestBody||{required:!0,content:[]},s.requestBody.content=s.requestBody.content||[],s.requestBody.content.push(n)}),i){let s={Field(p,c){return n.multipartFields=n.multipartFields||[],n.multipartFields.push({fieldName:p,fieldType:"field",...c}),s},File(p,c){return n.multipartFields=n.multipartFields||[],n.multipartFields.push({fieldName:p,fieldType:"file",...c}),s}};i(s)}return t},t.UseType=(...r)=>(o.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),t}a(v,"HttpOperationDecoratorFactory");var D=a(function(...o){if(!this){let[i]=o,n=[];return D[A].call(void 0,n,i)}let[e,t]=o;if(w.call(this,e),!F.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,op.asMutable)(this);r.parameters=[],r.responses=[],r.types=r.node[I]=new J,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?L(t.compositionOptions):void 0},"HttpOperation"),gs=class gs extends w{findParameter(e,t){let r=e.toLowerCase(),i;for(i of this.parameters)if(!(t&&t!==i.location)&&(typeof i.name=="string"&&(i._nameLower=i._nameLower||i.name.toLowerCase(),i._nameLower===r)||i.name instanceof RegExp&&i.name.test(e)))return i}getFullUrl(){let e=this.owner.getFullUrl();return e?this.path?this.mergePath?e+this.path:rp.default.posix.join(e,this.path):e:this.path||"/"}toJSON(e){var r;let t=(0,ip.omitUndefined)({kind:m.HttpOperation.Kind,description:this.description,method:this.method,path:this.path,mergePath:this.mergePath,composition:this.composition,requestBody:(r=this.requestBody)==null?void 0:r.toJSON(e)});if(this.types.size){t.types={};for(let i of this.types.values())t.types[i.name]=i.toJSON(e)}if(this.parameters.length){t.parameters=[];for(let i of this.parameters)t.parameters.push(i.toJSON(e))}return this.responses.length&&(t.responses=this.responses.map(i=>i.toJSON(e))),t}};a(gs,"HttpOperationClass");var Os=gs;D.prototype=Os.prototype;D[A]=v;D.GET=function(o){return v([],{...o,method:"GET"})};D.DELETE=function(o){return v([],{...o,method:"DELETE"})};D.HEAD=function(o){return v([],{...o,method:"HEAD"})};D.OPTIONS=function(o){return v([],{...o,method:"OPTIONS"})};D.PATCH=function(o){return v([],{...o,method:"PATCH"})};D.POST=function(o){return v([],{...o,method:"POST"})};D.PUT=function(o){return v([],{...o,method:"PUT"})};D.SEARCH=function(o){return v([],{...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 Je(o,e){return(t,r)=>{let i=typeof r=="string"||typeof r=="function"?{name:t,location:"path",type:r,keyParam:!0}:{...r,name:t,location:"path",keyParam:!0};return o.PathParam(t,i),e.push(n=>{var s;(s=n.path)!=null&&s.includes(":"+t)||(n.path=(n.path||"")+"@:"+t),n.mergePath=!0}),o}}a(Je,"createKeyParamDecorator");function np(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=Mt.exec(p),l=Mt.exec(r[p]);return c&&l&&(s[c[2]]=l[2]),s},{}),n=Object.keys(r).reduce((s,p)=>{let c=Mt.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=Mt.exec(p);return c?(c[1]||"")+i[c[2]]:p}),"parser")}),o}}a(np,"createSortFieldsDecorator");function We(o,e,t){let r=Reflect.getMetadata("FilterRules",o);r||(r=new wt,Reflect.defineMetadata("FilterRules",r,o));let i=Reflect.getMetadata("FilterType",o);return i||(i=new Be({dataType:t}),i.rules={},Reflect.defineMetadata("FilterType",i,o)),(n,s)=>{let p=(Array.isArray(s)?{operators:s}:typeof s=="string"?{operators:s.split(/\s*,\s*/)}:s)||{};if(p.operators=p.operators||["=","!="],n.includes(":")){let c=n.split(":");n=c[0],p.mappedField=c[1]}return e.push(()=>{r.set(n,p),i.rules=r.toJSON()}),o.QueryParam("filter",{type:i,description:"Determines filter fields"}),o}}a(We,"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=v(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=v(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=Je(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=v(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=We(i,r,t.type),i};var bs={};Tr(bs,{AnyType:()=>xi,BigintType:()=>gi,BooleanType:()=>Ai,IntegerType:()=>ut,NullType:()=>Di,NumberType:()=>_e,ObjectType:()=>Si,StringType:()=>Ge});var Oi=require("tslib"),ws=require("valgen");var Ht,xi=(Ht=class{constructor(e){e&&Object.assign(this,e)}[E](){return ws.isAny}[g](){return ws.isAny}},a(Ht,"AnyType"),Ht);xi=(0,Oi.__decorate)([u({name:"any",description:"Represents any value"}),(0,Oi.__metadata)("design:paramtypes",[Object])],xi);var wi=require("tslib"),ft=require("valgen");var Ye=require("tslib"),lt=require("valgen");var er,_e=(er=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=[];return e.minValue!=null&&t.push(lt.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(lt.vg.isLte(e.maxValue)),t.length>0?lt.vg.pipe([lt.toNumber,...t],{returnIndex:0}):lt.toNumber}[g](e){return this[E](e)}},a(er,"NumberType"),er);(0,Ye.__decorate)([u.Attribute({description:"Determines the minimum value"}),(0,Ye.__metadata)("design:type",Number)],_e.prototype,"minValue",void 0);(0,Ye.__decorate)([u.Attribute({description:"Determines the maximum value"}),(0,Ye.__metadata)("design:type",Number)],_e.prototype,"maxValue",void 0);_e=(0,Ye.__decorate)([u({name:"number",description:"Both Integer as well as Floating-Point numbers",nameMappings:{js:"number",json:"number"}}),(0,Ye.__metadata)("design:paramtypes",[Object])],_e);var tr,gi=(tr=class extends _e{constructor(e){super(e)}[E](e){let t=[];return e.minValue!=null&&t.push(ft.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(ft.vg.isLte(e.maxValue)),t.length>0?ft.vg.pipe([ft.toBigint,...t],{returnIndex:0}):ft.toBigint}[g](e){return this[E](e)}},a(tr,"BigintType"),tr);gi=(0,wi.__decorate)([u({name:"bigint",description:"BigInt number",nameMappings:{js:"bigint",json:"string"}}),(0,wi.__metadata)("design:paramtypes",[Object])],gi);var Ri=require("tslib"),As=require("valgen");var rr,Ai=(rr=class{constructor(e){e&&Object.assign(this,e)}[E](){return As.toBoolean}[g](){return As.toBoolean}},a(rr,"BooleanType"),rr);Ai=(0,Ri.__decorate)([u({name:"boolean",description:"Simple true/false value",nameMappings:{js:"boolean",json:"boolean"}}),(0,Ri.__metadata)("design:paramtypes",[Object])],Ai);var bi=require("tslib"),mt=require("valgen");var ir,ut=(ir=class extends _e{constructor(e){super(e)}[E](e){let t=[];return e.minValue!=null&&t.push(mt.vg.isGte(e.minValue)),e.maxValue!=null&&t.push(mt.vg.isLte(e.maxValue)),t.length>0?mt.vg.pipe([mt.toInteger,...t],{returnIndex:0}):mt.toInteger}[g](e){return this[E](e)}},a(ir,"IntegerType"),ir);ut=(0,bi.__decorate)([u({name:"integer",description:"An integer number",nameMappings:{js:"number",json:"number"}}),(0,bi.__metadata)("design:paramtypes",[Object])],ut);var Ni=require("tslib"),Rs=require("valgen");var or,Di=(or=class{constructor(e){e&&Object.assign(this,e)}[E](){return Rs.isNull}[g](){return Rs.isNull}},a(or,"NullType"),or);Di=(0,Ni.__decorate)([u({name:"null",description:"A Null value",nameMappings:{js:"null",json:"null"}}),(0,Ni.__metadata)("design:paramtypes",[Object])],Di);var Mi=require("tslib");var nr,Si=(nr=class{constructor(e){e&&Object.assign(this,e)}},a(nr,"ObjectType"),nr);Si=(0,Mi.__decorate)([ie({name:"object",description:"A non modelled object",additionalFields:!0}),(0,Mi.__metadata)("design:paramtypes",[Object])],Si);var fe=require("tslib"),Qe=require("valgen");var sr,Ge=(sr=class{constructor(e){e&&Object.assign(this,e)}[E](e){let t=[];if(e.pattern){let r=e.patternName;r||(r=Reflect.getMetadata(d,Object.getPrototypeOf(this).constructor).name),t.push(Qe.vg.matches(e.pattern,{formatName:r}))}return e.minLength&&t.push(Qe.vg.lengthMin(e.minLength)),e.maxLength&&t.push(Qe.vg.lengthMax(e.maxLength)),t.length>0?Qe.vg.pipe([Qe.toString,...t],{returnIndex:0}):Qe.toString}[g](e){return this[E](e)}},a(sr,"StringType"),sr);(0,fe.__decorate)([u.Attribute({description:"Regex pattern to be used for validation"}),(0,fe.__metadata)("design:type",Object)],Ge.prototype,"pattern",void 0);(0,fe.__decorate)([u.Attribute({description:"Name of the pattern"}),(0,fe.__metadata)("design:type",String)],Ge.prototype,"patternName",void 0);(0,fe.__decorate)([u.Attribute({description:"Minimum number of characters"}),(0,fe.__metadata)("design:type",Number)],Ge.prototype,"minLength",void 0);(0,fe.__decorate)([u.Attribute({description:"Minimum number of characters"}),(0,fe.__metadata)("design:type",Number)],Ge.prototype,"maxLength",void 0);Ge=(0,fe.__decorate)([u({name:"string",description:"A sequence of characters",nameMappings:{js:"string",json:"string"}}),(0,fe.__metadata)("design:paramtypes",[Object])],Ge);D.Entity.FindMany=function(o,e){let t;typeof o=="object"&&!o[d]?t=o:t={...e,type:o};let r=[],i=v(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 ut({minValue:1,maxValue:t.maxLimit})}).QueryParam("skip",{description:"Determines number of returning instances",type:new ut({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=We(i,r,t.type),i.DefaultSort=(...n)=>(r.push(s=>{let p=s.compositionOptions=s.compositionOptions||{};p.defaultSort=n}),i),i.SortFields=np(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=v(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=Je(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=v(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=Je(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=v(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=Je(i,r),i.Filter=We(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=v(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=We(i,r,t.type),i};var vi=require("@jsopen/objects");var ll=/^(.*)(Controller)$/,sp=[];function ar(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=ll.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(q,Object.getPrototypeOf(r));s&&(0,vi.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(q,r);p&&(0,vi.merge)(n,p,{deep:!0}),(0,vi.merge)(n,{...o,kind:m.MQController.Kind,name:i,path:i},{deep:!0}),Reflect.defineMetadata(q,n,r);for(let l of e)l(n,r);Reflect.defineMetadata(q,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),sp.forEach(r=>r(t,e,o)),t}a(ar,"MQControllerDecoratorFactory");ar.augment=function(o){sp.push(o)};var ap=require("@jsopen/objects");var pp=[];function $r(o,e,t){let r=!1,i=a(((n,s)=>{if(typeof s!="string")throw new TypeError("Symbol properties can not be decorated");let p={kind:m.MQOperation.Kind,channel:s,payloadType:e,...(0,ap.omit)(t,["kind","payloadType"])},c=Reflect.getOwnMetadata(q,n.constructor)||{};c.operations=c.operations||{},c.operations[s]=p;for(let l of o)l(p,n,s);Reflect.defineMetadata(q,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},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,payloadType:n}}),i),pp.forEach(n=>n(i,o,e,t)),i}a($r,"MQOperationDecoratorFactory");$r.augment=function(o){pp.push(o)};var Fi=require("@jsopen/objects");var ul=/^(.*)(Controller)$/,cp=[];function pr(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=ul.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(q,Object.getPrototypeOf(r));s&&(0,Fi.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(q,r);p&&(0,Fi.merge)(n,p,{deep:!0}),(0,Fi.merge)(n,{...o,kind:m.WSController.Kind,name:i,path:i},{deep:!0}),Reflect.defineMetadata(q,n,r);for(let l of e)l(n,r);Reflect.defineMetadata(q,n,r)},"decorator");return t.UseType=(...r)=>(e.push(i=>{i.types=i.types||[],i.types.push(...r)}),t),cp.forEach(r=>r(t,e,o)),t}a(pr,"WSControllerDecoratorFactory");pr.augment=function(o){cp.push(o)};var lp=require("@jsopen/objects");var fp=[];function qr(o,e,t){let r=a(((i,n)=>{if(typeof n!="string")throw new TypeError("Symbol properties can not be decorated");let s={kind:m.WSOperation.Kind,channel:n,payloadType:e,...(0,lp.omit)(t,["kind","payloadType"])},p=Reflect.getOwnMetadata(q,i.constructor)||{};p.operations=p.operations||{},p.operations[n]=s;for(let c of o)c(s,i,n);Reflect.defineMetadata(q,p,i.constructor)}),"decorator");return r.UseType=(...i)=>(o.push(n=>{n.types=n.types||[],n.types.push(...i)}),r),fp.forEach(i=>i(r,o,e,t)),r}a(qr,"WSOperationDecoratorFactory");qr.augment=function(o){fp.push(o)};var Q3=require("reflect-metadata"),mp=require("@jsopen/objects"),up=require("ts-gems");function Ii(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(Ii,"getIsInheritedPredicateFn");var Xe=a(function(...o){var n;if(!this)throw new TypeError('"this" should be passed to call class constructor');let[e,t,r]=o;B.call(this,e,t,r);let i=(0,up.asMutable)(this);if(i.kind=m.MappedType.Kind,t.base){if(!(t.base instanceof B))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=Ii(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 T=new $(this,R);i._fields.set(T.name,T)}(!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"),Ns=class Ns extends B{extendsFrom(e){var t;return e instanceof x||(e=this.node.getDataType(e)),e instanceof B?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,mp.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(Ns,"MappedTypeClass");var Ds=Ns;Xe.prototype=Ds.prototype;Xe._applyMixin=()=>{};var iE=require("reflect-metadata"),dp=require("@jsopen/objects"),hp=require("ts-gems");var dt=a(function(...o){if(!this)return dt[A].apply(void 0,o);let[e,t,r]=o;B.call(this,e,t,r);let i=(0,hp.asMutable)(this);i.kind=m.MixinType.Kind,i.types=[];for(let n of t.types){i.additionalFields!==!0&&(n.additionalFields===!0?i.additionalFields=!0:i.additionalFields||(i.additionalFields=n.additionalFields));for(let s of n.fields("*")){let p=new $(this,s);i._fields.set(p.name,p)}i.types.push(n),n.keyField&&(i.keyField=n.keyField)}},"MixinType"),Ms=class Ms extends B{extendsFrom(e){if(e instanceof x||(e=this.node.getDataType(e)),!(e instanceof B))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(Ms,"MixinTypeClass");var Ss=Ms;dt.prototype=Ss.prototype;dt[A]=yl;function yl(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)gr(this,n)}}}[t],i={...e,kind:m.MixinType.Kind,types:[]};Reflect.defineMetadata(d,i,r);for(let n of o){let s=Reflect.getMetadata(d,n);if(!(s&&(s.kind===m.ComplexType.Kind||s.kind===m.MixinType.Kind||s.kind===m.MappedType.Kind)))throw new TypeError(`Class "${n.name}" is not a ${m.ComplexType.Kind}, ${m.MixinType.Kind} or ${m.MappedType.Kind}`);i.types.push(n),Or(r.prototype,n.prototype)}return r}a(yl,"MixinTypeFactory");var uE=require("reflect-metadata"),yp=require("@jsopen/objects"),Tp=require("ts-gems"),vs=require("valgen");var ht=a(function(...o){if(!this)return ht[A].apply(void 0,o);let[e,t,r]=o;x.call(this,e,t,r);let i=(0,Tp.asMutable)(this);i.kind=m.UnionType.Kind,i.discriminator=t.discriminator,i.types=[];for(let n of t.types)i.types.push(n)},"UnionType"),Is=class Is extends x{toJSON(e){let t=super.toJSON(e);return(0,yp.omitUndefined)({...t,kind:this.kind,discriminator:this.discriminator,types:this.types.map(r=>{let i=this.node.getDataTypeNameWithNs(r);return i||r.toJSON(e)})})}generateCodec(e,t){let r=this.types.map(i=>{let n=i.generateCodec(e,t);return(i.kind===m.ComplexType.Kind||i.kind===m.MappedType.Kind)&&i.discriminatorField?[n,{[i.discriminatorField]:vs.vg.isEqual(i.discriminatorValue)}]:n});return vs.vg.oneOf(r)}extendsFrom(){return!1}_locateBase(){}};a(Is,"UnionTypeClass");var Fs=Is;ht.prototype=Fs.prototype;ht[A]=Tl;function Tl(o,e){let i=class i{};a(i,"UnionClass");let t=i,r={...e,kind:m.UnionType.Kind,types:o};return Reflect.defineMetadata(d,r,t),t}a(Tl,"UnionTypeFactory");var Ls=Symbol("initializing"),Li=class Li{static async createDataType(e,t,r){e=e||new ue({maxErrors:0});let i=await this._importDataTypeArgs(e,t,r);if(i)return typeof i=="string"?t.node.getDataType(i):this._createDataType(e,t,i)}static async resolveDataType(e,t,r){if(r){let i=t.node.findDataType(r);if(i)return i}if(typeof r=="object"||typeof r=="function"){let i=await Li.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[I];if(!i)throw new TypeError("DocumentElement should has [kDataTypeMap] property");let n=await this.createAllDataTypes(e,t,r);if(n)for(let s of n)s!=null&&s.name&&i.set(s.name,s)}static async createAllDataTypes(e,t,r){e=e||new ue({maxErrors:0});let i=await this._prepareAllInitArgs(e,t,r);if(!i)return;let n=new S;for(let c of i)n.set(c.name,c);let s=e.extend({initArgsMap:n}),p=[];for(let[c,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[I])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 me(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 me(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 me(r);let{importQueue:n,initArgsMap:s}=e,p=t.node.findDataType(r);if(p instanceof x)return p.name;let c,l,O;if(typeof r!="string"){let H=t.node.getDocument().types[wr].get(r);H&&(r=H)}if(typeof r=="string"){let T=r;if(r=(n==null?void 0:n.get(T))||((R=e.initArgsMap)==null?void 0:R.get(T)),!r)return e.addError(`Unknown data type (${T})`)}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!==m.EnumType.Kind&&(c=void 0);else if(m.isDataType(r))c=r,l=c.ctor;else if(l=Object.getPrototypeOf(r).constructor,c=l&&Reflect.getMetadata(d,l),c&&c.kind===m.SimpleType.Kind){let T=await this._importDataTypeArgs(e,t,c.name);return T?typeof T=="object"&&T.kind!==m.SimpleType.Kind?e.addError("Kind of base data type is not same"):{kind:m.SimpleType.Kind,name:void 0,base:T,properties:r}:void 0}}return c?e.enterAsync(c.name?`[${c.name}]`:"",async()=>{if(c.name){let H=s==null?void 0:s.get(c.name);if(H)return i&&H[Ls]?e.addError("Circular reference detected"):c.name}let T={kind:c.kind,name:c.name};T[Ls]=!0;try{if(T.name)if(n!=null&&n.has(T.name))s==null||s.set(c.name,T),T._instance={name:c.name},T[I]=t.node[I];else return e.addError(`Data Type (${T.name}) must be explicitly added to type list in the document scope`);switch(T.kind){case m.ComplexType.Kind:T.ctor=l,await this._prepareComplexTypeArgs(e,t,T,c);break;case m.EnumType.Kind:T.instance=O,await this._prepareEnumTypeArgs(e,t,T,c);break;case m.MappedType.Kind:await this._prepareMappedTypeArgs(e,t,T,c);break;case m.MixinType.Kind:await this._prepareMixinTypeArgs(e,t,T,c);break;case m.SimpleType.Kind:T.ctor=l,await this._prepareSimpleTypeArgs(e,t,T,c);break;case m.UnionType.Kind:await this._prepareUnionTypeArgs(e,t,T,c);break;default:return e.addError(`Invalid data type kind ${c.kind}`)}}finally{T.name&&(n==null||n.delete(T.name)),delete T[Ls]}return n&&T.name?T.name:T}):e.addError("No DataType metadata found")}static async _prepareDataTypeArgs(e,t,r){t.description=r.description,t.abstract=r.abstract,t.examples=r.examples,t.scopePattern=r.scopePattern}static async _prepareComplexTypeArgs(e,t,r,i){await this._prepareDataTypeArgs(e,r,i),r.keyField=i.keyField,r.discriminatorField=i.discriminatorField,r.discriminatorValue=i.discriminatorValue,await e.enterAsync(".base",async()=>{let n;if(i.base)n=await this._importDataTypeArgs(e,t,i.base,!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=Ze(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=Ze(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:Ze(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=Ze(n))}),r.attributes=L(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=Ze(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=L(i.attributes)),typeof((n=r.properties)==null?void 0:n[E])=="function"&&(r.generateDecoder=(s=r.properties)==null?void 0:s[E].bind(r.properties)),typeof((p=r.properties)==null?void 0:p[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=Ze(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(Ze(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(Ze(c))})})}static _createDataType(e,t,r){var s;let i=t.node.findDataType(typeof r=="string"?r:r.name||"");if(i instanceof x)return i;let n=typeof r=="string"?(s=e.initArgsMap)==null?void 0:s.get(r):r;if(n){let p=n[I];switch(p||delete n._instance,i=n._instance,i!=null&&i.name&&p&&p.set(i.name,i),n==null?void 0:n.kind){case m.ComplexType.Kind:return this._createComplexType(e,t,n);case m.EnumType.Kind:return this._createEnumType(e,t,n);case m.MappedType.Kind:return this._createMappedType(e,t,n);case m.MixinType.Kind:return this._createMixinType(e,t,n);case m.SimpleType.Kind:return this._createSimpleType(e,t,n);case m.UnionType.Kind:return this._createUnionType(e,t,n);default:break}}e.addError(`Unknown data type (${String(r)})`)}static _createComplexType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,ie.prototype);let n=L(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=L(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,Xe.prototype);let n=L(r);return r.base&&e.enter(".base",()=>{n.base=this._createDataType(e,t,r.base)}),Xe.apply(i,[t,n]),i}static _createMixinType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,dt.prototype);let n=L(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 B))throw new TypeError(`"${c==null?void 0:c.kind}" can't be set as base for a "${n.kind}"`);n.types.push(c)})}),dt.apply(i,[t,n]),i}static _createSimpleType(e,t,r){let i=r._instance||{};Object.setPrototypeOf(i,u.prototype);let n=L(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,ht.prototype);let n=L(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)})}),ht.apply(i,[t,n]),i}};a(Li,"DataTypeFactory");var k=Li;function Ze(o){return typeof o=="object"&&o.name?o.name:o}a(Ze,"preferName");var Fp=require("@jsopen/objects");var Ep=require("@jsopen/objects");var Ps=class Ps extends w{constructor(e){super(e.owner),this.name="OpraApi",this.name=e.name,this.description=e.description}toJSON(e){return(0,Ep.omitUndefined)({transport:this.transport,name:this.name,description:this.description})}async _initialize(e,t){if(!F.test(e.name))throw new TypeError(`Invalid api name (${e.name})`);this.name=e.name,this.description=e==null?void 0:e.description}};a(Ps,"ApiBase");var De=Ps;var _p=_t(require("path-browserify"),1),xp=require("@jsopen/objects"),Op=require("ts-gems");var cr=require("@jsopen/objects");var _l=/^(.*)(Controller)$/;function ks(o){let e=[],t=a(function(r){var c;let i=o==null?void 0:o.name;i||(i=((c=_l.exec(r.name))==null?void 0:c[1])||r.name);let n={},s=Reflect.getOwnMetadata(se,Object.getPrototypeOf(r));s&&(0,cr.merge)(n,s,{deep:!0});let p=Reflect.getOwnMetadata(se,r);p&&(0,cr.merge)(n,p,{deep:!0}),(0,cr.merge)(n,{kind:m.HttpController.Kind,name:i,path:i,...(0,cr.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(ks,"HttpControllerDecoratorFactory");var ne=a(function(...o){var i;if(!this)return ne[A].apply(void 0,o);let[e,t]=o;if(w.call(this,e),!F.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,Op.asMutable)(this);r.kind=m.HttpController.Kind,r.types=r.node[I]=new J,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"),Cs=class Cs extends w{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 _p.default.posix.join(this.owner instanceof ne?this.owner.getFullUrl():"/",this.path)}toString(){return`[HttpController ${this.name}]`}toJSON(e){let t=(0,xp.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}[Ie](){return`[${Le}HttpController${Pe+this.name+Ae}]`}};a(Cs,"HttpControllerClass");var js=Cs;ne.prototype=js.prototype;Object.assign(ne,ks);ne[A]=ks;var Us=class Us extends De{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(Us,"HttpApi");var yt=Us;var gp=_t(require("@browsery/type-is"),1),wp=require("@jsopen/objects"),Ap=require("ts-gems"),Pi=require("valgen");var Ne=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');w.call(this,o);let t=(0,Ap.asMutable)(this);if(e.contentType){let r=Array.isArray(e.contentType)?e.contentType:[e.contentType];r=r.map(i=>i.split(/\s*,\s*/)).flat(),t.contentType=r.length>1?r:r[0]}t.description=e.description,t.contentEncoding=e.contentEncoding,t.examples=e.examples,t.multipartFields=[],t.maxFieldsSize=e.maxFieldsSize,t.maxFields=e.maxFields,t.maxFiles=e.maxFiles,t.maxFileSize=e.maxFileSize,t.maxTotalFileSize=e.maxTotalFileSize,e!=null&&e.type&&(t.type=(e==null?void 0:e.type)instanceof x?e.type:t.owner.node.getDataType(e.type)),t.isArray=e.isArray},"HttpMediaType"),qs=class qs extends w{findMultipartField(e,t){if(this.multipartFields){for(let r of this.multipartFields)if((!t||t===r.fieldType)&&(r.fieldName instanceof RegExp&&r.fieldName.test(e)||r.fieldName===e))return r}}toJSON(e){var i,n;let t=this.type?this.node.getDataTypeNameWithNs(this.type):void 0,r=(0,wp.omitUndefined)({description:this.description,contentType:this.contentType,contentEncoding:this.contentEncoding,type:t||((i=this.type)==null?void 0:i.toJSON(e)),isArray:this.isArray,example:this.example,examples:this.examples,maxFields:this.maxFields,maxFieldsSize:this.maxFieldsSize,maxFiles:this.maxFiles,maxFileSize:this.maxFileSize,maxTotalFileSize:this.maxTotalFileSize});return(n=this.multipartFields)!=null&&n.length&&(r.multipartFields=this.multipartFields.map(s=>s.toJSON(e))),r}generateCodec(e,t){let r;return this.type?r=this.type.generateCodec(e,t):this.contentType&&(Array.isArray(this.contentType)?this.contentType:[this.contentType]).find(n=>gp.default.is(n,["json"]))&&(r=this.node.findDataType("object").generateCodec(e)),r=r||Pi.isAny,this.isArray?Pi.vg.isArray(r):r}};a(qs,"HttpMediaTypeClass");var $s=qs;Ne.prototype=$s.prototype;var Rp=require("@jsopen/objects");function lr(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(lr,"parseRegExp");var Bs=class Bs extends Ne{constructor(e,t){super(e,t),this.fieldName=t.fieldName instanceof RegExp?t.fieldName:t.fieldName.startsWith("/")?lr(t.fieldName):t.fieldName,this.fieldType=t.fieldType,this.required=t.required}toJSON(e){return(0,Rp.omitUndefined)({fieldName:this.fieldName,fieldType:this.fieldType,required:this.required,...super.toJSON(e)})}};a(Bs,"HttpMultipartField");var Br=Bs;var bp=require("@jsopen/objects");var xl=/^([1-6]\d{2})(?:-([1-6]\d{2}))?$/,Ks=class Ks{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=xl.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(Ks,"HttpStatusRange");var fr=Ks;var Vs=class Vs extends Ne{constructor(e,t){super(e,t),this.parameters=[],this.statusCode=(Array.isArray(t.statusCode)?t.statusCode:[t.statusCode]).map(r=>typeof r=="object"?new fr(r.start,r.end):new fr(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,bp.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(Vs,"HttpOperationResponse");var Kr=Vs;var Sp=require("@jsopen/objects"),Mp=require("ts-gems");var Dp=require("@jsopen/objects"),Np=require("ts-gems");var Tt=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');w.call(this,o);let t=(0,Np.asMutable)(this);t.description=e.description,t.type=e.type,t.examples=e.examples,t.isArray=e.isArray},"Value"),Js=class Js extends w{toJSON(e){let t=this.type?this.node.getDataTypeNameWithNs(this.type):void 0;return(0,Dp.omitUndefined)({type:this.type?t||this.type.toJSON(e):"any",description:this.description,isArray:this.isArray,examples:this.examples})}};a(Js,"ValueClass");var zs=Js;Tt.prototype=zs.prototype;var mr=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');Tt.call(this,o,e);let t=(0,Mp.asMutable)(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?lr(e.name,{includeFlags:"i",excludeFlags:"m"}):e.name),t.location=e.location,t.deprecated=e.deprecated,t.required=e.required,t.required==null&&e.location==="path"&&(t.required=!0),t.arraySeparator=e.arraySeparator,t.keyParam=e.keyParam,t.parser=e.parser},"HttpParameter"),Ys=class Ys extends Tt{toJSON(e){return(0,Sp.omitUndefined)({...super.toJSON(e),name:this.name,location:this.location,arraySeparator:this.arraySeparator,keyParam:this.keyParam,required:this.required,deprecated:this.deprecated})}};a(Ys,"HttpParameterClass");var Ws=Ys;mr.prototype=Ws.prototype;var vp=require("@jsopen/objects");var Qs=class Qs extends w{constructor(e){super(e),this.content=[]}toJSON(e){return(0,vp.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(Qs,"HttpRequestBody");var Vr=Qs;var Gs=class Gs{static async createApi(e,t){let r=new yt(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,Fp.isConstructor)(r)&&(r=t instanceof ne?r(t.instance):r()),r=await me(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 k.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 k.resolveDataType(e,s,c.type)});let O=new mr(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 k.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 k.resolveDataType(e,t,s.type)});let c=new mr(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 Kr(t,{statusCode:s.statusCode});await this._initHttpOperationResponse(e,p,s),t.responses.push(p)})}),r.requestBody&&await e.enterAsync(".requestBody",async()=>{let n=new Vr(t);await this._initHttpRequestBody(e,n,r.requestBody),t.requestBody=n}),t}static async _initHttpMediaType(e,t,r){Ne.call(t,t.owner,{...r,type:void 0,multipartFields:void 0}),r.type&&await e.enterAsync(".type",async()=>{t.type=await k.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 Br(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 k.resolveDataType(e,t,n.type)});let p=new mr(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 Ne(t,String(i));await this._initHttpMediaType(e,s,n),t.content.push(s)})})}};a(Gs,"HttpApiFactory");var ur=Gs;var Lp=require("@jsopen/objects"),Pp=require("super-fast-md5");var Xs=class Xs extends De{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(Xs,"MQApi");var Et=Xs;var Zs=class Zs extends De{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(Zs,"WSApi");var zr=Zs;var Ip,Hs=class Hs extends w{constructor(){super(null),this[Ip]=new WeakMap,this.id="",this.info={},this.references=new S,this.types=new J,this.node[I]=this.types,this.node.findDataType=this._findDataType.bind(this)}getDataTypeNs(e){let t=e instanceof x?this._findDataType(e.name||""):this._findDataType(e);if(t)return this[xe].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 yt))throw new TypeError("The document do not contains HttpApi instance");return this.api}get mqApi(){if(!(this.api&&this.api instanceof Et))throw new TypeError("The document do not contains MQApi instance");return this.api}get wsApi(){if(!(this.api&&this.api instanceof zr))throw new TypeError("The document do not contains WSApi instance");return this.api}toJSON(){return this.export()}export(e){let t=(0,Lp.omitUndefined)({spec:m.SpecVersion,id:this.id,url:this.url,info:L(this.info,!0)});if(this.references.size){let r=0,i={};for(let[n,s]of this.references.entries())s[Se]||(i[n]={id:s.id,url:s.url,info:L(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,Pp.md5)(JSON.stringify(e)),this[xe]=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=To.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[xe].set(i,p!=null&&p[Se]?"":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[xe].set(i,p!=null&&p[Se]?"":s),i}}};a(Hs,"ApiDocument");var He=Hs;Ip=xe;function et(o,e,t){let r=Ii(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"&&gr(this,o,r)}}}[n];if(typeof o=="function"&&Or(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===m.ComplexType.Kind||c.kind===m.MappedType.Kind||c.kind===m.MixinType.Kind))throw new TypeError(`Class "${o}" is not a ${m.ComplexType.Kind}`)}let p={...t,kind:"MappedType",base:o};return e.pick&&(p.pick=e.pick),e.omit&&(p.omit=e.omit),e.partial&&(p.partial=e.partial),e.required&&(p.required=e.required),Reflect.defineMetadata(d,p,s),typeof o=="function"&&Xe._applyMixin(s,o,{...e,isInheritedPredicate:r}),s}a(et,"createMappedClass");function gl(o,e,t){return et(o,{omit:e},t)}a(gl,"OmitType");function wl(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return et(o,{partial:t},r)}a(wl,"PartialType");function Al(o,e,t){return et(o,{pick:e},t)}a(Al,"PickType");function Rl(o,...e){let t=Array.isArray(e[0])?e[0]:!0,r=Array.isArray(e[0])?e[1]:e[0];return et(o,{required:t},r)}a(Rl,"RequiredType");var Kp=require("@jsopen/objects");var kp=require("@jsopen/objects"),jp=require("ts-gems");var tt=a(function(...o){var i;if(!this)return tt[A].apply(void 0,o);let[e,t]=o;if(w.call(this,e),!F.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,jp.asMutable)(this);r.kind=m.MQController.Kind,r.types=r.node[I]=new J,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"),ta=class ta extends w{findHeader(e,t){let r=e.toLowerCase(),i;for(i of this.headers)if(typeof i.name=="string"&&(i._nameLower=i._nameLower||i.name.toLowerCase(),i._nameLower===r)||i.name instanceof RegExp&&i.name.test(e))return i;if(this.node.parent&&this.node.parent.element instanceof tt)return this.node.parent.element.findHeader(e,t)}toString(){return`[MQController ${this.name}]`}toJSON(){let e=(0,kp.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}[Ie](){return`[${Le}MQController${Pe+this.name+Ae}]`}};a(ta,"MQControllerClass");var ea=ta;tt.prototype=ea.prototype;Object.assign(tt,ar);tt[A]=ar;var Cp=require("@jsopen/objects"),Up=require("ts-gems");var dr=a(function(o,e){if(!this)throw new TypeError('"this" should be passed to call class constructor');Tt.call(this,o,e);let t=(0,Up.asMutable)(this);e.name&&(t.name=e.name instanceof RegExp?e.name:e.name.startsWith("/")?lr(e.name,{includeFlags:"i",excludeFlags:"m"}):e.name),t.deprecated=e.deprecated,t.required=e.required},"MQHeader"),ia=class ia extends Tt{toJSON(){return(0,Cp.omitUndefined)({...super.toJSON(),name:this.name,required:this.required,deprecated:this.deprecated})}};a(ia,"MQHeaderClass");var ra=ia;dr.prototype=ra.prototype;var $p=require("@jsopen/objects"),qp=require("ts-gems");var hr=a(function(...o){if(!this){let[i,n]=o,s=[];return hr[A].call(void 0,s,i,n)}let[e,t]=o;if(w.call(this,e),!F.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,qp.asMutable)(this);r.headers=[],r.types=r.node[I]=new J,r.name=t.name,r.description=t.description,r.channel=t.channel,t!=null&&t.payloadType&&(r.payloadType=(t==null?void 0:t.payloadType)instanceof x?t.payloadType:r.owner.node.getDataType(t.payloadType)),t!=null&&t.keyType&&(r.keyType=(t==null?void 0:t.keyType)instanceof x?t.keyType:r.owner.node.getDataType(t.keyType))},"MQOperation"),na=class na extends w{findHeader(e){let t=e.toLowerCase(),r;for(r of this.headers)if(typeof r.name=="string"&&(r._nameLower=r._nameLower||r.name.toLowerCase(),r._nameLower===t)||r.name instanceof RegExp&&r.name.test(e))return r}toJSON(){var t;let e=(0,$p.omitUndefined)({kind:m.MQOperation.Kind,description:this.description,channel:this.channel,payloadType:this.payloadType.name?this.payloadType.name:this.payloadType.toJSON(),keyType:this.keyType?this.keyType.name?this.keyType.name:this.keyType.toJSON():void 0,response:(t=this.response)==null?void 0:t.toJSON()});if(this.headers.length){e.headers=[];for(let r of this.headers)e.headers.push(r.toJSON())}return e}};a(na,"MQOperationClass");var oa=na;hr.prototype=oa.prototype;hr[A]=$r;var Bp=require("@jsopen/objects");var sa=class sa extends w{constructor(e,t){super(e),this.headers=[],this.channel=t==null?void 0:t.channel,this.description=t==null?void 0:t.description,t!=null&&t.payloadType?this.payloadType=(t==null?void 0:t.payloadType)instanceof x?t.payloadType:this.owner.node.getDataType(t.payloadType):this.payloadType=this.owner.node.getDataType("any"),t!=null&&t.keyType&&(this.keyType=(t==null?void 0:t.keyType)instanceof x?t.keyType:this.owner.node.getDataType(t.keyType))}findHeader(e){let t=e.toLowerCase(),r;for(r of this.headers)if(typeof r.name=="string"&&(r._nameLower=r._nameLower||r.name.toLowerCase(),r._nameLower===t)||r.name instanceof RegExp&&r.name.test(e))return r}toJSON(){let e=(0,Bp.omitUndefined)({description:this.description,channel:this.channel,payloadType:this.payloadType.name?this.payloadType.name:this.payloadType.toJSON(),keyType:this.keyType?this.keyType.name?this.keyType.name:this.keyType.toJSON():void 0});if(this.headers.length){e.headers=[];for(let t of this.headers)e.headers.push(t.toJSON())}return e}};a(sa,"MQOperationResponse");var ki=sa;var aa=class aa{static async createApi(e,t){let r=new Et(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,Kp.isConstructor)(r)&&(r=r()),r=await me(r);let n,s,p;if(typeof r=="function"){if(s=Reflect.getMetadata(q,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(q,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 tt(t,{...s,name:i,instance:p,ctor:n});return s.types&&await e.enterAsync(".types",async()=>{await k.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 k.createDataType(e,c,O.type)),R.type||(R.type=c.node.getDataType("any"))});let T=new dr(c,R);c.headers.push(T)})}),s.operations&&await e.enterAsync(".operations",async()=>{for(let[l,O]of Object.entries(s.operations))await e.enterAsync(`[${l}]`,async()=>{let R=new hr(c,{...O,name:l,types:void 0,payloadType: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 k.addDataTypes(e,t,r.types)}),t.payloadType=await k.resolveDataType(e,t,r.payloadType),r.keyType&&(t.keyType=await k.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 k.resolveDataType(e,t,n.type)});let p=new dr(t,s);t.headers.push(p)})}),r.response&&await e.enterAsync(".response",async()=>{let i=new ki(t,{...r.response,payloadType:void 0,keyType:void 0});await this._initMQOperationResponse(e,i,r.response),t.response=i})}static async _initMQOperationResponse(e,t,r){t.payloadType=await k.resolveDataType(e,t,r.payloadType),r.keyType&&(t.keyType=await k.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 k.resolveDataType(e,t,n.type)});let p=new dr(t,s);t.headers.push(p)})})}};a(aa,"MQApiFactory");var ji=aa;var bl="https://oprajs.com/spec/v"+m.SpecVersion,Ci=class Ci{constructor(){this._allDocuments={}}static async createDocument(e,t){let r=new Ci,i=t instanceof ue?t:new ue(t);try{let n=new He;if(await r.initDocument(n,i,e),i.error.details.length)throw i.error;return n}catch(n){try{n instanceof ct||i.addError(n)}catch{}if(!i.error.message){let s=i.error.details.length;i.error.message=`(${s}) error${s>1?"s":""} found in document schema.`,i.showErrorDetails&&(i.error.message+=i.error.details.map(p=>`
10
10
 
11
11
  - ${p.message}`+(p.path?`
12
- @${p.path}`:"")).join(""))}throw i.error}}async initDocument(e,t,r){let i;if(typeof r=="string"){if(i=await(await fetch(r,{method:"GET"})).json(),!i)return t.addError(`Invalid response returned from url: ${r}`);i.url=r}else i=r;let n;if(!e[De]){let s=e.node.findDataType("string");n=s==null?void 0:s.node.getDocument(),n||(n=await this.createBuiltinDocument(t),e.references.set("opra",n))}i.spec=i.spec||m.SpecVersion,e.url=i.url,i.info&&(e.info={...i.info}),i.references&&await t.enterAsync(".references",async()=>{let s,p;for([s,p]of Object.entries(i.references))p=await me(p),await t.enterAsync(`[${s}]`,async()=>{if(!$.test(s))throw new TypeError(`Invalid namespace (${s})`);if(p instanceof Ye){e.references.set(s,p);return}let c=new Ye;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 P.addDataTypes(t,e,i.types)}),i.api&&await t.enterAsync(".api",async()=>{if(i.api&&i.api.transport==="http"){let s=await mr.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else if(i.api&&i.api.transport==="rpc"){let s=await Fi.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else t.addError(`Unknown service transport (${i.api.transport})`)}),e.invalidate(),this._allDocuments[e.id]||(this._allDocuments[e.id]=e)}async createBuiltinDocument(e){let t={spec:m.SpecVersion,url:tl,info:{version:m.SpecVersion,title:"Opra built-in types",license:{url:"https://github.com/oprajs/opra/blob/main/LICENSE",name:"MIT"}},types:[...Object.values(Es),...Object.values(fs)]},r=new Ye;r[De]=!0;let i=Object.getPrototypeOf(BigInt(0)).constructor,n=Object.getPrototypeOf(Buffer.from([])),s=r.types[gr];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(Ii,"ApiDocumentFactory");var Hs=Ii;var ea;(function(o){o.HttpApiFactory=mr,o.DataTypeFactory=P,o.RpcOperationDecoratorFactory=Ur,o.RpcControllerDecoratorFactory=ar})(ea||(ea={}));var Np=require("uid");
12
+ @${p.path}`:"")).join(""))}throw i.error}}async initDocument(e,t,r){let i;if(typeof r=="string"){if(i=await(await fetch(r,{method:"GET"})).json(),!i)return t.addError(`Invalid response returned from url: ${r}`);i.url=r}else i=r;let n;if(!e[Se]){let s=e.node.findDataType("string");n=s==null?void 0:s.node.getDocument(),n||(n=await this.createBuiltinDocument(t),e.references.set("opra",n))}i.spec=i.spec||m.SpecVersion,e.url=i.url,i.info&&(e.info={...i.info}),i.references&&await t.enterAsync(".references",async()=>{let s,p;for([s,p]of Object.entries(i.references))p=await me(p),await t.enterAsync(`[${s}]`,async()=>{if(!F.test(s))throw new TypeError(`Invalid namespace (${s})`);if(p instanceof He){e.references.set(s,p);return}let c=new He;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 k.addDataTypes(t,e,i.types)}),i.api&&await t.enterAsync(".api",async()=>{if(i.api&&i.api.transport==="http"){let s=await ur.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else if(i.api&&i.api.transport==="mq"){let s=await ji.createApi(t,{...i.api,owner:e});s&&(e.api=s)}else t.addError(`Unknown service transport (${i.api.transport})`)}),e.invalidate(),this._allDocuments[e.id]||(this._allDocuments[e.id]=e)}async createBuiltinDocument(e){let t={spec:m.SpecVersion,url:bl,info:{version:m.SpecVersion,title:"Opra built-in types",license:{url:"https://github.com/oprajs/opra/blob/main/LICENSE",name:"MIT"}},types:[...Object.values(bs),...Object.values(_s)]},r=new He;r[Se]=!0;let i=Object.getPrototypeOf(BigInt(0)).constructor,n=Object.getPrototypeOf(Buffer.from([])),s=r.types[wr];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(Ci,"ApiDocumentFactory");var pa=Ci;var Vp=require("@jsopen/objects"),zp=require("ts-gems");var Jr=a(function(...o){var i;if(!this)return Jr[A].apply(void 0,o);let[e,t]=o;if(w.call(this,e),!F.test(t.name))throw new TypeError(`Invalid resource name (${t.name})`);let r=(0,zp.asMutable)(this);r.kind=m.WSController.Kind,r.types=r.node[I]=new J,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"),la=class la extends w{toString(){return`[WSController ${this.name}]`}toJSON(){let e=(0,Vp.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}[Ie](){return`[${Le}WSController${Pe+this.name+Ae}]`}};a(la,"WSControllerClass");var ca=la;Jr.prototype=ca.prototype;Object.assign(Jr,pr);Jr[A]=pr;var Jp=require("@jsopen/objects"),Wp=require("ts-gems");var Ui=a(function(...o){if(!this){let[i,n]=o,s=[];return Ui[A].call(void 0,s,i,n)}let[e,t]=o;if(w.call(this,e),!F.test(t.name))throw new TypeError(`Invalid operation name (${t.name})`);let r=(0,Wp.asMutable)(this);r.types=r.node[I]=new J,r.name=t.name,r.description=t.description,r.channel=t.channel,t!=null&&t.payloadType&&(r.payloadType=(t==null?void 0:t.payloadType)instanceof x?t.payloadType:r.owner.node.getDataType(t.payloadType)),t!=null&&t.keyType&&(r.keyType=(t==null?void 0:t.keyType)instanceof x?t.keyType:r.owner.node.getDataType(t.keyType))},"WSOperation"),ma=class ma extends w{toJSON(){return(0,Jp.omitUndefined)({kind:m.WSOperation.Kind,description:this.description,channel:this.channel,payloadType:this.payloadType.name?this.payloadType.name:this.payloadType.toJSON()})}};a(ma,"WSOperationClass");var fa=ma;Ui.prototype=fa.prototype;Ui[A]=qr;var ua;(function(o){o.HttpApiFactory=ur,o.DataTypeFactory=k,o.MQOperationDecoratorFactory=$r,o.MQControllerDecoratorFactory=ar,o.WSOperationDecoratorFactory=qr,o.WSControllerDecoratorFactory=pr})(ua||(ua={}));var Yp=require("uid");