@malloydata/render 0.0.250-dev250327174212 → 0.0.250

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.
@@ -122044,7 +122044,7 @@ const FW = FXe(rk), bo = jt, Ke = FW.default.compile({
122044
122044
  oparen: "(",
122045
122045
  cparen: ")",
122046
122046
  comma: ",",
122047
- literal: /\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*))/,
122047
+ literal: /\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*)?)/,
122048
122048
  lit_week: /\d\d\d\d-\d\d-\d\d-[Ww][Kk]/,
122049
122049
  lit_quarter: /\d\d\d\d-[qQ][1234]/,
122050
122050
  lit_min: /\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d/,
@@ -122360,8 +122360,10 @@ class IXe {
122360
122360
  return { begin: o, end: this.literalNode(a.toFormat(zi)).sql };
122361
122361
  }
122362
122362
  case void 0:
122363
- case "second":
122364
- return { begin: this.literalNode(r), end: r };
122363
+ case "second": {
122364
+ const i = this.literalNode(r);
122365
+ return { begin: i, end: i.sql };
122366
+ }
122365
122367
  }
122366
122368
  }
122367
122369
  literalNode(e) {
@@ -1042,7 +1042,7 @@ Use (?: … ) instead`);if(!ue.lineBreaks&&j.test(`
1042
1042
  `))throw new Error("Rule should declare lineBreaks: "+j);xe.push(l(L))}}var z=q&&q.fallback,F=i&&!z?"ym":"gm",k=i||z?"":"|";X===!0&&(F+="u");var U=new RegExp(c(xe)+k,F);return{regexp:U,groups:fe,fast:K,error:q||E}}function _(D){var B=A(g(D));return new S({start:B},"start")}function v(D,B,q){var K=D&&(D.push||D.next);if(K&&!q[K])throw new Error("Missing state '"+K+"' (in token '"+D.defaultType+"' of state '"+B+"')");if(D&&D.pop&&+D.pop!=1)throw new Error("pop must be 1 (in token '"+D.defaultType+"' of state '"+B+"')")}function C(D,B){var q=D.$all?g(D.$all):[];delete D.$all;var K=Object.getOwnPropertyNames(D);B||(B=K[0]);for(var Q=Object.create(null),X=0;X<K.length;X++){var fe=K[X];Q[fe]=g(D[fe]).concat(q)}for(var X=0;X<K.length;X++)for(var fe=K[X],xe=Q[fe],te=Object.create(null),ue=0;ue<xe.length;ue++){var de=xe[ue];if(de.include){var Se=[ue,1];if(de.include!==fe&&!te[de.include]){te[de.include]=!0;var I=Q[de.include];if(!I)throw new Error("Cannot include nonexistent state '"+de.include+"' (in state '"+fe+"')");for(var N=0;N<I.length;N++){var L=I[N];xe.indexOf(L)===-1&&Se.push(L)}}xe.splice.apply(xe,Se),ue--}}for(var j=Object.create(null),X=0;X<K.length;X++){var fe=K[X];j[fe]=A(Q[fe],!0)}for(var X=0;X<K.length;X++){for(var V=K[X],z=j[V],F=z.groups,ue=0;ue<F.length;ue++)v(F[ue],V,j);for(var k=Object.getOwnPropertyNames(z.fast),ue=0;ue<k.length;ue++)v(z.fast[k[ue]],V,j)}return new S(j,B)}function b(D){for(var B=typeof Map<"u",q=B?new Map:Object.create(null),K=Object.getOwnPropertyNames(D),Q=0;Q<K.length;Q++){var X=K[Q],fe=D[X],xe=Array.isArray(fe)?fe:[fe];xe.forEach(function(te){if(typeof te!="string")throw new Error("keyword must be string (in keyword '"+X+"')");B?q.set(te,X):q[te]=X})}return function(te){return B?q.get(te):q[te]}}var S=function(D,B){this.startState=B,this.states=D,this.buffer="",this.stack=[],this.reset()};S.prototype.reset=function(D,B){return this.buffer=D||"",this.index=0,this.line=B?B.line:1,this.col=B?B.col:1,this.queuedToken=B?B.queuedToken:null,this.queuedText=B?B.queuedText:"",this.queuedThrow=B?B.queuedThrow:null,this.setState(B?B.state:this.startState),this.stack=B&&B.stack?B.stack.slice():[],this},S.prototype.save=function(){return{line:this.line,col:this.col,state:this.state,stack:this.stack.slice(),queuedToken:this.queuedToken,queuedText:this.queuedText,queuedThrow:this.queuedThrow}},S.prototype.setState=function(D){if(!(!D||this.state===D)){this.state=D;var B=this.states[D];this.groups=B.groups,this.error=B.error,this.re=B.regexp,this.fast=B.fast}},S.prototype.popState=function(){this.setState(this.stack.pop())},S.prototype.pushState=function(D){this.stack.push(this.state),this.setState(D)};var R=i?function(D,B){return D.exec(B)}:function(D,B){var q=D.exec(B);return q[0].length===0?null:q};S.prototype._getGroup=function(D){for(var B=this.groups.length,q=0;q<B;q++)if(D[q+1]!==void 0)return this.groups[q];throw new Error("Cannot find token type for matched text")};function O(){return this.value}if(S.prototype.next=function(){var D=this.index;if(this.queuedGroup){var B=this._token(this.queuedGroup,this.queuedText,D);return this.queuedGroup=null,this.queuedText="",B}var q=this.buffer;if(D!==q.length){var fe=this.fast[q.charCodeAt(D)];if(fe)return this._token(fe,q.charAt(D),D);var K=this.re;K.lastIndex=D;var Q=R(K,q),X=this.error;if(Q==null)return this._token(X,q.slice(D,q.length),D);var fe=this._getGroup(Q),xe=Q[0];return X.fallback&&Q.index!==D?(this.queuedGroup=fe,this.queuedText=xe,this._token(X,q.slice(D,Q.index),D)):this._token(fe,xe,D)}},S.prototype._token=function(D,B,q){var K=0;if(D.lineBreaks){var Q=/\n/g,X=1;if(B===`
1043
1043
  `)K=1;else for(;Q.exec(B);)K++,X=Q.lastIndex}var fe={type:typeof D.type=="function"&&D.type(B)||D.defaultType,value:typeof D.value=="function"?D.value(B):B,text:B,toString:O,offset:q,lineBreaks:K,line:this.line,col:this.col},xe=B.length;if(this.index+=xe,this.line+=K,K!==0?this.col=xe-X+1:this.col+=xe,D.shouldThrow){var te=new Error(this.formatError(fe,"invalid syntax"));throw te}return D.pop?this.popState():D.push?this.pushState(D.push):D.next&&this.setState(D.next),fe},typeof Symbol<"u"&&Symbol.iterator){var $=function(D){this.lexer=D};$.prototype.next=function(){var D=this.lexer.next();return{value:D,done:!D}},$.prototype[Symbol.iterator]=function(){return this},S.prototype[Symbol.iterator]=function(){return new $(this)}}return S.prototype.formatError=function(D,B){if(D==null)var q=this.buffer.slice(this.index),D={text:q,offset:this.index,lineBreaks:q.indexOf(`
1044
1044
  `)===-1?0:1,line:this.line,col:this.col};var K=2,Q=Math.max(D.line-K,1),X=D.line+K,fe=String(X).length,xe=h(this.buffer,this.line-D.line+K+1).slice(0,5),te=[];te.push(B+" at line "+D.line+" col "+D.col+":"),te.push("");for(var ue=0;ue<xe.length;ue++){var de=xe[ue],Se=Q+ue;te.push(x(String(Se),fe)+" "+de),Se===D.line&&te.push(x("",fe+D.col+1)+"^")}return te.join(`
1045
- `)},S.prototype.clone=function(){return new S(this.states,this.state)},S.prototype.has=function(D){return!0},{compile:_,states:C,error:Object.freeze({error:!0}),fallback:Object.freeze({fallback:!0}),keywords:b}})})(hae);var X$=hae.exports,qt={};Object.defineProperty(qt,"__esModule",{value:!0}),qt.mkUnits=qt.timeLiteral=qt.joinTemporal=qt.temporalNot=qt.numNot=qt.mkValues=qt.mkRange=qt.joinNumbers=qt.conjoin=qt.matchOp=qt.escape=qt.unescape=qt.maybeNot=void 0;const Sa=bn;function IJe(t){const[e,r]=t;return e&&r&&(0,Sa.isStringFilter)(r)?{...r,not:!0}:r}qt.maybeNot=IJe;function vy(t){return t.replace(/\\(.)/g,"$1")}qt.unescape=vy;function $Je(t){const e=t.toLowerCase();return e==="null"||e==="empty"?"\\"+t:t.replace(/([,; |()\\%_-])/g,"\\$1")}qt.escape=$Je;function M4(t){let e=!1,r=!1,i=0,s=!1;const o=t.length;for(let u=0;u<o;u+=1){const a=t[u];if(a===" "||a===" "){i+=1;continue}i=0,a==="%"?(s=!0,u===0&&(e=!0),r=!0):(r=!1,a==="\\"?u+=1:a==="_"&&(s=!0))}return{hasLike:s,percentEnd:r&&o>1,percentStart:e&&o>1,endSpace:i}}function BJe(t){let e=t.trimStart();const{hasLike:r,percentEnd:i,percentStart:s,endSpace:o}=M4(e);if(o>0&&(e=e.slice(0,-o)),r){if(s&&i){const u=e.slice(1,-1);if(!M4(u).hasLike&&u.length>0)return{operator:"contains",values:[vy(u)]}}else if(i){const u=e.slice(0,-1);if(!M4(u).hasLike)return{operator:"starts",values:[vy(u)]}}else if(s){const u=e.slice(1);if(!M4(u).hasLike)return{operator:"ends",values:[vy(u)]}}return{operator:"~",escaped_values:[e]}}return e.toLowerCase()==="null"||e==="NULL"?{operator:"null"}:e==="empty"||e==="EMPTY"?{operator:"empty"}:{operator:"=",values:[vy(e)]}}qt.matchOp=BJe;function Z$(t,e){var r,i;return t.operator===e.operator&&((r=t.not)!==null&&r!==void 0?r:!1)===((i=e.not)!==null&&i!==void 0?i:!1)}function kJe(t,e,r){if((0,Sa.isStringFilter)(t)&&(0,Sa.isStringFilter)(r)){if(e===","){if(t.operator==="~"&&Z$(t,r))return{...t,escaped_values:[...t.escaped_values,...r.escaped_values]};if((0,Sa.isStringCondition)(t)&&Z$(t,r))return{...t,values:[...t.values,...r.values]}}const i=e===","?",":e==="|"?"or":e===";"?"and":void 0;if(i)return t.operator===i?{...t,members:[...t.members,r]}:{operator:i,members:[t,r]}}return null}qt.conjoin=kJe;function MJe(t,e,r){if((0,Sa.isNumberFilter)(t)&&(0,Sa.isNumberFilter)(r)){if(e==="or"&&t.operator==="="&&Z$(t,r)){const i={operator:"=",values:[...t.values,...r.values]};return t.not&&(i.not=!0),i}if(e==="and"||e==="or")return t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}}return null}qt.joinNumbers=MJe;function PJe(t,e,r,i){return{operator:"range",startValue:e,startOperator:t==="("?">":">=",endValue:r,endOperator:i===")"?"<":"<="}}qt.mkRange=PJe;function UJe(t,e){return{values:[t,...e]}}qt.mkValues=UJe;function jJe(t,e){return(0,Sa.isNumberFilter)(t)&&e?t.operator==="="?{operator:"!=",values:t.values}:t.operator==="!="?{operator:"=",values:t.values}:{...t,not:!0}:t}qt.numNot=jJe;function qJe(t,e){return(0,Sa.isTemporalFilter)(t)&&e?{...t,not:!0}:t}qt.temporalNot=qJe;function HJe(t,e,r){return(0,Sa.isTemporalFilter)(t)&&(0,Sa.isTemporalFilter)(r)&&(e==="and"||e==="or")?t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}:null}qt.joinTemporal=HJe;function QJe(t,e){const r={moment:"literal",literal:t};return e&&(r.units=e),r}qt.timeLiteral=QJe;function zJe(t){switch(t.toLowerCase()){case"second":case"seconds":return"second";case"minute":case"minutes":return"minute";case"hour":case"hours":return"hour";case"day":case"days":return"day";case"week":case"weeks":return"week";case"month":case"months":return"month";case"quarter":case"quarters":return"quarter";case"year":case"years":return"year"}}qt.mkUnits=zJe;var GJe=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(J$,"__esModule",{value:!0});function WJe(t){return t[0]}const pae=GJe(X$),Qp=qt,Ln=pae.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:pae.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to"})},oparen:"(",cparen:")",obrack:"[",cbrack:"]",comma:",",op:/<=|>=|<|>/,ne:"!=",eq:"=",float:/-?(?:\d+)?\.\d+(?:[Ee][+-]?\d+)?/,numberE:/-?\d+[Ee][+-]?\d+/,integer:/-?\d+/}),VJe=Ln.next;Ln.next=(t=>()=>{for(;;){const e=t.call(Ln);if(e===void 0||e.type!=="WS")return e}})(VJe);const YJe={Lexer:Ln,ParserRules:[{name:"numberFilter",symbols:["numberFilter","conjunction","numberUnary"],postprocess:([t,e,r])=>(0,Qp.joinNumbers)(t,e[0].text,r)},{name:"numberFilter",symbols:["numberUnary"],postprocess:t=>t[0]},{name:"numberUnary$ebnf$1",symbols:[Ln.has("NOT")?{type:"NOT"}:NOT],postprocess:WJe},{name:"numberUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"numberUnary",symbols:["numberUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,Qp.numNot)(e,t)},{name:"clause",symbols:[Ln.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause$ebnf$1",symbols:[]},{name:"clause$ebnf$1",symbols:["clause$ebnf$1","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:["N","clause$ebnf$1"],postprocess:([t,e])=>({operator:"=",...(0,Qp.mkValues)(t,e)})},{name:"clause$ebnf$2",symbols:[]},{name:"clause$ebnf$2",symbols:["clause$ebnf$2","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[Ln.has("eq")?{type:"eq"}:eq,"N","clause$ebnf$2"],postprocess:([t,e,r])=>({operator:"=",...(0,Qp.mkValues)(e,r)})},{name:"clause$ebnf$3",symbols:[]},{name:"clause$ebnf$3",symbols:["clause$ebnf$3","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[Ln.has("ne")?{type:"ne"}:ne,"N","clause$ebnf$3"],postprocess:([t,e,r])=>({operator:"!=",...(0,Qp.mkValues)(e,r)})},{name:"clause",symbols:[Ln.has("op")?{type:"op"}:op,"N"],postprocess:([t,e])=>({operator:t.text,values:[e]})},{name:"clause",symbols:[Ln.has("oparen")?{type:"oparen"}:oparen,"numberFilter",Ln.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:["openInterval","N",Ln.has("TO")?{type:"TO"}:TO,"N","closeInterval"],postprocess:([t,e,r,i,s])=>(0,Qp.mkRange)(t[0].text,e,i,s[0].text)},{name:"numberList",symbols:[Ln.has("comma")?{type:"comma"}:comma,"N"],postprocess:([t,e])=>e},{name:"closeInterval",symbols:[Ln.has("cbrack")?{type:"cbrack"}:cbrack]},{name:"closeInterval",symbols:[Ln.has("cparen")?{type:"cparen"}:cparen]},{name:"openInterval",symbols:[Ln.has("obrack")?{type:"obrack"}:obrack]},{name:"openInterval",symbols:[Ln.has("oparen")?{type:"oparen"}:oparen]},{name:"N$subexpression$1",symbols:[Ln.has("float")?{type:"float"}:float]},{name:"N$subexpression$1",symbols:[Ln.has("numberE")?{type:"numberE"}:numberE]},{name:"N$subexpression$1",symbols:[Ln.has("integer")?{type:"integer"}:integer]},{name:"N",symbols:["N$subexpression$1"],postprocess:([t])=>t[0].text},{name:"conjunction",symbols:[Ln.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[Ln.has("AND")?{type:"AND"}:AND]}],ParserStart:"numberFilter"};J$.default=YJe;var zp={};Object.defineProperty(zp,"__esModule",{value:!0}),zp.run_parser=void 0;const KJe=bn;function JJe(t,e){try{e.feed(t);const i=e.finish()[0];return i&&(0,KJe.isFilterExpression)(i)?{parsed:i,log:[]}:{parsed:null,log:[]}}catch(r){let i=r.message,s=1,o=t.length;if(r.token){const u=r.token;s=u.col,o=u.text.length;const l=r.message.match(new RegExp("(?<=A ).*(?= based on:)","g")).map(c=>c.replace(/\s+token/i,""));i=`Unexpected ${u.type} token "${u.value}"`,l&&l.length&&(i+=` Tokens expected: ${[...new Set(l)]}`)}return{parsed:null,log:[{message:i,startIndex:s-1,endIndex:s-1+o-1,severity:"error"}]}}}zp.run_parser=JJe,function(t){var e=T&&T.__createBinding||(Object.create?function(c,f,x,h){h===void 0&&(h=x);var p=Object.getOwnPropertyDescriptor(f,x);(!p||("get"in p?!f.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return f[x]}}),Object.defineProperty(c,h,p)}:function(c,f,x,h){h===void 0&&(h=x),c[h]=f[x]}),r=T&&T.__setModuleDefault||(Object.create?function(c,f){Object.defineProperty(c,"default",{enumerable:!0,value:f})}:function(c,f){c.default=f}),i=T&&T.__importStar||function(c){if(c&&c.__esModule)return c;var f={};if(c!=null)for(var x in c)x!=="default"&&Object.prototype.hasOwnProperty.call(c,x)&&e(f,c,x);return r(f,c),f},s=T&&T.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberFilterExpression=void 0;const o=bn,u=i(K$),a=s(J$),l=zp;t.NumberFilterExpression={parse(c){if(c.match(/^\s*$/))return{parsed:null,log:[]};const f=new u.Parser(u.Grammar.fromCompiled(a.default)),x=(0,l.run_parser)(c,f);return x.parsed&&(0,o.isNumberFilter)(x.parsed)?{parsed:x.parsed,log:[]}:{parsed:null,log:x.log}},unparse(c){if(c===null)return"";switch(c.operator){case"=":return c.values.join(", ");case"!=":return"!= "+c.values.join(", ");case">":case"<":case"<=":case">=":return c.not?c.values.map(f=>c.operator==="="?`not ${f}`:`not ${c.operator} ${f}`).join(", "):c.values.map(f=>`${c.operator} ${f}`).join(", ");case"range":{const f=c.startOperator===">"?"(":"[",x=c.endOperator==="<"?")":"]",h=`${f}${c.startValue} to ${c.endValue}${x}`;return c.not?`not ${h}`:h}case"null":return c.not?"not null":"null";case"and":case"or":return c.members.map(f=>t.NumberFilterExpression.unparse(f)).join(` ${c.operator} `);case"()":{const f="("+t.NumberFilterExpression.unparse(c.expr)+")";return c.not?"not "+f:f}}return`no unparse for ${JSON.stringify(c)}`}}}(xae);var mae={},eB={},XJe=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(eB,"__esModule",{value:!0});function ZJe(t){return t[0]}const eXe=XJe(X$),tB=qt,fu=eXe.default.compile({WS:/[ \t]+/,comma:",",semi:";",or:"|",open:"(",close:")",minus:"-",matchStr:/(?:\\[^\n]|[^\n,;()|])+/}),tXe=fu.next;fu.next=(t=>()=>{for(;;){const e=t.call(fu);if(e==null||e.type!=="WS")return e}})(tXe);const nXe={Lexer:fu,ParserRules:[{name:"stringFilter",symbols:["stringFilter","conjunction","sfUnary"],postprocess:([t,e,r])=>(0,tB.conjoin)(t,e[0].text,r)},{name:"stringFilter",symbols:["sfUnary"],postprocess:t=>t[0]},{name:"sfUnary$ebnf$1",symbols:[fu.has("minus")?{type:"minus"}:minus],postprocess:ZJe},{name:"sfUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"sfUnary",symbols:["sfUnary$ebnf$1","clause"],postprocess:t=>(0,tB.maybeNot)(t)},{name:"parens",symbols:[fu.has("open")?{type:"open"}:open,"stringFilter",fu.has("close")?{type:"close"}:close],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:[fu.has("matchStr")?{type:"matchStr"}:matchStr],postprocess:([t])=>(0,tB.matchOp)(t.text)},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"conjunction",symbols:[fu.has("comma")?{type:"comma"}:comma]},{name:"conjunction",symbols:[fu.has("semi")?{type:"semi"}:semi]},{name:"conjunction",symbols:[fu.has("or")?{type:"or"}:or]}],ParserStart:"stringFilter"};eB.default=nXe,function(t){var e=T&&T.__createBinding||(Object.create?function(f,x,h,p){p===void 0&&(p=h);var m=Object.getOwnPropertyDescriptor(x,h);(!m||("get"in m?!x.__esModule:m.writable||m.configurable))&&(m={enumerable:!0,get:function(){return x[h]}}),Object.defineProperty(f,p,m)}:function(f,x,h,p){p===void 0&&(p=h),f[p]=x[h]}),r=T&&T.__setModuleDefault||(Object.create?function(f,x){Object.defineProperty(f,"default",{enumerable:!0,value:x})}:function(f,x){f.default=x}),i=T&&T.__importStar||function(f){if(f&&f.__esModule)return f;var x={};if(f!=null)for(var h in f)h!=="default"&&Object.prototype.hasOwnProperty.call(f,h)&&e(x,f,h);return r(x,f),x},s=T&&T.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringFilterExpression=void 0;const o=bn,u=i(K$),a=s(eB),l=qt,c=zp;t.StringFilterExpression={parse(f){if(f.match(/^\s*$/))return{parsed:null,log:[]};const x=new u.Parser(u.Grammar.fromCompiled(a.default)),h=(0,c.run_parser)(f,x);return h.parsed&&(0,o.isStringFilter)(h.parsed)?{parsed:h.parsed,log:[]}:{parsed:null,log:h.log}},unparse(f){if(f===null)return"";switch(f.operator){case"=":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)).join(", "):f.values.map(x=>(0,l.escape)(x)).join(", ");case"~":return f.not?f.escaped_values.map(x=>"-"+x).join(", "):f.escaped_values.join(", ");case"starts":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>(0,l.escape)(x)+"%").join(", ");case"ends":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)).join(", "):f.values.map(x=>"%"+(0,l.escape)(x)).join(", ");case"contains":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>"%"+(0,l.escape)(x)+"%").join(", ");case"or":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(" | ");case"and":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join("; ");case",":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(", ");case"()":{const x="("+t.StringFilterExpression.unparse(f.expr)+")";return f.not?"-"+x:x}case"null":return f.not?"-null":"null";case"empty":return f.not?"-empty":"empty"}}}}(mae);var gae={},nB={},rXe=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nB,"__esModule",{value:!0});function iXe(t){return t[0]}const yae=rXe(X$),xu=qt,Ke=yae.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:yae.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to",NOW:"now",LAST:"last",THIS:"this",NEXT:"next",AGO:"ago",FROM:"from",BEFORE:"before",AFTER:"after",FOR:"for",TODAY:"today",YESTERDAY:"yesterday",TOMORROW:"tomorrow",SECOND:"second",MINUTE:"minute",HOUR:"hour",DAY:"day",WEEK:"week",MONTH:"month",QUARTER:"quarter",YEAR:"year",SECONDS:"seconds",MINUTES:"minutes",HOURS:"hours",DAYS:"days",WEEKS:"weeks",MONTHS:"months",QUARTERS:"quarters",YEARS:"years",MONDAY:"monday",TUESDAY:"tuesday",WEDNESDAY:"wednesday",THURSDAY:"thursday",FRIDAY:"friday",SATURDAY:"saturday",SUNDAY:"sunday"})},oparen:"(",cparen:")",comma:",",literal:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*))/,lit_week:/\d\d\d\d-\d\d-\d\d-[Ww][Kk]/,lit_quarter:/\d\d\d\d-[qQ][1234]/,lit_min:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d/,lit_hour:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d/,lit_day:/\d\d\d\d-\d\d-\d\d/,lit_month:/\d\d\d\d-\d\d/,lit_year:/\d\d\d\d/,n:/\d+/}),sXe=Ke.next;Ke.next=(t=>()=>{for(;;){const e=t.call(Ke);if(e===void 0||e.type!=="WS")return e}})(sXe);const oXe={Lexer:Ke,ParserRules:[{name:"temporalFilter",symbols:["temporalFilter","conjunction","temporalUnary"],postprocess:([t,e,r])=>(0,xu.joinTemporal)(t,e[0].text,r)},{name:"temporalFilter",symbols:["temporalUnary"],postprocess:t=>t[0]},{name:"temporalUnary$ebnf$1",symbols:[Ke.has("NOT")?{type:"NOT"}:NOT],postprocess:iXe},{name:"temporalUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"temporalUnary",symbols:["temporalUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,xu.temporalNot)(e,t)},{name:"duration",symbols:["number","unit"],postprocess:([t,e])=>({units:e,n:t})},{name:"number",symbols:[Ke.has("n")?{type:"n"}:n],postprocess:([t])=>t.text},{name:"number",symbols:[Ke.has("lityear")?{type:"lityear"}:lityear],postprocess:([t])=>t.text},{name:"unit$subexpression$1",symbols:[Ke.has("SECOND")?{type:"SECOND"}:SECOND]},{name:"unit$subexpression$1",symbols:[Ke.has("MINUTE")?{type:"MINUTE"}:MINUTE]},{name:"unit$subexpression$1",symbols:[Ke.has("HOUR")?{type:"HOUR"}:HOUR]},{name:"unit$subexpression$1",symbols:[Ke.has("DAY")?{type:"DAY"}:DAY]},{name:"unit$subexpression$1",symbols:[Ke.has("WEEK")?{type:"WEEK"}:WEEK]},{name:"unit$subexpression$1",symbols:[Ke.has("MONTH")?{type:"MONTH"}:MONTH]},{name:"unit$subexpression$1",symbols:[Ke.has("QUARTER")?{type:"QUARTER"}:QUARTER]},{name:"unit$subexpression$1",symbols:[Ke.has("YEAR")?{type:"YEAR"}:YEAR]},{name:"unit$subexpression$1",symbols:[Ke.has("SECONDS")?{type:"SECONDS"}:SECONDS]},{name:"unit$subexpression$1",symbols:[Ke.has("MINUTES")?{type:"MINUTES"}:MINUTES]},{name:"unit$subexpression$1",symbols:[Ke.has("HOURS")?{type:"HOURS"}:HOURS]},{name:"unit$subexpression$1",symbols:[Ke.has("DAYS")?{type:"DAYS"}:DAYS]},{name:"unit$subexpression$1",symbols:[Ke.has("WEEKS")?{type:"WEEKS"}:WEEKS]},{name:"unit$subexpression$1",symbols:[Ke.has("MONTHS")?{type:"MONTHS"}:MONTHS]},{name:"unit$subexpression$1",symbols:[Ke.has("QUARTERS")?{type:"QUARTERS"}:QUARTERS]},{name:"unit$subexpression$1",symbols:[Ke.has("YEARS")?{type:"YEARS"}:YEARS]},{name:"unit",symbols:["unit$subexpression$1"],postprocess:([t])=>(0,xu.mkUnits)(t[0].text)},{name:"clause",symbols:[Ke.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"clause",symbols:["duration"],postprocess:([t])=>({operator:"in_last",...t})},{name:"clause",symbols:[Ke.has("BEFORE")?{type:"BEFORE"}:BEFORE,"moment"],postprocess:([t,e])=>({operator:"before",before:e})},{name:"clause",symbols:[Ke.has("AFTER")?{type:"AFTER"}:AFTER,"moment"],postprocess:([t,e])=>({operator:"after",after:e})},{name:"clause",symbols:["moment",Ke.has("TO")?{type:"TO"}:TO,"moment"],postprocess:([t,e,r])=>({operator:"to",fromMoment:t,toMoment:r})},{name:"clause",symbols:["moment",Ke.has("FOR")?{type:"FOR"}:FOR,"duration"],postprocess:([t,e,r])=>({...r,operator:"for",begin:t})},{name:"clause$subexpression$1",symbols:[Ke.has("LAST")?{type:"LAST"}:LAST]},{name:"clause$subexpression$1",symbols:[Ke.has("NEXT")?{type:"NEXT"}:NEXT]},{name:"clause",symbols:["clause$subexpression$1","duration"],postprocess:([t,e])=>({operator:t[0].text,...e})},{name:"clause",symbols:["moment"],postprocess:([t])=>({operator:"in",in:t})},{name:"lastNextThis",symbols:[Ke.has("THIS")?{type:"THIS"}:THIS],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Ke.has("NEXT")?{type:"NEXT"}:NEXT],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Ke.has("LAST")?{type:"LAST"}:LAST],postprocess:([t])=>t.text.toLowerCase()},{name:"moment",symbols:[Ke.has("NOW")?{type:"NOW"}:NOW],postprocess:()=>({moment:"now"})},{name:"moment",symbols:["lastNextThis","unit"],postprocess:([t,e])=>({moment:t,units:e})},{name:"moment",symbols:[Ke.has("TODAY")?{type:"TODAY"}:TODAY],postprocess:()=>({moment:"today"})},{name:"moment",symbols:[Ke.has("YESTERDAY")?{type:"YESTERDAY"}:YESTERDAY],postprocess:()=>({moment:"yesterday"})},{name:"moment",symbols:[Ke.has("TOMORROW")?{type:"TOMORROW"}:TOMORROW],postprocess:()=>({moment:"tomorrow"})},{name:"moment",symbols:["duration",Ke.has("AGO")?{type:"AGO"}:AGO],postprocess:([t,e])=>({moment:"ago",...t})},{name:"moment",symbols:["duration",Ke.has("FROM")?{type:"FROM"}:FROM,Ke.has("NOW")?{type:"NOW"}:NOW],postprocess:([t,e])=>({moment:"from_now",...t})},{name:"moment",symbols:[Ke.has("NEXT")?{type:"NEXT"}:NEXT,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"next"})},{name:"moment",symbols:[Ke.has("LAST")?{type:"LAST"}:LAST,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"last"})},{name:"moment",symbols:["weekday"],postprocess:([t])=>({moment:t.toLowerCase(),which:"last"})},{name:"moment",symbols:["timeLiteral"],postprocess:t=>t[0]},{name:"timeLiteral",symbols:[Ke.has("literal")?{type:"literal"}:literal],postprocess:([t])=>(0,xu.timeLiteral)(t.text)},{name:"timeLiteral",symbols:[Ke.has("lit_day")?{type:"lit_day"}:lit_day],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"day")},{name:"timeLiteral",symbols:[Ke.has("lit_min")?{type:"lit_min"}:lit_min],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"minute")},{name:"timeLiteral",symbols:[Ke.has("lit_hour")?{type:"lit_hour"}:lit_hour],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"hour")},{name:"timeLiteral",symbols:[Ke.has("lit_month")?{type:"lit_month"}:lit_month],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"month")},{name:"timeLiteral",symbols:[Ke.has("lit_quarter")?{type:"lit_quarter"}:lit_quarter],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"quarter")},{name:"timeLiteral",symbols:[Ke.has("lit_week")?{type:"lit_week"}:lit_week],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"week")},{name:"timeLiteral",symbols:[Ke.has("lit_year")?{type:"lit_year"}:lit_year],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"year")},{name:"weekday$subexpression$1",symbols:[Ke.has("MONDAY")?{type:"MONDAY"}:MONDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("TUESDAY")?{type:"TUESDAY"}:TUESDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("WEDNESDAY")?{type:"WEDNESDAY"}:WEDNESDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("THURSDAY")?{type:"THURSDAY"}:THURSDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("FRIDAY")?{type:"FRIDAY"}:FRIDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("SATURDAY")?{type:"SATURDAY"}:SATURDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("SUNDAY")?{type:"SUNDAY"}:SUNDAY]},{name:"weekday",symbols:["weekday$subexpression$1"],postprocess:([t])=>t[0].text},{name:"parens",symbols:[Ke.has("oparen")?{type:"oparen"}:oparen,"temporalFilter",Ke.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"conjunction",symbols:[Ke.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[Ke.has("AND")?{type:"AND"}:AND]}],ParserStart:"temporalFilter"};nB.default=oXe,function(t){var e=T&&T.__createBinding||(Object.create?function(h,p,m,y){y===void 0&&(y=m);var g=Object.getOwnPropertyDescriptor(p,m);(!g||("get"in g?!p.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return p[m]}}),Object.defineProperty(h,y,g)}:function(h,p,m,y){y===void 0&&(y=m),h[y]=p[m]}),r=T&&T.__setModuleDefault||(Object.create?function(h,p){Object.defineProperty(h,"default",{enumerable:!0,value:p})}:function(h,p){h.default=p}),i=T&&T.__importStar||function(h){if(h&&h.__esModule)return h;var p={};if(h!=null)for(var m in h)m!=="default"&&Object.prototype.hasOwnProperty.call(h,m)&&e(p,h,m);return r(p,h),p},s=T&&T.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=void 0;const o=bn,u=s(nB),a=i(K$),l=zp;t.TemporalFilterExpression={parse(h){if(h.match(/^\s*$/))return{parsed:null,log:[]};const p=new a.Parser(a.Grammar.fromCompiled(u.default)),m=(0,l.run_parser)(h,p);return m.parsed&&(0,o.isTemporalFilter)(m.parsed)?{parsed:m.parsed,log:[]}:{parsed:null,log:m.log}},unparse(h){if(h===null)return"";switch(h.operator){case"null":return c(h,"null");case"in":return c(h,x(h.in));case"()":return"("+t.TemporalFilterExpression.unparse(h.expr)+")";case"in_last":return c(h,f(h));case"last":case"next":return c(h,`${h.operator} ${f(h)}`);case"before":return c(h,`before ${x(h.before)}`);case"after":return c(h,`after ${x(h.after)}`);case"to":return c(h,`${x(h.fromMoment)} to ${x(h.toMoment)}`);case"for":return c(h,`${x(h.begin)} for ${f(h)}`);case"or":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" or ");case"and":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" and ")}}};function c(h,p){return"not"in h&&h.not?"not "+p:p}function f(h){return h.n==="1"?`1 ${h.units}`:`${h.n} ${h.units}s`}function x(h){switch(h.moment){case"literal":return h.literal;case"now":case"today":case"yesterday":case"tomorrow":return h.moment;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":return h.which==="next"?"next "+h.moment:h.moment;case"this":case"next":case"last":return`${h.moment} ${h.units}`;case"ago":return`${f(h)} ago`;case"from_now":return`${f(h)} from now`}}}(gae),function(t){var e=T&&T.__createBinding||(Object.create?function(a,l,c,f){f===void 0&&(f=c);var x=Object.getOwnPropertyDescriptor(l,c);(!x||("get"in x?!l.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return l[c]}}),Object.defineProperty(a,f,x)}:function(a,l,c,f){f===void 0&&(f=c),a[f]=l[c]}),r=T&&T.__exportStar||function(a,l){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(l,c)&&e(l,a,c)};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=t.StringFilterExpression=t.NumberFilterExpression=t.BooleanFilterExpression=void 0,r(bn,t);var i=k4;Object.defineProperty(t,"BooleanFilterExpression",{enumerable:!0,get:function(){return i.BooleanFilterExpression}});var s=xae;Object.defineProperty(t,"NumberFilterExpression",{enumerable:!0,get:function(){return s.NumberFilterExpression}});var o=mae;Object.defineProperty(t,"StringFilterExpression",{enumerable:!0,get:function(){return o.StringFilterExpression}});var u=gae;Object.defineProperty(t,"TemporalFilterExpression",{enumerable:!0,get:function(){return u.TemporalFilterExpression}})}(B4);var P4={};const Cy=yP(H1e);Object.defineProperty(P4,"__esModule",{value:!0}),P4.TemporalFilterCompiler=void 0;const rB=Xe,Zx=Cy,Eae="yyyy",Aae=`${Eae}-LL`,iB=`${Aae}-dd`,_ae=`${iB} HH`,vae=`${_ae}:mm`,xs=`${vae}:ss`;class uXe{constructor(e,r,i="timestamp"){this.expr=e,this.timetype=i,this.d=r}time(e){return this.timetype==="timestamp"?e:this.d.sqlCast({},{node:"cast",e:{node:"genericSQLExpr",src:["",e],kids:{args:[]},sql:e},srcType:{type:"timestamp"},dstType:{type:"date"},safe:!1})}compile(e){const r=this.expr;switch(e.operator){case"after":return`${r} ${e.not?"<":">="} ${this.time(this.moment(e.after).end)}`;case"before":return`${r} ${e.not?">=":"<"} ${this.time(this.moment(e.before).begin.sql)}`;case"in":{const i=this.moment(e.in);return i.begin.sql===i.end?e.not?`${r} != ${this.time(i.end)} OR ${r} IS NULL`:`${r} = ${this.time(i.end)}`:this.isIn(e.not,i.begin.sql,i.end)}case"for":{const i=this.moment(e.begin),s=this.delta(i.begin,"+",e.n,e.units);return this.isIn(e.not,i.begin.sql,s.sql)}case"in_last":{const i=Number(e.n)-1,s=this.nowDot(e.units),o=i>0?this.delta(s,"-",i.toString(),e.units):s,u=this.delta(s,"+","1",e.units);return this.isIn(e.not,o.sql,u.sql)}case"to":{const i=this.moment(e.fromMoment),s=this.moment(e.toMoment);return this.isIn(e.not,i.begin.sql,s.begin.sql)}case"last":{const i=this.nowDot(e.units),s=this.delta(i,"-",e.n,e.units);return this.isIn(e.not,s.sql,i.sql)}case"next":{const i=this.nowDot(e.units),s=this.delta(i,"+","1",e.units),o=this.delta(i,"+",(Number(e.n)+1).toString(),e.units);return this.isIn(e.not,s.sql,o.sql)}case"null":return e.not?`${r} IS NOT NULL`:`${r} IS NULL`;case"()":{const i="("+this.compile(e.expr)+")";return e.not?`NOT ${i}`:i}case"and":case"or":return e.members.map(i=>this.compile(i)).join(` ${e.operator.toUpperCase()} `)}}expandLiteral(e){let r=e.literal;switch(e.units){case"year":{const i=Zx.DateTime.fromFormat(r,Eae),s=this.literalNode(i.toFormat(xs)),o=i.plus({year:1});return{begin:s,end:this.literalNode(o.toFormat(xs)).sql}}case"month":{const i=Zx.DateTime.fromFormat(r,Aae),s=this.literalNode(i.toFormat(xs)),o=i.plus({month:1});return{begin:s,end:this.literalNode(o.toFormat(xs)).sql}}case"day":{const i=Zx.DateTime.fromFormat(r,iB),s=this.literalNode(i.toFormat(xs)),o=i.plus({day:1});return{begin:s,end:this.literalNode(o.toFormat(xs)).sql}}case"hour":{const i=Zx.DateTime.fromFormat(r,_ae),s=this.literalNode(i.toFormat(xs)),o=i.plus({hour:1});return{begin:s,end:this.literalNode(o.toFormat(xs)).sql}}case"minute":{const i=Zx.DateTime.fromFormat(r,vae),s=this.literalNode(i.toFormat(xs)),o=i.plus({minute:1});return{begin:s,end:this.literalNode(o.toFormat(xs)).sql}}case"week":{const o=Zx.DateTime.fromFormat(r.slice(0,10),iB).plus({day:1}).startOf("week").minus({day:1}),u=this.literalNode(o.toFormat(xs)),a=o.plus({days:7});return{begin:u,end:this.literalNode(a.toFormat(xs)).sql}}case"quarter":{const i=r.slice(0,4),s=r.slice(6);s==="1"?r=`${i}-01-01 00:00:00`:s==="2"?r=`${i}-03-01 00:00:00`:s==="3"?r=`${i}-06-01 00:00:00`:r=`${i}-09-01 00:00:00`;const o=this.literalNode(r),a=Zx.DateTime.fromFormat(r,xs).plus({months:3});return{begin:o,end:this.literalNode(a.toFormat(xs)).sql}}case void 0:case"second":return{begin:this.literalNode(r),end:r}}}literalNode(e){const r={node:"timeLiteral",typeDef:{type:"timestamp"},literal:e};return{...r,sql:this.d.sqlLiteralTime({},r)}}nowExpr(){return{node:"now",typeDef:{type:"timestamp"},sql:this.d.sqlNowExpr()}}n(e){return{node:"numberLiteral",literal:e,sql:e}}delta(e,r,i,s){const o={node:"delta",op:r,units:s,kids:{base:(0,rB.mkTemporal)(e,"timestamp"),delta:this.n(i)}};return{...o,sql:this.d.sqlAlterTimeExpr(o)}}dayofWeek(e){const r={node:"extract",e:(0,rB.mkTemporal)(e,"timestamp"),units:"day_of_week"};return{...r,sql:this.d.sqlTimeExtractExpr({},r)}}nowDot(e){const r={node:"trunc",e:this.nowExpr(),units:e};return{...r,sql:this.d.sqlTruncExpr({},r)}}thisUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e);return{begin:r,end:i.sql}}lastUnit(e){const r=this.nowDot(e);return{begin:this.delta(r,"-","1",e),end:r.sql}}nextUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e),s=this.delta(r,"+","2",e);return{begin:i,end:s.sql}}mod7(e){return this.d.hasModOperator?`(${e})%7`:`MOD(${e},7)`}moment(e){switch(e.moment){case"now":{const r=this.nowExpr();return{begin:r,end:r.sql}}case"literal":return this.expandLiteral(e);case"ago":case"from_now":{const r=this.nowDot(e.units),i=(0,rB.mkTemporal)(r,"timestamp"),s=this.delta(i,e.moment==="ago"?"-":"+",e.n,e.units);if(e.moment==="ago"&&e.n==="1")return{begin:s,end:r.sql};const o=Number(e.n)+(e.moment==="ago"?-1:1),u={...s,kids:{base:i,delta:this.n(o.toString())}};return{begin:s,end:this.d.sqlAlterTimeExpr(u)}}case"today":return this.thisUnit("day");case"yesterday":return this.lastUnit("day");case"tomorrow":return this.nextUnit("day");case"this":return this.thisUnit(e.units);case"last":return this.lastUnit(e.units);case"next":return this.nextUnit(e.units);case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":{const r=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].indexOf(e.moment),i=this.dayofWeek(this.nowExpr()).sql;if(e.which==="next"){const a=`${this.mod7(`${r}-(${i}-1)+6`)}+1`,l=this.delta(this.thisUnit("day").begin,"+",a,"day"),c=this.delta(this.thisUnit("day").begin,"+",`${a}+1`,"day");return{begin:l,end:c.sql}}const s=`${this.mod7(`(${i}-1)-${r}+6`)}+1`,o=this.delta(this.thisUnit("day").begin,"-",s,"day"),u=this.delta(this.thisUnit("day").begin,"-",`(${s})-1`,"day");return{begin:o,end:u.sql}}}}isIn(e,r,i){let s=">=",o="<",u="AND";return e&&(u="OR",s="<",o=">="),r=this.time(r),i=this.time(i),`${this.expr} ${s} ${r} ${u} ${this.expr} ${o} ${i}`}}P4.TemporalFilterCompiler=uXe,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FilterCompilers=void 0;const e=B4,r=P4;function i(u){return u.replace(/([%_\\])/g,"\\$1")}function s(u){return u===">"?"<=":u==="<"?">=":u===">="?"<":">"}function o(u,a){const l=` OR ${a} IS NULL`;return u.length===1?`${u[0]}${l}`:`(${u.join(" AND ")})${l}`}t.FilterCompilers={compile(u,a,l,c){if(a===null)return"true";if(u==="string"&&(0,e.isStringFilter)(a))return t.FilterCompilers.stringCompile(a,l,c);if(u==="number"&&(0,e.isNumberFilter)(a))return t.FilterCompilers.numberCompile(a,l,c);if(u==="boolean"&&(0,e.isBooleanFilter)(a))return t.FilterCompilers.booleanCompile(a,l,c);if((u==="date"||u==="timestamp")&&(0,e.isTemporalFilter)(a))return t.FilterCompilers.temporalCompile(a,l,c,u);throw new Error("INTERNAL ERROR: No filter compiler for "+u)},numberCompile(u,a,l){switch(u.operator){case"!=":case"=":{const c=u.operator==="="&&u.not||u.operator==="!="&&!u.not,f=u.values.join(", ");return u.values.length===1?c?`${a} != ${f} OR ${a} IS NULL`:`${a} = ${f}`:c?`${a} NOT IN (${f}) OR ${a} IS NULL`:`${a} IN (${f})`}case">":case"<":case">=":case"<=":return u.values.map(c=>`${a} ${u.operator} ${c}`).join(u.not?" AND ":" OR ");case"range":{let c=u.startOperator,f=u.endOperator,x=" AND ";return u.not&&(c=s(c),f=s(f),x=" OR "),`${a} ${c} ${u.startValue} ${x} ${a} ${f} ${u.endValue}`}case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"()":{const c="("+t.FilterCompilers.numberCompile(u.expr,a,l)+")";return u.not?`NOT ${c}`:c}case"and":case"or":return u.members.map(c=>t.FilterCompilers.numberCompile(c,a,l)).join(` ${u.operator.toUpperCase()} `)}},booleanCompile(u,a,l){switch(u.operator){case"false":return`${a} = false`;case"false_or_null":return`${a} IS NULL OR ${a} = false`;case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"true":return a}},stringCompile(u,a,l){switch(u.operator){case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"empty":return u.not?`COALESCE(${a},'') != ''`:`COALESCE(${a},'') = ''`;case"=":{if(u.values.length===1){const f=u.not?"!=":"=",x=`${a} ${f} ${l.sqlLiteralString(u.values[0])}`;return u.not?`(${x} OR ${a} IS NULL)`:x}const c="("+u.values.map(f=>l.sqlLiteralString(f)).join(", ")+")";return u.not?`(${a} NOT IN ${c} OR ${a} IS NULL)`:`${a} IN ${c}`}case"()":{const c="("+t.FilterCompilers.stringCompile(u.expr,a,l)+")";return u.not?`not ${c}`:c}case"contains":{const c=u.values.map(f=>"%"+i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"starts":{const c=u.values.map(f=>i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"ends":{const c=u.values.map(f=>"%"+i(f));return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"~":return u.not?o(u.escaped_values.map(c=>l.sqlLike("NOT LIKE",a,c)),a):u.escaped_values.map(c=>l.sqlLike("LIKE",a,c)).join(" OR ");case"and":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case"or":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case",":{const c=[],f=[];let x=!1,h=!1,p=!1,m=!1;for(const E of u.members)switch(E.operator){case"or":case"and":case",":c.push(E);break;case"null":E.not?h=!0:x=!0;break;case"empty":E.not?(m=!0,h=!0):(p=!0,x=!0);break;default:(E.not?f:c).push(E)}if(p&&m||x&&h)return"false";let y="";if(c.length>0||x||p){m=!1,h=!1;const E=c.map(A=>t.FilterCompilers.stringCompile(A,a,l));p&&E.push(`${a} = ''`),x&&E.push(`${a} IS NULL`),y=E.join(" OR ")}let g="";if(f.length>0||m||h){const E=f.map(A=>t.FilterCompilers.stringCompile(A,a,l));m&&E.push(`${a} != ''`),h&&E.push(`${a} IS NOT NULL`),g=E.join(" AND ")}return y?g!==""?`(${y}) AND (${g})`:y:g!==""?g:"true"}}},temporalCompile(u,a,l,c){return new r.TemporalFilterCompiler(a,l,c).compile(u)}}}(fae),Object.defineProperty($s,"__esModule",{value:!0}),$s.QueryModel=$s.getResultStructDefForQuery=$s.getResultStructDefForView=$s.Segment=void 0;const aXe=Up,lXe=Mp,cXe=Ey,ke=Xe,Tn=$t,U4=Hp,fXe=ai,xXe=fae,dXe=B4;function Cae(t){return t.map(e=>encodeURIComponent(e)).join("/")}function sB(t){return`'${t}'`}function hXe(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function Gp(t){const e=[];for(const r of t.fields.filter(ke.fieldIsIntrinsic))e.push({type:r.type,sqlExpression:(0,ke.getIdentifier)(r),rawName:(0,ke.getIdentifier)(r),sqlOutputName:(0,ke.getIdentifier)(r)});return e}class pXe extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class Sy{constructor(e=!0,r){this.parent=r,this.withs=[],this.udfs=[],this.pdts=[],this.dependenciesToMaterialize={},this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,Tn.indent)(`
1045
+ `)},S.prototype.clone=function(){return new S(this.states,this.state)},S.prototype.has=function(D){return!0},{compile:_,states:C,error:Object.freeze({error:!0}),fallback:Object.freeze({fallback:!0}),keywords:b}})})(hae);var X$=hae.exports,qt={};Object.defineProperty(qt,"__esModule",{value:!0}),qt.mkUnits=qt.timeLiteral=qt.joinTemporal=qt.temporalNot=qt.numNot=qt.mkValues=qt.mkRange=qt.joinNumbers=qt.conjoin=qt.matchOp=qt.escape=qt.unescape=qt.maybeNot=void 0;const Sa=bn;function IJe(t){const[e,r]=t;return e&&r&&(0,Sa.isStringFilter)(r)?{...r,not:!0}:r}qt.maybeNot=IJe;function vy(t){return t.replace(/\\(.)/g,"$1")}qt.unescape=vy;function $Je(t){const e=t.toLowerCase();return e==="null"||e==="empty"?"\\"+t:t.replace(/([,; |()\\%_-])/g,"\\$1")}qt.escape=$Je;function M4(t){let e=!1,r=!1,i=0,s=!1;const o=t.length;for(let u=0;u<o;u+=1){const a=t[u];if(a===" "||a===" "){i+=1;continue}i=0,a==="%"?(s=!0,u===0&&(e=!0),r=!0):(r=!1,a==="\\"?u+=1:a==="_"&&(s=!0))}return{hasLike:s,percentEnd:r&&o>1,percentStart:e&&o>1,endSpace:i}}function BJe(t){let e=t.trimStart();const{hasLike:r,percentEnd:i,percentStart:s,endSpace:o}=M4(e);if(o>0&&(e=e.slice(0,-o)),r){if(s&&i){const u=e.slice(1,-1);if(!M4(u).hasLike&&u.length>0)return{operator:"contains",values:[vy(u)]}}else if(i){const u=e.slice(0,-1);if(!M4(u).hasLike)return{operator:"starts",values:[vy(u)]}}else if(s){const u=e.slice(1);if(!M4(u).hasLike)return{operator:"ends",values:[vy(u)]}}return{operator:"~",escaped_values:[e]}}return e.toLowerCase()==="null"||e==="NULL"?{operator:"null"}:e==="empty"||e==="EMPTY"?{operator:"empty"}:{operator:"=",values:[vy(e)]}}qt.matchOp=BJe;function Z$(t,e){var r,i;return t.operator===e.operator&&((r=t.not)!==null&&r!==void 0?r:!1)===((i=e.not)!==null&&i!==void 0?i:!1)}function kJe(t,e,r){if((0,Sa.isStringFilter)(t)&&(0,Sa.isStringFilter)(r)){if(e===","){if(t.operator==="~"&&Z$(t,r))return{...t,escaped_values:[...t.escaped_values,...r.escaped_values]};if((0,Sa.isStringCondition)(t)&&Z$(t,r))return{...t,values:[...t.values,...r.values]}}const i=e===","?",":e==="|"?"or":e===";"?"and":void 0;if(i)return t.operator===i?{...t,members:[...t.members,r]}:{operator:i,members:[t,r]}}return null}qt.conjoin=kJe;function MJe(t,e,r){if((0,Sa.isNumberFilter)(t)&&(0,Sa.isNumberFilter)(r)){if(e==="or"&&t.operator==="="&&Z$(t,r)){const i={operator:"=",values:[...t.values,...r.values]};return t.not&&(i.not=!0),i}if(e==="and"||e==="or")return t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}}return null}qt.joinNumbers=MJe;function PJe(t,e,r,i){return{operator:"range",startValue:e,startOperator:t==="("?">":">=",endValue:r,endOperator:i===")"?"<":"<="}}qt.mkRange=PJe;function UJe(t,e){return{values:[t,...e]}}qt.mkValues=UJe;function jJe(t,e){return(0,Sa.isNumberFilter)(t)&&e?t.operator==="="?{operator:"!=",values:t.values}:t.operator==="!="?{operator:"=",values:t.values}:{...t,not:!0}:t}qt.numNot=jJe;function qJe(t,e){return(0,Sa.isTemporalFilter)(t)&&e?{...t,not:!0}:t}qt.temporalNot=qJe;function HJe(t,e,r){return(0,Sa.isTemporalFilter)(t)&&(0,Sa.isTemporalFilter)(r)&&(e==="and"||e==="or")?t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}:null}qt.joinTemporal=HJe;function QJe(t,e){const r={moment:"literal",literal:t};return e&&(r.units=e),r}qt.timeLiteral=QJe;function zJe(t){switch(t.toLowerCase()){case"second":case"seconds":return"second";case"minute":case"minutes":return"minute";case"hour":case"hours":return"hour";case"day":case"days":return"day";case"week":case"weeks":return"week";case"month":case"months":return"month";case"quarter":case"quarters":return"quarter";case"year":case"years":return"year"}}qt.mkUnits=zJe;var GJe=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(J$,"__esModule",{value:!0});function WJe(t){return t[0]}const pae=GJe(X$),Qp=qt,Ln=pae.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:pae.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to"})},oparen:"(",cparen:")",obrack:"[",cbrack:"]",comma:",",op:/<=|>=|<|>/,ne:"!=",eq:"=",float:/-?(?:\d+)?\.\d+(?:[Ee][+-]?\d+)?/,numberE:/-?\d+[Ee][+-]?\d+/,integer:/-?\d+/}),VJe=Ln.next;Ln.next=(t=>()=>{for(;;){const e=t.call(Ln);if(e===void 0||e.type!=="WS")return e}})(VJe);const YJe={Lexer:Ln,ParserRules:[{name:"numberFilter",symbols:["numberFilter","conjunction","numberUnary"],postprocess:([t,e,r])=>(0,Qp.joinNumbers)(t,e[0].text,r)},{name:"numberFilter",symbols:["numberUnary"],postprocess:t=>t[0]},{name:"numberUnary$ebnf$1",symbols:[Ln.has("NOT")?{type:"NOT"}:NOT],postprocess:WJe},{name:"numberUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"numberUnary",symbols:["numberUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,Qp.numNot)(e,t)},{name:"clause",symbols:[Ln.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause$ebnf$1",symbols:[]},{name:"clause$ebnf$1",symbols:["clause$ebnf$1","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:["N","clause$ebnf$1"],postprocess:([t,e])=>({operator:"=",...(0,Qp.mkValues)(t,e)})},{name:"clause$ebnf$2",symbols:[]},{name:"clause$ebnf$2",symbols:["clause$ebnf$2","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[Ln.has("eq")?{type:"eq"}:eq,"N","clause$ebnf$2"],postprocess:([t,e,r])=>({operator:"=",...(0,Qp.mkValues)(e,r)})},{name:"clause$ebnf$3",symbols:[]},{name:"clause$ebnf$3",symbols:["clause$ebnf$3","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[Ln.has("ne")?{type:"ne"}:ne,"N","clause$ebnf$3"],postprocess:([t,e,r])=>({operator:"!=",...(0,Qp.mkValues)(e,r)})},{name:"clause",symbols:[Ln.has("op")?{type:"op"}:op,"N"],postprocess:([t,e])=>({operator:t.text,values:[e]})},{name:"clause",symbols:[Ln.has("oparen")?{type:"oparen"}:oparen,"numberFilter",Ln.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:["openInterval","N",Ln.has("TO")?{type:"TO"}:TO,"N","closeInterval"],postprocess:([t,e,r,i,s])=>(0,Qp.mkRange)(t[0].text,e,i,s[0].text)},{name:"numberList",symbols:[Ln.has("comma")?{type:"comma"}:comma,"N"],postprocess:([t,e])=>e},{name:"closeInterval",symbols:[Ln.has("cbrack")?{type:"cbrack"}:cbrack]},{name:"closeInterval",symbols:[Ln.has("cparen")?{type:"cparen"}:cparen]},{name:"openInterval",symbols:[Ln.has("obrack")?{type:"obrack"}:obrack]},{name:"openInterval",symbols:[Ln.has("oparen")?{type:"oparen"}:oparen]},{name:"N$subexpression$1",symbols:[Ln.has("float")?{type:"float"}:float]},{name:"N$subexpression$1",symbols:[Ln.has("numberE")?{type:"numberE"}:numberE]},{name:"N$subexpression$1",symbols:[Ln.has("integer")?{type:"integer"}:integer]},{name:"N",symbols:["N$subexpression$1"],postprocess:([t])=>t[0].text},{name:"conjunction",symbols:[Ln.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[Ln.has("AND")?{type:"AND"}:AND]}],ParserStart:"numberFilter"};J$.default=YJe;var zp={};Object.defineProperty(zp,"__esModule",{value:!0}),zp.run_parser=void 0;const KJe=bn;function JJe(t,e){try{e.feed(t);const i=e.finish()[0];return i&&(0,KJe.isFilterExpression)(i)?{parsed:i,log:[]}:{parsed:null,log:[]}}catch(r){let i=r.message,s=1,o=t.length;if(r.token){const u=r.token;s=u.col,o=u.text.length;const l=r.message.match(new RegExp("(?<=A ).*(?= based on:)","g")).map(c=>c.replace(/\s+token/i,""));i=`Unexpected ${u.type} token "${u.value}"`,l&&l.length&&(i+=` Tokens expected: ${[...new Set(l)]}`)}return{parsed:null,log:[{message:i,startIndex:s-1,endIndex:s-1+o-1,severity:"error"}]}}}zp.run_parser=JJe,function(t){var e=T&&T.__createBinding||(Object.create?function(c,f,x,h){h===void 0&&(h=x);var p=Object.getOwnPropertyDescriptor(f,x);(!p||("get"in p?!f.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return f[x]}}),Object.defineProperty(c,h,p)}:function(c,f,x,h){h===void 0&&(h=x),c[h]=f[x]}),r=T&&T.__setModuleDefault||(Object.create?function(c,f){Object.defineProperty(c,"default",{enumerable:!0,value:f})}:function(c,f){c.default=f}),i=T&&T.__importStar||function(c){if(c&&c.__esModule)return c;var f={};if(c!=null)for(var x in c)x!=="default"&&Object.prototype.hasOwnProperty.call(c,x)&&e(f,c,x);return r(f,c),f},s=T&&T.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberFilterExpression=void 0;const o=bn,u=i(K$),a=s(J$),l=zp;t.NumberFilterExpression={parse(c){if(c.match(/^\s*$/))return{parsed:null,log:[]};const f=new u.Parser(u.Grammar.fromCompiled(a.default)),x=(0,l.run_parser)(c,f);return x.parsed&&(0,o.isNumberFilter)(x.parsed)?{parsed:x.parsed,log:[]}:{parsed:null,log:x.log}},unparse(c){if(c===null)return"";switch(c.operator){case"=":return c.values.join(", ");case"!=":return"!= "+c.values.join(", ");case">":case"<":case"<=":case">=":return c.not?c.values.map(f=>c.operator==="="?`not ${f}`:`not ${c.operator} ${f}`).join(", "):c.values.map(f=>`${c.operator} ${f}`).join(", ");case"range":{const f=c.startOperator===">"?"(":"[",x=c.endOperator==="<"?")":"]",h=`${f}${c.startValue} to ${c.endValue}${x}`;return c.not?`not ${h}`:h}case"null":return c.not?"not null":"null";case"and":case"or":return c.members.map(f=>t.NumberFilterExpression.unparse(f)).join(` ${c.operator} `);case"()":{const f="("+t.NumberFilterExpression.unparse(c.expr)+")";return c.not?"not "+f:f}}return`no unparse for ${JSON.stringify(c)}`}}}(xae);var mae={},eB={},XJe=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(eB,"__esModule",{value:!0});function ZJe(t){return t[0]}const eXe=XJe(X$),tB=qt,fu=eXe.default.compile({WS:/[ \t]+/,comma:",",semi:";",or:"|",open:"(",close:")",minus:"-",matchStr:/(?:\\[^\n]|[^\n,;()|])+/}),tXe=fu.next;fu.next=(t=>()=>{for(;;){const e=t.call(fu);if(e==null||e.type!=="WS")return e}})(tXe);const nXe={Lexer:fu,ParserRules:[{name:"stringFilter",symbols:["stringFilter","conjunction","sfUnary"],postprocess:([t,e,r])=>(0,tB.conjoin)(t,e[0].text,r)},{name:"stringFilter",symbols:["sfUnary"],postprocess:t=>t[0]},{name:"sfUnary$ebnf$1",symbols:[fu.has("minus")?{type:"minus"}:minus],postprocess:ZJe},{name:"sfUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"sfUnary",symbols:["sfUnary$ebnf$1","clause"],postprocess:t=>(0,tB.maybeNot)(t)},{name:"parens",symbols:[fu.has("open")?{type:"open"}:open,"stringFilter",fu.has("close")?{type:"close"}:close],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:[fu.has("matchStr")?{type:"matchStr"}:matchStr],postprocess:([t])=>(0,tB.matchOp)(t.text)},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"conjunction",symbols:[fu.has("comma")?{type:"comma"}:comma]},{name:"conjunction",symbols:[fu.has("semi")?{type:"semi"}:semi]},{name:"conjunction",symbols:[fu.has("or")?{type:"or"}:or]}],ParserStart:"stringFilter"};eB.default=nXe,function(t){var e=T&&T.__createBinding||(Object.create?function(f,x,h,p){p===void 0&&(p=h);var m=Object.getOwnPropertyDescriptor(x,h);(!m||("get"in m?!x.__esModule:m.writable||m.configurable))&&(m={enumerable:!0,get:function(){return x[h]}}),Object.defineProperty(f,p,m)}:function(f,x,h,p){p===void 0&&(p=h),f[p]=x[h]}),r=T&&T.__setModuleDefault||(Object.create?function(f,x){Object.defineProperty(f,"default",{enumerable:!0,value:x})}:function(f,x){f.default=x}),i=T&&T.__importStar||function(f){if(f&&f.__esModule)return f;var x={};if(f!=null)for(var h in f)h!=="default"&&Object.prototype.hasOwnProperty.call(f,h)&&e(x,f,h);return r(x,f),x},s=T&&T.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringFilterExpression=void 0;const o=bn,u=i(K$),a=s(eB),l=qt,c=zp;t.StringFilterExpression={parse(f){if(f.match(/^\s*$/))return{parsed:null,log:[]};const x=new u.Parser(u.Grammar.fromCompiled(a.default)),h=(0,c.run_parser)(f,x);return h.parsed&&(0,o.isStringFilter)(h.parsed)?{parsed:h.parsed,log:[]}:{parsed:null,log:h.log}},unparse(f){if(f===null)return"";switch(f.operator){case"=":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)).join(", "):f.values.map(x=>(0,l.escape)(x)).join(", ");case"~":return f.not?f.escaped_values.map(x=>"-"+x).join(", "):f.escaped_values.join(", ");case"starts":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>(0,l.escape)(x)+"%").join(", ");case"ends":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)).join(", "):f.values.map(x=>"%"+(0,l.escape)(x)).join(", ");case"contains":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>"%"+(0,l.escape)(x)+"%").join(", ");case"or":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(" | ");case"and":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join("; ");case",":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(", ");case"()":{const x="("+t.StringFilterExpression.unparse(f.expr)+")";return f.not?"-"+x:x}case"null":return f.not?"-null":"null";case"empty":return f.not?"-empty":"empty"}}}}(mae);var gae={},nB={},rXe=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nB,"__esModule",{value:!0});function iXe(t){return t[0]}const yae=rXe(X$),xu=qt,Ke=yae.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:yae.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to",NOW:"now",LAST:"last",THIS:"this",NEXT:"next",AGO:"ago",FROM:"from",BEFORE:"before",AFTER:"after",FOR:"for",TODAY:"today",YESTERDAY:"yesterday",TOMORROW:"tomorrow",SECOND:"second",MINUTE:"minute",HOUR:"hour",DAY:"day",WEEK:"week",MONTH:"month",QUARTER:"quarter",YEAR:"year",SECONDS:"seconds",MINUTES:"minutes",HOURS:"hours",DAYS:"days",WEEKS:"weeks",MONTHS:"months",QUARTERS:"quarters",YEARS:"years",MONDAY:"monday",TUESDAY:"tuesday",WEDNESDAY:"wednesday",THURSDAY:"thursday",FRIDAY:"friday",SATURDAY:"saturday",SUNDAY:"sunday"})},oparen:"(",cparen:")",comma:",",literal:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*)?)/,lit_week:/\d\d\d\d-\d\d-\d\d-[Ww][Kk]/,lit_quarter:/\d\d\d\d-[qQ][1234]/,lit_min:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d/,lit_hour:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d/,lit_day:/\d\d\d\d-\d\d-\d\d/,lit_month:/\d\d\d\d-\d\d/,lit_year:/\d\d\d\d/,n:/\d+/}),sXe=Ke.next;Ke.next=(t=>()=>{for(;;){const e=t.call(Ke);if(e===void 0||e.type!=="WS")return e}})(sXe);const oXe={Lexer:Ke,ParserRules:[{name:"temporalFilter",symbols:["temporalFilter","conjunction","temporalUnary"],postprocess:([t,e,r])=>(0,xu.joinTemporal)(t,e[0].text,r)},{name:"temporalFilter",symbols:["temporalUnary"],postprocess:t=>t[0]},{name:"temporalUnary$ebnf$1",symbols:[Ke.has("NOT")?{type:"NOT"}:NOT],postprocess:iXe},{name:"temporalUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"temporalUnary",symbols:["temporalUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,xu.temporalNot)(e,t)},{name:"duration",symbols:["number","unit"],postprocess:([t,e])=>({units:e,n:t})},{name:"number",symbols:[Ke.has("n")?{type:"n"}:n],postprocess:([t])=>t.text},{name:"number",symbols:[Ke.has("lityear")?{type:"lityear"}:lityear],postprocess:([t])=>t.text},{name:"unit$subexpression$1",symbols:[Ke.has("SECOND")?{type:"SECOND"}:SECOND]},{name:"unit$subexpression$1",symbols:[Ke.has("MINUTE")?{type:"MINUTE"}:MINUTE]},{name:"unit$subexpression$1",symbols:[Ke.has("HOUR")?{type:"HOUR"}:HOUR]},{name:"unit$subexpression$1",symbols:[Ke.has("DAY")?{type:"DAY"}:DAY]},{name:"unit$subexpression$1",symbols:[Ke.has("WEEK")?{type:"WEEK"}:WEEK]},{name:"unit$subexpression$1",symbols:[Ke.has("MONTH")?{type:"MONTH"}:MONTH]},{name:"unit$subexpression$1",symbols:[Ke.has("QUARTER")?{type:"QUARTER"}:QUARTER]},{name:"unit$subexpression$1",symbols:[Ke.has("YEAR")?{type:"YEAR"}:YEAR]},{name:"unit$subexpression$1",symbols:[Ke.has("SECONDS")?{type:"SECONDS"}:SECONDS]},{name:"unit$subexpression$1",symbols:[Ke.has("MINUTES")?{type:"MINUTES"}:MINUTES]},{name:"unit$subexpression$1",symbols:[Ke.has("HOURS")?{type:"HOURS"}:HOURS]},{name:"unit$subexpression$1",symbols:[Ke.has("DAYS")?{type:"DAYS"}:DAYS]},{name:"unit$subexpression$1",symbols:[Ke.has("WEEKS")?{type:"WEEKS"}:WEEKS]},{name:"unit$subexpression$1",symbols:[Ke.has("MONTHS")?{type:"MONTHS"}:MONTHS]},{name:"unit$subexpression$1",symbols:[Ke.has("QUARTERS")?{type:"QUARTERS"}:QUARTERS]},{name:"unit$subexpression$1",symbols:[Ke.has("YEARS")?{type:"YEARS"}:YEARS]},{name:"unit",symbols:["unit$subexpression$1"],postprocess:([t])=>(0,xu.mkUnits)(t[0].text)},{name:"clause",symbols:[Ke.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"clause",symbols:["duration"],postprocess:([t])=>({operator:"in_last",...t})},{name:"clause",symbols:[Ke.has("BEFORE")?{type:"BEFORE"}:BEFORE,"moment"],postprocess:([t,e])=>({operator:"before",before:e})},{name:"clause",symbols:[Ke.has("AFTER")?{type:"AFTER"}:AFTER,"moment"],postprocess:([t,e])=>({operator:"after",after:e})},{name:"clause",symbols:["moment",Ke.has("TO")?{type:"TO"}:TO,"moment"],postprocess:([t,e,r])=>({operator:"to",fromMoment:t,toMoment:r})},{name:"clause",symbols:["moment",Ke.has("FOR")?{type:"FOR"}:FOR,"duration"],postprocess:([t,e,r])=>({...r,operator:"for",begin:t})},{name:"clause$subexpression$1",symbols:[Ke.has("LAST")?{type:"LAST"}:LAST]},{name:"clause$subexpression$1",symbols:[Ke.has("NEXT")?{type:"NEXT"}:NEXT]},{name:"clause",symbols:["clause$subexpression$1","duration"],postprocess:([t,e])=>({operator:t[0].text,...e})},{name:"clause",symbols:["moment"],postprocess:([t])=>({operator:"in",in:t})},{name:"lastNextThis",symbols:[Ke.has("THIS")?{type:"THIS"}:THIS],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Ke.has("NEXT")?{type:"NEXT"}:NEXT],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Ke.has("LAST")?{type:"LAST"}:LAST],postprocess:([t])=>t.text.toLowerCase()},{name:"moment",symbols:[Ke.has("NOW")?{type:"NOW"}:NOW],postprocess:()=>({moment:"now"})},{name:"moment",symbols:["lastNextThis","unit"],postprocess:([t,e])=>({moment:t,units:e})},{name:"moment",symbols:[Ke.has("TODAY")?{type:"TODAY"}:TODAY],postprocess:()=>({moment:"today"})},{name:"moment",symbols:[Ke.has("YESTERDAY")?{type:"YESTERDAY"}:YESTERDAY],postprocess:()=>({moment:"yesterday"})},{name:"moment",symbols:[Ke.has("TOMORROW")?{type:"TOMORROW"}:TOMORROW],postprocess:()=>({moment:"tomorrow"})},{name:"moment",symbols:["duration",Ke.has("AGO")?{type:"AGO"}:AGO],postprocess:([t,e])=>({moment:"ago",...t})},{name:"moment",symbols:["duration",Ke.has("FROM")?{type:"FROM"}:FROM,Ke.has("NOW")?{type:"NOW"}:NOW],postprocess:([t,e])=>({moment:"from_now",...t})},{name:"moment",symbols:[Ke.has("NEXT")?{type:"NEXT"}:NEXT,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"next"})},{name:"moment",symbols:[Ke.has("LAST")?{type:"LAST"}:LAST,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"last"})},{name:"moment",symbols:["weekday"],postprocess:([t])=>({moment:t.toLowerCase(),which:"last"})},{name:"moment",symbols:["timeLiteral"],postprocess:t=>t[0]},{name:"timeLiteral",symbols:[Ke.has("literal")?{type:"literal"}:literal],postprocess:([t])=>(0,xu.timeLiteral)(t.text)},{name:"timeLiteral",symbols:[Ke.has("lit_day")?{type:"lit_day"}:lit_day],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"day")},{name:"timeLiteral",symbols:[Ke.has("lit_min")?{type:"lit_min"}:lit_min],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"minute")},{name:"timeLiteral",symbols:[Ke.has("lit_hour")?{type:"lit_hour"}:lit_hour],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"hour")},{name:"timeLiteral",symbols:[Ke.has("lit_month")?{type:"lit_month"}:lit_month],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"month")},{name:"timeLiteral",symbols:[Ke.has("lit_quarter")?{type:"lit_quarter"}:lit_quarter],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"quarter")},{name:"timeLiteral",symbols:[Ke.has("lit_week")?{type:"lit_week"}:lit_week],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"week")},{name:"timeLiteral",symbols:[Ke.has("lit_year")?{type:"lit_year"}:lit_year],postprocess:([t])=>(0,xu.timeLiteral)(t.text,"year")},{name:"weekday$subexpression$1",symbols:[Ke.has("MONDAY")?{type:"MONDAY"}:MONDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("TUESDAY")?{type:"TUESDAY"}:TUESDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("WEDNESDAY")?{type:"WEDNESDAY"}:WEDNESDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("THURSDAY")?{type:"THURSDAY"}:THURSDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("FRIDAY")?{type:"FRIDAY"}:FRIDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("SATURDAY")?{type:"SATURDAY"}:SATURDAY]},{name:"weekday$subexpression$1",symbols:[Ke.has("SUNDAY")?{type:"SUNDAY"}:SUNDAY]},{name:"weekday",symbols:["weekday$subexpression$1"],postprocess:([t])=>t[0].text},{name:"parens",symbols:[Ke.has("oparen")?{type:"oparen"}:oparen,"temporalFilter",Ke.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"conjunction",symbols:[Ke.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[Ke.has("AND")?{type:"AND"}:AND]}],ParserStart:"temporalFilter"};nB.default=oXe,function(t){var e=T&&T.__createBinding||(Object.create?function(h,p,m,y){y===void 0&&(y=m);var g=Object.getOwnPropertyDescriptor(p,m);(!g||("get"in g?!p.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return p[m]}}),Object.defineProperty(h,y,g)}:function(h,p,m,y){y===void 0&&(y=m),h[y]=p[m]}),r=T&&T.__setModuleDefault||(Object.create?function(h,p){Object.defineProperty(h,"default",{enumerable:!0,value:p})}:function(h,p){h.default=p}),i=T&&T.__importStar||function(h){if(h&&h.__esModule)return h;var p={};if(h!=null)for(var m in h)m!=="default"&&Object.prototype.hasOwnProperty.call(h,m)&&e(p,h,m);return r(p,h),p},s=T&&T.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=void 0;const o=bn,u=s(nB),a=i(K$),l=zp;t.TemporalFilterExpression={parse(h){if(h.match(/^\s*$/))return{parsed:null,log:[]};const p=new a.Parser(a.Grammar.fromCompiled(u.default)),m=(0,l.run_parser)(h,p);return m.parsed&&(0,o.isTemporalFilter)(m.parsed)?{parsed:m.parsed,log:[]}:{parsed:null,log:m.log}},unparse(h){if(h===null)return"";switch(h.operator){case"null":return c(h,"null");case"in":return c(h,x(h.in));case"()":return"("+t.TemporalFilterExpression.unparse(h.expr)+")";case"in_last":return c(h,f(h));case"last":case"next":return c(h,`${h.operator} ${f(h)}`);case"before":return c(h,`before ${x(h.before)}`);case"after":return c(h,`after ${x(h.after)}`);case"to":return c(h,`${x(h.fromMoment)} to ${x(h.toMoment)}`);case"for":return c(h,`${x(h.begin)} for ${f(h)}`);case"or":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" or ");case"and":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" and ")}}};function c(h,p){return"not"in h&&h.not?"not "+p:p}function f(h){return h.n==="1"?`1 ${h.units}`:`${h.n} ${h.units}s`}function x(h){switch(h.moment){case"literal":return h.literal;case"now":case"today":case"yesterday":case"tomorrow":return h.moment;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":return h.which==="next"?"next "+h.moment:h.moment;case"this":case"next":case"last":return`${h.moment} ${h.units}`;case"ago":return`${f(h)} ago`;case"from_now":return`${f(h)} from now`}}}(gae),function(t){var e=T&&T.__createBinding||(Object.create?function(a,l,c,f){f===void 0&&(f=c);var x=Object.getOwnPropertyDescriptor(l,c);(!x||("get"in x?!l.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return l[c]}}),Object.defineProperty(a,f,x)}:function(a,l,c,f){f===void 0&&(f=c),a[f]=l[c]}),r=T&&T.__exportStar||function(a,l){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(l,c)&&e(l,a,c)};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=t.StringFilterExpression=t.NumberFilterExpression=t.BooleanFilterExpression=void 0,r(bn,t);var i=k4;Object.defineProperty(t,"BooleanFilterExpression",{enumerable:!0,get:function(){return i.BooleanFilterExpression}});var s=xae;Object.defineProperty(t,"NumberFilterExpression",{enumerable:!0,get:function(){return s.NumberFilterExpression}});var o=mae;Object.defineProperty(t,"StringFilterExpression",{enumerable:!0,get:function(){return o.StringFilterExpression}});var u=gae;Object.defineProperty(t,"TemporalFilterExpression",{enumerable:!0,get:function(){return u.TemporalFilterExpression}})}(B4);var P4={};const Cy=yP(H1e);Object.defineProperty(P4,"__esModule",{value:!0}),P4.TemporalFilterCompiler=void 0;const rB=Xe,Zx=Cy,Eae="yyyy",Aae=`${Eae}-LL`,iB=`${Aae}-dd`,_ae=`${iB} HH`,vae=`${_ae}:mm`,xs=`${vae}:ss`;class uXe{constructor(e,r,i="timestamp"){this.expr=e,this.timetype=i,this.d=r}time(e){return this.timetype==="timestamp"?e:this.d.sqlCast({},{node:"cast",e:{node:"genericSQLExpr",src:["",e],kids:{args:[]},sql:e},srcType:{type:"timestamp"},dstType:{type:"date"},safe:!1})}compile(e){const r=this.expr;switch(e.operator){case"after":return`${r} ${e.not?"<":">="} ${this.time(this.moment(e.after).end)}`;case"before":return`${r} ${e.not?">=":"<"} ${this.time(this.moment(e.before).begin.sql)}`;case"in":{const i=this.moment(e.in);return i.begin.sql===i.end?e.not?`${r} != ${this.time(i.end)} OR ${r} IS NULL`:`${r} = ${this.time(i.end)}`:this.isIn(e.not,i.begin.sql,i.end)}case"for":{const i=this.moment(e.begin),s=this.delta(i.begin,"+",e.n,e.units);return this.isIn(e.not,i.begin.sql,s.sql)}case"in_last":{const i=Number(e.n)-1,s=this.nowDot(e.units),o=i>0?this.delta(s,"-",i.toString(),e.units):s,u=this.delta(s,"+","1",e.units);return this.isIn(e.not,o.sql,u.sql)}case"to":{const i=this.moment(e.fromMoment),s=this.moment(e.toMoment);return this.isIn(e.not,i.begin.sql,s.begin.sql)}case"last":{const i=this.nowDot(e.units),s=this.delta(i,"-",e.n,e.units);return this.isIn(e.not,s.sql,i.sql)}case"next":{const i=this.nowDot(e.units),s=this.delta(i,"+","1",e.units),o=this.delta(i,"+",(Number(e.n)+1).toString(),e.units);return this.isIn(e.not,s.sql,o.sql)}case"null":return e.not?`${r} IS NOT NULL`:`${r} IS NULL`;case"()":{const i="("+this.compile(e.expr)+")";return e.not?`NOT ${i}`:i}case"and":case"or":return e.members.map(i=>this.compile(i)).join(` ${e.operator.toUpperCase()} `)}}expandLiteral(e){let r=e.literal;switch(e.units){case"year":{const i=Zx.DateTime.fromFormat(r,Eae),s=this.literalNode(i.toFormat(xs)),o=i.plus({year:1});return{begin:s,end:this.literalNode(o.toFormat(xs)).sql}}case"month":{const i=Zx.DateTime.fromFormat(r,Aae),s=this.literalNode(i.toFormat(xs)),o=i.plus({month:1});return{begin:s,end:this.literalNode(o.toFormat(xs)).sql}}case"day":{const i=Zx.DateTime.fromFormat(r,iB),s=this.literalNode(i.toFormat(xs)),o=i.plus({day:1});return{begin:s,end:this.literalNode(o.toFormat(xs)).sql}}case"hour":{const i=Zx.DateTime.fromFormat(r,_ae),s=this.literalNode(i.toFormat(xs)),o=i.plus({hour:1});return{begin:s,end:this.literalNode(o.toFormat(xs)).sql}}case"minute":{const i=Zx.DateTime.fromFormat(r,vae),s=this.literalNode(i.toFormat(xs)),o=i.plus({minute:1});return{begin:s,end:this.literalNode(o.toFormat(xs)).sql}}case"week":{const o=Zx.DateTime.fromFormat(r.slice(0,10),iB).plus({day:1}).startOf("week").minus({day:1}),u=this.literalNode(o.toFormat(xs)),a=o.plus({days:7});return{begin:u,end:this.literalNode(a.toFormat(xs)).sql}}case"quarter":{const i=r.slice(0,4),s=r.slice(6);s==="1"?r=`${i}-01-01 00:00:00`:s==="2"?r=`${i}-03-01 00:00:00`:s==="3"?r=`${i}-06-01 00:00:00`:r=`${i}-09-01 00:00:00`;const o=this.literalNode(r),a=Zx.DateTime.fromFormat(r,xs).plus({months:3});return{begin:o,end:this.literalNode(a.toFormat(xs)).sql}}case void 0:case"second":{const i=this.literalNode(r);return{begin:i,end:i.sql}}}}literalNode(e){const r={node:"timeLiteral",typeDef:{type:"timestamp"},literal:e};return{...r,sql:this.d.sqlLiteralTime({},r)}}nowExpr(){return{node:"now",typeDef:{type:"timestamp"},sql:this.d.sqlNowExpr()}}n(e){return{node:"numberLiteral",literal:e,sql:e}}delta(e,r,i,s){const o={node:"delta",op:r,units:s,kids:{base:(0,rB.mkTemporal)(e,"timestamp"),delta:this.n(i)}};return{...o,sql:this.d.sqlAlterTimeExpr(o)}}dayofWeek(e){const r={node:"extract",e:(0,rB.mkTemporal)(e,"timestamp"),units:"day_of_week"};return{...r,sql:this.d.sqlTimeExtractExpr({},r)}}nowDot(e){const r={node:"trunc",e:this.nowExpr(),units:e};return{...r,sql:this.d.sqlTruncExpr({},r)}}thisUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e);return{begin:r,end:i.sql}}lastUnit(e){const r=this.nowDot(e);return{begin:this.delta(r,"-","1",e),end:r.sql}}nextUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e),s=this.delta(r,"+","2",e);return{begin:i,end:s.sql}}mod7(e){return this.d.hasModOperator?`(${e})%7`:`MOD(${e},7)`}moment(e){switch(e.moment){case"now":{const r=this.nowExpr();return{begin:r,end:r.sql}}case"literal":return this.expandLiteral(e);case"ago":case"from_now":{const r=this.nowDot(e.units),i=(0,rB.mkTemporal)(r,"timestamp"),s=this.delta(i,e.moment==="ago"?"-":"+",e.n,e.units);if(e.moment==="ago"&&e.n==="1")return{begin:s,end:r.sql};const o=Number(e.n)+(e.moment==="ago"?-1:1),u={...s,kids:{base:i,delta:this.n(o.toString())}};return{begin:s,end:this.d.sqlAlterTimeExpr(u)}}case"today":return this.thisUnit("day");case"yesterday":return this.lastUnit("day");case"tomorrow":return this.nextUnit("day");case"this":return this.thisUnit(e.units);case"last":return this.lastUnit(e.units);case"next":return this.nextUnit(e.units);case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":{const r=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].indexOf(e.moment),i=this.dayofWeek(this.nowExpr()).sql;if(e.which==="next"){const a=`${this.mod7(`${r}-(${i}-1)+6`)}+1`,l=this.delta(this.thisUnit("day").begin,"+",a,"day"),c=this.delta(this.thisUnit("day").begin,"+",`${a}+1`,"day");return{begin:l,end:c.sql}}const s=`${this.mod7(`(${i}-1)-${r}+6`)}+1`,o=this.delta(this.thisUnit("day").begin,"-",s,"day"),u=this.delta(this.thisUnit("day").begin,"-",`(${s})-1`,"day");return{begin:o,end:u.sql}}}}isIn(e,r,i){let s=">=",o="<",u="AND";return e&&(u="OR",s="<",o=">="),r=this.time(r),i=this.time(i),`${this.expr} ${s} ${r} ${u} ${this.expr} ${o} ${i}`}}P4.TemporalFilterCompiler=uXe,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FilterCompilers=void 0;const e=B4,r=P4;function i(u){return u.replace(/([%_\\])/g,"\\$1")}function s(u){return u===">"?"<=":u==="<"?">=":u===">="?"<":">"}function o(u,a){const l=` OR ${a} IS NULL`;return u.length===1?`${u[0]}${l}`:`(${u.join(" AND ")})${l}`}t.FilterCompilers={compile(u,a,l,c){if(a===null)return"true";if(u==="string"&&(0,e.isStringFilter)(a))return t.FilterCompilers.stringCompile(a,l,c);if(u==="number"&&(0,e.isNumberFilter)(a))return t.FilterCompilers.numberCompile(a,l,c);if(u==="boolean"&&(0,e.isBooleanFilter)(a))return t.FilterCompilers.booleanCompile(a,l,c);if((u==="date"||u==="timestamp")&&(0,e.isTemporalFilter)(a))return t.FilterCompilers.temporalCompile(a,l,c,u);throw new Error("INTERNAL ERROR: No filter compiler for "+u)},numberCompile(u,a,l){switch(u.operator){case"!=":case"=":{const c=u.operator==="="&&u.not||u.operator==="!="&&!u.not,f=u.values.join(", ");return u.values.length===1?c?`${a} != ${f} OR ${a} IS NULL`:`${a} = ${f}`:c?`${a} NOT IN (${f}) OR ${a} IS NULL`:`${a} IN (${f})`}case">":case"<":case">=":case"<=":return u.values.map(c=>`${a} ${u.operator} ${c}`).join(u.not?" AND ":" OR ");case"range":{let c=u.startOperator,f=u.endOperator,x=" AND ";return u.not&&(c=s(c),f=s(f),x=" OR "),`${a} ${c} ${u.startValue} ${x} ${a} ${f} ${u.endValue}`}case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"()":{const c="("+t.FilterCompilers.numberCompile(u.expr,a,l)+")";return u.not?`NOT ${c}`:c}case"and":case"or":return u.members.map(c=>t.FilterCompilers.numberCompile(c,a,l)).join(` ${u.operator.toUpperCase()} `)}},booleanCompile(u,a,l){switch(u.operator){case"false":return`${a} = false`;case"false_or_null":return`${a} IS NULL OR ${a} = false`;case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"true":return a}},stringCompile(u,a,l){switch(u.operator){case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"empty":return u.not?`COALESCE(${a},'') != ''`:`COALESCE(${a},'') = ''`;case"=":{if(u.values.length===1){const f=u.not?"!=":"=",x=`${a} ${f} ${l.sqlLiteralString(u.values[0])}`;return u.not?`(${x} OR ${a} IS NULL)`:x}const c="("+u.values.map(f=>l.sqlLiteralString(f)).join(", ")+")";return u.not?`(${a} NOT IN ${c} OR ${a} IS NULL)`:`${a} IN ${c}`}case"()":{const c="("+t.FilterCompilers.stringCompile(u.expr,a,l)+")";return u.not?`not ${c}`:c}case"contains":{const c=u.values.map(f=>"%"+i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"starts":{const c=u.values.map(f=>i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"ends":{const c=u.values.map(f=>"%"+i(f));return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"~":return u.not?o(u.escaped_values.map(c=>l.sqlLike("NOT LIKE",a,c)),a):u.escaped_values.map(c=>l.sqlLike("LIKE",a,c)).join(" OR ");case"and":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case"or":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case",":{const c=[],f=[];let x=!1,h=!1,p=!1,m=!1;for(const E of u.members)switch(E.operator){case"or":case"and":case",":c.push(E);break;case"null":E.not?h=!0:x=!0;break;case"empty":E.not?(m=!0,h=!0):(p=!0,x=!0);break;default:(E.not?f:c).push(E)}if(p&&m||x&&h)return"false";let y="";if(c.length>0||x||p){m=!1,h=!1;const E=c.map(A=>t.FilterCompilers.stringCompile(A,a,l));p&&E.push(`${a} = ''`),x&&E.push(`${a} IS NULL`),y=E.join(" OR ")}let g="";if(f.length>0||m||h){const E=f.map(A=>t.FilterCompilers.stringCompile(A,a,l));m&&E.push(`${a} != ''`),h&&E.push(`${a} IS NOT NULL`),g=E.join(" AND ")}return y?g!==""?`(${y}) AND (${g})`:y:g!==""?g:"true"}}},temporalCompile(u,a,l,c){return new r.TemporalFilterCompiler(a,l,c).compile(u)}}}(fae),Object.defineProperty($s,"__esModule",{value:!0}),$s.QueryModel=$s.getResultStructDefForQuery=$s.getResultStructDefForView=$s.Segment=void 0;const aXe=Up,lXe=Mp,cXe=Ey,ke=Xe,Tn=$t,U4=Hp,fXe=ai,xXe=fae,dXe=B4;function Cae(t){return t.map(e=>encodeURIComponent(e)).join("/")}function sB(t){return`'${t}'`}function hXe(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function Gp(t){const e=[];for(const r of t.fields.filter(ke.fieldIsIntrinsic))e.push({type:r.type,sqlExpression:(0,ke.getIdentifier)(r),rawName:(0,ke.getIdentifier)(r),sqlOutputName:(0,ke.getIdentifier)(r)});return e}class pXe extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class Sy{constructor(e=!0,r){this.parent=r,this.withs=[],this.udfs=[],this.pdts=[],this.dependenciesToMaterialize={},this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,Tn.indent)(`
1046
1046
  (${e})
1047
1047
  `))}addUDF(e,r,i){var s;let{sql:o,lastStageName:u}=e.combineStages(!0);if(u===void 0)throw new Error("Internal Error: no stage to combine");o+=r.sqlCreateFunctionCombineLastStage(u,Gp(i),(s=i.resultMetadata)===null||s===void 0?void 0:s.orderBy);const a=`${r.udfPrefix}${this.root().udfs.length}`;return o=r.sqlCreateFunction(a,o),this.root().udfs.push(o),a}addMaterializedQuery(e,r,i){var s;const o=r.name;if(!o)throw new Error(`Source ${e} on a unnamed query that is tagged as materialize, only named queries can be materialized.`);const u=(s=r.location)===null||s===void 0?void 0:s.url;if(!u)throw new Error(`Trying to materialize query ${o}, but its path is not set.`);const a=(0,U4.buildQueryMaterializationSpec)(u,o,i);return this.root().dependenciesToMaterialize[a.id]=a,a.id}addPDT(e,r){const i=this.combineStages(!1).sql+this.withs[this.withs.length-1],o=`scratch.${e+(0,Tn.generateHash)(i)}`;return this.root().pdts.push(r.sqlCreateTableAsSelect(o,i)),o}combineStages(e){if(!this.useCTE)return{sql:this.withs[0],lastStageName:this.withs[0]};let r=this.getName(0),i="WITH ",s="";for(let o=0;o<this.withs.length-(e?0:1);o++){const u=this.withs[o];if(r=this.getName(o),u===void 0)throw new Error(`Expected sql WITH to be present for stage ${r}.`);s+=`${i}${r} AS (
1048
1048
  ${(0,Tn.indent)(u)})
@@ -125857,7 +125857,7 @@ const uV = Ttt(vk), ko = zt, Xe = uV.default.compile({
125857
125857
  oparen: "(",
125858
125858
  cparen: ")",
125859
125859
  comma: ",",
125860
- literal: /\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*))/,
125860
+ literal: /\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*)?)/,
125861
125861
  lit_week: /\d\d\d\d-\d\d-\d\d-[Ww][Kk]/,
125862
125862
  lit_quarter: /\d\d\d\d-[qQ][1234]/,
125863
125863
  lit_min: /\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d/,
@@ -126172,8 +126172,10 @@ class wtt {
126172
126172
  return { begin: o, end: this.literalNode(a.toFormat(Zi)).sql };
126173
126173
  }
126174
126174
  case void 0:
126175
- case "second":
126176
- return { begin: this.literalNode(r), end: r };
126175
+ case "second": {
126176
+ const i = this.literalNode(r);
126177
+ return { begin: i, end: i.sql };
126178
+ }
126177
126179
  }
126178
126180
  }
126179
126181
  literalNode(e) {
@@ -1437,7 +1437,7 @@ Use (?: … ) instead`);if(!ee.lineBreaks&&j.test(`
1437
1437
  `))throw new Error("Rule should declare lineBreaks: "+j);he.push(l(F))}}var Q=U&&U.fallback,L=i&&!Q?"ym":"gm",M=i||Q?"":"|";Z===!0&&(L+="u");var q=new RegExp(c(he)+M,L);return{regexp:q,groups:de,fast:V,error:U||E}}function _(D){var $=A(g(D));return new b({start:$},"start")}function v(D,$,U){var V=D&&(D.push||D.next);if(V&&!U[V])throw new Error("Missing state '"+V+"' (in token '"+D.defaultType+"' of state '"+$+"')");if(D&&D.pop&&+D.pop!=1)throw new Error("pop must be 1 (in token '"+D.defaultType+"' of state '"+$+"')")}function C(D,$){var U=D.$all?g(D.$all):[];delete D.$all;var V=Object.getOwnPropertyNames(D);$||($=V[0]);for(var z=Object.create(null),Z=0;Z<V.length;Z++){var de=V[Z];z[de]=g(D[de]).concat(U)}for(var Z=0;Z<V.length;Z++)for(var de=V[Z],he=z[de],ie=Object.create(null),ee=0;ee<he.length;ee++){var X=he[ee];if(X.include){var ce=[ee,1];if(X.include!==de&&!ie[X.include]){ie[X.include]=!0;var N=z[X.include];if(!N)throw new Error("Cannot include nonexistent state '"+X.include+"' (in state '"+de+"')");for(var w=0;w<N.length;w++){var F=N[w];he.indexOf(F)===-1&&ce.push(F)}}he.splice.apply(he,ce),ee--}}for(var j=Object.create(null),Z=0;Z<V.length;Z++){var de=V[Z];j[de]=A(z[de],!0)}for(var Z=0;Z<V.length;Z++){for(var Y=V[Z],Q=j[Y],L=Q.groups,ee=0;ee<L.length;ee++)v(L[ee],Y,j);for(var M=Object.getOwnPropertyNames(Q.fast),ee=0;ee<M.length;ee++)v(Q.fast[M[ee]],Y,j)}return new b(j,$)}function S(D){for(var $=typeof Map<"u",U=$?new Map:Object.create(null),V=Object.getOwnPropertyNames(D),z=0;z<V.length;z++){var Z=V[z],de=D[Z],he=Array.isArray(de)?de:[de];he.forEach(function(ie){if(typeof ie!="string")throw new Error("keyword must be string (in keyword '"+Z+"')");$?U.set(ie,Z):U[ie]=Z})}return function(ie){return $?U.get(ie):U[ie]}}var b=function(D,$){this.startState=$,this.states=D,this.buffer="",this.stack=[],this.reset()};b.prototype.reset=function(D,$){return this.buffer=D||"",this.index=0,this.line=$?$.line:1,this.col=$?$.col:1,this.queuedToken=$?$.queuedToken:null,this.queuedText=$?$.queuedText:"",this.queuedThrow=$?$.queuedThrow:null,this.setState($?$.state:this.startState),this.stack=$&&$.stack?$.stack.slice():[],this},b.prototype.save=function(){return{line:this.line,col:this.col,state:this.state,stack:this.stack.slice(),queuedToken:this.queuedToken,queuedText:this.queuedText,queuedThrow:this.queuedThrow}},b.prototype.setState=function(D){if(!(!D||this.state===D)){this.state=D;var $=this.states[D];this.groups=$.groups,this.error=$.error,this.re=$.regexp,this.fast=$.fast}},b.prototype.popState=function(){this.setState(this.stack.pop())},b.prototype.pushState=function(D){this.stack.push(this.state),this.setState(D)};var R=i?function(D,$){return D.exec($)}:function(D,$){var U=D.exec($);return U[0].length===0?null:U};b.prototype._getGroup=function(D){for(var $=this.groups.length,U=0;U<$;U++)if(D[U+1]!==void 0)return this.groups[U];throw new Error("Cannot find token type for matched text")};function O(){return this.value}if(b.prototype.next=function(){var D=this.index;if(this.queuedGroup){var $=this._token(this.queuedGroup,this.queuedText,D);return this.queuedGroup=null,this.queuedText="",$}var U=this.buffer;if(D!==U.length){var de=this.fast[U.charCodeAt(D)];if(de)return this._token(de,U.charAt(D),D);var V=this.re;V.lastIndex=D;var z=R(V,U),Z=this.error;if(z==null)return this._token(Z,U.slice(D,U.length),D);var de=this._getGroup(z),he=z[0];return Z.fallback&&z.index!==D?(this.queuedGroup=de,this.queuedText=he,this._token(Z,U.slice(D,z.index),D)):this._token(de,he,D)}},b.prototype._token=function(D,$,U){var V=0;if(D.lineBreaks){var z=/\n/g,Z=1;if($===`
1438
1438
  `)V=1;else for(;z.exec($);)V++,Z=z.lastIndex}var de={type:typeof D.type=="function"&&D.type($)||D.defaultType,value:typeof D.value=="function"?D.value($):$,text:$,toString:O,offset:U,lineBreaks:V,line:this.line,col:this.col},he=$.length;if(this.index+=he,this.line+=V,V!==0?this.col=he-Z+1:this.col+=he,D.shouldThrow){var ie=new Error(this.formatError(de,"invalid syntax"));throw ie}return D.pop?this.popState():D.push?this.pushState(D.push):D.next&&this.setState(D.next),de},typeof Symbol<"u"&&Symbol.iterator){var B=function(D){this.lexer=D};B.prototype.next=function(){var D=this.lexer.next();return{value:D,done:!D}},B.prototype[Symbol.iterator]=function(){return this},b.prototype[Symbol.iterator]=function(){return new B(this)}}return b.prototype.formatError=function(D,$){if(D==null)var U=this.buffer.slice(this.index),D={text:U,offset:this.index,lineBreaks:U.indexOf(`
1439
1439
  `)===-1?0:1,line:this.line,col:this.col};var V=2,z=Math.max(D.line-V,1),Z=D.line+V,de=String(Z).length,he=h(this.buffer,this.line-D.line+V+1).slice(0,5),ie=[];ie.push($+" at line "+D.line+" col "+D.col+":"),ie.push("");for(var ee=0;ee<he.length;ee++){var X=he[ee],ce=z+ee;ie.push(x(String(ce),de)+" "+X),ce===D.line&&ie.push(x("",de+D.col+1)+"^")}return ie.join(`
1440
- `)},b.prototype.clone=function(){return new b(this.states,this.state)},b.prototype.has=function(D){return!0},{compile:_,states:C,error:Object.freeze({error:!0}),fallback:Object.freeze({fallback:!0}),keywords:S}})})(ple);var yB=ple.exports,zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.mkUnits=zt.timeLiteral=zt.joinTemporal=zt.temporalNot=zt.numNot=zt.mkValues=zt.mkRange=zt.joinNumbers=zt.conjoin=zt.matchOp=zt.escape=zt.unescape=zt.maybeNot=void 0;const Pa=On;function Det(t){const[e,r]=t;return e&&r&&(0,Pa.isStringFilter)(r)?{...r,not:!0}:r}zt.maybeNot=Det;function rE(t){return t.replace(/\\(.)/g,"$1")}zt.unescape=rE;function Oet(t){const e=t.toLowerCase();return e==="null"||e==="empty"?"\\"+t:t.replace(/([,; |()\\%_-])/g,"\\$1")}zt.escape=Oet;function I4(t){let e=!1,r=!1,i=0,s=!1;const o=t.length;for(let u=0;u<o;u+=1){const a=t[u];if(a===" "||a===" "){i+=1;continue}i=0,a==="%"?(s=!0,u===0&&(e=!0),r=!0):(r=!1,a==="\\"?u+=1:a==="_"&&(s=!0))}return{hasLike:s,percentEnd:r&&o>1,percentStart:e&&o>1,endSpace:i}}function wet(t){let e=t.trimStart();const{hasLike:r,percentEnd:i,percentStart:s,endSpace:o}=I4(e);if(o>0&&(e=e.slice(0,-o)),r){if(s&&i){const u=e.slice(1,-1);if(!I4(u).hasLike&&u.length>0)return{operator:"contains",values:[rE(u)]}}else if(i){const u=e.slice(0,-1);if(!I4(u).hasLike)return{operator:"starts",values:[rE(u)]}}else if(s){const u=e.slice(1);if(!I4(u).hasLike)return{operator:"ends",values:[rE(u)]}}return{operator:"~",escaped_values:[e]}}return e.toLowerCase()==="null"||e==="NULL"?{operator:"null"}:e==="empty"||e==="EMPTY"?{operator:"empty"}:{operator:"=",values:[rE(e)]}}zt.matchOp=wet;function EB(t,e){var r,i;return t.operator===e.operator&&((r=t.not)!==null&&r!==void 0?r:!1)===((i=e.not)!==null&&i!==void 0?i:!1)}function Fet(t,e,r){if((0,Pa.isStringFilter)(t)&&(0,Pa.isStringFilter)(r)){if(e===","){if(t.operator==="~"&&EB(t,r))return{...t,escaped_values:[...t.escaped_values,...r.escaped_values]};if((0,Pa.isStringCondition)(t)&&EB(t,r))return{...t,values:[...t.values,...r.values]}}const i=e===","?",":e==="|"?"or":e===";"?"and":void 0;if(i)return t.operator===i?{...t,members:[...t.members,r]}:{operator:i,members:[t,r]}}return null}zt.conjoin=Fet;function Net(t,e,r){if((0,Pa.isNumberFilter)(t)&&(0,Pa.isNumberFilter)(r)){if(e==="or"&&t.operator==="="&&EB(t,r)){const i={operator:"=",values:[...t.values,...r.values]};return t.not&&(i.not=!0),i}if(e==="and"||e==="or")return t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}}return null}zt.joinNumbers=Net;function Let(t,e,r,i){return{operator:"range",startValue:e,startOperator:t==="("?">":">=",endValue:r,endOperator:i===")"?"<":"<="}}zt.mkRange=Let;function Iet(t,e){return{values:[t,...e]}}zt.mkValues=Iet;function $et(t,e){return(0,Pa.isNumberFilter)(t)&&e?t.operator==="="?{operator:"!=",values:t.values}:t.operator==="!="?{operator:"=",values:t.values}:{...t,not:!0}:t}zt.numNot=$et;function Bet(t,e){return(0,Pa.isTemporalFilter)(t)&&e?{...t,not:!0}:t}zt.temporalNot=Bet;function ket(t,e,r){return(0,Pa.isTemporalFilter)(t)&&(0,Pa.isTemporalFilter)(r)&&(e==="and"||e==="or")?t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}:null}zt.joinTemporal=ket;function Met(t,e){const r={moment:"literal",literal:t};return e&&(r.units=e),r}zt.timeLiteral=Met;function Pet(t){switch(t.toLowerCase()){case"second":case"seconds":return"second";case"minute":case"minutes":return"minute";case"hour":case"hours":return"hour";case"day":case"days":return"day";case"week":case"weeks":return"week";case"month":case"months":return"month";case"quarter":case"quarters":return"quarter";case"year":case"years":return"year"}}zt.mkUnits=Pet;var Uet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(gB,"__esModule",{value:!0});function jet(t){return t[0]}const mle=Uet(yB),_2=zt,kn=mle.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:mle.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to"})},oparen:"(",cparen:")",obrack:"[",cbrack:"]",comma:",",op:/<=|>=|<|>/,ne:"!=",eq:"=",float:/-?(?:\d+)?\.\d+(?:[Ee][+-]?\d+)?/,numberE:/-?\d+[Ee][+-]?\d+/,integer:/-?\d+/}),qet=kn.next;kn.next=(t=>()=>{for(;;){const e=t.call(kn);if(e===void 0||e.type!=="WS")return e}})(qet);const Het={Lexer:kn,ParserRules:[{name:"numberFilter",symbols:["numberFilter","conjunction","numberUnary"],postprocess:([t,e,r])=>(0,_2.joinNumbers)(t,e[0].text,r)},{name:"numberFilter",symbols:["numberUnary"],postprocess:t=>t[0]},{name:"numberUnary$ebnf$1",symbols:[kn.has("NOT")?{type:"NOT"}:NOT],postprocess:jet},{name:"numberUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"numberUnary",symbols:["numberUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,_2.numNot)(e,t)},{name:"clause",symbols:[kn.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause$ebnf$1",symbols:[]},{name:"clause$ebnf$1",symbols:["clause$ebnf$1","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:["N","clause$ebnf$1"],postprocess:([t,e])=>({operator:"=",...(0,_2.mkValues)(t,e)})},{name:"clause$ebnf$2",symbols:[]},{name:"clause$ebnf$2",symbols:["clause$ebnf$2","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[kn.has("eq")?{type:"eq"}:eq,"N","clause$ebnf$2"],postprocess:([t,e,r])=>({operator:"=",...(0,_2.mkValues)(e,r)})},{name:"clause$ebnf$3",symbols:[]},{name:"clause$ebnf$3",symbols:["clause$ebnf$3","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[kn.has("ne")?{type:"ne"}:ne,"N","clause$ebnf$3"],postprocess:([t,e,r])=>({operator:"!=",...(0,_2.mkValues)(e,r)})},{name:"clause",symbols:[kn.has("op")?{type:"op"}:op,"N"],postprocess:([t,e])=>({operator:t.text,values:[e]})},{name:"clause",symbols:[kn.has("oparen")?{type:"oparen"}:oparen,"numberFilter",kn.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:["openInterval","N",kn.has("TO")?{type:"TO"}:TO,"N","closeInterval"],postprocess:([t,e,r,i,s])=>(0,_2.mkRange)(t[0].text,e,i,s[0].text)},{name:"numberList",symbols:[kn.has("comma")?{type:"comma"}:comma,"N"],postprocess:([t,e])=>e},{name:"closeInterval",symbols:[kn.has("cbrack")?{type:"cbrack"}:cbrack]},{name:"closeInterval",symbols:[kn.has("cparen")?{type:"cparen"}:cparen]},{name:"openInterval",symbols:[kn.has("obrack")?{type:"obrack"}:obrack]},{name:"openInterval",symbols:[kn.has("oparen")?{type:"oparen"}:oparen]},{name:"N$subexpression$1",symbols:[kn.has("float")?{type:"float"}:float]},{name:"N$subexpression$1",symbols:[kn.has("numberE")?{type:"numberE"}:numberE]},{name:"N$subexpression$1",symbols:[kn.has("integer")?{type:"integer"}:integer]},{name:"N",symbols:["N$subexpression$1"],postprocess:([t])=>t[0].text},{name:"conjunction",symbols:[kn.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[kn.has("AND")?{type:"AND"}:AND]}],ParserStart:"numberFilter"};gB.default=Het;var v2={};Object.defineProperty(v2,"__esModule",{value:!0}),v2.run_parser=void 0;const zet=On;function Qet(t,e){try{e.feed(t);const i=e.finish()[0];return i&&(0,zet.isFilterExpression)(i)?{parsed:i,log:[]}:{parsed:null,log:[]}}catch(r){let i=r.message,s=1,o=t.length;if(r.token){const u=r.token;s=u.col,o=u.text.length;const l=r.message.match(new RegExp("(?<=A ).*(?= based on:)","g")).map(c=>c.replace(/\s+token/i,""));i=`Unexpected ${u.type} token "${u.value}"`,l&&l.length&&(i+=` Tokens expected: ${[...new Set(l)]}`)}return{parsed:null,log:[{message:i,startIndex:s-1,endIndex:s-1+o-1,severity:"error"}]}}}v2.run_parser=Qet,function(t){var e=T&&T.__createBinding||(Object.create?function(c,f,x,h){h===void 0&&(h=x);var p=Object.getOwnPropertyDescriptor(f,x);(!p||("get"in p?!f.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return f[x]}}),Object.defineProperty(c,h,p)}:function(c,f,x,h){h===void 0&&(h=x),c[h]=f[x]}),r=T&&T.__setModuleDefault||(Object.create?function(c,f){Object.defineProperty(c,"default",{enumerable:!0,value:f})}:function(c,f){c.default=f}),i=T&&T.__importStar||function(c){if(c&&c.__esModule)return c;var f={};if(c!=null)for(var x in c)x!=="default"&&Object.prototype.hasOwnProperty.call(c,x)&&e(f,c,x);return r(f,c),f},s=T&&T.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberFilterExpression=void 0;const o=On,u=i(mB),a=s(gB),l=v2;t.NumberFilterExpression={parse(c){if(c.match(/^\s*$/))return{parsed:null,log:[]};const f=new u.Parser(u.Grammar.fromCompiled(a.default)),x=(0,l.run_parser)(c,f);return x.parsed&&(0,o.isNumberFilter)(x.parsed)?{parsed:x.parsed,log:[]}:{parsed:null,log:x.log}},unparse(c){if(c===null)return"";switch(c.operator){case"=":return c.values.join(", ");case"!=":return"!= "+c.values.join(", ");case">":case"<":case"<=":case">=":return c.not?c.values.map(f=>c.operator==="="?`not ${f}`:`not ${c.operator} ${f}`).join(", "):c.values.map(f=>`${c.operator} ${f}`).join(", ");case"range":{const f=c.startOperator===">"?"(":"[",x=c.endOperator==="<"?")":"]",h=`${f}${c.startValue} to ${c.endValue}${x}`;return c.not?`not ${h}`:h}case"null":return c.not?"not null":"null";case"and":case"or":return c.members.map(f=>t.NumberFilterExpression.unparse(f)).join(` ${c.operator} `);case"()":{const f="("+t.NumberFilterExpression.unparse(c.expr)+")";return c.not?"not "+f:f}}return`no unparse for ${JSON.stringify(c)}`}}}(dle);var gle={},AB={},Wet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(AB,"__esModule",{value:!0});function Get(t){return t[0]}const Vet=Wet(yB),_B=zt,Cu=Vet.default.compile({WS:/[ \t]+/,comma:",",semi:";",or:"|",open:"(",close:")",minus:"-",matchStr:/(?:\\[^\n]|[^\n,;()|])+/}),Yet=Cu.next;Cu.next=(t=>()=>{for(;;){const e=t.call(Cu);if(e==null||e.type!=="WS")return e}})(Yet);const Ket={Lexer:Cu,ParserRules:[{name:"stringFilter",symbols:["stringFilter","conjunction","sfUnary"],postprocess:([t,e,r])=>(0,_B.conjoin)(t,e[0].text,r)},{name:"stringFilter",symbols:["sfUnary"],postprocess:t=>t[0]},{name:"sfUnary$ebnf$1",symbols:[Cu.has("minus")?{type:"minus"}:minus],postprocess:Get},{name:"sfUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"sfUnary",symbols:["sfUnary$ebnf$1","clause"],postprocess:t=>(0,_B.maybeNot)(t)},{name:"parens",symbols:[Cu.has("open")?{type:"open"}:open,"stringFilter",Cu.has("close")?{type:"close"}:close],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:[Cu.has("matchStr")?{type:"matchStr"}:matchStr],postprocess:([t])=>(0,_B.matchOp)(t.text)},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"conjunction",symbols:[Cu.has("comma")?{type:"comma"}:comma]},{name:"conjunction",symbols:[Cu.has("semi")?{type:"semi"}:semi]},{name:"conjunction",symbols:[Cu.has("or")?{type:"or"}:or]}],ParserStart:"stringFilter"};AB.default=Ket,function(t){var e=T&&T.__createBinding||(Object.create?function(f,x,h,p){p===void 0&&(p=h);var m=Object.getOwnPropertyDescriptor(x,h);(!m||("get"in m?!x.__esModule:m.writable||m.configurable))&&(m={enumerable:!0,get:function(){return x[h]}}),Object.defineProperty(f,p,m)}:function(f,x,h,p){p===void 0&&(p=h),f[p]=x[h]}),r=T&&T.__setModuleDefault||(Object.create?function(f,x){Object.defineProperty(f,"default",{enumerable:!0,value:x})}:function(f,x){f.default=x}),i=T&&T.__importStar||function(f){if(f&&f.__esModule)return f;var x={};if(f!=null)for(var h in f)h!=="default"&&Object.prototype.hasOwnProperty.call(f,h)&&e(x,f,h);return r(x,f),x},s=T&&T.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringFilterExpression=void 0;const o=On,u=i(mB),a=s(AB),l=zt,c=v2;t.StringFilterExpression={parse(f){if(f.match(/^\s*$/))return{parsed:null,log:[]};const x=new u.Parser(u.Grammar.fromCompiled(a.default)),h=(0,c.run_parser)(f,x);return h.parsed&&(0,o.isStringFilter)(h.parsed)?{parsed:h.parsed,log:[]}:{parsed:null,log:h.log}},unparse(f){if(f===null)return"";switch(f.operator){case"=":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)).join(", "):f.values.map(x=>(0,l.escape)(x)).join(", ");case"~":return f.not?f.escaped_values.map(x=>"-"+x).join(", "):f.escaped_values.join(", ");case"starts":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>(0,l.escape)(x)+"%").join(", ");case"ends":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)).join(", "):f.values.map(x=>"%"+(0,l.escape)(x)).join(", ");case"contains":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>"%"+(0,l.escape)(x)+"%").join(", ");case"or":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(" | ");case"and":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join("; ");case",":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(", ");case"()":{const x="("+t.StringFilterExpression.unparse(f.expr)+")";return f.not?"-"+x:x}case"null":return f.not?"-null":"null";case"empty":return f.not?"-empty":"empty"}}}}(gle);var yle={},vB={},Jet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vB,"__esModule",{value:!0});function Xet(t){return t[0]}const Ele=Jet(yB),Su=zt,Xe=Ele.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:Ele.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to",NOW:"now",LAST:"last",THIS:"this",NEXT:"next",AGO:"ago",FROM:"from",BEFORE:"before",AFTER:"after",FOR:"for",TODAY:"today",YESTERDAY:"yesterday",TOMORROW:"tomorrow",SECOND:"second",MINUTE:"minute",HOUR:"hour",DAY:"day",WEEK:"week",MONTH:"month",QUARTER:"quarter",YEAR:"year",SECONDS:"seconds",MINUTES:"minutes",HOURS:"hours",DAYS:"days",WEEKS:"weeks",MONTHS:"months",QUARTERS:"quarters",YEARS:"years",MONDAY:"monday",TUESDAY:"tuesday",WEDNESDAY:"wednesday",THURSDAY:"thursday",FRIDAY:"friday",SATURDAY:"saturday",SUNDAY:"sunday"})},oparen:"(",cparen:")",comma:",",literal:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*))/,lit_week:/\d\d\d\d-\d\d-\d\d-[Ww][Kk]/,lit_quarter:/\d\d\d\d-[qQ][1234]/,lit_min:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d/,lit_hour:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d/,lit_day:/\d\d\d\d-\d\d-\d\d/,lit_month:/\d\d\d\d-\d\d/,lit_year:/\d\d\d\d/,n:/\d+/}),Zet=Xe.next;Xe.next=(t=>()=>{for(;;){const e=t.call(Xe);if(e===void 0||e.type!=="WS")return e}})(Zet);const ett={Lexer:Xe,ParserRules:[{name:"temporalFilter",symbols:["temporalFilter","conjunction","temporalUnary"],postprocess:([t,e,r])=>(0,Su.joinTemporal)(t,e[0].text,r)},{name:"temporalFilter",symbols:["temporalUnary"],postprocess:t=>t[0]},{name:"temporalUnary$ebnf$1",symbols:[Xe.has("NOT")?{type:"NOT"}:NOT],postprocess:Xet},{name:"temporalUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"temporalUnary",symbols:["temporalUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,Su.temporalNot)(e,t)},{name:"duration",symbols:["number","unit"],postprocess:([t,e])=>({units:e,n:t})},{name:"number",symbols:[Xe.has("n")?{type:"n"}:n],postprocess:([t])=>t.text},{name:"number",symbols:[Xe.has("lityear")?{type:"lityear"}:lityear],postprocess:([t])=>t.text},{name:"unit$subexpression$1",symbols:[Xe.has("SECOND")?{type:"SECOND"}:SECOND]},{name:"unit$subexpression$1",symbols:[Xe.has("MINUTE")?{type:"MINUTE"}:MINUTE]},{name:"unit$subexpression$1",symbols:[Xe.has("HOUR")?{type:"HOUR"}:HOUR]},{name:"unit$subexpression$1",symbols:[Xe.has("DAY")?{type:"DAY"}:DAY]},{name:"unit$subexpression$1",symbols:[Xe.has("WEEK")?{type:"WEEK"}:WEEK]},{name:"unit$subexpression$1",symbols:[Xe.has("MONTH")?{type:"MONTH"}:MONTH]},{name:"unit$subexpression$1",symbols:[Xe.has("QUARTER")?{type:"QUARTER"}:QUARTER]},{name:"unit$subexpression$1",symbols:[Xe.has("YEAR")?{type:"YEAR"}:YEAR]},{name:"unit$subexpression$1",symbols:[Xe.has("SECONDS")?{type:"SECONDS"}:SECONDS]},{name:"unit$subexpression$1",symbols:[Xe.has("MINUTES")?{type:"MINUTES"}:MINUTES]},{name:"unit$subexpression$1",symbols:[Xe.has("HOURS")?{type:"HOURS"}:HOURS]},{name:"unit$subexpression$1",symbols:[Xe.has("DAYS")?{type:"DAYS"}:DAYS]},{name:"unit$subexpression$1",symbols:[Xe.has("WEEKS")?{type:"WEEKS"}:WEEKS]},{name:"unit$subexpression$1",symbols:[Xe.has("MONTHS")?{type:"MONTHS"}:MONTHS]},{name:"unit$subexpression$1",symbols:[Xe.has("QUARTERS")?{type:"QUARTERS"}:QUARTERS]},{name:"unit$subexpression$1",symbols:[Xe.has("YEARS")?{type:"YEARS"}:YEARS]},{name:"unit",symbols:["unit$subexpression$1"],postprocess:([t])=>(0,Su.mkUnits)(t[0].text)},{name:"clause",symbols:[Xe.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"clause",symbols:["duration"],postprocess:([t])=>({operator:"in_last",...t})},{name:"clause",symbols:[Xe.has("BEFORE")?{type:"BEFORE"}:BEFORE,"moment"],postprocess:([t,e])=>({operator:"before",before:e})},{name:"clause",symbols:[Xe.has("AFTER")?{type:"AFTER"}:AFTER,"moment"],postprocess:([t,e])=>({operator:"after",after:e})},{name:"clause",symbols:["moment",Xe.has("TO")?{type:"TO"}:TO,"moment"],postprocess:([t,e,r])=>({operator:"to",fromMoment:t,toMoment:r})},{name:"clause",symbols:["moment",Xe.has("FOR")?{type:"FOR"}:FOR,"duration"],postprocess:([t,e,r])=>({...r,operator:"for",begin:t})},{name:"clause$subexpression$1",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST]},{name:"clause$subexpression$1",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT]},{name:"clause",symbols:["clause$subexpression$1","duration"],postprocess:([t,e])=>({operator:t[0].text,...e})},{name:"clause",symbols:["moment"],postprocess:([t])=>({operator:"in",in:t})},{name:"lastNextThis",symbols:[Xe.has("THIS")?{type:"THIS"}:THIS],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST],postprocess:([t])=>t.text.toLowerCase()},{name:"moment",symbols:[Xe.has("NOW")?{type:"NOW"}:NOW],postprocess:()=>({moment:"now"})},{name:"moment",symbols:["lastNextThis","unit"],postprocess:([t,e])=>({moment:t,units:e})},{name:"moment",symbols:[Xe.has("TODAY")?{type:"TODAY"}:TODAY],postprocess:()=>({moment:"today"})},{name:"moment",symbols:[Xe.has("YESTERDAY")?{type:"YESTERDAY"}:YESTERDAY],postprocess:()=>({moment:"yesterday"})},{name:"moment",symbols:[Xe.has("TOMORROW")?{type:"TOMORROW"}:TOMORROW],postprocess:()=>({moment:"tomorrow"})},{name:"moment",symbols:["duration",Xe.has("AGO")?{type:"AGO"}:AGO],postprocess:([t,e])=>({moment:"ago",...t})},{name:"moment",symbols:["duration",Xe.has("FROM")?{type:"FROM"}:FROM,Xe.has("NOW")?{type:"NOW"}:NOW],postprocess:([t,e])=>({moment:"from_now",...t})},{name:"moment",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"next"})},{name:"moment",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"last"})},{name:"moment",symbols:["weekday"],postprocess:([t])=>({moment:t.toLowerCase(),which:"last"})},{name:"moment",symbols:["timeLiteral"],postprocess:t=>t[0]},{name:"timeLiteral",symbols:[Xe.has("literal")?{type:"literal"}:literal],postprocess:([t])=>(0,Su.timeLiteral)(t.text)},{name:"timeLiteral",symbols:[Xe.has("lit_day")?{type:"lit_day"}:lit_day],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"day")},{name:"timeLiteral",symbols:[Xe.has("lit_min")?{type:"lit_min"}:lit_min],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"minute")},{name:"timeLiteral",symbols:[Xe.has("lit_hour")?{type:"lit_hour"}:lit_hour],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"hour")},{name:"timeLiteral",symbols:[Xe.has("lit_month")?{type:"lit_month"}:lit_month],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"month")},{name:"timeLiteral",symbols:[Xe.has("lit_quarter")?{type:"lit_quarter"}:lit_quarter],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"quarter")},{name:"timeLiteral",symbols:[Xe.has("lit_week")?{type:"lit_week"}:lit_week],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"week")},{name:"timeLiteral",symbols:[Xe.has("lit_year")?{type:"lit_year"}:lit_year],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"year")},{name:"weekday$subexpression$1",symbols:[Xe.has("MONDAY")?{type:"MONDAY"}:MONDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("TUESDAY")?{type:"TUESDAY"}:TUESDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("WEDNESDAY")?{type:"WEDNESDAY"}:WEDNESDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("THURSDAY")?{type:"THURSDAY"}:THURSDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("FRIDAY")?{type:"FRIDAY"}:FRIDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("SATURDAY")?{type:"SATURDAY"}:SATURDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("SUNDAY")?{type:"SUNDAY"}:SUNDAY]},{name:"weekday",symbols:["weekday$subexpression$1"],postprocess:([t])=>t[0].text},{name:"parens",symbols:[Xe.has("oparen")?{type:"oparen"}:oparen,"temporalFilter",Xe.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"conjunction",symbols:[Xe.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[Xe.has("AND")?{type:"AND"}:AND]}],ParserStart:"temporalFilter"};vB.default=ett,function(t){var e=T&&T.__createBinding||(Object.create?function(h,p,m,y){y===void 0&&(y=m);var g=Object.getOwnPropertyDescriptor(p,m);(!g||("get"in g?!p.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return p[m]}}),Object.defineProperty(h,y,g)}:function(h,p,m,y){y===void 0&&(y=m),h[y]=p[m]}),r=T&&T.__setModuleDefault||(Object.create?function(h,p){Object.defineProperty(h,"default",{enumerable:!0,value:p})}:function(h,p){h.default=p}),i=T&&T.__importStar||function(h){if(h&&h.__esModule)return h;var p={};if(h!=null)for(var m in h)m!=="default"&&Object.prototype.hasOwnProperty.call(h,m)&&e(p,h,m);return r(p,h),p},s=T&&T.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=void 0;const o=On,u=s(vB),a=i(mB),l=v2;t.TemporalFilterExpression={parse(h){if(h.match(/^\s*$/))return{parsed:null,log:[]};const p=new a.Parser(a.Grammar.fromCompiled(u.default)),m=(0,l.run_parser)(h,p);return m.parsed&&(0,o.isTemporalFilter)(m.parsed)?{parsed:m.parsed,log:[]}:{parsed:null,log:m.log}},unparse(h){if(h===null)return"";switch(h.operator){case"null":return c(h,"null");case"in":return c(h,x(h.in));case"()":return"("+t.TemporalFilterExpression.unparse(h.expr)+")";case"in_last":return c(h,f(h));case"last":case"next":return c(h,`${h.operator} ${f(h)}`);case"before":return c(h,`before ${x(h.before)}`);case"after":return c(h,`after ${x(h.after)}`);case"to":return c(h,`${x(h.fromMoment)} to ${x(h.toMoment)}`);case"for":return c(h,`${x(h.begin)} for ${f(h)}`);case"or":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" or ");case"and":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" and ")}}};function c(h,p){return"not"in h&&h.not?"not "+p:p}function f(h){return h.n==="1"?`1 ${h.units}`:`${h.n} ${h.units}s`}function x(h){switch(h.moment){case"literal":return h.literal;case"now":case"today":case"yesterday":case"tomorrow":return h.moment;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":return h.which==="next"?"next "+h.moment:h.moment;case"this":case"next":case"last":return`${h.moment} ${h.units}`;case"ago":return`${f(h)} ago`;case"from_now":return`${f(h)} from now`}}}(yle),function(t){var e=T&&T.__createBinding||(Object.create?function(a,l,c,f){f===void 0&&(f=c);var x=Object.getOwnPropertyDescriptor(l,c);(!x||("get"in x?!l.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return l[c]}}),Object.defineProperty(a,f,x)}:function(a,l,c,f){f===void 0&&(f=c),a[f]=l[c]}),r=T&&T.__exportStar||function(a,l){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(l,c)&&e(l,a,c)};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=t.StringFilterExpression=t.NumberFilterExpression=t.BooleanFilterExpression=void 0,r(On,t);var i=L4;Object.defineProperty(t,"BooleanFilterExpression",{enumerable:!0,get:function(){return i.BooleanFilterExpression}});var s=dle;Object.defineProperty(t,"NumberFilterExpression",{enumerable:!0,get:function(){return s.NumberFilterExpression}});var o=gle;Object.defineProperty(t,"StringFilterExpression",{enumerable:!0,get:function(){return o.StringFilterExpression}});var u=yle;Object.defineProperty(t,"TemporalFilterExpression",{enumerable:!0,get:function(){return u.TemporalFilterExpression}})}(N4);var $4={};Object.defineProperty($4,"__esModule",{value:!0}),$4.TemporalFilterCompiler=void 0;const CB=et,Sd=qr,Ale="yyyy",_le=`${Ale}-LL`,SB=`${_le}-dd`,vle=`${SB} HH`,Cle=`${vle}:mm`,ys=`${Cle}:ss`;class ttt{constructor(e,r,i="timestamp"){this.expr=e,this.timetype=i,this.d=r}time(e){return this.timetype==="timestamp"?e:this.d.sqlCast({},{node:"cast",e:{node:"genericSQLExpr",src:["",e],kids:{args:[]},sql:e},srcType:{type:"timestamp"},dstType:{type:"date"},safe:!1})}compile(e){const r=this.expr;switch(e.operator){case"after":return`${r} ${e.not?"<":">="} ${this.time(this.moment(e.after).end)}`;case"before":return`${r} ${e.not?">=":"<"} ${this.time(this.moment(e.before).begin.sql)}`;case"in":{const i=this.moment(e.in);return i.begin.sql===i.end?e.not?`${r} != ${this.time(i.end)} OR ${r} IS NULL`:`${r} = ${this.time(i.end)}`:this.isIn(e.not,i.begin.sql,i.end)}case"for":{const i=this.moment(e.begin),s=this.delta(i.begin,"+",e.n,e.units);return this.isIn(e.not,i.begin.sql,s.sql)}case"in_last":{const i=Number(e.n)-1,s=this.nowDot(e.units),o=i>0?this.delta(s,"-",i.toString(),e.units):s,u=this.delta(s,"+","1",e.units);return this.isIn(e.not,o.sql,u.sql)}case"to":{const i=this.moment(e.fromMoment),s=this.moment(e.toMoment);return this.isIn(e.not,i.begin.sql,s.begin.sql)}case"last":{const i=this.nowDot(e.units),s=this.delta(i,"-",e.n,e.units);return this.isIn(e.not,s.sql,i.sql)}case"next":{const i=this.nowDot(e.units),s=this.delta(i,"+","1",e.units),o=this.delta(i,"+",(Number(e.n)+1).toString(),e.units);return this.isIn(e.not,s.sql,o.sql)}case"null":return e.not?`${r} IS NOT NULL`:`${r} IS NULL`;case"()":{const i="("+this.compile(e.expr)+")";return e.not?`NOT ${i}`:i}case"and":case"or":return e.members.map(i=>this.compile(i)).join(` ${e.operator.toUpperCase()} `)}}expandLiteral(e){let r=e.literal;switch(e.units){case"year":{const i=Sd.DateTime.fromFormat(r,Ale),s=this.literalNode(i.toFormat(ys)),o=i.plus({year:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"month":{const i=Sd.DateTime.fromFormat(r,_le),s=this.literalNode(i.toFormat(ys)),o=i.plus({month:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"day":{const i=Sd.DateTime.fromFormat(r,SB),s=this.literalNode(i.toFormat(ys)),o=i.plus({day:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"hour":{const i=Sd.DateTime.fromFormat(r,vle),s=this.literalNode(i.toFormat(ys)),o=i.plus({hour:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"minute":{const i=Sd.DateTime.fromFormat(r,Cle),s=this.literalNode(i.toFormat(ys)),o=i.plus({minute:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"week":{const o=Sd.DateTime.fromFormat(r.slice(0,10),SB).plus({day:1}).startOf("week").minus({day:1}),u=this.literalNode(o.toFormat(ys)),a=o.plus({days:7});return{begin:u,end:this.literalNode(a.toFormat(ys)).sql}}case"quarter":{const i=r.slice(0,4),s=r.slice(6);s==="1"?r=`${i}-01-01 00:00:00`:s==="2"?r=`${i}-03-01 00:00:00`:s==="3"?r=`${i}-06-01 00:00:00`:r=`${i}-09-01 00:00:00`;const o=this.literalNode(r),a=Sd.DateTime.fromFormat(r,ys).plus({months:3});return{begin:o,end:this.literalNode(a.toFormat(ys)).sql}}case void 0:case"second":return{begin:this.literalNode(r),end:r}}}literalNode(e){const r={node:"timeLiteral",typeDef:{type:"timestamp"},literal:e};return{...r,sql:this.d.sqlLiteralTime({},r)}}nowExpr(){return{node:"now",typeDef:{type:"timestamp"},sql:this.d.sqlNowExpr()}}n(e){return{node:"numberLiteral",literal:e,sql:e}}delta(e,r,i,s){const o={node:"delta",op:r,units:s,kids:{base:(0,CB.mkTemporal)(e,"timestamp"),delta:this.n(i)}};return{...o,sql:this.d.sqlAlterTimeExpr(o)}}dayofWeek(e){const r={node:"extract",e:(0,CB.mkTemporal)(e,"timestamp"),units:"day_of_week"};return{...r,sql:this.d.sqlTimeExtractExpr({},r)}}nowDot(e){const r={node:"trunc",e:this.nowExpr(),units:e};return{...r,sql:this.d.sqlTruncExpr({},r)}}thisUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e);return{begin:r,end:i.sql}}lastUnit(e){const r=this.nowDot(e);return{begin:this.delta(r,"-","1",e),end:r.sql}}nextUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e),s=this.delta(r,"+","2",e);return{begin:i,end:s.sql}}mod7(e){return this.d.hasModOperator?`(${e})%7`:`MOD(${e},7)`}moment(e){switch(e.moment){case"now":{const r=this.nowExpr();return{begin:r,end:r.sql}}case"literal":return this.expandLiteral(e);case"ago":case"from_now":{const r=this.nowDot(e.units),i=(0,CB.mkTemporal)(r,"timestamp"),s=this.delta(i,e.moment==="ago"?"-":"+",e.n,e.units);if(e.moment==="ago"&&e.n==="1")return{begin:s,end:r.sql};const o=Number(e.n)+(e.moment==="ago"?-1:1),u={...s,kids:{base:i,delta:this.n(o.toString())}};return{begin:s,end:this.d.sqlAlterTimeExpr(u)}}case"today":return this.thisUnit("day");case"yesterday":return this.lastUnit("day");case"tomorrow":return this.nextUnit("day");case"this":return this.thisUnit(e.units);case"last":return this.lastUnit(e.units);case"next":return this.nextUnit(e.units);case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":{const r=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].indexOf(e.moment),i=this.dayofWeek(this.nowExpr()).sql;if(e.which==="next"){const a=`${this.mod7(`${r}-(${i}-1)+6`)}+1`,l=this.delta(this.thisUnit("day").begin,"+",a,"day"),c=this.delta(this.thisUnit("day").begin,"+",`${a}+1`,"day");return{begin:l,end:c.sql}}const s=`${this.mod7(`(${i}-1)-${r}+6`)}+1`,o=this.delta(this.thisUnit("day").begin,"-",s,"day"),u=this.delta(this.thisUnit("day").begin,"-",`(${s})-1`,"day");return{begin:o,end:u.sql}}}}isIn(e,r,i){let s=">=",o="<",u="AND";return e&&(u="OR",s="<",o=">="),r=this.time(r),i=this.time(i),`${this.expr} ${s} ${r} ${u} ${this.expr} ${o} ${i}`}}$4.TemporalFilterCompiler=ttt,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FilterCompilers=void 0;const e=N4,r=$4;function i(u){return u.replace(/([%_\\])/g,"\\$1")}function s(u){return u===">"?"<=":u==="<"?">=":u===">="?"<":">"}function o(u,a){const l=` OR ${a} IS NULL`;return u.length===1?`${u[0]}${l}`:`(${u.join(" AND ")})${l}`}t.FilterCompilers={compile(u,a,l,c){if(a===null)return"true";if(u==="string"&&(0,e.isStringFilter)(a))return t.FilterCompilers.stringCompile(a,l,c);if(u==="number"&&(0,e.isNumberFilter)(a))return t.FilterCompilers.numberCompile(a,l,c);if(u==="boolean"&&(0,e.isBooleanFilter)(a))return t.FilterCompilers.booleanCompile(a,l,c);if((u==="date"||u==="timestamp")&&(0,e.isTemporalFilter)(a))return t.FilterCompilers.temporalCompile(a,l,c,u);throw new Error("INTERNAL ERROR: No filter compiler for "+u)},numberCompile(u,a,l){switch(u.operator){case"!=":case"=":{const c=u.operator==="="&&u.not||u.operator==="!="&&!u.not,f=u.values.join(", ");return u.values.length===1?c?`${a} != ${f} OR ${a} IS NULL`:`${a} = ${f}`:c?`${a} NOT IN (${f}) OR ${a} IS NULL`:`${a} IN (${f})`}case">":case"<":case">=":case"<=":return u.values.map(c=>`${a} ${u.operator} ${c}`).join(u.not?" AND ":" OR ");case"range":{let c=u.startOperator,f=u.endOperator,x=" AND ";return u.not&&(c=s(c),f=s(f),x=" OR "),`${a} ${c} ${u.startValue} ${x} ${a} ${f} ${u.endValue}`}case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"()":{const c="("+t.FilterCompilers.numberCompile(u.expr,a,l)+")";return u.not?`NOT ${c}`:c}case"and":case"or":return u.members.map(c=>t.FilterCompilers.numberCompile(c,a,l)).join(` ${u.operator.toUpperCase()} `)}},booleanCompile(u,a,l){switch(u.operator){case"false":return`${a} = false`;case"false_or_null":return`${a} IS NULL OR ${a} = false`;case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"true":return a}},stringCompile(u,a,l){switch(u.operator){case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"empty":return u.not?`COALESCE(${a},'') != ''`:`COALESCE(${a},'') = ''`;case"=":{if(u.values.length===1){const f=u.not?"!=":"=",x=`${a} ${f} ${l.sqlLiteralString(u.values[0])}`;return u.not?`(${x} OR ${a} IS NULL)`:x}const c="("+u.values.map(f=>l.sqlLiteralString(f)).join(", ")+")";return u.not?`(${a} NOT IN ${c} OR ${a} IS NULL)`:`${a} IN ${c}`}case"()":{const c="("+t.FilterCompilers.stringCompile(u.expr,a,l)+")";return u.not?`not ${c}`:c}case"contains":{const c=u.values.map(f=>"%"+i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"starts":{const c=u.values.map(f=>i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"ends":{const c=u.values.map(f=>"%"+i(f));return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"~":return u.not?o(u.escaped_values.map(c=>l.sqlLike("NOT LIKE",a,c)),a):u.escaped_values.map(c=>l.sqlLike("LIKE",a,c)).join(" OR ");case"and":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case"or":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case",":{const c=[],f=[];let x=!1,h=!1,p=!1,m=!1;for(const E of u.members)switch(E.operator){case"or":case"and":case",":c.push(E);break;case"null":E.not?h=!0:x=!0;break;case"empty":E.not?(m=!0,h=!0):(p=!0,x=!0);break;default:(E.not?f:c).push(E)}if(p&&m||x&&h)return"false";let y="";if(c.length>0||x||p){m=!1,h=!1;const E=c.map(A=>t.FilterCompilers.stringCompile(A,a,l));p&&E.push(`${a} = ''`),x&&E.push(`${a} IS NULL`),y=E.join(" OR ")}let g="";if(f.length>0||m||h){const E=f.map(A=>t.FilterCompilers.stringCompile(A,a,l));m&&E.push(`${a} != ''`),h&&E.push(`${a} IS NOT NULL`),g=E.join(" AND ")}return y?g!==""?`(${y}) AND (${g})`:y:g!==""?g:"true"}}},temporalCompile(u,a,l,c){return new r.TemporalFilterCompiler(a,l,c).compile(u)}}}(xle),Object.defineProperty(Hs,"__esModule",{value:!0}),Hs.QueryModel=Hs.getResultStructDefForQuery=Hs.getResultStructDefForView=Hs.Segment=void 0;const ntt=g2,rtt=p2,itt=eE,Ue=et,wn=kt,B4=A2,stt=gi,ott=xle,utt=N4;function Sle(t){return t.map(e=>encodeURIComponent(e)).join("/")}function bB(t){return`'${t}'`}function att(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function C2(t){const e=[];for(const r of t.fields.filter(Ue.fieldIsIntrinsic))e.push({type:r.type,sqlExpression:(0,Ue.getIdentifier)(r),rawName:(0,Ue.getIdentifier)(r),sqlOutputName:(0,Ue.getIdentifier)(r)});return e}class ltt extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class iE{constructor(e=!0,r){this.parent=r,this.withs=[],this.udfs=[],this.pdts=[],this.dependenciesToMaterialize={},this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,wn.indent)(`
1440
+ `)},b.prototype.clone=function(){return new b(this.states,this.state)},b.prototype.has=function(D){return!0},{compile:_,states:C,error:Object.freeze({error:!0}),fallback:Object.freeze({fallback:!0}),keywords:S}})})(ple);var yB=ple.exports,zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.mkUnits=zt.timeLiteral=zt.joinTemporal=zt.temporalNot=zt.numNot=zt.mkValues=zt.mkRange=zt.joinNumbers=zt.conjoin=zt.matchOp=zt.escape=zt.unescape=zt.maybeNot=void 0;const Pa=On;function Det(t){const[e,r]=t;return e&&r&&(0,Pa.isStringFilter)(r)?{...r,not:!0}:r}zt.maybeNot=Det;function rE(t){return t.replace(/\\(.)/g,"$1")}zt.unescape=rE;function Oet(t){const e=t.toLowerCase();return e==="null"||e==="empty"?"\\"+t:t.replace(/([,; |()\\%_-])/g,"\\$1")}zt.escape=Oet;function I4(t){let e=!1,r=!1,i=0,s=!1;const o=t.length;for(let u=0;u<o;u+=1){const a=t[u];if(a===" "||a===" "){i+=1;continue}i=0,a==="%"?(s=!0,u===0&&(e=!0),r=!0):(r=!1,a==="\\"?u+=1:a==="_"&&(s=!0))}return{hasLike:s,percentEnd:r&&o>1,percentStart:e&&o>1,endSpace:i}}function wet(t){let e=t.trimStart();const{hasLike:r,percentEnd:i,percentStart:s,endSpace:o}=I4(e);if(o>0&&(e=e.slice(0,-o)),r){if(s&&i){const u=e.slice(1,-1);if(!I4(u).hasLike&&u.length>0)return{operator:"contains",values:[rE(u)]}}else if(i){const u=e.slice(0,-1);if(!I4(u).hasLike)return{operator:"starts",values:[rE(u)]}}else if(s){const u=e.slice(1);if(!I4(u).hasLike)return{operator:"ends",values:[rE(u)]}}return{operator:"~",escaped_values:[e]}}return e.toLowerCase()==="null"||e==="NULL"?{operator:"null"}:e==="empty"||e==="EMPTY"?{operator:"empty"}:{operator:"=",values:[rE(e)]}}zt.matchOp=wet;function EB(t,e){var r,i;return t.operator===e.operator&&((r=t.not)!==null&&r!==void 0?r:!1)===((i=e.not)!==null&&i!==void 0?i:!1)}function Fet(t,e,r){if((0,Pa.isStringFilter)(t)&&(0,Pa.isStringFilter)(r)){if(e===","){if(t.operator==="~"&&EB(t,r))return{...t,escaped_values:[...t.escaped_values,...r.escaped_values]};if((0,Pa.isStringCondition)(t)&&EB(t,r))return{...t,values:[...t.values,...r.values]}}const i=e===","?",":e==="|"?"or":e===";"?"and":void 0;if(i)return t.operator===i?{...t,members:[...t.members,r]}:{operator:i,members:[t,r]}}return null}zt.conjoin=Fet;function Net(t,e,r){if((0,Pa.isNumberFilter)(t)&&(0,Pa.isNumberFilter)(r)){if(e==="or"&&t.operator==="="&&EB(t,r)){const i={operator:"=",values:[...t.values,...r.values]};return t.not&&(i.not=!0),i}if(e==="and"||e==="or")return t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}}return null}zt.joinNumbers=Net;function Let(t,e,r,i){return{operator:"range",startValue:e,startOperator:t==="("?">":">=",endValue:r,endOperator:i===")"?"<":"<="}}zt.mkRange=Let;function Iet(t,e){return{values:[t,...e]}}zt.mkValues=Iet;function $et(t,e){return(0,Pa.isNumberFilter)(t)&&e?t.operator==="="?{operator:"!=",values:t.values}:t.operator==="!="?{operator:"=",values:t.values}:{...t,not:!0}:t}zt.numNot=$et;function Bet(t,e){return(0,Pa.isTemporalFilter)(t)&&e?{...t,not:!0}:t}zt.temporalNot=Bet;function ket(t,e,r){return(0,Pa.isTemporalFilter)(t)&&(0,Pa.isTemporalFilter)(r)&&(e==="and"||e==="or")?t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}:null}zt.joinTemporal=ket;function Met(t,e){const r={moment:"literal",literal:t};return e&&(r.units=e),r}zt.timeLiteral=Met;function Pet(t){switch(t.toLowerCase()){case"second":case"seconds":return"second";case"minute":case"minutes":return"minute";case"hour":case"hours":return"hour";case"day":case"days":return"day";case"week":case"weeks":return"week";case"month":case"months":return"month";case"quarter":case"quarters":return"quarter";case"year":case"years":return"year"}}zt.mkUnits=Pet;var Uet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(gB,"__esModule",{value:!0});function jet(t){return t[0]}const mle=Uet(yB),_2=zt,kn=mle.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:mle.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to"})},oparen:"(",cparen:")",obrack:"[",cbrack:"]",comma:",",op:/<=|>=|<|>/,ne:"!=",eq:"=",float:/-?(?:\d+)?\.\d+(?:[Ee][+-]?\d+)?/,numberE:/-?\d+[Ee][+-]?\d+/,integer:/-?\d+/}),qet=kn.next;kn.next=(t=>()=>{for(;;){const e=t.call(kn);if(e===void 0||e.type!=="WS")return e}})(qet);const Het={Lexer:kn,ParserRules:[{name:"numberFilter",symbols:["numberFilter","conjunction","numberUnary"],postprocess:([t,e,r])=>(0,_2.joinNumbers)(t,e[0].text,r)},{name:"numberFilter",symbols:["numberUnary"],postprocess:t=>t[0]},{name:"numberUnary$ebnf$1",symbols:[kn.has("NOT")?{type:"NOT"}:NOT],postprocess:jet},{name:"numberUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"numberUnary",symbols:["numberUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,_2.numNot)(e,t)},{name:"clause",symbols:[kn.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause$ebnf$1",symbols:[]},{name:"clause$ebnf$1",symbols:["clause$ebnf$1","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:["N","clause$ebnf$1"],postprocess:([t,e])=>({operator:"=",...(0,_2.mkValues)(t,e)})},{name:"clause$ebnf$2",symbols:[]},{name:"clause$ebnf$2",symbols:["clause$ebnf$2","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[kn.has("eq")?{type:"eq"}:eq,"N","clause$ebnf$2"],postprocess:([t,e,r])=>({operator:"=",...(0,_2.mkValues)(e,r)})},{name:"clause$ebnf$3",symbols:[]},{name:"clause$ebnf$3",symbols:["clause$ebnf$3","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[kn.has("ne")?{type:"ne"}:ne,"N","clause$ebnf$3"],postprocess:([t,e,r])=>({operator:"!=",...(0,_2.mkValues)(e,r)})},{name:"clause",symbols:[kn.has("op")?{type:"op"}:op,"N"],postprocess:([t,e])=>({operator:t.text,values:[e]})},{name:"clause",symbols:[kn.has("oparen")?{type:"oparen"}:oparen,"numberFilter",kn.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:["openInterval","N",kn.has("TO")?{type:"TO"}:TO,"N","closeInterval"],postprocess:([t,e,r,i,s])=>(0,_2.mkRange)(t[0].text,e,i,s[0].text)},{name:"numberList",symbols:[kn.has("comma")?{type:"comma"}:comma,"N"],postprocess:([t,e])=>e},{name:"closeInterval",symbols:[kn.has("cbrack")?{type:"cbrack"}:cbrack]},{name:"closeInterval",symbols:[kn.has("cparen")?{type:"cparen"}:cparen]},{name:"openInterval",symbols:[kn.has("obrack")?{type:"obrack"}:obrack]},{name:"openInterval",symbols:[kn.has("oparen")?{type:"oparen"}:oparen]},{name:"N$subexpression$1",symbols:[kn.has("float")?{type:"float"}:float]},{name:"N$subexpression$1",symbols:[kn.has("numberE")?{type:"numberE"}:numberE]},{name:"N$subexpression$1",symbols:[kn.has("integer")?{type:"integer"}:integer]},{name:"N",symbols:["N$subexpression$1"],postprocess:([t])=>t[0].text},{name:"conjunction",symbols:[kn.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[kn.has("AND")?{type:"AND"}:AND]}],ParserStart:"numberFilter"};gB.default=Het;var v2={};Object.defineProperty(v2,"__esModule",{value:!0}),v2.run_parser=void 0;const zet=On;function Qet(t,e){try{e.feed(t);const i=e.finish()[0];return i&&(0,zet.isFilterExpression)(i)?{parsed:i,log:[]}:{parsed:null,log:[]}}catch(r){let i=r.message,s=1,o=t.length;if(r.token){const u=r.token;s=u.col,o=u.text.length;const l=r.message.match(new RegExp("(?<=A ).*(?= based on:)","g")).map(c=>c.replace(/\s+token/i,""));i=`Unexpected ${u.type} token "${u.value}"`,l&&l.length&&(i+=` Tokens expected: ${[...new Set(l)]}`)}return{parsed:null,log:[{message:i,startIndex:s-1,endIndex:s-1+o-1,severity:"error"}]}}}v2.run_parser=Qet,function(t){var e=T&&T.__createBinding||(Object.create?function(c,f,x,h){h===void 0&&(h=x);var p=Object.getOwnPropertyDescriptor(f,x);(!p||("get"in p?!f.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return f[x]}}),Object.defineProperty(c,h,p)}:function(c,f,x,h){h===void 0&&(h=x),c[h]=f[x]}),r=T&&T.__setModuleDefault||(Object.create?function(c,f){Object.defineProperty(c,"default",{enumerable:!0,value:f})}:function(c,f){c.default=f}),i=T&&T.__importStar||function(c){if(c&&c.__esModule)return c;var f={};if(c!=null)for(var x in c)x!=="default"&&Object.prototype.hasOwnProperty.call(c,x)&&e(f,c,x);return r(f,c),f},s=T&&T.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberFilterExpression=void 0;const o=On,u=i(mB),a=s(gB),l=v2;t.NumberFilterExpression={parse(c){if(c.match(/^\s*$/))return{parsed:null,log:[]};const f=new u.Parser(u.Grammar.fromCompiled(a.default)),x=(0,l.run_parser)(c,f);return x.parsed&&(0,o.isNumberFilter)(x.parsed)?{parsed:x.parsed,log:[]}:{parsed:null,log:x.log}},unparse(c){if(c===null)return"";switch(c.operator){case"=":return c.values.join(", ");case"!=":return"!= "+c.values.join(", ");case">":case"<":case"<=":case">=":return c.not?c.values.map(f=>c.operator==="="?`not ${f}`:`not ${c.operator} ${f}`).join(", "):c.values.map(f=>`${c.operator} ${f}`).join(", ");case"range":{const f=c.startOperator===">"?"(":"[",x=c.endOperator==="<"?")":"]",h=`${f}${c.startValue} to ${c.endValue}${x}`;return c.not?`not ${h}`:h}case"null":return c.not?"not null":"null";case"and":case"or":return c.members.map(f=>t.NumberFilterExpression.unparse(f)).join(` ${c.operator} `);case"()":{const f="("+t.NumberFilterExpression.unparse(c.expr)+")";return c.not?"not "+f:f}}return`no unparse for ${JSON.stringify(c)}`}}}(dle);var gle={},AB={},Wet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(AB,"__esModule",{value:!0});function Get(t){return t[0]}const Vet=Wet(yB),_B=zt,Cu=Vet.default.compile({WS:/[ \t]+/,comma:",",semi:";",or:"|",open:"(",close:")",minus:"-",matchStr:/(?:\\[^\n]|[^\n,;()|])+/}),Yet=Cu.next;Cu.next=(t=>()=>{for(;;){const e=t.call(Cu);if(e==null||e.type!=="WS")return e}})(Yet);const Ket={Lexer:Cu,ParserRules:[{name:"stringFilter",symbols:["stringFilter","conjunction","sfUnary"],postprocess:([t,e,r])=>(0,_B.conjoin)(t,e[0].text,r)},{name:"stringFilter",symbols:["sfUnary"],postprocess:t=>t[0]},{name:"sfUnary$ebnf$1",symbols:[Cu.has("minus")?{type:"minus"}:minus],postprocess:Get},{name:"sfUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"sfUnary",symbols:["sfUnary$ebnf$1","clause"],postprocess:t=>(0,_B.maybeNot)(t)},{name:"parens",symbols:[Cu.has("open")?{type:"open"}:open,"stringFilter",Cu.has("close")?{type:"close"}:close],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:[Cu.has("matchStr")?{type:"matchStr"}:matchStr],postprocess:([t])=>(0,_B.matchOp)(t.text)},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"conjunction",symbols:[Cu.has("comma")?{type:"comma"}:comma]},{name:"conjunction",symbols:[Cu.has("semi")?{type:"semi"}:semi]},{name:"conjunction",symbols:[Cu.has("or")?{type:"or"}:or]}],ParserStart:"stringFilter"};AB.default=Ket,function(t){var e=T&&T.__createBinding||(Object.create?function(f,x,h,p){p===void 0&&(p=h);var m=Object.getOwnPropertyDescriptor(x,h);(!m||("get"in m?!x.__esModule:m.writable||m.configurable))&&(m={enumerable:!0,get:function(){return x[h]}}),Object.defineProperty(f,p,m)}:function(f,x,h,p){p===void 0&&(p=h),f[p]=x[h]}),r=T&&T.__setModuleDefault||(Object.create?function(f,x){Object.defineProperty(f,"default",{enumerable:!0,value:x})}:function(f,x){f.default=x}),i=T&&T.__importStar||function(f){if(f&&f.__esModule)return f;var x={};if(f!=null)for(var h in f)h!=="default"&&Object.prototype.hasOwnProperty.call(f,h)&&e(x,f,h);return r(x,f),x},s=T&&T.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringFilterExpression=void 0;const o=On,u=i(mB),a=s(AB),l=zt,c=v2;t.StringFilterExpression={parse(f){if(f.match(/^\s*$/))return{parsed:null,log:[]};const x=new u.Parser(u.Grammar.fromCompiled(a.default)),h=(0,c.run_parser)(f,x);return h.parsed&&(0,o.isStringFilter)(h.parsed)?{parsed:h.parsed,log:[]}:{parsed:null,log:h.log}},unparse(f){if(f===null)return"";switch(f.operator){case"=":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)).join(", "):f.values.map(x=>(0,l.escape)(x)).join(", ");case"~":return f.not?f.escaped_values.map(x=>"-"+x).join(", "):f.escaped_values.join(", ");case"starts":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>(0,l.escape)(x)+"%").join(", ");case"ends":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)).join(", "):f.values.map(x=>"%"+(0,l.escape)(x)).join(", ");case"contains":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>"%"+(0,l.escape)(x)+"%").join(", ");case"or":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(" | ");case"and":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join("; ");case",":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(", ");case"()":{const x="("+t.StringFilterExpression.unparse(f.expr)+")";return f.not?"-"+x:x}case"null":return f.not?"-null":"null";case"empty":return f.not?"-empty":"empty"}}}}(gle);var yle={},vB={},Jet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vB,"__esModule",{value:!0});function Xet(t){return t[0]}const Ele=Jet(yB),Su=zt,Xe=Ele.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:Ele.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to",NOW:"now",LAST:"last",THIS:"this",NEXT:"next",AGO:"ago",FROM:"from",BEFORE:"before",AFTER:"after",FOR:"for",TODAY:"today",YESTERDAY:"yesterday",TOMORROW:"tomorrow",SECOND:"second",MINUTE:"minute",HOUR:"hour",DAY:"day",WEEK:"week",MONTH:"month",QUARTER:"quarter",YEAR:"year",SECONDS:"seconds",MINUTES:"minutes",HOURS:"hours",DAYS:"days",WEEKS:"weeks",MONTHS:"months",QUARTERS:"quarters",YEARS:"years",MONDAY:"monday",TUESDAY:"tuesday",WEDNESDAY:"wednesday",THURSDAY:"thursday",FRIDAY:"friday",SATURDAY:"saturday",SUNDAY:"sunday"})},oparen:"(",cparen:")",comma:",",literal:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*)?)/,lit_week:/\d\d\d\d-\d\d-\d\d-[Ww][Kk]/,lit_quarter:/\d\d\d\d-[qQ][1234]/,lit_min:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d/,lit_hour:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d/,lit_day:/\d\d\d\d-\d\d-\d\d/,lit_month:/\d\d\d\d-\d\d/,lit_year:/\d\d\d\d/,n:/\d+/}),Zet=Xe.next;Xe.next=(t=>()=>{for(;;){const e=t.call(Xe);if(e===void 0||e.type!=="WS")return e}})(Zet);const ett={Lexer:Xe,ParserRules:[{name:"temporalFilter",symbols:["temporalFilter","conjunction","temporalUnary"],postprocess:([t,e,r])=>(0,Su.joinTemporal)(t,e[0].text,r)},{name:"temporalFilter",symbols:["temporalUnary"],postprocess:t=>t[0]},{name:"temporalUnary$ebnf$1",symbols:[Xe.has("NOT")?{type:"NOT"}:NOT],postprocess:Xet},{name:"temporalUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"temporalUnary",symbols:["temporalUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,Su.temporalNot)(e,t)},{name:"duration",symbols:["number","unit"],postprocess:([t,e])=>({units:e,n:t})},{name:"number",symbols:[Xe.has("n")?{type:"n"}:n],postprocess:([t])=>t.text},{name:"number",symbols:[Xe.has("lityear")?{type:"lityear"}:lityear],postprocess:([t])=>t.text},{name:"unit$subexpression$1",symbols:[Xe.has("SECOND")?{type:"SECOND"}:SECOND]},{name:"unit$subexpression$1",symbols:[Xe.has("MINUTE")?{type:"MINUTE"}:MINUTE]},{name:"unit$subexpression$1",symbols:[Xe.has("HOUR")?{type:"HOUR"}:HOUR]},{name:"unit$subexpression$1",symbols:[Xe.has("DAY")?{type:"DAY"}:DAY]},{name:"unit$subexpression$1",symbols:[Xe.has("WEEK")?{type:"WEEK"}:WEEK]},{name:"unit$subexpression$1",symbols:[Xe.has("MONTH")?{type:"MONTH"}:MONTH]},{name:"unit$subexpression$1",symbols:[Xe.has("QUARTER")?{type:"QUARTER"}:QUARTER]},{name:"unit$subexpression$1",symbols:[Xe.has("YEAR")?{type:"YEAR"}:YEAR]},{name:"unit$subexpression$1",symbols:[Xe.has("SECONDS")?{type:"SECONDS"}:SECONDS]},{name:"unit$subexpression$1",symbols:[Xe.has("MINUTES")?{type:"MINUTES"}:MINUTES]},{name:"unit$subexpression$1",symbols:[Xe.has("HOURS")?{type:"HOURS"}:HOURS]},{name:"unit$subexpression$1",symbols:[Xe.has("DAYS")?{type:"DAYS"}:DAYS]},{name:"unit$subexpression$1",symbols:[Xe.has("WEEKS")?{type:"WEEKS"}:WEEKS]},{name:"unit$subexpression$1",symbols:[Xe.has("MONTHS")?{type:"MONTHS"}:MONTHS]},{name:"unit$subexpression$1",symbols:[Xe.has("QUARTERS")?{type:"QUARTERS"}:QUARTERS]},{name:"unit$subexpression$1",symbols:[Xe.has("YEARS")?{type:"YEARS"}:YEARS]},{name:"unit",symbols:["unit$subexpression$1"],postprocess:([t])=>(0,Su.mkUnits)(t[0].text)},{name:"clause",symbols:[Xe.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"clause",symbols:["duration"],postprocess:([t])=>({operator:"in_last",...t})},{name:"clause",symbols:[Xe.has("BEFORE")?{type:"BEFORE"}:BEFORE,"moment"],postprocess:([t,e])=>({operator:"before",before:e})},{name:"clause",symbols:[Xe.has("AFTER")?{type:"AFTER"}:AFTER,"moment"],postprocess:([t,e])=>({operator:"after",after:e})},{name:"clause",symbols:["moment",Xe.has("TO")?{type:"TO"}:TO,"moment"],postprocess:([t,e,r])=>({operator:"to",fromMoment:t,toMoment:r})},{name:"clause",symbols:["moment",Xe.has("FOR")?{type:"FOR"}:FOR,"duration"],postprocess:([t,e,r])=>({...r,operator:"for",begin:t})},{name:"clause$subexpression$1",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST]},{name:"clause$subexpression$1",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT]},{name:"clause",symbols:["clause$subexpression$1","duration"],postprocess:([t,e])=>({operator:t[0].text,...e})},{name:"clause",symbols:["moment"],postprocess:([t])=>({operator:"in",in:t})},{name:"lastNextThis",symbols:[Xe.has("THIS")?{type:"THIS"}:THIS],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST],postprocess:([t])=>t.text.toLowerCase()},{name:"moment",symbols:[Xe.has("NOW")?{type:"NOW"}:NOW],postprocess:()=>({moment:"now"})},{name:"moment",symbols:["lastNextThis","unit"],postprocess:([t,e])=>({moment:t,units:e})},{name:"moment",symbols:[Xe.has("TODAY")?{type:"TODAY"}:TODAY],postprocess:()=>({moment:"today"})},{name:"moment",symbols:[Xe.has("YESTERDAY")?{type:"YESTERDAY"}:YESTERDAY],postprocess:()=>({moment:"yesterday"})},{name:"moment",symbols:[Xe.has("TOMORROW")?{type:"TOMORROW"}:TOMORROW],postprocess:()=>({moment:"tomorrow"})},{name:"moment",symbols:["duration",Xe.has("AGO")?{type:"AGO"}:AGO],postprocess:([t,e])=>({moment:"ago",...t})},{name:"moment",symbols:["duration",Xe.has("FROM")?{type:"FROM"}:FROM,Xe.has("NOW")?{type:"NOW"}:NOW],postprocess:([t,e])=>({moment:"from_now",...t})},{name:"moment",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"next"})},{name:"moment",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"last"})},{name:"moment",symbols:["weekday"],postprocess:([t])=>({moment:t.toLowerCase(),which:"last"})},{name:"moment",symbols:["timeLiteral"],postprocess:t=>t[0]},{name:"timeLiteral",symbols:[Xe.has("literal")?{type:"literal"}:literal],postprocess:([t])=>(0,Su.timeLiteral)(t.text)},{name:"timeLiteral",symbols:[Xe.has("lit_day")?{type:"lit_day"}:lit_day],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"day")},{name:"timeLiteral",symbols:[Xe.has("lit_min")?{type:"lit_min"}:lit_min],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"minute")},{name:"timeLiteral",symbols:[Xe.has("lit_hour")?{type:"lit_hour"}:lit_hour],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"hour")},{name:"timeLiteral",symbols:[Xe.has("lit_month")?{type:"lit_month"}:lit_month],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"month")},{name:"timeLiteral",symbols:[Xe.has("lit_quarter")?{type:"lit_quarter"}:lit_quarter],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"quarter")},{name:"timeLiteral",symbols:[Xe.has("lit_week")?{type:"lit_week"}:lit_week],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"week")},{name:"timeLiteral",symbols:[Xe.has("lit_year")?{type:"lit_year"}:lit_year],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"year")},{name:"weekday$subexpression$1",symbols:[Xe.has("MONDAY")?{type:"MONDAY"}:MONDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("TUESDAY")?{type:"TUESDAY"}:TUESDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("WEDNESDAY")?{type:"WEDNESDAY"}:WEDNESDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("THURSDAY")?{type:"THURSDAY"}:THURSDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("FRIDAY")?{type:"FRIDAY"}:FRIDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("SATURDAY")?{type:"SATURDAY"}:SATURDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("SUNDAY")?{type:"SUNDAY"}:SUNDAY]},{name:"weekday",symbols:["weekday$subexpression$1"],postprocess:([t])=>t[0].text},{name:"parens",symbols:[Xe.has("oparen")?{type:"oparen"}:oparen,"temporalFilter",Xe.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"conjunction",symbols:[Xe.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[Xe.has("AND")?{type:"AND"}:AND]}],ParserStart:"temporalFilter"};vB.default=ett,function(t){var e=T&&T.__createBinding||(Object.create?function(h,p,m,y){y===void 0&&(y=m);var g=Object.getOwnPropertyDescriptor(p,m);(!g||("get"in g?!p.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return p[m]}}),Object.defineProperty(h,y,g)}:function(h,p,m,y){y===void 0&&(y=m),h[y]=p[m]}),r=T&&T.__setModuleDefault||(Object.create?function(h,p){Object.defineProperty(h,"default",{enumerable:!0,value:p})}:function(h,p){h.default=p}),i=T&&T.__importStar||function(h){if(h&&h.__esModule)return h;var p={};if(h!=null)for(var m in h)m!=="default"&&Object.prototype.hasOwnProperty.call(h,m)&&e(p,h,m);return r(p,h),p},s=T&&T.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=void 0;const o=On,u=s(vB),a=i(mB),l=v2;t.TemporalFilterExpression={parse(h){if(h.match(/^\s*$/))return{parsed:null,log:[]};const p=new a.Parser(a.Grammar.fromCompiled(u.default)),m=(0,l.run_parser)(h,p);return m.parsed&&(0,o.isTemporalFilter)(m.parsed)?{parsed:m.parsed,log:[]}:{parsed:null,log:m.log}},unparse(h){if(h===null)return"";switch(h.operator){case"null":return c(h,"null");case"in":return c(h,x(h.in));case"()":return"("+t.TemporalFilterExpression.unparse(h.expr)+")";case"in_last":return c(h,f(h));case"last":case"next":return c(h,`${h.operator} ${f(h)}`);case"before":return c(h,`before ${x(h.before)}`);case"after":return c(h,`after ${x(h.after)}`);case"to":return c(h,`${x(h.fromMoment)} to ${x(h.toMoment)}`);case"for":return c(h,`${x(h.begin)} for ${f(h)}`);case"or":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" or ");case"and":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" and ")}}};function c(h,p){return"not"in h&&h.not?"not "+p:p}function f(h){return h.n==="1"?`1 ${h.units}`:`${h.n} ${h.units}s`}function x(h){switch(h.moment){case"literal":return h.literal;case"now":case"today":case"yesterday":case"tomorrow":return h.moment;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":return h.which==="next"?"next "+h.moment:h.moment;case"this":case"next":case"last":return`${h.moment} ${h.units}`;case"ago":return`${f(h)} ago`;case"from_now":return`${f(h)} from now`}}}(yle),function(t){var e=T&&T.__createBinding||(Object.create?function(a,l,c,f){f===void 0&&(f=c);var x=Object.getOwnPropertyDescriptor(l,c);(!x||("get"in x?!l.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return l[c]}}),Object.defineProperty(a,f,x)}:function(a,l,c,f){f===void 0&&(f=c),a[f]=l[c]}),r=T&&T.__exportStar||function(a,l){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(l,c)&&e(l,a,c)};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=t.StringFilterExpression=t.NumberFilterExpression=t.BooleanFilterExpression=void 0,r(On,t);var i=L4;Object.defineProperty(t,"BooleanFilterExpression",{enumerable:!0,get:function(){return i.BooleanFilterExpression}});var s=dle;Object.defineProperty(t,"NumberFilterExpression",{enumerable:!0,get:function(){return s.NumberFilterExpression}});var o=gle;Object.defineProperty(t,"StringFilterExpression",{enumerable:!0,get:function(){return o.StringFilterExpression}});var u=yle;Object.defineProperty(t,"TemporalFilterExpression",{enumerable:!0,get:function(){return u.TemporalFilterExpression}})}(N4);var $4={};Object.defineProperty($4,"__esModule",{value:!0}),$4.TemporalFilterCompiler=void 0;const CB=et,Sd=qr,Ale="yyyy",_le=`${Ale}-LL`,SB=`${_le}-dd`,vle=`${SB} HH`,Cle=`${vle}:mm`,ys=`${Cle}:ss`;class ttt{constructor(e,r,i="timestamp"){this.expr=e,this.timetype=i,this.d=r}time(e){return this.timetype==="timestamp"?e:this.d.sqlCast({},{node:"cast",e:{node:"genericSQLExpr",src:["",e],kids:{args:[]},sql:e},srcType:{type:"timestamp"},dstType:{type:"date"},safe:!1})}compile(e){const r=this.expr;switch(e.operator){case"after":return`${r} ${e.not?"<":">="} ${this.time(this.moment(e.after).end)}`;case"before":return`${r} ${e.not?">=":"<"} ${this.time(this.moment(e.before).begin.sql)}`;case"in":{const i=this.moment(e.in);return i.begin.sql===i.end?e.not?`${r} != ${this.time(i.end)} OR ${r} IS NULL`:`${r} = ${this.time(i.end)}`:this.isIn(e.not,i.begin.sql,i.end)}case"for":{const i=this.moment(e.begin),s=this.delta(i.begin,"+",e.n,e.units);return this.isIn(e.not,i.begin.sql,s.sql)}case"in_last":{const i=Number(e.n)-1,s=this.nowDot(e.units),o=i>0?this.delta(s,"-",i.toString(),e.units):s,u=this.delta(s,"+","1",e.units);return this.isIn(e.not,o.sql,u.sql)}case"to":{const i=this.moment(e.fromMoment),s=this.moment(e.toMoment);return this.isIn(e.not,i.begin.sql,s.begin.sql)}case"last":{const i=this.nowDot(e.units),s=this.delta(i,"-",e.n,e.units);return this.isIn(e.not,s.sql,i.sql)}case"next":{const i=this.nowDot(e.units),s=this.delta(i,"+","1",e.units),o=this.delta(i,"+",(Number(e.n)+1).toString(),e.units);return this.isIn(e.not,s.sql,o.sql)}case"null":return e.not?`${r} IS NOT NULL`:`${r} IS NULL`;case"()":{const i="("+this.compile(e.expr)+")";return e.not?`NOT ${i}`:i}case"and":case"or":return e.members.map(i=>this.compile(i)).join(` ${e.operator.toUpperCase()} `)}}expandLiteral(e){let r=e.literal;switch(e.units){case"year":{const i=Sd.DateTime.fromFormat(r,Ale),s=this.literalNode(i.toFormat(ys)),o=i.plus({year:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"month":{const i=Sd.DateTime.fromFormat(r,_le),s=this.literalNode(i.toFormat(ys)),o=i.plus({month:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"day":{const i=Sd.DateTime.fromFormat(r,SB),s=this.literalNode(i.toFormat(ys)),o=i.plus({day:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"hour":{const i=Sd.DateTime.fromFormat(r,vle),s=this.literalNode(i.toFormat(ys)),o=i.plus({hour:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"minute":{const i=Sd.DateTime.fromFormat(r,Cle),s=this.literalNode(i.toFormat(ys)),o=i.plus({minute:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"week":{const o=Sd.DateTime.fromFormat(r.slice(0,10),SB).plus({day:1}).startOf("week").minus({day:1}),u=this.literalNode(o.toFormat(ys)),a=o.plus({days:7});return{begin:u,end:this.literalNode(a.toFormat(ys)).sql}}case"quarter":{const i=r.slice(0,4),s=r.slice(6);s==="1"?r=`${i}-01-01 00:00:00`:s==="2"?r=`${i}-03-01 00:00:00`:s==="3"?r=`${i}-06-01 00:00:00`:r=`${i}-09-01 00:00:00`;const o=this.literalNode(r),a=Sd.DateTime.fromFormat(r,ys).plus({months:3});return{begin:o,end:this.literalNode(a.toFormat(ys)).sql}}case void 0:case"second":{const i=this.literalNode(r);return{begin:i,end:i.sql}}}}literalNode(e){const r={node:"timeLiteral",typeDef:{type:"timestamp"},literal:e};return{...r,sql:this.d.sqlLiteralTime({},r)}}nowExpr(){return{node:"now",typeDef:{type:"timestamp"},sql:this.d.sqlNowExpr()}}n(e){return{node:"numberLiteral",literal:e,sql:e}}delta(e,r,i,s){const o={node:"delta",op:r,units:s,kids:{base:(0,CB.mkTemporal)(e,"timestamp"),delta:this.n(i)}};return{...o,sql:this.d.sqlAlterTimeExpr(o)}}dayofWeek(e){const r={node:"extract",e:(0,CB.mkTemporal)(e,"timestamp"),units:"day_of_week"};return{...r,sql:this.d.sqlTimeExtractExpr({},r)}}nowDot(e){const r={node:"trunc",e:this.nowExpr(),units:e};return{...r,sql:this.d.sqlTruncExpr({},r)}}thisUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e);return{begin:r,end:i.sql}}lastUnit(e){const r=this.nowDot(e);return{begin:this.delta(r,"-","1",e),end:r.sql}}nextUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e),s=this.delta(r,"+","2",e);return{begin:i,end:s.sql}}mod7(e){return this.d.hasModOperator?`(${e})%7`:`MOD(${e},7)`}moment(e){switch(e.moment){case"now":{const r=this.nowExpr();return{begin:r,end:r.sql}}case"literal":return this.expandLiteral(e);case"ago":case"from_now":{const r=this.nowDot(e.units),i=(0,CB.mkTemporal)(r,"timestamp"),s=this.delta(i,e.moment==="ago"?"-":"+",e.n,e.units);if(e.moment==="ago"&&e.n==="1")return{begin:s,end:r.sql};const o=Number(e.n)+(e.moment==="ago"?-1:1),u={...s,kids:{base:i,delta:this.n(o.toString())}};return{begin:s,end:this.d.sqlAlterTimeExpr(u)}}case"today":return this.thisUnit("day");case"yesterday":return this.lastUnit("day");case"tomorrow":return this.nextUnit("day");case"this":return this.thisUnit(e.units);case"last":return this.lastUnit(e.units);case"next":return this.nextUnit(e.units);case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":{const r=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].indexOf(e.moment),i=this.dayofWeek(this.nowExpr()).sql;if(e.which==="next"){const a=`${this.mod7(`${r}-(${i}-1)+6`)}+1`,l=this.delta(this.thisUnit("day").begin,"+",a,"day"),c=this.delta(this.thisUnit("day").begin,"+",`${a}+1`,"day");return{begin:l,end:c.sql}}const s=`${this.mod7(`(${i}-1)-${r}+6`)}+1`,o=this.delta(this.thisUnit("day").begin,"-",s,"day"),u=this.delta(this.thisUnit("day").begin,"-",`(${s})-1`,"day");return{begin:o,end:u.sql}}}}isIn(e,r,i){let s=">=",o="<",u="AND";return e&&(u="OR",s="<",o=">="),r=this.time(r),i=this.time(i),`${this.expr} ${s} ${r} ${u} ${this.expr} ${o} ${i}`}}$4.TemporalFilterCompiler=ttt,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FilterCompilers=void 0;const e=N4,r=$4;function i(u){return u.replace(/([%_\\])/g,"\\$1")}function s(u){return u===">"?"<=":u==="<"?">=":u===">="?"<":">"}function o(u,a){const l=` OR ${a} IS NULL`;return u.length===1?`${u[0]}${l}`:`(${u.join(" AND ")})${l}`}t.FilterCompilers={compile(u,a,l,c){if(a===null)return"true";if(u==="string"&&(0,e.isStringFilter)(a))return t.FilterCompilers.stringCompile(a,l,c);if(u==="number"&&(0,e.isNumberFilter)(a))return t.FilterCompilers.numberCompile(a,l,c);if(u==="boolean"&&(0,e.isBooleanFilter)(a))return t.FilterCompilers.booleanCompile(a,l,c);if((u==="date"||u==="timestamp")&&(0,e.isTemporalFilter)(a))return t.FilterCompilers.temporalCompile(a,l,c,u);throw new Error("INTERNAL ERROR: No filter compiler for "+u)},numberCompile(u,a,l){switch(u.operator){case"!=":case"=":{const c=u.operator==="="&&u.not||u.operator==="!="&&!u.not,f=u.values.join(", ");return u.values.length===1?c?`${a} != ${f} OR ${a} IS NULL`:`${a} = ${f}`:c?`${a} NOT IN (${f}) OR ${a} IS NULL`:`${a} IN (${f})`}case">":case"<":case">=":case"<=":return u.values.map(c=>`${a} ${u.operator} ${c}`).join(u.not?" AND ":" OR ");case"range":{let c=u.startOperator,f=u.endOperator,x=" AND ";return u.not&&(c=s(c),f=s(f),x=" OR "),`${a} ${c} ${u.startValue} ${x} ${a} ${f} ${u.endValue}`}case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"()":{const c="("+t.FilterCompilers.numberCompile(u.expr,a,l)+")";return u.not?`NOT ${c}`:c}case"and":case"or":return u.members.map(c=>t.FilterCompilers.numberCompile(c,a,l)).join(` ${u.operator.toUpperCase()} `)}},booleanCompile(u,a,l){switch(u.operator){case"false":return`${a} = false`;case"false_or_null":return`${a} IS NULL OR ${a} = false`;case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"true":return a}},stringCompile(u,a,l){switch(u.operator){case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"empty":return u.not?`COALESCE(${a},'') != ''`:`COALESCE(${a},'') = ''`;case"=":{if(u.values.length===1){const f=u.not?"!=":"=",x=`${a} ${f} ${l.sqlLiteralString(u.values[0])}`;return u.not?`(${x} OR ${a} IS NULL)`:x}const c="("+u.values.map(f=>l.sqlLiteralString(f)).join(", ")+")";return u.not?`(${a} NOT IN ${c} OR ${a} IS NULL)`:`${a} IN ${c}`}case"()":{const c="("+t.FilterCompilers.stringCompile(u.expr,a,l)+")";return u.not?`not ${c}`:c}case"contains":{const c=u.values.map(f=>"%"+i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"starts":{const c=u.values.map(f=>i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"ends":{const c=u.values.map(f=>"%"+i(f));return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"~":return u.not?o(u.escaped_values.map(c=>l.sqlLike("NOT LIKE",a,c)),a):u.escaped_values.map(c=>l.sqlLike("LIKE",a,c)).join(" OR ");case"and":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case"or":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case",":{const c=[],f=[];let x=!1,h=!1,p=!1,m=!1;for(const E of u.members)switch(E.operator){case"or":case"and":case",":c.push(E);break;case"null":E.not?h=!0:x=!0;break;case"empty":E.not?(m=!0,h=!0):(p=!0,x=!0);break;default:(E.not?f:c).push(E)}if(p&&m||x&&h)return"false";let y="";if(c.length>0||x||p){m=!1,h=!1;const E=c.map(A=>t.FilterCompilers.stringCompile(A,a,l));p&&E.push(`${a} = ''`),x&&E.push(`${a} IS NULL`),y=E.join(" OR ")}let g="";if(f.length>0||m||h){const E=f.map(A=>t.FilterCompilers.stringCompile(A,a,l));m&&E.push(`${a} != ''`),h&&E.push(`${a} IS NOT NULL`),g=E.join(" AND ")}return y?g!==""?`(${y}) AND (${g})`:y:g!==""?g:"true"}}},temporalCompile(u,a,l,c){return new r.TemporalFilterCompiler(a,l,c).compile(u)}}}(xle),Object.defineProperty(Hs,"__esModule",{value:!0}),Hs.QueryModel=Hs.getResultStructDefForQuery=Hs.getResultStructDefForView=Hs.Segment=void 0;const ntt=g2,rtt=p2,itt=eE,Ue=et,wn=kt,B4=A2,stt=gi,ott=xle,utt=N4;function Sle(t){return t.map(e=>encodeURIComponent(e)).join("/")}function bB(t){return`'${t}'`}function att(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function C2(t){const e=[];for(const r of t.fields.filter(Ue.fieldIsIntrinsic))e.push({type:r.type,sqlExpression:(0,Ue.getIdentifier)(r),rawName:(0,Ue.getIdentifier)(r),sqlOutputName:(0,Ue.getIdentifier)(r)});return e}class ltt extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class iE{constructor(e=!0,r){this.parent=r,this.withs=[],this.udfs=[],this.pdts=[],this.dependenciesToMaterialize={},this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,wn.indent)(`
1441
1441
  (${e})
1442
1442
  `))}addUDF(e,r,i){var s;let{sql:o,lastStageName:u}=e.combineStages(!0);if(u===void 0)throw new Error("Internal Error: no stage to combine");o+=r.sqlCreateFunctionCombineLastStage(u,C2(i),(s=i.resultMetadata)===null||s===void 0?void 0:s.orderBy);const a=`${r.udfPrefix}${this.root().udfs.length}`;return o=r.sqlCreateFunction(a,o),this.root().udfs.push(o),a}addMaterializedQuery(e,r,i){var s;const o=r.name;if(!o)throw new Error(`Source ${e} on a unnamed query that is tagged as materialize, only named queries can be materialized.`);const u=(s=r.location)===null||s===void 0?void 0:s.url;if(!u)throw new Error(`Trying to materialize query ${o}, but its path is not set.`);const a=(0,B4.buildQueryMaterializationSpec)(u,o,i);return this.root().dependenciesToMaterialize[a.id]=a,a.id}addPDT(e,r){const i=this.combineStages(!1).sql+this.withs[this.withs.length-1],o=`scratch.${e+(0,wn.generateHash)(i)}`;return this.root().pdts.push(r.sqlCreateTableAsSelect(o,i)),o}combineStages(e){if(!this.useCTE)return{sql:this.withs[0],lastStageName:this.withs[0]};let r=this.getName(0),i="WITH ",s="";for(let o=0;o<this.withs.length-(e?0:1);o++){const u=this.withs[o];if(r=this.getName(o),u===void 0)throw new Error(`Expected sql WITH to be present for stage ${r}.`);s+=`${i}${r} AS (
1443
1443
  ${(0,wn.indent)(u)})
@@ -125857,7 +125857,7 @@ const uV = Ttt(vk), ko = zt, Xe = uV.default.compile({
125857
125857
  oparen: "(",
125858
125858
  cparen: ")",
125859
125859
  comma: ",",
125860
- literal: /\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*))/,
125860
+ literal: /\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*)?)/,
125861
125861
  lit_week: /\d\d\d\d-\d\d-\d\d-[Ww][Kk]/,
125862
125862
  lit_quarter: /\d\d\d\d-[qQ][1234]/,
125863
125863
  lit_min: /\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d/,
@@ -126172,8 +126172,10 @@ class wtt {
126172
126172
  return { begin: o, end: this.literalNode(a.toFormat(Zi)).sql };
126173
126173
  }
126174
126174
  case void 0:
126175
- case "second":
126176
- return { begin: this.literalNode(r), end: r };
126175
+ case "second": {
126176
+ const i = this.literalNode(r);
126177
+ return { begin: i, end: i.sql };
126178
+ }
126177
126179
  }
126178
126180
  }
126179
126181
  literalNode(e) {
@@ -1437,7 +1437,7 @@ Use (?: … ) instead`);if(!ee.lineBreaks&&j.test(`
1437
1437
  `))throw new Error("Rule should declare lineBreaks: "+j);he.push(l(F))}}var Q=U&&U.fallback,L=i&&!Q?"ym":"gm",M=i||Q?"":"|";Z===!0&&(L+="u");var q=new RegExp(c(he)+M,L);return{regexp:q,groups:de,fast:V,error:U||E}}function _(D){var $=A(g(D));return new b({start:$},"start")}function v(D,$,U){var V=D&&(D.push||D.next);if(V&&!U[V])throw new Error("Missing state '"+V+"' (in token '"+D.defaultType+"' of state '"+$+"')");if(D&&D.pop&&+D.pop!=1)throw new Error("pop must be 1 (in token '"+D.defaultType+"' of state '"+$+"')")}function C(D,$){var U=D.$all?g(D.$all):[];delete D.$all;var V=Object.getOwnPropertyNames(D);$||($=V[0]);for(var z=Object.create(null),Z=0;Z<V.length;Z++){var de=V[Z];z[de]=g(D[de]).concat(U)}for(var Z=0;Z<V.length;Z++)for(var de=V[Z],he=z[de],ie=Object.create(null),ee=0;ee<he.length;ee++){var X=he[ee];if(X.include){var ce=[ee,1];if(X.include!==de&&!ie[X.include]){ie[X.include]=!0;var N=z[X.include];if(!N)throw new Error("Cannot include nonexistent state '"+X.include+"' (in state '"+de+"')");for(var w=0;w<N.length;w++){var F=N[w];he.indexOf(F)===-1&&ce.push(F)}}he.splice.apply(he,ce),ee--}}for(var j=Object.create(null),Z=0;Z<V.length;Z++){var de=V[Z];j[de]=A(z[de],!0)}for(var Z=0;Z<V.length;Z++){for(var Y=V[Z],Q=j[Y],L=Q.groups,ee=0;ee<L.length;ee++)v(L[ee],Y,j);for(var M=Object.getOwnPropertyNames(Q.fast),ee=0;ee<M.length;ee++)v(Q.fast[M[ee]],Y,j)}return new b(j,$)}function S(D){for(var $=typeof Map<"u",U=$?new Map:Object.create(null),V=Object.getOwnPropertyNames(D),z=0;z<V.length;z++){var Z=V[z],de=D[Z],he=Array.isArray(de)?de:[de];he.forEach(function(ie){if(typeof ie!="string")throw new Error("keyword must be string (in keyword '"+Z+"')");$?U.set(ie,Z):U[ie]=Z})}return function(ie){return $?U.get(ie):U[ie]}}var b=function(D,$){this.startState=$,this.states=D,this.buffer="",this.stack=[],this.reset()};b.prototype.reset=function(D,$){return this.buffer=D||"",this.index=0,this.line=$?$.line:1,this.col=$?$.col:1,this.queuedToken=$?$.queuedToken:null,this.queuedText=$?$.queuedText:"",this.queuedThrow=$?$.queuedThrow:null,this.setState($?$.state:this.startState),this.stack=$&&$.stack?$.stack.slice():[],this},b.prototype.save=function(){return{line:this.line,col:this.col,state:this.state,stack:this.stack.slice(),queuedToken:this.queuedToken,queuedText:this.queuedText,queuedThrow:this.queuedThrow}},b.prototype.setState=function(D){if(!(!D||this.state===D)){this.state=D;var $=this.states[D];this.groups=$.groups,this.error=$.error,this.re=$.regexp,this.fast=$.fast}},b.prototype.popState=function(){this.setState(this.stack.pop())},b.prototype.pushState=function(D){this.stack.push(this.state),this.setState(D)};var R=i?function(D,$){return D.exec($)}:function(D,$){var U=D.exec($);return U[0].length===0?null:U};b.prototype._getGroup=function(D){for(var $=this.groups.length,U=0;U<$;U++)if(D[U+1]!==void 0)return this.groups[U];throw new Error("Cannot find token type for matched text")};function O(){return this.value}if(b.prototype.next=function(){var D=this.index;if(this.queuedGroup){var $=this._token(this.queuedGroup,this.queuedText,D);return this.queuedGroup=null,this.queuedText="",$}var U=this.buffer;if(D!==U.length){var de=this.fast[U.charCodeAt(D)];if(de)return this._token(de,U.charAt(D),D);var V=this.re;V.lastIndex=D;var z=R(V,U),Z=this.error;if(z==null)return this._token(Z,U.slice(D,U.length),D);var de=this._getGroup(z),he=z[0];return Z.fallback&&z.index!==D?(this.queuedGroup=de,this.queuedText=he,this._token(Z,U.slice(D,z.index),D)):this._token(de,he,D)}},b.prototype._token=function(D,$,U){var V=0;if(D.lineBreaks){var z=/\n/g,Z=1;if($===`
1438
1438
  `)V=1;else for(;z.exec($);)V++,Z=z.lastIndex}var de={type:typeof D.type=="function"&&D.type($)||D.defaultType,value:typeof D.value=="function"?D.value($):$,text:$,toString:O,offset:U,lineBreaks:V,line:this.line,col:this.col},he=$.length;if(this.index+=he,this.line+=V,V!==0?this.col=he-Z+1:this.col+=he,D.shouldThrow){var ie=new Error(this.formatError(de,"invalid syntax"));throw ie}return D.pop?this.popState():D.push?this.pushState(D.push):D.next&&this.setState(D.next),de},typeof Symbol<"u"&&Symbol.iterator){var B=function(D){this.lexer=D};B.prototype.next=function(){var D=this.lexer.next();return{value:D,done:!D}},B.prototype[Symbol.iterator]=function(){return this},b.prototype[Symbol.iterator]=function(){return new B(this)}}return b.prototype.formatError=function(D,$){if(D==null)var U=this.buffer.slice(this.index),D={text:U,offset:this.index,lineBreaks:U.indexOf(`
1439
1439
  `)===-1?0:1,line:this.line,col:this.col};var V=2,z=Math.max(D.line-V,1),Z=D.line+V,de=String(Z).length,he=h(this.buffer,this.line-D.line+V+1).slice(0,5),ie=[];ie.push($+" at line "+D.line+" col "+D.col+":"),ie.push("");for(var ee=0;ee<he.length;ee++){var X=he[ee],ce=z+ee;ie.push(x(String(ce),de)+" "+X),ce===D.line&&ie.push(x("",de+D.col+1)+"^")}return ie.join(`
1440
- `)},b.prototype.clone=function(){return new b(this.states,this.state)},b.prototype.has=function(D){return!0},{compile:_,states:C,error:Object.freeze({error:!0}),fallback:Object.freeze({fallback:!0}),keywords:S}})})(hle);var gB=hle.exports,zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.mkUnits=zt.timeLiteral=zt.joinTemporal=zt.temporalNot=zt.numNot=zt.mkValues=zt.mkRange=zt.joinNumbers=zt.conjoin=zt.matchOp=zt.escape=zt.unescape=zt.maybeNot=void 0;const Pa=On;function Det(t){const[e,r]=t;return e&&r&&(0,Pa.isStringFilter)(r)?{...r,not:!0}:r}zt.maybeNot=Det;function tE(t){return t.replace(/\\(.)/g,"$1")}zt.unescape=tE;function Oet(t){const e=t.toLowerCase();return e==="null"||e==="empty"?"\\"+t:t.replace(/([,; |()\\%_-])/g,"\\$1")}zt.escape=Oet;function L4(t){let e=!1,r=!1,i=0,s=!1;const o=t.length;for(let u=0;u<o;u+=1){const a=t[u];if(a===" "||a===" "){i+=1;continue}i=0,a==="%"?(s=!0,u===0&&(e=!0),r=!0):(r=!1,a==="\\"?u+=1:a==="_"&&(s=!0))}return{hasLike:s,percentEnd:r&&o>1,percentStart:e&&o>1,endSpace:i}}function wet(t){let e=t.trimStart();const{hasLike:r,percentEnd:i,percentStart:s,endSpace:o}=L4(e);if(o>0&&(e=e.slice(0,-o)),r){if(s&&i){const u=e.slice(1,-1);if(!L4(u).hasLike&&u.length>0)return{operator:"contains",values:[tE(u)]}}else if(i){const u=e.slice(0,-1);if(!L4(u).hasLike)return{operator:"starts",values:[tE(u)]}}else if(s){const u=e.slice(1);if(!L4(u).hasLike)return{operator:"ends",values:[tE(u)]}}return{operator:"~",escaped_values:[e]}}return e.toLowerCase()==="null"||e==="NULL"?{operator:"null"}:e==="empty"||e==="EMPTY"?{operator:"empty"}:{operator:"=",values:[tE(e)]}}zt.matchOp=wet;function yB(t,e){var r,i;return t.operator===e.operator&&((r=t.not)!==null&&r!==void 0?r:!1)===((i=e.not)!==null&&i!==void 0?i:!1)}function Fet(t,e,r){if((0,Pa.isStringFilter)(t)&&(0,Pa.isStringFilter)(r)){if(e===","){if(t.operator==="~"&&yB(t,r))return{...t,escaped_values:[...t.escaped_values,...r.escaped_values]};if((0,Pa.isStringCondition)(t)&&yB(t,r))return{...t,values:[...t.values,...r.values]}}const i=e===","?",":e==="|"?"or":e===";"?"and":void 0;if(i)return t.operator===i?{...t,members:[...t.members,r]}:{operator:i,members:[t,r]}}return null}zt.conjoin=Fet;function Net(t,e,r){if((0,Pa.isNumberFilter)(t)&&(0,Pa.isNumberFilter)(r)){if(e==="or"&&t.operator==="="&&yB(t,r)){const i={operator:"=",values:[...t.values,...r.values]};return t.not&&(i.not=!0),i}if(e==="and"||e==="or")return t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}}return null}zt.joinNumbers=Net;function Let(t,e,r,i){return{operator:"range",startValue:e,startOperator:t==="("?">":">=",endValue:r,endOperator:i===")"?"<":"<="}}zt.mkRange=Let;function Iet(t,e){return{values:[t,...e]}}zt.mkValues=Iet;function $et(t,e){return(0,Pa.isNumberFilter)(t)&&e?t.operator==="="?{operator:"!=",values:t.values}:t.operator==="!="?{operator:"=",values:t.values}:{...t,not:!0}:t}zt.numNot=$et;function Bet(t,e){return(0,Pa.isTemporalFilter)(t)&&e?{...t,not:!0}:t}zt.temporalNot=Bet;function ket(t,e,r){return(0,Pa.isTemporalFilter)(t)&&(0,Pa.isTemporalFilter)(r)&&(e==="and"||e==="or")?t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}:null}zt.joinTemporal=ket;function Met(t,e){const r={moment:"literal",literal:t};return e&&(r.units=e),r}zt.timeLiteral=Met;function Pet(t){switch(t.toLowerCase()){case"second":case"seconds":return"second";case"minute":case"minutes":return"minute";case"hour":case"hours":return"hour";case"day":case"days":return"day";case"week":case"weeks":return"week";case"month":case"months":return"month";case"quarter":case"quarters":return"quarter";case"year":case"years":return"year"}}zt.mkUnits=Pet;var Uet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(mB,"__esModule",{value:!0});function jet(t){return t[0]}const ple=Uet(gB),_2=zt,kn=ple.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:ple.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to"})},oparen:"(",cparen:")",obrack:"[",cbrack:"]",comma:",",op:/<=|>=|<|>/,ne:"!=",eq:"=",float:/-?(?:\d+)?\.\d+(?:[Ee][+-]?\d+)?/,numberE:/-?\d+[Ee][+-]?\d+/,integer:/-?\d+/}),qet=kn.next;kn.next=(t=>()=>{for(;;){const e=t.call(kn);if(e===void 0||e.type!=="WS")return e}})(qet);const Het={Lexer:kn,ParserRules:[{name:"numberFilter",symbols:["numberFilter","conjunction","numberUnary"],postprocess:([t,e,r])=>(0,_2.joinNumbers)(t,e[0].text,r)},{name:"numberFilter",symbols:["numberUnary"],postprocess:t=>t[0]},{name:"numberUnary$ebnf$1",symbols:[kn.has("NOT")?{type:"NOT"}:NOT],postprocess:jet},{name:"numberUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"numberUnary",symbols:["numberUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,_2.numNot)(e,t)},{name:"clause",symbols:[kn.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause$ebnf$1",symbols:[]},{name:"clause$ebnf$1",symbols:["clause$ebnf$1","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:["N","clause$ebnf$1"],postprocess:([t,e])=>({operator:"=",...(0,_2.mkValues)(t,e)})},{name:"clause$ebnf$2",symbols:[]},{name:"clause$ebnf$2",symbols:["clause$ebnf$2","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[kn.has("eq")?{type:"eq"}:eq,"N","clause$ebnf$2"],postprocess:([t,e,r])=>({operator:"=",...(0,_2.mkValues)(e,r)})},{name:"clause$ebnf$3",symbols:[]},{name:"clause$ebnf$3",symbols:["clause$ebnf$3","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[kn.has("ne")?{type:"ne"}:ne,"N","clause$ebnf$3"],postprocess:([t,e,r])=>({operator:"!=",...(0,_2.mkValues)(e,r)})},{name:"clause",symbols:[kn.has("op")?{type:"op"}:op,"N"],postprocess:([t,e])=>({operator:t.text,values:[e]})},{name:"clause",symbols:[kn.has("oparen")?{type:"oparen"}:oparen,"numberFilter",kn.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:["openInterval","N",kn.has("TO")?{type:"TO"}:TO,"N","closeInterval"],postprocess:([t,e,r,i,s])=>(0,_2.mkRange)(t[0].text,e,i,s[0].text)},{name:"numberList",symbols:[kn.has("comma")?{type:"comma"}:comma,"N"],postprocess:([t,e])=>e},{name:"closeInterval",symbols:[kn.has("cbrack")?{type:"cbrack"}:cbrack]},{name:"closeInterval",symbols:[kn.has("cparen")?{type:"cparen"}:cparen]},{name:"openInterval",symbols:[kn.has("obrack")?{type:"obrack"}:obrack]},{name:"openInterval",symbols:[kn.has("oparen")?{type:"oparen"}:oparen]},{name:"N$subexpression$1",symbols:[kn.has("float")?{type:"float"}:float]},{name:"N$subexpression$1",symbols:[kn.has("numberE")?{type:"numberE"}:numberE]},{name:"N$subexpression$1",symbols:[kn.has("integer")?{type:"integer"}:integer]},{name:"N",symbols:["N$subexpression$1"],postprocess:([t])=>t[0].text},{name:"conjunction",symbols:[kn.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[kn.has("AND")?{type:"AND"}:AND]}],ParserStart:"numberFilter"};mB.default=Het;var v2={};Object.defineProperty(v2,"__esModule",{value:!0}),v2.run_parser=void 0;const zet=On;function Qet(t,e){try{e.feed(t);const i=e.finish()[0];return i&&(0,zet.isFilterExpression)(i)?{parsed:i,log:[]}:{parsed:null,log:[]}}catch(r){let i=r.message,s=1,o=t.length;if(r.token){const u=r.token;s=u.col,o=u.text.length;const l=r.message.match(new RegExp("(?<=A ).*(?= based on:)","g")).map(c=>c.replace(/\s+token/i,""));i=`Unexpected ${u.type} token "${u.value}"`,l&&l.length&&(i+=` Tokens expected: ${[...new Set(l)]}`)}return{parsed:null,log:[{message:i,startIndex:s-1,endIndex:s-1+o-1,severity:"error"}]}}}v2.run_parser=Qet,function(t){var e=T&&T.__createBinding||(Object.create?function(c,f,x,h){h===void 0&&(h=x);var p=Object.getOwnPropertyDescriptor(f,x);(!p||("get"in p?!f.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return f[x]}}),Object.defineProperty(c,h,p)}:function(c,f,x,h){h===void 0&&(h=x),c[h]=f[x]}),r=T&&T.__setModuleDefault||(Object.create?function(c,f){Object.defineProperty(c,"default",{enumerable:!0,value:f})}:function(c,f){c.default=f}),i=T&&T.__importStar||function(c){if(c&&c.__esModule)return c;var f={};if(c!=null)for(var x in c)x!=="default"&&Object.prototype.hasOwnProperty.call(c,x)&&e(f,c,x);return r(f,c),f},s=T&&T.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberFilterExpression=void 0;const o=On,u=i(pB),a=s(mB),l=v2;t.NumberFilterExpression={parse(c){if(c.match(/^\s*$/))return{parsed:null,log:[]};const f=new u.Parser(u.Grammar.fromCompiled(a.default)),x=(0,l.run_parser)(c,f);return x.parsed&&(0,o.isNumberFilter)(x.parsed)?{parsed:x.parsed,log:[]}:{parsed:null,log:x.log}},unparse(c){if(c===null)return"";switch(c.operator){case"=":return c.values.join(", ");case"!=":return"!= "+c.values.join(", ");case">":case"<":case"<=":case">=":return c.not?c.values.map(f=>c.operator==="="?`not ${f}`:`not ${c.operator} ${f}`).join(", "):c.values.map(f=>`${c.operator} ${f}`).join(", ");case"range":{const f=c.startOperator===">"?"(":"[",x=c.endOperator==="<"?")":"]",h=`${f}${c.startValue} to ${c.endValue}${x}`;return c.not?`not ${h}`:h}case"null":return c.not?"not null":"null";case"and":case"or":return c.members.map(f=>t.NumberFilterExpression.unparse(f)).join(` ${c.operator} `);case"()":{const f="("+t.NumberFilterExpression.unparse(c.expr)+")";return c.not?"not "+f:f}}return`no unparse for ${JSON.stringify(c)}`}}}(xle);var mle={},EB={},Wet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(EB,"__esModule",{value:!0});function Get(t){return t[0]}const Vet=Wet(gB),AB=zt,Cu=Vet.default.compile({WS:/[ \t]+/,comma:",",semi:";",or:"|",open:"(",close:")",minus:"-",matchStr:/(?:\\[^\n]|[^\n,;()|])+/}),Yet=Cu.next;Cu.next=(t=>()=>{for(;;){const e=t.call(Cu);if(e==null||e.type!=="WS")return e}})(Yet);const Ket={Lexer:Cu,ParserRules:[{name:"stringFilter",symbols:["stringFilter","conjunction","sfUnary"],postprocess:([t,e,r])=>(0,AB.conjoin)(t,e[0].text,r)},{name:"stringFilter",symbols:["sfUnary"],postprocess:t=>t[0]},{name:"sfUnary$ebnf$1",symbols:[Cu.has("minus")?{type:"minus"}:minus],postprocess:Get},{name:"sfUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"sfUnary",symbols:["sfUnary$ebnf$1","clause"],postprocess:t=>(0,AB.maybeNot)(t)},{name:"parens",symbols:[Cu.has("open")?{type:"open"}:open,"stringFilter",Cu.has("close")?{type:"close"}:close],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:[Cu.has("matchStr")?{type:"matchStr"}:matchStr],postprocess:([t])=>(0,AB.matchOp)(t.text)},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"conjunction",symbols:[Cu.has("comma")?{type:"comma"}:comma]},{name:"conjunction",symbols:[Cu.has("semi")?{type:"semi"}:semi]},{name:"conjunction",symbols:[Cu.has("or")?{type:"or"}:or]}],ParserStart:"stringFilter"};EB.default=Ket,function(t){var e=T&&T.__createBinding||(Object.create?function(f,x,h,p){p===void 0&&(p=h);var m=Object.getOwnPropertyDescriptor(x,h);(!m||("get"in m?!x.__esModule:m.writable||m.configurable))&&(m={enumerable:!0,get:function(){return x[h]}}),Object.defineProperty(f,p,m)}:function(f,x,h,p){p===void 0&&(p=h),f[p]=x[h]}),r=T&&T.__setModuleDefault||(Object.create?function(f,x){Object.defineProperty(f,"default",{enumerable:!0,value:x})}:function(f,x){f.default=x}),i=T&&T.__importStar||function(f){if(f&&f.__esModule)return f;var x={};if(f!=null)for(var h in f)h!=="default"&&Object.prototype.hasOwnProperty.call(f,h)&&e(x,f,h);return r(x,f),x},s=T&&T.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringFilterExpression=void 0;const o=On,u=i(pB),a=s(EB),l=zt,c=v2;t.StringFilterExpression={parse(f){if(f.match(/^\s*$/))return{parsed:null,log:[]};const x=new u.Parser(u.Grammar.fromCompiled(a.default)),h=(0,c.run_parser)(f,x);return h.parsed&&(0,o.isStringFilter)(h.parsed)?{parsed:h.parsed,log:[]}:{parsed:null,log:h.log}},unparse(f){if(f===null)return"";switch(f.operator){case"=":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)).join(", "):f.values.map(x=>(0,l.escape)(x)).join(", ");case"~":return f.not?f.escaped_values.map(x=>"-"+x).join(", "):f.escaped_values.join(", ");case"starts":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>(0,l.escape)(x)+"%").join(", ");case"ends":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)).join(", "):f.values.map(x=>"%"+(0,l.escape)(x)).join(", ");case"contains":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>"%"+(0,l.escape)(x)+"%").join(", ");case"or":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(" | ");case"and":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join("; ");case",":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(", ");case"()":{const x="("+t.StringFilterExpression.unparse(f.expr)+")";return f.not?"-"+x:x}case"null":return f.not?"-null":"null";case"empty":return f.not?"-empty":"empty"}}}}(mle);var gle={},_B={},Jet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_B,"__esModule",{value:!0});function Xet(t){return t[0]}const yle=Jet(gB),Su=zt,Xe=yle.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:yle.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to",NOW:"now",LAST:"last",THIS:"this",NEXT:"next",AGO:"ago",FROM:"from",BEFORE:"before",AFTER:"after",FOR:"for",TODAY:"today",YESTERDAY:"yesterday",TOMORROW:"tomorrow",SECOND:"second",MINUTE:"minute",HOUR:"hour",DAY:"day",WEEK:"week",MONTH:"month",QUARTER:"quarter",YEAR:"year",SECONDS:"seconds",MINUTES:"minutes",HOURS:"hours",DAYS:"days",WEEKS:"weeks",MONTHS:"months",QUARTERS:"quarters",YEARS:"years",MONDAY:"monday",TUESDAY:"tuesday",WEDNESDAY:"wednesday",THURSDAY:"thursday",FRIDAY:"friday",SATURDAY:"saturday",SUNDAY:"sunday"})},oparen:"(",cparen:")",comma:",",literal:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*))/,lit_week:/\d\d\d\d-\d\d-\d\d-[Ww][Kk]/,lit_quarter:/\d\d\d\d-[qQ][1234]/,lit_min:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d/,lit_hour:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d/,lit_day:/\d\d\d\d-\d\d-\d\d/,lit_month:/\d\d\d\d-\d\d/,lit_year:/\d\d\d\d/,n:/\d+/}),Zet=Xe.next;Xe.next=(t=>()=>{for(;;){const e=t.call(Xe);if(e===void 0||e.type!=="WS")return e}})(Zet);const ett={Lexer:Xe,ParserRules:[{name:"temporalFilter",symbols:["temporalFilter","conjunction","temporalUnary"],postprocess:([t,e,r])=>(0,Su.joinTemporal)(t,e[0].text,r)},{name:"temporalFilter",symbols:["temporalUnary"],postprocess:t=>t[0]},{name:"temporalUnary$ebnf$1",symbols:[Xe.has("NOT")?{type:"NOT"}:NOT],postprocess:Xet},{name:"temporalUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"temporalUnary",symbols:["temporalUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,Su.temporalNot)(e,t)},{name:"duration",symbols:["number","unit"],postprocess:([t,e])=>({units:e,n:t})},{name:"number",symbols:[Xe.has("n")?{type:"n"}:n],postprocess:([t])=>t.text},{name:"number",symbols:[Xe.has("lityear")?{type:"lityear"}:lityear],postprocess:([t])=>t.text},{name:"unit$subexpression$1",symbols:[Xe.has("SECOND")?{type:"SECOND"}:SECOND]},{name:"unit$subexpression$1",symbols:[Xe.has("MINUTE")?{type:"MINUTE"}:MINUTE]},{name:"unit$subexpression$1",symbols:[Xe.has("HOUR")?{type:"HOUR"}:HOUR]},{name:"unit$subexpression$1",symbols:[Xe.has("DAY")?{type:"DAY"}:DAY]},{name:"unit$subexpression$1",symbols:[Xe.has("WEEK")?{type:"WEEK"}:WEEK]},{name:"unit$subexpression$1",symbols:[Xe.has("MONTH")?{type:"MONTH"}:MONTH]},{name:"unit$subexpression$1",symbols:[Xe.has("QUARTER")?{type:"QUARTER"}:QUARTER]},{name:"unit$subexpression$1",symbols:[Xe.has("YEAR")?{type:"YEAR"}:YEAR]},{name:"unit$subexpression$1",symbols:[Xe.has("SECONDS")?{type:"SECONDS"}:SECONDS]},{name:"unit$subexpression$1",symbols:[Xe.has("MINUTES")?{type:"MINUTES"}:MINUTES]},{name:"unit$subexpression$1",symbols:[Xe.has("HOURS")?{type:"HOURS"}:HOURS]},{name:"unit$subexpression$1",symbols:[Xe.has("DAYS")?{type:"DAYS"}:DAYS]},{name:"unit$subexpression$1",symbols:[Xe.has("WEEKS")?{type:"WEEKS"}:WEEKS]},{name:"unit$subexpression$1",symbols:[Xe.has("MONTHS")?{type:"MONTHS"}:MONTHS]},{name:"unit$subexpression$1",symbols:[Xe.has("QUARTERS")?{type:"QUARTERS"}:QUARTERS]},{name:"unit$subexpression$1",symbols:[Xe.has("YEARS")?{type:"YEARS"}:YEARS]},{name:"unit",symbols:["unit$subexpression$1"],postprocess:([t])=>(0,Su.mkUnits)(t[0].text)},{name:"clause",symbols:[Xe.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"clause",symbols:["duration"],postprocess:([t])=>({operator:"in_last",...t})},{name:"clause",symbols:[Xe.has("BEFORE")?{type:"BEFORE"}:BEFORE,"moment"],postprocess:([t,e])=>({operator:"before",before:e})},{name:"clause",symbols:[Xe.has("AFTER")?{type:"AFTER"}:AFTER,"moment"],postprocess:([t,e])=>({operator:"after",after:e})},{name:"clause",symbols:["moment",Xe.has("TO")?{type:"TO"}:TO,"moment"],postprocess:([t,e,r])=>({operator:"to",fromMoment:t,toMoment:r})},{name:"clause",symbols:["moment",Xe.has("FOR")?{type:"FOR"}:FOR,"duration"],postprocess:([t,e,r])=>({...r,operator:"for",begin:t})},{name:"clause$subexpression$1",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST]},{name:"clause$subexpression$1",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT]},{name:"clause",symbols:["clause$subexpression$1","duration"],postprocess:([t,e])=>({operator:t[0].text,...e})},{name:"clause",symbols:["moment"],postprocess:([t])=>({operator:"in",in:t})},{name:"lastNextThis",symbols:[Xe.has("THIS")?{type:"THIS"}:THIS],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST],postprocess:([t])=>t.text.toLowerCase()},{name:"moment",symbols:[Xe.has("NOW")?{type:"NOW"}:NOW],postprocess:()=>({moment:"now"})},{name:"moment",symbols:["lastNextThis","unit"],postprocess:([t,e])=>({moment:t,units:e})},{name:"moment",symbols:[Xe.has("TODAY")?{type:"TODAY"}:TODAY],postprocess:()=>({moment:"today"})},{name:"moment",symbols:[Xe.has("YESTERDAY")?{type:"YESTERDAY"}:YESTERDAY],postprocess:()=>({moment:"yesterday"})},{name:"moment",symbols:[Xe.has("TOMORROW")?{type:"TOMORROW"}:TOMORROW],postprocess:()=>({moment:"tomorrow"})},{name:"moment",symbols:["duration",Xe.has("AGO")?{type:"AGO"}:AGO],postprocess:([t,e])=>({moment:"ago",...t})},{name:"moment",symbols:["duration",Xe.has("FROM")?{type:"FROM"}:FROM,Xe.has("NOW")?{type:"NOW"}:NOW],postprocess:([t,e])=>({moment:"from_now",...t})},{name:"moment",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"next"})},{name:"moment",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"last"})},{name:"moment",symbols:["weekday"],postprocess:([t])=>({moment:t.toLowerCase(),which:"last"})},{name:"moment",symbols:["timeLiteral"],postprocess:t=>t[0]},{name:"timeLiteral",symbols:[Xe.has("literal")?{type:"literal"}:literal],postprocess:([t])=>(0,Su.timeLiteral)(t.text)},{name:"timeLiteral",symbols:[Xe.has("lit_day")?{type:"lit_day"}:lit_day],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"day")},{name:"timeLiteral",symbols:[Xe.has("lit_min")?{type:"lit_min"}:lit_min],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"minute")},{name:"timeLiteral",symbols:[Xe.has("lit_hour")?{type:"lit_hour"}:lit_hour],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"hour")},{name:"timeLiteral",symbols:[Xe.has("lit_month")?{type:"lit_month"}:lit_month],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"month")},{name:"timeLiteral",symbols:[Xe.has("lit_quarter")?{type:"lit_quarter"}:lit_quarter],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"quarter")},{name:"timeLiteral",symbols:[Xe.has("lit_week")?{type:"lit_week"}:lit_week],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"week")},{name:"timeLiteral",symbols:[Xe.has("lit_year")?{type:"lit_year"}:lit_year],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"year")},{name:"weekday$subexpression$1",symbols:[Xe.has("MONDAY")?{type:"MONDAY"}:MONDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("TUESDAY")?{type:"TUESDAY"}:TUESDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("WEDNESDAY")?{type:"WEDNESDAY"}:WEDNESDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("THURSDAY")?{type:"THURSDAY"}:THURSDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("FRIDAY")?{type:"FRIDAY"}:FRIDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("SATURDAY")?{type:"SATURDAY"}:SATURDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("SUNDAY")?{type:"SUNDAY"}:SUNDAY]},{name:"weekday",symbols:["weekday$subexpression$1"],postprocess:([t])=>t[0].text},{name:"parens",symbols:[Xe.has("oparen")?{type:"oparen"}:oparen,"temporalFilter",Xe.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"conjunction",symbols:[Xe.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[Xe.has("AND")?{type:"AND"}:AND]}],ParserStart:"temporalFilter"};_B.default=ett,function(t){var e=T&&T.__createBinding||(Object.create?function(h,p,m,y){y===void 0&&(y=m);var g=Object.getOwnPropertyDescriptor(p,m);(!g||("get"in g?!p.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return p[m]}}),Object.defineProperty(h,y,g)}:function(h,p,m,y){y===void 0&&(y=m),h[y]=p[m]}),r=T&&T.__setModuleDefault||(Object.create?function(h,p){Object.defineProperty(h,"default",{enumerable:!0,value:p})}:function(h,p){h.default=p}),i=T&&T.__importStar||function(h){if(h&&h.__esModule)return h;var p={};if(h!=null)for(var m in h)m!=="default"&&Object.prototype.hasOwnProperty.call(h,m)&&e(p,h,m);return r(p,h),p},s=T&&T.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=void 0;const o=On,u=s(_B),a=i(pB),l=v2;t.TemporalFilterExpression={parse(h){if(h.match(/^\s*$/))return{parsed:null,log:[]};const p=new a.Parser(a.Grammar.fromCompiled(u.default)),m=(0,l.run_parser)(h,p);return m.parsed&&(0,o.isTemporalFilter)(m.parsed)?{parsed:m.parsed,log:[]}:{parsed:null,log:m.log}},unparse(h){if(h===null)return"";switch(h.operator){case"null":return c(h,"null");case"in":return c(h,x(h.in));case"()":return"("+t.TemporalFilterExpression.unparse(h.expr)+")";case"in_last":return c(h,f(h));case"last":case"next":return c(h,`${h.operator} ${f(h)}`);case"before":return c(h,`before ${x(h.before)}`);case"after":return c(h,`after ${x(h.after)}`);case"to":return c(h,`${x(h.fromMoment)} to ${x(h.toMoment)}`);case"for":return c(h,`${x(h.begin)} for ${f(h)}`);case"or":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" or ");case"and":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" and ")}}};function c(h,p){return"not"in h&&h.not?"not "+p:p}function f(h){return h.n==="1"?`1 ${h.units}`:`${h.n} ${h.units}s`}function x(h){switch(h.moment){case"literal":return h.literal;case"now":case"today":case"yesterday":case"tomorrow":return h.moment;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":return h.which==="next"?"next "+h.moment:h.moment;case"this":case"next":case"last":return`${h.moment} ${h.units}`;case"ago":return`${f(h)} ago`;case"from_now":return`${f(h)} from now`}}}(gle),function(t){var e=T&&T.__createBinding||(Object.create?function(a,l,c,f){f===void 0&&(f=c);var x=Object.getOwnPropertyDescriptor(l,c);(!x||("get"in x?!l.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return l[c]}}),Object.defineProperty(a,f,x)}:function(a,l,c,f){f===void 0&&(f=c),a[f]=l[c]}),r=T&&T.__exportStar||function(a,l){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(l,c)&&e(l,a,c)};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=t.StringFilterExpression=t.NumberFilterExpression=t.BooleanFilterExpression=void 0,r(On,t);var i=N4;Object.defineProperty(t,"BooleanFilterExpression",{enumerable:!0,get:function(){return i.BooleanFilterExpression}});var s=xle;Object.defineProperty(t,"NumberFilterExpression",{enumerable:!0,get:function(){return s.NumberFilterExpression}});var o=mle;Object.defineProperty(t,"StringFilterExpression",{enumerable:!0,get:function(){return o.StringFilterExpression}});var u=gle;Object.defineProperty(t,"TemporalFilterExpression",{enumerable:!0,get:function(){return u.TemporalFilterExpression}})}(F4);var I4={};Object.defineProperty(I4,"__esModule",{value:!0}),I4.TemporalFilterCompiler=void 0;const vB=et,Sd=qr,Ele="yyyy",Ale=`${Ele}-LL`,CB=`${Ale}-dd`,_le=`${CB} HH`,vle=`${_le}:mm`,ys=`${vle}:ss`;class ttt{constructor(e,r,i="timestamp"){this.expr=e,this.timetype=i,this.d=r}time(e){return this.timetype==="timestamp"?e:this.d.sqlCast({},{node:"cast",e:{node:"genericSQLExpr",src:["",e],kids:{args:[]},sql:e},srcType:{type:"timestamp"},dstType:{type:"date"},safe:!1})}compile(e){const r=this.expr;switch(e.operator){case"after":return`${r} ${e.not?"<":">="} ${this.time(this.moment(e.after).end)}`;case"before":return`${r} ${e.not?">=":"<"} ${this.time(this.moment(e.before).begin.sql)}`;case"in":{const i=this.moment(e.in);return i.begin.sql===i.end?e.not?`${r} != ${this.time(i.end)} OR ${r} IS NULL`:`${r} = ${this.time(i.end)}`:this.isIn(e.not,i.begin.sql,i.end)}case"for":{const i=this.moment(e.begin),s=this.delta(i.begin,"+",e.n,e.units);return this.isIn(e.not,i.begin.sql,s.sql)}case"in_last":{const i=Number(e.n)-1,s=this.nowDot(e.units),o=i>0?this.delta(s,"-",i.toString(),e.units):s,u=this.delta(s,"+","1",e.units);return this.isIn(e.not,o.sql,u.sql)}case"to":{const i=this.moment(e.fromMoment),s=this.moment(e.toMoment);return this.isIn(e.not,i.begin.sql,s.begin.sql)}case"last":{const i=this.nowDot(e.units),s=this.delta(i,"-",e.n,e.units);return this.isIn(e.not,s.sql,i.sql)}case"next":{const i=this.nowDot(e.units),s=this.delta(i,"+","1",e.units),o=this.delta(i,"+",(Number(e.n)+1).toString(),e.units);return this.isIn(e.not,s.sql,o.sql)}case"null":return e.not?`${r} IS NOT NULL`:`${r} IS NULL`;case"()":{const i="("+this.compile(e.expr)+")";return e.not?`NOT ${i}`:i}case"and":case"or":return e.members.map(i=>this.compile(i)).join(` ${e.operator.toUpperCase()} `)}}expandLiteral(e){let r=e.literal;switch(e.units){case"year":{const i=Sd.DateTime.fromFormat(r,Ele),s=this.literalNode(i.toFormat(ys)),o=i.plus({year:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"month":{const i=Sd.DateTime.fromFormat(r,Ale),s=this.literalNode(i.toFormat(ys)),o=i.plus({month:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"day":{const i=Sd.DateTime.fromFormat(r,CB),s=this.literalNode(i.toFormat(ys)),o=i.plus({day:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"hour":{const i=Sd.DateTime.fromFormat(r,_le),s=this.literalNode(i.toFormat(ys)),o=i.plus({hour:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"minute":{const i=Sd.DateTime.fromFormat(r,vle),s=this.literalNode(i.toFormat(ys)),o=i.plus({minute:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"week":{const o=Sd.DateTime.fromFormat(r.slice(0,10),CB).plus({day:1}).startOf("week").minus({day:1}),u=this.literalNode(o.toFormat(ys)),a=o.plus({days:7});return{begin:u,end:this.literalNode(a.toFormat(ys)).sql}}case"quarter":{const i=r.slice(0,4),s=r.slice(6);s==="1"?r=`${i}-01-01 00:00:00`:s==="2"?r=`${i}-03-01 00:00:00`:s==="3"?r=`${i}-06-01 00:00:00`:r=`${i}-09-01 00:00:00`;const o=this.literalNode(r),a=Sd.DateTime.fromFormat(r,ys).plus({months:3});return{begin:o,end:this.literalNode(a.toFormat(ys)).sql}}case void 0:case"second":return{begin:this.literalNode(r),end:r}}}literalNode(e){const r={node:"timeLiteral",typeDef:{type:"timestamp"},literal:e};return{...r,sql:this.d.sqlLiteralTime({},r)}}nowExpr(){return{node:"now",typeDef:{type:"timestamp"},sql:this.d.sqlNowExpr()}}n(e){return{node:"numberLiteral",literal:e,sql:e}}delta(e,r,i,s){const o={node:"delta",op:r,units:s,kids:{base:(0,vB.mkTemporal)(e,"timestamp"),delta:this.n(i)}};return{...o,sql:this.d.sqlAlterTimeExpr(o)}}dayofWeek(e){const r={node:"extract",e:(0,vB.mkTemporal)(e,"timestamp"),units:"day_of_week"};return{...r,sql:this.d.sqlTimeExtractExpr({},r)}}nowDot(e){const r={node:"trunc",e:this.nowExpr(),units:e};return{...r,sql:this.d.sqlTruncExpr({},r)}}thisUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e);return{begin:r,end:i.sql}}lastUnit(e){const r=this.nowDot(e);return{begin:this.delta(r,"-","1",e),end:r.sql}}nextUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e),s=this.delta(r,"+","2",e);return{begin:i,end:s.sql}}mod7(e){return this.d.hasModOperator?`(${e})%7`:`MOD(${e},7)`}moment(e){switch(e.moment){case"now":{const r=this.nowExpr();return{begin:r,end:r.sql}}case"literal":return this.expandLiteral(e);case"ago":case"from_now":{const r=this.nowDot(e.units),i=(0,vB.mkTemporal)(r,"timestamp"),s=this.delta(i,e.moment==="ago"?"-":"+",e.n,e.units);if(e.moment==="ago"&&e.n==="1")return{begin:s,end:r.sql};const o=Number(e.n)+(e.moment==="ago"?-1:1),u={...s,kids:{base:i,delta:this.n(o.toString())}};return{begin:s,end:this.d.sqlAlterTimeExpr(u)}}case"today":return this.thisUnit("day");case"yesterday":return this.lastUnit("day");case"tomorrow":return this.nextUnit("day");case"this":return this.thisUnit(e.units);case"last":return this.lastUnit(e.units);case"next":return this.nextUnit(e.units);case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":{const r=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].indexOf(e.moment),i=this.dayofWeek(this.nowExpr()).sql;if(e.which==="next"){const a=`${this.mod7(`${r}-(${i}-1)+6`)}+1`,l=this.delta(this.thisUnit("day").begin,"+",a,"day"),c=this.delta(this.thisUnit("day").begin,"+",`${a}+1`,"day");return{begin:l,end:c.sql}}const s=`${this.mod7(`(${i}-1)-${r}+6`)}+1`,o=this.delta(this.thisUnit("day").begin,"-",s,"day"),u=this.delta(this.thisUnit("day").begin,"-",`(${s})-1`,"day");return{begin:o,end:u.sql}}}}isIn(e,r,i){let s=">=",o="<",u="AND";return e&&(u="OR",s="<",o=">="),r=this.time(r),i=this.time(i),`${this.expr} ${s} ${r} ${u} ${this.expr} ${o} ${i}`}}I4.TemporalFilterCompiler=ttt,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FilterCompilers=void 0;const e=F4,r=I4;function i(u){return u.replace(/([%_\\])/g,"\\$1")}function s(u){return u===">"?"<=":u==="<"?">=":u===">="?"<":">"}function o(u,a){const l=` OR ${a} IS NULL`;return u.length===1?`${u[0]}${l}`:`(${u.join(" AND ")})${l}`}t.FilterCompilers={compile(u,a,l,c){if(a===null)return"true";if(u==="string"&&(0,e.isStringFilter)(a))return t.FilterCompilers.stringCompile(a,l,c);if(u==="number"&&(0,e.isNumberFilter)(a))return t.FilterCompilers.numberCompile(a,l,c);if(u==="boolean"&&(0,e.isBooleanFilter)(a))return t.FilterCompilers.booleanCompile(a,l,c);if((u==="date"||u==="timestamp")&&(0,e.isTemporalFilter)(a))return t.FilterCompilers.temporalCompile(a,l,c,u);throw new Error("INTERNAL ERROR: No filter compiler for "+u)},numberCompile(u,a,l){switch(u.operator){case"!=":case"=":{const c=u.operator==="="&&u.not||u.operator==="!="&&!u.not,f=u.values.join(", ");return u.values.length===1?c?`${a} != ${f} OR ${a} IS NULL`:`${a} = ${f}`:c?`${a} NOT IN (${f}) OR ${a} IS NULL`:`${a} IN (${f})`}case">":case"<":case">=":case"<=":return u.values.map(c=>`${a} ${u.operator} ${c}`).join(u.not?" AND ":" OR ");case"range":{let c=u.startOperator,f=u.endOperator,x=" AND ";return u.not&&(c=s(c),f=s(f),x=" OR "),`${a} ${c} ${u.startValue} ${x} ${a} ${f} ${u.endValue}`}case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"()":{const c="("+t.FilterCompilers.numberCompile(u.expr,a,l)+")";return u.not?`NOT ${c}`:c}case"and":case"or":return u.members.map(c=>t.FilterCompilers.numberCompile(c,a,l)).join(` ${u.operator.toUpperCase()} `)}},booleanCompile(u,a,l){switch(u.operator){case"false":return`${a} = false`;case"false_or_null":return`${a} IS NULL OR ${a} = false`;case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"true":return a}},stringCompile(u,a,l){switch(u.operator){case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"empty":return u.not?`COALESCE(${a},'') != ''`:`COALESCE(${a},'') = ''`;case"=":{if(u.values.length===1){const f=u.not?"!=":"=",x=`${a} ${f} ${l.sqlLiteralString(u.values[0])}`;return u.not?`(${x} OR ${a} IS NULL)`:x}const c="("+u.values.map(f=>l.sqlLiteralString(f)).join(", ")+")";return u.not?`(${a} NOT IN ${c} OR ${a} IS NULL)`:`${a} IN ${c}`}case"()":{const c="("+t.FilterCompilers.stringCompile(u.expr,a,l)+")";return u.not?`not ${c}`:c}case"contains":{const c=u.values.map(f=>"%"+i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"starts":{const c=u.values.map(f=>i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"ends":{const c=u.values.map(f=>"%"+i(f));return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"~":return u.not?o(u.escaped_values.map(c=>l.sqlLike("NOT LIKE",a,c)),a):u.escaped_values.map(c=>l.sqlLike("LIKE",a,c)).join(" OR ");case"and":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case"or":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case",":{const c=[],f=[];let x=!1,h=!1,p=!1,m=!1;for(const E of u.members)switch(E.operator){case"or":case"and":case",":c.push(E);break;case"null":E.not?h=!0:x=!0;break;case"empty":E.not?(m=!0,h=!0):(p=!0,x=!0);break;default:(E.not?f:c).push(E)}if(p&&m||x&&h)return"false";let y="";if(c.length>0||x||p){m=!1,h=!1;const E=c.map(A=>t.FilterCompilers.stringCompile(A,a,l));p&&E.push(`${a} = ''`),x&&E.push(`${a} IS NULL`),y=E.join(" OR ")}let g="";if(f.length>0||m||h){const E=f.map(A=>t.FilterCompilers.stringCompile(A,a,l));m&&E.push(`${a} != ''`),h&&E.push(`${a} IS NOT NULL`),g=E.join(" AND ")}return y?g!==""?`(${y}) AND (${g})`:y:g!==""?g:"true"}}},temporalCompile(u,a,l,c){return new r.TemporalFilterCompiler(a,l,c).compile(u)}}}(fle),Object.defineProperty(Hs,"__esModule",{value:!0}),Hs.QueryModel=Hs.getResultStructDefForQuery=Hs.getResultStructDefForView=Hs.Segment=void 0;const ntt=g2,rtt=p2,itt=Xy,Ue=et,wn=kt,$4=A2,stt=gi,ott=fle,utt=F4;function Cle(t){return t.map(e=>encodeURIComponent(e)).join("/")}function SB(t){return`'${t}'`}function att(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function C2(t){const e=[];for(const r of t.fields.filter(Ue.fieldIsIntrinsic))e.push({type:r.type,sqlExpression:(0,Ue.getIdentifier)(r),rawName:(0,Ue.getIdentifier)(r),sqlOutputName:(0,Ue.getIdentifier)(r)});return e}class ltt extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class nE{constructor(e=!0,r){this.parent=r,this.withs=[],this.udfs=[],this.pdts=[],this.dependenciesToMaterialize={},this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,wn.indent)(`
1440
+ `)},b.prototype.clone=function(){return new b(this.states,this.state)},b.prototype.has=function(D){return!0},{compile:_,states:C,error:Object.freeze({error:!0}),fallback:Object.freeze({fallback:!0}),keywords:S}})})(hle);var gB=hle.exports,zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.mkUnits=zt.timeLiteral=zt.joinTemporal=zt.temporalNot=zt.numNot=zt.mkValues=zt.mkRange=zt.joinNumbers=zt.conjoin=zt.matchOp=zt.escape=zt.unescape=zt.maybeNot=void 0;const Pa=On;function Det(t){const[e,r]=t;return e&&r&&(0,Pa.isStringFilter)(r)?{...r,not:!0}:r}zt.maybeNot=Det;function tE(t){return t.replace(/\\(.)/g,"$1")}zt.unescape=tE;function Oet(t){const e=t.toLowerCase();return e==="null"||e==="empty"?"\\"+t:t.replace(/([,; |()\\%_-])/g,"\\$1")}zt.escape=Oet;function L4(t){let e=!1,r=!1,i=0,s=!1;const o=t.length;for(let u=0;u<o;u+=1){const a=t[u];if(a===" "||a===" "){i+=1;continue}i=0,a==="%"?(s=!0,u===0&&(e=!0),r=!0):(r=!1,a==="\\"?u+=1:a==="_"&&(s=!0))}return{hasLike:s,percentEnd:r&&o>1,percentStart:e&&o>1,endSpace:i}}function wet(t){let e=t.trimStart();const{hasLike:r,percentEnd:i,percentStart:s,endSpace:o}=L4(e);if(o>0&&(e=e.slice(0,-o)),r){if(s&&i){const u=e.slice(1,-1);if(!L4(u).hasLike&&u.length>0)return{operator:"contains",values:[tE(u)]}}else if(i){const u=e.slice(0,-1);if(!L4(u).hasLike)return{operator:"starts",values:[tE(u)]}}else if(s){const u=e.slice(1);if(!L4(u).hasLike)return{operator:"ends",values:[tE(u)]}}return{operator:"~",escaped_values:[e]}}return e.toLowerCase()==="null"||e==="NULL"?{operator:"null"}:e==="empty"||e==="EMPTY"?{operator:"empty"}:{operator:"=",values:[tE(e)]}}zt.matchOp=wet;function yB(t,e){var r,i;return t.operator===e.operator&&((r=t.not)!==null&&r!==void 0?r:!1)===((i=e.not)!==null&&i!==void 0?i:!1)}function Fet(t,e,r){if((0,Pa.isStringFilter)(t)&&(0,Pa.isStringFilter)(r)){if(e===","){if(t.operator==="~"&&yB(t,r))return{...t,escaped_values:[...t.escaped_values,...r.escaped_values]};if((0,Pa.isStringCondition)(t)&&yB(t,r))return{...t,values:[...t.values,...r.values]}}const i=e===","?",":e==="|"?"or":e===";"?"and":void 0;if(i)return t.operator===i?{...t,members:[...t.members,r]}:{operator:i,members:[t,r]}}return null}zt.conjoin=Fet;function Net(t,e,r){if((0,Pa.isNumberFilter)(t)&&(0,Pa.isNumberFilter)(r)){if(e==="or"&&t.operator==="="&&yB(t,r)){const i={operator:"=",values:[...t.values,...r.values]};return t.not&&(i.not=!0),i}if(e==="and"||e==="or")return t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}}return null}zt.joinNumbers=Net;function Let(t,e,r,i){return{operator:"range",startValue:e,startOperator:t==="("?">":">=",endValue:r,endOperator:i===")"?"<":"<="}}zt.mkRange=Let;function Iet(t,e){return{values:[t,...e]}}zt.mkValues=Iet;function $et(t,e){return(0,Pa.isNumberFilter)(t)&&e?t.operator==="="?{operator:"!=",values:t.values}:t.operator==="!="?{operator:"=",values:t.values}:{...t,not:!0}:t}zt.numNot=$et;function Bet(t,e){return(0,Pa.isTemporalFilter)(t)&&e?{...t,not:!0}:t}zt.temporalNot=Bet;function ket(t,e,r){return(0,Pa.isTemporalFilter)(t)&&(0,Pa.isTemporalFilter)(r)&&(e==="and"||e==="or")?t.operator===e?{...t,members:[...t.members,r]}:{operator:e,members:[t,r]}:null}zt.joinTemporal=ket;function Met(t,e){const r={moment:"literal",literal:t};return e&&(r.units=e),r}zt.timeLiteral=Met;function Pet(t){switch(t.toLowerCase()){case"second":case"seconds":return"second";case"minute":case"minutes":return"minute";case"hour":case"hours":return"hour";case"day":case"days":return"day";case"week":case"weeks":return"week";case"month":case"months":return"month";case"quarter":case"quarters":return"quarter";case"year":case"years":return"year"}}zt.mkUnits=Pet;var Uet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(mB,"__esModule",{value:!0});function jet(t){return t[0]}const ple=Uet(gB),_2=zt,kn=ple.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:ple.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to"})},oparen:"(",cparen:")",obrack:"[",cbrack:"]",comma:",",op:/<=|>=|<|>/,ne:"!=",eq:"=",float:/-?(?:\d+)?\.\d+(?:[Ee][+-]?\d+)?/,numberE:/-?\d+[Ee][+-]?\d+/,integer:/-?\d+/}),qet=kn.next;kn.next=(t=>()=>{for(;;){const e=t.call(kn);if(e===void 0||e.type!=="WS")return e}})(qet);const Het={Lexer:kn,ParserRules:[{name:"numberFilter",symbols:["numberFilter","conjunction","numberUnary"],postprocess:([t,e,r])=>(0,_2.joinNumbers)(t,e[0].text,r)},{name:"numberFilter",symbols:["numberUnary"],postprocess:t=>t[0]},{name:"numberUnary$ebnf$1",symbols:[kn.has("NOT")?{type:"NOT"}:NOT],postprocess:jet},{name:"numberUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"numberUnary",symbols:["numberUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,_2.numNot)(e,t)},{name:"clause",symbols:[kn.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause$ebnf$1",symbols:[]},{name:"clause$ebnf$1",symbols:["clause$ebnf$1","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:["N","clause$ebnf$1"],postprocess:([t,e])=>({operator:"=",...(0,_2.mkValues)(t,e)})},{name:"clause$ebnf$2",symbols:[]},{name:"clause$ebnf$2",symbols:["clause$ebnf$2","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[kn.has("eq")?{type:"eq"}:eq,"N","clause$ebnf$2"],postprocess:([t,e,r])=>({operator:"=",...(0,_2.mkValues)(e,r)})},{name:"clause$ebnf$3",symbols:[]},{name:"clause$ebnf$3",symbols:["clause$ebnf$3","numberList"],postprocess:t=>t[0].concat([t[1]])},{name:"clause",symbols:[kn.has("ne")?{type:"ne"}:ne,"N","clause$ebnf$3"],postprocess:([t,e,r])=>({operator:"!=",...(0,_2.mkValues)(e,r)})},{name:"clause",symbols:[kn.has("op")?{type:"op"}:op,"N"],postprocess:([t,e])=>({operator:t.text,values:[e]})},{name:"clause",symbols:[kn.has("oparen")?{type:"oparen"}:oparen,"numberFilter",kn.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:["openInterval","N",kn.has("TO")?{type:"TO"}:TO,"N","closeInterval"],postprocess:([t,e,r,i,s])=>(0,_2.mkRange)(t[0].text,e,i,s[0].text)},{name:"numberList",symbols:[kn.has("comma")?{type:"comma"}:comma,"N"],postprocess:([t,e])=>e},{name:"closeInterval",symbols:[kn.has("cbrack")?{type:"cbrack"}:cbrack]},{name:"closeInterval",symbols:[kn.has("cparen")?{type:"cparen"}:cparen]},{name:"openInterval",symbols:[kn.has("obrack")?{type:"obrack"}:obrack]},{name:"openInterval",symbols:[kn.has("oparen")?{type:"oparen"}:oparen]},{name:"N$subexpression$1",symbols:[kn.has("float")?{type:"float"}:float]},{name:"N$subexpression$1",symbols:[kn.has("numberE")?{type:"numberE"}:numberE]},{name:"N$subexpression$1",symbols:[kn.has("integer")?{type:"integer"}:integer]},{name:"N",symbols:["N$subexpression$1"],postprocess:([t])=>t[0].text},{name:"conjunction",symbols:[kn.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[kn.has("AND")?{type:"AND"}:AND]}],ParserStart:"numberFilter"};mB.default=Het;var v2={};Object.defineProperty(v2,"__esModule",{value:!0}),v2.run_parser=void 0;const zet=On;function Qet(t,e){try{e.feed(t);const i=e.finish()[0];return i&&(0,zet.isFilterExpression)(i)?{parsed:i,log:[]}:{parsed:null,log:[]}}catch(r){let i=r.message,s=1,o=t.length;if(r.token){const u=r.token;s=u.col,o=u.text.length;const l=r.message.match(new RegExp("(?<=A ).*(?= based on:)","g")).map(c=>c.replace(/\s+token/i,""));i=`Unexpected ${u.type} token "${u.value}"`,l&&l.length&&(i+=` Tokens expected: ${[...new Set(l)]}`)}return{parsed:null,log:[{message:i,startIndex:s-1,endIndex:s-1+o-1,severity:"error"}]}}}v2.run_parser=Qet,function(t){var e=T&&T.__createBinding||(Object.create?function(c,f,x,h){h===void 0&&(h=x);var p=Object.getOwnPropertyDescriptor(f,x);(!p||("get"in p?!f.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return f[x]}}),Object.defineProperty(c,h,p)}:function(c,f,x,h){h===void 0&&(h=x),c[h]=f[x]}),r=T&&T.__setModuleDefault||(Object.create?function(c,f){Object.defineProperty(c,"default",{enumerable:!0,value:f})}:function(c,f){c.default=f}),i=T&&T.__importStar||function(c){if(c&&c.__esModule)return c;var f={};if(c!=null)for(var x in c)x!=="default"&&Object.prototype.hasOwnProperty.call(c,x)&&e(f,c,x);return r(f,c),f},s=T&&T.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberFilterExpression=void 0;const o=On,u=i(pB),a=s(mB),l=v2;t.NumberFilterExpression={parse(c){if(c.match(/^\s*$/))return{parsed:null,log:[]};const f=new u.Parser(u.Grammar.fromCompiled(a.default)),x=(0,l.run_parser)(c,f);return x.parsed&&(0,o.isNumberFilter)(x.parsed)?{parsed:x.parsed,log:[]}:{parsed:null,log:x.log}},unparse(c){if(c===null)return"";switch(c.operator){case"=":return c.values.join(", ");case"!=":return"!= "+c.values.join(", ");case">":case"<":case"<=":case">=":return c.not?c.values.map(f=>c.operator==="="?`not ${f}`:`not ${c.operator} ${f}`).join(", "):c.values.map(f=>`${c.operator} ${f}`).join(", ");case"range":{const f=c.startOperator===">"?"(":"[",x=c.endOperator==="<"?")":"]",h=`${f}${c.startValue} to ${c.endValue}${x}`;return c.not?`not ${h}`:h}case"null":return c.not?"not null":"null";case"and":case"or":return c.members.map(f=>t.NumberFilterExpression.unparse(f)).join(` ${c.operator} `);case"()":{const f="("+t.NumberFilterExpression.unparse(c.expr)+")";return c.not?"not "+f:f}}return`no unparse for ${JSON.stringify(c)}`}}}(xle);var mle={},EB={},Wet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(EB,"__esModule",{value:!0});function Get(t){return t[0]}const Vet=Wet(gB),AB=zt,Cu=Vet.default.compile({WS:/[ \t]+/,comma:",",semi:";",or:"|",open:"(",close:")",minus:"-",matchStr:/(?:\\[^\n]|[^\n,;()|])+/}),Yet=Cu.next;Cu.next=(t=>()=>{for(;;){const e=t.call(Cu);if(e==null||e.type!=="WS")return e}})(Yet);const Ket={Lexer:Cu,ParserRules:[{name:"stringFilter",symbols:["stringFilter","conjunction","sfUnary"],postprocess:([t,e,r])=>(0,AB.conjoin)(t,e[0].text,r)},{name:"stringFilter",symbols:["sfUnary"],postprocess:t=>t[0]},{name:"sfUnary$ebnf$1",symbols:[Cu.has("minus")?{type:"minus"}:minus],postprocess:Get},{name:"sfUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"sfUnary",symbols:["sfUnary$ebnf$1","clause"],postprocess:t=>(0,AB.maybeNot)(t)},{name:"parens",symbols:[Cu.has("open")?{type:"open"}:open,"stringFilter",Cu.has("close")?{type:"close"}:close],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"clause",symbols:[Cu.has("matchStr")?{type:"matchStr"}:matchStr],postprocess:([t])=>(0,AB.matchOp)(t.text)},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"conjunction",symbols:[Cu.has("comma")?{type:"comma"}:comma]},{name:"conjunction",symbols:[Cu.has("semi")?{type:"semi"}:semi]},{name:"conjunction",symbols:[Cu.has("or")?{type:"or"}:or]}],ParserStart:"stringFilter"};EB.default=Ket,function(t){var e=T&&T.__createBinding||(Object.create?function(f,x,h,p){p===void 0&&(p=h);var m=Object.getOwnPropertyDescriptor(x,h);(!m||("get"in m?!x.__esModule:m.writable||m.configurable))&&(m={enumerable:!0,get:function(){return x[h]}}),Object.defineProperty(f,p,m)}:function(f,x,h,p){p===void 0&&(p=h),f[p]=x[h]}),r=T&&T.__setModuleDefault||(Object.create?function(f,x){Object.defineProperty(f,"default",{enumerable:!0,value:x})}:function(f,x){f.default=x}),i=T&&T.__importStar||function(f){if(f&&f.__esModule)return f;var x={};if(f!=null)for(var h in f)h!=="default"&&Object.prototype.hasOwnProperty.call(f,h)&&e(x,f,h);return r(x,f),x},s=T&&T.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringFilterExpression=void 0;const o=On,u=i(pB),a=s(EB),l=zt,c=v2;t.StringFilterExpression={parse(f){if(f.match(/^\s*$/))return{parsed:null,log:[]};const x=new u.Parser(u.Grammar.fromCompiled(a.default)),h=(0,c.run_parser)(f,x);return h.parsed&&(0,o.isStringFilter)(h.parsed)?{parsed:h.parsed,log:[]}:{parsed:null,log:h.log}},unparse(f){if(f===null)return"";switch(f.operator){case"=":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)).join(", "):f.values.map(x=>(0,l.escape)(x)).join(", ");case"~":return f.not?f.escaped_values.map(x=>"-"+x).join(", "):f.escaped_values.join(", ");case"starts":return f.not?f.values.map(x=>"-"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>(0,l.escape)(x)+"%").join(", ");case"ends":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)).join(", "):f.values.map(x=>"%"+(0,l.escape)(x)).join(", ");case"contains":return f.not?f.values.map(x=>"-%"+(0,l.escape)(x)+"%").join(", "):f.values.map(x=>"%"+(0,l.escape)(x)+"%").join(", ");case"or":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(" | ");case"and":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join("; ");case",":return f.members.map(x=>t.StringFilterExpression.unparse(x)).join(", ");case"()":{const x="("+t.StringFilterExpression.unparse(f.expr)+")";return f.not?"-"+x:x}case"null":return f.not?"-null":"null";case"empty":return f.not?"-empty":"empty"}}}}(mle);var gle={},_B={},Jet=T&&T.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_B,"__esModule",{value:!0});function Xet(t){return t[0]}const yle=Jet(gB),Su=zt,Xe=yle.default.compile({WS:/[ \t]+/,id:{match:/[a-zA-Z]+/,type:yle.default.keywords({AND:"and",OR:"or",NOT:"not",NULL_KW:"null",TO:"to",NOW:"now",LAST:"last",THIS:"this",NEXT:"next",AGO:"ago",FROM:"from",BEFORE:"before",AFTER:"after",FOR:"for",TODAY:"today",YESTERDAY:"yesterday",TOMORROW:"tomorrow",SECOND:"second",MINUTE:"minute",HOUR:"hour",DAY:"day",WEEK:"week",MONTH:"month",QUARTER:"quarter",YEAR:"year",SECONDS:"seconds",MINUTES:"minutes",HOURS:"hours",DAYS:"days",WEEKS:"weeks",MONTHS:"months",QUARTERS:"quarters",YEARS:"years",MONDAY:"monday",TUESDAY:"tuesday",WEDNESDAY:"wednesday",THURSDAY:"thursday",FRIDAY:"friday",SATURDAY:"saturday",SUNDAY:"sunday"})},oparen:"(",cparen:")",comma:",",literal:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d(?::\d\d(?:[.,]\d*)?)/,lit_week:/\d\d\d\d-\d\d-\d\d-[Ww][Kk]/,lit_quarter:/\d\d\d\d-[qQ][1234]/,lit_min:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d:\d\d/,lit_hour:/\d\d\d\d-\d\d-\d\d[ Tt]\d\d/,lit_day:/\d\d\d\d-\d\d-\d\d/,lit_month:/\d\d\d\d-\d\d/,lit_year:/\d\d\d\d/,n:/\d+/}),Zet=Xe.next;Xe.next=(t=>()=>{for(;;){const e=t.call(Xe);if(e===void 0||e.type!=="WS")return e}})(Zet);const ett={Lexer:Xe,ParserRules:[{name:"temporalFilter",symbols:["temporalFilter","conjunction","temporalUnary"],postprocess:([t,e,r])=>(0,Su.joinTemporal)(t,e[0].text,r)},{name:"temporalFilter",symbols:["temporalUnary"],postprocess:t=>t[0]},{name:"temporalUnary$ebnf$1",symbols:[Xe.has("NOT")?{type:"NOT"}:NOT],postprocess:Xet},{name:"temporalUnary$ebnf$1",symbols:[],postprocess:()=>null},{name:"temporalUnary",symbols:["temporalUnary$ebnf$1","clause"],postprocess:([t,e])=>(0,Su.temporalNot)(e,t)},{name:"duration",symbols:["number","unit"],postprocess:([t,e])=>({units:e,n:t})},{name:"number",symbols:[Xe.has("n")?{type:"n"}:n],postprocess:([t])=>t.text},{name:"number",symbols:[Xe.has("lityear")?{type:"lityear"}:lityear],postprocess:([t])=>t.text},{name:"unit$subexpression$1",symbols:[Xe.has("SECOND")?{type:"SECOND"}:SECOND]},{name:"unit$subexpression$1",symbols:[Xe.has("MINUTE")?{type:"MINUTE"}:MINUTE]},{name:"unit$subexpression$1",symbols:[Xe.has("HOUR")?{type:"HOUR"}:HOUR]},{name:"unit$subexpression$1",symbols:[Xe.has("DAY")?{type:"DAY"}:DAY]},{name:"unit$subexpression$1",symbols:[Xe.has("WEEK")?{type:"WEEK"}:WEEK]},{name:"unit$subexpression$1",symbols:[Xe.has("MONTH")?{type:"MONTH"}:MONTH]},{name:"unit$subexpression$1",symbols:[Xe.has("QUARTER")?{type:"QUARTER"}:QUARTER]},{name:"unit$subexpression$1",symbols:[Xe.has("YEAR")?{type:"YEAR"}:YEAR]},{name:"unit$subexpression$1",symbols:[Xe.has("SECONDS")?{type:"SECONDS"}:SECONDS]},{name:"unit$subexpression$1",symbols:[Xe.has("MINUTES")?{type:"MINUTES"}:MINUTES]},{name:"unit$subexpression$1",symbols:[Xe.has("HOURS")?{type:"HOURS"}:HOURS]},{name:"unit$subexpression$1",symbols:[Xe.has("DAYS")?{type:"DAYS"}:DAYS]},{name:"unit$subexpression$1",symbols:[Xe.has("WEEKS")?{type:"WEEKS"}:WEEKS]},{name:"unit$subexpression$1",symbols:[Xe.has("MONTHS")?{type:"MONTHS"}:MONTHS]},{name:"unit$subexpression$1",symbols:[Xe.has("QUARTERS")?{type:"QUARTERS"}:QUARTERS]},{name:"unit$subexpression$1",symbols:[Xe.has("YEARS")?{type:"YEARS"}:YEARS]},{name:"unit",symbols:["unit$subexpression$1"],postprocess:([t])=>(0,Su.mkUnits)(t[0].text)},{name:"clause",symbols:[Xe.has("NULL_KW")?{type:"NULL_KW"}:NULL_KW],postprocess:()=>({operator:"null"})},{name:"clause",symbols:["parens"],postprocess:t=>t[0]},{name:"clause",symbols:["duration"],postprocess:([t])=>({operator:"in_last",...t})},{name:"clause",symbols:[Xe.has("BEFORE")?{type:"BEFORE"}:BEFORE,"moment"],postprocess:([t,e])=>({operator:"before",before:e})},{name:"clause",symbols:[Xe.has("AFTER")?{type:"AFTER"}:AFTER,"moment"],postprocess:([t,e])=>({operator:"after",after:e})},{name:"clause",symbols:["moment",Xe.has("TO")?{type:"TO"}:TO,"moment"],postprocess:([t,e,r])=>({operator:"to",fromMoment:t,toMoment:r})},{name:"clause",symbols:["moment",Xe.has("FOR")?{type:"FOR"}:FOR,"duration"],postprocess:([t,e,r])=>({...r,operator:"for",begin:t})},{name:"clause$subexpression$1",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST]},{name:"clause$subexpression$1",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT]},{name:"clause",symbols:["clause$subexpression$1","duration"],postprocess:([t,e])=>({operator:t[0].text,...e})},{name:"clause",symbols:["moment"],postprocess:([t])=>({operator:"in",in:t})},{name:"lastNextThis",symbols:[Xe.has("THIS")?{type:"THIS"}:THIS],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT],postprocess:([t])=>t.text.toLowerCase()},{name:"lastNextThis",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST],postprocess:([t])=>t.text.toLowerCase()},{name:"moment",symbols:[Xe.has("NOW")?{type:"NOW"}:NOW],postprocess:()=>({moment:"now"})},{name:"moment",symbols:["lastNextThis","unit"],postprocess:([t,e])=>({moment:t,units:e})},{name:"moment",symbols:[Xe.has("TODAY")?{type:"TODAY"}:TODAY],postprocess:()=>({moment:"today"})},{name:"moment",symbols:[Xe.has("YESTERDAY")?{type:"YESTERDAY"}:YESTERDAY],postprocess:()=>({moment:"yesterday"})},{name:"moment",symbols:[Xe.has("TOMORROW")?{type:"TOMORROW"}:TOMORROW],postprocess:()=>({moment:"tomorrow"})},{name:"moment",symbols:["duration",Xe.has("AGO")?{type:"AGO"}:AGO],postprocess:([t,e])=>({moment:"ago",...t})},{name:"moment",symbols:["duration",Xe.has("FROM")?{type:"FROM"}:FROM,Xe.has("NOW")?{type:"NOW"}:NOW],postprocess:([t,e])=>({moment:"from_now",...t})},{name:"moment",symbols:[Xe.has("NEXT")?{type:"NEXT"}:NEXT,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"next"})},{name:"moment",symbols:[Xe.has("LAST")?{type:"LAST"}:LAST,"weekday"],postprocess:([t,e])=>({moment:e.toLowerCase(),which:"last"})},{name:"moment",symbols:["weekday"],postprocess:([t])=>({moment:t.toLowerCase(),which:"last"})},{name:"moment",symbols:["timeLiteral"],postprocess:t=>t[0]},{name:"timeLiteral",symbols:[Xe.has("literal")?{type:"literal"}:literal],postprocess:([t])=>(0,Su.timeLiteral)(t.text)},{name:"timeLiteral",symbols:[Xe.has("lit_day")?{type:"lit_day"}:lit_day],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"day")},{name:"timeLiteral",symbols:[Xe.has("lit_min")?{type:"lit_min"}:lit_min],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"minute")},{name:"timeLiteral",symbols:[Xe.has("lit_hour")?{type:"lit_hour"}:lit_hour],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"hour")},{name:"timeLiteral",symbols:[Xe.has("lit_month")?{type:"lit_month"}:lit_month],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"month")},{name:"timeLiteral",symbols:[Xe.has("lit_quarter")?{type:"lit_quarter"}:lit_quarter],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"quarter")},{name:"timeLiteral",symbols:[Xe.has("lit_week")?{type:"lit_week"}:lit_week],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"week")},{name:"timeLiteral",symbols:[Xe.has("lit_year")?{type:"lit_year"}:lit_year],postprocess:([t])=>(0,Su.timeLiteral)(t.text,"year")},{name:"weekday$subexpression$1",symbols:[Xe.has("MONDAY")?{type:"MONDAY"}:MONDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("TUESDAY")?{type:"TUESDAY"}:TUESDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("WEDNESDAY")?{type:"WEDNESDAY"}:WEDNESDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("THURSDAY")?{type:"THURSDAY"}:THURSDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("FRIDAY")?{type:"FRIDAY"}:FRIDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("SATURDAY")?{type:"SATURDAY"}:SATURDAY]},{name:"weekday$subexpression$1",symbols:[Xe.has("SUNDAY")?{type:"SUNDAY"}:SUNDAY]},{name:"weekday",symbols:["weekday$subexpression$1"],postprocess:([t])=>t[0].text},{name:"parens",symbols:[Xe.has("oparen")?{type:"oparen"}:oparen,"temporalFilter",Xe.has("cparen")?{type:"cparen"}:cparen],postprocess:([t,e,r])=>({operator:"()",expr:e})},{name:"conjunction",symbols:[Xe.has("OR")?{type:"OR"}:OR]},{name:"conjunction",symbols:[Xe.has("AND")?{type:"AND"}:AND]}],ParserStart:"temporalFilter"};_B.default=ett,function(t){var e=T&&T.__createBinding||(Object.create?function(h,p,m,y){y===void 0&&(y=m);var g=Object.getOwnPropertyDescriptor(p,m);(!g||("get"in g?!p.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return p[m]}}),Object.defineProperty(h,y,g)}:function(h,p,m,y){y===void 0&&(y=m),h[y]=p[m]}),r=T&&T.__setModuleDefault||(Object.create?function(h,p){Object.defineProperty(h,"default",{enumerable:!0,value:p})}:function(h,p){h.default=p}),i=T&&T.__importStar||function(h){if(h&&h.__esModule)return h;var p={};if(h!=null)for(var m in h)m!=="default"&&Object.prototype.hasOwnProperty.call(h,m)&&e(p,h,m);return r(p,h),p},s=T&&T.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=void 0;const o=On,u=s(_B),a=i(pB),l=v2;t.TemporalFilterExpression={parse(h){if(h.match(/^\s*$/))return{parsed:null,log:[]};const p=new a.Parser(a.Grammar.fromCompiled(u.default)),m=(0,l.run_parser)(h,p);return m.parsed&&(0,o.isTemporalFilter)(m.parsed)?{parsed:m.parsed,log:[]}:{parsed:null,log:m.log}},unparse(h){if(h===null)return"";switch(h.operator){case"null":return c(h,"null");case"in":return c(h,x(h.in));case"()":return"("+t.TemporalFilterExpression.unparse(h.expr)+")";case"in_last":return c(h,f(h));case"last":case"next":return c(h,`${h.operator} ${f(h)}`);case"before":return c(h,`before ${x(h.before)}`);case"after":return c(h,`after ${x(h.after)}`);case"to":return c(h,`${x(h.fromMoment)} to ${x(h.toMoment)}`);case"for":return c(h,`${x(h.begin)} for ${f(h)}`);case"or":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" or ");case"and":return h.members.map(p=>t.TemporalFilterExpression.unparse(p)).join(" and ")}}};function c(h,p){return"not"in h&&h.not?"not "+p:p}function f(h){return h.n==="1"?`1 ${h.units}`:`${h.n} ${h.units}s`}function x(h){switch(h.moment){case"literal":return h.literal;case"now":case"today":case"yesterday":case"tomorrow":return h.moment;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":return h.which==="next"?"next "+h.moment:h.moment;case"this":case"next":case"last":return`${h.moment} ${h.units}`;case"ago":return`${f(h)} ago`;case"from_now":return`${f(h)} from now`}}}(gle),function(t){var e=T&&T.__createBinding||(Object.create?function(a,l,c,f){f===void 0&&(f=c);var x=Object.getOwnPropertyDescriptor(l,c);(!x||("get"in x?!l.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return l[c]}}),Object.defineProperty(a,f,x)}:function(a,l,c,f){f===void 0&&(f=c),a[f]=l[c]}),r=T&&T.__exportStar||function(a,l){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(l,c)&&e(l,a,c)};Object.defineProperty(t,"__esModule",{value:!0}),t.TemporalFilterExpression=t.StringFilterExpression=t.NumberFilterExpression=t.BooleanFilterExpression=void 0,r(On,t);var i=N4;Object.defineProperty(t,"BooleanFilterExpression",{enumerable:!0,get:function(){return i.BooleanFilterExpression}});var s=xle;Object.defineProperty(t,"NumberFilterExpression",{enumerable:!0,get:function(){return s.NumberFilterExpression}});var o=mle;Object.defineProperty(t,"StringFilterExpression",{enumerable:!0,get:function(){return o.StringFilterExpression}});var u=gle;Object.defineProperty(t,"TemporalFilterExpression",{enumerable:!0,get:function(){return u.TemporalFilterExpression}})}(F4);var I4={};Object.defineProperty(I4,"__esModule",{value:!0}),I4.TemporalFilterCompiler=void 0;const vB=et,Sd=qr,Ele="yyyy",Ale=`${Ele}-LL`,CB=`${Ale}-dd`,_le=`${CB} HH`,vle=`${_le}:mm`,ys=`${vle}:ss`;class ttt{constructor(e,r,i="timestamp"){this.expr=e,this.timetype=i,this.d=r}time(e){return this.timetype==="timestamp"?e:this.d.sqlCast({},{node:"cast",e:{node:"genericSQLExpr",src:["",e],kids:{args:[]},sql:e},srcType:{type:"timestamp"},dstType:{type:"date"},safe:!1})}compile(e){const r=this.expr;switch(e.operator){case"after":return`${r} ${e.not?"<":">="} ${this.time(this.moment(e.after).end)}`;case"before":return`${r} ${e.not?">=":"<"} ${this.time(this.moment(e.before).begin.sql)}`;case"in":{const i=this.moment(e.in);return i.begin.sql===i.end?e.not?`${r} != ${this.time(i.end)} OR ${r} IS NULL`:`${r} = ${this.time(i.end)}`:this.isIn(e.not,i.begin.sql,i.end)}case"for":{const i=this.moment(e.begin),s=this.delta(i.begin,"+",e.n,e.units);return this.isIn(e.not,i.begin.sql,s.sql)}case"in_last":{const i=Number(e.n)-1,s=this.nowDot(e.units),o=i>0?this.delta(s,"-",i.toString(),e.units):s,u=this.delta(s,"+","1",e.units);return this.isIn(e.not,o.sql,u.sql)}case"to":{const i=this.moment(e.fromMoment),s=this.moment(e.toMoment);return this.isIn(e.not,i.begin.sql,s.begin.sql)}case"last":{const i=this.nowDot(e.units),s=this.delta(i,"-",e.n,e.units);return this.isIn(e.not,s.sql,i.sql)}case"next":{const i=this.nowDot(e.units),s=this.delta(i,"+","1",e.units),o=this.delta(i,"+",(Number(e.n)+1).toString(),e.units);return this.isIn(e.not,s.sql,o.sql)}case"null":return e.not?`${r} IS NOT NULL`:`${r} IS NULL`;case"()":{const i="("+this.compile(e.expr)+")";return e.not?`NOT ${i}`:i}case"and":case"or":return e.members.map(i=>this.compile(i)).join(` ${e.operator.toUpperCase()} `)}}expandLiteral(e){let r=e.literal;switch(e.units){case"year":{const i=Sd.DateTime.fromFormat(r,Ele),s=this.literalNode(i.toFormat(ys)),o=i.plus({year:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"month":{const i=Sd.DateTime.fromFormat(r,Ale),s=this.literalNode(i.toFormat(ys)),o=i.plus({month:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"day":{const i=Sd.DateTime.fromFormat(r,CB),s=this.literalNode(i.toFormat(ys)),o=i.plus({day:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"hour":{const i=Sd.DateTime.fromFormat(r,_le),s=this.literalNode(i.toFormat(ys)),o=i.plus({hour:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"minute":{const i=Sd.DateTime.fromFormat(r,vle),s=this.literalNode(i.toFormat(ys)),o=i.plus({minute:1});return{begin:s,end:this.literalNode(o.toFormat(ys)).sql}}case"week":{const o=Sd.DateTime.fromFormat(r.slice(0,10),CB).plus({day:1}).startOf("week").minus({day:1}),u=this.literalNode(o.toFormat(ys)),a=o.plus({days:7});return{begin:u,end:this.literalNode(a.toFormat(ys)).sql}}case"quarter":{const i=r.slice(0,4),s=r.slice(6);s==="1"?r=`${i}-01-01 00:00:00`:s==="2"?r=`${i}-03-01 00:00:00`:s==="3"?r=`${i}-06-01 00:00:00`:r=`${i}-09-01 00:00:00`;const o=this.literalNode(r),a=Sd.DateTime.fromFormat(r,ys).plus({months:3});return{begin:o,end:this.literalNode(a.toFormat(ys)).sql}}case void 0:case"second":{const i=this.literalNode(r);return{begin:i,end:i.sql}}}}literalNode(e){const r={node:"timeLiteral",typeDef:{type:"timestamp"},literal:e};return{...r,sql:this.d.sqlLiteralTime({},r)}}nowExpr(){return{node:"now",typeDef:{type:"timestamp"},sql:this.d.sqlNowExpr()}}n(e){return{node:"numberLiteral",literal:e,sql:e}}delta(e,r,i,s){const o={node:"delta",op:r,units:s,kids:{base:(0,vB.mkTemporal)(e,"timestamp"),delta:this.n(i)}};return{...o,sql:this.d.sqlAlterTimeExpr(o)}}dayofWeek(e){const r={node:"extract",e:(0,vB.mkTemporal)(e,"timestamp"),units:"day_of_week"};return{...r,sql:this.d.sqlTimeExtractExpr({},r)}}nowDot(e){const r={node:"trunc",e:this.nowExpr(),units:e};return{...r,sql:this.d.sqlTruncExpr({},r)}}thisUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e);return{begin:r,end:i.sql}}lastUnit(e){const r=this.nowDot(e);return{begin:this.delta(r,"-","1",e),end:r.sql}}nextUnit(e){const r=this.nowDot(e),i=this.delta(r,"+","1",e),s=this.delta(r,"+","2",e);return{begin:i,end:s.sql}}mod7(e){return this.d.hasModOperator?`(${e})%7`:`MOD(${e},7)`}moment(e){switch(e.moment){case"now":{const r=this.nowExpr();return{begin:r,end:r.sql}}case"literal":return this.expandLiteral(e);case"ago":case"from_now":{const r=this.nowDot(e.units),i=(0,vB.mkTemporal)(r,"timestamp"),s=this.delta(i,e.moment==="ago"?"-":"+",e.n,e.units);if(e.moment==="ago"&&e.n==="1")return{begin:s,end:r.sql};const o=Number(e.n)+(e.moment==="ago"?-1:1),u={...s,kids:{base:i,delta:this.n(o.toString())}};return{begin:s,end:this.d.sqlAlterTimeExpr(u)}}case"today":return this.thisUnit("day");case"yesterday":return this.lastUnit("day");case"tomorrow":return this.nextUnit("day");case"this":return this.thisUnit(e.units);case"last":return this.lastUnit(e.units);case"next":return this.nextUnit(e.units);case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":{const r=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].indexOf(e.moment),i=this.dayofWeek(this.nowExpr()).sql;if(e.which==="next"){const a=`${this.mod7(`${r}-(${i}-1)+6`)}+1`,l=this.delta(this.thisUnit("day").begin,"+",a,"day"),c=this.delta(this.thisUnit("day").begin,"+",`${a}+1`,"day");return{begin:l,end:c.sql}}const s=`${this.mod7(`(${i}-1)-${r}+6`)}+1`,o=this.delta(this.thisUnit("day").begin,"-",s,"day"),u=this.delta(this.thisUnit("day").begin,"-",`(${s})-1`,"day");return{begin:o,end:u.sql}}}}isIn(e,r,i){let s=">=",o="<",u="AND";return e&&(u="OR",s="<",o=">="),r=this.time(r),i=this.time(i),`${this.expr} ${s} ${r} ${u} ${this.expr} ${o} ${i}`}}I4.TemporalFilterCompiler=ttt,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FilterCompilers=void 0;const e=F4,r=I4;function i(u){return u.replace(/([%_\\])/g,"\\$1")}function s(u){return u===">"?"<=":u==="<"?">=":u===">="?"<":">"}function o(u,a){const l=` OR ${a} IS NULL`;return u.length===1?`${u[0]}${l}`:`(${u.join(" AND ")})${l}`}t.FilterCompilers={compile(u,a,l,c){if(a===null)return"true";if(u==="string"&&(0,e.isStringFilter)(a))return t.FilterCompilers.stringCompile(a,l,c);if(u==="number"&&(0,e.isNumberFilter)(a))return t.FilterCompilers.numberCompile(a,l,c);if(u==="boolean"&&(0,e.isBooleanFilter)(a))return t.FilterCompilers.booleanCompile(a,l,c);if((u==="date"||u==="timestamp")&&(0,e.isTemporalFilter)(a))return t.FilterCompilers.temporalCompile(a,l,c,u);throw new Error("INTERNAL ERROR: No filter compiler for "+u)},numberCompile(u,a,l){switch(u.operator){case"!=":case"=":{const c=u.operator==="="&&u.not||u.operator==="!="&&!u.not,f=u.values.join(", ");return u.values.length===1?c?`${a} != ${f} OR ${a} IS NULL`:`${a} = ${f}`:c?`${a} NOT IN (${f}) OR ${a} IS NULL`:`${a} IN (${f})`}case">":case"<":case">=":case"<=":return u.values.map(c=>`${a} ${u.operator} ${c}`).join(u.not?" AND ":" OR ");case"range":{let c=u.startOperator,f=u.endOperator,x=" AND ";return u.not&&(c=s(c),f=s(f),x=" OR "),`${a} ${c} ${u.startValue} ${x} ${a} ${f} ${u.endValue}`}case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"()":{const c="("+t.FilterCompilers.numberCompile(u.expr,a,l)+")";return u.not?`NOT ${c}`:c}case"and":case"or":return u.members.map(c=>t.FilterCompilers.numberCompile(c,a,l)).join(` ${u.operator.toUpperCase()} `)}},booleanCompile(u,a,l){switch(u.operator){case"false":return`${a} = false`;case"false_or_null":return`${a} IS NULL OR ${a} = false`;case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"true":return a}},stringCompile(u,a,l){switch(u.operator){case"null":return u.not?`${a} IS NOT NULL`:`${a} IS NULL`;case"empty":return u.not?`COALESCE(${a},'') != ''`:`COALESCE(${a},'') = ''`;case"=":{if(u.values.length===1){const f=u.not?"!=":"=",x=`${a} ${f} ${l.sqlLiteralString(u.values[0])}`;return u.not?`(${x} OR ${a} IS NULL)`:x}const c="("+u.values.map(f=>l.sqlLiteralString(f)).join(", ")+")";return u.not?`(${a} NOT IN ${c} OR ${a} IS NULL)`:`${a} IN ${c}`}case"()":{const c="("+t.FilterCompilers.stringCompile(u.expr,a,l)+")";return u.not?`not ${c}`:c}case"contains":{const c=u.values.map(f=>"%"+i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"starts":{const c=u.values.map(f=>i(f)+"%");return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"ends":{const c=u.values.map(f=>"%"+i(f));return u.not?o(c.map(f=>l.sqlLike("NOT LIKE",a,f)),a):c.map(f=>l.sqlLike("LIKE",a,f)).join(" OR ")}case"~":return u.not?o(u.escaped_values.map(c=>l.sqlLike("NOT LIKE",a,c)),a):u.escaped_values.map(c=>l.sqlLike("LIKE",a,c)).join(" OR ");case"and":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case"or":return u.members.map(f=>t.FilterCompilers.stringCompile(f,a,l)).join(" AND ");case",":{const c=[],f=[];let x=!1,h=!1,p=!1,m=!1;for(const E of u.members)switch(E.operator){case"or":case"and":case",":c.push(E);break;case"null":E.not?h=!0:x=!0;break;case"empty":E.not?(m=!0,h=!0):(p=!0,x=!0);break;default:(E.not?f:c).push(E)}if(p&&m||x&&h)return"false";let y="";if(c.length>0||x||p){m=!1,h=!1;const E=c.map(A=>t.FilterCompilers.stringCompile(A,a,l));p&&E.push(`${a} = ''`),x&&E.push(`${a} IS NULL`),y=E.join(" OR ")}let g="";if(f.length>0||m||h){const E=f.map(A=>t.FilterCompilers.stringCompile(A,a,l));m&&E.push(`${a} != ''`),h&&E.push(`${a} IS NOT NULL`),g=E.join(" AND ")}return y?g!==""?`(${y}) AND (${g})`:y:g!==""?g:"true"}}},temporalCompile(u,a,l,c){return new r.TemporalFilterCompiler(a,l,c).compile(u)}}}(fle),Object.defineProperty(Hs,"__esModule",{value:!0}),Hs.QueryModel=Hs.getResultStructDefForQuery=Hs.getResultStructDefForView=Hs.Segment=void 0;const ntt=g2,rtt=p2,itt=Xy,Ue=et,wn=kt,$4=A2,stt=gi,ott=fle,utt=F4;function Cle(t){return t.map(e=>encodeURIComponent(e)).join("/")}function SB(t){return`'${t}'`}function att(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function C2(t){const e=[];for(const r of t.fields.filter(Ue.fieldIsIntrinsic))e.push({type:r.type,sqlExpression:(0,Ue.getIdentifier)(r),rawName:(0,Ue.getIdentifier)(r),sqlOutputName:(0,Ue.getIdentifier)(r)});return e}class ltt extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class nE{constructor(e=!0,r){this.parent=r,this.withs=[],this.udfs=[],this.pdts=[],this.dependenciesToMaterialize={},this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,wn.indent)(`
1441
1441
  (${e})
1442
1442
  `))}addUDF(e,r,i){var s;let{sql:o,lastStageName:u}=e.combineStages(!0);if(u===void 0)throw new Error("Internal Error: no stage to combine");o+=r.sqlCreateFunctionCombineLastStage(u,C2(i),(s=i.resultMetadata)===null||s===void 0?void 0:s.orderBy);const a=`${r.udfPrefix}${this.root().udfs.length}`;return o=r.sqlCreateFunction(a,o),this.root().udfs.push(o),a}addMaterializedQuery(e,r,i){var s;const o=r.name;if(!o)throw new Error(`Source ${e} on a unnamed query that is tagged as materialize, only named queries can be materialized.`);const u=(s=r.location)===null||s===void 0?void 0:s.url;if(!u)throw new Error(`Trying to materialize query ${o}, but its path is not set.`);const a=(0,$4.buildQueryMaterializationSpec)(u,o,i);return this.root().dependenciesToMaterialize[a.id]=a,a.id}addPDT(e,r){const i=this.combineStages(!1).sql+this.withs[this.withs.length-1],o=`scratch.${e+(0,wn.generateHash)(i)}`;return this.root().pdts.push(r.sqlCreateTableAsSelect(o,i)),o}combineStages(e){if(!this.useCTE)return{sql:this.withs[0],lastStageName:this.withs[0]};let r=this.getName(0),i="WITH ",s="";for(let o=0;o<this.withs.length-(e?0:1);o++){const u=this.withs[o];if(r=this.getName(o),u===void 0)throw new Error(`Expected sql WITH to be present for stage ${r}.`);s+=`${i}${r} AS (
1443
1443
  ${(0,wn.indent)(u)})
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/render",
3
- "version": "0.0.250-dev250327174212",
3
+ "version": "0.0.250",
4
4
  "license": "MIT",
5
5
  "main": "dist/module/index.umd.js",
6
6
  "types": "dist/index.d.ts",
@@ -32,9 +32,9 @@
32
32
  "generate-flow": "ts-node ../../scripts/gen-flow.ts"
33
33
  },
34
34
  "dependencies": {
35
- "@malloydata/malloy": "^0.0.250-dev250327174212",
36
- "@malloydata/malloy-interfaces": "^0.0.250-dev250327174212",
37
- "@malloydata/malloy-tag": "^0.0.250-dev250327174212",
35
+ "@malloydata/malloy": "^0.0.250",
36
+ "@malloydata/malloy-interfaces": "^0.0.250",
37
+ "@malloydata/malloy-tag": "^0.0.250",
38
38
  "@tanstack/solid-virtual": "^3.10.4",
39
39
  "component-register": "^0.8.6",
40
40
  "lodash": "^4.17.20",
@@ -47,7 +47,7 @@
47
47
  "vega-lite": "^5.2.0"
48
48
  },
49
49
  "devDependencies": {
50
- "@malloydata/db-duckdb": "^0.0.250-dev250327174212",
50
+ "@malloydata/db-duckdb": "^0.0.250",
51
51
  "@storybook/addon-essentials": "^8.5.8",
52
52
  "@storybook/addon-interactions": "^8.5.8",
53
53
  "@storybook/addon-links": "^8.5.8",