@malloydata/render 0.0.236-dev250219154103 → 0.0.236-dev250221002909
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module/index.umd.js
CHANGED
|
@@ -1259,7 +1259,7 @@ ${r} ${s}: [`,o.length>0&&(i+=`
|
|
|
1259
1259
|
${r} `),i+="]")}return i}*walk(){for(const e of Object.keys(this.children)){const n=this.children[e];if(n instanceof cu)yield n;else for(const r of n)yield r}}varInfo(){let e="";for(const[n,r]of Object.entries(this))n!=="elementType"&&(typeof r=="boolean"?e+=r?` ${n}`:` !${n}`:(typeof r=="string"||typeof r=="number")&&(e+=` ${n}=${r}`));return e}internalError(e){return new Error(`INTERNAL ERROR IN TRANSLATION: ${e}`)}needs(e){for(const n of this.walk()){const r=n.needs(e);if(r)return r}}inExperiment(e,n=!1){var r;const i=(r=this.translator())===null||r===void 0?void 0:r.compilerFlags.tag("experimental");return i&&(i.bare()||i.has(e))?!0:(n||this.logError("experiment-not-enabled",{experimentId:e}),!1)}}Ge.MalloyElement=cu;class nme extends cu{constructor(){super(...arguments),this.elementType="unimplemented",this.reported=!1}}Ge.Unimplemented=nme;class OO extends cu{constructor(e){super(),this.name=e,this.elementType="modelEntryReference"}get refString(){return this.name}toString(){return this.refString}getNamed(){var e;return(e=this.modelEntry(this))===null||e===void 0?void 0:e.entry}}Ge.ModelEntryReference=OO;class rme extends cu{constructor(e){super(),this.id=e,this.elementType="experimentalExperiment"}execute(e){this.inExperiment(this.id)}}Ge.ExperimentalExperiment=rme;function oH(t){return t.execute!==void 0}Ge.isDocStatement=oH;function ime(t){return t instanceof F1||oH(t)}Ge.isDocStatementOrDocStatementList=ime;class uH extends cu{constructor(e){super(),this.elements=e,this.newContents()}newContents(){this.has({listOf:this.elements})}get list(){return this.elements}empty(){return this.elements.length===0}notEmpty(){return this.elements.length>0}push(...e){return this.elements.push(...e),this.newContents(),this.elements}needs(e){for(const n of this.elements){const r=n.needs(e);if(r)return r}}}Ge.ListOf=uH;class F1 extends uH{constructor(){super(...arguments),this.elementType="topLevelStatements",this.execCursor=0,this.isNoteableObj=!0,this.extendNote=sH.extendNoteMethod,this.noteCursor=0}executeList(e){for(;this.execCursor<this.elements.length;){const n=this.elements[this.execCursor];if(this.noteCursor===this.execCursor&&(this.note&&(0,sH.isNoteable)(n)&&n.extendNote(this.note),this.noteCursor+=1),n instanceof F1){const r=n.executeList(e);if(r)return r}else{const r=n.needs(e);if(r)return r;n.execute(e)}this.execCursor+=1}}}Ge.DocStatementList=F1;const sme="5a79a191-06bc-43cf-9b12-58741cd82970";function aH(t){const e=t.inherits?aH(t.inherits):[];return t.blockNotes&&e.push(...t.blockNotes.map(n=>n.text)),t.notes&&e.push(...t.notes.map(n=>n.text)),e}function ome(t){const e=aH(t).join("");return(0,tme.v5)(e,sme)}class DO extends cu{constructor(e){super(),this.elementType="document",this.globalNameSpace=new eme.GlobalNameSpace,this.documentModel={},this.queryList=[],this.didInitModel=!1,this.annotation={},this.experiments=new K1e.Tag({}),this.modelAnnotationTodoList=[],this.dialectNameSpaces=new Map,this.statements=new F1(e),this.has({statements:e})}initModelDef(e){if(!this.didInitModel){if(this.documentModel={},this.queryList=[],e){e.annotation&&(this.annotation.inherits=e.annotation);for(const[n,r]of Object.entries(e.contents)){const i=structuredClone(r);if((0,KA.isSourceDef)(i)||i.type==="query"||i.type==="function"){const s=e.exports.includes(n);this.setEntry(n,{entry:i,exported:s})}}}this.didInitModel=!0}}compile(){const e=this.statements.executeList(this),n=this.modelDef();if(e===void 0)for(const i of this.queryList)i.modelAnnotation===void 0&&n.annotation&&(i.modelAnnotation=n.annotation);if(n.annotation)for(const i of this.modelAnnotationTodoList)i.modelAnnotation||(i.modelAnnotation=n.annotation);return{modelDef:{...n,queryList:this.queryList},needs:e}}rememberToAddModelAnnotations(e){this.modelAnnotationTodoList.push(e)}hasAnnotation(){return this.annotation.notes&&this.annotation.notes.length>0||this.annotation.inherits!==void 0}currentModelAnnotation(){if(this.hasAnnotation()){const e={...this.annotation,id:""};return e.id=ome(e),e}}modelDef(){const e={name:"",exports:[],contents:{},queryList:[],dependencies:{}};this.hasAnnotation()&&(e.annotation=this.currentModelAnnotation());for(const n in this.documentModel){const r=this.documentModel[n].entry;if((0,KA.isSourceDef)(r)||r.type==="query"){this.documentModel[n].exported&&e.exports.push(n);const i=structuredClone(r);i.modelAnnotation===void 0&&e.annotation&&(i.modelAnnotation=e.annotation),e.contents[n]=i}}return e}getEntry(e){var n;return(n=this.globalNameSpace.getEntry(e))!==null&&n!==void 0?n:this.documentModel[e]}setEntry(e,n){this.globalNameSpace.getEntry(e)!==void 0&&this.logError("name-conflict-with-global",`Cannot redefine '${e}', which is in global namespace`),(0,KA.isSourceDef)(n.entry)&&this.checkExperimentalDialect(this,n.entry.dialect),this.documentModel[e]=n}checkExperimentalDialect(e,n){const r=this.translator();r&&r.firstReferenceToDialect(n)&&(0,iH.getDialect)(n).experimental&&!r.experimentalDialectEnabled(n)&&e.logError("experimental-dialect-not-enabled",{dialect:n})}getDialectNamespace(e){if(this.dialectNameSpaces.has(e))return this.dialectNameSpaces.get(e);const n=(0,iH.getDialect)(e),r=new Z1e.DialectNameSpace(n);return this.dialectNameSpaces.set(e,r),r}}Ge.Document=DO;var JA={},gd={},Ht={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.atomicDef=t.inspect=t.typeEq=t.typeIn=t.eq=t.any=t.anyAtomicT=t.aggregateBoolT=t.viewT=t.errorT=t.boolT=t.timestampT=t.dateT=t.stringT=t.numberT=t.nullT=void 0;const e=Qi,n=it;function r(c,f="scalar",d="constant"){return{type:c,expressionType:f,evalSpace:d,compositeFieldUsage:(0,n.emptyCompositeFieldUsage)()}}t.nullT=r("null"),t.numberT=r("number"),t.stringT=r("string"),t.dateT=r("date"),t.timestampT=r("timestamp"),t.boolT=r("boolean"),t.errorT=r("error"),t.viewT=r("turtle"),t.aggregateBoolT=r("boolean","aggregate"),t.anyAtomicT=[t.numberT,t.stringT,t.dateT,t.timestampT,t.boolT];function i(c,f){return c?f.find(h=>s(h,c))!==void 0:!1}t.any=i;function s(c,f){return f!==void 0&&e.TD.eq(c,f)&&c.expressionType===f.expressionType}t.eq=s;function o(c,f){return c?f.find(h=>u(h,c))!==void 0:!1}t.typeIn=o;function u(c,f,d=!1,h=!0){const p=e.TD.eq(c,f),g=d&&(c.type==="null"||f.type==="null"),m=h&&(c.type==="error"||f.type==="error");return p||g||m}t.typeEq=u;function a(...c){return c.map(d=>{if(d){let h=d.type;return(0,e.expressionIsScalar)(d.expressionType)||(h=`${d.expressionType} ${h}`),h}return"undefined"}).join(",")}t.inspect=a;function l(c){if(e.TD.isAtomic(c))switch(c.type){case"array":return(0,e.isRepeatedRecord)(c)?{type:"array",elementTypeDef:c.elementTypeDef,fields:c.fields}:{type:"array",elementTypeDef:c.elementTypeDef};case"record":return{type:"record",fields:c.fields};case"number":return c.numberType?{type:"number",numberType:c.numberType}:{type:"number"};case"sql native":return c.rawType?{type:"sql native",rawType:c.rawType}:{type:"sql native"};default:return{type:c.type}}return{type:"error"}}t.atomicDef=l})(Ht);var gr={},Ul={};Object.defineProperty(Ul,"__esModule",{value:!0}),Ul.canMakeEntry=Ul.SpaceEntry=void 0;class ume{}Ul.SpaceEntry=ume;function ame(t){return"makeEntry"in t}Ul.canMakeEntry=ame,Object.defineProperty(gr,"__esModule",{value:!0}),gr.SpaceField=void 0;const lme=Ul,cme=it;class fme extends lme.SpaceEntry{constructor(){super(...arguments),this.refType="field"}fieldTypeFromFieldDef(e){var n,r,i;const s=e.expressionType||"scalar";return{...e,expressionType:s,evalSpace:"input",compositeFieldUsage:(n=e.compositeFieldUsage)!==null&&n!==void 0?n:((r=e.e)===null||r===void 0?void 0:r.node)==="compositeField"?{fields:[(i=e.as)!==null&&i!==void 0?i:e.name],joinedUsage:{}}:(0,cme.emptyCompositeFieldUsage)()}}getQueryFieldDef(e){}fieldDef(){}constructorFieldDef(){}}gr.SpaceField=fme;var xme=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),dme=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),hme=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&xme(e,t,n);return dme(e,t),e};Object.defineProperty(gd,"__esModule",{value:!0}),gd.ViewField=void 0;const pme=it,mme=hme(Ht),gme=gr;class yme extends gme.SpaceField{constructor(e){super(),this.inSpace=e}typeDesc(){var e;const n=this.fieldDef();return{...mme.viewT,compositeFieldUsage:(e=n.compositeFieldUsage)!==null&&e!==void 0?e:(0,pme.emptyCompositeFieldUsage)()}}}gd.ViewField=yme,Object.defineProperty(JA,"__esModule",{value:!0}),JA.ASTViewField=void 0;const Eme=gd;class Ame extends Eme.ViewField{constructor(e,n,r){super(e),this.view=n,this.name=r,this.turtleDef=void 0}getQueryFieldDef(e){return this.view.getFieldDef(e)}fieldDef(){return this.turtleDef===void 0&&(this.turtleDef=this.view.getFieldDef(this.inSpace)),this.turtleDef}}JA.ASTViewField=Ame,Object.defineProperty(N1,"__esModule",{value:!0}),N1.ViewFieldDeclaration=void 0;const vme=Ge,_me=mr,Cme=pd,Sme=JA;class bme extends vme.MalloyElement{constructor(e,n){super({view:n}),this.name=e,this.view=n,this.elementType="view-field-declaration",this.isNoteableObj=!0,this.extendNote=_me.extendNoteMethod}makeEntry(e){const n=new Sme.ASTViewField(e,this,this.name);e.newEntry(this.name,this,n)}getName(){return this.name}getFieldDef(e){const{pipeline:n,annotation:r}=this.view.pipelineComp(e),i=(0,Cme.detectAndRemovePartialStages)(n,this);return{type:"turtle",name:this.name,pipeline:i,annotation:{...this.note,inherits:r},location:this.location}}}N1.ViewFieldDeclaration=bme;var Rn={};Object.defineProperty(Rn,"__esModule",{value:!0}),Rn.LegalRefinementStage=Rn.QueryClass=void 0;var lH;(function(t){t.Index="index",t.Project="project",t.Grouping="grouping"})(lH||(Rn.QueryClass=lH={}));var cH;(function(t){t[t.Single=0]="Single",t[t.Head=1]="Head",t[t.Tail=2]="Tail"})(cH||(Rn.LegalRefinementStage=cH={}));var Tme=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),Rme=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ome=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&Tme(e,t,n);return Rme(e,t),e};Object.defineProperty(D1,"__esModule",{value:!0}),D1.NestFieldDeclaration=void 0;const Dme=Ome(We),Nme=pd,wme=N1,fH=Rn;class Fme extends wme.ViewFieldDeclaration{constructor(){super(...arguments),this.elementType="nest-field-declaration",this.queryRefinementStage=fH.LegalRefinementStage.Single,this.forceQueryClass=fH.QueryClass.Grouping,this.turtleDef=void 0}queryExecute(e){e.resultFS.pushFields(this)}getFieldDef(e){if(this.turtleDef)return this.turtleDef;if(e.isQueryFieldSpace()){const{pipeline:n,annotation:r}=this.view.pipelineComp(e,e.outputSpace()),i=n[0]&&Dme.isQuerySegment(n[0])?n[0].compositeFieldUsage:void 0,s=(0,Nme.detectAndRemovePartialStages)(n,this);return this.turtleDef={type:"turtle",name:this.name,pipeline:s,annotation:{...this.note,inherits:r},location:this.location,compositeFieldUsage:i},this.turtleDef}throw this.internalError("Unexpected namespace for nest")}}D1.NestFieldDeclaration=Fme;var yd={},Fr={};Object.defineProperty(Fr,"__esModule",{value:!0}),Fr.ErrorFactory=void 0;const xH="~malformed~";class NO{static get structDef(){return{type:"table",name:xH,dialect:"~malformed~",connection:"~unknown~",tablePath:"//undefined_error_table_path",fields:[],errorFactory:!0}}static get joinDef(){return{type:"table",name:xH,dialect:"~malformed~",connection:"~unknown~",tablePath:"//undefined_error_table_path",fields:[],join:"one",matrixOperation:"left",errorFactory:!0}}static didCreate(e){return e.type==="table"&&"errorFactory"in e}static get query(){return{structRef:NO.structDef,pipeline:[]}}static get reduceSegment(){return{type:"reduce",queryFields:[]}}static get projectSegment(){return{type:"project",queryFields:[]}}static get indexSegment(){return{type:"index",indexFields:[]}}}Fr.ErrorFactory=NO,Object.defineProperty(yd,"__esModule",{value:!0}),yd.DefineSourceList=yd.DefineSource=void 0;const Lme=Fr,dH=Ge,Ime=mr;class Bme extends dH.MalloyElement{constructor(e,n,r,i){super(),this.name=e,this.sourceExpr=n,this.exported=r,this.parameters=i,this.elementType="defineSource",this.isNoteableObj=!0,this.extendNote=Ime.extendNoteMethod,n&&this.has({sourceExpr:n}),i&&this.has({parameters:i})}execute(e){var n;if(e.modelEntry(this.name))this.logError("source-definition-name-conflict",`Cannot redefine '${this.name}'`);else{const r=(n=this.sourceExpr)===null||n===void 0?void 0:n.getSource();if(r===void 0)return;const i=this.deduplicatedParameters(),s=r.withParameters(void 0,this.parameters);if(this.validateParameterShadowing(i,s),Lme.ErrorFactory.didCreate(s))return;const o={...s,as:this.name,location:this.location};this.note&&(o.annotation=s.annotation?{...this.note,inherits:s.annotation}:this.note),e.setEntry(this.name,{entry:o,exported:this.exported})}}deduplicatedParameters(){if(this.parameters===void 0)return[];const e={},n=[];for(const r of this.parameters)r.name in e&&r.logError("parameter-name-conflict",`Cannot redefine parameter \`${r.name}\``),e[r.name]=!0,n.push(r);return n}validateParameterShadowing(e,n){for(const r of e)n.fields.find(i=>{var s;return((s=i.as)!==null&&s!==void 0?s:i.name)===r.name})&&r.logError("parameter-shadowing-field",`Illegal shadowing of field \`${r.name}\` by parameter with the same name`)}}yd.DefineSource=Bme;class $me extends dH.DocStatementList{constructor(e){super(e),this.elementType="defineSources"}}yd.DefineSourceList=$me;var Ed={};Object.defineProperty(Ed,"__esModule",{value:!0}),Ed.DefineQueryList=Ed.DefineQuery=void 0;const hH=Ge,kme=mr;class Pme extends hH.MalloyElement{constructor(e,n){super({queryExpr:n}),this.name=e,this.queryExpr=n,this.elementType="defineQuery",this.isNoteableObj=!0,this.extendNote=kme.extendNoteMethod}execute(e){if(e.getEntry(this.name)){this.logError("query-definition-name-conflict",`'${this.name}' is already defined, cannot redefine`);return}const r=this.queryExpr.getQuery();if(!r){this.queryExpr.sqLog("query-definition-from-non-query","Cannot define a query from this expression");return}const i={...r.query(),type:"query",name:this.name,location:this.location};this.note&&(i.annotation=i.annotation?{...this.note,inherits:i.annotation}:this.note),e.setEntry(this.name,{entry:i,exported:!0})}}Ed.DefineQuery=Pme;class Mme extends hH.DocStatementList{constructor(e){super(e),this.elementType="defineQueries"}}Ed.DefineQueryList=Mme;var Os={};Object.defineProperty(Os,"__esModule",{value:!0}),Os.Source=void 0;const Ume=Ge;class jme extends Ume.MalloyElement{structRef(e){return{structRef:this.getSourceDef(e)}}packParameters(e){if(e===void 0)return;const n={};for(const r of e){const i=r.parameter();n[i.name]=i}return n}withParameters(e,n){return{...this.getSourceDef(e),parameters:this.packParameters(n)}}}Os.Source=jme;var L1={},Ad={},XA={},jl={};Object.defineProperty(jl,"__esModule",{value:!0}),jl.mergeFields=jl.nameFromDef=void 0;function wO(t){var e;return t.type==="fieldref"?t.path[t.path.length-1]:(e=t.as)!==null&&e!==void 0?e:t.name}jl.nameFromDef=wO;function qme(t,e){if(t===void 0)return e;const n=new Set(e.map(i=>wO(i))),r=t.filter(i=>!n.has(wO(i)));return r.push(...e),r}jl.mergeFields=qme;var I1={},yr={},fu={},Hme=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),zme=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Qme=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&Hme(e,t,n);return zme(e,t),e};Object.defineProperty(fu,"__esModule",{value:!0}),fu.DefinedParameter=fu.AbstractParameter=fu.SpaceParam=void 0;const Gme=Ul,pH=Qme(Ht),mH=it;class FO extends Gme.SpaceEntry{constructor(){super(...arguments),this.refType="parameter"}}fu.SpaceParam=FO;class Wme extends FO{constructor(e){super(),this.astParam=e,this._parameter=void 0}parameter(){return this._parameter!==void 0?this._parameter:(this._parameter=this.astParam.parameter(),this._parameter)}typeDesc(){return{...pH.atomicDef(this.parameter()),expressionType:"scalar",evalSpace:"constant",compositeFieldUsage:(0,mH.emptyCompositeFieldUsage)()}}entryType(){return this.parameter().type}}fu.AbstractParameter=Wme;class Vme extends FO{constructor(e){super(),this.paramDef=e}parameter(){return this.paramDef}typeDesc(){return{...pH.atomicDef(this.paramDef),expressionType:"scalar",evalSpace:"input",compositeFieldUsage:(0,mH.emptyCompositeFieldUsage)()}}entryType(){return this.paramDef.type}}fu.DefinedParameter=Vme;var Vc={},Yme=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),Kme=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Jme=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&Yme(e,t,n);return Kme(e,t),e};Object.defineProperty(Vc,"__esModule",{value:!0}),Vc.StructSpaceFieldBase=void 0;const gH=it,Xme=We,Zme=Jme(Ht),ege=gr;class tge extends ege.SpaceField{constructor(e){super(),this.structDef=e}fieldDef(){return this.structDef}get joinPathElement(){return{name:this.structDef.as||this.structDef.name,joinType:this.structDef.join,joinElementType:this.structDef.type}}typeDesc(){var e,n;return(0,Xme.isSourceDef)(this.structDef)?{type:this.structDef.type,evalSpace:"input",expressionType:"scalar",compositeFieldUsage:(e=this.structDef.onCompositeFieldUsage)!==null&&e!==void 0?e:(0,gH.emptyCompositeFieldUsage)()}:{...Zme.atomicDef(this.structDef),evalSpace:"input",expressionType:"scalar",compositeFieldUsage:(n=this.structDef.onCompositeFieldUsage)!==null&&n!==void 0?n:(0,gH.emptyCompositeFieldUsage)()}}}Vc.StructSpaceFieldBase=tge;var B1={};Object.defineProperty(B1,"__esModule",{value:!0}),B1.ColumnSpaceField=void 0;const nge=gr;class rge extends nge.SpaceField{constructor(e){super(),this.sourceFieldDef=e}fieldDef(){return this.sourceFieldDef}typeDesc(){return this.fieldTypeFromFieldDef(this.sourceFieldDef)}constructorFieldDef(){return this.sourceFieldDef}}B1.ColumnSpaceField=rge;var ZA={};Object.defineProperty(ZA,"__esModule",{value:!0}),ZA.IRViewField=void 0;const ige=gd;class sge extends ige.ViewField{constructor(e,n){super(e),this.turtleDef=n}rename(e){this.turtleDef={...this.turtleDef,as:e}}fieldDef(){return this.turtleDef}constructorFieldDef(){return this.turtleDef}getQueryFieldDef(e){return this.fieldDef()}}ZA.IRViewField=sge,Object.defineProperty(yr,"__esModule",{value:!0}),yr.StaticSourceSpace=yr.StructSpaceField=yr.StaticSpace=void 0;const oge=zo,vd=We,uge=fu,age=gr,$1=Vc,lge=B1,cge=ZA;class LO{constructor(e,n){this.type="fieldSpace",this.fromStruct=e,this.structDialect=n}dialectName(){return this.structDialect}dialectObj(){try{return(0,oge.getDialect)(this.structDialect)}catch{return}}defToSpaceField(e){return(0,vd.isJoined)(e)?new IO(e,this.structDialect):(0,vd.isTurtle)(e)?new cge.IRViewField(this,e):new lge.ColumnSpaceField(e)}get map(){if(this.memoMap===void 0){this.memoMap={};for(const e of this.fromStruct.fields){const n=e.as||e.name;this.memoMap[n]=this.defToSpaceField(e)}if((0,vd.isSourceDef)(this.fromStruct)&&this.fromStruct.parameters)for(const[e,n]of Object.entries(this.fromStruct.parameters))e in this.memoMap||(this.memoMap[e]=new uge.DefinedParameter(n))}return this.memoMap}isProtectedAccessSpace(){return!1}dropEntries(){this.memoMap={}}dropEntry(e){delete this.map[e]}entry(e){return this.map[e]}setEntry(e,n){this.map[e]=n}entries(){return Object.entries(this.map)}structDef(){return this.fromStruct}emptyStructDef(){const e={...this.fromStruct};return(0,vd.isSourceDef)(e)&&(e.parameters={}),e.fields=[],e}lookup(e){const n=e[0],r=e.slice(1);let i=this.entry(n.refString);if(!i)return{error:{message:`'${n}' is not defined`,code:"field-not-found"},found:i};if(i instanceof age.SpaceField){const o=i.fieldDef();if(o&&(!(i instanceof $1.StructSpaceFieldBase)&&(0,vd.isJoined)(o)&&(i=new IO(o,this.structDialect)),n.addReference({type:i instanceof $1.StructSpaceFieldBase?"joinReference":"fieldReference",definition:o,location:n.location,text:n.refString})),o!=null&&o.accessModifier&&!(this.isProtectedAccessSpace()&&o.accessModifier==="internal"&&e.length===1))return{error:{message:`'${n}' is ${o==null?void 0:o.accessModifier}`,code:"field-not-accessible"},found:void 0}}const s=i instanceof $1.StructSpaceFieldBase?[{...i.joinPathElement,name:n.refString}]:[];if(r.length){if(i instanceof $1.StructSpaceFieldBase){const o=i.fieldSpace.lookup(r);return o.found?{...o,joinPath:[...s,...o.joinPath]}:o}return{error:{message:`'${n}' cannot contain a '${r[0]}'`,code:"invalid-property-access-in-field-reference"},found:void 0}}return{found:i,error:void 0,joinPath:s,isOutputField:!1}}isQueryFieldSpace(){return!1}}yr.StaticSpace=LO;class IO extends $1.StructSpaceFieldBase{constructor(e,n){super(e),this.forDialect=n}get fieldSpace(){return(0,vd.isSourceDef)(this.structDef)?new yH(this.structDef):new LO(this.structDef,this.forDialect)}}yr.StructSpaceField=IO;class yH extends LO{constructor(e){super(e,e.dialect),this.source=e}structDef(){return this.source}emptyStructDef(){const e={...this.source};return e.parameters={},e.fields=[],e}}yr.StaticSourceSpace=yH,Object.defineProperty(I1,"__esModule",{value:!0}),I1.JoinSpaceField=void 0;const fge=yr;class xge extends fge.StructSpaceField{constructor(e,n,r){super(n.structDef(e),r),this.parameterSpace=e,this.join=n}}I1.JoinSpaceField=xge;var _d={};Object.defineProperty(_d,"__esModule",{value:!0}),_d.ParameterSpace=void 0;const dge=fu;class hge{constructor(e){this.type="fieldSpace",this._map={};for(const n of e)this._map[n.name]=new dge.AbstractParameter(n)}structDef(){throw new Error("Parameter space does not have a structDef")}emptyStructDef(){throw new Error("Parameter space does not have an emptyStructDef")}entry(e){return this._map[e]}lookup(e){const n=e[0];if(n===void 0)return{error:{message:"Invalid reference",code:"invalid-parameter-reference"},found:void 0};const r=this.entry(n.refString);return r===void 0?{error:{message:`\`${n}\` is not defined`,code:"parameter-not-found"},found:void 0}:e.length>1?{error:{message:`\`${n}\` cannot contain a \`${e.slice(1).join(".")}\``,code:"invalid-parameter-reference"},found:void 0}:{found:r,error:void 0,joinPath:[],isOutputField:!1}}entries(){return Object.entries(this._map)}dialectName(){return"~parameter-space-unknown-dialect~"}dialectObj(){}isQueryFieldSpace(){return!1}isProtectedAccessSpace(){return!1}}_d.ParameterSpace=hge;var pge=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),mge=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),gge=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&pge(e,t,n);return mge(e,t),e};Object.defineProperty(XA,"__esModule",{value:!0}),XA.DynamicSpace=void 0;const yge=gge(We),Ege=jl,Age=Fr,vge=gr,_ge=I1,Cge=gd,EH=fu,Sge=yr,bge=Vc,Tge=_d;class Rge extends Sge.StaticSpace{constructor(e){super(structuredClone(e),e.dialect),this.complete=!1,this.parameters=[],this.newAccessModifiers=new Map,this.newNotes=new Map,this.fromSource=e,this.sourceDef=void 0}setEntry(e,n){if(this.complete)throw new Error("Space already final");super.setEntry(e,n)}addParameters(e){for(const n of e)this.entry(n.name)===void 0&&(this.parameters.push(n),this.setEntry(n.name,new EH.AbstractParameter(n)));return this}parameterSpace(){return new Tge.ParameterSpace(this.parameters)}newEntry(e,n,r){if(this.entry(e)){n.logError("definition-name-conflict",`Cannot redefine '${e}'`);return}this.setEntry(e,r)}renameEntry(e,n,r){this.dropEntry(e),this.setEntry(n,r)}addFieldDef(e){this.setEntry((0,Ege.nameFromDef)(e),this.defToSpaceField(e))}setTimezone(e){this.newTimezone=e}structDef(){if(this.complete=!0,this.sourceDef===void 0){const e={};for(const[a,l]of this.entries())l instanceof EH.SpaceParam&&(e[a]=l.parameter());this.sourceDef={...this.fromSource,fields:[]},this.sourceDef.parameters=e;const n=new Map,r=[],i=[],s=[];for(const[a,l]of this.entries())l instanceof bge.StructSpaceFieldBase?i.push([a,l]):l instanceof Cge.ViewField?s.push([a,l]):l instanceof vge.SpaceField&&r.push([a,l]);const o=[...r,...i,...s],u=this.parameterSpace();for(const[a,l]of o)if(l instanceof _ge.JoinSpaceField){const c=l.join.structDef(u);Age.ErrorFactory.didCreate(c)||(n.set(a,this.sourceDef.fields.length),this.sourceDef.fields.push(c),l.join.fixupJoinOn(this,c))}else{const c=l.fieldDef();c&&(n.set(a,this.sourceDef.fields.length),this.sourceDef.fields.push(c))}for(const[a,l]of this.newAccessModifiers){const c=this.sourceDef.fields.findIndex(f=>{var d;return(d=f.as)!==null&&d!==void 0?d:f.name===a});if(c===-1)throw new Error(`Can't find field '${a}' to set access modifier`);l==="public"?delete this.sourceDef.fields[c].accessModifier:this.sourceDef.fields[c]={...this.sourceDef.fields[c],accessModifier:l}}for(const[a,l]of this.newNotes){const c=this.sourceDef.fields.findIndex(d=>{var h;return(h=d.as)!==null&&h!==void 0?h:d.name===a});if(c===-1)throw new Error(`Can't find field '${a}' to set access modifier`);const f=this.sourceDef.fields[c];this.sourceDef.fields[c]={...f,annotation:{...l,inherits:f.annotation}}}}return this.newTimezone&&yge.isSourceDef(this.sourceDef)&&(this.sourceDef.queryTimezone=this.newTimezone),this.sourceDef}emptyStructDef(){const e={...this.fromSource};return e.fields=[],e}}XA.DynamicSpace=Rge;var k1={};Object.defineProperty(k1,"__esModule",{value:!0}),k1.RenameSpaceField=void 0;const Oge=gr;class Dge extends Oge.SpaceField{constructor(e,n,r){super(),this.otherField=e,this.newName=n,this.location=r}fieldDef(){const e=this.otherField.fieldDef();if(e!==void 0)return{...e,as:this.newName,location:this.location}}typeDesc(){return this.otherField.typeDesc()}}k1.RenameSpaceField=Dge,Object.defineProperty(Ad,"__esModule",{value:!0}),Ad.RefinedSpace=void 0;const Nge=XA,wge=Ul,Fge=k1,Lge=gr;class BO extends Nge.DynamicSpace{static filteredFrom(e,n,r,i,s){const o=new BO(e),u=new Map;for(const a of i??[])u.has(a.name.refString)?a.name.logError("already-renamed",`${a.name.refString} already renamed to ${a.as}`):u.set(a.name.refString,{as:a.as,location:a.location,logTo:a.name});if(r!==void 0){const a=o.entries();o.dropEntries();for(const[l,c]of a)if(r.has(l)){const f=u.get(l);f?c instanceof Lge.SpaceField?o.setEntry(f.as,new Fge.RenameSpaceField(c,f.as,f.location)):f.logTo.logError("cannot-rename-non-field",`Cannot rename \`${l}\` which is not a field`):o.setEntry(l,c)}n!==void 0&&n.logError("accept-except-not-compatible-with-include","Can't use `accept:` or `except:` with `include`")}else if(n){const a=n.refs.list,l=o.entries();for(const c of a)l.find(([d])=>d===c.refString)===void 0&&(s!=null&&s.entry(c.refString)?c.logError(`${n.edit}-parameter`,`Illegal \`${n.edit}:\` of parameter`):c.logError("field-list-edit-not-found",`\`${c.refString}\` is not defined`));o.dropEntries();for(const[c,f]of l){const d=!!a.find(p=>p.refString===c),h=n.edit==="accept";d===h&&o.setEntry(c,f)}}return o}pushFields(...e){for(const n of e)this.addField(n)}addField(e){(0,wge.canMakeEntry)(e)?e.makeEntry(this):e.logError("unexpected-element-type",`Internal error, ${e.elementType} not expected in this context`)}addAccessModifiers(e){for(const[n,r]of e)this.newAccessModifiers.set(n,r)}addNotes(e){for(const[n,r]of e)this.newNotes.set(n,r)}isProtectedAccessSpace(){return!0}}Ad.RefinedSpace=BO;var ql={},ns={};Object.defineProperty(ns,"__esModule",{value:!0}),ns.DefinitionList=void 0;const Ige=Ge,AH=mr;class Bge extends Ige.ListOf{constructor(){super(...arguments),this.isNoteableObj=!0}extendNote(e){(0,AH.extendNoteHelper)(this,e),this.distributeAnnotation()}distributeAnnotation(){if(this.note)for(const e of this.elements)(0,AH.isNoteable)(e)&&e.extendNote(this.note)}newContents(){super.newContents(),this.distributeAnnotation()}}ns.DefinitionList=Bge,Object.defineProperty(ql,"__esModule",{value:!0}),ql.DeclareFields=void 0;const $ge=ns,kge=Rn;class Pge extends $ge.DefinitionList{constructor(e,n){super(e),this.accessModifier=n,this.elementType="declareFields",this.queryRefinementStage=kge.LegalRefinementStage.Single,this.forceQueryClass=void 0}queryExecute(e){for(const n of this.list)e.inputFS.extendSource(n)}get delarationNames(){return this.list.map(e=>e.defineName)}}ql.DeclareFields=Pge;var xu={};Object.defineProperty(xu,"__esModule",{value:!0}),xu.Filter=xu.FilterElement=void 0;const vH=We,Mge=lu,_H=Ge,$O=Rn;class Uge extends _H.MalloyElement{constructor(e,n){super({expr:e}),this.expr=e,this.exprSrc=n,this.elementType="filterElement"}filterCondition(e){const n=this.expr.getExpression(e);return n.type!=="boolean"?(this.expr.logError("non-boolean-filter","Filter expression must have boolean value"),{node:"filterCondition",code:this.exprSrc,e:{node:"false"},expressionType:"scalar",compositeFieldUsage:n.compositeFieldUsage}):{node:"filterCondition",code:this.exprSrc,e:n.value,expressionType:n.expressionType,compositeFieldUsage:n.compositeFieldUsage}}}xu.FilterElement=Uge;let jge=class extends _H.ListOf{constructor(){super(...arguments),this.elementType="filter",this.forceQueryClass=void 0,this.queryRefinementStage=$O.LegalRefinementStage.Head}set having(e){this.elementType=e?"having":"where",this.havingClause=e,this.queryRefinementStage=e?$O.LegalRefinementStage.Tail:$O.LegalRefinementStage.Head}checkedFilterCondition(e,n){const r=n.filterCondition(e);if(this.havingClause!==void 0){const i=(0,vH.expressionIsAggregate)(r.expressionType),s=(0,vH.expressionIsAnalytic)(r.expressionType);if(this.havingClause){if(s){n.logError("analytic-in-having","Analytic expressions are not allowed in `having:`");return}}else if(s){n.logError("analytic-in-where","Analytic expressions are not allowed in `where:`");return}else i&&n.logError("aggregate-in-where","Aggregate expressions are not allowed in `where:`; use `having:`")}return r}getFilterList(e){return this.list.map(n=>this.checkedFilterCondition(e,n)).filter(Mge.isNotUndefined)}queryExecute(e){const n=this.havingClause?e.resultFS:e.inputFS;for(const r of this.list){const i=this.checkedFilterCondition(n,r);i!==void 0&&(e.filters.push(i),e.resultFS.addCompositeFieldUserFromFilter(i,r))}}};xu.Filter=jge;var Cd={};Object.defineProperty(Cd,"__esModule",{value:!0}),Cd.FieldListEdit=void 0;const qge=Ge;class Hge extends qge.MalloyElement{constructor(e,n){super({refs:n}),this.edit=e,this.refs=n,this.elementType="fieldListEdit"}}Cd.FieldListEdit=Hge;var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0}),Sd.PrimaryKey=void 0;const zge=Ge;class Qge extends zge.MalloyElement{constructor(e){super({field:e}),this.field=e,this.elementType="primary key"}}Sd.PrimaryKey=Qge;var bd={};Object.defineProperty(bd,"__esModule",{value:!0}),bd.Views=void 0;const Gge=ns;class Wge extends Gge.DefinitionList{constructor(e,n){super(e),this.accessModifier=n,this.elementType="turtleDefList"}get delarationNames(){return this.list.map(e=>e.name)}}bd.Views=Wge;var Td={};class Yc extends Error{}class Vge extends Yc{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class Yge extends Yc{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class Kge extends Yc{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class P1 extends Yc{}class CH extends Yc{constructor(e){super(`Invalid unit ${e}`)}}class Ds extends Yc{}class Hl extends Yc{constructor(){super("Zone is an abstract class")}}const ke="numeric",lo="short",rs="long",kO={year:ke,month:ke,day:ke},SH={year:ke,month:lo,day:ke},Jge={year:ke,month:lo,day:ke,weekday:lo},bH={year:ke,month:rs,day:ke},TH={year:ke,month:rs,day:ke,weekday:rs},RH={hour:ke,minute:ke},OH={hour:ke,minute:ke,second:ke},DH={hour:ke,minute:ke,second:ke,timeZoneName:lo},NH={hour:ke,minute:ke,second:ke,timeZoneName:rs},wH={hour:ke,minute:ke,hourCycle:"h23"},FH={hour:ke,minute:ke,second:ke,hourCycle:"h23"},LH={hour:ke,minute:ke,second:ke,hourCycle:"h23",timeZoneName:lo},IH={hour:ke,minute:ke,second:ke,hourCycle:"h23",timeZoneName:rs},BH={year:ke,month:ke,day:ke,hour:ke,minute:ke},$H={year:ke,month:ke,day:ke,hour:ke,minute:ke,second:ke},kH={year:ke,month:lo,day:ke,hour:ke,minute:ke},PH={year:ke,month:lo,day:ke,hour:ke,minute:ke,second:ke},Xge={year:ke,month:lo,day:ke,weekday:lo,hour:ke,minute:ke},MH={year:ke,month:rs,day:ke,hour:ke,minute:ke,timeZoneName:lo},UH={year:ke,month:rs,day:ke,hour:ke,minute:ke,second:ke,timeZoneName:lo},jH={year:ke,month:rs,day:ke,weekday:rs,hour:ke,minute:ke,timeZoneName:rs},qH={year:ke,month:rs,day:ke,weekday:rs,hour:ke,minute:ke,second:ke,timeZoneName:rs};function Ct(t){return typeof t>"u"}function Kc(t){return typeof t=="number"}function ev(t){return typeof t=="number"&&t%1===0}function Zge(t){return typeof t=="string"}function e3e(t){return Object.prototype.toString.call(t)==="[object Date]"}function HH(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function t3e(t){return Array.isArray(t)?t:[t]}function zH(t,e,n){if(t.length!==0)return t.reduce((r,i)=>{const s=[e(i),i];return r&&n(r[0],s[0])===r[0]?r:s},null)[1]}function n3e(t,e){return e.reduce((n,r)=>(n[r]=t[r],n),{})}function Rd(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function va(t,e,n){return ev(t)&&t>=e&&t<=n}function r3e(t,e){return t-e*Math.floor(t/e)}function wn(t,e=2){const n=t<0;let r;return n?r="-"+(""+-t).padStart(e,"0"):r=(""+t).padStart(e,"0"),r}function zl(t){if(!(Ct(t)||t===null||t===""))return parseInt(t,10)}function Jc(t){if(!(Ct(t)||t===null||t===""))return parseFloat(t)}function PO(t){if(!(Ct(t)||t===null||t==="")){const e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function MO(t,e,n=!1){const r=10**e;return(n?Math.trunc:Math.round)(t*r)/r}function M1(t){return t%4===0&&(t%100!==0||t%400===0)}function U1(t){return M1(t)?366:365}function tv(t,e){const n=r3e(e-1,12)+1,r=t+(e-n)/12;return n===2?M1(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function UO(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function nv(t){const e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,n=t-1,r=(n+Math.floor(n/4)-Math.floor(n/100)+Math.floor(n/400))%7;return e===4||r===3?53:52}function jO(t){return t>99?t:t>60?1900+t:2e3+t}function QH(t,e,n,r=null){const i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(s.timeZone=r);const o={timeZoneName:e,...s},u=new Intl.DateTimeFormat(n,o).formatToParts(i).find(a=>a.type.toLowerCase()==="timezonename");return u?u.value:null}function rv(t,e){let n=parseInt(t,10);Number.isNaN(n)&&(n=0);const r=parseInt(e,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function GH(t){const e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ds(`Invalid unit value ${t}`);return e}function iv(t,e){const n={};for(const r in t)if(Rd(t,r)){const i=t[r];if(i==null)continue;n[e(r)]=GH(i)}return n}function j1(t,e){const n=Math.trunc(Math.abs(t/60)),r=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${wn(n,2)}:${wn(r,2)}`;case"narrow":return`${i}${n}${r>0?`:${r}`:""}`;case"techie":return`${i}${wn(n,2)}${wn(r,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function sv(t){return n3e(t,["hour","minute","second","millisecond"])}const WH=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/,i3e=["January","February","March","April","May","June","July","August","September","October","November","December"],VH=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],s3e=["J","F","M","A","M","J","J","A","S","O","N","D"];function YH(t){switch(t){case"narrow":return[...s3e];case"short":return[...VH];case"long":return[...i3e];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const KH=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],JH=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],o3e=["M","T","W","T","F","S","S"];function XH(t){switch(t){case"narrow":return[...o3e];case"short":return[...JH];case"long":return[...KH];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const ZH=["AM","PM"],u3e=["Before Christ","Anno Domini"],a3e=["BC","AD"],l3e=["B","A"];function ez(t){switch(t){case"narrow":return[...l3e];case"short":return[...a3e];case"long":return[...u3e];default:return null}}function c3e(t){return ZH[t.hour<12?0:1]}function f3e(t,e){return XH(e)[t.weekday-1]}function x3e(t,e){return YH(e)[t.month-1]}function d3e(t,e){return ez(e)[t.year<0?0:1]}function h3e(t,e,n="always",r=!1){const i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(n==="auto"&&s){const f=t==="days";switch(e){case 1:return f?"tomorrow":`next ${i[t][0]}`;case-1:return f?"yesterday":`last ${i[t][0]}`;case 0:return f?"today":`this ${i[t][0]}`}}const o=Object.is(e,-0)||e<0,u=Math.abs(e),a=u===1,l=i[t],c=r?a?l[1]:l[2]||l[1]:a?i[t][0]:t;return o?`${u} ${c} ago`:`in ${u} ${c}`}function tz(t,e){let n="";for(const r of t)r.literal?n+=r.val:n+=e(r.val);return n}const p3e={D:kO,DD:SH,DDD:bH,DDDD:TH,t:RH,tt:OH,ttt:DH,tttt:NH,T:wH,TT:FH,TTT:LH,TTTT:IH,f:BH,ff:kH,fff:MH,ffff:jH,F:$H,FF:PH,FFF:UH,FFFF:qH};class Si{static create(e,n={}){return new Si(e,n)}static parseFormat(e){let n=null,r="",i=!1;const s=[];for(let o=0;o<e.length;o++){const u=e.charAt(o);u==="'"?(r.length>0&&s.push({literal:i,val:r}),n=null,r="",i=!i):i||u===n?r+=u:(r.length>0&&s.push({literal:!1,val:r}),r=u,n=u)}return r.length>0&&s.push({literal:i,val:r}),s}static macroTokenToFormatOpts(e){return p3e[e]}constructor(e,n){this.opts=n,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...n}).format()}formatDateTime(e,n={}){return this.loc.dtFormatter(e,{...this.opts,...n}).format()}formatDateTimeParts(e,n={}){return this.loc.dtFormatter(e,{...this.opts,...n}).formatToParts()}resolvedOptions(e,n={}){return this.loc.dtFormatter(e,{...this.opts,...n}).resolvedOptions()}num(e,n=0){if(this.opts.forceSimple)return wn(e,n);const r={...this.opts};return n>0&&(r.padTo=n),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(e,n){const r=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(h,p)=>this.loc.extract(e,h,p),o=h=>e.isOffsetFixed&&e.offset===0&&h.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,h.format):"",u=()=>r?c3e(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),a=(h,p)=>r?x3e(e,h):s(p?{month:h}:{month:h,day:"numeric"},"month"),l=(h,p)=>r?f3e(e,h):s(p?{weekday:h}:{weekday:h,month:"long",day:"numeric"},"weekday"),c=h=>{const p=Si.macroTokenToFormatOpts(h);return p?this.formatWithSystemDefault(e,p):h},f=h=>r?d3e(e,h):s({era:h},"era"),d=h=>{switch(h){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return u();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return a("short",!0);case"LLLL":return a("long",!0);case"LLLLL":return a("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return a("short",!1);case"MMMM":return a("long",!1);case"MMMMM":return a("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return c(h)}};return tz(Si.parseFormat(n),d)}formatDurationFromString(e,n){const r=a=>{switch(a[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=a=>l=>{const c=r(l);return c?this.num(a.get(c),l.length):l},s=Si.parseFormat(n),o=s.reduce((a,{literal:l,val:c})=>l?a:a.concat(c),[]),u=e.shiftTo(...o.map(r).filter(a=>a));return tz(s,i(u))}}class co{constructor(e,n){this.reason=e,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}let Od=class{get type(){throw new Hl}get name(){throw new Hl}get ianaName(){return this.name}get isUniversal(){throw new Hl}offsetName(e,n){throw new Hl}formatOffset(e,n){throw new Hl}offset(e){throw new Hl}equals(e){throw new Hl}get isValid(){throw new Hl}},qO=null;class ov extends Od{static get instance(){return qO===null&&(qO=new ov),qO}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:n,locale:r}){return QH(e,n,r)}formatOffset(e,n){return j1(this.offset(e),n)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}let uv={};function m3e(t){return uv[t]||(uv[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),uv[t]}const g3e={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function y3e(t,e){const n=t.format(e).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,i,s,o,u,a,l,c]=r;return[o,i,s,u,a,l,c]}function E3e(t,e){const n=t.formatToParts(e),r=[];for(let i=0;i<n.length;i++){const{type:s,value:o}=n[i],u=g3e[s];s==="era"?r[u]=o:Ct(u)||(r[u]=parseInt(o,10))}return r}let av={};class du extends Od{static create(e){return av[e]||(av[e]=new du(e)),av[e]}static resetCache(){av={},uv={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=du.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:n,locale:r}){return QH(e,n,r,this.name)}formatOffset(e,n){return j1(this.offset(e),n)}offset(e){const n=new Date(e);if(isNaN(n))return NaN;const r=m3e(this.name);let[i,s,o,u,a,l,c]=r.formatToParts?E3e(r,n):y3e(r,n);u==="BC"&&(i=-Math.abs(i)+1);const d=UO({year:i,month:s,day:o,hour:a===24?0:a,minute:l,second:c,millisecond:0});let h=+n;const p=h%1e3;return h-=p>=0?p:1e3+p,(d-h)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let HO=null;class Lr extends Od{static get utcInstance(){return HO===null&&(HO=new Lr(0)),HO}static instance(e){return e===0?Lr.utcInstance:new Lr(e)}static parseSpecifier(e){if(e){const n=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new Lr(rv(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${j1(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${j1(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,n){return j1(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}}class nz extends Od{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Ql(t,e){if(Ct(t)||t===null)return e;if(t instanceof Od)return t;if(Zge(t)){const n=t.toLowerCase();return n==="local"||n==="system"?e:n==="utc"||n==="gmt"?Lr.utcInstance:Lr.parseSpecifier(n)||du.create(t)}else return Kc(t)?Lr.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new nz(t)}let rz=()=>Date.now(),iz="system",sz=null,oz=null,uz=null,az;class Fn{static get now(){return rz}static set now(e){rz=e}static set defaultZone(e){iz=e}static get defaultZone(){return Ql(iz,ov.instance)}static get defaultLocale(){return sz}static set defaultLocale(e){sz=e}static get defaultNumberingSystem(){return oz}static set defaultNumberingSystem(e){oz=e}static get defaultOutputCalendar(){return uz}static set defaultOutputCalendar(e){uz=e}static get throwOnInvalid(){return az}static set throwOnInvalid(e){az=e}static resetCaches(){dn.resetCache(),du.resetCache()}}let lz={};function A3e(t,e={}){const n=JSON.stringify([t,e]);let r=lz[n];return r||(r=new Intl.ListFormat(t,e),lz[n]=r),r}let zO={};function QO(t,e={}){const n=JSON.stringify([t,e]);let r=zO[n];return r||(r=new Intl.DateTimeFormat(t,e),zO[n]=r),r}let GO={};function v3e(t,e={}){const n=JSON.stringify([t,e]);let r=GO[n];return r||(r=new Intl.NumberFormat(t,e),GO[n]=r),r}let WO={};function _3e(t,e={}){const{base:n,...r}=e,i=JSON.stringify([t,r]);let s=WO[i];return s||(s=new Intl.RelativeTimeFormat(t,e),WO[i]=s),s}let q1=null;function C3e(){return q1||(q1=new Intl.DateTimeFormat().resolvedOptions().locale,q1)}function S3e(t){const e=t.indexOf("-u-");if(e===-1)return[t];{let n;const r=t.substring(0,e);try{n=QO(t).resolvedOptions()}catch{n=QO(r).resolvedOptions()}const{numberingSystem:i,calendar:s}=n;return[r,i,s]}}function b3e(t,e,n){return(n||e)&&(t+="-u",n&&(t+=`-ca-${n}`),e&&(t+=`-nu-${e}`)),t}function T3e(t){const e=[];for(let n=1;n<=12;n++){const r=ut.utc(2016,n,1);e.push(t(r))}return e}function R3e(t){const e=[];for(let n=1;n<=7;n++){const r=ut.utc(2016,11,13+n);e.push(t(r))}return e}function lv(t,e,n,r,i){const s=t.listingMode(n);return s==="error"?null:s==="en"?r(e):i(e)}function O3e(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}class D3e{constructor(e,n,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;const{padTo:i,floor:s,...o}=r;if(!n||Object.keys(o).length>0){const u={useGrouping:!1,...r};r.padTo>0&&(u.minimumIntegerDigits=r.padTo),this.inf=v3e(e,u)}}format(e){if(this.inf){const n=this.floor?Math.floor(e):e;return this.inf.format(n)}else{const n=this.floor?Math.floor(e):MO(e,3);return wn(n,this.padTo)}}}class N3e{constructor(e,n,r){this.opts=r;let i;if(e.zone.isUniversal){const o=-1*(e.offset/60),u=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&du.create(u).valid?(i=u,this.dt=e):(i="UTC",r.timeZoneName?this.dt=e:this.dt=e.offset===0?e:ut.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);const s={...this.opts};i&&(s.timeZone=i),this.dtf=QO(n,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}}class w3e{constructor(e,n,r){this.opts={style:"long",...r},!n&&HH()&&(this.rtf=_3e(e,r))}format(e,n){return this.rtf?this.rtf.format(e,n):h3e(n,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,n){return this.rtf?this.rtf.formatToParts(e,n):[]}}class dn{static fromOpts(e){return dn.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,n,r,i=!1){const s=e||Fn.defaultLocale,o=s||(i?"en-US":C3e()),u=n||Fn.defaultNumberingSystem,a=r||Fn.defaultOutputCalendar;return new dn(o,u,a,s)}static resetCache(){q1=null,zO={},GO={},WO={}}static fromObject({locale:e,numberingSystem:n,outputCalendar:r}={}){return dn.create(e,n,r)}constructor(e,n,r,i){const[s,o,u]=S3e(e);this.locale=s,this.numberingSystem=n||o||null,this.outputCalendar=r||u||null,this.intl=b3e(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=O3e(this)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&n?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:dn.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,n=!1,r=!0){return lv(this,e,r,YH,()=>{const i=n?{month:e,day:"numeric"}:{month:e},s=n?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=T3e(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,n=!1,r=!0){return lv(this,e,r,XH,()=>{const i=n?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=n?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=R3e(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return lv(this,void 0,e,()=>ZH,()=>{if(!this.meridiemCache){const n={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[ut.utc(2016,11,13,9),ut.utc(2016,11,13,19)].map(r=>this.extract(r,n,"dayperiod"))}return this.meridiemCache})}eras(e,n=!0){return lv(this,e,n,ez,()=>{const r={era:e};return this.eraCache[e]||(this.eraCache[e]=[ut.utc(-40,1,1),ut.utc(2017,1,1)].map(i=>this.extract(i,r,"era"))),this.eraCache[e]})}extract(e,n,r){const i=this.dtFormatter(e,n),s=i.formatToParts(),o=s.find(u=>u.type.toLowerCase()===r);return o?o.value:null}numberFormatter(e={}){return new D3e(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,n={}){return new N3e(e,this.intl,n)}relFormatter(e={}){return new w3e(this.intl,this.isEnglish(),e)}listFormatter(e={}){return A3e(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}}function Dd(...t){const e=t.reduce((n,r)=>n+r.source,"");return RegExp(`^${e}$`)}function Nd(...t){return e=>t.reduce(([n,r,i],s)=>{const[o,u,a]=s(e,i);return[{...n,...o},u||r,a]},[{},null,1]).slice(0,2)}function wd(t,...e){if(t==null)return[null,null];for(const[n,r]of e){const i=n.exec(t);if(i)return r(i)}return[null,null]}function cz(...t){return(e,n)=>{const r={};let i;for(i=0;i<t.length;i++)r[t[i]]=zl(e[n+i]);return[r,null,n+i]}}const fz=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,F3e=`(?:${fz.source}?(?:\\[(${WH.source})\\])?)?`,VO=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,xz=RegExp(`${VO.source}${F3e}`),YO=RegExp(`(?:T${xz.source})?`),L3e=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,I3e=/(\d{4})-?W(\d\d)(?:-?(\d))?/,B3e=/(\d{4})-?(\d{3})/,$3e=cz("weekYear","weekNumber","weekDay"),k3e=cz("year","ordinal"),P3e=/(\d{4})-(\d\d)-(\d\d)/,dz=RegExp(`${VO.source} ?(?:${fz.source}|(${WH.source}))?`),M3e=RegExp(`(?: ${dz.source})?`);function Fd(t,e,n){const r=t[e];return Ct(r)?n:zl(r)}function U3e(t,e){return[{year:Fd(t,e),month:Fd(t,e+1,1),day:Fd(t,e+2,1)},null,e+3]}function Ld(t,e){return[{hours:Fd(t,e,0),minutes:Fd(t,e+1,0),seconds:Fd(t,e+2,0),milliseconds:PO(t[e+3])},null,e+4]}function H1(t,e){const n=!t[e]&&!t[e+1],r=rv(t[e+1],t[e+2]),i=n?null:Lr.instance(r);return[{},i,e+3]}function z1(t,e){const n=t[e]?du.create(t[e]):null;return[{},n,e+1]}const j3e=RegExp(`^T?${VO.source}$`),q3e=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function H3e(t){const[e,n,r,i,s,o,u,a,l]=t,c=e[0]==="-",f=a&&a[0]==="-",d=(h,p=!1)=>h!==void 0&&(p||h&&c)?-h:h;return[{years:d(Jc(n)),months:d(Jc(r)),weeks:d(Jc(i)),days:d(Jc(s)),hours:d(Jc(o)),minutes:d(Jc(u)),seconds:d(Jc(a),a==="-0"),milliseconds:d(PO(l),f)}]}const z3e={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function KO(t,e,n,r,i,s,o){const u={year:e.length===2?jO(zl(e)):zl(e),month:VH.indexOf(n)+1,day:zl(r),hour:zl(i),minute:zl(s)};return o&&(u.second=zl(o)),t&&(u.weekday=t.length>3?KH.indexOf(t)+1:JH.indexOf(t)+1),u}const Q3e=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function G3e(t){const[,e,n,r,i,s,o,u,a,l,c,f]=t,d=KO(e,i,r,n,s,o,u);let h;return a?h=z3e[a]:l?h=0:h=rv(c,f),[d,new Lr(h)]}function W3e(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const V3e=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Y3e=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,K3e=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function hz(t){const[,e,n,r,i,s,o,u]=t;return[KO(e,i,r,n,s,o,u),Lr.utcInstance]}function J3e(t){const[,e,n,r,i,s,o,u]=t;return[KO(e,u,n,r,i,s,o),Lr.utcInstance]}const X3e=Dd(L3e,YO),Z3e=Dd(I3e,YO),eye=Dd(B3e,YO),tye=Dd(xz),pz=Nd(U3e,Ld,H1,z1),nye=Nd($3e,Ld,H1,z1),rye=Nd(k3e,Ld,H1,z1),iye=Nd(Ld,H1,z1);function sye(t){return wd(t,[X3e,pz],[Z3e,nye],[eye,rye],[tye,iye])}function oye(t){return wd(W3e(t),[Q3e,G3e])}function uye(t){return wd(t,[V3e,hz],[Y3e,hz],[K3e,J3e])}function aye(t){return wd(t,[q3e,H3e])}const lye=Nd(Ld);function cye(t){return wd(t,[j3e,lye])}const fye=Dd(P3e,M3e),xye=Dd(dz),dye=Nd(Ld,H1,z1);function hye(t){return wd(t,[fye,pz],[xye,dye])}const pye="Invalid Duration",mz={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},mye={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...mz},Ns=146097/400,Id=146097/4800,gye={years:{quarters:4,months:12,weeks:Ns/7,days:Ns,hours:Ns*24,minutes:Ns*24*60,seconds:Ns*24*60*60,milliseconds:Ns*24*60*60*1e3},quarters:{months:3,weeks:Ns/28,days:Ns/4,hours:Ns*24/4,minutes:Ns*24*60/4,seconds:Ns*24*60*60/4,milliseconds:Ns*24*60*60*1e3/4},months:{weeks:Id/7,days:Id,hours:Id*24,minutes:Id*24*60,seconds:Id*24*60*60,milliseconds:Id*24*60*60*1e3},...mz},Xc=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],yye=Xc.slice(0).reverse();function Zc(t,e,n=!1){const r={values:n?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy};return new St(r)}function Eye(t){return t<0?Math.floor(t):Math.ceil(t)}function gz(t,e,n,r,i){const s=t[i][n],o=e[n]/s,u=Math.sign(o)===Math.sign(r[i]),a=!u&&r[i]!==0&&Math.abs(o)<=1?Eye(o):Math.trunc(o);r[i]+=a,e[n]-=a*s}function Aye(t,e){yye.reduce((n,r)=>Ct(e[r])?n:(n&&gz(t,e,n,e,r),r),null)}class St{constructor(e){const n=e.conversionAccuracy==="longterm"||!1;this.values=e.values,this.loc=e.loc||dn.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n?gye:mye,this.isLuxonDuration=!0}static fromMillis(e,n){return St.fromObject({milliseconds:e},n)}static fromObject(e,n={}){if(e==null||typeof e!="object")throw new Ds(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new St({values:iv(e,St.normalizeUnit),loc:dn.fromObject(n),conversionAccuracy:n.conversionAccuracy})}static fromDurationLike(e){if(Kc(e))return St.fromMillis(e);if(St.isDuration(e))return e;if(typeof e=="object")return St.fromObject(e);throw new Ds(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,n){const[r]=aye(e);return r?St.fromObject(r,n):St.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,n){const[r]=cye(e);return r?St.fromObject(r,n):St.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,n=null){if(!e)throw new Ds("need to specify a reason the Duration is invalid");const r=e instanceof co?e:new co(e,n);if(Fn.throwOnInvalid)throw new Kge(r);return new St({invalid:r})}static normalizeUnit(e){const n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!n)throw new CH(e);return n}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,n={}){const r={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?Si.create(this.loc,r).formatDurationFromString(this,e):pye}toHuman(e={}){const n=Xc.map(r=>{const i=this.values[r];return Ct(i)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:r.slice(0,-1)}).format(i)}).filter(r=>r);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=MO(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const n=this.toMillis();if(n<0||n>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};const r=this.shiftTo("hours","minutes","seconds","milliseconds");let i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||r.seconds!==0||r.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||r.milliseconds!==0)&&(i+=".SSS"));let s=r.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const n=St.fromDurationLike(e),r={};for(const i of Xc)(Rd(n.values,i)||Rd(this.values,i))&&(r[i]=n.get(i)+this.get(i));return Zc(this,{values:r},!0)}minus(e){if(!this.isValid)return this;const n=St.fromDurationLike(e);return this.plus(n.negate())}mapUnits(e){if(!this.isValid)return this;const n={};for(const r of Object.keys(this.values))n[r]=GH(e(this.values[r],r));return Zc(this,{values:n},!0)}get(e){return this[St.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const n={...this.values,...iv(e,St.normalizeUnit)};return Zc(this,{values:n})}reconfigure({locale:e,numberingSystem:n,conversionAccuracy:r}={}){const i=this.loc.clone({locale:e,numberingSystem:n}),s={loc:i};return r&&(s.conversionAccuracy=r),Zc(this,s)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return Aye(this.matrix,e),Zc(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>St.normalizeUnit(o));const n={},r={},i=this.toObject();let s;for(const o of Xc)if(e.indexOf(o)>=0){s=o;let u=0;for(const l in r)u+=this.matrix[l][o]*r[l],r[l]=0;Kc(i[o])&&(u+=i[o]);const a=Math.trunc(u);n[o]=a,r[o]=(u*1e3-a*1e3)/1e3;for(const l in i)Xc.indexOf(l)>Xc.indexOf(o)&&gz(this.matrix,i,l,n,o)}else Kc(i[o])&&(r[o]=i[o]);for(const o in r)r[o]!==0&&(n[s]+=o===s?r[o]:r[o]/this.matrix[s][o]);return Zc(this,{values:n},!0).normalize()}negate(){if(!this.isValid)return this;const e={};for(const n of Object.keys(this.values))e[n]=this.values[n]===0?0:-this.values[n];return Zc(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function n(r,i){return r===void 0||r===0?i===void 0||i===0:r===i}for(const r of Xc)if(!n(this.values[r],e.values[r]))return!1;return!0}}const Q1="Invalid Interval";function vye(t,e){return!t||!t.isValid?hn.invalid("missing or invalid start"):!e||!e.isValid?hn.invalid("missing or invalid end"):e<t?hn.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}class hn{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,n=null){if(!e)throw new Ds("need to specify a reason the Interval is invalid");const r=e instanceof co?e:new co(e,n);if(Fn.throwOnInvalid)throw new Yge(r);return new hn({invalid:r})}static fromDateTimes(e,n){const r=Y1(e),i=Y1(n),s=vye(r,i);return s??new hn({start:r,end:i})}static after(e,n){const r=St.fromDurationLike(n),i=Y1(e);return hn.fromDateTimes(i,i.plus(r))}static before(e,n){const r=St.fromDurationLike(n),i=Y1(e);return hn.fromDateTimes(i.minus(r),i)}static fromISO(e,n){const[r,i]=(e||"").split("/",2);if(r&&i){let s,o;try{s=ut.fromISO(r,n),o=s.isValid}catch{o=!1}let u,a;try{u=ut.fromISO(i,n),a=u.isValid}catch{a=!1}if(o&&a)return hn.fromDateTimes(s,u);if(o){const l=St.fromISO(i,n);if(l.isValid)return hn.after(s,l)}else if(a){const l=St.fromISO(r,n);if(l.isValid)return hn.before(u,l)}}return hn.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;const n=this.start.startOf(e),r=this.end.startOf(e);return Math.floor(r.diff(n,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:n}={}){return this.isValid?hn.fromDateTimes(e||this.s,n||this.e):this}splitAt(...e){if(!this.isValid)return[];const n=e.map(Y1).filter(o=>this.contains(o)).sort(),r=[];let{s:i}=this,s=0;for(;i<this.e;){const o=n[s]||this.e,u=+o>+this.e?this.e:o;r.push(hn.fromDateTimes(i,u)),i=u,s+=1}return r}splitBy(e){const n=St.fromDurationLike(e);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:r}=this,i=1,s;const o=[];for(;r<this.e;){const u=this.start.plus(n.mapUnits(a=>a*i));s=+u>+this.e?this.e:u,o.push(hn.fromDateTimes(r,s)),r=s,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const n=this.s>e.s?this.s:e.s,r=this.e<e.e?this.e:e.e;return n>=r?null:hn.fromDateTimes(n,r)}union(e){if(!this.isValid)return this;const n=this.s<e.s?this.s:e.s,r=this.e>e.e?this.e:e.e;return hn.fromDateTimes(n,r)}static merge(e){const[n,r]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return r&&n.push(r),n}static xor(e){let n=null,r=0;const i=[],s=e.map(a=>[{time:a.s,type:"s"},{time:a.e,type:"e"}]),o=Array.prototype.concat(...s),u=o.sort((a,l)=>a.time-l.time);for(const a of u)r+=a.type==="s"?1:-1,r===1?n=a.time:(n&&+n!=+a.time&&i.push(hn.fromDateTimes(n,a.time)),n=null);return hn.merge(i)}difference(...e){return hn.xor([this].concat(e)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Q1}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Q1}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Q1}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Q1}toFormat(e,{separator:n=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${n}${this.e.toFormat(e)}`:Q1}toDuration(e,n){return this.isValid?this.e.diff(this.s,e,n):St.invalid(this.invalidReason)}mapEndpoints(e){return hn.fromDateTimes(e(this.s),e(this.e))}}let G1=class{static hasDST(e=Fn.defaultZone){const n=ut.now().setZone(e).set({month:12});return!e.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(e){return du.isValidZone(e)}static normalizeZone(e){return Ql(e,Fn.defaultZone)}static months(e="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||dn.create(n,r,s)).months(e)}static monthsFormat(e="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||dn.create(n,r,s)).months(e,!0)}static weekdays(e="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||dn.create(n,r,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||dn.create(n,r,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return dn.create(e).meridiems()}static eras(e="short",{locale:n=null}={}){return dn.create(n,null,"gregory").eras(e)}static features(){return{relative:HH()}}};function yz(t,e){const n=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(e)-n(t);return Math.floor(St.fromMillis(r).as("days"))}function _ye(t,e,n){const r=[["years",(u,a)=>a.year-u.year],["quarters",(u,a)=>a.quarter-u.quarter],["months",(u,a)=>a.month-u.month+(a.year-u.year)*12],["weeks",(u,a)=>{const l=yz(u,a);return(l-l%7)/7}],["days",yz]],i={};let s,o;for(const[u,a]of r)if(n.indexOf(u)>=0){s=u;let l=a(t,e);o=t.plus({[u]:l}),o>e?(t=t.plus({[u]:l-1}),l-=1):t=o,i[u]=l}return[t,i,o,s]}function Cye(t,e,n,r){let[i,s,o,u]=_ye(t,e,n);const a=e-i,l=n.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);l.length===0&&(o<e&&(o=i.plus({[u]:1})),o!==i&&(s[u]=(s[u]||0)+a/(o-i)));const c=St.fromObject(s,r);return l.length>0?St.fromMillis(a,r).shiftTo(...l).plus(c):c}const JO={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},Ez={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Sye=JO.hanidec.replace(/[\[|\]]/g,"").split("");function bye(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let n=0;n<t.length;n++){const r=t.charCodeAt(n);if(t[n].search(JO.hanidec)!==-1)e+=Sye.indexOf(t[n]);else for(const i in Ez){const[s,o]=Ez[i];r>=s&&r<=o&&(e+=r-s)}}return parseInt(e,10)}else return e}function fo({numberingSystem:t},e=""){return new RegExp(`${JO[t||"latn"]}${e}`)}const Tye="missing Intl.DateTimeFormat.formatToParts support";function Lt(t,e=n=>n){return{regex:t,deser:([n])=>e(bye(n))}}const Az="[ ]",vz=new RegExp(Az,"g");function Rye(t){return t.replace(/\./g,"\\.?").replace(vz,Az)}function _z(t){return t.replace(/\./g,"").replace(vz," ").toLowerCase()}function xo(t,e){return t===null?null:{regex:RegExp(t.map(Rye).join("|")),deser:([n])=>t.findIndex(r=>_z(n)===_z(r))+e}}function Cz(t,e){return{regex:t,deser:([,n,r])=>rv(n,r),groups:e}}function XO(t){return{regex:t,deser:([e])=>e}}function Oye(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Dye(t,e){const n=fo(e),r=fo(e,"{2}"),i=fo(e,"{3}"),s=fo(e,"{4}"),o=fo(e,"{6}"),u=fo(e,"{1,2}"),a=fo(e,"{1,3}"),l=fo(e,"{1,6}"),c=fo(e,"{1,9}"),f=fo(e,"{2,4}"),d=fo(e,"{4,6}"),h=m=>({regex:RegExp(Oye(m.val)),deser:([y])=>y,literal:!0}),g=(m=>{if(t.literal)return h(m);switch(m.val){case"G":return xo(e.eras("short",!1),0);case"GG":return xo(e.eras("long",!1),0);case"y":return Lt(l);case"yy":return Lt(f,jO);case"yyyy":return Lt(s);case"yyyyy":return Lt(d);case"yyyyyy":return Lt(o);case"M":return Lt(u);case"MM":return Lt(r);case"MMM":return xo(e.months("short",!0,!1),1);case"MMMM":return xo(e.months("long",!0,!1),1);case"L":return Lt(u);case"LL":return Lt(r);case"LLL":return xo(e.months("short",!1,!1),1);case"LLLL":return xo(e.months("long",!1,!1),1);case"d":return Lt(u);case"dd":return Lt(r);case"o":return Lt(a);case"ooo":return Lt(i);case"HH":return Lt(r);case"H":return Lt(u);case"hh":return Lt(r);case"h":return Lt(u);case"mm":return Lt(r);case"m":return Lt(u);case"q":return Lt(u);case"qq":return Lt(r);case"s":return Lt(u);case"ss":return Lt(r);case"S":return Lt(a);case"SSS":return Lt(i);case"u":return XO(c);case"uu":return XO(u);case"uuu":return Lt(n);case"a":return xo(e.meridiems(),0);case"kkkk":return Lt(s);case"kk":return Lt(f,jO);case"W":return Lt(u);case"WW":return Lt(r);case"E":case"c":return Lt(n);case"EEE":return xo(e.weekdays("short",!1,!1),1);case"EEEE":return xo(e.weekdays("long",!1,!1),1);case"ccc":return xo(e.weekdays("short",!0,!1),1);case"cccc":return xo(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Cz(new RegExp(`([+-]${u.source})(?::(${r.source}))?`),2);case"ZZZ":return Cz(new RegExp(`([+-]${u.source})(${r.source})?`),2);case"z":return XO(/[a-z_+-/]{1,256}?/i);default:return h(m)}})(t)||{invalidReason:Tye};return g.token=t,g}const Nye={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"}};function wye(t,e,n){const{type:r,value:i}=t;if(r==="literal")return{literal:!0,val:i};const s=n[r];let o=Nye[r];if(typeof o=="object"&&(o=o[s]),o)return{literal:!1,val:o}}function Fye(t){return[`^${t.map(n=>n.regex).reduce((n,r)=>`${n}(${r.source})`,"")}$`,t]}function Lye(t,e,n){const r=t.match(e);if(r){const i={};let s=1;for(const o in n)if(Rd(n,o)){const u=n[o],a=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(r.slice(s,s+a))),s+=a}return[r,i]}else return[r,{}]}function Iye(t){const e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let n=null,r;return Ct(t.z)||(n=du.create(t.z)),Ct(t.Z)||(n||(n=new Lr(t.Z)),r=t.Z),Ct(t.q)||(t.M=(t.q-1)*3+1),Ct(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),Ct(t.u)||(t.S=PO(t.u)),[Object.keys(t).reduce((s,o)=>{const u=e(o);return u&&(s[u]=t[o]),s},{}),n,r]}let ZO=null;function Bye(){return ZO||(ZO=ut.fromMillis(1555555555555)),ZO}function $ye(t,e){if(t.literal)return t;const n=Si.macroTokenToFormatOpts(t.val);if(!n)return t;const s=Si.create(e,n).formatDateTimeParts(Bye()).map(o=>wye(o,e,n));return s.includes(void 0)?t:s}function kye(t,e){return Array.prototype.concat(...t.map(n=>$ye(n,e)))}function Sz(t,e,n){const r=kye(Si.parseFormat(n),t),i=r.map(o=>Dye(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:r,invalidReason:s.invalidReason};{const[o,u]=Fye(i),a=RegExp(o,"i"),[l,c]=Lye(e,a,u),[f,d,h]=c?Iye(c):[null,null,void 0];if(Rd(c,"a")&&Rd(c,"H"))throw new P1("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:r,regex:a,rawMatches:l,matches:c,result:f,zone:d,specificOffset:h}}}function Pye(t,e,n){const{result:r,zone:i,specificOffset:s,invalidReason:o}=Sz(t,e,n);return[r,i,s,o]}const bz=[0,31,59,90,120,151,181,212,243,273,304,334],Tz=[0,31,60,91,121,152,182,213,244,274,305,335];function ws(t,e){return new co("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function Rz(t,e,n){const r=new Date(Date.UTC(t,e-1,n));t<100&&t>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);const i=r.getUTCDay();return i===0?7:i}function Oz(t,e,n){return n+(M1(t)?Tz:bz)[e-1]}function Dz(t,e){const n=M1(t)?Tz:bz,r=n.findIndex(s=>s<e),i=e-n[r];return{month:r+1,day:i}}function eD(t){const{year:e,month:n,day:r}=t,i=Oz(e,n,r),s=Rz(e,n,r);let o=Math.floor((i-s+10)/7),u;return o<1?(u=e-1,o=nv(u)):o>nv(e)?(u=e+1,o=1):u=e,{weekYear:u,weekNumber:o,weekday:s,...sv(t)}}function Nz(t){const{weekYear:e,weekNumber:n,weekday:r}=t,i=Rz(e,1,4),s=U1(e);let o=n*7+r-i-3,u;o<1?(u=e-1,o+=U1(u)):o>s?(u=e+1,o-=U1(e)):u=e;const{month:a,day:l}=Dz(u,o);return{year:u,month:a,day:l,...sv(t)}}function tD(t){const{year:e,month:n,day:r}=t,i=Oz(e,n,r);return{year:e,ordinal:i,...sv(t)}}function wz(t){const{year:e,ordinal:n}=t,{month:r,day:i}=Dz(e,n);return{year:e,month:r,day:i,...sv(t)}}function Mye(t){const e=ev(t.weekYear),n=va(t.weekNumber,1,nv(t.weekYear)),r=va(t.weekday,1,7);return e?n?r?!1:ws("weekday",t.weekday):ws("week",t.week):ws("weekYear",t.weekYear)}function Uye(t){const e=ev(t.year),n=va(t.ordinal,1,U1(t.year));return e?n?!1:ws("ordinal",t.ordinal):ws("year",t.year)}function Fz(t){const e=ev(t.year),n=va(t.month,1,12),r=va(t.day,1,tv(t.year,t.month));return e?n?r?!1:ws("day",t.day):ws("month",t.month):ws("year",t.year)}function Lz(t){const{hour:e,minute:n,second:r,millisecond:i}=t,s=va(e,0,23)||e===24&&n===0&&r===0&&i===0,o=va(n,0,59),u=va(r,0,59),a=va(i,0,999);return s?o?u?a?!1:ws("millisecond",i):ws("second",r):ws("minute",n):ws("hour",e)}const nD="Invalid DateTime",Iz=864e13;function cv(t){return new co("unsupported zone",`the zone "${t.name}" is not supported`)}function rD(t){return t.weekData===null&&(t.weekData=eD(t.c)),t.weekData}function W1(t,e){const n={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new ut({...n,...e,old:n})}function Bz(t,e,n){let r=t-e*60*1e3;const i=n.offset(r);if(e===i)return[r,e];r-=(i-e)*60*1e3;const s=n.offset(r);return i===s?[r,i]:[t-Math.min(i,s)*60*1e3,Math.max(i,s)]}function $z(t,e){t+=e*60*1e3;const n=new Date(t);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function fv(t,e,n){return Bz(UO(t),e,n)}function kz(t,e){const n=t.o,r=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:r,month:i,day:Math.min(t.c.day,tv(r,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=St.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),u=UO(s);let[a,l]=Bz(u,n,t.zone);return o!==0&&(a+=o,l=t.zone.offset(a)),{ts:a,o:l}}function V1(t,e,n,r,i,s){const{setZone:o,zone:u}=n;if(t&&Object.keys(t).length!==0){const a=e||u,l=ut.fromObject(t,{...n,zone:a,specificOffset:s});return o?l:l.setZone(u)}else return ut.invalid(new co("unparsable",`the input "${i}" can't be parsed as ${r}`))}function xv(t,e,n=!0){return t.isValid?Si.create(dn.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(t,e):null}function iD(t,e){const n=t.c.year>9999||t.c.year<0;let r="";return n&&t.c.year>=0&&(r+="+"),r+=wn(t.c.year,n?6:4),e?(r+="-",r+=wn(t.c.month),r+="-",r+=wn(t.c.day)):(r+=wn(t.c.month),r+=wn(t.c.day)),r}function Pz(t,e,n,r,i,s){let o=wn(t.c.hour);return e?(o+=":",o+=wn(t.c.minute),(t.c.second!==0||!n)&&(o+=":")):o+=wn(t.c.minute),(t.c.second!==0||!n)&&(o+=wn(t.c.second),(t.c.millisecond!==0||!r)&&(o+=".",o+=wn(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=wn(Math.trunc(-t.o/60)),o+=":",o+=wn(Math.trunc(-t.o%60))):(o+="+",o+=wn(Math.trunc(t.o/60)),o+=":",o+=wn(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}const Mz={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},jye={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},qye={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Uz=["year","month","day","hour","minute","second","millisecond"],Hye=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],zye=["year","ordinal","hour","minute","second","millisecond"];function jz(t){const e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new CH(t);return e}function qz(t,e){const n=Ql(e.zone,Fn.defaultZone),r=dn.fromObject(e),i=Fn.now();let s,o;if(Ct(t.year))s=i;else{for(const l of Uz)Ct(t[l])&&(t[l]=Mz[l]);const u=Fz(t)||Lz(t);if(u)return ut.invalid(u);const a=n.offset(i);[s,o]=fv(t,a,n)}return new ut({ts:s,zone:n,loc:r,o})}function Hz(t,e,n){const r=Ct(n.round)?!0:n.round,i=(o,u)=>(o=MO(o,r||n.calendary?0:2,!0),e.loc.clone(n).relFormatter(n).format(o,u)),s=o=>n.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(n.unit)return i(s(n.unit),n.unit);for(const o of n.units){const u=s(o);if(Math.abs(u)>=1)return i(u,o)}return i(t>e?-0:0,n.units[n.units.length-1])}function zz(t){let e={},n;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],n=Array.from(t).slice(0,t.length-1)):n=Array.from(t),[e,n]}class ut{constructor(e){const n=e.zone||Fn.defaultZone;let r=e.invalid||(Number.isNaN(e.ts)?new co("invalid input"):null)||(n.isValid?null:cv(n));this.ts=Ct(e.ts)?Fn.now():e.ts;let i=null,s=null;if(!r)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(n))[i,s]=[e.old.c,e.old.o];else{const u=n.offset(this.ts);i=$z(this.ts,u),r=Number.isNaN(i.year)?new co("invalid input"):null,i=r?null:i,s=r?null:u}this._zone=n,this.loc=e.loc||dn.create(),this.invalid=r,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new ut({})}static local(){const[e,n]=zz(arguments),[r,i,s,o,u,a,l]=n;return qz({year:r,month:i,day:s,hour:o,minute:u,second:a,millisecond:l},e)}static utc(){const[e,n]=zz(arguments),[r,i,s,o,u,a,l]=n;return e.zone=Lr.utcInstance,qz({year:r,month:i,day:s,hour:o,minute:u,second:a,millisecond:l},e)}static fromJSDate(e,n={}){const r=e3e(e)?e.valueOf():NaN;if(Number.isNaN(r))return ut.invalid("invalid input");const i=Ql(n.zone,Fn.defaultZone);return i.isValid?new ut({ts:r,zone:i,loc:dn.fromObject(n)}):ut.invalid(cv(i))}static fromMillis(e,n={}){if(Kc(e))return e<-Iz||e>Iz?ut.invalid("Timestamp out of range"):new ut({ts:e,zone:Ql(n.zone,Fn.defaultZone),loc:dn.fromObject(n)});throw new Ds(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,n={}){if(Kc(e))return new ut({ts:e*1e3,zone:Ql(n.zone,Fn.defaultZone),loc:dn.fromObject(n)});throw new Ds("fromSeconds requires a numerical input")}static fromObject(e,n={}){e=e||{};const r=Ql(n.zone,Fn.defaultZone);if(!r.isValid)return ut.invalid(cv(r));const i=Fn.now(),s=Ct(n.specificOffset)?r.offset(i):n.specificOffset,o=iv(e,jz),u=!Ct(o.ordinal),a=!Ct(o.year),l=!Ct(o.month)||!Ct(o.day),c=a||l,f=o.weekYear||o.weekNumber,d=dn.fromObject(n);if((c||u)&&f)throw new P1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&u)throw new P1("Can't mix ordinal dates with month/day");const h=f||o.weekday&&!c;let p,g,m=$z(i,s);h?(p=Hye,g=jye,m=eD(m)):u?(p=zye,g=qye,m=tD(m)):(p=Uz,g=Mz);let y=!1;for(const b of p){const R=o[b];Ct(R)?y?o[b]=g[b]:o[b]=m[b]:y=!0}const E=h?Mye(o):u?Uye(o):Fz(o),A=E||Lz(o);if(A)return ut.invalid(A);const v=h?Nz(o):u?wz(o):o,[_,S]=fv(v,s,r),C=new ut({ts:_,zone:r,o:S,loc:d});return o.weekday&&c&&e.weekday!==C.weekday?ut.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${C.toISO()}`):C}static fromISO(e,n={}){const[r,i]=sye(e);return V1(r,i,n,"ISO 8601",e)}static fromRFC2822(e,n={}){const[r,i]=oye(e);return V1(r,i,n,"RFC 2822",e)}static fromHTTP(e,n={}){const[r,i]=uye(e);return V1(r,i,n,"HTTP",n)}static fromFormat(e,n,r={}){if(Ct(e)||Ct(n))throw new Ds("fromFormat requires an input string and a format");const{locale:i=null,numberingSystem:s=null}=r,o=dn.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[u,a,l,c]=Pye(o,e,n);return c?ut.invalid(c):V1(u,a,r,`format ${n}`,e,l)}static fromString(e,n,r={}){return ut.fromFormat(e,n,r)}static fromSQL(e,n={}){const[r,i]=hye(e);return V1(r,i,n,"SQL",e)}static invalid(e,n=null){if(!e)throw new Ds("need to specify a reason the DateTime is invalid");const r=e instanceof co?e:new co(e,n);if(Fn.throwOnInvalid)throw new Vge(r);return new ut({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?rD(this).weekYear:NaN}get weekNumber(){return this.isValid?rD(this).weekNumber:NaN}get weekday(){return this.isValid?rD(this).weekday:NaN}get ordinal(){return this.isValid?tD(this.c).ordinal:NaN}get monthShort(){return this.isValid?G1.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?G1.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?G1.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?G1.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return M1(this.year)}get daysInMonth(){return tv(this.year,this.month)}get daysInYear(){return this.isValid?U1(this.year):NaN}get weeksInWeekYear(){return this.isValid?nv(this.weekYear):NaN}resolvedLocaleOptions(e={}){const{locale:n,numberingSystem:r,calendar:i}=Si.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:i}}toUTC(e=0,n={}){return this.setZone(Lr.instance(e),n)}toLocal(){return this.setZone(Fn.defaultZone)}setZone(e,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(e=Ql(e,Fn.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(n||r){const s=e.offset(this.ts),o=this.toObject();[i]=fv(o,s,e)}return W1(this,{ts:i,zone:e})}else return ut.invalid(cv(e))}reconfigure({locale:e,numberingSystem:n,outputCalendar:r}={}){const i=this.loc.clone({locale:e,numberingSystem:n,outputCalendar:r});return W1(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const n=iv(e,jz),r=!Ct(n.weekYear)||!Ct(n.weekNumber)||!Ct(n.weekday),i=!Ct(n.ordinal),s=!Ct(n.year),o=!Ct(n.month)||!Ct(n.day),u=s||o,a=n.weekYear||n.weekNumber;if((u||i)&&a)throw new P1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new P1("Can't mix ordinal dates with month/day");let l;r?l=Nz({...eD(this.c),...n}):Ct(n.ordinal)?(l={...this.toObject(),...n},Ct(n.day)&&(l.day=Math.min(tv(l.year,l.month),l.day))):l=wz({...tD(this.c),...n});const[c,f]=fv(l,this.o,this.zone);return W1(this,{ts:c,o:f})}plus(e){if(!this.isValid)return this;const n=St.fromDurationLike(e);return W1(this,kz(this,n))}minus(e){if(!this.isValid)return this;const n=St.fromDurationLike(e).negate();return W1(this,kz(this,n))}startOf(e){if(!this.isValid)return this;const n={},r=St.normalizeUnit(e);switch(r){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(r==="weeks"&&(n.weekday=1),r==="quarters"){const i=Math.ceil(this.month/3);n.month=(i-1)*3+1}return this.set(n)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,n={}){return this.isValid?Si.create(this.loc.redefaultToEN(n)).formatDateTimeFromString(this,e):nD}toLocaleString(e=kO,n={}){return this.isValid?Si.create(this.loc.clone(n),e).formatDateTime(this):nD}toLocaleParts(e={}){return this.isValid?Si.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:n=!1,suppressMilliseconds:r=!1,includeOffset:i=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;const o=e==="extended";let u=iD(this,o);return u+="T",u+=Pz(this,o,n,r,i,s),u}toISODate({format:e="extended"}={}){return this.isValid?iD(this,e==="extended"):null}toISOWeekDate(){return xv(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:n=!1,includeOffset:r=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+Pz(this,o==="extended",n,e,r,s):null}toRFC2822(){return xv(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return xv(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?iD(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:n=!1,includeOffsetSpace:r=!0}={}){let i="HH:mm:ss.SSS";return(n||e)&&(r&&(i+=" "),n?i+="z":e&&(i+="ZZ")),xv(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():nD}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const n={...this.c};return e.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,n="milliseconds",r={}){if(!this.isValid||!e.isValid)return St.invalid("created by diffing an invalid DateTime");const i={locale:this.locale,numberingSystem:this.numberingSystem,...r},s=t3e(n).map(St.normalizeUnit),o=e.valueOf()>this.valueOf(),u=o?this:e,a=o?e:this,l=Cye(u,a,s,i);return o?l.negate():l}diffNow(e="milliseconds",n={}){return this.diff(ut.now(),e,n)}until(e){return this.isValid?hn.fromDateTimes(this,e):this}hasSame(e,n){if(!this.isValid)return!1;const r=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(n)<=r&&r<=i.endOf(n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const n=e.base||ut.fromObject({},{zone:this.zone}),r=e.padding?this<n?-e.padding:e.padding:0;let i=["years","months","days","hours","minutes","seconds"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),Hz(n,this.plus(r),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?Hz(e.base||ut.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(ut.isDateTime))throw new Ds("min requires all arguments be DateTimes");return zH(e,n=>n.valueOf(),Math.min)}static max(...e){if(!e.every(ut.isDateTime))throw new Ds("max requires all arguments be DateTimes");return zH(e,n=>n.valueOf(),Math.max)}static fromFormatExplain(e,n,r={}){const{locale:i=null,numberingSystem:s=null}=r,o=dn.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return Sz(o,e,n)}static fromStringExplain(e,n,r={}){return ut.fromFormatExplain(e,n,r)}static get DATE_SHORT(){return kO}static get DATE_MED(){return SH}static get DATE_MED_WITH_WEEKDAY(){return Jge}static get DATE_FULL(){return bH}static get DATE_HUGE(){return TH}static get TIME_SIMPLE(){return RH}static get TIME_WITH_SECONDS(){return OH}static get TIME_WITH_SHORT_OFFSET(){return DH}static get TIME_WITH_LONG_OFFSET(){return NH}static get TIME_24_SIMPLE(){return wH}static get TIME_24_WITH_SECONDS(){return FH}static get TIME_24_WITH_SHORT_OFFSET(){return LH}static get TIME_24_WITH_LONG_OFFSET(){return IH}static get DATETIME_SHORT(){return BH}static get DATETIME_SHORT_WITH_SECONDS(){return $H}static get DATETIME_MED(){return kH}static get DATETIME_MED_WITH_SECONDS(){return PH}static get DATETIME_MED_WITH_WEEKDAY(){return Xge}static get DATETIME_FULL(){return MH}static get DATETIME_FULL_WITH_SECONDS(){return UH}static get DATETIME_HUGE(){return jH}static get DATETIME_HUGE_WITH_SECONDS(){return qH}}function Y1(t){if(ut.isDateTime(t))return t;if(t&&t.valueOf&&Kc(t.valueOf()))return ut.fromJSDate(t);if(t&&typeof t=="object")return ut.fromObject(t);throw new Ds(`Unknown datetime argument: ${t}, of type ${typeof t}`)}const sD=A$(Object.freeze(Object.defineProperty({__proto__:null,DateTime:ut,Duration:St,FixedOffsetZone:Lr,IANAZone:du,Info:G1,Interval:hn,InvalidZone:nz,Settings:Fn,SystemZone:ov,VERSION:"2.5.2",Zone:Od},Symbol.toStringTag,{value:"Module"})));Object.defineProperty(Td,"__esModule",{value:!0}),Td.TimezoneStatement=void 0;const Qye=Ge,Gye=sD;class Wye extends Qye.MalloyElement{constructor(e){super(),this.tz=e,this.elementType="timezone",this.forceQueryClass=void 0,this.queryRefinementStage=void 0}get isValid(){try{return Gye.DateTime.fromISO("2020-02-19T00:00:00",{zone:this.tz}),!0}catch{return!1}}queryExecute(e){e.resultFS.setTimezone(this.tz)}}Td.TimezoneStatement=Wye;var Gl={};Object.defineProperty(Gl,"__esModule",{value:!0}),Gl.ModelAnnotation=Gl.ObjectAnnotation=void 0;const Vye=Js,Yye=Ge;class Qz extends Yye.MalloyElement{constructor(e){super(),this.notes=e,this.elementType="annotation",this.forceQueryClass=void 0,this.queryRefinementStage=void 0}queryExecute(){}}Gl.ObjectAnnotation=Qz;class Kye extends Qz{constructor(){super(...arguments),this.elementType="modelAnnotation"}getCompilerFlags(e,n){const r=Vye.Tag.annotationToTag({notes:this.notes},{prefix:/^##! /,extending:e});return r.log.forEach(i=>n.log(i)),r.tag}execute(e){e.annotation.notes===void 0&&(e.annotation.notes=[]),e.annotation.notes.push(...this.notes)}}Gl.ModelAnnotation=Kye;var Wl={};Object.defineProperty(Wl,"__esModule",{value:!0}),Wl.Renames=Wl.RenameField=void 0;const Jye=k1,Gz=Ge,Xye=gr;class Zye extends Gz.MalloyElement{constructor(e,n){super(),this.newName=e,this.oldName=n,this.elementType="renameField",this.has({oldName:n})}makeEntry(e){if(this.oldName.refString===this.newName){this.logError("invalid-rename-with-same-name","Can't rename field to itself");return}const n=this.oldName.getField(e);n.found?n.found instanceof Xye.SpaceField?e.renameEntry(this.oldName.refString,this.newName,new Jye.RenameSpaceField(n.found,this.newName,this.location)):this.logError("failed-rename",`'${this.oldName}' cannot be renamed`):this.logError("rename-field-not-found",`Can't rename '${this.oldName}', no such field`)}getName(){return this.newName}}Wl.RenameField=Zye;class eEe extends Gz.ListOf{constructor(e,n){super(e),this.accessModifier=n,this.elementType="renameFields"}get delarationNames(){return this.list.map(e=>e.getName())}}Wl.Renames=eEe;var bi={};Object.defineProperty(bi,"__esModule",{value:!0}),bi.JoinStatement=bi.ExpressionJoin=bi.KeyJoin=bi.Join=void 0;const oD=We,tEe=I1,nEe=ns,rEe=Ge,iEe=mr,Wz=Fr,sEe=Rn;class uD extends rEe.MalloyElement{constructor(){super(...arguments),this.isNoteableObj=!0,this.extendNote=iEe.extendNoteMethod}makeEntry(e){e.newEntry(this.name.refString,this,new tEe.JoinSpaceField(e.parameterSpace(),this,e.dialectName()))}getName(){return this.name.refString}getStructDefFromExpr(e){const n=this.sourceExpr.getSource();return n?n.getSourceDef(e):(this.sourceExpr.sqLog("invalid-join-source","Cannot create a source to join from"),Wz.ErrorFactory.structDef)}}bi.Join=uD;class oEe extends uD{constructor(e,n,r){super({name:e,sourceExpr:n,keyExpr:r}),this.name=e,this.sourceExpr=n,this.keyExpr=r,this.elementType="joinOnKey"}structDef(e){var n;const r=this.getStructDefFromExpr(e);if(!(0,oD.isJoinable)(r))throw this.internalError(`Cannot join struct type '${r.type}'`);const i={...r,name:this.name.refString,join:"one",matrixOperation:"left",onExpression:{node:"error",message:"('join fixup'='not done yet')"},location:this.location};return delete i.as,this.note&&(i.annotation=this.note),(n=this.document())===null||n===void 0||n.rememberToAddModelAnnotations(i),i}fixupJoinOn(e,n){const r=this.keyExpr.getExpression(e);if((0,oD.isSourceDef)(n)&&n.primaryKey){const i=n.fields.find(s=>(s.as||s.name)===n.primaryKey);if(i)if(i.type===r.type){n.join="one",n.onExpression={node:"=",kids:{left:{node:"field",path:[this.name.refString,n.primaryKey]},right:r.value}},n.onCompositeFieldUsage=r.compositeFieldUsage;return}else this.logError("join-on-primary-key-type-mismatch",`join_one: with type mismatch with primary key: ${r.type}/${i.type}`);else this.logError("join-primary-key-not-found",`join_one: Primary key '${i}' not found in source`)}else this.logError("join-with-without-primary-key","join_one: Cannot use with unless source has a primary key")}}bi.KeyJoin=oEe;class uEe extends uD{constructor(e,n){super({name:e,sourceExpr:n}),this.name=e,this.sourceExpr=n,this.elementType="joinOnExpr",this.joinType="one",this.matrixOperation="left"}set joinOn(e){this.expr=e,this.has({on:e})}get joinOn(){return this.expr}fixupJoinOn(e,n){if(this.expr===void 0)return;const r=this.expr.getExpression(e);if(r.type!=="boolean"){this.logError("non-boolean-join-on","join conditions must be boolean expressions");return}n.onExpression=r.value,n.onCompositeFieldUsage=r.compositeFieldUsage}structDef(e){var n;const r=this.sourceExpr.getSource();if(!r)return this.sourceExpr.sqLog("invalid-join-source","Cannot create a source to join from"),Wz.ErrorFactory.joinDef;const i=r.getSourceDef(e);let s="left";if(this.inExperiment("join_types",!0)&&(s=this.matrixOperation),!(0,oD.isJoinable)(i))throw this.internalError(`Can't join struct type ${i.type}`);const o={...i,name:this.name.refString,join:this.joinType,matrixOperation:s,location:this.location};return delete o.as,this.note&&(o.annotation=this.note),(n=this.document())===null||n===void 0||n.rememberToAddModelAnnotations(o),o}}bi.ExpressionJoin=uEe;class aEe extends nEe.DefinitionList{constructor(e,n){super(e),this.accessModifier=n,this.elementType="joinStatement",this.forceQueryClass=void 0,this.queryRefinementStage=sEe.LegalRefinementStage.Single}queryExecute(e){for(const n of this.list)e.inputFS.extendSource(n),e.alwaysJoins.push(n.name.refString)}get delarationNames(){return this.list.map(e=>e.name.refString)}}bi.JoinStatement=aEe;var ho={};Object.defineProperty(ho,"__esModule",{value:!0}),ho.IncludeListItem=ho.IncludeExceptItem=ho.IncludeAccessItem=ho.IncludeItem=void 0;const Vz=Ge,Yz=mr;class aD extends Vz.MalloyElement{}ho.IncludeItem=aD;class lEe extends aD{constructor(e,n){super(),this.kind=e,this.fields=n,this.elementType="include-access-item",this.isNoteableObj=!0,this.extendNote=Yz.extendNoteMethod,this.has({fields:n})}}ho.IncludeAccessItem=lEe;class cEe extends aD{constructor(e){super(),this.fields=e,this.elementType="include-except-item",this.kind="except",this.has({fields:e})}}ho.IncludeExceptItem=cEe;class fEe extends Vz.MalloyElement{constructor(e,n){super({name:e}),this.name=e,this.as=n,this.elementType="include-list-item",this.isNoteableObj=!0,this.extendNote=Yz.extendNoteMethod}}ho.IncludeListItem=fEe;var xt={},K1={},xEe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),dEe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),hEe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&xEe(e,t,n);return dEe(e,t),e};Object.defineProperty(K1,"__esModule",{value:!0}),K1.ReferenceField=void 0;const Kz=We,Jz=hEe(Ht),Xz=gr,pEe=it;class mEe extends Xz.SpaceField{constructor(e,n){super(),this.fieldRef=e,this.inFS=n,this.didLookup=!1}get referenceTo(){return this.didLookup||(this.memoReference=this.inFS.lookup(this.fieldRef.list).found,this.didLookup=!0),this.memoReference}getQueryFieldDef(e){if(!this.queryFieldDef){const n=this.fieldRef.getField(e);n.error&&this.fieldRef.logError(n.error.code,n.error.message);const r=this.fieldRef.path;if(n.found&&n.found.refType==="parameter"){const s=n.found.typeDesc();if(Kz.TD.isAtomic(s))this.queryFieldDef={...(0,Kz.mkFieldDef)(Jz.atomicDef(s),r[0]),e:{node:"parameter",path:r}};else throw new Error("impossible turtle/join parameter")}else this.queryFieldDef={type:"fieldref",path:r};const i=this.referenceTo;if(i instanceof Xz.SpaceField){const s=i.constructorFieldDef();if(s){const o=this.fieldRef.note;if(s.annotation||o){const u=o||{};s.annotation&&(u.inherits=s.annotation),this.queryFieldDef.annotation=u}}}}return this.queryFieldDef}typeDesc(){if(this.memoTypeDesc)return this.memoTypeDesc;const e=this.referenceTo;if(e){const n=this.fieldRef.list.slice(0,-1).map(i=>i.refString),r=e.typeDesc();return this.memoTypeDesc={...r,compositeFieldUsage:(0,pEe.joinedCompositeFieldUsage)(n,r.compositeFieldUsage)},this.memoTypeDesc}return Jz.errorT}}K1.ReferenceField=mEe;var $n={};Object.defineProperty($n,"__esModule",{value:!0}),$n.typecheckGroupBy=$n.typecheckAggregate=$n.typecheckCalculate=$n.typecheckDeclare=$n.typecheckMeasure=$n.typecheckDimension=$n.typecheckIndex=$n.typecheckProject=void 0;const An=Qi;function gEe(t,e){if(t.type==="turtle"||!(0,An.expressionIsScalar)(t.expressionType)){let n,r,i;if(t.type==="turtle")n="a nest",r="a view",i="select-of-view";else if((0,An.expressionIsAnalytic)(t.expressionType))n="a calculate",r="an analytic",i="select-of-analytic";else if((0,An.expressionIsAggregate)(t.expressionType))n="an aggregate",r="an aggregate",i="select-of-aggregate";else throw new Error(`Unexpected expression type ${t.expressionType} not handled here`);e.logError(i,`Cannot use ${r} field in a select operation, did you mean to use ${n} operation instead?`)}}$n.typecheckProject=gEe;function yEe(t,e){if(t.type==="turtle"||!(0,An.expressionIsScalar)(t.expressionType)){let n,r;if(t.type==="turtle")n="a view",r="index-of-view";else if((0,An.expressionIsAnalytic)(t.expressionType))n="an analytic",r="index-of-analytic";else if((0,An.expressionIsAggregate)(t.expressionType))n="an aggregate",r="index-of-aggregate";else throw new Error(`Unexpected expression type ${t.expressionType} not handled here`);e.logError(r,`Cannot use ${n} field in an index operation`)}}$n.typecheckIndex=yEe;function EEe(t,e){if(!(0,An.expressionIsScalar)(t.expressionType))if((0,An.expressionIsAggregate)(t.expressionType))e.logError("aggregate-in-dimension","Cannot use an aggregate field in a dimension declaration, did you mean to use a measure declaration instead?");else if((0,An.expressionIsAnalytic)(t.expressionType))e.logError("analytic-in-dimension","Cannot use an analytic field in a dimension declaration");else throw new Error(`Unexpected expression type ${t.expressionType} not handled here`)}$n.typecheckDimension=EEe;function AEe(t,e){if(!(0,An.expressionIsAggregate)(t.expressionType))if((0,An.expressionIsScalar)(t.expressionType))e.logError("scalar-in-measure","Cannot use a scalar field in a measure declaration, did you mean to use a dimension declaration instead?");else if((0,An.expressionIsAnalytic)(t.expressionType))e.logError("analytic-in-measure","Cannot use an analytic field in a measure declaration");else throw new Error(`Unexpected expression type ${t.expressionType} not handled here`)}$n.typecheckMeasure=AEe;function vEe(t,e){t.type==="turtle"?e.logError("view-in-declare","Views cannot be used in a declare block"):(0,An.expressionIsAnalytic)(t.expressionType)&&e.logError("analytic-in-declare","Analytic expressions can not be used in a declare block")}$n.typecheckDeclare=vEe;function _Ee(t,e){if(t.type==="turtle"||!(0,An.expressionIsAnalytic)(t.expressionType)){let n,r,i;if(t.type==="turtle")n="a nest",r="a view",i="calculate-of-view";else if((0,An.expressionIsAggregate)(t.expressionType))n="an aggregate",r="an aggregate",i="calculate-of-aggregate";else if((0,An.expressionIsScalar)(t.expressionType))n="a group_by or select",r="a scalar",i="calculate-of-scalar";else throw new Error(`Unexpected expression type ${t.expressionType} not handled here`);e.logError(i,`Cannot use ${r} field in a calculate operation, did you mean to use ${n} operation instead?`)}}$n.typecheckCalculate=_Ee;function CEe(t,e){if(t.type==="turtle"||!(0,An.expressionIsAggregate)(t.expressionType)){let n,r,i;if(t.type==="turtle")n="a nest",r="a view",i="aggregate-of-view";else if((0,An.expressionIsAnalytic)(t.expressionType))n="a calculate",r="an analytic",i="aggregate-of-analytic";else if((0,An.expressionIsScalar)(t.expressionType))n="a group_by or select",r="a scalar",i="aggregate-of-scalar";else throw new Error(`Unexpected expression type ${t} not handled here`);e.logError(i,`Cannot use ${r} field in an aggregate operation, did you mean to use ${n} operation instead?`)}}$n.typecheckAggregate=CEe;function SEe(t,e){if(t.type==="turtle"||!(0,An.expressionIsScalar)(t.expressionType)){let n,r,i;if(t.type==="turtle")n="a nest",r="a view",i="group-by-view";else if((0,An.expressionIsAnalytic)(t.expressionType))n="a calculate",r="an analytic",i="group-by-analytic";else if((0,An.expressionIsAggregate)(t.expressionType))n="an aggregate",r="an aggregate",i="group-by-aggregate";else throw new Error(`Unexpected expression type ${t.expressionType} not handled here`);e.logError(i,`Cannot use ${r} field in a group_by operation, did you mean to use ${n} operation instead?`)}}$n.typecheckGroupBy=SEe,Object.defineProperty(xt,"__esModule",{value:!0}),xt.FieldReferences=xt.WildcardFieldReference=xt.ViewOrScalarFieldReference=xt.DimensionFieldReference=xt.MeasureFieldReference=xt.DeclareFieldReference=xt.ProjectFieldReference=xt.GroupByFieldReference=xt.AggregateFieldReference=xt.IndexFieldReference=xt.CalculateFieldReference=xt.ParameterFieldReference=xt.PartitionByFieldReference=xt.ExpressionFieldReference=xt.AccessModifierFieldReference=xt.AcceptExceptFieldReference=xt.FieldReference=void 0;const bEe=K1,TEe=ns,Zz=Ge,eQ=mr,Vl=$n;class Kr extends Zz.ListOf{constructor(e){super(e),this.isNoteableObj=!0,this.extendNote=eQ.extendNoteMethod}makeEntry(e){const n=this.outputName;if(e.entry(n))this.logError("output-name-conflict",`Output already has a field named '${n}'`);else{const r=e.isQueryFieldSpace()?e.inputSpace():e;e.newEntry(n,this,new bEe.ReferenceField(this,r))}}getName(){return this.nameString}get refToField(){return{type:"fieldref",path:this.list.map(e=>e.refString)}}get refString(){return this.path.join(".")}get path(){return this.list.map(e=>e.refString)}get outputName(){return this.list[this.list.length-1].refString}get sourceString(){if(this.list.length>1)return this.list.slice(0,-1).map(e=>e.refString).join(".")}get nameString(){return this.list[this.list.length-1].refString}getField(e){const n=e.lookup(this.list);if(n.found){const r=n.found.typeDesc();this.typecheck(r)}return n}}xt.FieldReference=Kr;class REe extends Kr{constructor(){super(...arguments),this.elementType="acceptExceptFieldReference"}typecheck(){}}xt.AcceptExceptFieldReference=REe;class OEe extends Kr{constructor(){super(...arguments),this.elementType="accessModifierFieldReference"}typecheck(){}}xt.AccessModifierFieldReference=OEe;class DEe extends Kr{constructor(){super(...arguments),this.elementType="expressionFieldReference"}typecheck(){}}xt.ExpressionFieldReference=DEe;class NEe extends Kr{constructor(){super(...arguments),this.elementType="partitionByFieldReference"}typecheck(){}}xt.PartitionByFieldReference=NEe;class wEe extends Kr{constructor(){super(...arguments),this.elementType="parameterFieldReference"}typecheck(){}}xt.ParameterFieldReference=wEe;class FEe extends Kr{constructor(){super(...arguments),this.elementType="calculateFieldReference"}typecheck(e){(0,Vl.typecheckCalculate)(e,this)}}xt.CalculateFieldReference=FEe;class lD extends Kr{constructor(){super(...arguments),this.elementType="indexFieldReference"}typecheck(e){(0,Vl.typecheckIndex)(e,this)}static indexOutputName(e){return e.map(n=>encodeURIComponent(n)).join("/")}get outputName(){return lD.indexOutputName(this.path)}}xt.IndexFieldReference=lD;class LEe extends Kr{constructor(){super(...arguments),this.elementType="aggregateFieldReference"}typecheck(e){(0,Vl.typecheckAggregate)(e,this)}}xt.AggregateFieldReference=LEe;class IEe extends Kr{constructor(){super(...arguments),this.elementType="groupByFieldReference"}typecheck(e){(0,Vl.typecheckGroupBy)(e,this)}}xt.GroupByFieldReference=IEe;class BEe extends Kr{constructor(){super(...arguments),this.elementType="projectFieldReference"}typecheck(e){(0,Vl.typecheckProject)(e,this)}}xt.ProjectFieldReference=BEe;class $Ee extends Kr{constructor(){super(...arguments),this.elementType="declareFieldReference"}typecheck(e){(0,Vl.typecheckDeclare)(e,this)}}xt.DeclareFieldReference=$Ee;class kEe extends Kr{constructor(){super(...arguments),this.elementType="measureFieldReference"}typecheck(e){(0,Vl.typecheckMeasure)(e,this)}}xt.MeasureFieldReference=kEe;class PEe extends Kr{constructor(){super(...arguments),this.elementType="dimensionFieldReference"}typecheck(e){(0,Vl.typecheckDimension)(e,this)}}xt.DimensionFieldReference=PEe;class MEe extends Kr{constructor(){super(...arguments),this.elementType="viewOrScalarFieldReference"}typecheck(e){}}xt.ViewOrScalarFieldReference=MEe;class UEe extends Zz.MalloyElement{constructor(e){super(),this.joinPath=e,this.elementType="wildcardFieldReference",this.isNoteableObj=!0,this.extendNote=eQ.extendNoteMethod,this.except=new Set,this.has({joinPath:e})}getFieldDef(){throw this.internalError("fielddef request from wildcard reference")}get refString(){return this.joinPath?`${this.joinPath.refString}.*`:"*"}}xt.WildcardFieldReference=UEe;class jEe extends TEe.DefinitionList{constructor(e){super(e),this.elementType="fieldReferenceList"}}xt.FieldReferences=jEe,Object.defineProperty(L1,"__esModule",{value:!0}),L1.RefinedSource=void 0;const qEe=We,HEe=Ad,zEe=ql,QEe=xu,GEe=Cd,WEe=Sd,VEe=bd,YEe=Os,KEe=Td,JEe=Gl,XEe=Wl,ZEe=_d,eAe=bi,tQ=ho,cD=xt;class tAe extends YEe.Source{constructor(e,n,r){super({source:e,refinement:n}),this.source=e,this.refinement=n,this.includeList=r,this.elementType="refinedSource",r&&this.has({includeList:r})}getSourceDef(e){return this.withParameters(e,[])}withParameters(e,n){var r;let i,s;const o=[],u=[];let a;const l=[];for(const v of this.refinement.list){if(v instanceof JEe.ObjectAnnotation)continue;const _=v;if(v instanceof WEe.PrimaryKey){if(i){const S="multiple-primary-keys";i.logError(S,"Primary key already defined"),v.logError(S,"Primary key redefined")}i=v}else if(v instanceof GEe.FieldListEdit){if(s){const S="multiple-field-list-edits";s.logError(S,"Too many accept/except statements"),v.logError(S,"Too many accept/except statements")}s=v}else v instanceof zEe.DeclareFields||v instanceof eAe.JoinStatement||v instanceof VEe.Views||v instanceof XEe.Renames?(o.push(...v.list),v.accessModifier&&l.push({fields:v.delarationNames,access:v.accessModifier})):v instanceof QEe.Filter?u.push(v):v instanceof KEe.TimezoneStatement?a=v.tz:_.logError("unexpected-source-property",`Unexpected source property: '${_.elementType}'`)}const c=n?new ZEe.ParameterSpace(n):void 0,f=structuredClone(this.source.getSourceDef(c)),{fieldsToInclude:d,modifiers:h,renames:p,notes:g}=nAe(this.includeList,f);for(const v of l)for(const _ of v.fields)h.set(_,v.access);i&&(f.primaryKey=i.field.name);const m=HEe.RefinedSpace.filteredFrom(f,s,d,p,c);if(a&&m.setTimezone(a),n&&m.addParameters(n),m.pushFields(...o),i){const v=i.field.getField(m);v.error&&i.logError(v.error.code,v.error.message)}m.addAccessModifiers(h),m.addNotes(g);const y=m.structDef(),E=y.filterList||[];let A=!1;for(const v of u)for(const _ of v.list){const S=_.filterCondition(m);(0,qEe.expressionIsCalculation)(S.expressionType)?_.logError("aggregate-in-source-filter","Can't use aggregate computations in top level filters"):(E.push(S),A=!0)}return A?{...y,filterList:E}:((r=this.document())===null||r===void 0||r.rememberToAddModelAnnotations(y),y)}}L1.RefinedSource=tAe;function nAe(t,e){var n,r,i,s,o,u,a,l,c;const f=new Set(e.fields.map(S=>S.name)),d=new Set(e.fields.filter(S=>S.accessModifier==="private").map(S=>S.name));let h;const p=new Set;let g,m;const y=new Map,E=[],A=new Map;if(t===void 0)return{fieldsToInclude:void 0,modifiers:y,renames:E,notes:A};for(const S of t)if(S instanceof tQ.IncludeAccessItem)for(const C of S.fields)if(C.name instanceof cD.WildcardFieldReference)C.name.joinPath&&C.logError("unsupported-path-in-include","Wildcards with paths are not supported in `include` blocks"),g!==void 0?S.logError("already-used-star-in-include","Wildcard already used in this include block"):(g=(n=S.kind)!==null&&n!==void 0?n:"inherit",m={notes:(i=(r=C.note)===null||r===void 0?void 0:r.notes)!==null&&i!==void 0?i:[],blockNotes:(o=(s=S.note)===null||s===void 0?void 0:s.blockNotes)!==null&&o!==void 0?o:[]});else{if(h==="exclude"){S.logError("include-after-exclude","Cannot include specific fields if specific fields are already excluded");continue}h="include";const b=C.name.refString;d.has(b)&&C.logError("cannot-expand-access",`Cannot expand access of \`${b}\` from private to ${S.kind}`),y.has(b)?C.logError("duplicate-include",`Field \`${b}\` already referenced in include list`):(S.kind!==void 0&&y.set(b,S.kind),p.add(b),(C.note||S.note)&&A.set(b,{notes:(a=(u=C.note)===null||u===void 0?void 0:u.notes)!==null&&a!==void 0?a:[],blockNotes:(c=(l=S.note)===null||l===void 0?void 0:l.blockNotes)!==null&&c!==void 0?c:[]})),C.as&&(C.name instanceof cD.WildcardFieldReference?C.logError("wildcard-include-rename","Cannot rename a wildcard field in an `include` block"):E.push({name:C.name,as:C.as,location:C.location}))}else if(S instanceof tQ.IncludeExceptItem)for(const C of S.fields)C instanceof cD.WildcardFieldReference?C.joinPath?C.logError("unsupported-path-in-include","Wildcards with paths are not supported in `include` blocks"):C.logWarning("wildcard-except-redundant","`except: *` is implied, unless another clause uses *"):h==="include"?S.logError("exclude-after-include","Cannot exclude specific fields if specific fields are already included"):(h="exclude",g="inherit",p.add(C.refString));const v=new Set(f);p.forEach(S=>v.delete(S)),d.forEach(S=>v.delete(S));let _;if(g!==void 0)for(const S of v)g!=="inherit"&&y.set(S,g),m&&A.set(S,{...m});return h!=="exclude"?g!==void 0?_=f:_=p:_=v,{fieldsToInclude:_,modifiers:y,renames:E,notes:A}}var po={};Object.defineProperty(po,"__esModule",{value:!0}),po.SourceQueryElement=void 0;const rAe=Ge;class fD extends rAe.MalloyElement{constructor(){super(...arguments),this.errored=!1}getSource(){}getQuery(){}isSource(){return!1}sqLog(e,n,r){return this.isErrorFree()&&this.logError(e,n,r),this.errored=!0,e}isErrorFree(){if(this.errored)return!1;let e=!0;for(const n of this.walk())if(n instanceof fD&&n.errored){e=!1;break}return e}}po.SourceQueryElement=fD;var dv={},ef={};Object.defineProperty(ef,"__esModule",{value:!0}),ef.QuerySource=void 0;const iAe=Os,sAe=O2;class oAe extends iAe.Source{constructor(e){super({query:e}),this.query=e,this.elementType="querySource"}getSourceDef(e){return this.withParameters(e,void 0)}withParameters(e,n){var r;const i=this.query.queryComp(!1),s={...i.outputStruct,name:`QuerySource-${(0,sAe.v4)()}`,type:"query_source",query:i.query};return(r=this.document())===null||r===void 0||r.rememberToAddModelAnnotations(s),{...s,parameters:this.packParameters(n)}}}ef.QuerySource=oAe;var Bd={},J1={};Object.defineProperty(J1,"__esModule",{value:!0}),J1.QueryBase=void 0;const xD=it,nQ=We,uAe=pd,aAe=Ge;class lAe extends aAe.MalloyElement{resolveCompositeSource(e,n){var r;const i=n.pipeline[0];if(i&&((0,nQ.isQuerySegment)(i)||(0,nQ.isIndexSegment)(i))){const s=(r=i.compositeFieldUsage)!==null&&r!==void 0?r:(0,xD.emptyCompositeFieldUsage)();if(!(0,xD.isEmptyCompositeFieldUsage)(s)||e.type==="composite")return(0,xD.resolveCompositeSources)(e,s).sourceDef}}query(){const{query:e}=this.queryComp(!0);return{...e,pipeline:(0,uAe.detectAndRemovePartialStages)(e.pipeline,this)}}}J1.QueryBase=lAe,Object.defineProperty(Bd,"__esModule",{value:!0}),Bd.QueryArrow=void 0;const cAe=We,fAe=Os,rQ=yr,xAe=J1;class dAe extends xAe.QueryBase{constructor(e,n){super({source:e,view:n}),this.source=e,this.view=n,this.elementType="arrow"}queryComp(e){var n;let r,i,s;if(this.source instanceof fAe.Source){const d=e?this.source.structRef(void 0):{structRef:this.source.getSourceDef(void 0)};i={type:"query",...d,pipeline:[],location:this.location},r=(0,cAe.refIsStructDef)(d.structRef)?d.structRef:this.source.getSourceDef(void 0),s=new rQ.StaticSourceSpace(r)}else{const d=this.source.queryComp(e);i=d.query,r=d.outputStruct,s=new rQ.StaticSourceSpace(d.outputStruct)}const{pipeline:o,annotation:u,outputStruct:a,name:l}=this.view.pipelineComp(s),c={...i,name:l,annotation:u,pipeline:[...i.pipeline,...o]},f=(n=c.compositeResolvedSourceDef)!==null&&n!==void 0?n:this.resolveCompositeSource(r,c);return{query:{...c,compositeResolvedSourceDef:f},outputStruct:a,inputStruct:r}}}Bd.QueryArrow=dAe,Object.defineProperty(dv,"__esModule",{value:!0}),dv.SQArrow=void 0;const hAe=po,pAe=ef,mAe=Bd;class gAe extends hAe.SourceQueryElement{constructor(e,n){super({applyTo:e,operation:n}),this.applyTo=e,this.operation=n,this.elementType="sq-arrow"}getQuery(){const e=this.applyTo.isSource()?this.applyTo.getSource():this.applyTo.getQuery();if(e===void 0){this.sqLog("failed-to-compute-arrow-source","Could not get LHS of arrow operation");return}const n=new mAe.QueryArrow(e,this.operation);return this.has({query:n}),n}getSource(){const e=this.getQuery();if(!e){this.sqLog("failed-to-compute-source-from-query","Couldn't comprehend query well enough to make a source");return}const n=new pAe.QuerySource(e);return this.has({asSource:n}),n}}dv.SQArrow=gAe;var hv={},$d={},is={};Object.defineProperty(is,"__esModule",{value:!0}),is.getStructFieldDef=is.getFinalStruct=is.opOutputStruct=void 0;const iQ=bl,yAe=fc,pv=We,sQ=Fr;function oQ(t,e,n){const r=sQ.ErrorFactory.didCreate(e)||(0,pv.structHasErrors)(e);(0,pv.isPartialSegment)(n)&&(n={...n,type:"reduce"});const i=(0,pv.segmentHasErrors)(n);if(!r&&!i)try{const s=yAe.Segment.nextStructDef(e,n);if((0,pv.isSourceDef)(s))return s;t.logError("failed-to-compute-output-schema",`INTERNAL ERROR model/Segment.nextStructDef: RETURNED A NON SOURCE
|
|
1260
1260
|
STRUCTDEF: ${(0,iQ.inspect)(s,{breakLength:72,depth:1/0})}`)}catch(s){t.logError("failed-to-compute-output-schema",`INTERNAL ERROR model/Segment.nextStructDef: ${s.message}
|
|
1261
1261
|
QUERY: ${(0,iQ.inspect)(n,{breakLength:72,depth:1/0})}`)}return sQ.ErrorFactory.structDef}is.opOutputStruct=oQ;function EAe(t,e,n){for(const r of n)e=oQ(t,e,r);return e}is.getFinalStruct=EAe;function AAe(t,e){return t.fields.find(n=>(n.as||n.name)===e)}is.getStructFieldDef=AAe,Object.defineProperty($d,"__esModule",{value:!0}),$d.QueryRefine=void 0;const vAe=yr,_Ae=is,CAe=J1;class SAe extends CAe.QueryBase{constructor(e,n){super({base:e,refinement:n}),this.base=e,this.refinement=n,this.elementType="query-refine"}queryComp(e){const n=this.base.queryComp(e),r=new vAe.StaticSourceSpace(n.inputStruct),i=this.refinement.refine(r,n.query.pipeline,void 0),s={...n.query,pipeline:i},o=this.resolveCompositeSource(n.inputStruct,s);return{query:{...s,compositeResolvedSourceDef:o},outputStruct:(0,_Ae.getFinalStruct)(this.refinement,n.inputStruct,i),inputStruct:n.inputStruct}}}$d.QueryRefine=SAe;var X1={},kd={},Ti={};Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.mkTimeResult=Ti.resolution=Ti.castTo=Ti.timeOffset=void 0;const dD=We;function bAe(t,e,n,r,i){return{node:"delta",kids:{base:(0,dD.mkTemporal)(e,t),delta:r},op:n,units:i}}Ti.timeOffset=bAe;function TAe(t,e,n,r=!1){let i;return typeof t!="string"?i={node:"cast",dstSQLType:t.raw,e,safe:r}:i={node:"cast",dstType:{type:t},e,safe:r},(0,dD.isCastType)(n)&&(i.srcType={type:n}),i}Ti.castTo=TAe;function RAe(t){switch(t){case"hour":case"minute":case"second":case"microsecond":case"millisecond":return"timestamp"}return"date"}Ti.resolution=RAe;function OAe(t,e){if(e){if(t.type==="timestamp")return{...t,timeframe:e};if((0,dD.isDateUnit)(e))return{...t,timeframe:e}}return t}Ti.mkTimeResult=OAe;var tf={},at={},kt={};Object.defineProperty(kt,"__esModule",{value:!0}),kt.literalTimeResult=kt.literalExprValue=kt.computedErrorExprValue=kt.computedTimeResult=kt.computedExprValue=void 0;const uQ=Qi,hD=it;function Z1({value:t,dataType:e,from:n}){return{...e,value:t,expressionType:(0,uQ.maxOfExpressionTypes)(n.map(r=>r.expressionType)),evalSpace:(0,uQ.mergeEvalSpaces)(...n.map(r=>r.evalSpace)),compositeFieldUsage:(0,hD.mergeCompositeFieldUsage)(...n.map(r=>r.compositeFieldUsage))}}kt.computedExprValue=Z1;function DAe({value:t,dataType:e,from:n,timeframe:r}){const i=Z1({value:t,dataType:e,from:n}),s={...e,expressionType:i.expressionType,evalSpace:i.evalSpace,value:i.value,compositeFieldUsage:(0,hD.mergeCompositeFieldUsage)(...n.map(o=>o.compositeFieldUsage))};return r&&(s.timeframe=r),s}kt.computedTimeResult=DAe;function NAe({dataType:t,from:e,error:n}){return Z1({dataType:t??{type:"error"},value:{node:"error",message:n},from:e})}kt.computedErrorExprValue=NAe;function wAe(t){return Z1({...t,from:[]})}kt.literalExprValue=wAe;function FAe({value:t,dataType:e,timeframe:n}){const r=Z1({value:t,dataType:e,from:[]}),i={...e,expressionType:r.expressionType,evalSpace:r.evalSpace,value:r.value,compositeFieldUsage:(0,hD.emptyCompositeFieldUsage)()};return n&&(i.timeframe=n),i}kt.literalTimeResult=FAe;var Pd={};Object.defineProperty(Pd,"__esModule",{value:!0}),Pd.isGranularResult=void 0;function LAe(t){return t.type==="date"||t.type==="timestamp"?t.timeframe!==void 0:!1}Pd.isGranularResult=LAe;var mo={};Object.defineProperty(mo,"__esModule",{value:!0}),mo.isComparison=mo.isEquality=mo.getExprNode=void 0;function IAe(t){switch(t){case"~":return"like";case"!~":return"!like"}return t}mo.getExprNode=IAe;function aQ(t){return t==="="||t==="!="||t==="~"||t==="!~"}mo.isEquality=aQ;function BAe(t){return aQ(t)||t===">="||t==="<="||t===">"||t==="<"}mo.isComparison=BAe;var $Ae=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),kAe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),PAe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&$Ae(e,t,n);return kAe(e,t),e};Object.defineProperty(at,"__esModule",{value:!0}),at.applyBinary=at.getMorphicValue=at.ExprDuration=at.ExpressionDef=at.ATNodeType=void 0;const Yl=We,nf=PAe(Ht),pD=ts,_a=kt,MAe=Ti,lQ=Pd,UAe=Ge,em=mo;class jAe extends Error{}var mD;(function(t){t[t.And=0]="And",t[t.Or=1]="Or",t[t.Value=2]="Value",t[t.Partial=3]="Partial"})(mD||(at.ATNodeType=mD={}));class cQ extends UAe.MalloyElement{constructor(){super(...arguments),this.legalChildTypes=nf.anyAtomicT}granular(){return!1}requestExpression(e){return this.getExpression(e)}defaultFieldName(){}typeCheck(e,n){return n.type!=="error"&&!nf.any(n,this.legalChildTypes)?(n.type==="sql native"?e.logError("sql-native-not-allowed-in-expression",{rawType:n.rawType}):e.logError("expression-type-error",`'${this.elementType}' Can't use type ${nf.inspect(n)}`),!1):!0}apply(e,n,r,i=!1){return hQ(e,r,n,this)}canSupportPartitionBy(){return!1}canSupportOrderBy(){return!1}canSupportLimit(){return!1}supportsWhere(e){return(0,Yl.expressionIsAggregate)(e.expressionType)}atNodeType(){return mD.Value}atExpr(){return this}}at.ExpressionDef=cQ;class gD extends cQ{constructor(e,n){super({n:e}),this.n=e,this.timeframe=n,this.elementType="duration",this.legalChildTypes=[nf.timestampT,nf.dateT]}apply(e,n,r){const i=r.getExpression(e);if(this.typeCheck(this,i),(0,Yl.isTemporalType)(i.type)&&(n==="+"||n==="-")){const s=this.n.getExpression(e);if(!nf.typeEq(s,nf.numberT))return this.logError("invalid-duration-quantity",`Duration quantity needs number not '${s.type}`),(0,pD.errorFor)("illegal unit expression");let o;return(0,lQ.isGranularResult)(i)&&i.timeframe===this.timeframe&&(o=i.timeframe),i.type==="date"&&!(0,Yl.isDateUnit)(this.timeframe)?this.loggedErrorExpr("invalid-timeframe-for-time-offset",`Cannot offset date by ${this.timeframe}`):(0,_a.computedTimeResult)({dataType:{type:i.type},value:(0,MAe.timeOffset)(i.type,i.value,n,s.value,this.timeframe),timeframe:o,from:[i,s]})}return super.apply(e,n,r)}getExpression(e){const n=this.n.getExpression(e);return(0,_a.computedErrorExprValue)({dataType:{type:"duration"},error:"Duration is not a value",from:[n]})}}at.ExprDuration=gD;function fQ(t,e){return t.type===e?t.value:t.morphic&&t.morphic[e]}function qAe(t,e){if(t.type===e)return t;if(t.morphic&&t.morphic[e])return(0,_a.computedExprValue)({dataType:{type:e},value:t.morphic[e],from:[t]})}at.getMorphicValue=qAe;function xQ(t,e,n,r){const i=(0,Yl.isTemporalType)(e.type),s=(0,Yl.isTemporalType)(r.type),o=(0,em.getExprNode)(n);if(i&&s)if(e.type!==r.type){const u=fQ(e,"timestamp"),a=fQ(r,"timestamp");if(u&&a)return{node:o,kids:{left:u,right:u}}}else return{node:o,kids:{left:e.value,right:r.value}};if((i||s)&&e.type!=="null"&&r.type!=="null")return t.logError("time-comparison-type-mismatch",`Cannot compare a ${e.type} to a ${r.type}`),{node:"false"}}function HAe(t,e){if(t.type==="string"){if(e.type==="regular expression")return{node:"regexpMatch",kids:{expr:t.value,regex:e.value}}}else if(e.type==="string"&&t.type==="regular expression")return{node:"regexpMatch",kids:{expr:e.value,regex:t.value}}}function zAe(t,e,n,r){const i=e.getExpression(t),s=r.getExpression(t),o=(0,em.getExprNode)(n),u=tm("boolean",i,s);if(u)return u;const a=Yl.TD.isSQL(i)?i.rawType||"typeless-left":void 0,l=Yl.TD.isSQL(s)?s.rawType||"typeless-right":void 0;if((a||l)&&!(i.type==="null"||s.type==="null"||a===l)){const d=nm(e,i,r,s);if(d)return{...d,type:"boolean"}}let c=xQ(e,i,n,s)||{node:o,kids:{left:i.value,right:s.value}};if(i.type!=="error"&&s.type!=="error"&&(n==="~"||n==="!~")&&(i.type!=="string"||s.type!=="string")){let f=HAe(i,s);if(f)n[0]==="!"&&(f={node:"not",e:{...f}});else throw new jAe("Incompatible types for match('~') operator");c=f}return(0,_a.computedExprValue)({dataType:{type:"boolean"},value:c,from:[i,s]})}function QAe(t,e,n,r){const i=e.getExpression(t),s=r.getExpression(t),o=tm("boolean",i,s);if(o)return o;const u=nm(e,i,r,s);if(u)return{...u,type:"boolean"};const a=xQ(e,i,n,s)||{node:(0,em.getExprNode)(n),kids:{left:i.value,right:s.value}};return(0,_a.computedExprValue)({dataType:{type:"boolean"},value:a,from:[i,s]})}function dQ(t,e,n,r){const i=e.getExpression(t),s=r.getExpression(t),o=tm("number",i,s);if(o)return o;const u=nm(e,i,r,s);if(u)return u;if(i.type!=="number")e.logError("arithmetic-operation-type-mismatch",`The '${n}' operator requires a number, not a '${i.type}'`);else if(s.type!=="number")r.logError("arithmetic-operation-type-mismatch",`The '${n}' operator requires a number, not a '${s.type}'`);else return(0,_a.computedExprValue)({dataType:{type:"number"},value:{node:n,kids:{left:i.value,right:s.value}},from:[i,s]});return(0,pD.errorFor)("numbers required")}function GAe(t,e,n,r){const i=e.getExpression(t),s=r.getExpression(t),o=nm(e,i,r,s);if(o)return o;const u=(0,Yl.isTemporalType)(i.type),a=tm(u?"error":"number",i,s);if(a)return a;if(u){let l=r;if(s.type!=="duration")if((0,lQ.isGranularResult)(i))l=new gD(r,i.timeframe);else if(i.type==="date")l=new gD(r,"day");else return e.loggedErrorExpr("time-offset-type-mismatch",`Can not offset time by '${s.type}'`);return l.apply(t,n,e)}return dQ(t,e,n,r)}function hQ(t,e,n,r){if((0,em.isEquality)(n))return zAe(t,e,n,r);if((0,em.isComparison)(n))return QAe(t,e,n,r);if(n==="+"||n==="-")return GAe(t,e,n,r);if(n==="*")return dQ(t,e,n,r);if(n==="/"||n==="%"){const i=e.getExpression(t),s=r.getExpression(t),o=nm(e,i,r,s);if(o)return o;const u=tm("number",i,s);if(u)return u;if(i.type!=="number")e.logError("arithmetic-operation-type-mismatch","Numerator must be a number");else if(s.type!=="number")r.logError("arithmetic-operation-type-mismatch","Denominator must be a number");else{const a={node:n,kids:{left:i.value,right:s.value}};return(0,_a.computedExprValue)({dataType:{type:"number"},value:a,from:[i,s]})}return(0,pD.errorFor)("divide type mismatch")}return e.loggedErrorExpr("unexpected-binary-operator",`Cannot use ${n} operator here`)}at.applyBinary=hQ;function tm(t,...e){if(e.some(n=>n.type==="error"))return(0,_a.computedExprValue)({dataType:{type:t},value:{node:"error",message:"cascading error"},from:e})}function nm(t,e,n,r){const i=(0,_a.computedExprValue)({dataType:e,value:{node:"error",message:"sql-native unsupported"},from:[e,r]});if(e.type==="sql native")return t.logError("sql-native-not-allowed-in-expression",{rawType:e.rawType}),i.type=r.type,i;if(r.type==="sql native")return n.logError("sql-native-not-allowed-in-expression",{rawType:r.rawType}),i}Object.defineProperty(tf,"__esModule",{value:!0}),tf.ExprIdReference=void 0;const WAe=We,VAe=at,YAe=it;class KAe extends VAe.ExpressionDef{constructor(e){super(),this.fieldReference=e,this.elementType="ExpressionIdReference",this.has({fieldPath:e})}get refString(){return this.fieldReference.refString}getExpression(e){const n=this.fieldReference.getField(e),r=this.fieldReference.list.map(i=>i.name).slice(0,-1);if(n.found){const i=n.found.typeDesc(),s=(0,YAe.joinedCompositeFieldUsage)(r,i.compositeFieldUsage);if(n.isOutputField)return{...i,evalSpace:i.evalSpace==="constant"?"constant":"output",value:{node:"outputField",name:this.refString},compositeFieldUsage:s};const o={node:n.found.refType,path:this.fieldReference.path},u=(0,WAe.expressionIsAggregate)(i.expressionType)?"output":i.evalSpace;return{...i,value:o,evalSpace:u,compositeFieldUsage:s}}return this.loggedErrorExpr(n.error.code,n.error.message)}}tf.ExprIdReference=KAe,Object.defineProperty(kd,"__esModule",{value:!0}),kd.NamedSource=void 0;const yD=We,JAe=Os,XAe=Fr,ZAe=Ti,pQ=Ge,eve=tf,tve=_d;class nve extends JAe.Source{constructor(e,n,r){super(),this.ref=e,this.sourceArguments=n,this.args=r,this.elementType="namedSource",r&&this.has({args:r}),e instanceof pQ.ModelEntryReference&&this.has({ref:e})}get refName(){return this.ref instanceof pQ.ModelEntryReference?this.ref.name:this.ref}structRef(e){const n=this.modelEntry(this.ref);return n&&!n.exported?{structRef:this.getSourceDef(e)}:{structRef:this.refName,sourceArguments:this.evaluateArgumentsForRef(e)}}refLogError(e,n,r){typeof this.ref=="string"?this.logError(e,n,r):this.ref.logError(e,n,r)}modelStruct(){var e;const n=this.modelEntry(this.ref),r=n==null?void 0:n.entry;if(!r){this.refLogError("source-not-found",`Undefined source '${this.refName}'`);return}if(r.type==="query"){this.logError("invalid-source-from-query",`Cannot construct a source from query '${this.refName}'`);return}else if(r.type==="function"){this.logError("invalid-source-from-function",`Cannot construct a source from a function '${this.refName}'`);return}else if(r.type==="connection"){this.logError("invalid-source-from-connection",`Cannot construct a source from a connection '${this.refName}'`);return}else if((e=this.document())===null||e===void 0||e.checkExperimentalDialect(this,r.dialect),(0,yD.isSourceDef)(r))return{...r};this.logError("invalid-source-source","Cannot construct a source from a never type")}evaluateArgumentsForRef(e){const n=this.modelStruct();return n===void 0?{}:this.evaluateArguments(e,n.parameters,[])}evaluateArguments(e,n,r){var i,s;const o={...this.sourceArguments},u=new Set;for(const a of(i=this.args)!==null&&i!==void 0?i:[]){const l=(s=a.id)!==null&&s!==void 0?s:a.value instanceof eve.ExprIdReference?a.value.fieldReference:void 0;if(l===void 0){a.value.logError("unnamed-source-argument","Parameterized source arguments must be named with `parameter_name is`");continue}const c=l.outputName;if(u.has(c)){a.logError("duplicate-source-argument",`Cannot pass argument for \`${c}\` more than once`);continue}u.add(c);const f=(n??{})[c];if(!f)l.logError("source-parameter-not-found",`\`${this.refName}\` has no declared parameter named \`${l.refString}\``);else{const d=e??new tve.ParameterSpace(r??[]),h=a.value.getExpression(d);let p=h.value;h.type!==f.type&&(0,yD.isCastType)(f.type)&&(p=(0,ZAe.castTo)(f.type,h.value,h.type,!0)),o[c]={...f,value:p}}}for(const a in n)a in o||((0,yD.paramHasValue)(n[a])?o[a]={...n[a]}:this.refLogError("missing-source-argument",`Argument not provided for required parameter \`${a}\``));return o}getSourceDef(e){return this.withParameters(e,[])}withParameters(e,n){var r;const i=this.modelStruct();if(!i){const a=XAe.ErrorFactory.structDef,l=`${this.refName}-undefined`;return a.name=a.name+l,a.dialect=a.dialect+l,a}const s={};for(const a of n??[]){const l=a.parameter();s[l.name]=l}const o=this.evaluateArguments(e,i.parameters,n),u={...i,parameters:s,arguments:o};return(r=this.document())===null||r===void 0||r.rememberToAddModelAnnotations(u),u}}kd.NamedSource=nve;var rm={},mv={};Object.defineProperty(mv,"__esModule",{value:!0}),mv.QueryHeadStruct=void 0;const rve=We,ive=Os,sve=kd;class ove extends ive.Source{constructor(e,n){super(),this.fromRef=e,this.sourceArguments=n,this.elementType="internalOnlyQueryHead"}structRef(){return{structRef:this.fromRef}}getSourceDef(e){if((0,rve.refIsStructDef)(this.fromRef))return this.fromRef;const n=new sve.NamedSource(this.fromRef,this.sourceArguments,void 0);return this.has({exploreReference:n}),n.getSourceDef(e)}}mv.QueryHeadStruct=ove,Object.defineProperty(rm,"__esModule",{value:!0}),rm.QueryReference=void 0;const ED=Fr,uve=Ge,ave=mv,lve=We,cve=is;class fve extends uve.MalloyElement{constructor(e){super(),this.name=e,this.elementType="query-reference"}queryComp(e){const n=this.modelEntry(this.name),r=n==null?void 0:n.entry,i=function(){return{inputStruct:ED.ErrorFactory.structDef,outputStruct:ED.ErrorFactory.structDef,query:ED.ErrorFactory.query}};if(!r)return this.logError("query-reference-not-found",`Reference to undefined query '${this.name.refString}'`),i();if(r.type==="query"){const s=new ave.QueryHeadStruct(r.structRef,r.sourceArguments);this.has({queryHead:s});const o=s.getSourceDef(void 0),u=(0,cve.getFinalStruct)(this,o,r.pipeline);return{query:e||(0,lve.refIsStructDef)(r.structRef)?r:{...r,structRef:o},outputStruct:u,inputStruct:o}}return this.logError("non-query-used-as-query",`Illegal reference to '${this.name}', query expected`),i()}query(){return this.queryComp(!0).query}}rm.QueryReference=fve,Object.defineProperty(X1,"__esModule",{value:!0}),X1.SQReference=void 0;const xve=po,dve=ef,hve=kd,mQ=rm,gQ=Qi;class pve extends xve.SourceQueryElement{constructor(e,n){super({ref:e}),this.ref=e,this.args=n,this.elementType="sq-reference",n!==void 0&&this.has({args:n})}getQuery(){const e=this.ref.getNamed();if(e)if(e.type==="query"){const n=new mQ.QueryReference(this.ref);return this.has({query:n}),n}else this.sqLog("cannot-use-as-query",`Illegal reference to '${e.as||e.name}', query expected`);else this.ref.logError("source-or-query-not-found",`Reference to undefined object '${this.ref.refString}'`),this.errored=!0}isSource(){const e=this.ref.getNamed();return e!==void 0&&(0,gQ.isSourceDef)(e)}getSource(){if(this.asSource)return this.asSource;const e=this.ref.getNamed();if(!e){this.ref.logError("source-not-found",`Reference to undefined object '${this.ref.refString}'`),this.errored=!0;return}if(e.type==="query"){this.args!==void 0&&this.ref.logError("illegal-query-argument","Arguments cannot be passed to queries");const n=new mQ.QueryReference(this.ref);this.asSource=new dve.QuerySource(n)}else if((0,gQ.isSourceDef)(e))this.asSource=new hve.NamedSource(this.ref,void 0,this.args);else{this.sqLog("cannot-use-struct-as-source",`Expected '${this.ref.refString}' to be of type query or source, not '${e.type}'`);return}return this.has({asSource:this.asSource}),this.asSource}}X1.SQReference=pve,Object.defineProperty(hv,"__esModule",{value:!0}),hv.SQRefine=void 0;const mve=po,gve=ef,yve=$d,Eve=X1;class Ave extends mve.SourceQueryElement{constructor(e,n){super({toRefine:e,refine:n}),this.toRefine=e,this.refine=n,this.elementType="sq-refine"}getQuery(){if(this.toRefine.isSource()){this.toRefine instanceof Eve.SQReference?this.sqLog("illegal-refinement-of-source",`Cannot add view refinements to '${this.toRefine.ref.refString}' because it is a source`):this.sqLog("illegal-refinement-of-source","Cannot add view refinements to a source");return}const e=this.toRefine.getQuery();if(e){const n=new yve.QueryRefine(e,this.refine);return this.has({query:n}),n}}getSource(){const e=this.getQuery();if(e){const n=new gve.QuerySource(e);return this.has({queryAsSource:n}),n}}}hv.SQRefine=Ave;var gv={},im={};Object.defineProperty(im,"__esModule",{value:!0}),im.QueryRaw=void 0;const vve=We,_ve=Ge;class Cve extends _ve.MalloyElement{constructor(e){super({source:e}),this.source=e,this.elementType="query-raw"}queryComp(e){const n=e?this.source.structRef(void 0):{structRef:this.source.getSourceDef(void 0)},r=(0,vve.refIsStructDef)(n.structRef)?n.structRef:this.source.getSourceDef(void 0);return{query:{type:"query",...n,pipeline:[{type:"raw",fields:[]}],location:this.location},outputStruct:r,inputStruct:r}}query(){return this.queryComp(!0).query}}im.QueryRaw=Cve;var sm={},yv={};Object.defineProperty(yv,"__esModule",{value:!0}),yv.makeSQLSentence=void 0;const Sve=We,bve=Dt;function Tve(t,e){return{name:`sql://${e}/${Rve(t)}`,connection:e,select:t}}yv.makeSQLSentence=Tve;function Rve(t){const e=t.map(n=>(0,Sve.isSegmentSQL)(n)?n.sql:JSON.stringify(n));return(0,bve.generateHash)(e.join(";"))}Object.defineProperty(sm,"__esModule",{value:!0}),sm.SQLSource=void 0;const Ove=yv,Dve=Os,Ev=Fr;class Nve extends Dve.Source{constructor(e,n){super({connectionName:e,select:n}),this.connectionName=e,this.select=n,this.elementType="sqlSource",this.connectionNameInvalid=!1}sqlSentence(){return this.requestBlock||(this.requestBlock=(0,Ove.makeSQLSentence)(this.select.sqlPhrases(),this.connectionName.refString)),this.requestBlock}structRef(){return{structRef:this.getSourceDef()}}validateConnectionName(){var e;const n=this.modelEntry(this.connectionName),r=this.connectionName.refString;if(this.connectionNameInvalid)return!1;if(n===void 0)(e=this.namespace())===null||e===void 0||e.setEntry(r,{entry:{type:"connection",name:r},exported:!0},!0);else if(n.entry.type!=="connection")return this.connectionName.logError("invalid-connection-for-sql-source",`${this.connectionName.refString} is not a connection`),this.connectionNameInvalid=!0,!1;return!0}needs(e){var n;if(!this.validateConnectionName())return;const r=super.needs(e);if(r)return r;const i=this.sqlSentence(),s=(n=this.translator())===null||n===void 0?void 0:n.root.sqlQueryZone;if(!s){this.logError("failed-to-fetch-sql-source-schema","Cant't look up schema for sql block");return}s.reference(i.name,this.location);const o=s.getEntry(i.name);if(o.status==="reference")return{compileSQL:i,partialModel:this.select.containsQueries?e.modelDef():void 0};o.status==="present"&&e.checkExperimentalDialect(this,o.value.dialect)}getSourceDef(){var e;if(!this.validateConnectionName())return Ev.ErrorFactory.structDef;const n=(e=this.translator())===null||e===void 0?void 0:e.root.sqlQueryZone;if(!n)return this.logError("failed-to-fetch-sql-source-schema","Cant't look up schema for sql block"),Ev.ErrorFactory.structDef;const r=this.sqlSentence();n.reference(r.name,this.location);const i=n.getEntry(r.name);if(i.status==="error"){const s=i.message.split(/\r?\n/);return this.select.logError("invalid-sql-source","Invalid SQL, "+s.join(`
|
|
1262
|
-
`)),Ev.ErrorFactory.structDef}else if(i.status==="present"){const s=this.select.location,o={...i.value,fields:i.value.fields.map(l=>({...l,location:s})),location:this.location},u=this.document(),a=u==null?void 0:u.currentModelAnnotation();return a&&(o.modelAnnotation=a),o}else return this.logError("non-top-level-sql-source","`connection_name.sql(...)` can currently only be used in top level source/query definitions"),Ev.ErrorFactory.structDef}}sm.SQLSource=Nve,Object.defineProperty(gv,"__esModule",{value:!0}),gv.SQSource=void 0;const wve=po,Fve=im,Lve=sm;class Ive extends wve.SourceQueryElement{constructor(e){super({theSource:e}),this.theSource=e,this.elementType="sq-source"}isSource(){return!0}getSource(){return this.theSource}getQuery(){if(this.theSource instanceof Lve.SQLSource){const e=new Fve.QueryRaw(this.theSource);return this.has({rawQuery:e}),e}else this.sqLog("invalid-source-as-query","This source cannot be used as a query")}}gv.SQSource=Ive;var Av={};Object.defineProperty(Av,"__esModule",{value:!0}),Av.SQExtend=void 0;const Bve=L1,$ve=po;class kve extends $ve.SourceQueryElement{constructor(e,n,r){super({sqSrc:e,extend:n}),this.sqSrc=e,this.extend=n,this.includeList=r,this.elementType="sq-extend"}getSource(){if(this.asSource)return this.asSource;const e=this.sqSrc.getSource();if(e)return this.asSource=new Bve.RefinedSource(e,this.extend,this.includeList),this.has({asSource:this.asSource}),this.asSource;this.sqLog("failed-to-compute-source-to-extend","Could not compute source to extend")}isSource(){return!0}}Av.SQExtend=kve;var vv={},_v={};Object.defineProperty(_v,"__esModule",{value:!0}),_v.CompositeSource=void 0;const Pve=We,Mve=Os;class Uve extends Mve.Source{constructor(e){super({sources:e}),this.sources=e,this.elementType="compositeSource"}getSourceDef(e){return this.withParameters(e,[])}withParameters(e,n){const r=this.sources.map(l=>l.withParameters(e,n)),i=r[0].connection,s=r[0].dialect,o="composite_source",u=[],a=new Map;return this.sources.forEach((l,c)=>{var f;const d=r[c];d.connection!==i&&l.logError("composite-source-connection-mismatch",`All sources in a composite source must share the same connection; connection \`${d.connection}\` differs from previous connection \`${i}\``);for(const h of d.fields){if(!(0,Pve.isAtomic)(h)){l.logWarning("composite-source-atomic-fields-only",`Only atomic fields are supported in composite sources; field \`${h.name}\` is not atomic and will be ignored`);continue}if(h.accessModifier==="private")continue;const p=(f=h.as)!==null&&f!==void 0?f:h.name,g=a.get(p);if(g===void 0){const m={...h,name:p,as:void 0,e:{node:"compositeField"},compositeFieldUsage:{fields:[p],joinedUsage:{}},code:this.code,location:this.codeLocation};a.set(p,m),u.push(m)}else h.accessModifier==="internal"&&(g.accessModifier="internal")}}),{type:"composite",sources:r,connection:i,fields:u,dialect:s,name:o,parameters:r[0].parameters}}}_v.CompositeSource=Uve,Object.defineProperty(vv,"__esModule",{value:!0}),vv.SQCompose=void 0;const jve=_v,qve=po;class Hve extends qve.SourceQueryElement{constructor(e){super({sources:e}),this.sources=e,this.elementType="sq-compose"}getSource(){if(this.asSource)return this.asSource;const e=this.sources.map(n=>n.getSource());if(e.length===0){this.sqLog("empty-composite-source","Composite source must have at least one input source");return}else e.length===1&&this.sqLog("unnecessary-composite-source","A composite source with one input is equivalent to that input",{severity:"warn"});if(zve(e))return this.asSource=new jve.CompositeSource(e),this.has({asSource:this.asSource}),this.asSource;this.sqLog("invalid-composite-source-input","All composite source inputs must be valid sources")}isSource(){return!0}}vv.SQCompose=Hve;function zve(t){return t.every(e=>e!==void 0)}var Cv={},Ca={},om={},Qve=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),Gve=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Wve=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&Qve(e,t,n);return Gve(e,t),e};Object.defineProperty(om,"__esModule",{value:!0}),om.BinaryBoolean=void 0;const Vve=ts,Yve=Wve(Ht),Kve=mo,Jve=kt,Xve=at;class Zve extends Xve.ExpressionDef{constructor(e,n,r){super({left:e,right:r}),this.left=e,this.op=n,this.right=r,this.elementType="abstract boolean binary",this.legalChildTypes=[Yve.boolT]}getExpression(e){const n=this.left.getExpression(e),r=this.right.getExpression(e);return this.typeCheck(this.left,n)&&this.typeCheck(this.right,r)?(0,Jve.computedExprValue)({dataType:{type:"boolean"},value:{node:(0,Kve.getExprNode)(this.op),kids:{left:n.value,right:r.value}},from:[n,r]}):(0,Vve.errorFor)("logical-op expected boolean")}}om.BinaryBoolean=Zve;var e_e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),t_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),n_e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&e_e(e,t,n);return t_e(e,t),e};Object.defineProperty(Ca,"__esModule",{value:!0}),Ca.ExprLegacyIn=Ca.ExprEquality=Ca.ExprCompare=void 0;const Jt=n_e(Ht),r_e=kt,i_e=at,s_e=om,o_e={"~":[Jt.stringT],"!~":[Jt.stringT],"<":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT],"<=":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT],"=":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT],"!=":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT],">=":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT],">":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT]};class yQ extends s_e.BinaryBoolean{constructor(e,n,r){super(e,n,r),this.elementType="a<=>b",this.legalChildTypes=o_e[n]}getExpression(e){return this.right.apply(e,this.op,this.left)}}Ca.ExprCompare=yQ;class u_e extends yQ{constructor(e,n,r){super(e,n,r),this.elementType="a~=b"}getExpression(e){return this.right.apply(e,this.op,this.left,!0)}apply(e,n,r){return super.apply(e,n,r,!0)}}Ca.ExprEquality=u_e;class a_e extends i_e.ExpressionDef{constructor(e,n,r){super(),this.expr=e,this.notIn=n,this.choices=r,this.elementType="in",this.has({expr:e,choices:r})}getExpression(e){const n=this.expr.getExpression(e),r=this.choices.map(i=>i.getExpression(e));return(0,r_e.computedExprValue)({dataType:{type:"boolean"},value:{node:"in",not:this.notIn,kids:{e:n.value,oneOf:r.map(i=>i.value)}},from:[n,...r]})}}Ca.ExprLegacyIn=a_e;var um={},Md={};Object.defineProperty(Md,"__esModule",{value:!0}),Md.ExprTime=void 0;const l_e=We,c_e=kt,f_e=at;class AD extends f_e.ExpressionDef{constructor(e,n,r){super(),this.elementType="timestampOrDate",this.elementType=e,this.translationValue=(0,c_e.computedExprValue)({dataType:{type:e},value:n,from:r??[]})}getExpression(e){return this.translationValue}static fromValue(e,n){let r=n.value;if(e!==n.type){const i={node:"cast",safe:!1,dstType:{type:e},e:n.value};(0,l_e.isTemporalType)(n.type)&&(i.srcType={type:n.type}),r=i}return new AD(e,r,[n])}}Md.ExprTime=AD;var Kl={};Object.defineProperty(Kl,"__esModule",{value:!0}),Kl.Range=void 0;const x_e=ts,d_e=kt,h_e=at;class p_e extends h_e.ExpressionDef{constructor(e,n){super({first:e,last:n}),this.first=e,this.last=n,this.elementType="range"}apply(e,n,r){switch(n){case"=":case"!=":{const i=n==="="?">=":"<",s=n==="="?"and":"or",o=n==="="?"<":">=",u=this.first.apply(e,i,r),a=this.last.apply(e,o,r);return(0,d_e.computedExprValue)({dataType:{type:"boolean"},value:{node:s,kids:{left:u.value,right:a.value}},from:[u,a]})}case">":return this.last.apply(e,">=",r);case">=":return this.first.apply(e,">=",r);case"<":return this.first.apply(e,"<",r);case"<=":return this.last.apply(e,"<",r)}throw new Error("mysterious error in range computation")}requestExpression(e){}getExpression(e){return this.logError("range-as-value","A Range is not a value"),(0,x_e.errorFor)("a range is not a value")}}Kl.Range=p_e;var m_e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),g_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),y_e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&m_e(e,t,n);return g_e(e,t),e};Object.defineProperty(um,"__esModule",{value:!0}),um.ExprGranularTime=void 0;const vD=We,E_e=ts,EQ=y_e(Ht),AQ=Ti,A_e=at,Sv=Md,vQ=Kl;class v_e extends A_e.ExpressionDef{constructor(e,n,r){super({expr:e}),this.expr=e,this.units=n,this.truncate=r,this.elementType="granularTime",this.legalChildTypes=[EQ.timestampT,EQ.dateT]}granular(){return!0}getExpression(e){const n=this.units,r=this.expr.getExpression(e);if(vD.TD.isTemporal(r)){const s={...r,timeframe:n};return this.truncate&&(s.value={node:"trunc",e:(0,vD.mkTemporal)(r.value,r.type),units:n}),s}r.type!=="error"&&this.logError("unsupported-type-for-time-truncation",`Cannot do time truncation on type '${r.type}'`);const i={...r};return r.type==="error"&&(i.type=(0,vD.isDateUnit)(n)?"date":"timestamp"),{...i,value:(0,E_e.errorFor)("granularity typecheck").value,evalSpace:"constant"}}toRange(e){const n=this.getExpression(e),r={node:"numberLiteral",literal:"1"};if(n.type==="timestamp"){const u=Sv.ExprTime.fromValue("timestamp",n),a=new Sv.ExprTime("timestamp",(0,AQ.timeOffset)("timestamp",n.value,"+",r,this.units),[n]);return new vQ.Range(u,a)}const i=new Sv.ExprTime("date",n.value,[n]),s=(0,AQ.timeOffset)("date",n.value,"+",r,this.units),o=new Sv.ExprTime("date",s,[n]);return new vQ.Range(i,o)}}um.ExprGranularTime=v_e,Object.defineProperty(Cv,"__esModule",{value:!0}),Cv.Apply=void 0;const __e=Ca,C_e=Pd,_Q=um;class S_e extends __e.ExprCompare{constructor(e,n){super(e,"=",n),this.left=e,this.right=n,this.elementType="apply"}getExpression(e){let n=this.right;if(!this.right.granular()){const r=this.right.requestExpression(e);r&&(0,C_e.isGranularResult)(r)&&(n=new _Q.ExprGranularTime(this.right,r.timeframe,!1))}return n instanceof _Q.ExprGranularTime?n.toRange(e).apply(e,this.op,this.left):super.getExpression(e)}}Cv.Apply=S_e;var Ud={},b_e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),T_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),R_e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&b_e(e,t,n);return T_e(e,t),e};Object.defineProperty(Ud,"__esModule",{value:!0}),Ud.BinaryNumeric=void 0;const O_e=R_e(Ht),D_e=at;class N_e extends D_e.ExpressionDef{constructor(e,n,r){super({left:e,right:r}),this.left=e,this.op=n,this.right=r,this.elementType="numeric binary abstract",this.legalChildTypes=[O_e.numberT]}getExpression(e){return this.right.apply(e,this.op,this.left)}}Ud.BinaryNumeric=N_e;var bv={},w_e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),F_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),L_e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&w_e(e,t,n);return F_e(e,t),e};Object.defineProperty(bv,"__esModule",{value:!0}),bv.Boolean=void 0;const I_e=at,B_e=L_e(Ht);let $_e=class extends I_e.ExpressionDef{constructor(e){super(),this.value=e,this.elementType="boolean literal"}getExpression(){return{...B_e.boolT,value:{node:this.value}}}};bv.Boolean=$_e;var Jl={};Object.defineProperty(Jl,"__esModule",{value:!0}),Jl.FunctionOrdering=Jl.FunctionOrderBy=void 0;const _D=We,CQ=Ge,k_e=tf;class P_e extends CQ.MalloyElement{constructor(e,n){super(),this.field=e,this.dir=n,this.elementType="orderBy",e&&this.has({field:e})}getAnalyticOrderBy(e){if(!this.field)return this.logError("analytic-order-by-missing-field","analytic `order_by` must specify an aggregate expression or output field reference"),{node:"functionOrderBy",e:{node:"error"},dir:this.dir};const n=this.field.getExpression(e);return(0,_D.expressionIsAggregate)(n.expressionType)||((0,_D.expressionIsScalar)(n.expressionType)?(!(this.field instanceof k_e.ExprIdReference)||n.evalSpace==="input")&&this.field.logError("analytic-order-by-not-output","analytic `order_by` must be an aggregate or an output field reference"):this.field.logError("analytic-order-by-not-aggregate-or-output","analytic `order_by` must be scalar or aggregate")),{node:"functionOrderBy",e:n.value,dir:this.dir}}getAggregateOrderBy(e,n){if(this.field){const r=this.field.getExpression(e);return(0,_D.expressionIsScalar)(r.expressionType)||this.field.logError("aggregate-order-by-not-scalar","aggregate `order_by` must be scalar"),n||this.field.logError("aggregate-order-by-expression-not-allowed","`order_by` must be only `asc` or `desc` with no expression"),{node:"functionOrderBy",e:r.value,dir:this.dir}}else return this.dir===void 0?(this.logError("aggregate-order-by-without-field-or-direction","field or order direction must be specified"),{node:"functionDefaultOrderBy",dir:"asc"}):{node:"functionDefaultOrderBy",dir:this.dir}}}Jl.FunctionOrderBy=P_e;class M_e extends CQ.ListOf{constructor(e){super(e),this.elementType="function-ordering"}getAnalyticOrderBy(e){return this.list.map(n=>n.getAnalyticOrderBy(e))}getAggregateOrderBy(e,n){return this.list.map(r=>r.getAggregateOrderBy(e,n))}}Jl.FunctionOrdering=M_e;var Tv={};Object.defineProperty(Tv,"__esModule",{value:!0}),Tv.ExprAddSub=void 0;const U_e=Ud;class j_e extends U_e.BinaryNumeric{constructor(){super(...arguments),this.elementType="+-"}}Tv.ExprAddSub=j_e;var Sa={},q_e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),H_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),z_e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&q_e(e,t,n);return H_e(e,t),e};Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.ExprAggregateFunction=void 0;const am=We,Q_e=Dt,G_e=ts,SQ=yr,bQ=z_e(Ht),W_e=xt,V_e=at,Y_e=gr,K_e=tf;class J_e extends V_e.ExpressionDef{constructor(e,n,r){super(),this.func=e,this.legalChildTypes=[bQ.numberT],this.elementType=e,this.explicitSource=r,n&&(this.expr=n,this.has({expr:n}))}getExpression(e){var n,r,i;const s=e.isQueryFieldSpace()?e.inputSpace():e;let o=this.expr,u=(n=this.expr)===null||n===void 0?void 0:n.getExpression(s),a=(r=this.source)===null||r===void 0?void 0:r.path,l=[];if(this.source){const f=this.source.getField(s);if(f.found){l=f.joinPath;const d=f.found,h=d.typeDesc();if(!(d instanceof SQ.StructSpaceField))if((0,am.isAtomicFieldType)(h.type)){o=this.source,u={...bQ.atomicDef(h),expressionType:h.expressionType,value:h.evalSpace==="output"?{node:"outputField",name:this.source.refString}:{node:"field",path:this.source.path},evalSpace:h.evalSpace,compositeFieldUsage:h.compositeFieldUsage},a=this.source.path.slice(0,-1);const p=this.getJoinUsage(s);(p.length===1||p.length>1&&p.slice(1).every(m=>X_e(m,p[0])))&&(a=p[0].map(m=>m.name),l=p[0])}else return this.loggedErrorExpr("invalid-aggregate-source",`Aggregate source cannot be a ${h.type}`)}else return this.loggedErrorExpr("aggregate-source-not-found",`Reference to undefined value ${this.source.refString}`)}if(u===void 0)return this.loggedErrorExpr("missing-aggregate-expression","Missing expression for aggregate function");if((0,am.expressionIsAggregate)(u.expressionType))return this.loggedErrorExpr("aggregate-of-aggregate","Aggregate expression cannot be aggregate");if(!(u.type==="error")){const f=this.getJoinUsage(s),d=this.source!==void 0||this.explicitSource;if(o&&!(!this.source&&f.every(p=>p.length===0))&&!this.isSymmetricFunction()){const p=SD(l,f),g=bD(this.elementType,p),m=d?g==null?void 0:g.message:"Join path is required for this calculation";if(m){const y=Z_e(m,f,o,this.elementType),E=(i=g==null?void 0:g.code)!==null&&i!==void 0?i:"bad-join-usage";g?this.logError(E,y):this.logWarning(E,y)}}}if(this.typeCheck(this.expr||this,{...u,expressionType:"scalar"})){const f={node:"aggregate",function:this.func,e:u.value};return a&&a.length>0&&(f.structPath=a),{...this.returns(u),expressionType:"aggregate",value:f,evalSpace:"output"}}return(0,G_e.errorFor)("aggregate type check")}isSymmetricFunction(){return!0}getJoinUsage(e){const n=[];if(this.source&&this.source.getField(e).found){const i={node:"field",path:this.source.path};n.push(...CD(e,i))}if(this.expr){const r=this.expr.getExpression(e).value;n.push(...CD(e,r))}return n}}Sa.ExprAggregateFunction=J_e;function X_e(t,e){let n=t.length;if(n!==e.length)return!1;for(;n>0;)if(n-=1,t[n].name!==e[n].name)return!1;return!0}function CD(t,e){const n=[],r=(i,s)=>{const o=s[0],u=s.slice(1),a=i.entry(o);if(a===void 0)throw new Error(`Invalid field lookup ${o}`);if(a instanceof SQ.StructSpaceField&&u.length>0){const l=r(a.fieldSpace,u);return{...l,joinPath:[{...a.joinPathElement,name:o},...l.joinPath]}}else if(a instanceof Y_e.SpaceField){if(u.length!==0)throw new Error(`${o} cannot contain a ${u.join(".")}`);const l=a.fieldDef();if(l)return{fs:i,def:l,joinPath:[]};throw new Error("No field def")}else throw new Error("expected a field def or struct")};for(const i of(0,Q_e.exprWalk)(e))if(i.node==="field"){const s=r(t,i.path),o=s.def;if((0,am.isAtomic)(o)&&!(0,am.isJoined)(o))if((0,am.hasExpression)(o)){const u=CD(s.fs,o.e);n.push(...u.map(a=>[...s.joinPath,...a]))}else n.push(s.joinPath)}else if(i.node==="source-reference")if(i.path){const s=r(t,i.path);n.push(s.joinPath)}else n.push([]);return n}function SD(t,e){const n=[];for(const r of e){let i=0;for(let a=0;a<t.length&&a<r.length&&t[a].name===r[a].name;a++)i=a+1;const s=t.slice(i),o=r.slice(i),u=[...s.map(a=>({...a,reverse:!0})),...o.map(a=>({...a,reverse:!1}))];n.push(u)}return n}function bD(t,e){for(const n of e)for(const r of n){if(r.joinType==="cross")return{code:"aggregate-traverses-join-cross",message:`Cannot compute \`${t}\` across \`join_cross\` relationship \`${r.name}\``};if(r.joinElementType==="array"&&!r.reverse)return{code:"aggregate-traverses-repeated-relationship",message:`Cannot compute \`${t}\` across repeated relationship \`${r.name}\``};if(r.joinType==="many"&&!r.reverse)return{code:"aggregate-traverses-join-many",message:`Cannot compute \`${t}\` across \`join_many\` relationship \`${r.name}\``}}}function Z_e(t,e,n,r){if(e.length===0)return t;let i=e[0];for(const p of e.slice(1))for(let g=0;g<i.length;g++){const m=i[g],y=p[g];if(m.name!==y.name){i=i.slice(0,g);break}}const s=SD(i,e),o=bD(r,s),u=i.slice().reverse().findIndex(p=>p.joinType==="many"||p.joinType==="cross"),a=u===-1?0:i.length-u,l=i.slice(0,a),c=SD(l,e),f=bD(r,c),d=i.length>0?i.map(p=>p.name).join("."):"source",h=l.length>0?l.map(p=>p.name).join("."):"source";if(o)return"Aggregated dimensional expression contains multiple join paths; rewrite, for example `sum(first_join.field + second_join.field)` as `first_join.field.sum() + second_join.field.sum()`";{const p=n instanceof W_e.FieldReference?`${n.refString}.${r}()`:n instanceof K_e.ExprIdReference?`${n.fieldReference.refString}.${r}()`:`${d}.${r}(${n.code})`,g=`${h}.${r}(${n.code})`;let m=`${t}; use \`${p}\``;return f===void 0&&h!==d&&(m+=` or \`${g}\` to get a result weighted with respect to \`${h}\``),m}}var Rv={};Object.defineProperty(Rv,"__esModule",{value:!0}),Rv.ExprAlternationTree=void 0;const TQ=kt,jd=at,e5e=mo;function TD(t){const e=t.atExpr();switch(e.atNodeType()){case jd.ATNodeType.And:case jd.ATNodeType.Partial:return;case jd.ATNodeType.Or:{if(e instanceof RQ){const n=TD(e.left);if(n){const r=TD(e.right);if(r)return[...n,...r]}}return}default:return e.granular()?void 0:[e]}}class RQ extends jd.ExpressionDef{constructor(e,n,r){super({left:e,right:r}),this.left=e,this.op=n,this.right=r,this.elementType="alternation",this.elementType=`${n}alternation${n}`}equalityList(){return this.inList===void 0&&(this.inList=TD(this)||[]),this.inList}apply(e,n,r,i){if((0,e5e.isEquality)(n)){const u=this.equalityList();if(u.length>0&&(n==="="||n==="!=")){const a=r.getExpression(e),l=u.map(c=>c.getExpression(e));return(0,TQ.computedExprValue)({dataType:{type:"boolean"},value:{node:"in",not:n==="!=",kids:{e:a.value,oneOf:l.map(c=>c.value)}},from:[a,...l]})}u.length===0&&i&&this.logWarning("or-choices-only",`Only | seperated values are legal when used with ${n} operator`)}const s=this.left.apply(e,n,r),o=this.right.apply(e,n,r);return(0,TQ.computedExprValue)({dataType:{type:"boolean"},value:{node:this.op==="&"?"and":"or",kids:{left:s.value,right:o.value}},from:[s,o]})}requestExpression(e){}getExpression(e){return this.loggedErrorExpr("alternation-as-value","Alternation tree has no value")}atNodeType(){return this.op==="|"?jd.ATNodeType.Or:jd.ATNodeType.And}}Rv.ExprAlternationTree=RQ;var qd={};Object.defineProperty(qd,"__esModule",{value:!0}),qd.ExprAsymmetric=void 0;const t5e=Sa;class n5e extends t5e.ExprAggregateFunction{constructor(e,n,r,i){super(e,n,i),this.func=e,this.expr=n,this.source=r,this.has({source:r})}isSymmetricFunction(){return!1}returns(e){return e}defaultFieldName(){if(this.source&&this.expr===void 0){const e=this.source.nameString;switch(this.func){case"sum":return`total_${e}`;case"avg":return`avg_${e}`}}}}qd.ExprAsymmetric=n5e;var Ov={};Object.defineProperty(Ov,"__esModule",{value:!0}),Ov.ExprAvg=void 0;const r5e=qd;class i5e extends r5e.ExprAsymmetric{constructor(e,n,r){super("avg",e,n,r),this.has({source:n})}}Ov.ExprAvg=i5e;var Dv={};Object.defineProperty(Dv,"__esModule",{value:!0}),Dv.ExprCast=void 0;const s5e=Ti,o5e=kt,u5e=at;class a5e extends u5e.ExpressionDef{constructor(e,n,r=!1){super({expr:e}),this.expr=e,this.castType=n,this.safe=r,this.elementType="cast"}getExpression(e){const n=this.expr.getExpression(e);let r={type:"error"};if(typeof this.castType=="string")r={type:this.castType};else{const i=e.dialectObj();i&&(i.validateTypeName(this.castType.raw)?r=i.sqlTypeToMalloyType(this.castType.raw):this.logError("invalid-sql-native-type",`Cast type \`${this.castType.raw}\` is invalid for ${i.name} dialect`),this.safe&&!i.supportsSafeCast&&this.logError("dialect-cast-unsafe-only",`The SQL dialect '${e.dialectName()}' does not supply a safe cast operator`))}return(0,o5e.computedExprValue)({dataType:r,value:(0,s5e.castTo)(this.castType,n.value,n.type,this.safe),from:[n]})}}Dv.ExprCast=a5e;var Nv={},l5e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),c5e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),f5e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&l5e(e,t,n);return c5e(e,t),e};Object.defineProperty(Nv,"__esModule",{value:!0}),Nv.ExprCoalesce=void 0;const OQ=Qi,DQ=f5e(Ht),x5e=at;class d5e extends x5e.ExpressionDef{constructor(e,n){super({expr:e,altExpr:n}),this.expr=e,this.altExpr=n,this.elementType="coalesce expression",this.legalChildTypes=DQ.anyAtomicT}getExpression(e){const n=this.expr.getExpression(e),r=this.altExpr.getExpression(e);return n.type==="null"?r:(DQ.typeEq(n,r)||this.logError("mismatched-coalesce-types",`Mismatched types for coalesce (${n.type}, ${r.type})`),{...n.type==="error"?r:n,expressionType:(0,OQ.maxExpressionType)(n.expressionType,r.expressionType),value:{node:"coalesce",kids:{left:n.value,right:r.value}},evalSpace:(0,OQ.mergeEvalSpaces)(n.evalSpace,r.evalSpace)})}}Nv.ExprCoalesce=d5e;var wv={};Object.defineProperty(wv,"__esModule",{value:!0}),wv.ExprCount=void 0;const h5e=it,p5e=Sa;class m5e extends p5e.ExprAggregateFunction{constructor(e){super("count"),this.source=e,this.elementType="count",this.has({source:e})}defaultFieldName(){if(this.source)return"count_"+this.source.nameString}returns(e){return{type:"number",numberType:"integer",evalSpace:e.evalSpace,expressionType:"aggregate",value:e.value,compositeFieldUsage:e.compositeFieldUsage}}getExpression(e){const n={node:"aggregate",function:"count",e:{node:""}};return this.source&&(n.structPath=this.source.path),{type:"number",numberType:"integer",expressionType:"aggregate",value:n,evalSpace:"output",compositeFieldUsage:(0,h5e.emptyCompositeFieldUsage)()}}}wv.ExprCount=m5e;var Fv={},g5e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),y5e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),E5e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&g5e(e,t,n);return y5e(e,t),e};Object.defineProperty(Fv,"__esModule",{value:!0}),Fv.ExprCountDistinct=void 0;const Lv=E5e(Ht),A5e=Sa;class v5e extends A5e.ExprAggregateFunction{constructor(e){super("distinct",e),this.legalChildTypes=[Lv.numberT,Lv.stringT,Lv.dateT,Lv.timestampT]}returns(e){return{type:"number",numberType:"integer",evalSpace:e.evalSpace,expressionType:"aggregate",value:e.value,compositeFieldUsage:e.compositeFieldUsage}}}Fv.ExprCountDistinct=v5e;var Iv={},Xl={};Object.defineProperty(Xl,"__esModule",{value:!0}),Xl.Limit=void 0;const _5e=Ge,C5e=Rn;class S5e extends _5e.MalloyElement{constructor(e){super(),this.limit=e,this.elementType="limit",this.queryRefinementStage=C5e.LegalRefinementStage.Tail,this.forceQueryClass=void 0}}Xl.Limit=S5e;var Hd={};Object.defineProperty(Hd,"__esModule",{value:!0}),Hd.PartitionBy=void 0;const b5e=Ge;class T5e extends b5e.ListOf{constructor(e){super(e),this.partitionFields=e,this.elementType="partition_by"}}Hd.PartitionBy=T5e;var lm={},Zl={};Object.defineProperty(Zl,"__esModule",{value:!0}),Zl.FieldName=void 0;const R5e=Ge;class O5e extends R5e.MalloyElement{constructor(e){super(),this.name=e,this.elementType="fieldName"}get refString(){return this.name}toString(){return this.refString}getField(e){return e.lookup([this])}}Zl.FieldName=O5e;var D5e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),N5e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),w5e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&D5e(e,t,n);return N5e(e,t),e};Object.defineProperty(lm,"__esModule",{value:!0}),lm.ExprFunc=void 0;const Kn=We,F5e=ts,L5e=Vc,I5e=kt,B5e=at,$5e=Zl,NQ=Dt,wQ=w5e(Ht),k5e=it;class P5e extends B5e.ExpressionDef{constructor(e,n,r,i,s){super({args:n}),this.name=e,this.args=n,this.isRaw=r,this.rawType=i,this.source=s,this.elementType="function call()",this.has({source:s})}canSupportPartitionBy(){return!0}canSupportOrderBy(){return!0}canSupportLimit(){return!0}getExpression(e){return this.getPropsExpression(e)}findFunctionDef(e){var n,r,i;const s=this.name.toLowerCase(),o=e?(r=(n=this.getDialectNamespace(e))===null||n===void 0?void 0:n.getEntry(s))===null||r===void 0?void 0:r.entry:void 0,u=o??((i=this.modelEntry(s))===null||i===void 0?void 0:i.entry);return u===void 0?(this.logError("function-not-found",`Unknown function '${this.name}'. Use '${this.name}!(...)' to call a SQL function directly.`),{found:void 0,error:"unknown function"}):u.type!=="function"?(this.logError("call-of-non-function",`'${this.name}' (with type ${u.type}) is not a function`),{found:void 0,error:"called non function"}):(u.name!==this.name&&this.logWarning("case-insensitive-function",`Case insensitivity for function names is deprecated, use '${u.name}' instead`),{found:u,error:void 0})}getPropsExpression(e,n){var r,i,s,o;const u=this.args.map(N=>N.getExpression(e));if(this.isRaw){const N=[`${this.name}(`];u.forEach((q,J)=>{J!==0&&N.push(","),N.push(q.value)}),N.push(")");const I=(r=u[0])!==null&&r!==void 0?r:{type:"number"},P=this.rawType?{type:this.rawType}:I;return(0,I5e.computedExprValue)({dataType:P,value:(0,NQ.composeSQLExpr)(N),from:u})}const a=(i=e.dialectObj())===null||i===void 0?void 0:i.name,{found:l,error:c}=this.findFunctionDef(a);if(l===void 0)return(0,F5e.errorFor)(c);let f,d=(s=this.source)===null||s===void 0?void 0:s.path;if(this.source){const I=this.source.getField(e).found;if(I){const P=I.typeDesc();if((0,Kn.isAtomicFieldType)(P.type))f={...wQ.atomicDef(P),expressionType:P.expressionType,value:{node:"field",path:this.source.path},evalSpace:P.evalSpace,compositeFieldUsage:P.compositeFieldUsage},d=this.source.path.slice(0,-1);else if(!(I instanceof L5e.StructSpaceFieldBase))return this.loggedErrorExpr("invalid-aggregate-source",`Aggregate source cannot be a ${P.type}`)}else this.loggedErrorExpr("aggregate-source-not-found",`Reference to undefined value ${this.source.refString}`)}const h=[...f?[f]:[],...u],p=M5e(l,h);if(p===void 0)return this.loggedErrorExpr("no-matching-function-overload",`No matching overload for function ${this.name}(${h.map(N=>N.type).join(", ")})`);const{overload:g,expressionTypeErrors:m,evalSpaceErrors:y,nullabilityErrors:E,returnType:A}=p;for(const N of m){const I=N.argIndex-(f?1:0),P=(0,Kn.expressionIsScalar)(N.maxExpressionType)?"scalar":"scalar or aggregate";this.args[I].logError("invalid-function-argument-expression-type",`Parameter ${N.argIndex+1} ('${N.param.name}') of ${this.name} must be ${P}, but received ${N.actualExpressionType}`)}for(const N of y){const I=N.argIndex-(f?1:0),P=N.maxEvalSpace==="literal"?"literal":N.maxEvalSpace==="constant"?"literal or constant":"literal, constant or output";this.args[I].logError("invalid-function-argument-evaluation-space",`Parameter ${N.argIndex+1} ('${N.param.name}') of ${this.name} must be ${P}, but received ${N.actualEvalSpace}`)}for(const N of E){const I=N.argIndex-(f?1:0);this.args[I].logError("literal-null-function-argument",`Parameter ${N.argIndex+1} ('${N.param.name}') of ${this.name} must not be a literal null`)}p.returnTypeError&&this.logError(p.returnTypeError.code,p.returnTypeError.parameters);const v=g.returnType,_=(0,Kn.maxOfExpressionTypes)([(o=v.expressionType)!==null&&o!==void 0?o:"scalar",...h.map(N=>N.expressionType)]);if(!(0,Kn.expressionIsAggregate)(g.returnType.expressionType)&&this.source!==void 0)return this.loggedErrorExpr("non-aggregate-function-with-source",`Cannot call function ${this.name}(${h.map(N=>N.type).join(", ")}) with source`);const S={node:"function_call",overload:g,name:this.name,kids:{args:h.map(N=>N.value)},expressionType:_,structPath:d};let C=S;if(n!=null&&n.orderBys&&n.orderBys.length>0){const N=(0,Kn.expressionIsAnalytic)(g.returnType.expressionType);if(N||this.inExperiment("aggregate_order_by",!0)||n.orderBys[0].logError("aggregate-order-by-experiment-not-enabled","Enable experiment `aggregate_order_by` to use `order_by` with an aggregate function"),g.supportsOrderBy||N){const I=g.supportsOrderBy!=="only_default",P=n.orderBys.flatMap(q=>N?q.getAnalyticOrderBy(e):q.getAggregateOrderBy(e,I));S.kids.orderBy=P}else n.orderBys[0].logError("function-does-not-support-order-by",`Function \`${this.name}\` does not support \`order_by\``)}if((n==null?void 0:n.limit)!==void 0&&(g.supportsLimit?S.limit=n.limit.limit:this.logError("function-does-not-support-limit",`Function ${this.name} does not support limit`)),n!=null&&n.partitionBys&&n.partitionBys.length>0){const N=[];for(const I of n.partitionBys)for(const P of I.partitionFields){const q=P.getField(e);q.found===void 0?P.logError("partition-by-not-found",`${P.refString} is not defined`):(0,Kn.expressionIsAnalytic)(q.found.typeDesc().expressionType)||(0,Kn.expressionIsUngroupedAggregate)(q.found.typeDesc().expressionType)?P.logError("non-scalar-or-aggregate-partition-by","Partition expression must be scalar or aggregate"):N.push(P.nameString)}S.partitionBy=N}if(["sql_number","sql_string","sql_date","sql_timestamp","sql_boolean"].includes(l.name)){if(!this.inExperiment("sql_functions",!0))return this.loggedErrorExpr("sql-functions-experiment-not-enabled",`Cannot use sql_function \`${l.name}\`; use \`sql_functions\` experiment to enable this behavior`);const N=h[0].value;if(N.node!=="stringLiteral")this.logError("invalid-sql-function-argument",`Invalid string literal for \`${l.name}\``);else{const I=N.literal,P=U5e(I),q=P.filter(W=>W.type==="interpolation"&&W.name.includes(".")).map(W=>W.type==="interpolation"?`\${${W.name}}`:`\${${W.value}}`);if(q.length>0){const W=q.length===1?`'.' paths are not yet supported in sql interpolations, found ${q.at(0)}`:`'.' paths are not yet supported in sql interpolations, found (${q.join(", ")})`;return this.loggedErrorExpr("unsupported-sql-function-interpolation",W)}const J=[];for(const W of P)if(W.type==="string")J.push(W.value);else if(W.name==="TABLE")J.push({node:"source-reference"});else{const ue=new $5e.FieldName(W.name);this.has({name:ue});const ge=e.lookup([ue]);if(ge.found===void 0)return this.loggedErrorExpr("sql-function-interpolation-not-found",`Invalid interpolation: ${ge.error.message}`);ge.found.refType==="parameter"?J.push({node:"parameter",path:[W.name]}):J.push({node:"field",path:[W.name]})}C=(0,NQ.composeSQLExpr)(J)}}const b=(0,Kn.mergeEvalSpaces)(...h.map(N=>N.evalSpace)),R=b==="constant"?"constant":(0,Kn.expressionIsScalar)(_)?b:"output";return{...(0,Kn.isAtomic)(A)?wQ.atomicDef(A):A,expressionType:_,value:C,evalSpace:R,compositeFieldUsage:(0,k5e.mergeCompositeFieldUsage)(...h.map(N=>N.compositeFieldUsage))}}}lm.ExprFunc=P5e;function M5e(t,e){var n;for(const r of t.overloads){const i=new Map;let s=0,o=!0,u=!1;const a=[],l=[],c=[];for(let h=0;h<e.length;h++){const p=e[h],g=r.params[s];if(g===void 0){o=!1;break}if(!g.allowedTypes.some(y=>{var E;const{dataTypeMatch:A,genericsSet:v}=zd(i,(E=r.genericTypes)!==null&&E!==void 0?E:[],p,y);for(const _ of v)i.set(_.name,_.type);return y.expressionType&&((0,Kn.isExpressionTypeLEQ)(p.expressionType,y.expressionType)||a.push({argIndex:h,maxExpressionType:y.expressionType,actualExpressionType:p.expressionType,param:g})),(y.evalSpace==="literal"&&p.evalSpace!=="literal"||y.evalSpace==="constant"&&(p.evalSpace==="input"||p.evalSpace==="output")||(0,Kn.expressionIsAnalytic)(r.returnType.expressionType)&&p.evalSpace==="input")&&l.push({argIndex:h,param:g,maxEvalSpace:y.evalSpace,actualEvalSpace:p.evalSpace}),y.evalSpace==="literal"&&p.type==="null"&&c.push({argIndex:h,param:g}),A})){o=!1;break}g.isVariadic?h===e.length-1&&(u=!0):s++}if(!u&&(s!==e.length||s!==r.params.length))continue;const f=Bv(r.returnType,i),d=(n=f.returnType)!==null&&n!==void 0?n:{type:"number"};if(o)return{overload:r,expressionTypeErrors:a,evalSpaceErrors:l,nullabilityErrors:c,returnTypeError:f.error,returnType:d}}}function U5e(t){const e=[];let n=t;for(;n.length;){const r=n.indexOf("${");if(r===-1){e.push({type:"string",value:n});break}else{const i=n.slice(r).indexOf("}");if(i===-1){e.push({type:"string",value:n});break}r>0&&e.push({type:"string",value:n.slice(0,r)}),e.push({type:"interpolation",name:n.slice(r+2,i+r)}),n=n.slice(i+r+1)}}return e}function zd(t,e,n,r){var i,s,o,u;if(Kn.TD.eq(r,n)||r.type==="any"||r.type!=="generic"&&(n.type==="null"||n.type==="error"))return{dataTypeMatch:!0,genericsSet:[]};if(r.type==="array"&&n.type==="array"){if((0,Kn.isScalarArray)(n))return(0,Kn.isRepeatedRecordFunctionParam)(r)?{dataTypeMatch:!1,genericsSet:[]}:zd(t,e,n.elementTypeDef,r.elementTypeDef);if((0,Kn.isRepeatedRecordFunctionParam)(r)){const a={type:"record",fields:r.fields},l={type:"record",fields:n.fields};return zd(t,e,l,a)}else return{dataTypeMatch:!1,genericsSet:[]}}else if(r.type==="record"&&n.type==="record"){const a=[],l=new Map;for(const c of r.fields)l.set((i=c.as)!==null&&i!==void 0?i:c.name,c);for(const c of n.fields){const f=l.get((s=c.as)!==null&&s!==void 0?s:c.name);if(f===void 0)return{dataTypeMatch:!1,genericsSet:[]};const d=zd(new Map([...t.entries(),...a.map(h=>[h.name,h.type])]),e,c,f);a.push(...d.genericsSet)}return{dataTypeMatch:!0,genericsSet:a}}else if(r.type==="generic"){const a=t.get(r.generic);if(a!==void 0&&a.type!=="null"&&a.type!=="error")return zd(t,e,n,a);const l=(u=(o=e.find(c=>c.name===r.generic))===null||o===void 0?void 0:o.acceptibleTypes)!==null&&u!==void 0?u:[];for(const c of l){const f=zd(t,e,n,c);if(f.dataTypeMatch){if(!(0,Kn.isAtomic)(n)&&n.type!=="null")continue;const d={name:r.generic,type:n};return{dataTypeMatch:!0,genericsSet:[...f.genericsSet,d]}}}}return{dataTypeMatch:!1,genericsSet:[]}}function Bv(t,e){switch(t.type){case"array":{if("fields"in t){const i=t.fields.map(s=>{const o=Bv(s,e);return{...s,...o}});return{error:void 0,returnType:{type:"array",elementTypeDef:t.elementTypeDef,fields:i}}}const n=Bv(t.elementTypeDef,e);if(n.error)return n;const r=n.returnType;return r.type==="record"?{error:void 0,returnType:{type:"array",elementTypeDef:{type:"record_element"},fields:r.fields}}:(0,Kn.isAtomic)(r)?{error:void 0,returnType:{type:"array",elementTypeDef:r}}:{error:{code:"invalid-resolved-type-for-array",parameters:"Invalid resolved type for array; cannot be non-atomic"},returnType:void 0}}case"record":return{error:void 0,returnType:{type:"record",fields:t.fields.map(r=>{const i=Bv(r,e);return{...r,...i}})}};case"generic":{const n=e.get(t.generic);return n===void 0?{error:{code:"generic-not-resolved",parameters:`Generic ${t.generic} in return type could not be resolved`},returnType:void 0}:{error:void 0,returnType:n}}default:return{error:void 0,returnType:t}}}var j5e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),q5e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),H5e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&j5e(e,t,n);return q5e(e,t),e};Object.defineProperty(Iv,"__esModule",{value:!0}),Iv.ExprProps=void 0;const z5e=We,Q5e=ts,G5e=H5e(Ht),W5e=Jl,V5e=Xl,Y5e=Hd,K5e=at,J5e=lm,X5e=it;class Z5e extends K5e.ExpressionDef{constructor(e,n){super({expr:e,statements:n}),this.expr=e,this.statements=n,this.elementType="expression with props",this.legalChildTypes=G5e.anyAtomicT}getFilteredExpression(e,n,r){if(r.length>0){if(!this.expr.supportsWhere(n))return this.expr.logError("filter-of-non-aggregate","Filtered expression requires an aggregate computation"),n;const i=[];for(const s of r){const o=s.getFilterList(e);if(o.find(u=>(0,z5e.expressionIsCalculation)(u.expressionType)))return s.logError("aggregate-filter-expression-not-scalar","Cannot filter an expresion with an aggregate or analytical computation"),n;i.push(...o)}return this.typeCheck(this.expr,{...n,expressionType:"scalar"})?{...n,compositeFieldUsage:(0,X5e.mergeCompositeFieldUsage)(n.compositeFieldUsage,...i.map(s=>s.compositeFieldUsage)),value:{node:"filteredExpr",kids:{e:n.value,filterList:i}}}:(this.expr.logError("filter-of-non-aggregate",`Cannot filter '${n.expressionType}' data`),(0,Q5e.errorFor)("cannot filter type"))}return n}getExpression(e){const n=[];let r;const i=[],s=[];for(const u of this.statements)u instanceof Y5e.PartitionBy?this.expr.canSupportPartitionBy()?n.push(u):u.logError("partition-by-of-non-window-function","`partition_by` is not supported for this kind of expression"):u instanceof V5e.Limit?r?u.logError("expression-limit-already-specified","limit already specified"):this.expr.canSupportLimit()?r=u:u.logError("limit-of-non-aggregate-function","`limit` is not supported for this kind of expression"):u instanceof W5e.FunctionOrdering?this.expr.canSupportOrderBy()?i.push(u):u.logError("order-by-of-non-aggregate-function","`order_by` is not supported for this kind of expression"):s.push(u);const o=this.expr instanceof J5e.ExprFunc?this.expr.getPropsExpression(e,{partitionBys:n,limit:r,orderBys:i}):this.expr.getExpression(e);return this.getFilteredExpression(e,o,s)}}Iv.ExprProps=Z5e;var $v={},eCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),tCe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),nCe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&eCe(e,t,n);return tCe(e,t),e};Object.defineProperty($v,"__esModule",{value:!0}),$v.ExprLogicalOp=void 0;const rCe=om,FQ=nCe(Ht);class iCe extends rCe.BinaryBoolean{constructor(){super(...arguments),this.elementType="logical operator",this.legalChildTypes=[FQ.boolT,FQ.aggregateBoolT]}}$v.ExprLogicalOp=iCe;var kv={},sCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),oCe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),uCe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&sCe(e,t,n);return oCe(e,t),e};Object.defineProperty(kv,"__esModule",{value:!0}),kv.ExprMax=void 0;const Pv=uCe(Ht),aCe=Sa;class lCe extends aCe.ExprAggregateFunction{constructor(e){super("max",e),this.legalChildTypes=[Pv.numberT,Pv.stringT,Pv.dateT,Pv.timestampT]}returns(e){return e}}kv.ExprMax=lCe;var Mv={},cCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),fCe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),xCe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&cCe(e,t,n);return fCe(e,t),e};Object.defineProperty(Mv,"__esModule",{value:!0}),Mv.ExprMin=void 0;const Uv=xCe(Ht),dCe=Sa;class hCe extends dCe.ExprAggregateFunction{constructor(e){super("min",e),this.legalChildTypes=[Uv.numberT,Uv.stringT,Uv.dateT,Uv.timestampT]}returns(e){return e}}Mv.ExprMin=hCe;var jv={},pCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),mCe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),gCe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&pCe(e,t,n);return mCe(e,t),e};Object.defineProperty(jv,"__esModule",{value:!0}),jv.ExprMinus=void 0;const yCe=ts,LQ=gCe(Ht),ECe=at;class ACe extends ECe.ExpressionDef{constructor(e){super({expr:e}),this.expr=e,this.elementType="unary minus",this.legalChildTypes=[LQ.numberT]}getExpression(e){const n=this.expr.getExpression(e);return LQ.typeIn(n,this.legalChildTypes)?{...n,type:"number",value:{node:"unary-",e:n.value}}:(0,yCe.errorFor)("negate requires number")}}jv.ExprMinus=ACe;var qv={};Object.defineProperty(qv,"__esModule",{value:!0}),qv.ExprMulDiv=void 0;const vCe=Ud;class _Ce extends vCe.BinaryNumeric{constructor(){super(...arguments),this.elementType="*/%"}}qv.ExprMulDiv=_Ce;var Hv={},cm={};Object.defineProperty(cm,"__esModule",{value:!0}),cm.Unary=void 0;const CCe=at;class SCe extends CCe.ExpressionDef{constructor(e){super({expr:e}),this.expr=e}}cm.Unary=SCe;var bCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),TCe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),RCe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&bCe(e,t,n);return TCe(e,t),e};Object.defineProperty(Hv,"__esModule",{value:!0}),Hv.ExprNot=void 0;const RD=RCe(Ht),OCe=cm;class DCe extends OCe.Unary{constructor(e){super(e),this.elementType="not",this.legalChildTypes=[RD.boolT,RD.nullT]}getExpression(e){var n;const r=this.expr.getExpression(e);!((n=e.dialectObj())===null||n===void 0)&&n.booleanAsNumbers&&this.legalChildTypes.find(s=>s.type==="number")===void 0&&this.legalChildTypes.push(RD.numberT);const i=this.typeCheck(this.expr,r);return{...r,type:"boolean",value:{node:"not",e:i?r.value:{node:"false"}}}}}Hv.ExprNot=DCe;var zv={};Object.defineProperty(zv,"__esModule",{value:!0}),zv.ExprNow=void 0;const NCe=at,wCe=it;class FCe extends NCe.ExpressionDef{constructor(){super(...arguments),this.elementType="timestamp"}getExpression(e){return{type:"timestamp",expressionType:"scalar",evalSpace:"constant",value:{node:"now"},compositeFieldUsage:(0,wCe.emptyCompositeFieldUsage)()}}}zv.ExprNow=FCe;var e0={};Object.defineProperty(e0,"__esModule",{value:!0}),e0.ExprIsNull=e0.PartialIsNull=e0.ExprNULL=void 0;const LCe=kt,Qv=at;function OD(t,e,n){const r=n.getExpression(t);return r.type="boolean",r.value={node:e==="="?"is-null":"is-not-null",e:r.value},r}class ICe extends Qv.ExpressionDef{constructor(){super(...arguments),this.elementType="NULL"}getExpression(){return(0,LCe.literalExprValue)({dataType:{type:"null"},value:{node:"null"}})}apply(e,n,r){return n==="!="||n==="="?OD(e,n,r):super.apply(e,n,r,!0)}}e0.ExprNULL=ICe;class BCe extends Qv.ExpressionDef{constructor(e){super(),this.op=e,this.elementType="<=> NULL"}apply(e,n,r){return OD(e,this.op,r)}requestExpression(e){}getExpression(e){return this.loggedErrorExpr("partial-as-value","Partial null check does not have a value")}atNodeType(){return Qv.ATNodeType.Partial}}e0.PartialIsNull=BCe;class $Ce extends Qv.ExpressionDef{constructor(e,n){super(),this.expr=e,this.op=n,this.elementType="is null",this.has({expr:e})}getExpression(e){return OD(e,this.op,this.expr)}}e0.ExprIsNull=$Ce;var Gv={};Object.defineProperty(Gv,"__esModule",{value:!0}),Gv.ExprNumber=void 0;const kCe=kt,PCe=at;class MCe extends PCe.ExpressionDef{constructor(e){super(),this.n=e,this.elementType="numeric literal"}getExpression(e){return this.constantExpression()}constantExpression(){const e=Number(this.n),n=Number.isNaN(e)?{type:"number"}:{type:"number",numberType:Number.isInteger(e)?"integer":"float"};return(0,kCe.literalExprValue)({dataType:n,value:{node:"numberLiteral",literal:this.n}})}}Gv.ExprNumber=MCe;var Wv={};Object.defineProperty(Wv,"__esModule",{value:!0}),Wv.ExprParens=void 0;const DD=at;class UCe extends DD.ExpressionDef{constructor(e){super({expr:e}),this.expr=e,this.elementType="(expression)"}requestExpression(e){return this.expr.requestExpression(e)}getExpression(e){const n=this.expr.getExpression(e);return{...n,value:{node:"()",e:n.value}}}apply(e,n,r,i){return this.expr.atNodeType()===DD.ATNodeType.Or?this.expr.apply(e,n,r,i):(0,DD.applyBinary)(e,r,n,this)}atNodeType(){return this.expr.atNodeType()}atExpr(){return this.expr}}Wv.ExprParens=UCe;var Vv={};Object.defineProperty(Vv,"__esModule",{value:!0}),Vv.ExprRegEx=void 0;const jCe=kt,qCe=at;class HCe extends qCe.ExpressionDef{constructor(e){super(),this.regex=e,this.elementType="regular expression literal"}getExpression(){return(0,jCe.literalExprValue)({dataType:{type:"regular expression"},value:{node:"regexpLiteral",literal:this.regex}})}}Vv.ExprRegEx=HCe;var Yv={};Object.defineProperty(Yv,"__esModule",{value:!0}),Yv.ExprString=void 0;const zCe=at,QCe=kt;class GCe extends zCe.ExpressionDef{constructor(e){super(),this.elementType="string literal",this.value=e}getExpression(e){return(0,QCe.literalExprValue)({dataType:{type:"string"},value:{node:"stringLiteral",literal:this.value}})}}Yv.ExprString=GCe;var Kv={};Object.defineProperty(Kv,"__esModule",{value:!0}),Kv.ExprSum=void 0;const WCe=qd;class VCe extends WCe.ExprAsymmetric{constructor(e,n,r){super("sum",e,n,r),this.has({source:n})}}Kv.ExprSum=VCe;var Jv={};Object.defineProperty(Jv,"__esModule",{value:!0}),Jv.ExprTimeExtract=void 0;const ba=We,Xv=kt,ND=at,YCe=Kl;class fm extends ND.ExpressionDef{static extractor(e){const n=fm.pluralMap[e];if(n)return n;if((0,ba.isExtractUnit)(e))return e}constructor(e,n){super({args:n}),this.extractText=e,this.args=n,this.elementType="timeExtract"}getExpression(e){const n=fm.extractor(this.extractText);if(n){if(this.args.length!==1)return this.loggedErrorExpr("too-many-arguments-for-time-extraction",`Extraction function ${n} requires one argument`);const r=this.args[0];if(r instanceof YCe.Range){let i=r.first.getExpression(e),s=r.last.getExpression(e);if(i.type==="error"||s.type==="error")return(0,Xv.computedErrorExprValue)({dataType:{type:"number"},error:"extract from error",from:[i,s]});if(!(0,ba.isTemporalType)(i.type))return r.first.loggedErrorExpr("invalid-type-for-time-extraction",`Can't extract ${n} from '${i.type}'`);if(!(0,ba.isTemporalType)(s.type))return r.last.loggedErrorExpr("invalid-type-for-time-extraction",`Cannot extract ${n} from '${s.type}'`);let o=i.type;if(!ba.TD.eq(i,s)){let u=!0;if(o="timestamp",i.type==="date"){const a=(0,ND.getMorphicValue)(i,"timestamp");a&&(i=a,u=!1)}else{const a=(0,ND.getMorphicValue)(s,"timestamp");a&&(s=a,u=!1)}if(u)return r.first.loggedErrorExpr("invalid-types-for-time-measurement",`Cannot measure from ${i.type} to ${s.type}`)}return["week","month","quarter","year"].includes(n)?this.loggedErrorExpr("invalid-timeframe-for-time-measurement",`Cannot measure interval using '${n}'`):(0,ba.isTimestampUnit)(n)?(0,Xv.computedExprValue)({dataType:{type:"number",numberType:"integer"},value:{node:"timeDiff",units:n,kids:{left:(0,ba.mkTemporal)(i.value,o),right:(0,ba.mkTemporal)(s.value,o)}},from:[i,s]}):this.loggedErrorExpr("invalid-time-extraction-unit",`Cannot extract ${n} from a range`)}else{const i=r.getExpression(e);return(0,ba.isTemporalType)(i.type)?(0,Xv.computedExprValue)({dataType:{type:"number",numberType:"integer"},value:{node:"extract",e:(0,ba.mkTemporal)(i.value,i.type),units:n},from:[i]}):(i.type!=="error"&&this.logError("unsupported-type-for-time-extraction",`${this.extractText}() requires time type, not '${i.type}'`),(0,Xv.computedErrorExprValue)({dataType:{type:"number",numberType:"integer"},error:`${this.extractText} bad type ${i.type}`,from:[i]}))}}throw this.internalError(`Illegal extraction unit '${this.extractText}'`)}}Jv.ExprTimeExtract=fm,fm.pluralMap={years:"year",quarters:"quarter",months:"month",weeks:"week",days:"day",hours:"hour",minutes:"minute",seconds:"second"};var Zv={},go={},e_={};Object.defineProperty(e_,"__esModule",{value:!0}),e_.QueryInputSpace=void 0;const KCe=bi,JCe=Ad;class XCe extends JCe.RefinedSpace{constructor(e,n,r){super(e),this.queryOutput=n,this._isProtectedAccessSpace=r,this.extendList=[]}extendSource(e){this.pushFields(e),e instanceof KCe.Join?this.extendList.push(e.name.refString):this.extendList.push(e.defineName)}isQueryFieldSpace(){return!0}outputSpace(){return this.queryOutput}inputSpace(){return this}isProtectedAccessSpace(){return this._isProtectedAccessSpace}}e_.QueryInputSpace=XCe;var ZCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),eSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),tSe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&ZCe(e,t,n);return eSe(e,t),e};Object.defineProperty(go,"__esModule",{value:!0}),go.ReduceFieldSpace=go.QuerySpace=go.QueryOperationSpace=void 0;const t_=tSe(We),wD=jl,IQ=Zl,BQ=gr,nSe=xt,rSe=Ad,iSe=B1,sSe=yr,oSe=e_,hu=it,uSe=Vc;class $Q extends rSe.RefinedSpace{get compositeFieldUsage(){if(this._compositeFieldUsage===void 0)throw new Error("Composite field usage accessed before computed");return this._compositeFieldUsage}constructor(e,n,r,i){super(e.emptyStructDef()),this.queryInputSpace=e,this.nestParent=r,this.astEl=i,this.expandedWild={},this.compositeFieldUsers=[],this._compositeFieldUsage=void 0,this.exprSpace=new oSe.QueryInputSpace(e.structDef(),this,e.isProtectedAccessSpace()),n&&this.addRefineFromFields(n)}logError(e,n,r){return this.astEl&&this.astEl.logError(e,n,r),e}inputSpace(){return this.exprSpace}outputSpace(){return this}addWild(e){var n;let r=this.exprSpace;const i=[];if(e.joinPath)for(const u of e.joinPath.list){const a=u.refString;i.push(a);const l=r.entry(a);if(l)if(l instanceof sSe.StructSpaceField)r=l.fieldSpace;else{u.logError("invalid-wildcard-source",`Field '${a}' does not contain rows and cannot be expanded with '*'`);return}else{u.logError("wildcard-source-not-defined",`No such field as '${a}'`);return}}const s=this.dialectObj(),o=[];for(const[u,a]of r.entries())if(!e.except.has(u)&&a.refType!=="parameter")if(this.entry(u)){const l=(n=this.expandedWild[u])===null||n===void 0?void 0:n.path.join(".");e.logError("name-conflict-in-wildcard-expansion",`Cannot expand '${u}' in '${e.refString}' because a field with that name already exists${l?` (conflicts with ${l})`:""}`)}else{const l=a.typeDesc();t_.TD.isAtomic(l)&&t_.expressionIsScalar(l.expressionType)&&(s===void 0||!s.ignoreInProject(u))&&(o.push({name:u,entry:a}),this.expandedWild[u]={path:i.concat(u),entry:a})}for(const u of o.sort((a,l)=>a.name.localeCompare(l.name)))this.newEntry(u.name,e,u.entry)}addValidatedCompositeFieldUserFromEntry(e,n){n instanceof BQ.SpaceField&&this.compositeFieldUsers.push({type:"field",name:e,field:n,logTo:void 0})}getJoinOnCompositeFieldUsage(e){var n;const r=e.map(s=>new IQ.FieldName(s));this.astEl.has({reference:r});const i=this.exprSpace.lookup(r);if(i.found&&i.found instanceof uSe.StructSpaceFieldBase)return(0,hu.joinedCompositeFieldUsage)(e.slice(0,-1),(n=i.found.fieldDef().onCompositeFieldUsage)!==null&&n!==void 0?n:(0,hu.emptyCompositeFieldUsage)());throw new Error("Unexpected join lookup was not found or not a struct")}getCompositeFieldUsageIncludingJoinOns(e){let n=e;const r=(0,hu.compositeFieldUsageJoinPaths)(e);for(const i of r)n=(0,hu.mergeCompositeFieldUsage)(this.getJoinOnCompositeFieldUsage(i),n);return n}addCompositeFieldUserFromFilter(e,n){e.compositeFieldUsage!==void 0&&this.compositeFieldUsers.push({type:"filter",filter:e,logTo:n})}newEntry(e,n,r){r instanceof BQ.SpaceField&&this.compositeFieldUsers.push({type:"field",name:e,field:r,logTo:n}),super.newEntry(e,n,r)}applyNextCompositeFieldUsage(e,n,r,i,s){if(i){const o=this.getCompositeFieldUsageIncludingJoinOns((0,hu.compositeFieldUsageDifference)(i,n));if(n=(0,hu.mergeCompositeFieldUsage)(n,o),!(0,hu.isEmptyCompositeFieldUsage)(o)){const u=(0,hu.narrowCompositeFieldResolution)(e,n,r);u.error?(s??this).logError("invalid-composite-field-usage",{newUsage:o,allUsage:n}):r=u.narrowedCompositeFieldResolution}}return{compositeFieldUsage:n,narrowedCompositeFieldResolution:r}}}go.QueryOperationSpace=$Q;class kQ extends $Q{addRefineFromFields(e){var n;if(t_.isQuerySegment(e)){if(e!=null&&e.extendSource)for(const r of e.extendSource)this.exprSpace.addFieldDef(r);for(const r of e.queryFields)if(r.type==="fieldref"){const i=this.exprSpace.lookup(r.path.map(s=>new IQ.FieldName(s)));if(i.found){const s=r.path[r.path.length-1];this.setEntry(s,i.found),this.addValidatedCompositeFieldUserFromEntry(s,i.found)}}else if(r.type!=="turtle"){const i=new iSe.ColumnSpaceField(r),s=(n=r.as)!==null&&n!==void 0?n:r.name;this.setEntry(s,i),this.addValidatedCompositeFieldUserFromEntry(s,i)}}}pushFields(...e){for(const n of e)n instanceof nSe.WildcardFieldReference?this.addWild(n):super.pushFields(n)}canContain(e){return!0}queryFieldDefs(){const e=[];let n=(0,hu.emptyCompositeFieldUsage)(),r=(0,hu.emptyNarrowedCompositeFieldResolution)();const i=this.inputSpace().structDef();for(const s of this.compositeFieldUsers){let o;if(s.type==="filter")s.filter.compositeFieldUsage&&(o=s.filter.compositeFieldUsage);else{const{name:a,field:l}=s,c=this.expandedWild[a];if(c)e.push({type:"fieldref",path:c.path}),o=c.entry.typeDesc().compositeFieldUsage;else{const f=l.getQueryFieldDef(this.exprSpace);if(f){const d=l.typeDesc();o=d.compositeFieldUsage,d&&d.type!=="error"&&this.canContain(d)&&!lSe(f)&&e.push(f)}}}const u=this.applyNextCompositeFieldUsage(i,n,r,o,s.logTo);n=u.compositeFieldUsage,r=u.narrowedCompositeFieldResolution}return this._compositeFieldUsage=n,e}getQuerySegment(e){const n=this.getPipeSegment(e);if(t_.isQuerySegment(n))return n;throw new Error("TODO NOT POSSIBLE")}getPipeSegment(e){if(this.segmentType==="index")return this.logError("unexpected-index-segment","internal error generating index segment from non index query"),{type:"reduce",queryFields:[]};const n={type:this.segmentType,queryFields:this.queryFieldDefs()};if(n.queryFields=(0,wD.mergeFields)(e==null?void 0:e.queryFields,n.queryFields),e!=null&&e.extendSource&&(n.extendSource=e.extendSource),this.exprSpace.extendList.length>0){const r=[],i=this.exprSpace.structDef();for(const s of this.exprSpace.extendList){const o=i.fields.find(u=>(0,wD.nameFromDef)(u)===s);o&&r.push(o)}n.extendSource=(0,wD.mergeFields)(n.extendSource,r)}return this.newTimezone&&(n.queryTimezone=this.newTimezone),n}lookup(e){const n=super.lookup(e);return n.found?{...n,isOutputField:!0}:this.exprSpace.lookup(e)}isQueryFieldSpace(){return!0}}go.QuerySpace=kQ;class aSe extends kQ{constructor(){super(...arguments),this.segmentType="reduce"}}go.ReduceFieldSpace=aSe;function lSe(t){return typeof t!="string"&&t.type==="turtle"&&t.pipeline.length===0}var cSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),fSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),xSe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&cSe(e,t,n);return fSe(e,t),e};Object.defineProperty(Zv,"__esModule",{value:!0}),Zv.ExprUngroup=void 0;const PQ=We,dSe=go,MQ=xSe(Ht),hSe=at;class pSe extends hSe.ExpressionDef{constructor(e,n,r){super({expr:n,fields:r}),this.control=e,this.expr=n,this.fields=r,this.legalChildTypes=MQ.anyAtomicT,this.elementType="ungroup"}getExpression(e){const n=this.expr.getExpression(e);if(!(0,PQ.expressionIsAggregate)(n.expressionType))return this.expr.loggedErrorExpr("ungroup-of-non-aggregate",`${this.control}() expression must be an aggregate`);if((0,PQ.expressionIsUngroupedAggregate)(n.expressionType))return this.expr.loggedErrorExpr("ungroup-of-ungrouped-aggregate",`${this.control}() expression must not already be ungrouped`);const r={node:this.control,e:n.value};if(this.typeCheck(this.expr,{...n,expressionType:"scalar"})){if(e.isQueryFieldSpace()&&this.fields.length>0){const i=[],s=this.control==="exclude";for(const o of this.fields){let u=e.outputSpace(),a=!0;for(;u;){const l=u.lookup([o]);if(l.found&&l.isOutputField)i.push(o.refString),a=!1;else if(u instanceof dSe.QuerySpace){u=u.nestParent;continue}break}if(a){const l=s?"exclude()":"all()";o.logError("ungroup-field-not-in-output",`${l} '${o.refString}' is missing from query output`)}}r.fields=i}return{...MQ.atomicDef(n),expressionType:"ungrouped_aggregate",value:r,evalSpace:"output",compositeFieldUsage:n.compositeFieldUsage}}return this.loggedErrorExpr("ungroup-with-non-scalar",`${this.control}() incompatible type`)}}Zv.ExprUngroup=pSe;var n_={},mSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),gSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ySe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&mSe(e,t,n);return gSe(e,t),e};Object.defineProperty(n_,"__esModule",{value:!0}),n_.ForRange=void 0;const ESe=ts,UQ=ySe(Ht),r_=Ti,ASe=kt,vSe=at,i_=Md,jQ=Kl;class _Se extends vSe.ExpressionDef{constructor(e,n,r){super({from:e,duration:n,timeframe:r}),this.from=e,this.duration=n,this.timeframe=r,this.elementType="forRange",this.legalChildTypes=[UQ.timestampT,UQ.dateT]}apply(e,n,r){const i=this.from.getExpression(e),s=r.getExpression(e);if(!this.typeCheck(r,s))return(0,ESe.errorFor)("no time for range");const o=this.duration.getExpression(e);if(o.type!=="number")return o.type!=="error"&&this.logError("invalid-duration-quantity",`FOR duration count must be a number, not '${o.type}'`),(0,ASe.computedErrorExprValue)({dataType:{type:"boolean"},error:"for not number",from:[i,s]});const u=this.timeframe.text;let a=(0,r_.resolution)(u);if(i.type==="timestamp"&&(a="timestamp"),s.type==="date"&&a==="date"){const p=this.from,g=(0,r_.timeOffset)("date",i.value,"+",o.value,u),m=new i_.ExprTime("date",g);return new jQ.Range(p,m).apply(e,n,r)}const l=i_.ExprTime.fromValue("timestamp",s);let c=this.from,f=i.value;if(i.type==="date"){const p=i.morphic&&i.morphic.timestamp;p?f=p:f=(0,r_.castTo)("timestamp",f,"date"),c=new i_.ExprTime("timestamp",f,[i])}const d=(0,r_.timeOffset)("timestamp",f,"+",o.value,u),h=new i_.ExprTime("timestamp",d,[i,o]);return new jQ.Range(c,h).apply(e,n,l)}requestExpression(e){}getExpression(e){return this.loggedErrorExpr("range-as-value","A Range is not a value")}}n_.ForRange=_Se;var Jn={};Object.defineProperty(Jn,"__esModule",{value:!0}),Jn.LiteralYear=Jn.LiteralQuarter=Jn.LiteralMonth=Jn.LiteralWeek=Jn.LiteralDay=Jn.LiteralHour=Jn.LiteralTimestamp=Jn.TimeFormatError=void 0;const t0=sD,CSe=We,SSe=kt,bSe=Kl,qQ=Md,FD=at;class TSe extends Error{}Jn.TimeFormatError=TSe;function rf(t,e){const n=t.slice(1);if(e){const r=n.match(/\[[^\]]+]$/);if(r)return{tzSpec:r[0].slice(1,-1),text:n.slice(0,-r[0].length)}}return{text:n}}const HQ="yyyy",zQ=`${HQ}-LL`,Fs=`${zQ}-dd`,QQ=`${Fs} HH`,GQ=`${QQ}:mm`,LD=`${GQ}:ss`;class WQ extends FD.ExpressionDef{constructor(e,n,r){super(),this.units=n,this.timeType=r,this.literalPart=e.text,e.tzSpec&&(this.timeZone=e.tzSpec)}makeLiteral(e,n){const r={node:"timeLiteral",literal:e,typeDef:{type:n}};return this.timeZone&&(r.timezone=this.timeZone),r}makeValue(e,n){const r=this.makeLiteral(e,n);return(0,SSe.literalTimeResult)({value:r,dataType:{type:n},timeframe:this.units})}getExpression(e){return this.makeValue(this.literalPart,this.timeType)}getNext(){if(this.nextLit)return this.makeValue(this.nextLit,this.timeType)}granular(){return this.nextLit!==void 0}}class ID extends WQ{constructor(e,n){super(e,n,"timestamp"),this.elementType="literal:timestamp"}static parse(e){let n;const r=rf(e,!0);e=r.text,e[10]==="T"&&(e=e.slice(0,10)+" "+e.slice(11),r.text=e);const i=e.match(/^([^.,]+)[,.](\d+)$/);i&&(e=i[1]);let s=t0.DateTime.fromFormat(e,LD);if(s.isValid)return new ID(r,n);if(s=t0.DateTime.fromFormat(e,GQ),s.isValid){r.text=r.text+":00",n="minute";const o=s.plus({minute:1}).toFormat(LD);return new BD(r,n,"timestamp",o)}}}Jn.LiteralTimestamp=ID;class BD extends WQ{constructor(e,n,r,i){super(e,n,r),this.nextLit=i,this.elementType="granularTimeLiteral"}apply(e,n,r){let i=this.getExpression(e),s=this.getNext();if(s){const o=r.getExpression(e);if(o.type==="timestamp"){const u=(0,FD.getMorphicValue)(i,"timestamp"),a=(0,FD.getMorphicValue)(s,"timestamp");if(u&&a)i=u,s=a;else return super.apply(e,n,r)}if(s&&(0,CSe.isTemporalType)(o.type)){const u=o.type;return new bSe.Range(new qQ.ExprTime(u,i.value),new qQ.ExprTime(u,s.value)).apply(e,n,r)}}return super.apply(e,n,r)}}class $D extends BD{constructor(e,n){super(e,"hour","timestamp",n),this.elementType="literal:hour"}static parse(e){const n=rf(e,!1);let r=n.text;const i=t0.DateTime.fromFormat(n.text,QQ);if(i.isValid)return n.text=n.text+":00:00",r=i.plus({hour:1}).toFormat(LD),new $D(n,r)}}Jn.LiteralHour=$D;class xm extends BD{constructor(e,n,r){super(e,n,"date",r)}getExpression(e){const n=this.makeValue(this.literalPart,"date"),r=this.makeLiteral(`${this.literalPart} 00:00:00`,"timestamp");return{...n,morphic:{timestamp:r},evalSpace:"literal"}}getNext(){const e=this.makeValue(this.nextLit,"date"),n=this.makeLiteral(`${this.nextLit} 00:00:00`,"timestamp");return{...e,morphic:{timestamp:n}}}}class kD extends xm{constructor(e,n){super(e,"day",n),this.elementType="literal:day"}static parse(e){const n=rf(e,!1);let r=n.text;const i=t0.DateTime.fromFormat(n.text,Fs);if(i.isValid)return r=i.plus({day:1}).toFormat(Fs),new kD(n,r)}}Jn.LiteralDay=kD;class PD extends xm{constructor(e,n){super(e,"week",n),this.elementType="literal:week"}static parse(e){const n=rf(e,!1);let r=n.text;const i=n.text.slice(0,10),s=t0.DateTime.fromFormat(i,Fs);if(s.isValid&&s.weekday===7){const u=s.plus({days:7});return n.text=s.toFormat(Fs),r=u.toFormat(Fs),new PD(n,r)}}}Jn.LiteralWeek=PD;class MD extends xm{constructor(e,n){super(e,"month",n),this.elementType="literal:month"}static parse(e){const n=rf(e,!1);let r=n.text;const i=t0.DateTime.fromFormat(n.text,zQ);if(i.isValid){const s=i.plus({months:1});return n.text=i.toFormat(Fs),r=s.toFormat(Fs),new MD(n,r)}}}Jn.LiteralMonth=MD;class UD extends xm{constructor(e,n){super(e,"quarter",n),this.elementType="literal:quarter"}static parse(e){const n=rf(e,!1);let r=n.text;const i=n.text.match(/(^\d{4})-[qQ](\d)$/);if(i){const s=Number.parseInt(i[2])-1;let o=t0.DateTime.fromFormat(i[1],"yyyy");s>0&&(o=o.plus({quarters:s}));const u=o.plus({quarter:1});return n.text=o.toFormat(Fs),r=u.toFormat(Fs),new UD(n,r)}}}Jn.LiteralQuarter=UD;class jD extends xm{constructor(e,n){super(e,"year",n),this.elementType="literal:year"}static parse(e){const n=rf(e,!1);let r=n.text;const i=t0.DateTime.fromFormat(n.text,HQ);if(i.isValid){const s=i.plus({year:1});return n.text=i.toFormat(Fs),r=s.toFormat(Fs),new jD(n,r)}}}Jn.LiteralYear=jD;var s_={};Object.defineProperty(s_,"__esModule",{value:!0}),s_.PartialCompare=void 0;const VQ=at;class RSe extends VQ.ExpressionDef{constructor(e,n){super({right:n}),this.op=e,this.right=n,this.elementType="<=> a"}granular(){return this.right.granular()}apply(e,n,r){return this.right.apply(e,this.op,r)}requestExpression(e){}getExpression(e){return this.loggedErrorExpr("partial-as-value","Partial comparison does not have a value")}atNodeType(){return VQ.ATNodeType.Partial}}s_.PartialCompare=RSe;var Qd={},OSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),DSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),NSe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&OSe(e,t,n);return DSe(e,t),e};Object.defineProperty(Qd,"__esModule",{value:!0}),Qd.PickWhen=Qd.Pick=void 0;const Gd=NSe(Ht),YQ=kt,wSe=at,FSe=Ge;function o_(t,e){return t===void 0||t.type==="null"||t.type==="error"?e:t}class LSe extends wSe.ExpressionDef{constructor(e,n){super({choices:e}),this.choices=e,this.elsePick=n,this.elementType="pick",this.has({elsePick:n})}requestExpression(e){if(this.elsePick!==void 0){for(const n of this.choices){if(n.pick===void 0)return;const r=n.when.requestExpression(e);if(r===void 0||r.type!=="boolean")return}return this.getExpression(e)}}apply(e,n,r){var i;const s={node:"case",kids:{caseWhen:[],caseThen:[]}};let o;const u=[];for(const d of this.choices){const h=d.when.apply(e,"=",r),p=d.pick?d.pick.getExpression(e):r.getExpression(e);if(u.push(h,p),o&&!Gd.typeEq(o,p,!0))return this.loggedErrorExpr("pick-type-does-not-match",{pickType:p.type,returnType:o.type});o=o_(o,p),s.kids.caseWhen.push(h.value),s.kids.caseThen.push(p.value)}const a=(i=this.elsePick)===null||i===void 0?void 0:i.getExpression(e),l=r.getExpression(e);u.push(l),a&&u.push(a);const c=a??l,f=o_(o,c);return Gd.typeEq(f,c,!0)?(s.kids.caseElse=c.value,(0,YQ.computedExprValue)({dataType:f,value:s,from:u})):this.elsePick?this.loggedErrorExpr("pick-else-type-does-not-match",{elseType:c.type,returnType:f.type}):this.loggedErrorExpr("pick-default-type-does-not-match",{defaultType:c.type,returnType:f.type})}getExpression(e){const n={node:"case",kids:{caseWhen:[],caseThen:[]}};if(this.elsePick===void 0)return this.loggedErrorExpr("pick-missing-else","pick incomplete, missing 'else'");const r=[],i=[];for(const a of this.choices){if(a.pick===void 0)return this.loggedErrorExpr("pick-missing-value","pick with no value can only be used with apply");a.when.requestExpression(e)===void 0&&this.loggedErrorExpr("pick-illegal-partial","pick with partial when can only be used with apply");const c=a.pick.getExpression(e),f=a.when.getExpression(e);r.push({pick:c,when:f}),i.push(c,f)}let s;for(const a of r){if(!Gd.typeEq(a.when,Gd.boolT))return this.loggedErrorExpr("pick-when-must-be-boolean",{whenType:a.when.type});if(s&&!Gd.typeEq(s,a.pick,!0))return this.loggedErrorExpr("pick-type-does-not-match",{pickType:a.pick.type,returnType:s.type});s=o_(s,a.pick),n.kids.caseWhen.push(a.when.value),n.kids.caseThen.push(a.pick.value)}const o=this.elsePick.getExpression(e);i.push(o);const u=o_(s,o);return Gd.typeEq(u,o,!0)?(n.kids.caseElse=o.value,(0,YQ.computedExprValue)({dataType:u,value:n,from:i})):this.elsePick.loggedErrorExpr("pick-else-type-does-not-match",{elseType:o.type,returnType:u.type})}}Qd.Pick=LSe;class ISe extends FSe.MalloyElement{constructor(e,n){super({when:n}),this.pick=e,this.when=n,this.elementType="caseWhen",this.has({pick:e})}}Qd.PickWhen=ISe;var Wd={},BSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),$Se=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),kSe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&BSe(e,t,n);return $Se(e,t),e};Object.defineProperty(Wd,"__esModule",{value:!0}),Wd.CaseWhen=Wd.Case=void 0;const PSe=kt,MSe=at,USe=Ge,Vd=kSe(Ht);function KQ(t,e){return t===void 0||t.type==="null"||t.type==="error"?e:t}class jSe extends MSe.ExpressionDef{constructor(e,n,r){super({choices:n}),this.value=e,this.choices=n,this.elseValue=r,this.elementType="case",this.has({elseValue:r,value:e})}getExpression(e){const n={node:"case",kids:{caseWhen:[],caseThen:[]}},r=[];let i;if(this.value){const u=this.value.getExpression(e);r.push(u),n.kids.caseValue=u.value,i=u}const s=[];for(const u of this.choices){const a=u.when.getExpression(e),l=u.then.getExpression(e);s.push({when:a,then:l}),r.push(a,l)}let o;for(const u of s){if(i!==void 0){if(!Vd.typeEq(u.when,i))return this.loggedErrorExpr("case-when-type-does-not-match",{whenType:u.when.type,valueType:i.type})}else if(!Vd.typeEq(u.when,Vd.boolT))return this.loggedErrorExpr("case-when-must-be-boolean",{whenType:u.when.type});if(o&&!Vd.typeEq(o,u.then,!0))return this.loggedErrorExpr("case-then-type-does-not-match",{thenType:u.then.type,returnType:o.type});o=KQ(o,u.then),n.kids.caseWhen.push(u.when.value),n.kids.caseThen.push(u.then.value)}if(this.elseValue){const u=this.elseValue.getExpression(e);if(o&&!Vd.typeEq(o,u,!0))return this.loggedErrorExpr("case-else-type-does-not-match",{elseType:u.type,returnType:o.type});o=KQ(o,u),r.push(u),n.kids.caseElse=u.value}return(0,PSe.computedExprValue)({value:n,dataType:o?Vd.atomicDef(o):{type:"null"},from:r})}}Wd.Case=jSe;class qSe extends USe.MalloyElement{constructor(e,n){super({when:e,then:n}),this.when=e,this.then=n,this.elementType="caseWhen"}}Wd.CaseWhen=qSe;var u_={},sf={},HSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),zSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),QSe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&HSe(e,t,n);return zSe(e,t),e};Object.defineProperty(sf,"__esModule",{value:!0}),sf.RecordLiteral=sf.RecordElement=void 0;const JQ=Qi,GSe=kt,WSe=at,VSe=Ge,YSe=QSe(Ht);class KSe extends VSe.MalloyElement{constructor(e){if(super(),this.elementType="record element","value"in e)this.value=e.value,this.has({value:e.value}),e.key&&(this.key=e.key);else{this.has({path:e.path}),this.value=e.path;const n=e.path.fieldReference.path;this.key=n[n.length-1]}}}sf.RecordElement=KSe;class JSe extends WSe.ExpressionDef{constructor(e){super(),this.pairs=e,this.elementType="record literal",this.has({pairs:e})}getExpression(e){return this.getRecord(e,[])}getRecord(e,n){var r;const i={node:"recordLiteral",kids:{},typeDef:{type:"record",fields:[]}},s=[];let o=0;for(const u of this.pairs){const a=(r=u.key)!==null&&r!==void 0?r:n[o];if(o+=1,a===void 0){u.logError("record-literal-needs-keys","Anonymous record element not legal here");continue}const l=u.value.getExpression(e);JQ.TD.isAtomic(l)?(s.push(l),i.kids[a]=l.value,i.typeDef.fields.push((0,JQ.mkFieldDef)(YSe.atomicDef(l),a))):u.value.logError("illegal-record-property-type",`Record property '${u.key} is type '${l.type}', which is not a legal property value type`)}return(0,GSe.computedExprValue)({value:i,dataType:i.typeDef,from:s})}getNextElement(e,n){const r=n.value;return r.node==="recordLiteral"?this.getRecord(e,Object.keys(r.kids)):this.getRecord(e,[])}}sf.RecordLiteral=JSe;var XSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),ZSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),e4e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&XSe(e,t,n);return ZSe(e,t),e};Object.defineProperty(u_,"__esModule",{value:!0}),u_.ArrayLiteral=void 0;const t4e=kt,n4e=at,XQ=e4e(Ht),r4e=sf;class i4e extends n4e.ExpressionDef{constructor(e){super(),this.elements=e,this.elementType="array literal",this.has({elements:e})}getExpression(e){const n=[],r=[];let i;if(this.elements.length>0)for(const a of this.elements){const l=i&&a instanceof r4e.RecordLiteral?a.getNextElement(e,i):a.getExpression(e);if(r.push(l),l.type!=="error"){if(i){if(l.type!=="null"&&!XQ.typeEq(i,l)){a.logError("array-values-incompatible","All array elements must be same type");continue}}else l.type!=="null"&&(i=l);n.push(l.value)}}const s=XQ.atomicDef(i||{type:"number"}),o=s.type==="record"?{type:"array",elementTypeDef:{type:"record_element"},fields:s.fields}:{type:"array",elementTypeDef:s},u={node:"arrayLiteral",kids:{values:n},typeDef:o};return(0,t4e.computedExprValue)({dataType:o,value:u,from:r})}}u_.ArrayLiteral=i4e;var a_={};Object.defineProperty(a_,"__esModule",{value:!0}),a_.Timeframe=void 0;const s4e=We,o4e=Ge;class u4e extends o4e.MalloyElement{constructor(e){super(),this.elementType="timeframe";let n=e.toLowerCase();n.endsWith("s")&&(n=n.slice(0,-1)),this.text=(0,s4e.isTimestampUnit)(n)?n:"second"}}a_.Timeframe=u4e;var n0={};Object.defineProperty(n0,"__esModule",{value:!0}),n0.ImportStatement=n0.ImportSelect=n0.ImportSourceName=void 0;const qD=Ge;class a4e extends qD.MalloyElement{constructor(e){super(),this.text=e,this.elementType="importSourceName"}}n0.ImportSourceName=a4e;class l4e extends qD.MalloyElement{constructor(e,n){super(),this.text=e,this.from=n,this.elementType="importName",n&&this.has({from:n})}}n0.ImportSelect=l4e;class c4e extends qD.ListOf{constructor(e,n){super([]),this.url=e,this.elementType="import statement";try{this.fullURL=decodeURI(new URL(e,n).toString())}catch{this.logError("invalid-import-url","Invalid URL in import statement")}}needs(){const e=this.translator();if(e&&this.fullURL&&e.root.importZone.getEntry(this.fullURL).status==="present"){const r=e.childRequest(this.fullURL);if(r)return r}}execute(e){const n=this.translator();if(!n)this.logError("no-translator-for-import","Cannot import without translation context");else if(this.fullURL){const r=n.root.pretranslatedModels.get(this.fullURL),i=n.root.importZone.getEntry(this.fullURL);if(r||i.status==="present"){const s=n.getChildExports(this.fullURL);if(this.notEmpty())for(const o of this.list){const u=o.from||o;if(e.getEntry(o.text))o.logError("name-conflict-on-selective-import",`Cannot redefine '${o.text}'`);else if(s[u.text]){const a={...s[u.text]};o.from&&(a.as=o.text),e.setEntry(o.text,{entry:a,exported:!1})}else u.logError("selective-import-not-found",`Cannot find '${u.text}', not imported`)}else for(const[o,u]of Object.entries(n.getChildExports(this.fullURL)))e.getEntry(o)?this.logError("name-conflict-on-indiscriminate-import",`Cannot redefine '${o}'`):e.setEntry(o,{entry:u,exported:!1})}else i.status==="error"?this.logError("failed-import",`import failed: '${i.message}'`):this.logError("failed-import",`import failed with status: '${i.status}'`)}}}n0.ImportStatement=c4e;var dm={};Object.defineProperty(dm,"__esModule",{value:!0}),dm.ExtendBlock=void 0;const f4e=Ge,x4e=Rn;class d4e extends f4e.ListOf{constructor(){super(...arguments),this.elementType="extendBlock",this.forceQueryClass=void 0,this.queryRefinementStage=x4e.LegalRefinementStage.Single}queryExecute(e){for(const n of this.list)for(const r of n.list)e.inputFS.extendSource(r)}}dm.ExtendBlock=d4e;var l_={};Object.defineProperty(l_,"__esModule",{value:!0}),l_.Argument=void 0;const h4e=Ge;class p4e extends h4e.MalloyElement{constructor(e){super({...e}),this.elementType="Argument",this.id=e.id,this.value=e.value}}l_.Argument=p4e;var c_={};Object.defineProperty(c_,"__esModule",{value:!0}),c_.HasParameter=void 0;const ZQ=We,m4e=Ge;class g4e extends m4e.MalloyElement{constructor(e){super(),this.elementType="hasParameter",this.name=e.name,e.type&&(0,ZQ.isCastType)(e.type)&&(this.type=e.type),e.default&&(this.default=e.default,this.has({default:this.default}))}parameter(){var e;if(this.default!==void 0){const n=this.default.constantValue();return this.type&&this.type!==n.type&&n.type!=="null"&&n.type!=="error"&&this.default.logError("parameter-default-does-not-match-declared-type",`Default value for parameter does not match declared type \`${this.type}\``),n.type==="null"?this.type?{type:this.type,value:n.value,name:this.name}:(this.default.logError("parameter-null-default-without-declared-type","Default value cannot have type `null` unless parameter type is also specified"),{value:n.value,name:this.name,type:"error"}):!(0,ZQ.isCastType)(n.type)&&n.type!=="error"?(this.default.logError("parameter-illegal-default-type",`Default value cannot have type \`${n.type}\``),{value:n.value,name:this.name,type:"error"}):{value:n.value,name:this.name,type:n.type}}return this.type===void 0&&this.logError("parameter-missing-default-or-type","Parameter must have default value or declared type"),{value:null,name:this.name,type:(e=this.type)!==null&&e!==void 0?e:"error"}}}c_.HasParameter=g4e;var f_={};Object.defineProperty(f_,"__esModule",{value:!0}),f_.AnonymousQuery=void 0;const y4e=Ge,E4e=mr;class A4e extends y4e.MalloyElement{constructor(e){super(),this.queryExpr=e,this.elementType="anonymousQuery",this.isNoteableObj=!0,this.extendNote=E4e.extendNoteMethod,this.has({queryExpr:e})}execute(e){const n=this.queryExpr.getQuery();if(!n){this.queryExpr.sqLog("non-query-used-as-query","Cannot run this object as a query");return}const r={...n.query()},i=this.note||{};r.annotation&&(i.inherits=r.annotation),(i.notes||i.blockNotes||i.inherits)&&(r.annotation=i),e.queryList.push(r)}}f_.AnonymousQuery=A4e;var r0={};Object.defineProperty(r0,"__esModule",{value:!0}),r0.View=void 0;const v4e=Ge;let _4e=class extends v4e.MalloyElement{pipeline(e,n){return this.pipelineComp(e,n).pipeline}};r0.View=_4e;var x_={};Object.defineProperty(x_,"__esModule",{value:!0}),x_.ViewArrow=void 0;const C4e=yr,S4e=r0;class b4e extends S4e.View{constructor(e,n){super({base:e,operation:n}),this.base=e,this.operation=n,this.elementType="viewArrow"}pipelineComp(e){const n=this.base.pipelineComp(e),r=new C4e.StaticSourceSpace(n.outputStruct),i=this.operation.pipelineComp(r);return{pipeline:[...n.pipeline,...i.pipeline],outputStruct:i.outputStruct}}refine(e,n,r){return this.logError("refinement-with-multistage-view","A multi-segment view cannot be used as a refinement"),[]}getImplicitName(){return this.operation.getImplicitName()}}x_.ViewArrow=b4e;var d_={},hm={};Object.defineProperty(hm,"__esModule",{value:!0}),hm.refine=void 0;const HD=Qi,T4e=it,zD=jl;function R4e(t,e,n){var r,i;if(e.length!==1)return t.logError("refinement-with-multistage-view","Named refinements of multi-stage views are not supported"),e;const s={...e[0]},o=n;if((0,HD.isRawSegment)(s))t.logError("refinement-of-raw-query","Cannot refine raw query, must add an explicit query stage");else if(s.type==="partial"&&o.type!=="index"&&o.type!=="raw"?s.type=o.type:o.type!==s.type&&t.logError("mismatched-view-types-for-refinement",`cannot refine ${s.type} view with ${o.type} view`),o.type!=="index"&&s.type!=="index"&&o.type!=="raw"&&(o.orderBy!==void 0&&!o.defaultOrderBy&&(s.orderBy===void 0||s.defaultOrderBy?s.orderBy=o.orderBy:t.logError("ordering-overridden-in-refinement","refinement cannot override existing ordering")),o.limit!==void 0&&(s.limit===void 0?s.limit=o.limit:t.logError("limit-overridden-in-refinement","refinement cannot override existing limit"))),s.filterList=s.filterList!==void 0||o.filterList!==void 0?[...(r=s.filterList)!==null&&r!==void 0?r:[],...(i=o.filterList)!==null&&i!==void 0?i:[]]:void 0,(0,HD.isQuerySegment)(o)&&(0,HD.isQuerySegment)(s)){const u=[],a=[],l=new Map(s.queryFields.map(c=>[(0,zD.nameFromDef)(c),c]));for(const c of o.queryFields)l.has((0,zD.nameFromDef)(c))?u.push(c):a.push(c);s.queryFields=[...s.queryFields,...a],u.length>0&&t.logError("name-conflict-in-refinement",`overlapping fields in refinement: ${u.map(zD.nameFromDef)}`),s.compositeFieldUsage=(0,T4e.mergeCompositeFieldUsage)(s.compositeFieldUsage,o.compositeFieldUsage)}else o.type==="index"&&s.type==="index"&&(s.indexFields=[...o.indexFields,...s.indexFields]);return[s]}hm.refine=R4e,Object.defineProperty(d_,"__esModule",{value:!0}),d_.ViewRefine=void 0;const O4e=Fr,D4e=is,N4e=hm,w4e=r0;class F4e extends w4e.View{constructor(e,n){super({base:e,refinement:n}),this.base=e,this.refinement=n,this.elementType="refine"}pipelineComp(e,n){const r=this.base.pipelineComp(e),i=this.refinement.refine(e,r.pipeline,n);return{pipeline:i,annotation:r.annotation,outputStruct:i.length>0?(0,D4e.getFinalStruct)(this.refinement,e.structDef(),i):O4e.ErrorFactory.structDef}}refine(e,n,r){const i=this.pipeline(e,r);return i.length!==1?(this.refinement.logError("refinement-with-multistage-view","refinement must have exactly one stage"),n):(0,N4e.refine)(this,n,i[0])}getImplicitName(){return this.base.getImplicitName()}}d_.ViewRefine=F4e;var h_={};Object.defineProperty(h_,"__esModule",{value:!0}),h_.ReferenceView=void 0;const QD=We,eG=Fr,L4e=is,I4e=gr,B4e=hm,$4e=r0;class k4e extends $4e.View{constructor(e){super({reference:e}),this.reference=e,this.elementType="reference-view"}pipelineComp(e,n){return this._pipelineComp(e)}_pipelineComp(e,{forRefinement:n}={forRefinement:!1}){const r=this.reference.getField(e),i=function(){return{inputStruct:eG.ErrorFactory.structDef,outputStruct:eG.ErrorFactory.structDef,pipeline:[],error:!0}};if(!r.found)return this.reference.logError(r.error.code,r.error.message),i();if(!(r.found instanceof I4e.SpaceField))throw new Error("Expected space field");const s=r.found.fieldDef();if(s===void 0)throw new Error("Expected field to have definition");if((0,QD.isAtomic)(s)){const o={type:"reduce",queryFields:[this.reference.refToField],compositeFieldUsage:s.compositeFieldUsage},u=this.reference.nameString,a={...(0,QD.sourceBase)(e.structDef()),type:"query_result",name:u,fields:[s]};return{pipeline:[o],name:u,outputStruct:a}}else return(0,QD.isTurtle)(s)?this.reference.list.length>1?(n?this.logError("refinement-with-joined-view","Cannot use view from join as refinement"):this.logError("nest-of-joined-view","Cannot use view from join"),i()):{pipeline:[...s.pipeline],name:s.name,annotation:s.annotation,outputStruct:(0,L4e.getFinalStruct)(this.reference,e.structDef(),s.pipeline)}:(n?this.reference.logError("refinement-with-source",`named refinement \`${this.reference.refString}\` must be a view, found a ${s.type}`):this.reference.logError("nest-of-source","This operation is not supported"),i())}getRefinementSegment(e){const{pipeline:n,error:r}=this._pipelineComp(e,{forRefinement:!0});if(!r){if(n.length!==1){this.reference.logError("refinement-with-multistage-view",`named refinement \`${this.reference.refString}\` must have exactly one stage`);return}return n[0]}}refine(e,n,r){const i=this.getRefinementSegment(e);return i?(0,B4e.refine)(this,n,i):n}getImplicitName(){return this.reference.nameString}}h_.ReferenceView=k4e;var p_={},pm={},m_={},mm={};Object.defineProperty(mm,"__esModule",{value:!0}),mm.Index=void 0;const P4e=Ge,M4e=Rn;let U4e=class extends P4e.MalloyElement{constructor(e){super({fields:e}),this.fields=e,this.elementType="index",this.forceQueryClass=M4e.QueryClass.Index,this.queryRefinementStage=void 0}useWeight(e){this.has({weightBy:e}),this.weightBy=e}};mm.Index=U4e;var gm={};Object.defineProperty(gm,"__esModule",{value:!0}),gm.SampleProperty=void 0;const j4e=Ge,tG=Rn;class q4e extends j4e.MalloyElement{constructor(e){super(),this.sample=e,this.elementType="sampleProperty",this.queryRefinementStage=tG.LegalRefinementStage.Tail,this.forceQueryClass=tG.QueryClass.Index}sampling(){return this.sample}}gm.SampleProperty=q4e;var g_={};Object.defineProperty(g_,"__esModule",{value:!0}),g_.IndexFieldSpace=void 0;const nG=it,rG=We,GD=xt,H4e=gr,z4e=go,Q4e=K1,G4e=yr;class W4e extends z4e.QueryOperationSpace{constructor(){super(...arguments),this.segmentType="index"}pushFields(...e){for(const n of e)n instanceof GD.FieldReference?super.pushFields(n):n instanceof GD.WildcardFieldReference?this.addWild(n):n.logError("invalid-field-in-index-query","Internal error, not expected in index query")}getPipeSegment(e){if(e)return this.logError("refinement-of-index-segment","index query operations cannot be refined"),{type:"index",indexFields:[]};let n=(0,nG.emptyCompositeFieldUsage)(),r=(0,nG.emptyNarrowedCompositeFieldResolution)();const i=[],s=this.inputSpace().structDef();for(const[o,u]of this.entries())if(u instanceof H4e.SpaceField){let a,l;const c=this.expandedWild[o];if(c)i.push({type:"fieldref",path:c.path}),a=c.entry.typeDesc().compositeFieldUsage;else if(u instanceof Q4e.ReferenceField){const d=u.fieldRef,h=d.getField(this.exprSpace);h.error?d.logError(h.error.code,h.error.message):(i.push(d.refToField),a=h.found.typeDesc().compositeFieldUsage,l=d)}const f=this.applyNextCompositeFieldUsage(s,n,r,a,l);n=f.compositeFieldUsage,r=f.narrowedCompositeFieldResolution}return this._compositeFieldUsage=n,{type:"index",indexFields:i}}addRefineFromFields(e){}addWild(e){var n;let r=this.exprSpace;const i=[];if(e.joinPath)for(const u of e.joinPath.list){const a=u.refString;i.push(a);const l=r.entry(a);if(l)if(l instanceof G4e.StructSpaceField)r=l.fieldSpace;else{u.logError("invalid-wildcard-source",`Field '${a}' does not contain rows and cannot be expanded with '*'`);return}else{u.logError("wildcard-source-not-found",`No such field as '${a}'`);return}}const s=this.dialectObj(),o=[];for(const[u,a]of r.entries()){if(e.except.has(u)||a.refType==="parameter")continue;const l=GD.IndexFieldReference.indexOutputName([...i,u]);if(this.entry(l)){const c=(n=this.expandedWild[l].path)===null||n===void 0?void 0:n.join(".");e.logError("name-conflict-in-wildcard-expansion",`Cannot expand '${u}' in '${e.refString}' because a field with that name already exists${c?` (conflicts with ${c})`:""}`)}else{const c=a.typeDesc();rG.TD.isLeafAtomic(c)&&(0,rG.expressionIsScalar)(c.expressionType)&&(s===void 0||!s.ignoreInProject(u))&&(o.push({name:l,entry:a}),this.expandedWild[l]={path:i.concat(u),entry:a})}}for(const u of o.sort((a,l)=>a.name.localeCompare(l.name)))this.setEntry(u.name,u.entry)}}g_.IndexFieldSpace=W4e,Object.defineProperty(m_,"__esModule",{value:!0}),m_.IndexBuilder=void 0;const WD=We,V4e=Fr,Y4e=xu,K4e=mm,J4e=Xl,X4e=gm,Z4e=g_,VD=it;class ebe{constructor(e,n,r,i){this.filters=[],this.alwaysJoins=[],this.type="index",this.resultFS=new Z4e.IndexFieldSpace(e,n,r,i),this.inputFS=this.resultFS.inputSpace()}execute(e){e instanceof Y4e.Filter?e.queryExecute(this):e instanceof J4e.Limit?(this.limit&&this.limit.logError("index-limit-already-specified","Ignored, too many limit: statements"),this.limit=e):e instanceof K4e.Index?(this.resultFS.pushFields(...e.fields.list),e.weightBy&&(this.indexOn&&this.indexOn.logError("index-by-already-specified","Ignoring previous BY"),this.indexOn=e.weightBy)):e instanceof X4e.SampleProperty?this.sample=e.sampling():e.logError("illegal-operation-for-index","Not legal in an index query operation")}get compositeFieldUsage(){return this.resultFS.compositeFieldUsage}finalize(e){var n;if(e&&!(0,WD.isIndexSegment)(e)&&!(0,WD.isPartialSegment)(e))return this.resultFS.logError("refinement-of-index-segment",`Can't refine index with ${e.type}`),V4e.ErrorFactory.indexSegment;const r=this.resultFS.getPipeSegment(e),i=(e==null?void 0:e.filterList)||[];this.filters.length>0&&!i?r.filterList=this.filters:i&&(r.filterList=[...i,...this.filters]),e!=null&&e.limit&&(r.limit=e.limit),this.limit&&(r.limit=this.limit.limit),this.indexOn&&(r.weightMeasure=this.indexOn.refString),e&&(0,WD.isIndexSegment)(e)&&(e!=null&&e.sample)&&(r.sample=e.sample),this.sample&&(r.sample=this.sample),this.alwaysJoins.length>0&&(r.alwaysJoins=[...this.alwaysJoins]);const s=e&&e.type==="index"&&(n=e.compositeFieldUsage)!==null&&n!==void 0?n:(0,VD.emptyCompositeFieldUsage)();return r.compositeFieldUsage=(0,VD.mergeCompositeFieldUsage)(s,this.compositeFieldUsage),r}}m_.IndexBuilder=ebe;var y_={},ym={};Object.defineProperty(ym,"__esModule",{value:!0}),ym.GroupBy=void 0;const tbe=ns,iG=Rn;class nbe extends tbe.DefinitionList{constructor(){super(...arguments),this.elementType="groupBy",this.queryRefinementStage=iG.LegalRefinementStage.Single,this.forceQueryClass=iG.QueryClass.Grouping}}ym.GroupBy=nbe;var E_={};Object.defineProperty(E_,"__esModule",{value:!0}),E_.ProjectFieldSpace=void 0;const A_=We,rbe=go;class ibe extends rbe.QuerySpace{constructor(){super(...arguments),this.segmentType="project"}canContain(e){return e===void 0||!A_.TD.isAtomic(e)||(0,A_.expressionIsAggregate)(e.expressionType)?!1:(0,A_.expressionInvolvesAggregate)(e.expressionType)&&(0,A_.expressionIsAnalytic)(e.expressionType)?(this.logError("aggregate-analytic-in-select","Cannot add aggregate analyics to select"),!1):!0}}E_.ProjectFieldSpace=ibe;var i0={},of={};Object.defineProperty(of,"__esModule",{value:!0}),of.Ordering=of.OrderBy=void 0;const sbe=We,sG=Zl,oG=Ge,obe=Rn;class ube extends oG.MalloyElement{constructor(e,n){super(),this.field=e,this.dir=n,this.elementType="orderBy",e instanceof sG.FieldName&&this.has({field:e})}get modelField(){return typeof this.field=="number"?this.field:this.field.refString}getOrderBy(e){var n;if(this.field instanceof sG.FieldName&&e.isQueryFieldSpace()){const i=e.outputSpace(),s=this.field.getField(i);s.error&&this.field.logError(s.error.code,s.error.message),(!s.found||!s.isOutputField)&&this.logError("order-by-not-found-in-output",`Unknown field ${this.field.refString} in output space`),(0,sbe.expressionIsAnalytic)((n=s.found)===null||n===void 0?void 0:n.typeDesc().expressionType)&&this.logError("order-by-analytic",`Illegal order by of analytic field ${this.field.refString}`)}const r={field:this.modelField};return this.dir&&(r.dir=this.dir),r}}of.OrderBy=ube;class abe extends oG.ListOf{constructor(e){super(e),this.elementType="ordering",this.queryRefinementStage=obe.LegalRefinementStage.Tail,this.forceQueryClass=void 0}getOrderBy(e){return this.list.map(n=>n.getOrderBy(e))}}of.Ordering=abe,Object.defineProperty(i0,"__esModule",{value:!0}),i0.ReduceBuilder=i0.QuerySegmentBuilder=void 0;const yo=We,lbe=Fr,cbe=Zl,fbe=Xl,xbe=of,dbe=go,hbe=ns,YD=it;function uG(t){return t.type==="fieldref"?t.path[t.path.length-1]:t.name}class aG{constructor(){this.alwaysJoins=[],this.filters=[]}execute(e){if(e.queryExecute){e.queryExecute(this);return}e instanceof hbe.DefinitionList?this.resultFS.pushFields(...e.list):e instanceof fbe.Limit?this.limit?e.logError("limit-already-specified","Query operation already limited"):this.limit=e.limit:e instanceof xbe.Ordering&&(this.order?e.logError("ordering-already-specified","Query operation already sorted"):this.order=e)}get compositeFieldUsage(){return this.resultFS.compositeFieldUsage}refineFrom(e,n){var r;e&&e.type!=="index"&&e.type!=="raw"&&(!this.limit&&e.orderBy&&!e.defaultOrderBy&&(n.orderBy=e.orderBy),!this.limit&&e.limit&&(n.limit=e.limit)),this.order&&(n.orderBy=this.order.getOrderBy(this.inputFS),delete n.defaultOrderBy),this.limit&&(n.limit=this.limit);const i=(e==null?void 0:e.filterList)||[];this.filters.length>0&&!i?n.filterList=this.filters:i&&(n.filterList=[...i,...this.filters]),this.alwaysJoins.length>0&&(n.alwaysJoins=[...this.alwaysJoins]);const s=e&&(0,yo.isQuerySegment)(e)&&(r=e.compositeFieldUsage)!==null&&r!==void 0?r:(0,YD.emptyCompositeFieldUsage)();n.compositeFieldUsage=(0,YD.mergeCompositeFieldUsage)(s,this.compositeFieldUsage)}}i0.QuerySegmentBuilder=aG;class pbe extends aG{constructor(e,n,r,i){super(),this.type="grouping",this.resultFS=new dbe.ReduceFieldSpace(e,n,r,i),this.inputFS=this.resultFS.inputSpace()}finalize(e){let n;if(e)if((0,yo.isReduceSegment)(e)||(0,yo.isPartialSegment)(e))n=e;else return this.resultFS.logError("incompatible-segment-for-reduce-refinement",`Can't refine reduce with ${e.type}`),lbe.ErrorFactory.reduceSegment;const r=this.resultFS.getQuerySegment(n);if(this.refineFrom(n,r),r.orderBy){for(const i of r.orderBy)if(typeof i.field=="number"){const s=r.queryFields[i.field-1];i.field=uG(s)}}if(r.orderBy===void 0||r.defaultOrderBy){let i;for(const s of r.queryFields){let o=!1,u=!1,a;const l=uG(s);if(s.type==="fieldref"){const c=s.path.map(d=>new cbe.FieldName(d)),f=this.inputFS.lookup(c).found;if(f){const d=f.typeDesc();a=d.type,o=(0,yo.expressionIsAggregate)(d.expressionType),u=(0,yo.expressionIsAnalytic)(d.expressionType)}else continue}else a=s.type,o=(0,yo.hasExpression)(s)&&(0,yo.expressionIsAggregate)(s.expressionType),u=(0,yo.hasExpression)(s)&&(0,yo.expressionIsAnalytic)(s.expressionType);if((0,yo.isTemporalType)(a)||o){r.defaultOrderBy=!0,r.orderBy=[{field:l,dir:"desc"}],i=void 0;break}(0,yo.canOrderBy)(a)&&!u&&!i&&(i=l)}i&&(r.defaultOrderBy=!0,r.orderBy=[{field:i,dir:"asc"}])}return r}}i0.ReduceBuilder=pbe,Object.defineProperty(y_,"__esModule",{value:!0}),y_.ProjectBuilder=void 0;const lG=We,mbe=Fr,gbe=ym,ybe=E_,Ebe=i0;class Abe extends Ebe.QuerySegmentBuilder{constructor(e,n,r,i){super(),this.type="project",this.resultFS=new ybe.ProjectFieldSpace(e,n,r,i),this.inputFS=this.resultFS.inputSpace()}execute(e){e.elementType==="having"||e instanceof gbe.GroupBy?e.logError("illegal-operation-in-select-segment","Illegal statement in a select query operation"):super.execute(e)}finalize(e){let n;if(e)if((0,lG.isProjectSegment)(e)||(0,lG.isPartialSegment)(e))n=e;else return this.resultFS.logError("incompatible-segment-for-select-refinement",`Can't refine select with ${e.type}`),mbe.ErrorFactory.projectSegment;const r=this.resultFS.getQuerySegment(n);return this.refineFrom(n,r),r}}y_.ProjectBuilder=Abe;var v_={};Object.defineProperty(v_,"__esModule",{value:!0}),v_.PartialBuilder=void 0;const vbe=Qi,_be=i0;class Cbe extends _be.ReduceBuilder{finalize(e){const n=super.finalize(e);if((0,vbe.isQuerySegment)(n))return{...n,type:"partial"};throw new Error(`Partial Builder cannot finalize from ${n.type}`)}}v_.PartialBuilder=Cbe,Object.defineProperty(pm,"__esModule",{value:!0}),pm.QOpDesc=void 0;const Sbe=m_,bbe=y_,Tbe=i0,Rbe=Ge,Obe=is,Dbe=yr,uf=Rn,Nbe=v_;class wbe extends Rbe.ListOf{constructor(){super(...arguments),this.elementType="queryOperation"}computeType(){var e;let n,r=!1;this.refineThis&&(this.refineThis.type==="reduce"?n=uf.QueryClass.Grouping:this.refineThis.type==="project"?n=uf.QueryClass.Project:this.refineThis.type==="index"&&(n=uf.QueryClass.Index));for(const i of this.list)i.forceQueryClass&&(n?n!==i.forceQueryClass&&i.logError(`illegal-${n}-operation`,`Not legal in ${n} query`):n=i.forceQueryClass),r||(r=(e=i.needsExplicitQueryClass)!==null&&e!==void 0?e:!1);return n===void 0&&r&&(this.logError("ambiguous-view-type",{}),n=uf.QueryClass.Project),this.opClass=n,n}refineFrom(e){this.refineThis=e}getBuilder(e,n,r){switch(this.computeType()){case uf.QueryClass.Grouping:return new Tbe.ReduceBuilder(e,this.refineThis,n,r);case uf.QueryClass.Project:return new bbe.ProjectBuilder(e,this.refineThis,n,r);case uf.QueryClass.Index:return new Sbe.IndexBuilder(e,this.refineThis,n,r);case void 0:return new Nbe.PartialBuilder(e,this.refineThis,n,r)}}getOp(e,n){const r=this.getBuilder(e,n,this);for(const s of this.list)r.execute(s);const i=r.finalize(this.refineThis);return{segment:i,outputSpace:()=>new Dbe.StaticSourceSpace((0,Obe.opOutputStruct)(this,e.structDef(),i))}}}pm.QOpDesc=wbe,Object.defineProperty(p_,"__esModule",{value:!0}),p_.QOpDescView=void 0;const Fbe=We,Lbe=yr,cG=pm,Ibe=is,KD=Rn,Bbe=r0;class $be extends Bbe.View{constructor(e){super({operation:e}),this.operation=e,this.elementType="qopdesc-view"}pipelineComp(e,n){const r=this.operation.getOp(e,n);return{pipeline:[r.segment],outputStruct:r.outputSpace().structDef()}}getOp(e,n,r,i){return(0,Fbe.isRawSegment)(i)?(this.logError("refinement-of-raw-query","A raw query cannot be refined"),i):(r.refineFrom(i),r.getOp(e,n).segment)}refine(e,n,r){const i=[...n];if(i.length===0)return i;if(i.length===1)return this.operation.refineFrom(i[0]),[this.getOp(e,r,this.operation,i[0])];const s=new cG.QOpDesc([]),o=new cG.QOpDesc([]);for(const u of this.operation.list)switch(u.queryRefinementStage){case KD.LegalRefinementStage.Head:s.push(u);break;case KD.LegalRefinementStage.Single:u.logError("illegal-multistage-refinement-operation","Illegal in refinement of a query with more than one stage");break;case KD.LegalRefinementStage.Tail:o.push(u);break;default:u.logError("illegal-refinement-operation","Illegal query refinement")}if(s.notEmpty()&&(this.has({headRefinements:s}),i[0]=this.getOp(e,void 0,s,i[0])),o.notEmpty()){const u=i.length-1;this.has({tailRefinements:o});const a=(0,Ibe.getFinalStruct)(this,e.structDef(),i.slice(-1));i[u]=this.getOp(new Lbe.StaticSourceSpace(a),void 0,o,i[u])}return i}getImplicitName(){}}p_.QOpDescView=$be;var pn={},kbe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),Pbe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Mbe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&kbe(e,t,n);return Pbe(e,t),e};Object.defineProperty(pn,"__esModule",{value:!0}),pn.FieldDefinitionValue=pn.DefSpace=pn.DimensionFieldDeclaration=pn.MeasureFieldDeclaration=pn.DeclareFieldDeclaration=pn.ProjectFieldDeclaration=pn.GroupByFieldDeclaration=pn.AggregateFieldDeclaration=pn.CalculateFieldDeclaration=pn.AtomicFieldDeclaration=void 0;const JD=We,fG=Mbe(Ht),Ube=Pd,jbe=Ge,af=$n,qbe=mr,Hbe=gr;class s0 extends jbe.MalloyElement{constructor(e,n,r){super({expr:e}),this.expr=e,this.defineName=n,this.exprSrc=r,this.isNoteableObj=!0,this.extendNote=qbe.extendNoteMethod}getName(){return this.defineName}fieldDef(e,n){return this.queryFieldDef(new XD(e,this),n)}executesInOutputSpace(){return!1}queryFieldDef(e,n){let r;function i(){if(e.isQueryFieldSpace())return e.outputSpace();throw new Error("must be in a query -- weird internal error")}try{const o=this.executesInOutputSpace()?i():e;r=this.expr.getExpression(o)}catch(o){return this.logError("failed-field-definition",`Cannot define '${n}', ${o.message}`),{name:n,type:"error"}}if(r.type==="null"&&(this.expr.logWarning("null-typed-field-definition",'null value defaults to type number, use "null::TYPE" to specify correct type'),r={type:"number",value:r.value,expressionType:r.expressionType,evalSpace:r.evalSpace,compositeFieldUsage:r.compositeFieldUsage}),(0,JD.isAtomicFieldType)(r.type)&&r.type!=="error"){this.typecheckExprValue(r);const o=(0,JD.mkFieldDef)(fG.atomicDef(r),n);return(o.type==="date"||o.type==="timestamp")&&(0,Ube.isGranularResult)(r)&&(o.timeframe=r.timeframe),o.location=this.location,o.e=r.value,o.compositeFieldUsage=r.compositeFieldUsage,r.expressionType&&(o.expressionType=r.expressionType),this.exprSrc&&(o.code=this.exprSrc),this.note&&(o.annotation=this.note),o}if(!(e instanceof XD&&e.foundCircle)&&r.type!=="error"){const o=fG.inspect(r);this.logError("invalid-type-for-field-definition",`Cannot define '${n}', unexpected type: ${o}`)}return{name:n,type:"error"}}makeEntry(e){e.newEntry(this.defineName,this,new xG(e,this))}}pn.AtomicFieldDeclaration=s0;class zbe extends s0{constructor(){super(...arguments),this.elementType="calculateFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckCalculate)(e,this)}executesInOutputSpace(){return!0}}pn.CalculateFieldDeclaration=zbe;class Qbe extends s0{constructor(){super(...arguments),this.elementType="aggregateFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckAggregate)(e,this)}}pn.AggregateFieldDeclaration=Qbe;class Gbe extends s0{constructor(){super(...arguments),this.elementType="groupByFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckGroupBy)(e,this)}}pn.GroupByFieldDeclaration=Gbe;class Wbe extends s0{constructor(){super(...arguments),this.elementType="projectFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckProject)(e,this)}}pn.ProjectFieldDeclaration=Wbe;class Vbe extends s0{constructor(){super(...arguments),this.elementType="declareFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckDeclare)(e,this)}}pn.DeclareFieldDeclaration=Vbe;class Ybe extends s0{constructor(){super(...arguments),this.elementType="measureFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckMeasure)(e,this)}}pn.MeasureFieldDeclaration=Ybe;class Kbe extends s0{constructor(){super(...arguments),this.elementType="dimensionFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckDimension)(e,this)}}pn.DimensionFieldDeclaration=Kbe;class XD{constructor(e,n){this.realFS=e,this.circular=n,this.type="fieldSpace",this.foundCircle=!1}structDef(){return this.realFS.structDef()}emptyStructDef(){return this.realFS.emptyStructDef()}entry(e){return this.realFS.entry(e)}lookup(e){return e[0]&&e[0].refString===this.circular.defineName?(this.foundCircle=!0,{error:{message:`Circular reference to '${this.circular.defineName}' in definition`,code:"circular-reference-in-field-definition"},found:void 0}):this.realFS.lookup(e)}entries(){return this.realFS.entries()}dialectName(){return this.realFS.dialectName()}dialectObj(){return this.realFS.dialectObj()}isQueryFieldSpace(){return this.realFS.isQueryFieldSpace()}outputSpace(){if(this.realFS.isQueryFieldSpace())return this.realFS.outputSpace();throw new Error("Not a query field space")}inputSpace(){if(this.realFS.isQueryFieldSpace())return this.realFS.inputSpace();throw new Error("Not a query field space")}isProtectedAccessSpace(){return!0}}pn.DefSpace=XD;class xG extends Hbe.SpaceField{constructor(e,n){super(),this.space=e,this.exprDef=n,this.fieldName=n.defineName}get name(){return this.fieldName}fieldDef(){var e;const n=(e=this.defInSource)!==null&&e!==void 0?e:this.exprDef.fieldDef(this.space,this.name);return this.defInSource=n,n}getQueryFieldDef(e){if(!this.defInQuery){const n=this.exprDef.queryFieldDef(e,this.name);this.defInQuery=n}return this.defInQuery}typeDesc(){const e=this.defInQuery||this.fieldDef();if((0,JD.isAtomic)(e))return this.fieldTypeFromFieldDef(e);throw new Error(`Can't get typeDesc for ${e.type}`)}entryType(){return(this.defInQuery||this.fieldDef()).type}}pn.FieldDefinitionValue=xG;var __={};Object.defineProperty(__,"__esModule",{value:!0}),__.Aggregate=void 0;const Jbe=ns,dG=Rn;let Xbe=class extends Jbe.DefinitionList{constructor(){super(...arguments),this.elementType="aggregateList",this.queryRefinementStage=dG.LegalRefinementStage.Single,this.forceQueryClass=dG.QueryClass.Grouping}};__.Aggregate=Xbe;var C_={};Object.defineProperty(C_,"__esModule",{value:!0}),C_.Calculate=void 0;const Zbe=ns,eTe=Rn;class tTe extends Zbe.DefinitionList{constructor(){super(...arguments),this.elementType="calculate",this.forceQueryClass=void 0,this.needsExplicitQueryClass=!0,this.queryRefinementStage=eTe.LegalRefinementStage.Single}}C_.Calculate=tTe;var Em={};Object.defineProperty(Em,"__esModule",{value:!0}),Em.Dimensions=void 0;const nTe=ql;class rTe extends nTe.DeclareFields{constructor(){super(...arguments),this.elementType="dimensionList"}}Em.Dimensions=rTe;var Am={};Object.defineProperty(Am,"__esModule",{value:!0}),Am.Measures=void 0;const iTe=ql;class sTe extends iTe.DeclareFields{constructor(){super(...arguments),this.elementType="measureList"}}Am.Measures=sTe;var S_={};Object.defineProperty(S_,"__esModule",{value:!0}),S_.Nests=void 0;const oTe=ns,hG=Rn;class uTe extends oTe.DefinitionList{constructor(e){super(e),this.elementType="nestedQueries",this.queryRefinementStage=hG.LegalRefinementStage.Single,this.forceQueryClass=hG.QueryClass.Grouping}}S_.Nests=uTe;var b_={};Object.defineProperty(b_,"__esModule",{value:!0}),b_.ProjectStatement=void 0;const aTe=ns,pG=Rn;class lTe extends aTe.DefinitionList{constructor(){super(...arguments),this.elementType="projectStatement",this.forceQueryClass=pG.QueryClass.Project,this.queryRefinementStage=pG.LegalRefinementStage.Single}queryExecute(e){e.type==="project"&&e.resultFS.pushFields(...this.list)}}b_.ProjectStatement=lTe;var o0={},Ta={};Object.defineProperty(Ta,"__esModule",{value:!0}),Ta.findReferences=Ta.deprecatedParseTableURI=Ta.constructTableKey=void 0;const cTe=Cl,ZD=un;function e7(t){const e=(0,ZD.getStringIfShort)(t);if(e)return e;const n=[],r=t.string().sqlString();if(r){for(const i of(0,ZD.getStringParts)(r))typeof i=="string"&&n.push(i);return n.join("")}return""}class fTe{constructor(e,n){this.trans=e,this.tokens=n,this.needTables={},this.needImports={}}registerTableReference(e,n,r){const i=mG(e,n);this.needTables[i]||(this.needTables[i]={connectionName:e,tablePath:n,firstReference:r})}enterTableMethod(e){const n=(0,ZD.getId)(e.connectionId()),r=e7(e.tablePath()),i=this.trans.rangeFromContext(e);this.registerTableReference(n,r,i)}enterTableFunction(e){const n=e7(e.tableURI()),{connectionName:r,tablePath:i}=gG(n),s=this.trans.rangeFromContext(e);this.registerTableReference(r,i,s)}enterImportURL(e){const n=e7(e);this.needImports[n]||(this.needImports[n]=this.trans.rangeFromContext(e))}}function mG(t,e){return t===void 0?e:`${t}:${e}`}Ta.constructTableKey=mG;function gG(t){const e=t.match(/^([^:]*):(.*)$/);if(e){const[,n,r]=e;return{connectionName:n,tablePath:r}}else return{tablePath:t}}Ta.deprecatedParseTableURI=gG;function xTe(t,e,n){const r=new fTe(t,e),i=r;return cTe.ParseTreeWalker.DEFAULT.walk(i,n),{tables:r.needTables,urls:r.needImports}}Ta.findReferences=xTe,Object.defineProperty(o0,"__esModule",{value:!0}),o0.TableFunctionSource=o0.TableMethodSource=o0.TableSource=void 0;const yG=Ta,dTe=Os,EG=Fr;class t7 extends dTe.Source{getSourceDef(){var e,n,r;const i=this.getTableInfo();if(i===void 0)return EG.ErrorFactory.structDef;const{tablePath:s,connectionName:o}=i,u=(0,yG.constructTableKey)(o,s),a=(e=this.translator())===null||e===void 0?void 0:e.root.schemaZone.getEntry(u);let l=`Schema read failure for table '${s}' for connection '${o}'`;if(a){if(a.status==="present"){(n=this.document())===null||n===void 0||n.checkExperimentalDialect(this,a.value.dialect),a.value.location=this.location,a.value.fields.forEach(f=>{f.location=this.location});const c={...a.value,fields:a.value.fields.map(f=>({...f,location:this.location})),location:this.location};return(r=this.document())===null||r===void 0||r.rememberToAddModelAnnotations(c),c}a.status==="error"&&(l=a.message)}return this.logError("failed-to-fetch-table-schema",l),EG.ErrorFactory.structDef}}o0.TableSource=t7;class hTe extends t7{constructor(e,n){super(),this.connectionName=e,this.tablePath=n,this.elementType="tableMethodSource",this.has({connectionName:e})}getTableInfo(){var e;const n=this.modelEntry(this.connectionName),r=this.connectionName.refString;if(n===void 0)(e=this.namespace())===null||e===void 0||e.setEntry(r,{entry:{type:"connection",name:r},exported:!0},!0);else if(n.entry.type!=="connection"){this.connectionName.logError("invalid-connection-for-table-source",`${this.connectionName.refString} is not a connection`);return}return{tablePath:this.tablePath,connectionName:this.connectionName.refString}}}o0.TableMethodSource=hTe;class pTe extends t7{constructor(e){super(),this.tableURI=e,this.elementType="tableFunctionSource"}getTableInfo(){return(0,yG.deprecatedParseTableURI)(this.tableURI)}}o0.TableFunctionSource=pTe;var T_={};Object.defineProperty(T_,"__esModule",{value:!0}),T_.SQLString=void 0;const mTe=Ge,AG=po;class gTe extends mTe.MalloyElement{constructor(){super(...arguments),this.elementType="sqlString",this.elements=[],this.containsQueries=!1}complete(){this.has({queries:this.elements.filter(yTe)})}push(e){typeof e=="string"?e.length>0&&this.elements.push(e):e instanceof AG.SourceQueryElement?(this.elements.push(e),this.containsQueries=!0,e.parent=this):e.logError("invalid-sql-source-interpolation","This element is not legal inside an SQL string")}sqlPhrases(){const e=[];for(const n of this.elements)if(typeof n=="string")e.push({sql:n});else{const r=n.getQuery();r?e.push(r.query()):n.sqLog("failed-to-expand-sql-source","Cannot expand into a query")}return e}}T_.SQLString=gTe;function yTe(t){return t instanceof AG.SourceQueryElement}var R_={};Object.defineProperty(R_,"__esModule",{value:!0}),R_.SourceDesc=void 0;const ETe=Ge;class ATe extends ETe.ListOf{constructor(){super(...arguments),this.elementType="sourceDescription"}}R_.SourceDesc=ATe;var O_={};Object.defineProperty(O_,"__esModule",{value:!0}),O_.isSourceProperty=void 0;const vTe=xu,_Te=ql,CTe=Cd,STe=Wl,bTe=Sd,TTe=bd,RTe=Td,OTe=Gl,DTe=bi;function NTe(t){return t instanceof vTe.Filter||t instanceof DTe.JoinStatement||t instanceof _Te.DeclareFields||t instanceof CTe.FieldListEdit||t instanceof STe.Renames||t instanceof bTe.PrimaryKey||t instanceof OTe.ObjectAnnotation||t instanceof TTe.Views||t instanceof RTe.TimezoneStatement}O_.isSourceProperty=NTe;var D_={};Object.defineProperty(D_,"__esModule",{value:!0}),D_.isFieldCollectionMember=void 0;const wTe=pn,vG=xt;function FTe(t){return t instanceof vG.FieldReference||t instanceof vG.WildcardFieldReference||t instanceof wTe.AtomicFieldDeclaration}D_.isFieldCollectionMember=FTe;var N_={};Object.defineProperty(N_,"__esModule",{value:!0}),N_.isQueryElement=void 0;const LTe=Bd,ITe=$d,BTe=rm,$Te=im;function kTe(t){return t instanceof LTe.QueryArrow||t instanceof ITe.QueryRefine||t instanceof BTe.QueryReference||t instanceof $Te.QueryRaw}N_.isQueryElement=kTe;var _G={};Object.defineProperty(_G,"__esModule",{value:!0});var w_={};Object.defineProperty(w_,"__esModule",{value:!0}),w_.isQueryProperty=void 0;function PTe(t){return"queryRefinementStage"in t&&"forceQueryClass"in t}w_.isQueryProperty=PTe;var F_={};Object.defineProperty(F_,"__esModule",{value:!0}),F_.isQueryExtendProperty=void 0;const MTe=Em,UTe=bi,jTe=Am;function qTe(t){return t instanceof MTe.Dimensions||t instanceof jTe.Measures||t instanceof UTe.JoinStatement}F_.isQueryExtendProperty=qTe;var L_={};Object.defineProperty(L_,"__esModule",{value:!0}),L_.isFieldPropStatement=void 0;const HTe=Jl,zTe=xu,QTe=Xl,GTe=Hd;function WTe(t){return t instanceof zTe.Filter||t instanceof QTe.Limit||t instanceof GTe.PartitionBy||t instanceof HTe.FunctionOrdering}L_.isFieldPropStatement=WTe,function(t){var e=T&&T.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=T&&T.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(D1,t),n(yd,t),n(Ed,t),n(Os,t),n(L1,t),n(po,t),n(dv,t),n(hv,t),n(gv,t),n(X1,t),n(Av,t),n(vv,t),n(ho,t),n(Cd,t),n(Sd,t),n(Wl,t),n(bd,t),n(Td,t),n(Cv,t),n(Ud,t),n(bv,t),n(Jl,t),n(Tv,t),n(Sa,t),n(Rv,t),n(qd,t),n(Ov,t),n(Dv,t),n(Nv,t),n(Ca,t),n(wv,t),n(Fv,t),n(Iv,t),n(lm,t),n(um,t),n(tf,t),n($v,t),n(kv,t),n(Mv,t),n(jv,t),n(qv,t),n(Hv,t),n(zv,t),n(e0,t),n(Gv,t),n(Wv,t),n(Vv,t),n(Yv,t),n(Kv,t),n(Jv,t),n(Zv,t),n(n_,t),n(Jn,t),n(s_,t),n(Hd,t),n(Qd,t),n(Wd,t),n(u_,t),n(sf,t),n(Kl,t),n(a_,t),n(cm,t),n(n0,t),n(dm,t),n(l_,t),n(c_,t),n(f_,t),n($d,t),n(Bd,t),n(r0,t),n(x_,t),n(d_,t),n(h_,t),n(p_,t),n(pn,t),n(xt,t),n(__,t),n(C_,t),n(ql,t),n(Em,t),n(dm,t),n(xu,t),n(ym,t),n(mm,t),n(bi,t),n(N1,t),n(Xl,t),n(Am,t),n(D1,t),n(S_,t),n(of,t),n(b_,t),n(pm,t),n(gm,t),n(kd,t),n(ef,t),n(sm,t),n(o0,t),n(T_,t),n(Gl,t),n(mo,t),n(R_,t),n(O_,t),n(at,t),n(D_,t),n(Zl,t),n(Ge,t),n(N_,t),n(_G,t),n(w_,t),n(F_,t),n(L_,t)}(WA);var I_={},Yd={};Object.defineProperty(Yd,"__esModule",{value:!0}),Yd.ConstantExpression=Yd.ConstantFieldSpace=void 0;const VTe=at;class CG{constructor(){this.type="fieldSpace"}structDef(){throw new Error("ConstantFieldSpace cannot generate a structDef")}emptyStructDef(){throw new Error("ConstantFieldSpace cannot generate a structDef")}lookup(e){return{error:{message:"Only constants allowed in parameter default values",code:"illegal-reference-in-parameter-default"},found:void 0}}entries(){return[]}entry(){}dialectName(){return"~constant-space-unknown-dialect~"}dialectObj(){}isQueryFieldSpace(){return!1}isProtectedAccessSpace(){return!1}}Yd.ConstantFieldSpace=CG;class YTe extends VTe.ExpressionDef{constructor(e){super({expr:e}),this.expr=e,this.elementType="constantExpression"}getExpression(e){return this.constantValue()}get constantFs(){return this.cfs||(this.cfs=new CG),this.cfs}constantValue(){return this.expr.getExpression(this.constantFs)}apply(e,n,r){return this.expr.apply(e,n,r)}requestExpression(e){return this.expr.requestExpression(e)}}Yd.ConstantExpression=YTe;var KTe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),JTe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),XTe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&KTe(e,t,n);return JTe(e,t),e};Object.defineProperty(I_,"__esModule",{value:!0}),I_.MalloyToAST=void 0;const SG=m1,ZTe=w2,ee=XTe(WA),n7=w1,bG=Gn,e6e=WA,Ln=un,r7=We,t6e=Js,n6e=Yd,r6e=lu;class TG extends ee.SourceQueryElement{constructor(){super(...arguments),this.elementType="parseErrorSourceQuery"}}class i7 extends ee.MalloyElement{constructor(e){super(),this.elementType="ignoredByParser",this.malloySrc=e}}const i6e=["##! m4warnings=error"];class s6e extends ZTe.AbstractParseTreeVisitor{constructor(e,n,r){super(),this.parseInfo=e,this.msgLog=n,this.compilerFlags=r;for(const i of i6e){const s=t6e.Tag.fromTagline(i,this.compilerFlags);this.compilerFlags=s.tag}}internalError(e,n){return this.contextError(e,"internal-translator-error",{message:n}),new Error(`Internal Translator Error: ${n}`)}astError(e,n,r,i){this.msgLog.log((0,n7.makeLogMessage)(n,r,{at:e.location,...i}))}getLocation(e){return{url:this.parseInfo.sourceURL,range:this.parseInfo.rangeFromContext(e)}}getSourceString(e){return this.parseInfo.sourceStream.getText(new bG.Interval(e.start.startIndex,e.stop?e.stop.stopIndex:e.start.startIndex))}contextError(e,n,r,i){this.msgLog.log((0,n7.makeLogMessage)(n,r,{at:this.getLocation(e),...i}))}warnWithReplacement(e,n,r,i){this.msgLog.log((0,n7.makeLogMessage)(e,n,{at:{url:this.parseInfo.sourceURL,range:r},severity:"warn",replacement:i}))}inExperiment(e,n){const r=this.compilerFlags.tag("experimental");return r&&(r.bare()||r.has(e))?!0:(this.contextError(n,"experiment-not-enabled",{experimentId:e}),!1)}m4Severity(){const e=this.compilerFlags.tag("m4warnings");return e?e.text()==="warn"?"warn":"error":!1}m4advisory(e,n,r){const i=this.m4Severity();i&&this.contextError(e,n,r,{severity:i})}only(e,n,r){const i=[];for(const s of e){const o=n(s);o?i.push(o):s instanceof i7||this.astError(s,"unexpected-statement-in-translation",`Parser enountered unexpected statement type '${s.elementType}' when it needed '${r}'`)}return i}getNumber(e){return Number.parseInt(e.text)}getFieldName(e){return this.astAt(new ee.FieldName((0,Ln.getId)(e)),e.id())}getModelEntryName(e){return this.astAt(new ee.ModelEntryReference((0,Ln.getId)(e)),e.id())}defaultResult(){return new ee.Unimplemented}astAt(e,n){return e.location={url:this.parseInfo.sourceURL,range:this.parseInfo.rangeFromContext(n)},e}getSourceCode(e){const n=e.start.startIndex,r=e.stop||e.start,i=new bG.Interval(n,r.stopIndex);return this.parseInfo.sourceStream.getText(i)}getFilterElement(e){const n=this.getFieldExpr(e),r=new ee.FilterElement(n,this.getSourceCode(e));return this.astAt(r,e)}getFieldDefs(e,n){return e.map(r=>this.getFieldDef(r,n))}getFieldExpr(e){const n=this.visit(e);if(n instanceof ee.ExpressionDef)return this.astAt(n,e);throw this.internalError(e,`expression node unknown type '${n.elementType}'`)}getPlainStringFrom(e){const[n,r]=(0,Ln.getPlainString)(e);for(const i of r)i instanceof SG.ParserRuleContext&&this.contextError(i,"illegal-query-interpolation-outside-sql-block","%{ query } illegal in this string");return n||""}makeSqlString(e,n){for(const r of e.sqlInterpolation())r.CLOSE_CODE()&&this.m4advisory(r,"percent-terminated-query-interpolation","Use %{ ... } instead of %{ ... }%");for(const r of(0,Ln.getStringParts)(e))r instanceof SG.ParserRuleContext?n.push(this.visit(r)):n.push(r);n.complete(),this.astAt(n,e)}parseTime(e,n){let r=n(e.text);return r||(this.contextError(e,"failed-to-parse-time-literal","Time data parse error"),r=new ee.LiteralTimestamp({text:e.text})),this.astAt(r,e)}getNotes(e){return e.ANNOTATION().map(n=>({text:n.text,at:this.getLocation(e)}))}getIsNotes(e){return this.getNotes(e._beforeIs).concat(this.getNotes(e._afterIs))}visitMalloyDocument(e){const n=this.only(e.malloyStatement().map(r=>this.visit(r)),r=>ee.isDocStatementOrDocStatementList(r)&&r,"statement");return new ee.Document(n)}visitDefineSourceStatement(e){const r=e.sourcePropertyList().sourceDefinition().map(o=>this.visitSourceDefinition(o)),i=this.getNotes(e.tags()),s=new ee.DefineSourceList(r);return s.extendNote({blockNotes:i}),s}getSourceParameter(e){const n=e.fieldExpr(),r=n?this.astAt(new n6e.ConstantExpression(this.getFieldExpr(n)),n):void 0,i=e.malloyType(),s=i?this.getMalloyType(i):void 0;return this.astAt(new ee.HasParameter({name:(0,Ln.getId)(e.parameterNameDef()),type:s,default:r}),e)}getSourceParameters(e){return e===void 0?[]:(this.inExperiment("parameters",e),e.sourceParameter().map(n=>this.getSourceParameter(n)))}visitSourceDefinition(e){const n=this.visit(e.sqExplore()),r=this.getSourceParameters(e.sourceParameters()),i=new ee.DefineSource((0,Ln.getId)(e.sourceNameDef()),n instanceof ee.SourceQueryElement?n:void 0,!0,r),s=this.getNotes(e.tags()).concat(this.getIsNotes(e.isDefine()));return i.extendNote({notes:s}),this.astAt(i,e)}getSourceExtensions(e){return this.astAt(this.visitExploreProperties(e),e)}visitExploreProperties(e){const n=this.only(e.exploreStatement().map(i=>this.visit(i)),i=>ee.isSourceProperty(i)&&i,"source property");return new ee.SourceDesc(n)}visitTableFunction(e){const n=this.getPlainStringFrom(e.tableURI()),r=this.astAt(new ee.TableFunctionSource(n),e);return this.m4advisory(e,"table-function","`table('connection_name:table_path')` is deprecated; use `connection_name.table('table_path')`"),r}visitTableMethod(e){const n=e.connectionId(),r=this.astAt(this.getModelEntryName(n),n),i=this.getPlainStringFrom(e.tablePath());return this.astAt(new ee.TableMethodSource(r,i),e)}visitSqlSource(e){const n=e.connectionId(),r=this.astAt(this.getModelEntryName(n),n),i=new ee.SQLString,s=e.sqlString();s&&this.makeSqlString(s,i);const o=e.shortString();o&&i.push((0,Ln.getShortString)(o));const u=new ee.SQLSource(r,i);return this.astAt(u,e)}visitDefJoinMany(e){const n=this.getAccessLabel(e.accessLabel()),r=[];for(const s of e.joinList().joinDef()){const o=this.visit(s);o instanceof ee.Join&&(r.push(o),o instanceof ee.ExpressionJoin?(o.joinType="many",o.joinOn===void 0&&this.contextError(e,"missing-on-in-join-many","join_many: requires ON expression")):o instanceof ee.KeyJoin&&this.contextError(e,"foreign-key-in-join-many","Foreign key join not legal in join_many:"))}const i=new ee.JoinStatement(r,n);return i.extendNote({blockNotes:this.getNotes(e.tags())}),i}visitDefJoinOne(e){const n=this.getAccessLabel(e.accessLabel()),r=this.getJoinList(e.joinList()),i=[];for(const o of r)o instanceof ee.Join&&(i.push(o),o instanceof ee.ExpressionJoin&&(o.joinType="one"));const s=new ee.JoinStatement(i,n);return s.extendNote({blockNotes:this.getNotes(e.tags())}),s}visitDefJoinCross(e){const n=this.getAccessLabel(e.accessLabel()),r=this.getJoinList(e.joinList()),i=[];for(const o of r)o instanceof ee.Join&&(i.push(o),o instanceof ee.ExpressionJoin?o.joinType="cross":o.logError("foreign-key-in-join-cross","Foreign key join not legal in join_cross:"));const s=new ee.JoinStatement(i,n);return s.extendNote({blockNotes:this.getNotes(e.tags())}),s}getJoinList(e){return this.only(e.joinDef().map(n=>this.visit(n)),n=>n instanceof ee.Join&&n,"join")}getJoinFrom(e){const n=e.isExplore(),r=this.getModelEntryName(e.joinNameDef());if(n){const s=this.getSqExpr(n.sqExpr()),o=this.getNotes(n._before_is).concat(this.getNotes(n._after_is));return{joinFrom:s,notes:o,joinAs:r}}const i=e.sourceArguments();return i?{joinFrom:this.astAt(new ee.SQReference(r,this.getSQArguments(i)),e),notes:[],joinAs:r}:{joinAs:r,joinFrom:new ee.SQReference(r),notes:[]}}visitQueryJoinStatement(e){return this.astAt(this.visit(e.joinStatement()),e)}visitJoinOn(e){var n;const{joinAs:r,joinFrom:i,notes:s}=this.getJoinFrom(e.joinFrom()),o=new ee.ExpressionJoin(r,i),u=e.joinExpression(),a=((n=e.matrixOperation())===null||n===void 0?void 0:n.text.toLocaleLowerCase())||"left";return(0,r7.isMatrixOperation)(a)?o.matrixOperation=a:this.contextError(e,"unknown-matrix-operation","Internal Error: Unknown matrixOperation"),u&&(o.joinOn=this.getFieldExpr(u)),o.extendNote({notes:this.getNotes(e).concat(s)}),this.astAt(o,e)}visitJoinWith(e){const{joinAs:n,joinFrom:r,notes:i}=this.getJoinFrom(e.joinFrom()),s=this.getFieldExpr(e.fieldExpr()),o=new ee.KeyJoin(n,r,s);return o.extendNote({notes:this.getNotes(e).concat(i)}),this.astAt(o,e)}getFieldDef(e,n){const r=e.fieldExpr(),i=(0,Ln.getId)(e.fieldNameDef()),s=this.getFieldExpr(r),o=new n(s,i,this.getSourceCode(r)),u=this.getNotes(e.tags()).concat(this.getIsNotes(e.isDefine()));return o.extendNote({notes:u}),this.astAt(o,e)}visitDefDimensions(e){const n=this.getAccessLabel(e.accessLabel()),r=this.getFieldDefs(e.defList().fieldDef(),ee.DimensionFieldDeclaration),i=new ee.Dimensions(r,n);return i.extendNote({blockNotes:this.getNotes(e.tags())}),this.astAt(i,e)}getAccessLabel(e){if(e!==void 0){if(e.INTERNAL_KW())return"internal";if(e.PRIVATE_KW())return"private";if(e.PUBLIC_KW())return"public";throw this.internalError(e,`Unknown access modifier label ${e.text}`)}}getAccessLabelProp(e){if(e!==void 0){if(e.INTERNAL())return"internal";if(e.PRIVATE())return"private";if(e.PUBLIC())return"public";throw this.internalError(e,`Unknown access modifier label ${e.text}`)}}visitDefMeasures(e){const n=this.getAccessLabel(e.accessLabel()),r=this.getFieldDefs(e.defList().fieldDef(),ee.MeasureFieldDeclaration),i=new ee.Measures(r,n);return i.extendNote({blockNotes:this.getNotes(e.tags())}),this.astAt(i,e)}visitQueryExtend(e){const n=[],r=e.queryExtendStatementList().queryExtendStatement().map(s=>this.visit(s));for(const s of r)if(ee.isQueryExtendProperty(s))n.push(s);else throw this.internalError(e,`Query extend matched, but ${s.elementType} found`);const i=new ee.ExtendBlock(n);return this.astAt(i,e)}visitDeclareStatement(e){const n=this.getAccessLabel(e.accessLabel()),r=this.getFieldDefs(e.defList().fieldDef(),ee.DeclareFieldDeclaration),i=new ee.DeclareFields(r,n),s=this.astAt(i,e);return this.m4advisory(e,"declare","`declare:` is deprecated; use `dimension:` or `measure:` inside a source or `extend:` block"),s}visitExploreRenameDef(e){const n=e.fieldName(0),r=e.fieldName(1),i=new ee.RenameField((0,Ln.getId)(n),this.getFieldName(r));return this.astAt(i,e)}visitDefExploreRename(e){const n=this.getAccessLabel(e.accessLabel()),i=e.renameList().exploreRenameDef().map(o=>this.visitExploreRenameDef(o)),s=new ee.Renames(i,n);return this.astAt(s,e)}visitFilterClauseList(e){return new ee.Filter(e.fieldExpr().map(n=>this.getFilterElement(n)))}visitWhereStatement(e){const n=this.visitFilterClauseList(e.filterClauseList());return n.having=!1,this.astAt(n,e)}visitHavingStatement(e){const n=this.visitFilterClauseList(e.filterClauseList());return n.having=!0,this.astAt(n,e)}visitDefExploreQuery(e){const n=this.getAccessLabel(e.accessLabel()),r=e.subQueryDefList().exploreQueryDef().map(o=>this.visitExploreQueryDef(o)),i=new ee.Views(r,n),s=this.getNotes(e.tags());return i.extendNote({blockNotes:s}),e.QUERY()&&this.m4advisory(e,"query-in-source","Use view: inside of a source instead of query:"),i}visitDefExplorePrimaryKey(e){const n=new ee.PrimaryKey(this.getFieldName(e.fieldName()));return this.astAt(n,e)}getFieldNameList(e,n){const r=e.fieldName().map(i=>this.astAt(new n([this.getFieldName(i)]),i));return new ee.FieldReferences(r)}visitDefExploreEditField(e){const n=e.ACCEPT()?"accept":"except";return new ee.FieldListEdit(n,this.getFieldNameList(e.fieldNameList(),ee.AcceptExceptFieldReference))}visitSQInclude(e){const n=this.getSqExpr(e.sqExpr()),r=e.includeBlock(),i=r?this.getIncludeItems(r):void 0,s=new ee.SQExtend(n,new ee.SourceDesc([]),i);return this.astAt(s,e)}visitDefExploreTimezone(e){return this.visitTimezoneStatement(e.timezoneStatement())}visitTimezoneStatement(e){const n=this.getPlainStringFrom(e),r=this.astAt(new ee.TimezoneStatement(n),e.string());return r.isValid||this.astError(r,"invalid-timezone",{timezone:r.tz}),this.astAt(r,e)}visitQueryProperties(e){const n=this.only(e.queryStatement().map(r=>this.astAt(this.visit(r),r)),r=>ee.isQueryProperty(r)&&r,"query statement");return new ee.QOpDesc(n)}getFieldPath(e,n){const r=e.fieldName().map(i=>this.getFieldName(i));return this.astAt(new n(r),e)}getQueryFieldDef(e,n){const r=this.getFieldDef(e,n);return this.astAt(r,e)}getQueryFieldEntry(e,n,r){const i=e.taggedRef();if(i)return this.getTaggedRef(i,n,r);const s=e.fieldDef();if(s)return this.getQueryFieldDef(s,n);throw new Error("Expected query field entry to be a field reference or definition")}getQueryItems(e,n,r){return this.only(e.queryFieldEntry().map(i=>this.getQueryFieldEntry(i,n,r)),i=>i instanceof ee.FieldReference||i instanceof ee.AtomicFieldDeclaration?i:!1,"view field")}visitAggregateStatement(e){const n=new ee.Aggregate(this.getQueryItems(e.queryFieldList(),ee.AggregateFieldDeclaration,ee.AggregateFieldReference));return n.extendNote({blockNotes:this.getNotes(e.tags())}),n}visitGroupByStatement(e){const n=new ee.GroupBy(this.getQueryItems(e.queryFieldList(),ee.GroupByFieldDeclaration,ee.GroupByFieldReference));return n.extendNote({blockNotes:this.getNotes(e.tags())}),n}visitCalculateStatement(e){const n=new ee.Calculate(this.getQueryItems(e.queryFieldList(),ee.CalculateFieldDeclaration,ee.CalculateFieldReference));return n.extendNote({blockNotes:this.getNotes(e.tags())}),n}getTaggedRef(e,n,r){const i=e.refExpr();if(i){const o=this.getFieldPath(e.fieldPath(),ee.ExpressionFieldReference);let u;const a=i.timeframe();a&&(u=new ee.ExprGranularTime(new ee.ExprIdReference(o),this.visitTimeframe(a).text,!0));const l=i.aggregate();if(l){const f=l.text.toLowerCase();if(f==="sum")u=new ee.ExprSum(void 0,o);else return this.contextError(l,"invalid-reference-only-aggregation",`\`${f}\` is not legal in a reference-only aggregation`),o}const c=new n(u,o.outputName);return c.extendNote({notes:this.getNotes(e.tags())}),c}const s=this.getFieldPath(e.fieldPath(),r);return s.extendNote({notes:this.getNotes(e.tags())}),s}getFieldCollectionMember(e,n,r){const i=e.fieldDef();if(i)return this.getFieldDef(i,n);const s=e.taggedRef();if(s)return this.getTaggedRef(s,n,r);const o=e.collectionWildCard();if(o)return this.visitCollectionWildCard(o);throw this.internalError(e,"Unexpected element in fieldCollectionMember")}visitFieldCollection(e){const n=e.collectionMember().map(r=>this.getFieldCollectionMember(r,ee.ProjectFieldDeclaration,ee.ProjectFieldReference));return this.astAt(new ee.ProjectStatement(n),e)}visitProjectStatement(e){e.PROJECT()&&this.m4advisory(e,"project","project: keyword is deprecated, use select:");const n=this.visitFieldCollection(e.fieldCollection());return n.extendNote({blockNotes:this.getNotes(e.tags())}),n}visitCollectionWildCard(e){var n;const r=e.fieldPath(),i=r?this.getFieldPath(r,ee.ProjectFieldReference):void 0,s=this.astAt(new ee.WildcardFieldReference(i),e),o=((n=e.starQualified())===null||n===void 0?void 0:n.fieldNameList())||[];for(const u of o)for(const a of u.fieldName())s.except.add((0,Ln.getId)(a));return s}visitIndexFields(e){const n=e.indexElement().map(r=>{const i=r.fieldPath();if(!i)return this.astAt(new ee.WildcardFieldReference(void 0),e);const s=this.getFieldPath(i,ee.IndexFieldReference);return r.STAR()?this.astAt(new ee.WildcardFieldReference(s),e):this.astAt(s,e)});return new ee.FieldReferences(n)}visitIndexStatement(e){const n=this.visitIndexFields(e.indexFields()),r=new ee.Index(n),i=e.fieldName();return i&&r.useWeight(this.getFieldName(i)),this.astAt(r,e)}visitFieldPropertyLimitStatement(e){return this.inExperiment("aggregate_limit",e),this.visitLimitStatement(e.limitStatement())}visitLimitStatement(e){return new ee.Limit(this.getNumber(e.INTEGER_LITERAL()))}visitAggregateOrderBySpec(e){const n=e.ASC()?"asc":e.DESC()?"desc":void 0,r=e.fieldExpr(),i=r?this.getFieldExpr(r):void 0;return this.astAt(new ee.FunctionOrderBy(i,n),e)}visitAggregateOrderByStatement(e){return this.visitAggregateOrdering(e.aggregateOrdering())}visitAggregateOrdering(e){const n=e.aggregateOrderBySpec().map(r=>this.visitAggregateOrderBySpec(r));return this.astAt(new ee.FunctionOrdering(n),e)}visitOrderBySpec(e){const n=e.ASC()?"asc":e.DESC()?"desc":void 0,r=e.INTEGER_LITERAL();if(r)return new ee.OrderBy(this.getNumber(r),n);const i=e.fieldName();if(i)return new ee.OrderBy(this.getFieldName(i),n);throw this.internalError(e,"can't parse order_by specification")}visitOrdering(e){const n=e.orderBySpec().map(r=>this.visitOrderBySpec(r));return this.astAt(new ee.Ordering(n),e)}visitTopStatement(e){const n=this.getNumber(e.INTEGER_LITERAL());return this.astAt(new ee.Limit(n),e)}visitTopLevelQueryDefs(e){const n=e.topLevelQueryDef().map(s=>this.visitTopLevelQueryDef(s)),r=this.getNotes(e.tags()),i=new ee.DefineQueryList(n);return i.extendNote({blockNotes:r}),i}visitTopLevelQueryDef(e){const n=(0,Ln.getId)(e.queryName()),r=this.visit(e.sqExpr()),i=this.getNotes(e.tags()).concat(this.getIsNotes(e.isDefine()));if(r instanceof ee.SourceQueryElement){const s=new ee.DefineQuery(n,r);return s.extendNote({notes:i}),this.astAt(s,e)}throw this.internalError(e,`Expected query definition, got a '${r.elementType}'`)}visitAnonymousQuery(e){const n=e.topLevelAnonQueryDef(),r=this.getSqExpr(n.sqExpr()),i=this.astAt(new ee.AnonymousQuery(r),n),s=this.getNotes(e.topLevelAnonQueryDef().tags()),o=this.getNotes(e.tags());return i.extendNote({notes:s,blockNotes:o}),this.m4advisory(n,"anonymous-query","Anonymous `query:` statements are deprecated, use `run:` instead"),this.astAt(i,e)}visitRunStatement(e){const n=e.topLevelAnonQueryDef(),r=this.getSqExpr(n.sqExpr()),i=this.astAt(new ee.AnonymousQuery(r),n),s=this.getNotes(e.topLevelAnonQueryDef().tags()),o=this.getNotes(e.tags());return i.extendNote({notes:s,blockNotes:o}),this.astAt(i,e)}visitNestStatement(e){const n=this.visitNestedQueryList(e.nestedQueryList());return n.extendNote({blockNotes:this.getNotes(e.tags())}),n}visitNestedQueryList(e){return new ee.Nests(this.only(e.nestEntry().map(n=>this.visit(n)),n=>n instanceof ee.NestFieldDeclaration&&n,"query"))}visitNestDef(e){const n=e.queryName();let r;const i=this.getVExpr(e.vExpr());if(n)r=(0,Ln.getId)(n);else{const u=i.getImplicitName();u===void 0&&this.contextError(e,"anonymous-nest","`nest:` view requires a name (add `nest_name is ...`)"),r=u??"__unnamed__"}const s=new ee.NestFieldDeclaration(r,i),o=e.isDefine();return s.extendNote({notes:this.getNotes(e.tags()).concat(o?this.getIsNotes(o):[])}),this.astAt(s,e)}visitExploreQueryDef(e){const n=(0,Ln.getId)(e.exploreQueryNameDef()),r=new ee.ViewFieldDeclaration(n,this.getVExpr(e.vExpr())),i=this.getNotes(e).concat(this.getIsNotes(e.isDefine()));return r.extendNote({notes:i}),this.astAt(r,e)}visitExprNot(e){return new ee.ExprNot(this.getFieldExpr(e.fieldExpr()))}visitExprBool(e){return new ee.Boolean(e.TRUE()?"true":"false")}allFieldExpressions(e){return e.map(n=>this.getFieldExpr(n))}visitExprLogicalOr(e){const n=this.getFieldExpr(e.fieldExpr(0)),r=this.getFieldExpr(e.fieldExpr(1));return new ee.ExprLogicalOp(n,"or",r)}visitExprLogicalAnd(e){const n=this.getFieldExpr(e.fieldExpr(0)),r=this.getFieldExpr(e.fieldExpr(1));return new ee.ExprLogicalOp(n,"and",r)}visitExprOrTree(e){const n=this.getFieldExpr(e.fieldExpr()),r=this.getFieldExpr(e.partialAllowedFieldExpr());return this.astAt(new ee.ExprAlternationTree(n,"|",r),e)}visitExprAndTree(e){const n=this.getFieldExpr(e.fieldExpr()),r=this.getFieldExpr(e.partialAllowedFieldExpr());return this.astAt(new ee.ExprAlternationTree(n,"&",r),e)}visitExprCoalesce(e){const n=this.getFieldExpr(e.fieldExpr()[0]),r=this.getFieldExpr(e.fieldExpr()[1]);return this.astAt(new ee.ExprCoalesce(n,r),e)}visitPartialCompare(e){const n=e.compareOp().text;if(ee.isComparison(n))return this.astAt(new ee.PartialCompare(n,this.getFieldExpr(e.fieldExpr())),e);throw this.internalError(e,`partial comparison '${n}' not recognized`)}visitPartialTest(e){const n=e.partialCompare();return n?this.visitPartialCompare(n):this.astAt(new ee.PartialIsNull(e.NOT()?"!=":"="),e)}visitPartialAllowedFieldExpr(e){const n=e.fieldExpr();if(n)return this.getFieldExpr(n);const r=e.partialTest();if(r)return this.visitPartialTest(r);throw this.internalError(e,"impossible partial")}visitExprString(e){const n=this.getPlainStringFrom(e);return new ee.ExprString(n)}visitExprRegex(e){const n=e.HACKY_REGEX().text;return new ee.ExprRegEx(n.slice(2,-1))}visitExprNow(e){return new ee.ExprNow}visitExprNumber(e){return new ee.ExprNumber(e.text)}visitExprFieldPath(e){const n=new ee.ExprIdReference(this.getFieldPath(e.fieldPath(),ee.ExpressionFieldReference));return this.astAt(n,e)}visitExprNULL(e){return new ee.ExprNULL}visitExprExpr(e){return new ee.ExprParens(this.getFieldExpr(e.fieldExpr()))}visitExprMinus(e){return new ee.ExprMinus(this.getFieldExpr(e.fieldExpr()))}visitExprAddSub(e){const n=this.getFieldExpr(e.fieldExpr(0)),r=this.getFieldExpr(e.fieldExpr(1)),i=e.PLUS()?"+":"-";return new ee.ExprAddSub(n,i,r)}visitExprMulDiv(e){const n=e.STAR()?"*":e.SLASH()?"/":"%";return new ee.ExprMulDiv(this.getFieldExpr(e.fieldExpr(0)),n,this.getFieldExpr(e.fieldExpr(1)))}visitExprCompare(e){const n=e.compareOp().text,r=this.getFieldExpr(e.fieldExpr(0)),i=this.getFieldExpr(e.fieldExpr(1));if(ee.isEquality(n)){const s=this.parseInfo.rangeFromContext(e);return i instanceof ee.ExprNULL&&(n==="="?this.warnWithReplacement("sql-is-null","Use 'is null' to check for NULL instead of '= null'",s,`${this.getSourceCode(e.fieldExpr(0))} is null`):n==="!="&&this.warnWithReplacement("sql-is-not-null","Use 'is not null' to check for NULL instead of '!= null'",s,`${this.getSourceCode(e.fieldExpr(0))} is not null`)),this.astAt(new ee.ExprEquality(r,n,i),e)}else if(ee.isComparison(n))return this.astAt(new ee.ExprCompare(r,n,i),e);throw this.internalError(e,`untranslatable comparison operator '${n}'`)}visitExprUngroup(e){const n=e.fieldName().map(i=>this.getFieldName(i)),r=e.ungroup().text.toLowerCase();return this.astAt(new ee.ExprUngroup(r==="all"?r:"exclude",this.getFieldExpr(e.fieldExpr()),n),e)}symmetricAggregateUsageError(e){return`Symmetric aggregate function \`${e}\` must be written as \`${e}(expression)\` or \`path.to.field.${e}()\``}asymmetricAggregateUsageError(e){return`Asymmetric aggregate function \`${e}\` must be written as \`path.to.field.${e}()\`, \`path.to.join.${e}(expression)\`, or \`${e}(expression)\``}visitExprAggregate(e){const n=e.fieldPath(),r=this.getFieldPath(n,ee.ExpressionFieldReference),i=n&&r?this.astAt(r,n):void 0,s=e.aggregate().text.toLowerCase(),o=e.fieldExpr();if(e.aggregate().COUNT())return o&&this.contextError(o,"count-expression-with-locality","Expression illegal inside path.count()"),new ee.ExprCount(i);const u=o?this.getFieldExpr(o):void 0;if(s==="min"||s==="max")if(u)this.contextError(e,"invalid-symmetric-aggregate",this.symmetricAggregateUsageError(s));else{const a=this.astAt(new ee.ExprIdReference(r),n);return s==="min"?new ee.ExprMin(a):new ee.ExprMax(a)}else{if(s==="avg")return new ee.ExprAvg(u,i);if(s==="sum")return new ee.ExprSum(u,i);this.contextError(e,"aggregate-parse-error",`Cannot parse aggregate function ${s}`)}return new ee.ExprNULL}visitExprPathlessAggregate(e){const n=e.fieldExpr(),r=n?this.getFieldExpr(n):void 0,i=void 0,s=e.aggregate().text.toLowerCase();if(e.STAR()&&this.m4advisory(e,"wildcard-in-aggregate",`* illegal inside ${s}()`),s==="count")return this.astAt(r?new ee.ExprCountDistinct(r):new ee.ExprCount,e);if(s==="min"){if(r)return new ee.ExprMin(r);this.contextError(e,"invalid-symmetric-aggregate",this.symmetricAggregateUsageError(s))}else if(s==="max"){if(r)return new ee.ExprMax(r);this.contextError(e,"invalid-symmetric-aggregate",this.symmetricAggregateUsageError(s))}else{if(r===void 0)return this.contextError(e,"invalid-asymmetric-aggregate",this.asymmetricAggregateUsageError(s)),new ee.ExprNULL;const o=e.SOURCE_KW()!==void 0;if(s==="avg")return new ee.ExprAvg(r,i,o);if(s==="sum")return new ee.ExprSum(r,i,o)}return new ee.ExprNULL}visitExprApply(e){return new ee.Apply(this.getFieldExpr(e.fieldExpr()),this.getFieldExpr(e.partialAllowedFieldExpr()))}visitExprRange(e){return new ee.Range(this.getFieldExpr(e.fieldExpr(0)),this.getFieldExpr(e.fieldExpr(1)))}visitExprCast(e){const n=this.getMalloyOrSQLType(e.malloyOrSQLType());return new ee.ExprCast(this.getFieldExpr(e.fieldExpr()),n)}getMalloyType(e){const n=e.text;if((0,r7.isCastType)(n))return n;throw this.internalError(e,`unknown type '${n}'`)}getMalloyOrSQLType(e){const n=e.malloyType();if(n)return this.getMalloyType(n);const r=e.string();if(r)return{raw:this.getPlainStringFrom({string:()=>r})};throw this.internalError(e,"Expected Malloy or SQL type to either be a Malloy type or a string")}visitExprSafeCast(e){const n=this.getMalloyOrSQLType(e.malloyOrSQLType());return new ee.ExprCast(this.getFieldExpr(e.fieldExpr()),n,!0)}visitExprTimeTrunc(e){return new ee.ExprGranularTime(this.getFieldExpr(e.fieldExpr()),this.visitTimeframe(e.timeframe()).text,!0)}visitTimeframe(e){return new ee.Timeframe(e.text)}visitExprForRange(e){const n=this.getFieldExpr(e._startAt),r=this.getFieldExpr(e._duration),i=this.visitTimeframe(e.timeframe());return new ee.ForRange(n,r,i)}visitExprAggFunc(e){const n=e.argumentList(),r=n?this.allFieldExpressions(n.fieldExpr()):[],i=(0,Ln.getId)(e),s=e.fieldPath(),o=s?this.getFieldPath(s,ee.ExpressionFieldReference):void 0,u=s&&o?this.astAt(o,s):void 0;return ee.ExprTimeExtract.extractor(i)?this.astAt(new ee.ExprTimeExtract(i,r),e):this.astAt(new ee.ExprFunc(i,r,!1,void 0,u),e)}visitExprFunc(e){var n,r;const i=e.argumentList(),s=i?this.allFieldExpressions(i.fieldExpr()):[],o=e.EXCLAM()!==void 0,u=(n=e.malloyType())===null||n===void 0?void 0:n.text;let a;u&&((0,r7.isCastType)(u)?a=u:(this.contextError(e,"unexpected-malloy-type",`'#' assertion for unknown type '${u}'`),a=void 0));let l=(0,Ln.getOptionalId)(e)||((r=e.timeframe())===null||r===void 0?void 0:r.text);return l===void 0&&(this.contextError(e,"failed-to-parse-function-name","Function name error"),l="FUNCTION_NAME_ERROR"),ee.ExprTimeExtract.extractor(l)?this.astAt(new ee.ExprTimeExtract(l,s),e):this.astAt(new ee.ExprFunc(l,s,o,a),e)}visitExprDuration(e){return new ee.ExprDuration(this.getFieldExpr(e.fieldExpr()),this.visitTimeframe(e.timeframe()).text)}visitCaseStatement(e){const n=e._valueExpr,r=n?this.getFieldExpr(n):void 0,i=e.caseWhen(),s=i.map(a=>new ee.CaseWhen(this.getFieldExpr(a._condition),this.getFieldExpr(a._result))),o=e._caseElse,u=o?this.getFieldExpr(o):void 0;return this.warnWithReplacement("sql-case","Use a `pick` statement instead of `case`",this.parseInfo.rangeFromContext(e),`${[...n?[`${this.getSourceCode(n)} ?`]:[],...i.map(a=>`pick ${this.getSourceCode(a._result)} when ${this.getSourceCode(a._condition)}`),o?`else ${o.text}`:"else null"].join(" ")}`),new ee.Case(r,s,u)}visitPickStatement(e){const n=e.pick().map(r=>{let i;return r._pickValue&&(i=this.getFieldExpr(r._pickValue)),new ee.PickWhen(i,this.getFieldExpr(r._pickWhen))});return e.ELSE()?new ee.Pick(n,this.getFieldExpr(e._pickElse)):new ee.Pick(n)}visitExprFieldProps(e){const n=this.only(e.fieldProperties().fieldPropertyStatement().map(r=>this.visit(r)),r=>ee.isFieldPropStatement(r)&&r,"field property statement");return new ee.ExprProps(this.getFieldExpr(e.fieldExpr()),n)}visitPartitionByStatement(e){return this.astAt(new ee.PartitionBy(e.id().map(n=>this.astAt(new ee.PartitionByFieldReference([this.astAt(new ee.FieldName((0,Ln.idToStr)(n)),n)]),n))),e)}visitLiteralTimestamp(e){return this.parseTime(e,ee.LiteralTimestamp.parse)}visitLiteralHour(e){return this.parseTime(e,ee.LiteralHour.parse)}visitLiteralDay(e){return this.parseTime(e,ee.LiteralDay.parse)}visitLiteralWeek(e){return this.parseTime(e,ee.LiteralWeek.parse)}visitLiteralMonth(e){return this.parseTime(e,ee.LiteralMonth.parse)}visitLiteralQuarter(e){return this.parseTime(e,ee.LiteralQuarter.parse)}visitLiteralYear(e){return this.parseTime(e,ee.LiteralYear.parse)}visitImportStatement(e){const n=this.getPlainStringFrom(e.importURL()),r=this.astAt(new ee.ImportStatement(n,this.parseInfo.importBaseURL),e),i=e.importSelect();if(i)for(const s of i.importItem()){const o=s.id(),u=o[1]?this.astAt(new ee.ImportSourceName((0,Ln.idToStr)(o[1])),o[1]):void 0;r.push(this.astAt(new ee.ImportSelect((0,Ln.idToStr)(o[0]),u),o[0]))}return r}visitDebugExpr(e){return this.getFieldExpr(e.fieldExpr())}visitSampleStatement(e){const n=e.sampleSpec().INTEGER_LITERAL();if(n)return new ee.SampleProperty({rows:this.getNumber(n)});const r=e.sampleSpec().PERCENT_LITERAL();if(r)return new ee.SampleProperty({percent:this.getNumber(r)});const i=e.sampleSpec().TRUE()!==void 0;return new ee.SampleProperty({enable:i})}visitDocAnnotations(e){const n=e.DOC_ANNOTATION().map(i=>({text:i.text,at:this.getLocation(e)})),r=new ee.ModelAnnotation(n);return this.compilerFlags=r.getCompilerFlags(this.compilerFlags,this.msgLog),r}visitIgnoredObjectAnnotations(e){return this.contextError(e,"orphaned-object-annotation","Object annotation not connected to any object"),new i7(e.text)}visitIgnoredModelAnnotations(e){return this.contextError(e,"misplaced-model-annotation","Model annotations not allowed at this scope"),new i7(e.text)}visitDefExploreAnnotation(e){const n=this.getNotes(e);return new ee.ObjectAnnotation(n)}getSQArgument(e){const n=e.argumentId(),r=n?this.astAt(new ee.PartitionByFieldReference([this.astAt(new ee.FieldName((0,Ln.idToStr)(n.id())),n)]),n):void 0;return this.astAt(new ee.Argument({id:r,value:this.getFieldExpr(e.fieldExpr())}),e)}getSQArguments(e){if(e!==void 0)return this.inExperiment("parameters",e),e.sourceArgument().map(n=>this.getSQArgument(n))}visitSQID(e){const n=this.getModelEntryName(e),r=this.getSQArguments(e.sourceArguments());return this.astAt(new ee.SQReference(n,r),e.id())}getSqExpr(e){const n=this.visit(e);return n instanceof ee.SourceQueryElement?n:(this.contextError(e,"unexpected-non-source-query-expression-node",`Expected a source/query expression, not '${n.elementType}'`),new TG)}visitSQExtendedSource(e){const n=this.getSqExpr(e.sqExpr()),r=e.includeBlock(),i=r?this.getIncludeItems(r):void 0,s=new ee.SQExtend(n,this.getSourceExtensions(e.exploreProperties()),i);return this.astAt(s,e)}getIncludeItems(e){return this.inExperiment("access_modifiers",e),e.includeItem().map(n=>this.getIncludeItem(n)).filter(r6e.isNotUndefined)}getIncludeItem(e){var n;const r=e.tags(),i=r?this.getNotes(r):[],s=e.includeExceptList();if(s){r&&i.length>0&&this.contextError(r,"cannot-tag-include-except","Tags on `except:` are ignored",{severity:"warn"});const o=this.getExcludeList(s);return this.astAt(new ee.IncludeExceptItem(o),e)}else{const o=e.includeList();if(o===void 0){this.contextError((n=e.orphanedAnnotation())!==null&&n!==void 0?n:e,"orphaned-object-annotation","This tag is not attached to anything",{severity:"warn"});return}const u=this.getAccessLabelProp(e.accessLabelProp()),a=this.getIncludeList(o),l=this.astAt(new ee.IncludeAccessItem(u,a),e);return l.extendNote({blockNotes:i}),l}}getIncludeList(e){const n=e.includeField();if(n===void 0)throw this.internalError(e,"Expected a field name list");return n.map(r=>this.getIncludeListItem(r))}getExcludeList(e){return e.includeExceptListItem().map(n=>{n.tags().ANNOTATION().length>0&&this.contextError(n.tags(),"cannot-tag-include-except","Tags on `except:` are ignored",{severity:"warn"});const r=n.fieldName();if(r)return this.astAt(new ee.AccessModifierFieldReference([this.astAt(new ee.FieldName(n.text),n)]),r);const i=n.collectionWildCard();if(i)return this.astAt(this.visitCollectionWildCard(i),i);throw this.internalError(n,"Expected a field name or wildcard")})}getIncludeListItem(e){const n=e.collectionWildCard(),r=n?this.visitCollectionWildCard(n):void 0,i=e._as?e._as.text:void 0,s=e.tags(),o=s?this.getNotes(s):[],u=e.isDefine(),a=u?this.getIsNotes(u):[],l=[...o,...a],c=e._name?this.astAt(new ee.AccessModifierFieldReference([this.astAt(this.getFieldName(e._name),e._name)]),e._name):void 0,f=c??r;if(f===void 0)throw this.internalError(e,"Expected a field name or wildcard");const d=this.astAt(new ee.IncludeListItem(f,i),e);return d.extendNote({notes:l}),d}visitSQParens(e){const n=this.getSqExpr(e.sqExpr());return this.astAt(n,e)}visitSQCompose(e){const n=e.sqExpr().map(r=>this.getSqExpr(r));return this.inExperiment("composite_sources",e),this.astAt(new ee.SQCompose(n),e)}visitSQArrow(e){const n=this.getSqExpr(e.sqExpr()),r=e.segExpr(),i=new ee.SQArrow(n,this.getVExpr(r));return this.astAt(i,e)}getVExpr(e){const n=this.visit(e);if(n instanceof ee.View)return n;throw this.internalError(e,`Expected view, got a '${n.elementType}'`)}visitSegField(e){return new ee.ReferenceView(this.getFieldPath(e.fieldPath(),ee.ViewOrScalarFieldReference))}visitSegOps(e){return new ee.QOpDescView(this.visitQueryProperties(e.queryProperties()))}visitSegParen(e){return this.visit(e.vExpr())}visitVSeg(e){return this.visit(e.segExpr())}visitSegRefine(e){return new ee.ViewRefine(this.getVExpr(e._lhs),this.getVExpr(e._rhs))}visitVArrow(e){return new ee.ViewArrow(this.getVExpr(e._lhs),this.getVExpr(e._rhs))}visitSQRefinedQuery(e){const n=this.getSqExpr(e.sqExpr()),r=e.segExpr(),i=new ee.SQRefine(n,this.getVExpr(r));return this.astAt(i,e)}visitSQTable(e){const n=this.visit(e.exploreTable());if(n instanceof e6e.TableSource){const r=new ee.SQSource(n);return this.astAt(r,e)}return new TG}visitSQSQL(e){const n=new ee.SQSource(this.visitSqlSource(e.sqlSource()));return this.astAt(n,e)}visitExperimentalStatementForTesting(e){return this.inExperiment("compilerTestExperimentParse",e),this.astAt(new ee.ExperimentalExperiment("compilerTestExperimentTranslate"),e)}visitRecordRef(e){const n=new ee.ExprIdReference(this.getFieldPath(e.fieldPath(),ee.ExpressionFieldReference));return this.astAt(new ee.RecordElement({path:n}),e)}visitRecordExpr(e){const n=this.getFieldExpr(e.fieldExpr()),r=e.recordKey(),i=r?{key:(0,Ln.getId)(r),value:n}:{value:n};return this.astAt(new ee.RecordElement(i),e)}visitExprLiteralRecord(e){const n=this.only(e.recordElement().map(r=>this.astAt(this.visit(r),r)),r=>r instanceof ee.RecordElement&&r,"a legal record property description");return new ee.RecordLiteral(n)}visitExprArrayLiteral(e){const n=e.fieldExpr().map(i=>this.getFieldExpr(i)),r=new ee.ArrayLiteral(n);return this.astAt(r,e)}visitExprWarnLike(e){let n="~";const r=e.fieldExpr(0),i=e.fieldExpr(1),s=this.parseInfo.rangeFromContext(e);return e.NOT()?(n="!~",this.warnWithReplacement("sql-not-like","Use Malloy operator '!~' instead of 'NOT LIKE'",s,`${this.getSourceCode(r)} !~ ${this.getSourceCode(i)}`)):this.warnWithReplacement("sql-like","Use Malloy operator '~' instead of 'LIKE'",s,`${this.getSourceCode(r)} ~ ${this.getSourceCode(i)}`),this.astAt(new ee.ExprCompare(this.getFieldExpr(r),n,this.getFieldExpr(i)),e)}visitExprNullCheck(e){const n=e.fieldExpr();return this.astAt(new ee.ExprIsNull(this.getFieldExpr(n),e.NOT()?"!=":"="),e)}visitExprWarnIn(e){const n=this.getFieldExpr(e.fieldExpr()),r=!!e.NOT(),i=e.fieldExprList().fieldExpr(),s=this.astAt(new ee.ExprLegacyIn(n,r,i.map(o=>this.getFieldExpr(o))),e);return this.warnWithReplacement("sql-in",`Use = (a|b|c) instead of${r?" NOT":""} IN (a,b,c)`,this.parseInfo.rangeFromContext(e),`${this.getSourceCode(e.fieldExpr())} ${r?"!=":"="} (${i.map(o=>this.getSourceCode(o)).join(" | ")})`),s}}I_.MalloyToAST=s6e;var B_={};Object.defineProperty(B_,"__esModule",{value:!0}),B_.Zone=void 0;class o6e{constructor(){this.location={},this.zone=new Map}get(e){const n=this.zone.get(e);if((n==null?void 0:n.status)==="present")return n.value}getEntry(e){const n=this.zone.get(e);return n?n.firstReference||!this.location[e]?n:{...n,firstReference:this.location[e]}:{status:"error",message:"import reference failure"}}define(e,n){this.zone.set(e,{status:"present",value:n})}reference(e,n){const r=this.zone.get(e);(r==null?void 0:r.status)===void 0&&(this.zone.set(e,{status:"reference",firstReference:n}),this.location[e]=n)}getUndefined(){const e=[];for(const[n,r]of this.zone)r.status==="reference"&&e.push(n);return e.length>0?e:void 0}updateFrom(e,n){if(e)for(const[r,i]of Object.entries(e))i!==void 0&&this.define(r,i);if(n)for(const[r,i]of Object.entries(n))this.zone.set(r,{status:"error",message:i})}}B_.Zone=o6e;var $_={};Object.defineProperty($_,"__esModule",{value:!0}),$_.walkForDocumentSymbols=void 0;const u6e=Cl,a6e=un;class l6e{constructor(e,n,r,i){this.translator=e,this.tokens=n,this.scopes=r,this.symbols=i}popScope(){return this.scopes.pop()}peekScope(){return this.scopes[this.scopes.length-1]}enterTopLevelQueryDefs(e){const n=this.translator.rangeFromContext(e);e.topLevelQueryDef().length===1&&(this.blockRange=n)}enterTopLevelQueryDef(e){this.symbols.push({range:this.translator.rangeFromContext(e),name:e.queryName().text,type:"query",children:[],lensRange:this.blockRange}),this.blockRange=void 0}enterRunStatement(e){this.symbols.push({range:this.translator.rangeFromContext(e.topLevelAnonQueryDef()),name:"unnamed_query",type:"unnamed_query",children:[],lensRange:this.translator.rangeFromContext(e)})}enterAnonymousQuery(e){this.symbols.push({range:this.translator.rangeFromContext(e.topLevelAnonQueryDef().sqExpr()),name:"unnamed_query",type:"unnamed_query",children:[],lensRange:this.translator.rangeFromContext(e)})}enterDefineSourceStatement(e){const n=this.translator.rangeFromContext(e);e.sourcePropertyList().sourceDefinition().length===1&&(this.blockRange=n)}enterSourceDefinition(e){const n=this.translator.rangeFromContext(e);this.scopes.push({range:n,name:e.sourceNameDef().id().text,type:"explore",children:[],lensRange:this.blockRange}),this.blockRange=void 0}exitSourceDefinition(e){const n=this.popScope();n&&this.symbols.push(n)}enterDefExploreQuery(e){const n=this.translator.rangeFromContext(e);e.subQueryDefList().exploreQueryDef().length===1&&(this.blockRange=n)}enterExploreQueryDef(e){const n={range:this.translator.rangeFromContext(e),name:e.exploreQueryNameDef().id().text,type:"query",children:[],lensRange:this.blockRange},r=this.peekScope();r&&r.children.push(n),this.scopes.push(n),this.blockRange=void 0}exitExploreQueryDef(e){this.popScope()}getNestDefName(e){const n=e.queryName();if(n)return n.id().text;let r,i=!1;const s={enterVArrow(u){u.vExpr().enterRule(s)},enterVSeg(u){u.segExpr().enterRule(o)}},o={enterSegField(u){const a=u.fieldPath().fieldName();i||(r??(r=a[a.length-1].id().text))},enterSegParen(u){u.vExpr().enterRule(s)},enterSegRefine(u){u._lhs.enterRule(o)},enterSegOps(){r=void 0,i=!0}};return e.vExpr().enterRule(s),r}handleNestEntry(e){const n=this.getNestDefName(e);if(n===void 0)return;const r={range:this.translator.rangeFromContext(e),name:n,type:"query",children:[]},i=this.peekScope();return i&&i.children.push(r),r}enterNestDef(e){const n=this.handleNestEntry(e);n&&this.scopes.push(n)}exitNestDef(e){this.popScope()}enterFieldDef(e){const n={range:this.translator.rangeFromContext(e),name:e.fieldNameDef().id().text,type:"field",children:[]},r=this.peekScope();r&&r.children.push(n)}enterQueryFieldEntry(e){var n;const r=(n=e.taggedRef())===null||n===void 0?void 0:n.fieldPath();if(r===void 0)return;const i={range:this.translator.rangeFromContext(e),name:r.text,type:"field",children:[]},s=this.peekScope();s&&s.children.push(i)}enterExploreRenameDef(e){const n={range:this.translator.rangeFromContext(e),name:e.fieldName()[0].text,type:"field",children:[]},r=this.peekScope();r&&r.children.push(n)}enterJoinWith(e){this.handleJoinDef(e)}enterJoinOn(e){this.handleJoinDef(e)}handleJoinDef(e){const n={range:this.translator.rangeFromContext(e),name:e.joinFrom().joinNameDef().id().text,type:"join",children:[]},r=this.peekScope();r&&r.children.push(n)}enterImportStatement(e){const n=(0,a6e.getStringIfShort)(e.importURL());n&&this.scopes.push({range:this.translator.rangeFromContext(e),name:n,type:"import",children:[]})}exitImportStatement(){const e=this.popScope();e&&this.symbols.push(e)}enterImportSelect(e){const n=this.peekScope();if(n)for(const r of e.importItem()){const i={range:this.translator.rangeFromContext(e),name:r.text,type:"import_item",children:[]};n.children.push(i)}}}function c6e(t,e,n){const r=new l6e(t,e,[],[]),i=r;return u6e.ParseTreeWalker.DEFAULT.walk(i,n),r.symbols}$_.walkForDocumentSymbols=c6e;var k_={};Object.defineProperty(k_,"__esModule",{value:!0}),k_.walkForDocumentCompletions=void 0;const f6e=Cl,x6e=["dimension","measure","join_one","join_many","join_cross","where","primary_key","rename","accept","except","query","declare"],d6e=["group_by","project","index","aggregate","top","limit","order_by","where","having","nest","declare"],h6e=["source","explore","query","sql"];class p6e{constructor(e,n,r){this.tokens=e,this.completions=n,this.position=r}rangeOf(e){const n=e.stop||e.start;return{start:{line:e.start.line-1,character:e.start.charPositionInLine},end:{line:n.line-1,character:n.stopIndex-(n.startIndex-n.charPositionInLine)+1}}}inRange(e){const{start:n,end:r}=e,i=this.position.line>n.line||this.position.line===n.line&&this.position.character>=n.character,s=this.position.line<r.line||this.position.line===r.line&&this.position.character<=r.character;return i&&s}enterExploreProperties(e){if(this.inRange(this.rangeOf(e))){let n=!1;for(const r of e.exploreStatement())this.inRange(this.rangeOf(r))&&(n=!0);if(!n)for(const r of x6e)this.completions.push({type:"explore_property",text:`${r}: `})}}enterQueryProperties(e){if(this.inRange(this.rangeOf(e))){let n=!1;for(const r of e.queryStatement())this.inRange(this.rangeOf(r))&&(n=!0);if(!n)for(const r of d6e)this.completions.push({type:"query_property",text:`${r}: `})}}enterMalloyDocument(e){if(this.inRange(this.rangeOf(e))){let n=!1;for(const r of e.malloyStatement())this.inRange(this.rangeOf(r))&&(n=!0);if(!n)for(const r of h6e)this.completions.push({type:"model_property",text:`${r}: `})}}}function m6e(t,e,n){const r=new p6e(t,[],n),i=r;return f6e.ParseTreeWalker.DEFAULT.walk(i,e),r.completions}k_.walkForDocumentCompletions=m6e;var P_={};Object.defineProperty(P_,"__esModule",{value:!0}),P_.walkForDocumentHelpContext=void 0;const g6e=UT;class y6e extends g6e.AbstractParseTreeVisitor{constructor(e){super(),this.position=e,this.type=""}rangeOf(e){const n=e.stop||e.start;return{start:{line:e.start.line-1,character:e.start.charPositionInLine},end:{line:n.line-1,character:n.stopIndex-(n.startIndex-n.charPositionInLine)+1}}}inRange(e){return e.start.line<=this.position.line&&e.end.line>=this.position.line&&(this.position.line!==e.start.line||this.position.character>=e.start.character)&&(this.position.line!==e.end.line||this.position.character<=e.end.character)}defaultResult(){}visitChildren(e){let n=this.defaultResult();if(this.inRange(this.rangeOf(e))){n={type:this.type,token:e.start.text};const r=e.childCount;for(let i=0;i<r;i++){const o=e.getChild(i).accept(this);o&&(n=this.aggregateResult(n,o))}}return n}visitMalloyDocument(e){return this.inRange(this.rangeOf(e))?(this.type="model_property",this.visitChildren(e)):this.defaultResult()}visitExploreProperties(e){return this.inRange(this.rangeOf(e))?(this.type="explore_property",this.visitChildren(e)):this.defaultResult()}visitQueryProperties(e){return this.inRange(this.rangeOf(e))?(this.type="query_property",this.visitChildren(e)):this.defaultResult()}aggregateResult(e,n){return n}}function E6e(t,e){return new y6e(e).visit(t)}P_.walkForDocumentHelpContext=E6e;var M_={};Object.defineProperty(M_,"__esModule",{value:!0}),M_.ReferenceList=void 0;const A6e=lu;class v6e{constructor(e){this.sourceURL=e,this.references=[]}findIndexBefore(e){let n=0,r=this.references.length;for(;n<r;){const i=Math.floor((n+r)/2),s=this.references[i].location.range.end;s.line<e.line||s.line===e.line&&s.character<e.character?n=i+1:r=i}return n}add(e){if(e.location.url!==this.sourceURL)return;const n=this.findIndexBefore(e.location.range.end);n<this.references.length&&this.isPositionEqual(e,this.references[n])||this.references.splice(n,0,e)}isPositionEqual(e,n){const r=e.location.range,i=n.location.range;return r.start.line===i.start.line&&r.start.character===i.start.character&&r.end.line===i.end.line&&r.end.character===i.end.character}find(e){const n=this.findIndexBefore(e);if(n===this.references.length)return;const r=this.references[n];if((0,A6e.locationContainsPosition)(r.location,e))return r}}M_.ReferenceList=v6e;var U_={};Object.defineProperty(U_,"__esModule",{value:!0}),U_.isNeedResponse=void 0;function _6e(t){return!!t&&(t.tables||t.urls||t.compileSQL)!==void 0}U_.isNeedResponse=_6e;var j_={};Object.defineProperty(j_,"__esModule",{value:!0}),j_.walkForModelAnnotation=void 0;const C6e=Cl;class S6e{constructor(e,n,r){this.translator=e,this.tokens=n,this.parseInfo=r,this.notes=[]}getLocation(e){return{url:this.parseInfo.sourceURL,range:this.parseInfo.rangeFromContext(e)}}enterDocAnnotations(e){const n=e.DOC_ANNOTATION().map(r=>({text:r.text,at:this.getLocation(e)}));this.notes.push(...n)}get annotation(){return{notes:this.notes}}}function b6e(t,e,n){const r=new S6e(t,e,n),i=r;return C6e.ParseTreeWalker.DEFAULT.walk(i,n.root),r.annotation}j_.walkForModelAnnotation=b6e;var q_={};Object.defineProperty(q_,"__esModule",{value:!0}),q_.walkForTablePath=void 0;const RG=un,T6e=Cl;class R6e{constructor(e,n){this.translator=e,this.tokens=n,this.pathInfos=[]}enterTableMethod(e){const n=(0,RG.getId)(e.connectionId()),[r,i]=(0,RG.getPlainString)(e.tablePath(),!0);r!==void 0&&this.pathInfos.push({connectionId:n,tablePath:r,range:this.translator.rangeFromContext(e)})}}function O6e(t,e,n){const r=new R6e(t,e),i=r;return T6e.ParseTreeWalker.DEFAULT.walk(i,n.root),r.pathInfos}q_.walkForTablePath=O6e;var H_={},vm={};Object.defineProperty(vm,"__esModule",{value:!0}),vm.checkCustomErrorMessage=void 0;const D6e=(t,e,n)=>{const r=t.getRuleInvocationStack()[0],i=t.currentToken;for(const s of n){const o=!s.currentToken||i.type===s.currentToken,u=!s.offendingSymbol||(e==null?void 0:e.type)===s.offendingSymbol,a=!s.ruleContextOptions||s.ruleContextOptions.includes(r);if(o&&u&&a){if(s.precedingTokenOptions&&!s.precedingTokenOptions.some(f=>OG(t,f,"lookback"))||s.lookAheadOptions&&!s.lookAheadOptions.some(f=>OG(t,f,"lookahead")))continue;return s.errorMessage.replace("${currentToken}",(e==null?void 0:e.text)||i.text||"")}}return""};vm.checkCustomErrorMessage=D6e;const OG=(t,e,n)=>{try{for(let r=0;r<e.length;r++){const i=n==="lookahead"?r+2:-1*(r+1),s=t.inputStream.LA(i);if(e[r]>=-1&&s!==e[r]||e[r]<-1&&s===-1*e[r])return!1}return!0}catch{return!1}};Object.defineProperty(H_,"__esModule",{value:!0}),H_.MalloyErrorStrategy=void 0;const N6e=m1,DG=D,w6e=vm,F6e=[{errorMessage:"Missing '{' after 'extend'",currentToken:DG.MalloyParser.EXTEND,ruleContextOptions:["sqExpr"],lookAheadOptions:[[-DG.MalloyParser.OCURLY]]}];class L6e extends N6e.DefaultErrorStrategy{sync(e){const n=(0,w6e.checkCustomErrorMessage)(e,void 0,F6e);if(n){e.notifyErrorListeners(n,e.currentToken,void 0);return}super.sync(e)}}H_.MalloyErrorStrategy=L6e;var NG={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.MalloyParserErrorListener=t.commonErrorCases=void 0;const e=D,n=vm,r=w1;t.commonErrorCases=[{errorMessage:"'view:' must be followed by '<identifier> is {'",ruleContextOptions:["exploreQueryDef"],offendingSymbol:e.MalloyParser.OCURLY,precedingTokenOptions:[[e.MalloyParser.VIEW],[e.MalloyParser.COLON]]},{errorMessage:"Missing '}' at '${currentToken}'",ruleContextOptions:["vExpr"],offendingSymbol:e.MalloyParser.VIEW,currentToken:e.MalloyParser.OCURLY},{errorMessage:"Missing '}' at '${currentToken}'",ruleContextOptions:["exploreProperties","queryProperties","exploreStatement"],lookAheadOptions:[[e.MalloyParser.EOF],[e.MalloyParser.RUN],[e.MalloyParser.SOURCE]]}];class i{constructor(o,u){this.translator=o,this.messages=u}logError(o,u,a){return this.messages.log((0,r.makeLogMessage)(o,u,{severity:"error",...a})),o}syntaxError(o,u,a,l,c,f){const d={line:a-1,character:l},h=u?this.translator.rangeFromToken(u):{start:d,end:d},p=(0,n.checkCustomErrorMessage)(o,u,t.commonErrorCases);p&&(c=p),this.logError("syntax-error",{message:c},{at:{url:this.translator.sourceURL,range:h}})}}t.MalloyParserErrorListener=i})(NG);var I6e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),B6e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),$6e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&I6e(e,t,n);return B6e(e,t),e};Object.defineProperty(Pl,"__esModule",{value:!0}),Pl.MalloyTranslator=Pl.MalloyChildTranslator=Pl.MalloyTranslation=void 0;const wG=m1,k6e=We,P6e=rA,M6e=D,FG=$6e(WA),U6e=I_,LG=w1,j6e=Ta,s7=B_,q6e=$_,H6e=k_,z6e=P_,Q6e=M_,z_=U_,G6e=lu,IG=Js,W6e=j_,V6e=q_,Y6e=H_,K6e=NG;class J6e extends P6e.MalloyLexer{popMode(){return this._modeStack.isEmpty?this._mode:super.popMode()}}class X6e{step(e){if(this.response)return this.response;if(!e.urlIsFullPath)return e.fatalResponse();const n=e.root.importZone.getEntry(e.sourceURL);if(n.status!=="present"){if(n.status==="error"){const s=n.firstReference||e.defaultLocation();return e.root.logError("import-error",{message:n.message,url:e.sourceURL},{at:s}),this.response=e.fatalResponse(),this.response}return{urls:[e.sourceURL]}}const r=n.value===""?`
|
|
1262
|
+
`)),Ev.ErrorFactory.structDef}else if(i.status==="present"){const s=this.select.location,o={...i.value,fields:i.value.fields.map(l=>({...l,location:s})),location:this.location},u=this.document(),a=u==null?void 0:u.currentModelAnnotation();return a&&(o.modelAnnotation=a),o}else return this.logError("non-top-level-sql-source","`connection_name.sql(...)` can currently only be used in top level source/query definitions"),Ev.ErrorFactory.structDef}}sm.SQLSource=Nve,Object.defineProperty(gv,"__esModule",{value:!0}),gv.SQSource=void 0;const wve=po,Fve=im,Lve=sm;class Ive extends wve.SourceQueryElement{constructor(e){super({theSource:e}),this.theSource=e,this.elementType="sq-source"}isSource(){return!0}getSource(){return this.theSource}getQuery(){if(this.theSource instanceof Lve.SQLSource){const e=new Fve.QueryRaw(this.theSource);return this.has({rawQuery:e}),e}else this.sqLog("invalid-source-as-query","This source cannot be used as a query")}}gv.SQSource=Ive;var Av={};Object.defineProperty(Av,"__esModule",{value:!0}),Av.SQExtend=void 0;const Bve=L1,$ve=po;class kve extends $ve.SourceQueryElement{constructor(e,n,r){super({sqSrc:e,extend:n}),this.sqSrc=e,this.extend=n,this.includeList=r,this.elementType="sq-extend"}getSource(){if(this.asSource)return this.asSource;const e=this.sqSrc.getSource();if(e)return this.asSource=new Bve.RefinedSource(e,this.extend,this.includeList),this.has({asSource:this.asSource}),this.asSource;this.sqLog("failed-to-compute-source-to-extend","Could not compute source to extend")}isSource(){return!0}}Av.SQExtend=kve;var vv={},_v={};Object.defineProperty(_v,"__esModule",{value:!0}),_v.CompositeSource=void 0;const Pve=We,Mve=Os;class Uve extends Mve.Source{constructor(e){super({sources:e}),this.sources=e,this.elementType="compositeSource"}getSourceDef(e){return this.withParameters(e,[])}withParameters(e,n){const r=this.sources.map(l=>l.withParameters(e,n)),i=r[0].connection,s=r[0].dialect,o="composite_source",u=[],a=new Map;return this.sources.forEach((l,c)=>{var f;const d=r[c];d.connection!==i&&l.logError("composite-source-connection-mismatch",`All sources in a composite source must share the same connection; connection \`${d.connection}\` differs from previous connection \`${i}\``);for(const h of d.fields){if(!(0,Pve.isAtomic)(h)){l.logWarning("composite-source-atomic-fields-only",`Only atomic fields are supported in composite sources; field \`${h.name}\` is not atomic and will be ignored`);continue}if(h.accessModifier==="private")continue;const p=(f=h.as)!==null&&f!==void 0?f:h.name,g=a.get(p);if(g===void 0){const m={...h,name:p,as:void 0,e:{node:"compositeField"},compositeFieldUsage:{fields:[p],joinedUsage:{}},code:this.code,location:this.codeLocation};a.set(p,m),u.push(m)}else h.accessModifier==="internal"&&(g.accessModifier="internal")}}),{type:"composite",sources:r,connection:i,fields:u,dialect:s,name:o,parameters:r[0].parameters}}}_v.CompositeSource=Uve,Object.defineProperty(vv,"__esModule",{value:!0}),vv.SQCompose=void 0;const jve=_v,qve=po;class Hve extends qve.SourceQueryElement{constructor(e){super({sources:e}),this.sources=e,this.elementType="sq-compose"}getSource(){if(this.asSource)return this.asSource;const e=this.sources.map(n=>n.getSource());if(e.length===0){this.sqLog("empty-composite-source","Composite source must have at least one input source");return}else e.length===1&&this.sqLog("unnecessary-composite-source","A composite source with one input is equivalent to that input",{severity:"warn"});if(zve(e))return this.asSource=new jve.CompositeSource(e),this.has({asSource:this.asSource}),this.asSource;this.sqLog("invalid-composite-source-input","All composite source inputs must be valid sources")}isSource(){return!0}}vv.SQCompose=Hve;function zve(t){return t.every(e=>e!==void 0)}var Cv={},Ca={},om={},Qve=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),Gve=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Wve=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&Qve(e,t,n);return Gve(e,t),e};Object.defineProperty(om,"__esModule",{value:!0}),om.BinaryBoolean=void 0;const Vve=ts,Yve=Wve(Ht),Kve=mo,Jve=kt,Xve=at;class Zve extends Xve.ExpressionDef{constructor(e,n,r){super({left:e,right:r}),this.left=e,this.op=n,this.right=r,this.elementType="abstract boolean binary",this.legalChildTypes=[Yve.boolT]}getExpression(e){const n=this.left.getExpression(e),r=this.right.getExpression(e);return this.typeCheck(this.left,n)&&this.typeCheck(this.right,r)?(0,Jve.computedExprValue)({dataType:{type:"boolean"},value:{node:(0,Kve.getExprNode)(this.op),kids:{left:n.value,right:r.value}},from:[n,r]}):(0,Vve.errorFor)("logical-op expected boolean")}}om.BinaryBoolean=Zve;var e_e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),t_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),n_e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&e_e(e,t,n);return t_e(e,t),e};Object.defineProperty(Ca,"__esModule",{value:!0}),Ca.ExprLegacyIn=Ca.ExprEquality=Ca.ExprCompare=void 0;const Jt=n_e(Ht),r_e=kt,i_e=at,s_e=om,o_e={"~":[Jt.stringT],"!~":[Jt.stringT],"<":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT],"<=":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT],"=":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT],"!=":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT],">=":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT],">":[Jt.numberT,Jt.stringT,Jt.dateT,Jt.timestampT]};class yQ extends s_e.BinaryBoolean{constructor(e,n,r){super(e,n,r),this.elementType="a<=>b",this.legalChildTypes=o_e[n]}getExpression(e){return this.right.apply(e,this.op,this.left)}}Ca.ExprCompare=yQ;class u_e extends yQ{constructor(e,n,r){super(e,n,r),this.elementType="a~=b"}getExpression(e){return this.right.apply(e,this.op,this.left,!0)}apply(e,n,r){return super.apply(e,n,r,!0)}}Ca.ExprEquality=u_e;class a_e extends i_e.ExpressionDef{constructor(e,n,r){super(),this.expr=e,this.notIn=n,this.choices=r,this.elementType="in",this.has({expr:e,choices:r})}getExpression(e){const n=this.expr.getExpression(e),r=this.choices.map(i=>i.getExpression(e));return(0,r_e.computedExprValue)({dataType:{type:"boolean"},value:{node:"in",not:this.notIn,kids:{e:n.value,oneOf:r.map(i=>i.value)}},from:[n,...r]})}}Ca.ExprLegacyIn=a_e;var um={},Md={};Object.defineProperty(Md,"__esModule",{value:!0}),Md.ExprTime=void 0;const l_e=We,c_e=kt,f_e=at;class AD extends f_e.ExpressionDef{constructor(e,n,r){super(),this.elementType="timestampOrDate",this.elementType=e,this.translationValue=(0,c_e.computedExprValue)({dataType:{type:e},value:n,from:r??[]})}getExpression(e){return this.translationValue}static fromValue(e,n){let r=n.value;if(e!==n.type){const i={node:"cast",safe:!1,dstType:{type:e},e:n.value};(0,l_e.isTemporalType)(n.type)&&(i.srcType={type:n.type}),r=i}return new AD(e,r,[n])}}Md.ExprTime=AD;var Kl={};Object.defineProperty(Kl,"__esModule",{value:!0}),Kl.Range=void 0;const x_e=ts,d_e=kt,h_e=at;class p_e extends h_e.ExpressionDef{constructor(e,n){super({first:e,last:n}),this.first=e,this.last=n,this.elementType="range"}apply(e,n,r){switch(n){case"=":case"!=":{const i=n==="="?">=":"<",s=n==="="?"and":"or",o=n==="="?"<":">=",u=this.first.apply(e,i,r),a=this.last.apply(e,o,r);return(0,d_e.computedExprValue)({dataType:{type:"boolean"},value:{node:s,kids:{left:u.value,right:a.value}},from:[u,a]})}case">":return this.last.apply(e,">=",r);case">=":return this.first.apply(e,">=",r);case"<":return this.first.apply(e,"<",r);case"<=":return this.last.apply(e,"<",r)}throw new Error("mysterious error in range computation")}requestExpression(e){}getExpression(e){return this.logError("range-as-value","A Range is not a value"),(0,x_e.errorFor)("a range is not a value")}}Kl.Range=p_e;var m_e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),g_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),y_e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&m_e(e,t,n);return g_e(e,t),e};Object.defineProperty(um,"__esModule",{value:!0}),um.ExprGranularTime=void 0;const vD=We,E_e=ts,EQ=y_e(Ht),AQ=Ti,A_e=at,Sv=Md,vQ=Kl;class v_e extends A_e.ExpressionDef{constructor(e,n,r){super({expr:e}),this.expr=e,this.units=n,this.truncate=r,this.elementType="granularTime",this.legalChildTypes=[EQ.timestampT,EQ.dateT]}granular(){return!0}getExpression(e){const n=this.units,r=this.expr.getExpression(e);if(vD.TD.isTemporal(r)){const s={...r,timeframe:n};return this.truncate&&(s.value={node:"trunc",e:(0,vD.mkTemporal)(r.value,r.type),units:n}),s}r.type!=="error"&&this.logError("unsupported-type-for-time-truncation",`Cannot do time truncation on type '${r.type}'`);const i={...r};return r.type==="error"&&(i.type=(0,vD.isDateUnit)(n)?"date":"timestamp"),{...i,value:(0,E_e.errorFor)("granularity typecheck").value,evalSpace:"constant"}}toRange(e){const n=this.getExpression(e),r={node:"numberLiteral",literal:"1"};if(n.type==="timestamp"){const u=Sv.ExprTime.fromValue("timestamp",n),a=new Sv.ExprTime("timestamp",(0,AQ.timeOffset)("timestamp",n.value,"+",r,this.units),[n]);return new vQ.Range(u,a)}const i=new Sv.ExprTime("date",n.value,[n]),s=(0,AQ.timeOffset)("date",n.value,"+",r,this.units),o=new Sv.ExprTime("date",s,[n]);return new vQ.Range(i,o)}}um.ExprGranularTime=v_e,Object.defineProperty(Cv,"__esModule",{value:!0}),Cv.Apply=void 0;const __e=Ca,C_e=Pd,_Q=um;class S_e extends __e.ExprCompare{constructor(e,n){super(e,"=",n),this.left=e,this.right=n,this.elementType="apply"}getExpression(e){let n=this.right;if(!this.right.granular()){const r=this.right.requestExpression(e);r&&(0,C_e.isGranularResult)(r)&&(n=new _Q.ExprGranularTime(this.right,r.timeframe,!1))}return n instanceof _Q.ExprGranularTime?n.toRange(e).apply(e,this.op,this.left):super.getExpression(e)}}Cv.Apply=S_e;var Ud={},b_e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),T_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),R_e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&b_e(e,t,n);return T_e(e,t),e};Object.defineProperty(Ud,"__esModule",{value:!0}),Ud.BinaryNumeric=void 0;const O_e=R_e(Ht),D_e=at;class N_e extends D_e.ExpressionDef{constructor(e,n,r){super({left:e,right:r}),this.left=e,this.op=n,this.right=r,this.elementType="numeric binary abstract",this.legalChildTypes=[O_e.numberT]}getExpression(e){return this.right.apply(e,this.op,this.left)}}Ud.BinaryNumeric=N_e;var bv={},w_e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),F_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),L_e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&w_e(e,t,n);return F_e(e,t),e};Object.defineProperty(bv,"__esModule",{value:!0}),bv.Boolean=void 0;const I_e=at,B_e=L_e(Ht);let $_e=class extends I_e.ExpressionDef{constructor(e){super(),this.value=e,this.elementType="boolean literal"}getExpression(){return{...B_e.boolT,value:{node:this.value}}}};bv.Boolean=$_e;var Jl={};Object.defineProperty(Jl,"__esModule",{value:!0}),Jl.FunctionOrdering=Jl.FunctionOrderBy=void 0;const _D=We,CQ=Ge,k_e=tf;class P_e extends CQ.MalloyElement{constructor(e,n){super(),this.field=e,this.dir=n,this.elementType="orderBy",e&&this.has({field:e})}getAnalyticOrderBy(e){if(!this.field)return this.logError("analytic-order-by-missing-field","analytic `order_by` must specify an aggregate expression or output field reference"),{node:"functionOrderBy",e:{node:"error"},dir:this.dir};const n=this.field.getExpression(e);return(0,_D.expressionIsAggregate)(n.expressionType)||((0,_D.expressionIsScalar)(n.expressionType)?(!(this.field instanceof k_e.ExprIdReference)||n.evalSpace==="input")&&this.field.logError("analytic-order-by-not-output","analytic `order_by` must be an aggregate or an output field reference"):this.field.logError("analytic-order-by-not-aggregate-or-output","analytic `order_by` must be scalar or aggregate")),{node:"functionOrderBy",e:n.value,dir:this.dir}}getAggregateOrderBy(e,n){if(this.field){const r=this.field.getExpression(e);return(0,_D.expressionIsScalar)(r.expressionType)||this.field.logError("aggregate-order-by-not-scalar","aggregate `order_by` must be scalar"),n||this.field.logError("aggregate-order-by-expression-not-allowed","`order_by` must be only `asc` or `desc` with no expression"),{node:"functionOrderBy",e:r.value,dir:this.dir}}else return this.dir===void 0?(this.logError("aggregate-order-by-without-field-or-direction","field or order direction must be specified"),{node:"functionDefaultOrderBy",dir:"asc"}):{node:"functionDefaultOrderBy",dir:this.dir}}}Jl.FunctionOrderBy=P_e;class M_e extends CQ.ListOf{constructor(e){super(e),this.elementType="function-ordering"}getAnalyticOrderBy(e){return this.list.map(n=>n.getAnalyticOrderBy(e))}getAggregateOrderBy(e,n){return this.list.map(r=>r.getAggregateOrderBy(e,n))}}Jl.FunctionOrdering=M_e;var Tv={};Object.defineProperty(Tv,"__esModule",{value:!0}),Tv.ExprAddSub=void 0;const U_e=Ud;class j_e extends U_e.BinaryNumeric{constructor(){super(...arguments),this.elementType="+-"}}Tv.ExprAddSub=j_e;var Sa={},q_e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),H_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),z_e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&q_e(e,t,n);return H_e(e,t),e};Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.ExprAggregateFunction=void 0;const am=We,Q_e=Dt,G_e=ts,SQ=yr,bQ=z_e(Ht),W_e=xt,V_e=at,Y_e=gr,K_e=tf;class J_e extends V_e.ExpressionDef{constructor(e,n,r){super(),this.func=e,this.legalChildTypes=[bQ.numberT],this.elementType=e,this.explicitSource=r,n&&(this.expr=n,this.has({expr:n}))}getExpression(e){var n,r,i;const s=e.isQueryFieldSpace()?e.inputSpace():e;let o=this.expr,u=(n=this.expr)===null||n===void 0?void 0:n.getExpression(s),a=(r=this.source)===null||r===void 0?void 0:r.path,l=[];if(this.source){const f=this.source.getField(s);if(f.found){l=f.joinPath;const d=f.found,h=d.typeDesc();if(!(d instanceof SQ.StructSpaceField))if((0,am.isAtomicFieldType)(h.type)){o=this.source,u={...bQ.atomicDef(h),expressionType:h.expressionType,value:h.evalSpace==="output"?{node:"outputField",name:this.source.refString}:{node:"field",path:this.source.path},evalSpace:h.evalSpace,compositeFieldUsage:h.compositeFieldUsage},a=this.source.path.slice(0,-1);const p=this.getJoinUsage(s);(p.length===1||p.length>1&&p.slice(1).every(m=>X_e(m,p[0])))&&(a=p[0].map(m=>m.name),l=p[0])}else return this.loggedErrorExpr("invalid-aggregate-source",`Aggregate source cannot be a ${h.type}`)}else return this.loggedErrorExpr("aggregate-source-not-found",`Reference to undefined value ${this.source.refString}`)}if(u===void 0)return this.loggedErrorExpr("missing-aggregate-expression","Missing expression for aggregate function");if((0,am.expressionIsAggregate)(u.expressionType))return this.loggedErrorExpr("aggregate-of-aggregate","Aggregate expression cannot be aggregate");if(!(u.type==="error")){const f=this.getJoinUsage(s),d=this.source!==void 0||this.explicitSource;if(o&&!(!this.source&&f.every(p=>p.length===0))&&!this.isSymmetricFunction()){const p=SD(l,f),g=bD(this.elementType,p),m=d?g==null?void 0:g.message:"Join path is required for this calculation";if(m){const y=Z_e(m,f,o,this.elementType),E=(i=g==null?void 0:g.code)!==null&&i!==void 0?i:"bad-join-usage";g?this.logError(E,y):this.logWarning(E,y)}}}if(this.typeCheck(this.expr||this,{...u,expressionType:"scalar"})){const f={node:"aggregate",function:this.func,e:u.value};return a&&a.length>0&&(f.structPath=a),{...this.returns(u),expressionType:"aggregate",value:f,evalSpace:"output"}}return(0,G_e.errorFor)("aggregate type check")}isSymmetricFunction(){return!0}getJoinUsage(e){const n=[];if(this.source&&this.source.getField(e).found){const i={node:"field",path:this.source.path};n.push(...CD(e,i))}if(this.expr){const r=this.expr.getExpression(e).value;n.push(...CD(e,r))}return n}}Sa.ExprAggregateFunction=J_e;function X_e(t,e){let n=t.length;if(n!==e.length)return!1;for(;n>0;)if(n-=1,t[n].name!==e[n].name)return!1;return!0}function CD(t,e){const n=[],r=(i,s)=>{const o=s[0],u=s.slice(1),a=i.entry(o);if(a===void 0)throw new Error(`Invalid field lookup ${o}`);if(a instanceof SQ.StructSpaceField&&u.length>0){const l=r(a.fieldSpace,u);return{...l,joinPath:[{...a.joinPathElement,name:o},...l.joinPath]}}else if(a instanceof Y_e.SpaceField){if(u.length!==0)throw new Error(`${o} cannot contain a ${u.join(".")}`);const l=a.fieldDef();if(l)return{fs:i,def:l,joinPath:[]};throw new Error("No field def")}else throw new Error("expected a field def or struct")};for(const i of(0,Q_e.exprWalk)(e))if(i.node==="field"){const s=r(t,i.path),o=s.def;if((0,am.isAtomic)(o)&&!(0,am.isJoined)(o))if((0,am.hasExpression)(o)){const u=CD(s.fs,o.e);n.push(...u.map(a=>[...s.joinPath,...a]))}else n.push(s.joinPath)}else if(i.node==="source-reference")if(i.path){const s=r(t,i.path);n.push(s.joinPath)}else n.push([]);return n}function SD(t,e){const n=[];for(const r of e){let i=0;for(let a=0;a<t.length&&a<r.length&&t[a].name===r[a].name;a++)i=a+1;const s=t.slice(i),o=r.slice(i),u=[...s.map(a=>({...a,reverse:!0})),...o.map(a=>({...a,reverse:!1}))];n.push(u)}return n}function bD(t,e){for(const n of e)for(const r of n){if(r.joinType==="cross")return{code:"aggregate-traverses-join-cross",message:`Cannot compute \`${t}\` across \`join_cross\` relationship \`${r.name}\``};if(r.joinElementType==="array"&&!r.reverse)return{code:"aggregate-traverses-repeated-relationship",message:`Cannot compute \`${t}\` across repeated relationship \`${r.name}\``};if(r.joinType==="many"&&!r.reverse)return{code:"aggregate-traverses-join-many",message:`Cannot compute \`${t}\` across \`join_many\` relationship \`${r.name}\``}}}function Z_e(t,e,n,r){if(e.length===0)return t;let i=e[0];for(const p of e.slice(1))for(let g=0;g<i.length;g++){const m=i[g],y=p[g];if(m.name!==y.name){i=i.slice(0,g);break}}const s=SD(i,e),o=bD(r,s),u=i.slice().reverse().findIndex(p=>p.joinType==="many"||p.joinType==="cross"),a=u===-1?0:i.length-u,l=i.slice(0,a),c=SD(l,e),f=bD(r,c),d=i.length>0?i.map(p=>p.name).join("."):"source",h=l.length>0?l.map(p=>p.name).join("."):"source";if(o)return"Aggregated dimensional expression contains multiple join paths; rewrite, for example `sum(first_join.field + second_join.field)` as `first_join.field.sum() + second_join.field.sum()`";{const p=n instanceof W_e.FieldReference?`${n.refString}.${r}()`:n instanceof K_e.ExprIdReference?`${n.fieldReference.refString}.${r}()`:`${d}.${r}(${n.code})`,g=`${h}.${r}(${n.code})`;let m=`${t}; use \`${p}\``;return f===void 0&&h!==d&&(m+=` or \`${g}\` to get a result weighted with respect to \`${h}\``),m}}var Rv={};Object.defineProperty(Rv,"__esModule",{value:!0}),Rv.ExprAlternationTree=void 0;const TQ=kt,jd=at,e5e=mo;function TD(t){const e=t.atExpr();switch(e.atNodeType()){case jd.ATNodeType.And:case jd.ATNodeType.Partial:return;case jd.ATNodeType.Or:{if(e instanceof RQ){const n=TD(e.left);if(n){const r=TD(e.right);if(r)return[...n,...r]}}return}default:return e.granular()?void 0:[e]}}class RQ extends jd.ExpressionDef{constructor(e,n,r){super({left:e,right:r}),this.left=e,this.op=n,this.right=r,this.elementType="alternation",this.elementType=`${n}alternation${n}`}equalityList(){return this.inList===void 0&&(this.inList=TD(this)||[]),this.inList}apply(e,n,r,i){if((0,e5e.isEquality)(n)){const u=this.equalityList();if(u.length>0&&(n==="="||n==="!=")){const a=r.getExpression(e),l=u.map(c=>c.getExpression(e));return(0,TQ.computedExprValue)({dataType:{type:"boolean"},value:{node:"in",not:n==="!=",kids:{e:a.value,oneOf:l.map(c=>c.value)}},from:[a,...l]})}u.length===0&&i&&this.logWarning("or-choices-only",`Only | seperated values are legal when used with ${n} operator`)}const s=this.left.apply(e,n,r),o=this.right.apply(e,n,r);return(0,TQ.computedExprValue)({dataType:{type:"boolean"},value:{node:this.op==="&"?"and":"or",kids:{left:s.value,right:o.value}},from:[s,o]})}requestExpression(e){}getExpression(e){return this.loggedErrorExpr("alternation-as-value","Alternation tree has no value")}atNodeType(){return this.op==="|"?jd.ATNodeType.Or:jd.ATNodeType.And}}Rv.ExprAlternationTree=RQ;var qd={};Object.defineProperty(qd,"__esModule",{value:!0}),qd.ExprAsymmetric=void 0;const t5e=Sa;class n5e extends t5e.ExprAggregateFunction{constructor(e,n,r,i){super(e,n,i),this.func=e,this.expr=n,this.source=r,this.has({source:r})}isSymmetricFunction(){return!1}returns(e){return e}defaultFieldName(){if(this.source&&this.expr===void 0){const e=this.source.nameString;switch(this.func){case"sum":return`total_${e}`;case"avg":return`avg_${e}`}}}}qd.ExprAsymmetric=n5e;var Ov={};Object.defineProperty(Ov,"__esModule",{value:!0}),Ov.ExprAvg=void 0;const r5e=qd;class i5e extends r5e.ExprAsymmetric{constructor(e,n,r){super("avg",e,n,r),this.has({source:n})}}Ov.ExprAvg=i5e;var Dv={};Object.defineProperty(Dv,"__esModule",{value:!0}),Dv.ExprCast=void 0;const s5e=Ti,o5e=kt,u5e=at;class a5e extends u5e.ExpressionDef{constructor(e,n,r=!1){super({expr:e}),this.expr=e,this.castType=n,this.safe=r,this.elementType="cast"}getExpression(e){const n=this.expr.getExpression(e);let r={type:"error"};if(typeof this.castType=="string")r={type:this.castType};else{const i=e.dialectObj();i&&(i.validateTypeName(this.castType.raw)?r=i.sqlTypeToMalloyType(this.castType.raw):this.logError("invalid-sql-native-type",`Cast type \`${this.castType.raw}\` is invalid for ${i.name} dialect`),this.safe&&!i.supportsSafeCast&&this.logError("dialect-cast-unsafe-only",`The SQL dialect '${e.dialectName()}' does not supply a safe cast operator`))}return(0,o5e.computedExprValue)({dataType:r,value:(0,s5e.castTo)(this.castType,n.value,n.type,this.safe),from:[n]})}}Dv.ExprCast=a5e;var Nv={},l5e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),c5e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),f5e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&l5e(e,t,n);return c5e(e,t),e};Object.defineProperty(Nv,"__esModule",{value:!0}),Nv.ExprCoalesce=void 0;const OQ=Qi,DQ=f5e(Ht),x5e=at;class d5e extends x5e.ExpressionDef{constructor(e,n){super({expr:e,altExpr:n}),this.expr=e,this.altExpr=n,this.elementType="coalesce expression",this.legalChildTypes=DQ.anyAtomicT}getExpression(e){const n=this.expr.getExpression(e),r=this.altExpr.getExpression(e);return n.type==="null"?r:(DQ.typeEq(n,r)||this.logError("mismatched-coalesce-types",`Mismatched types for coalesce (${n.type}, ${r.type})`),{...n.type==="error"?r:n,expressionType:(0,OQ.maxExpressionType)(n.expressionType,r.expressionType),value:{node:"coalesce",kids:{left:n.value,right:r.value}},evalSpace:(0,OQ.mergeEvalSpaces)(n.evalSpace,r.evalSpace)})}}Nv.ExprCoalesce=d5e;var wv={};Object.defineProperty(wv,"__esModule",{value:!0}),wv.ExprCount=void 0;const h5e=it,p5e=Sa;class m5e extends p5e.ExprAggregateFunction{constructor(e){super("count"),this.source=e,this.elementType="count",this.has({source:e})}defaultFieldName(){if(this.source)return"count_"+this.source.nameString}returns(e){return{type:"number",numberType:"integer",evalSpace:e.evalSpace,expressionType:"aggregate",value:e.value,compositeFieldUsage:e.compositeFieldUsage}}getExpression(e){const n={node:"aggregate",function:"count",e:{node:""}};return this.source&&(n.structPath=this.source.path),{type:"number",numberType:"integer",expressionType:"aggregate",value:n,evalSpace:"output",compositeFieldUsage:(0,h5e.emptyCompositeFieldUsage)()}}}wv.ExprCount=m5e;var Fv={},g5e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),y5e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),E5e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&g5e(e,t,n);return y5e(e,t),e};Object.defineProperty(Fv,"__esModule",{value:!0}),Fv.ExprCountDistinct=void 0;const Lv=E5e(Ht),A5e=Sa;class v5e extends A5e.ExprAggregateFunction{constructor(e){super("distinct",e),this.legalChildTypes=[Lv.numberT,Lv.stringT,Lv.dateT,Lv.timestampT]}returns(e){return{type:"number",numberType:"integer",evalSpace:e.evalSpace,expressionType:"aggregate",value:e.value,compositeFieldUsage:e.compositeFieldUsage}}}Fv.ExprCountDistinct=v5e;var Iv={},Xl={};Object.defineProperty(Xl,"__esModule",{value:!0}),Xl.Limit=void 0;const _5e=Ge,C5e=Rn;class S5e extends _5e.MalloyElement{constructor(e){super(),this.limit=e,this.elementType="limit",this.queryRefinementStage=C5e.LegalRefinementStage.Tail,this.forceQueryClass=void 0}}Xl.Limit=S5e;var Hd={};Object.defineProperty(Hd,"__esModule",{value:!0}),Hd.PartitionBy=void 0;const b5e=Ge;class T5e extends b5e.ListOf{constructor(e){super(e),this.partitionFields=e,this.elementType="partition_by"}}Hd.PartitionBy=T5e;var lm={},Zl={};Object.defineProperty(Zl,"__esModule",{value:!0}),Zl.FieldName=void 0;const R5e=Ge;class O5e extends R5e.MalloyElement{constructor(e){super(),this.name=e,this.elementType="fieldName"}get refString(){return this.name}toString(){return this.refString}getField(e){return e.lookup([this])}}Zl.FieldName=O5e;var D5e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),N5e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),w5e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&D5e(e,t,n);return N5e(e,t),e};Object.defineProperty(lm,"__esModule",{value:!0}),lm.ExprFunc=void 0;const Kn=We,F5e=ts,L5e=Vc,I5e=kt,B5e=at,$5e=Zl,NQ=Dt,wQ=w5e(Ht),k5e=it;class P5e extends B5e.ExpressionDef{constructor(e,n,r,i,s){super({args:n}),this.name=e,this.args=n,this.isRaw=r,this.rawType=i,this.source=s,this.elementType="function call()",this.has({source:s})}canSupportPartitionBy(){return!0}canSupportOrderBy(){return!0}canSupportLimit(){return!0}getExpression(e){return this.getPropsExpression(e)}findFunctionDef(e){var n,r,i;const s=this.name.toLowerCase(),o=e?(r=(n=this.getDialectNamespace(e))===null||n===void 0?void 0:n.getEntry(s))===null||r===void 0?void 0:r.entry:void 0,u=o??((i=this.modelEntry(s))===null||i===void 0?void 0:i.entry);return u===void 0?(this.logError("function-not-found",`Unknown function '${this.name}'. Use '${this.name}!(...)' to call a SQL function directly.`),{found:void 0,error:"unknown function"}):u.type!=="function"?(this.logError("call-of-non-function",`'${this.name}' (with type ${u.type}) is not a function`),{found:void 0,error:"called non function"}):(u.name!==this.name&&this.logWarning("case-insensitive-function",`Case insensitivity for function names is deprecated, use '${u.name}' instead`),{found:u,error:void 0})}getPropsExpression(e,n){var r,i,s,o;const u=this.args.map(N=>N.getExpression(e));if(this.isRaw){const N=[`${this.name}(`];u.forEach((q,J)=>{J!==0&&N.push(","),N.push(q.value)}),N.push(")");const I=(r=u[0])!==null&&r!==void 0?r:{type:"number"},P=this.rawType?{type:this.rawType}:I;return(0,I5e.computedExprValue)({dataType:P,value:(0,NQ.composeSQLExpr)(N),from:u})}const a=(i=e.dialectObj())===null||i===void 0?void 0:i.name,{found:l,error:c}=this.findFunctionDef(a);if(l===void 0)return(0,F5e.errorFor)(c);let f,d=(s=this.source)===null||s===void 0?void 0:s.path;if(this.source){const I=this.source.getField(e).found;if(I){const P=I.typeDesc();if((0,Kn.isAtomicFieldType)(P.type))f={...wQ.atomicDef(P),expressionType:P.expressionType,value:{node:"field",path:this.source.path},evalSpace:P.evalSpace,compositeFieldUsage:P.compositeFieldUsage},d=this.source.path.slice(0,-1);else if(!(I instanceof L5e.StructSpaceFieldBase))return this.loggedErrorExpr("invalid-aggregate-source",`Aggregate source cannot be a ${P.type}`)}else this.loggedErrorExpr("aggregate-source-not-found",`Reference to undefined value ${this.source.refString}`)}const h=[...f?[f]:[],...u],p=M5e(l,h);if(p===void 0)return this.loggedErrorExpr("no-matching-function-overload",`No matching overload for function ${this.name}(${h.map(N=>N.type).join(", ")})`);const{overload:g,expressionTypeErrors:m,evalSpaceErrors:y,nullabilityErrors:E,returnType:A}=p;for(const N of m){const I=N.argIndex-(f?1:0),P=(0,Kn.expressionIsScalar)(N.maxExpressionType)?"scalar":"scalar or aggregate";this.args[I].logError("invalid-function-argument-expression-type",`Parameter ${N.argIndex+1} ('${N.param.name}') of ${this.name} must be ${P}, but received ${N.actualExpressionType}`)}for(const N of y){const I=N.argIndex-(f?1:0),P=N.maxEvalSpace==="literal"?"literal":N.maxEvalSpace==="constant"?"literal or constant":"literal, constant or output";this.args[I].logError("invalid-function-argument-evaluation-space",`Parameter ${N.argIndex+1} ('${N.param.name}') of ${this.name} must be ${P}, but received ${N.actualEvalSpace}`)}for(const N of E){const I=N.argIndex-(f?1:0);this.args[I].logError("literal-null-function-argument",`Parameter ${N.argIndex+1} ('${N.param.name}') of ${this.name} must not be a literal null`)}p.returnTypeError&&this.logError(p.returnTypeError.code,p.returnTypeError.parameters);const v=g.returnType,_=(0,Kn.maxOfExpressionTypes)([(o=v.expressionType)!==null&&o!==void 0?o:"scalar",...h.map(N=>N.expressionType)]);if(!(0,Kn.expressionIsAggregate)(g.returnType.expressionType)&&this.source!==void 0)return this.loggedErrorExpr("non-aggregate-function-with-source",`Cannot call function ${this.name}(${h.map(N=>N.type).join(", ")}) with source`);const S={node:"function_call",overload:g,name:this.name,kids:{args:h.map(N=>N.value)},expressionType:_,structPath:d};let C=S;if(n!=null&&n.orderBys&&n.orderBys.length>0){const N=(0,Kn.expressionIsAnalytic)(g.returnType.expressionType);if(N||this.inExperiment("aggregate_order_by",!0)||n.orderBys[0].logError("aggregate-order-by-experiment-not-enabled","Enable experiment `aggregate_order_by` to use `order_by` with an aggregate function"),g.supportsOrderBy||N){const I=g.supportsOrderBy!=="only_default",P=n.orderBys.flatMap(q=>N?q.getAnalyticOrderBy(e):q.getAggregateOrderBy(e,I));S.kids.orderBy=P}else n.orderBys[0].logError("function-does-not-support-order-by",`Function \`${this.name}\` does not support \`order_by\``)}if((n==null?void 0:n.limit)!==void 0&&(g.supportsLimit?S.limit=n.limit.limit:this.logError("function-does-not-support-limit",`Function ${this.name} does not support limit`)),n!=null&&n.partitionBys&&n.partitionBys.length>0){const N=[];for(const I of n.partitionBys)for(const P of I.partitionFields){const q=P.getField(e);q.found===void 0?P.logError("partition-by-not-found",`${P.refString} is not defined`):(0,Kn.expressionIsAnalytic)(q.found.typeDesc().expressionType)||(0,Kn.expressionIsUngroupedAggregate)(q.found.typeDesc().expressionType)?P.logError("non-scalar-or-aggregate-partition-by","Partition expression must be scalar or aggregate"):N.push(P.nameString)}S.partitionBy=N}if(["sql_number","sql_string","sql_date","sql_timestamp","sql_boolean"].includes(l.name)){if(!this.inExperiment("sql_functions",!0))return this.loggedErrorExpr("sql-functions-experiment-not-enabled",`Cannot use sql_function \`${l.name}\`; use \`sql_functions\` experiment to enable this behavior`);const N=h[0].value;if(N.node!=="stringLiteral")this.logError("invalid-sql-function-argument",`Invalid string literal for \`${l.name}\``);else{const I=N.literal,P=U5e(I),q=P.filter(W=>W.type==="interpolation"&&W.name.includes(".")).map(W=>W.type==="interpolation"?`\${${W.name}}`:`\${${W.value}}`);if(q.length>0){const W=q.length===1?`'.' paths are not yet supported in sql interpolations, found ${q.at(0)}`:`'.' paths are not yet supported in sql interpolations, found (${q.join(", ")})`;return this.loggedErrorExpr("unsupported-sql-function-interpolation",W)}const J=[];for(const W of P)if(W.type==="string")J.push(W.value);else if(W.name==="TABLE")J.push({node:"source-reference"});else{const ue=new $5e.FieldName(W.name);this.has({name:ue});const ge=e.lookup([ue]);if(ge.found===void 0)return this.loggedErrorExpr("sql-function-interpolation-not-found",`Invalid interpolation: ${ge.error.message}`);ge.found.refType==="parameter"?J.push({node:"parameter",path:[W.name]}):J.push({node:"field",path:[W.name]})}C=(0,NQ.composeSQLExpr)(J)}}const b=(0,Kn.mergeEvalSpaces)(...h.map(N=>N.evalSpace)),R=b==="constant"?"constant":(0,Kn.expressionIsScalar)(_)?b:"output";return{...(0,Kn.isAtomic)(A)?wQ.atomicDef(A):A,expressionType:_,value:C,evalSpace:R,compositeFieldUsage:(0,k5e.mergeCompositeFieldUsage)(...h.map(N=>N.compositeFieldUsage))}}}lm.ExprFunc=P5e;function M5e(t,e){var n;for(const r of t.overloads){const i=new Map;let s=0,o=!0,u=!1;const a=[],l=[],c=[];for(let h=0;h<e.length;h++){const p=e[h],g=r.params[s];if(g===void 0){o=!1;break}if(!g.allowedTypes.some(y=>{var E;const{dataTypeMatch:A,genericsSet:v}=zd(i,(E=r.genericTypes)!==null&&E!==void 0?E:[],p,y);for(const _ of v)i.set(_.name,_.type);return y.expressionType&&((0,Kn.isExpressionTypeLEQ)(p.expressionType,y.expressionType)||a.push({argIndex:h,maxExpressionType:y.expressionType,actualExpressionType:p.expressionType,param:g})),(y.evalSpace==="literal"&&p.evalSpace!=="literal"||y.evalSpace==="constant"&&(p.evalSpace==="input"||p.evalSpace==="output")||(0,Kn.expressionIsAnalytic)(r.returnType.expressionType)&&p.evalSpace==="input")&&l.push({argIndex:h,param:g,maxEvalSpace:y.evalSpace,actualEvalSpace:p.evalSpace}),y.evalSpace==="literal"&&p.type==="null"&&c.push({argIndex:h,param:g}),A})){o=!1;break}g.isVariadic?h===e.length-1&&(u=!0):s++}if(!u&&(s!==e.length||s!==r.params.length))continue;const f=Bv(r.returnType,i),d=(n=f.returnType)!==null&&n!==void 0?n:{type:"number"};if(o)return{overload:r,expressionTypeErrors:a,evalSpaceErrors:l,nullabilityErrors:c,returnTypeError:f.error,returnType:d}}}function U5e(t){const e=[];let n=t;for(;n.length;){const r=n.indexOf("${");if(r===-1){e.push({type:"string",value:n});break}else{const i=n.slice(r).indexOf("}");if(i===-1){e.push({type:"string",value:n});break}r>0&&e.push({type:"string",value:n.slice(0,r)}),e.push({type:"interpolation",name:n.slice(r+2,i+r)}),n=n.slice(i+r+1)}}return e}function zd(t,e,n,r){var i,s,o,u;if(Kn.TD.eq(r,n)||r.type==="any"||r.type!=="generic"&&(n.type==="null"||n.type==="error"))return{dataTypeMatch:!0,genericsSet:[]};if(r.type==="array"&&n.type==="array"){if((0,Kn.isScalarArray)(n))return(0,Kn.isRepeatedRecordFunctionParam)(r)?{dataTypeMatch:!1,genericsSet:[]}:zd(t,e,n.elementTypeDef,r.elementTypeDef);if((0,Kn.isRepeatedRecordFunctionParam)(r)){const a={type:"record",fields:r.fields},l={type:"record",fields:n.fields};return zd(t,e,l,a)}else return{dataTypeMatch:!1,genericsSet:[]}}else if(r.type==="record"&&n.type==="record"){const a=[],l=new Map;for(const c of r.fields)l.set((i=c.as)!==null&&i!==void 0?i:c.name,c);for(const c of n.fields){const f=l.get((s=c.as)!==null&&s!==void 0?s:c.name);if(f===void 0)return{dataTypeMatch:!1,genericsSet:[]};const d=zd(new Map([...t.entries(),...a.map(h=>[h.name,h.type])]),e,c,f);a.push(...d.genericsSet)}return{dataTypeMatch:!0,genericsSet:a}}else if(r.type==="generic"){const a=t.get(r.generic);if(a!==void 0&&a.type!=="null"&&a.type!=="error")return zd(t,e,n,a);const l=(u=(o=e.find(c=>c.name===r.generic))===null||o===void 0?void 0:o.acceptibleTypes)!==null&&u!==void 0?u:[];for(const c of l){const f=zd(t,e,n,c);if(f.dataTypeMatch){if(!(0,Kn.isAtomic)(n)&&n.type!=="null")continue;const d={name:r.generic,type:n};return{dataTypeMatch:!0,genericsSet:[...f.genericsSet,d]}}}}return{dataTypeMatch:!1,genericsSet:[]}}function Bv(t,e){switch(t.type){case"array":{if("fields"in t){const i=t.fields.map(s=>{const o=Bv(s,e);return{...s,...o}});return{error:void 0,returnType:{type:"array",elementTypeDef:t.elementTypeDef,fields:i}}}const n=Bv(t.elementTypeDef,e);if(n.error)return n;const r=n.returnType;return r.type==="record"?{error:void 0,returnType:{type:"array",elementTypeDef:{type:"record_element"},fields:r.fields}}:(0,Kn.isAtomic)(r)?{error:void 0,returnType:{type:"array",elementTypeDef:r}}:{error:{code:"invalid-resolved-type-for-array",parameters:"Invalid resolved type for array; cannot be non-atomic"},returnType:void 0}}case"record":return{error:void 0,returnType:{type:"record",fields:t.fields.map(r=>{const i=Bv(r,e);return{...r,...i}})}};case"generic":{const n=e.get(t.generic);return n===void 0?{error:{code:"generic-not-resolved",parameters:`Generic ${t.generic} in return type could not be resolved`},returnType:void 0}:{error:void 0,returnType:n}}default:return{error:void 0,returnType:t}}}var j5e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),q5e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),H5e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&j5e(e,t,n);return q5e(e,t),e};Object.defineProperty(Iv,"__esModule",{value:!0}),Iv.ExprProps=void 0;const z5e=We,Q5e=ts,G5e=H5e(Ht),W5e=Jl,V5e=Xl,Y5e=Hd,K5e=at,J5e=lm,X5e=it;class Z5e extends K5e.ExpressionDef{constructor(e,n){super({expr:e,statements:n}),this.expr=e,this.statements=n,this.elementType="expression with props",this.legalChildTypes=G5e.anyAtomicT}getFilteredExpression(e,n,r){if(r.length>0){if(!this.expr.supportsWhere(n))return this.expr.logError("filter-of-non-aggregate","Filtered expression requires an aggregate computation"),n;const i=[];for(const s of r){const o=s.getFilterList(e);if(o.find(u=>(0,z5e.expressionIsCalculation)(u.expressionType)))return s.logError("aggregate-filter-expression-not-scalar","Cannot filter an expresion with an aggregate or analytical computation"),n;i.push(...o)}return this.typeCheck(this.expr,{...n,expressionType:"scalar"})?{...n,compositeFieldUsage:(0,X5e.mergeCompositeFieldUsage)(n.compositeFieldUsage,...i.map(s=>s.compositeFieldUsage)),value:{node:"filteredExpr",kids:{e:n.value,filterList:i}}}:(this.expr.logError("filter-of-non-aggregate",`Cannot filter '${n.expressionType}' data`),(0,Q5e.errorFor)("cannot filter type"))}return n}getExpression(e){const n=[];let r;const i=[],s=[];for(const u of this.statements)u instanceof Y5e.PartitionBy?this.expr.canSupportPartitionBy()?n.push(u):u.logError("partition-by-of-non-window-function","`partition_by` is not supported for this kind of expression"):u instanceof V5e.Limit?r?u.logError("expression-limit-already-specified","limit already specified"):this.expr.canSupportLimit()?r=u:u.logError("limit-of-non-aggregate-function","`limit` is not supported for this kind of expression"):u instanceof W5e.FunctionOrdering?this.expr.canSupportOrderBy()?i.push(u):u.logError("order-by-of-non-aggregate-function","`order_by` is not supported for this kind of expression"):s.push(u);const o=this.expr instanceof J5e.ExprFunc?this.expr.getPropsExpression(e,{partitionBys:n,limit:r,orderBys:i}):this.expr.getExpression(e);return this.getFilteredExpression(e,o,s)}}Iv.ExprProps=Z5e;var $v={},eCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),tCe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),nCe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&eCe(e,t,n);return tCe(e,t),e};Object.defineProperty($v,"__esModule",{value:!0}),$v.ExprLogicalOp=void 0;const rCe=om,FQ=nCe(Ht);class iCe extends rCe.BinaryBoolean{constructor(){super(...arguments),this.elementType="logical operator",this.legalChildTypes=[FQ.boolT,FQ.aggregateBoolT]}}$v.ExprLogicalOp=iCe;var kv={},sCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),oCe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),uCe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&sCe(e,t,n);return oCe(e,t),e};Object.defineProperty(kv,"__esModule",{value:!0}),kv.ExprMax=void 0;const Pv=uCe(Ht),aCe=Sa;class lCe extends aCe.ExprAggregateFunction{constructor(e){super("max",e),this.legalChildTypes=[Pv.numberT,Pv.stringT,Pv.dateT,Pv.timestampT]}returns(e){return e}}kv.ExprMax=lCe;var Mv={},cCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),fCe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),xCe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&cCe(e,t,n);return fCe(e,t),e};Object.defineProperty(Mv,"__esModule",{value:!0}),Mv.ExprMin=void 0;const Uv=xCe(Ht),dCe=Sa;class hCe extends dCe.ExprAggregateFunction{constructor(e){super("min",e),this.legalChildTypes=[Uv.numberT,Uv.stringT,Uv.dateT,Uv.timestampT]}returns(e){return e}}Mv.ExprMin=hCe;var jv={},pCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),mCe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),gCe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&pCe(e,t,n);return mCe(e,t),e};Object.defineProperty(jv,"__esModule",{value:!0}),jv.ExprMinus=void 0;const yCe=ts,LQ=gCe(Ht),ECe=at;class ACe extends ECe.ExpressionDef{constructor(e){super({expr:e}),this.expr=e,this.elementType="unary minus",this.legalChildTypes=[LQ.numberT]}getExpression(e){const n=this.expr.getExpression(e);return LQ.typeIn(n,this.legalChildTypes)?{...n,type:"number",value:{node:"unary-",e:n.value}}:(0,yCe.errorFor)("negate requires number")}}jv.ExprMinus=ACe;var qv={};Object.defineProperty(qv,"__esModule",{value:!0}),qv.ExprMulDiv=void 0;const vCe=Ud;class _Ce extends vCe.BinaryNumeric{constructor(){super(...arguments),this.elementType="*/%"}}qv.ExprMulDiv=_Ce;var Hv={},cm={};Object.defineProperty(cm,"__esModule",{value:!0}),cm.Unary=void 0;const CCe=at;class SCe extends CCe.ExpressionDef{constructor(e){super({expr:e}),this.expr=e}}cm.Unary=SCe;var bCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),TCe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),RCe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&bCe(e,t,n);return TCe(e,t),e};Object.defineProperty(Hv,"__esModule",{value:!0}),Hv.ExprNot=void 0;const RD=RCe(Ht),OCe=cm;class DCe extends OCe.Unary{constructor(e){super(e),this.elementType="not",this.legalChildTypes=[RD.boolT,RD.nullT]}getExpression(e){var n;const r=this.expr.getExpression(e);!((n=e.dialectObj())===null||n===void 0)&&n.booleanAsNumbers&&this.legalChildTypes.find(s=>s.type==="number")===void 0&&this.legalChildTypes.push(RD.numberT);const i=this.typeCheck(this.expr,r);return{...r,type:"boolean",value:{node:"not",e:i?r.value:{node:"false"}}}}}Hv.ExprNot=DCe;var zv={};Object.defineProperty(zv,"__esModule",{value:!0}),zv.ExprNow=void 0;const NCe=at,wCe=it;class FCe extends NCe.ExpressionDef{constructor(){super(...arguments),this.elementType="timestamp"}getExpression(e){return{type:"timestamp",expressionType:"scalar",evalSpace:"constant",value:{node:"now"},compositeFieldUsage:(0,wCe.emptyCompositeFieldUsage)()}}}zv.ExprNow=FCe;var e0={};Object.defineProperty(e0,"__esModule",{value:!0}),e0.ExprIsNull=e0.PartialIsNull=e0.ExprNULL=void 0;const LCe=kt,Qv=at;function OD(t,e,n){const r=n.getExpression(t);return r.type="boolean",r.value={node:e==="="?"is-null":"is-not-null",e:r.value},r}class ICe extends Qv.ExpressionDef{constructor(){super(...arguments),this.elementType="NULL"}getExpression(){return(0,LCe.literalExprValue)({dataType:{type:"null"},value:{node:"null"}})}apply(e,n,r){return n==="!="||n==="="?OD(e,n,r):super.apply(e,n,r,!0)}}e0.ExprNULL=ICe;class BCe extends Qv.ExpressionDef{constructor(e){super(),this.op=e,this.elementType="<=> NULL"}apply(e,n,r){return OD(e,this.op,r)}requestExpression(e){}getExpression(e){return this.loggedErrorExpr("partial-as-value","Partial null check does not have a value")}atNodeType(){return Qv.ATNodeType.Partial}}e0.PartialIsNull=BCe;class $Ce extends Qv.ExpressionDef{constructor(e,n){super(),this.expr=e,this.op=n,this.elementType="is null",this.has({expr:e})}getExpression(e){return OD(e,this.op,this.expr)}}e0.ExprIsNull=$Ce;var Gv={};Object.defineProperty(Gv,"__esModule",{value:!0}),Gv.ExprNumber=void 0;const kCe=kt,PCe=at;class MCe extends PCe.ExpressionDef{constructor(e){super(),this.n=e,this.elementType="numeric literal"}getExpression(e){return this.constantExpression()}constantExpression(){const e=Number(this.n),n=Number.isNaN(e)?{type:"number"}:{type:"number",numberType:Number.isInteger(e)?"integer":"float"};return(0,kCe.literalExprValue)({dataType:n,value:{node:"numberLiteral",literal:this.n}})}}Gv.ExprNumber=MCe;var Wv={};Object.defineProperty(Wv,"__esModule",{value:!0}),Wv.ExprParens=void 0;const DD=at;class UCe extends DD.ExpressionDef{constructor(e){super({expr:e}),this.expr=e,this.elementType="(expression)"}requestExpression(e){return this.expr.requestExpression(e)}getExpression(e){const n=this.expr.getExpression(e);return{...n,value:{node:"()",e:n.value}}}apply(e,n,r,i){return this.expr.atNodeType()===DD.ATNodeType.Or?this.expr.apply(e,n,r,i):(0,DD.applyBinary)(e,r,n,this)}atNodeType(){return this.expr.atNodeType()}atExpr(){return this.expr}}Wv.ExprParens=UCe;var Vv={};Object.defineProperty(Vv,"__esModule",{value:!0}),Vv.ExprRegEx=void 0;const jCe=kt,qCe=at;class HCe extends qCe.ExpressionDef{constructor(e){super(),this.regex=e,this.elementType="regular expression literal"}getExpression(){return(0,jCe.literalExprValue)({dataType:{type:"regular expression"},value:{node:"regexpLiteral",literal:this.regex}})}}Vv.ExprRegEx=HCe;var Yv={};Object.defineProperty(Yv,"__esModule",{value:!0}),Yv.ExprString=void 0;const zCe=at,QCe=kt;class GCe extends zCe.ExpressionDef{constructor(e){super(),this.elementType="string literal",this.value=e}getExpression(e){return(0,QCe.literalExprValue)({dataType:{type:"string"},value:{node:"stringLiteral",literal:this.value}})}}Yv.ExprString=GCe;var Kv={};Object.defineProperty(Kv,"__esModule",{value:!0}),Kv.ExprSum=void 0;const WCe=qd;class VCe extends WCe.ExprAsymmetric{constructor(e,n,r){super("sum",e,n,r),this.has({source:n})}}Kv.ExprSum=VCe;var Jv={};Object.defineProperty(Jv,"__esModule",{value:!0}),Jv.ExprTimeExtract=void 0;const ba=We,Xv=kt,ND=at,YCe=Kl;class fm extends ND.ExpressionDef{static extractor(e){const n=fm.pluralMap[e];if(n)return n;if((0,ba.isExtractUnit)(e))return e}constructor(e,n){super({args:n}),this.extractText=e,this.args=n,this.elementType="timeExtract"}getExpression(e){const n=fm.extractor(this.extractText);if(n){if(this.args.length!==1)return this.loggedErrorExpr("too-many-arguments-for-time-extraction",`Extraction function ${n} requires one argument`);const r=this.args[0];if(r instanceof YCe.Range){let i=r.first.getExpression(e),s=r.last.getExpression(e);if(i.type==="error"||s.type==="error")return(0,Xv.computedErrorExprValue)({dataType:{type:"number"},error:"extract from error",from:[i,s]});if(!(0,ba.isTemporalType)(i.type))return r.first.loggedErrorExpr("invalid-type-for-time-extraction",`Can't extract ${n} from '${i.type}'`);if(!(0,ba.isTemporalType)(s.type))return r.last.loggedErrorExpr("invalid-type-for-time-extraction",`Cannot extract ${n} from '${s.type}'`);let o=i.type;if(!ba.TD.eq(i,s)){let u=!0;if(o="timestamp",i.type==="date"){const a=(0,ND.getMorphicValue)(i,"timestamp");a&&(i=a,u=!1)}else{const a=(0,ND.getMorphicValue)(s,"timestamp");a&&(s=a,u=!1)}if(u)return r.first.loggedErrorExpr("invalid-types-for-time-measurement",`Cannot measure from ${i.type} to ${s.type}`)}return["week","month","quarter","year"].includes(n)?this.loggedErrorExpr("invalid-timeframe-for-time-measurement",`Cannot measure interval using '${n}'`):(0,ba.isTimestampUnit)(n)?(0,Xv.computedExprValue)({dataType:{type:"number",numberType:"integer"},value:{node:"timeDiff",units:n,kids:{left:(0,ba.mkTemporal)(i.value,o),right:(0,ba.mkTemporal)(s.value,o)}},from:[i,s]}):this.loggedErrorExpr("invalid-time-extraction-unit",`Cannot extract ${n} from a range`)}else{const i=r.getExpression(e);return(0,ba.isTemporalType)(i.type)?(0,Xv.computedExprValue)({dataType:{type:"number",numberType:"integer"},value:{node:"extract",e:(0,ba.mkTemporal)(i.value,i.type),units:n},from:[i]}):(i.type!=="error"&&this.logError("unsupported-type-for-time-extraction",`${this.extractText}() requires time type, not '${i.type}'`),(0,Xv.computedErrorExprValue)({dataType:{type:"number",numberType:"integer"},error:`${this.extractText} bad type ${i.type}`,from:[i]}))}}throw this.internalError(`Illegal extraction unit '${this.extractText}'`)}}Jv.ExprTimeExtract=fm,fm.pluralMap={years:"year",quarters:"quarter",months:"month",weeks:"week",days:"day",hours:"hour",minutes:"minute",seconds:"second"};var Zv={},go={},e_={};Object.defineProperty(e_,"__esModule",{value:!0}),e_.QueryInputSpace=void 0;const KCe=bi,JCe=Ad;class XCe extends JCe.RefinedSpace{constructor(e,n,r){super(e),this.queryOutput=n,this._isProtectedAccessSpace=r,this.extendList=[]}extendSource(e){this.pushFields(e),e instanceof KCe.Join?this.extendList.push(e.name.refString):this.extendList.push(e.defineName)}isQueryFieldSpace(){return!0}outputSpace(){return this.queryOutput}inputSpace(){return this}isProtectedAccessSpace(){return this._isProtectedAccessSpace}}e_.QueryInputSpace=XCe;var ZCe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),eSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),tSe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&ZCe(e,t,n);return eSe(e,t),e};Object.defineProperty(go,"__esModule",{value:!0}),go.ReduceFieldSpace=go.QuerySpace=go.QueryOperationSpace=void 0;const t_=tSe(We),wD=jl,IQ=Zl,BQ=gr,nSe=xt,rSe=Ad,iSe=B1,sSe=yr,oSe=e_,hu=it,uSe=Vc;class $Q extends rSe.RefinedSpace{get compositeFieldUsage(){if(this._compositeFieldUsage===void 0)throw new Error("Composite field usage accessed before computed");return this._compositeFieldUsage}constructor(e,n,r,i){super(e.emptyStructDef()),this.queryInputSpace=e,this.nestParent=r,this.astEl=i,this.expandedWild={},this.compositeFieldUsers=[],this._compositeFieldUsage=void 0,this.exprSpace=new oSe.QueryInputSpace(e.structDef(),this,e.isProtectedAccessSpace()),n&&this.addRefineFromFields(n)}logError(e,n,r){return this.astEl&&this.astEl.logError(e,n,r),e}inputSpace(){return this.exprSpace}outputSpace(){return this}addWild(e){var n;let r=this.exprSpace;const i=[];if(e.joinPath)for(const u of e.joinPath.list){const a=u.refString;i.push(a);const l=r.entry(a);if(l)if(l instanceof sSe.StructSpaceField)r=l.fieldSpace;else{u.logError("invalid-wildcard-source",`Field '${a}' does not contain rows and cannot be expanded with '*'`);return}else{u.logError("wildcard-source-not-defined",`No such field as '${a}'`);return}}const s=this.dialectObj(),o=[];for(const[u,a]of r.entries())if(!e.except.has(u)&&a.refType!=="parameter")if(this.entry(u)){const l=(n=this.expandedWild[u])===null||n===void 0?void 0:n.path.join(".");e.logError("name-conflict-in-wildcard-expansion",`Cannot expand '${u}' in '${e.refString}' because a field with that name already exists${l?` (conflicts with ${l})`:""}`)}else{const l=a.typeDesc();t_.TD.isAtomic(l)&&t_.expressionIsScalar(l.expressionType)&&(s===void 0||!s.ignoreInProject(u))&&(o.push({name:u,entry:a}),this.expandedWild[u]={path:i.concat(u),entry:a})}for(const u of o.sort((a,l)=>a.name.localeCompare(l.name)))this.newEntry(u.name,e,u.entry)}addValidatedCompositeFieldUserFromEntry(e,n){n instanceof BQ.SpaceField&&this.compositeFieldUsers.push({type:"field",name:e,field:n,logTo:void 0})}getJoinOnCompositeFieldUsage(e){var n;const r=e.map(s=>new IQ.FieldName(s));this.astEl.has({reference:r});const i=this.exprSpace.lookup(r);if(i.found&&i.found instanceof uSe.StructSpaceFieldBase)return(0,hu.joinedCompositeFieldUsage)(e.slice(0,-1),(n=i.found.fieldDef().onCompositeFieldUsage)!==null&&n!==void 0?n:(0,hu.emptyCompositeFieldUsage)());throw new Error("Unexpected join lookup was not found or not a struct")}getCompositeFieldUsageIncludingJoinOns(e){let n=e;const r=(0,hu.compositeFieldUsageJoinPaths)(e);for(const i of r)n=(0,hu.mergeCompositeFieldUsage)(this.getJoinOnCompositeFieldUsage(i),n);return n}addCompositeFieldUserFromFilter(e,n){e.compositeFieldUsage!==void 0&&this.compositeFieldUsers.push({type:"filter",filter:e,logTo:n})}newEntry(e,n,r){r instanceof BQ.SpaceField&&this.compositeFieldUsers.push({type:"field",name:e,field:r,logTo:n}),super.newEntry(e,n,r)}applyNextCompositeFieldUsage(e,n,r,i,s){if(i){const o=this.getCompositeFieldUsageIncludingJoinOns((0,hu.compositeFieldUsageDifference)(i,n));if(n=(0,hu.mergeCompositeFieldUsage)(n,o),!(0,hu.isEmptyCompositeFieldUsage)(o)){const u=(0,hu.narrowCompositeFieldResolution)(e,n,r);u.error?(s??this).logError("invalid-composite-field-usage",{newUsage:o,allUsage:n}):r=u.narrowedCompositeFieldResolution}}return{compositeFieldUsage:n,narrowedCompositeFieldResolution:r}}}go.QueryOperationSpace=$Q;class kQ extends $Q{addRefineFromFields(e){var n;if(t_.isQuerySegment(e)){if(e!=null&&e.extendSource)for(const r of e.extendSource)this.exprSpace.addFieldDef(r);for(const r of e.queryFields)if(r.type==="fieldref"){const i=this.exprSpace.lookup(r.path.map(s=>new IQ.FieldName(s)));if(i.found){const s=r.path[r.path.length-1];this.setEntry(s,i.found),this.addValidatedCompositeFieldUserFromEntry(s,i.found)}}else if(r.type!=="turtle"){const i=new iSe.ColumnSpaceField(r),s=(n=r.as)!==null&&n!==void 0?n:r.name;this.setEntry(s,i),this.addValidatedCompositeFieldUserFromEntry(s,i)}}}pushFields(...e){for(const n of e)n instanceof nSe.WildcardFieldReference?this.addWild(n):super.pushFields(n)}canContain(e){return!0}queryFieldDefs(){const e=[];let n=(0,hu.emptyCompositeFieldUsage)(),r=(0,hu.emptyNarrowedCompositeFieldResolution)();const i=this.inputSpace().structDef();for(const s of this.compositeFieldUsers){let o;if(s.type==="filter")s.filter.compositeFieldUsage&&(o=s.filter.compositeFieldUsage);else{const{name:a,field:l}=s,c=this.expandedWild[a];if(c)e.push({type:"fieldref",path:c.path}),o=c.entry.typeDesc().compositeFieldUsage;else{const f=l.getQueryFieldDef(this.exprSpace);if(f){const d=l.typeDesc();o=d.compositeFieldUsage,d&&d.type!=="error"&&this.canContain(d)&&!lSe(f)&&e.push(f)}}}const u=this.applyNextCompositeFieldUsage(i,n,r,o,s.logTo);n=u.compositeFieldUsage,r=u.narrowedCompositeFieldResolution}return this._compositeFieldUsage=n,e}getQuerySegment(e){const n=this.getPipeSegment(e);if(t_.isQuerySegment(n))return n;throw new Error("TODO NOT POSSIBLE")}getPipeSegment(e){if(this.segmentType==="index")return this.logError("unexpected-index-segment","internal error generating index segment from non index query"),{type:"reduce",queryFields:[]};const n={type:this.segmentType,queryFields:this.queryFieldDefs()};if(n.queryFields=(0,wD.mergeFields)(e==null?void 0:e.queryFields,n.queryFields),e!=null&&e.extendSource&&(n.extendSource=e.extendSource),this.exprSpace.extendList.length>0){const r=[],i=this.exprSpace.structDef();for(const s of this.exprSpace.extendList){const o=i.fields.find(u=>(0,wD.nameFromDef)(u)===s);o&&r.push(o)}n.extendSource=(0,wD.mergeFields)(n.extendSource,r)}return this.newTimezone&&(n.queryTimezone=this.newTimezone),n}lookup(e){const n=super.lookup(e);return n.found?{...n,isOutputField:!0}:this.exprSpace.lookup(e)}isQueryFieldSpace(){return!0}}go.QuerySpace=kQ;class aSe extends kQ{constructor(){super(...arguments),this.segmentType="reduce"}}go.ReduceFieldSpace=aSe;function lSe(t){return typeof t!="string"&&t.type==="turtle"&&t.pipeline.length===0}var cSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),fSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),xSe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&cSe(e,t,n);return fSe(e,t),e};Object.defineProperty(Zv,"__esModule",{value:!0}),Zv.ExprUngroup=void 0;const PQ=We,dSe=go,MQ=xSe(Ht),hSe=at;class pSe extends hSe.ExpressionDef{constructor(e,n,r){super({expr:n,fields:r}),this.control=e,this.expr=n,this.fields=r,this.legalChildTypes=MQ.anyAtomicT,this.elementType="ungroup"}getExpression(e){const n=this.expr.getExpression(e);if(!(0,PQ.expressionIsAggregate)(n.expressionType))return this.expr.loggedErrorExpr("ungroup-of-non-aggregate",`${this.control}() expression must be an aggregate`);if((0,PQ.expressionIsUngroupedAggregate)(n.expressionType))return this.expr.loggedErrorExpr("ungroup-of-ungrouped-aggregate",`${this.control}() expression must not already be ungrouped`);const r={node:this.control,e:n.value};if(this.typeCheck(this.expr,{...n,expressionType:"scalar"})){if(e.isQueryFieldSpace()&&this.fields.length>0){const i=[],s=this.control==="exclude";for(const o of this.fields){let u=e.outputSpace(),a=!0;for(;u;){const l=u.lookup([o]);if(l.found&&l.isOutputField)i.push(o.refString),a=!1;else if(u instanceof dSe.QuerySpace){u=u.nestParent;continue}break}if(a){const l=s?"exclude()":"all()";o.logError("ungroup-field-not-in-output",`${l} '${o.refString}' is missing from query output`)}}r.fields=i}return{...MQ.atomicDef(n),expressionType:"ungrouped_aggregate",value:r,evalSpace:"output",compositeFieldUsage:n.compositeFieldUsage}}return this.loggedErrorExpr("ungroup-with-non-scalar",`${this.control}() incompatible type`)}}Zv.ExprUngroup=pSe;var n_={},mSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),gSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ySe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&mSe(e,t,n);return gSe(e,t),e};Object.defineProperty(n_,"__esModule",{value:!0}),n_.ForRange=void 0;const ESe=ts,UQ=ySe(Ht),r_=Ti,ASe=kt,vSe=at,i_=Md,jQ=Kl;class _Se extends vSe.ExpressionDef{constructor(e,n,r){super({from:e,duration:n,timeframe:r}),this.from=e,this.duration=n,this.timeframe=r,this.elementType="forRange",this.legalChildTypes=[UQ.timestampT,UQ.dateT]}apply(e,n,r){const i=this.from.getExpression(e),s=r.getExpression(e);if(!this.typeCheck(r,s))return(0,ESe.errorFor)("no time for range");const o=this.duration.getExpression(e);if(o.type!=="number")return o.type!=="error"&&this.logError("invalid-duration-quantity",`FOR duration count must be a number, not '${o.type}'`),(0,ASe.computedErrorExprValue)({dataType:{type:"boolean"},error:"for not number",from:[i,s]});const u=this.timeframe.text;let a=(0,r_.resolution)(u);if(i.type==="timestamp"&&(a="timestamp"),s.type==="date"&&a==="date"){const p=this.from,g=(0,r_.timeOffset)("date",i.value,"+",o.value,u),m=new i_.ExprTime("date",g);return new jQ.Range(p,m).apply(e,n,r)}const l=i_.ExprTime.fromValue("timestamp",s);let c=this.from,f=i.value;if(i.type==="date"){const p=i.morphic&&i.morphic.timestamp;p?f=p:f=(0,r_.castTo)("timestamp",f,"date"),c=new i_.ExprTime("timestamp",f,[i])}const d=(0,r_.timeOffset)("timestamp",f,"+",o.value,u),h=new i_.ExprTime("timestamp",d,[i,o]);return new jQ.Range(c,h).apply(e,n,l)}requestExpression(e){}getExpression(e){return this.loggedErrorExpr("range-as-value","A Range is not a value")}}n_.ForRange=_Se;var Jn={};Object.defineProperty(Jn,"__esModule",{value:!0}),Jn.LiteralYear=Jn.LiteralQuarter=Jn.LiteralMonth=Jn.LiteralWeek=Jn.LiteralDay=Jn.LiteralHour=Jn.LiteralTimestamp=Jn.TimeFormatError=void 0;const t0=sD,CSe=We,SSe=kt,bSe=Kl,qQ=Md,FD=at;class TSe extends Error{}Jn.TimeFormatError=TSe;function rf(t,e){const n=t.slice(1);if(e){const r=n.match(/\[[^\]]+]$/);if(r)return{tzSpec:r[0].slice(1,-1),text:n.slice(0,-r[0].length)}}return{text:n}}const HQ="yyyy",zQ=`${HQ}-LL`,Fs=`${zQ}-dd`,QQ=`${Fs} HH`,GQ=`${QQ}:mm`,LD=`${GQ}:ss`;class WQ extends FD.ExpressionDef{constructor(e,n,r){super(),this.units=n,this.timeType=r,this.literalPart=e.text,e.tzSpec&&(this.timeZone=e.tzSpec)}makeLiteral(e,n){const r={node:"timeLiteral",literal:e,typeDef:{type:n}};return this.timeZone&&(r.timezone=this.timeZone),r}makeValue(e,n){const r=this.makeLiteral(e,n);return(0,SSe.literalTimeResult)({value:r,dataType:{type:n},timeframe:this.units})}getExpression(e){return this.makeValue(this.literalPart,this.timeType)}getNext(){if(this.nextLit)return this.makeValue(this.nextLit,this.timeType)}granular(){return this.nextLit!==void 0}}class ID extends WQ{constructor(e,n){super(e,n,"timestamp"),this.elementType="literal:timestamp"}static parse(e){let n;const r=rf(e,!0);e=r.text,e[10]==="T"&&(e=e.slice(0,10)+" "+e.slice(11),r.text=e);const i=e.match(/^([^.,]+)[,.](\d+)$/);i&&(e=i[1]);let s=t0.DateTime.fromFormat(e,LD);if(s.isValid)return new ID(r,n);if(s=t0.DateTime.fromFormat(e,GQ),s.isValid){r.text=r.text+":00",n="minute";const o=s.plus({minute:1}).toFormat(LD);return new BD(r,n,"timestamp",o)}}}Jn.LiteralTimestamp=ID;class BD extends WQ{constructor(e,n,r,i){super(e,n,r),this.nextLit=i,this.elementType="granularTimeLiteral"}apply(e,n,r){let i=this.getExpression(e),s=this.getNext();if(s){const o=r.getExpression(e);if(o.type==="timestamp"){const u=(0,FD.getMorphicValue)(i,"timestamp"),a=(0,FD.getMorphicValue)(s,"timestamp");if(u&&a)i=u,s=a;else return super.apply(e,n,r)}if(s&&(0,CSe.isTemporalType)(o.type)){const u=o.type;return new bSe.Range(new qQ.ExprTime(u,i.value),new qQ.ExprTime(u,s.value)).apply(e,n,r)}}return super.apply(e,n,r)}}class $D extends BD{constructor(e,n){super(e,"hour","timestamp",n),this.elementType="literal:hour"}static parse(e){const n=rf(e,!1);let r=n.text;const i=t0.DateTime.fromFormat(n.text,QQ);if(i.isValid)return n.text=n.text+":00:00",r=i.plus({hour:1}).toFormat(LD),new $D(n,r)}}Jn.LiteralHour=$D;class xm extends BD{constructor(e,n,r){super(e,n,"date",r)}getExpression(e){const n=this.makeValue(this.literalPart,"date"),r=this.makeLiteral(`${this.literalPart} 00:00:00`,"timestamp");return{...n,morphic:{timestamp:r},evalSpace:"literal"}}getNext(){const e=this.makeValue(this.nextLit,"date"),n=this.makeLiteral(`${this.nextLit} 00:00:00`,"timestamp");return{...e,morphic:{timestamp:n}}}}class kD extends xm{constructor(e,n){super(e,"day",n),this.elementType="literal:day"}static parse(e){const n=rf(e,!1);let r=n.text;const i=t0.DateTime.fromFormat(n.text,Fs);if(i.isValid)return r=i.plus({day:1}).toFormat(Fs),new kD(n,r)}}Jn.LiteralDay=kD;class PD extends xm{constructor(e,n){super(e,"week",n),this.elementType="literal:week"}static parse(e){const n=rf(e,!1);let r=n.text;const i=n.text.slice(0,10),s=t0.DateTime.fromFormat(i,Fs);if(s.isValid&&s.weekday===7){const u=s.plus({days:7});return n.text=s.toFormat(Fs),r=u.toFormat(Fs),new PD(n,r)}}}Jn.LiteralWeek=PD;class MD extends xm{constructor(e,n){super(e,"month",n),this.elementType="literal:month"}static parse(e){const n=rf(e,!1);let r=n.text;const i=t0.DateTime.fromFormat(n.text,zQ);if(i.isValid){const s=i.plus({months:1});return n.text=i.toFormat(Fs),r=s.toFormat(Fs),new MD(n,r)}}}Jn.LiteralMonth=MD;class UD extends xm{constructor(e,n){super(e,"quarter",n),this.elementType="literal:quarter"}static parse(e){const n=rf(e,!1);let r=n.text;const i=n.text.match(/(^\d{4})-[qQ](\d)$/);if(i){const s=Number.parseInt(i[2])-1;let o=t0.DateTime.fromFormat(i[1],"yyyy");s>0&&(o=o.plus({quarters:s}));const u=o.plus({quarter:1});return n.text=o.toFormat(Fs),r=u.toFormat(Fs),new UD(n,r)}}}Jn.LiteralQuarter=UD;class jD extends xm{constructor(e,n){super(e,"year",n),this.elementType="literal:year"}static parse(e){const n=rf(e,!1);let r=n.text;const i=t0.DateTime.fromFormat(n.text,HQ);if(i.isValid){const s=i.plus({year:1});return n.text=i.toFormat(Fs),r=s.toFormat(Fs),new jD(n,r)}}}Jn.LiteralYear=jD;var s_={};Object.defineProperty(s_,"__esModule",{value:!0}),s_.PartialCompare=void 0;const VQ=at;class RSe extends VQ.ExpressionDef{constructor(e,n){super({right:n}),this.op=e,this.right=n,this.elementType="<=> a"}granular(){return this.right.granular()}apply(e,n,r){return this.right.apply(e,this.op,r)}requestExpression(e){}getExpression(e){return this.loggedErrorExpr("partial-as-value","Partial comparison does not have a value")}atNodeType(){return VQ.ATNodeType.Partial}}s_.PartialCompare=RSe;var Qd={},OSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),DSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),NSe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&OSe(e,t,n);return DSe(e,t),e};Object.defineProperty(Qd,"__esModule",{value:!0}),Qd.PickWhen=Qd.Pick=void 0;const Gd=NSe(Ht),YQ=kt,wSe=at,FSe=Ge;function o_(t,e){return t===void 0||t.type==="null"||t.type==="error"?e:t}class LSe extends wSe.ExpressionDef{constructor(e,n){super({choices:e}),this.choices=e,this.elsePick=n,this.elementType="pick",this.has({elsePick:n})}requestExpression(e){if(this.elsePick!==void 0){for(const n of this.choices){if(n.pick===void 0)return;const r=n.when.requestExpression(e);if(r===void 0||r.type!=="boolean")return}return this.getExpression(e)}}apply(e,n,r){var i;const s={node:"case",kids:{caseWhen:[],caseThen:[]}};let o;const u=[];for(const d of this.choices){const h=d.when.apply(e,"=",r),p=d.pick?d.pick.getExpression(e):r.getExpression(e);if(u.push(h,p),o&&!Gd.typeEq(o,p,!0))return this.loggedErrorExpr("pick-type-does-not-match",{pickType:p.type,returnType:o.type});o=o_(o,p),s.kids.caseWhen.push(h.value),s.kids.caseThen.push(p.value)}const a=(i=this.elsePick)===null||i===void 0?void 0:i.getExpression(e),l=r.getExpression(e);u.push(l),a&&u.push(a);const c=a??l,f=o_(o,c);return Gd.typeEq(f,c,!0)?(s.kids.caseElse=c.value,(0,YQ.computedExprValue)({dataType:f,value:s,from:u})):this.elsePick?this.loggedErrorExpr("pick-else-type-does-not-match",{elseType:c.type,returnType:f.type}):this.loggedErrorExpr("pick-default-type-does-not-match",{defaultType:c.type,returnType:f.type})}getExpression(e){const n={node:"case",kids:{caseWhen:[],caseThen:[]}};if(this.elsePick===void 0)return this.loggedErrorExpr("pick-missing-else","pick incomplete, missing 'else'");const r=[],i=[];for(const a of this.choices){if(a.pick===void 0)return this.loggedErrorExpr("pick-missing-value","pick with no value can only be used with apply");a.when.requestExpression(e)===void 0&&this.loggedErrorExpr("pick-illegal-partial","pick with partial when can only be used with apply");const c=a.pick.getExpression(e),f=a.when.getExpression(e);r.push({pick:c,when:f}),i.push(c,f)}let s;for(const a of r){if(!Gd.typeEq(a.when,Gd.boolT))return this.loggedErrorExpr("pick-when-must-be-boolean",{whenType:a.when.type});if(s&&!Gd.typeEq(s,a.pick,!0))return this.loggedErrorExpr("pick-type-does-not-match",{pickType:a.pick.type,returnType:s.type});s=o_(s,a.pick),n.kids.caseWhen.push(a.when.value),n.kids.caseThen.push(a.pick.value)}const o=this.elsePick.getExpression(e);i.push(o);const u=o_(s,o);return Gd.typeEq(u,o,!0)?(n.kids.caseElse=o.value,(0,YQ.computedExprValue)({dataType:u,value:n,from:i})):this.elsePick.loggedErrorExpr("pick-else-type-does-not-match",{elseType:o.type,returnType:u.type})}}Qd.Pick=LSe;class ISe extends FSe.MalloyElement{constructor(e,n){super({when:n}),this.pick=e,this.when=n,this.elementType="caseWhen",this.has({pick:e})}}Qd.PickWhen=ISe;var Wd={},BSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),$Se=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),kSe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&BSe(e,t,n);return $Se(e,t),e};Object.defineProperty(Wd,"__esModule",{value:!0}),Wd.CaseWhen=Wd.Case=void 0;const PSe=kt,MSe=at,USe=Ge,Vd=kSe(Ht);function KQ(t,e){return t===void 0||t.type==="null"||t.type==="error"?e:t}class jSe extends MSe.ExpressionDef{constructor(e,n,r){super({choices:n}),this.value=e,this.choices=n,this.elseValue=r,this.elementType="case",this.has({elseValue:r,value:e})}getExpression(e){const n={node:"case",kids:{caseWhen:[],caseThen:[]}},r=[];let i;if(this.value){const u=this.value.getExpression(e);r.push(u),n.kids.caseValue=u.value,i=u}const s=[];for(const u of this.choices){const a=u.when.getExpression(e),l=u.then.getExpression(e);s.push({when:a,then:l}),r.push(a,l)}let o;for(const u of s){if(i!==void 0){if(!Vd.typeEq(u.when,i))return this.loggedErrorExpr("case-when-type-does-not-match",{whenType:u.when.type,valueType:i.type})}else if(!Vd.typeEq(u.when,Vd.boolT))return this.loggedErrorExpr("case-when-must-be-boolean",{whenType:u.when.type});if(o&&!Vd.typeEq(o,u.then,!0))return this.loggedErrorExpr("case-then-type-does-not-match",{thenType:u.then.type,returnType:o.type});o=KQ(o,u.then),n.kids.caseWhen.push(u.when.value),n.kids.caseThen.push(u.then.value)}if(this.elseValue){const u=this.elseValue.getExpression(e);if(o&&!Vd.typeEq(o,u,!0))return this.loggedErrorExpr("case-else-type-does-not-match",{elseType:u.type,returnType:o.type});o=KQ(o,u),r.push(u),n.kids.caseElse=u.value}return(0,PSe.computedExprValue)({value:n,dataType:o?Vd.atomicDef(o):{type:"null"},from:r})}}Wd.Case=jSe;class qSe extends USe.MalloyElement{constructor(e,n){super({when:e,then:n}),this.when=e,this.then=n,this.elementType="caseWhen"}}Wd.CaseWhen=qSe;var u_={},sf={},HSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),zSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),QSe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&HSe(e,t,n);return zSe(e,t),e};Object.defineProperty(sf,"__esModule",{value:!0}),sf.RecordLiteral=sf.RecordElement=void 0;const JQ=Qi,GSe=kt,WSe=at,VSe=Ge,YSe=QSe(Ht);class KSe extends VSe.MalloyElement{constructor(e){if(super(),this.elementType="record element","value"in e)this.value=e.value,this.has({value:e.value}),e.key&&(this.key=e.key);else{this.has({path:e.path}),this.value=e.path;const n=e.path.fieldReference.path;this.key=n[n.length-1]}}}sf.RecordElement=KSe;class JSe extends WSe.ExpressionDef{constructor(e){super(),this.pairs=e,this.elementType="record literal",this.has({pairs:e})}getExpression(e){return this.getRecord(e,[])}getRecord(e,n){var r;const i={node:"recordLiteral",kids:{},typeDef:{type:"record",fields:[]}},s=[];let o=0;for(const u of this.pairs){const a=(r=u.key)!==null&&r!==void 0?r:n[o];if(o+=1,a===void 0){u.logError("record-literal-needs-keys","Anonymous record element not legal here");continue}const l=u.value.getExpression(e);JQ.TD.isAtomic(l)?(s.push(l),i.kids[a]=l.value,i.typeDef.fields.push((0,JQ.mkFieldDef)(YSe.atomicDef(l),a))):u.value.logError("illegal-record-property-type",`Record property '${u.key} is type '${l.type}', which is not a legal property value type`)}return(0,GSe.computedExprValue)({value:i,dataType:i.typeDef,from:s})}getNextElement(e,n){const r=n.value;return r.node==="recordLiteral"?this.getRecord(e,Object.keys(r.kids)):this.getRecord(e,[])}}sf.RecordLiteral=JSe;var XSe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),ZSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),e4e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&XSe(e,t,n);return ZSe(e,t),e};Object.defineProperty(u_,"__esModule",{value:!0}),u_.ArrayLiteral=void 0;const t4e=kt,n4e=at,XQ=e4e(Ht),r4e=sf;class i4e extends n4e.ExpressionDef{constructor(e){super(),this.elements=e,this.elementType="array literal",this.has({elements:e})}getExpression(e){const n=[],r=[];let i;if(this.elements.length>0)for(const a of this.elements){const l=i&&a instanceof r4e.RecordLiteral?a.getNextElement(e,i):a.getExpression(e);if(r.push(l),l.type!=="error"){if(i){if(l.type!=="null"&&!XQ.typeEq(i,l)){a.logError("array-values-incompatible","All array elements must be same type");continue}}else l.type!=="null"&&(i=l);n.push(l.value)}}const s=XQ.atomicDef(i||{type:"number"}),o=s.type==="record"?{type:"array",elementTypeDef:{type:"record_element"},fields:s.fields}:{type:"array",elementTypeDef:s},u={node:"arrayLiteral",kids:{values:n},typeDef:o};return(0,t4e.computedExprValue)({dataType:o,value:u,from:r})}}u_.ArrayLiteral=i4e;var a_={};Object.defineProperty(a_,"__esModule",{value:!0}),a_.Timeframe=void 0;const s4e=We,o4e=Ge;class u4e extends o4e.MalloyElement{constructor(e){super(),this.elementType="timeframe";let n=e.toLowerCase();n.endsWith("s")&&(n=n.slice(0,-1)),this.text=(0,s4e.isTimestampUnit)(n)?n:"second"}}a_.Timeframe=u4e;var n0={};Object.defineProperty(n0,"__esModule",{value:!0}),n0.ImportStatement=n0.ImportSelect=n0.ImportSourceName=void 0;const qD=Ge;class a4e extends qD.MalloyElement{constructor(e){super(),this.text=e,this.elementType="importSourceName"}}n0.ImportSourceName=a4e;class l4e extends qD.MalloyElement{constructor(e,n){super(),this.text=e,this.from=n,this.elementType="importName",n&&this.has({from:n})}}n0.ImportSelect=l4e;class c4e extends qD.ListOf{constructor(e,n){super([]),this.url=e,this.elementType="import statement";try{this.fullURL=decodeURI(new URL(e,n).toString())}catch{this.logError("invalid-import-url","Invalid URL in import statement")}}needs(){const e=this.translator();if(e&&this.fullURL&&e.root.importZone.getEntry(this.fullURL).status==="present"){const r=e.childRequest(this.fullURL);if(r)return r}}execute(e){const n=this.translator();if(!n)this.logError("no-translator-for-import","Cannot import without translation context");else if(this.fullURL){const r=n.root.pretranslatedModels.get(this.fullURL),i=n.root.importZone.getEntry(this.fullURL);if(r||i.status==="present"){const s=n.getChildExports(this.fullURL);if(this.notEmpty())for(const o of this.list){const u=o.from||o;if(e.getEntry(o.text))o.logError("name-conflict-on-selective-import",`Cannot redefine '${o.text}'`);else if(s[u.text]){const a={...s[u.text]};o.from&&(a.as=o.text),e.setEntry(o.text,{entry:a,exported:!1})}else u.logError("selective-import-not-found",`Cannot find '${u.text}', not imported`)}else for(const[o,u]of Object.entries(n.getChildExports(this.fullURL)))e.getEntry(o)?this.logError("name-conflict-on-indiscriminate-import",`Cannot redefine '${o}'`):e.setEntry(o,{entry:u,exported:!1})}else i.status==="error"?this.logError("failed-import",`import failed: '${i.message}'`):this.logError("failed-import",`import failed with status: '${i.status}'`)}}}n0.ImportStatement=c4e;var dm={};Object.defineProperty(dm,"__esModule",{value:!0}),dm.ExtendBlock=void 0;const f4e=Ge,x4e=Rn;class d4e extends f4e.ListOf{constructor(){super(...arguments),this.elementType="extendBlock",this.forceQueryClass=void 0,this.queryRefinementStage=x4e.LegalRefinementStage.Single}queryExecute(e){for(const n of this.list)for(const r of n.list)e.inputFS.extendSource(r)}}dm.ExtendBlock=d4e;var l_={};Object.defineProperty(l_,"__esModule",{value:!0}),l_.Argument=void 0;const h4e=Ge;class p4e extends h4e.MalloyElement{constructor(e){super({...e}),this.elementType="Argument",this.id=e.id,this.value=e.value}}l_.Argument=p4e;var c_={};Object.defineProperty(c_,"__esModule",{value:!0}),c_.HasParameter=void 0;const ZQ=We,m4e=Ge;class g4e extends m4e.MalloyElement{constructor(e){super(),this.elementType="hasParameter",this.name=e.name,e.type&&(0,ZQ.isCastType)(e.type)&&(this.type=e.type),e.default&&(this.default=e.default,this.has({default:this.default}))}parameter(){var e;if(this.default!==void 0){const n=this.default.constantValue();return this.type&&this.type!==n.type&&n.type!=="null"&&n.type!=="error"&&this.default.logError("parameter-default-does-not-match-declared-type",`Default value for parameter does not match declared type \`${this.type}\``),n.type==="null"?this.type?{type:this.type,value:n.value,name:this.name}:(this.default.logError("parameter-null-default-without-declared-type","Default value cannot have type `null` unless parameter type is also specified"),{value:n.value,name:this.name,type:"error"}):!(0,ZQ.isCastType)(n.type)&&n.type!=="error"?(this.default.logError("parameter-illegal-default-type",`Default value cannot have type \`${n.type}\``),{value:n.value,name:this.name,type:"error"}):{value:n.value,name:this.name,type:n.type}}return this.type===void 0&&this.logError("parameter-missing-default-or-type","Parameter must have default value or declared type"),{value:null,name:this.name,type:(e=this.type)!==null&&e!==void 0?e:"error"}}}c_.HasParameter=g4e;var f_={};Object.defineProperty(f_,"__esModule",{value:!0}),f_.AnonymousQuery=void 0;const y4e=Ge,E4e=mr;class A4e extends y4e.MalloyElement{constructor(e){super(),this.queryExpr=e,this.elementType="anonymousQuery",this.isNoteableObj=!0,this.extendNote=E4e.extendNoteMethod,this.has({queryExpr:e})}execute(e){const n=this.queryExpr.getQuery();if(!n){this.queryExpr.sqLog("non-query-used-as-query","Cannot run this object as a query");return}const r={...n.query()},i=this.note||{};r.annotation&&(i.inherits=r.annotation),(i.notes||i.blockNotes||i.inherits)&&(r.annotation=i),e.queryList.push(r)}}f_.AnonymousQuery=A4e;var r0={};Object.defineProperty(r0,"__esModule",{value:!0}),r0.View=void 0;const v4e=Ge;let _4e=class extends v4e.MalloyElement{pipeline(e,n){return this.pipelineComp(e,n).pipeline}};r0.View=_4e;var x_={};Object.defineProperty(x_,"__esModule",{value:!0}),x_.ViewArrow=void 0;const C4e=yr,S4e=r0;class b4e extends S4e.View{constructor(e,n){super({base:e,operation:n}),this.base=e,this.operation=n,this.elementType="viewArrow"}pipelineComp(e){const n=this.base.pipelineComp(e),r=new C4e.StaticSourceSpace(n.outputStruct),i=this.operation.pipelineComp(r);return{pipeline:[...n.pipeline,...i.pipeline],outputStruct:i.outputStruct}}refine(e,n,r){return this.logError("refinement-with-multistage-view","A multi-segment view cannot be used as a refinement"),[]}getImplicitName(){return this.operation.getImplicitName()}}x_.ViewArrow=b4e;var d_={},hm={};Object.defineProperty(hm,"__esModule",{value:!0}),hm.refine=void 0;const HD=Qi,T4e=it,zD=jl;function R4e(t,e,n){var r,i;if(e.length!==1)return t.logError("refinement-with-multistage-view","Named refinements of multi-stage views are not supported"),e;const s={...e[0]},o=n;if((0,HD.isRawSegment)(s))t.logError("refinement-of-raw-query","Cannot refine raw query, must add an explicit query stage");else if(s.type==="partial"&&o.type!=="index"&&o.type!=="raw"?s.type=o.type:o.type!==s.type&&t.logError("mismatched-view-types-for-refinement",`cannot refine ${s.type} view with ${o.type} view`),o.type!=="index"&&s.type!=="index"&&o.type!=="raw"&&(o.orderBy!==void 0&&!o.defaultOrderBy&&(s.orderBy===void 0||s.defaultOrderBy?s.orderBy=o.orderBy:t.logError("ordering-overridden-in-refinement","refinement cannot override existing ordering")),o.limit!==void 0&&(s.limit===void 0?s.limit=o.limit:t.logError("limit-overridden-in-refinement","refinement cannot override existing limit"))),s.filterList=s.filterList!==void 0||o.filterList!==void 0?[...(r=s.filterList)!==null&&r!==void 0?r:[],...(i=o.filterList)!==null&&i!==void 0?i:[]]:void 0,(0,HD.isQuerySegment)(o)&&(0,HD.isQuerySegment)(s)){const u=[],a=[],l=new Map(s.queryFields.map(c=>[(0,zD.nameFromDef)(c),c]));for(const c of o.queryFields)l.has((0,zD.nameFromDef)(c))?u.push(c):a.push(c);s.queryFields=[...s.queryFields,...a],u.length>0&&t.logError("name-conflict-in-refinement",`overlapping fields in refinement: ${u.map(zD.nameFromDef)}`),s.compositeFieldUsage=(0,T4e.mergeCompositeFieldUsage)(s.compositeFieldUsage,o.compositeFieldUsage)}else o.type==="index"&&s.type==="index"&&(s.indexFields=[...o.indexFields,...s.indexFields]);return[s]}hm.refine=R4e,Object.defineProperty(d_,"__esModule",{value:!0}),d_.ViewRefine=void 0;const O4e=Fr,D4e=is,N4e=hm,w4e=r0;class F4e extends w4e.View{constructor(e,n){super({base:e,refinement:n}),this.base=e,this.refinement=n,this.elementType="refine"}pipelineComp(e,n){const r=this.base.pipelineComp(e),i=this.refinement.refine(e,r.pipeline,n);return{pipeline:i,annotation:r.annotation,outputStruct:i.length>0?(0,D4e.getFinalStruct)(this.refinement,e.structDef(),i):O4e.ErrorFactory.structDef}}refine(e,n,r){const i=this.pipeline(e,r);return i.length!==1?(this.refinement.logError("refinement-with-multistage-view","refinement must have exactly one stage"),n):(0,N4e.refine)(this,n,i[0])}getImplicitName(){return this.base.getImplicitName()}}d_.ViewRefine=F4e;var h_={};Object.defineProperty(h_,"__esModule",{value:!0}),h_.ReferenceView=void 0;const QD=We,eG=Fr,L4e=is,I4e=gr,B4e=hm,$4e=r0;class k4e extends $4e.View{constructor(e){super({reference:e}),this.reference=e,this.elementType="reference-view"}pipelineComp(e,n){return this._pipelineComp(e)}_pipelineComp(e,{forRefinement:n}={forRefinement:!1}){const r=this.reference.getField(e),i=function(){return{inputStruct:eG.ErrorFactory.structDef,outputStruct:eG.ErrorFactory.structDef,pipeline:[],error:!0}};if(!r.found)return this.reference.logError(r.error.code,r.error.message),i();if(!(r.found instanceof I4e.SpaceField))throw new Error("Expected space field");const s=r.found.fieldDef();if(s===void 0)throw new Error("Expected field to have definition");if((0,QD.isAtomic)(s)){const o={type:"reduce",queryFields:[this.reference.refToField],compositeFieldUsage:s.compositeFieldUsage},u=this.reference.nameString,a={...(0,QD.sourceBase)(e.structDef()),type:"query_result",name:u,fields:[s]};return{pipeline:[o],name:u,outputStruct:a}}else return(0,QD.isTurtle)(s)?this.reference.list.length>1?(n?this.logError("refinement-with-joined-view","Cannot use view from join as refinement"):this.logError("nest-of-joined-view","Cannot use view from join"),i()):{pipeline:[...s.pipeline],name:s.name,annotation:s.annotation,outputStruct:(0,L4e.getFinalStruct)(this.reference,e.structDef(),s.pipeline)}:(n?this.reference.logError("refinement-with-source",`named refinement \`${this.reference.refString}\` must be a view, found a ${s.type}`):this.reference.logError("nest-of-source","This operation is not supported"),i())}getRefinementSegment(e){const{pipeline:n,error:r}=this._pipelineComp(e,{forRefinement:!0});if(!r){if(n.length!==1){this.reference.logError("refinement-with-multistage-view",`named refinement \`${this.reference.refString}\` must have exactly one stage`);return}return n[0]}}refine(e,n,r){const i=this.getRefinementSegment(e);return i?(0,B4e.refine)(this,n,i):n}getImplicitName(){return this.reference.nameString}}h_.ReferenceView=k4e;var p_={},pm={},m_={},mm={};Object.defineProperty(mm,"__esModule",{value:!0}),mm.Index=void 0;const P4e=Ge,M4e=Rn;let U4e=class extends P4e.MalloyElement{constructor(e){super({fields:e}),this.fields=e,this.elementType="index",this.forceQueryClass=M4e.QueryClass.Index,this.queryRefinementStage=void 0}useWeight(e){this.has({weightBy:e}),this.weightBy=e}};mm.Index=U4e;var gm={};Object.defineProperty(gm,"__esModule",{value:!0}),gm.SampleProperty=void 0;const j4e=Ge,tG=Rn;class q4e extends j4e.MalloyElement{constructor(e){super(),this.sample=e,this.elementType="sampleProperty",this.queryRefinementStage=tG.LegalRefinementStage.Tail,this.forceQueryClass=tG.QueryClass.Index}sampling(){return this.sample}}gm.SampleProperty=q4e;var g_={};Object.defineProperty(g_,"__esModule",{value:!0}),g_.IndexFieldSpace=void 0;const nG=it,rG=We,GD=xt,H4e=gr,z4e=go,Q4e=K1,G4e=yr;class W4e extends z4e.QueryOperationSpace{constructor(){super(...arguments),this.segmentType="index"}pushFields(...e){for(const n of e)n instanceof GD.FieldReference?super.pushFields(n):n instanceof GD.WildcardFieldReference?this.addWild(n):n.logError("invalid-field-in-index-query","Internal error, not expected in index query")}getPipeSegment(e){if(e)return this.logError("refinement-of-index-segment","index query operations cannot be refined"),{type:"index",indexFields:[]};let n=(0,nG.emptyCompositeFieldUsage)(),r=(0,nG.emptyNarrowedCompositeFieldResolution)();const i=[],s=this.inputSpace().structDef();for(const[o,u]of this.entries())if(u instanceof H4e.SpaceField){let a,l;const c=this.expandedWild[o];if(c)i.push({type:"fieldref",path:c.path}),a=c.entry.typeDesc().compositeFieldUsage;else if(u instanceof Q4e.ReferenceField){const d=u.fieldRef,h=d.getField(this.exprSpace);h.error?d.logError(h.error.code,h.error.message):(i.push(d.refToField),a=h.found.typeDesc().compositeFieldUsage,l=d)}const f=this.applyNextCompositeFieldUsage(s,n,r,a,l);n=f.compositeFieldUsage,r=f.narrowedCompositeFieldResolution}return this._compositeFieldUsage=n,{type:"index",indexFields:i}}addRefineFromFields(e){}addWild(e){var n;let r=this.exprSpace;const i=[];if(e.joinPath)for(const u of e.joinPath.list){const a=u.refString;i.push(a);const l=r.entry(a);if(l)if(l instanceof G4e.StructSpaceField)r=l.fieldSpace;else{u.logError("invalid-wildcard-source",`Field '${a}' does not contain rows and cannot be expanded with '*'`);return}else{u.logError("wildcard-source-not-found",`No such field as '${a}'`);return}}const s=this.dialectObj(),o=[];for(const[u,a]of r.entries()){if(e.except.has(u)||a.refType==="parameter")continue;const l=GD.IndexFieldReference.indexOutputName([...i,u]);if(this.entry(l)){const c=(n=this.expandedWild[l].path)===null||n===void 0?void 0:n.join(".");e.logError("name-conflict-in-wildcard-expansion",`Cannot expand '${u}' in '${e.refString}' because a field with that name already exists${c?` (conflicts with ${c})`:""}`)}else{const c=a.typeDesc();rG.TD.isLeafAtomic(c)&&(0,rG.expressionIsScalar)(c.expressionType)&&(s===void 0||!s.ignoreInProject(u))&&(o.push({name:l,entry:a}),this.expandedWild[l]={path:i.concat(u),entry:a})}}for(const u of o.sort((a,l)=>a.name.localeCompare(l.name)))this.setEntry(u.name,u.entry)}}g_.IndexFieldSpace=W4e,Object.defineProperty(m_,"__esModule",{value:!0}),m_.IndexBuilder=void 0;const WD=We,V4e=Fr,Y4e=xu,K4e=mm,J4e=Xl,X4e=gm,Z4e=g_,VD=it;class ebe{constructor(e,n,r,i){this.filters=[],this.alwaysJoins=[],this.type="index",this.resultFS=new Z4e.IndexFieldSpace(e,n,r,i),this.inputFS=this.resultFS.inputSpace()}execute(e){e instanceof Y4e.Filter?e.queryExecute(this):e instanceof J4e.Limit?(this.limit&&this.limit.logError("index-limit-already-specified","Ignored, too many limit: statements"),this.limit=e):e instanceof K4e.Index?(this.resultFS.pushFields(...e.fields.list),e.weightBy&&(this.indexOn&&this.indexOn.logError("index-by-already-specified","Ignoring previous BY"),this.indexOn=e.weightBy)):e instanceof X4e.SampleProperty?this.sample=e.sampling():e.logError("illegal-operation-for-index","Not legal in an index query operation")}get compositeFieldUsage(){return this.resultFS.compositeFieldUsage}finalize(e){var n;if(e&&!(0,WD.isIndexSegment)(e)&&!(0,WD.isPartialSegment)(e))return this.resultFS.logError("refinement-of-index-segment",`Can't refine index with ${e.type}`),V4e.ErrorFactory.indexSegment;const r=this.resultFS.getPipeSegment(e),i=(e==null?void 0:e.filterList)||[];this.filters.length>0&&!i?r.filterList=this.filters:i&&(r.filterList=[...i,...this.filters]),e!=null&&e.limit&&(r.limit=e.limit),this.limit&&(r.limit=this.limit.limit),this.indexOn&&(r.weightMeasure=this.indexOn.refString),e&&(0,WD.isIndexSegment)(e)&&(e!=null&&e.sample)&&(r.sample=e.sample),this.sample&&(r.sample=this.sample),this.alwaysJoins.length>0&&(r.alwaysJoins=[...this.alwaysJoins]);const s=e&&e.type==="index"&&(n=e.compositeFieldUsage)!==null&&n!==void 0?n:(0,VD.emptyCompositeFieldUsage)();return r.compositeFieldUsage=(0,VD.mergeCompositeFieldUsage)(s,this.compositeFieldUsage),r}}m_.IndexBuilder=ebe;var y_={},ym={};Object.defineProperty(ym,"__esModule",{value:!0}),ym.GroupBy=void 0;const tbe=ns,iG=Rn;class nbe extends tbe.DefinitionList{constructor(){super(...arguments),this.elementType="groupBy",this.queryRefinementStage=iG.LegalRefinementStage.Single,this.forceQueryClass=iG.QueryClass.Grouping}}ym.GroupBy=nbe;var E_={};Object.defineProperty(E_,"__esModule",{value:!0}),E_.ProjectFieldSpace=void 0;const A_=We,rbe=go;class ibe extends rbe.QuerySpace{constructor(){super(...arguments),this.segmentType="project"}canContain(e){return e===void 0||!A_.TD.isAtomic(e)||(0,A_.expressionIsAggregate)(e.expressionType)?!1:(0,A_.expressionInvolvesAggregate)(e.expressionType)&&(0,A_.expressionIsAnalytic)(e.expressionType)?(this.logError("aggregate-analytic-in-select","Cannot add aggregate analyics to select"),!1):!0}}E_.ProjectFieldSpace=ibe;var i0={},of={};Object.defineProperty(of,"__esModule",{value:!0}),of.Ordering=of.OrderBy=void 0;const sbe=We,sG=Zl,oG=Ge,obe=Rn;class ube extends oG.MalloyElement{constructor(e,n){super(),this.field=e,this.dir=n,this.elementType="orderBy",e instanceof sG.FieldName&&this.has({field:e})}get modelField(){return typeof this.field=="number"?this.field:this.field.refString}getOrderBy(e){var n;if(this.field instanceof sG.FieldName&&e.isQueryFieldSpace()){const i=e.outputSpace(),s=this.field.getField(i);s.error&&this.field.logError(s.error.code,s.error.message),(!s.found||!s.isOutputField)&&this.logError("order-by-not-found-in-output",`Unknown field ${this.field.refString} in output space`),(0,sbe.expressionIsAnalytic)((n=s.found)===null||n===void 0?void 0:n.typeDesc().expressionType)&&this.logError("order-by-analytic",`Illegal order by of analytic field ${this.field.refString}`)}const r={field:this.modelField};return this.dir&&(r.dir=this.dir),r}}of.OrderBy=ube;class abe extends oG.ListOf{constructor(e){super(e),this.elementType="ordering",this.queryRefinementStage=obe.LegalRefinementStage.Tail,this.forceQueryClass=void 0}getOrderBy(e){return this.list.map(n=>n.getOrderBy(e))}}of.Ordering=abe,Object.defineProperty(i0,"__esModule",{value:!0}),i0.ReduceBuilder=i0.QuerySegmentBuilder=void 0;const yo=We,lbe=Fr,cbe=Zl,fbe=Xl,xbe=of,dbe=go,hbe=ns,YD=it;function uG(t){return t.type==="fieldref"?t.path[t.path.length-1]:t.name}class aG{constructor(){this.alwaysJoins=[],this.filters=[]}execute(e){if(e.queryExecute){e.queryExecute(this);return}e instanceof hbe.DefinitionList?this.resultFS.pushFields(...e.list):e instanceof fbe.Limit?this.limit?e.logError("limit-already-specified","Query operation already limited"):this.limit=e.limit:e instanceof xbe.Ordering&&(this.order?e.logError("ordering-already-specified","Query operation already sorted"):this.order=e)}get compositeFieldUsage(){return this.resultFS.compositeFieldUsage}refineFrom(e,n){var r;e&&e.type!=="index"&&e.type!=="raw"&&(!this.limit&&e.orderBy&&!e.defaultOrderBy&&(n.orderBy=e.orderBy),!this.limit&&e.limit&&(n.limit=e.limit)),this.order&&(n.orderBy=this.order.getOrderBy(this.inputFS),delete n.defaultOrderBy),this.limit&&(n.limit=this.limit);const i=(e==null?void 0:e.filterList)||[];this.filters.length>0&&!i?n.filterList=this.filters:i&&(n.filterList=[...i,...this.filters]),this.alwaysJoins.length>0&&(n.alwaysJoins=[...this.alwaysJoins]);const s=e&&(0,yo.isQuerySegment)(e)&&(r=e.compositeFieldUsage)!==null&&r!==void 0?r:(0,YD.emptyCompositeFieldUsage)();n.compositeFieldUsage=(0,YD.mergeCompositeFieldUsage)(s,this.compositeFieldUsage)}}i0.QuerySegmentBuilder=aG;class pbe extends aG{constructor(e,n,r,i){super(),this.type="grouping",this.resultFS=new dbe.ReduceFieldSpace(e,n,r,i),this.inputFS=this.resultFS.inputSpace()}finalize(e){let n;if(e)if((0,yo.isReduceSegment)(e)||(0,yo.isPartialSegment)(e))n=e;else return this.resultFS.logError("incompatible-segment-for-reduce-refinement",`Can't refine reduce with ${e.type}`),lbe.ErrorFactory.reduceSegment;const r=this.resultFS.getQuerySegment(n);if(this.refineFrom(n,r),r.orderBy){for(const i of r.orderBy)if(typeof i.field=="number"){const s=r.queryFields[i.field-1];i.field=uG(s)}}if(r.orderBy===void 0||r.defaultOrderBy){let i;for(const s of r.queryFields){let o=!1,u=!1,a;const l=uG(s);if(s.type==="fieldref"){const c=s.path.map(d=>new cbe.FieldName(d)),f=this.inputFS.lookup(c).found;if(f){const d=f.typeDesc();a=d.type,o=(0,yo.expressionIsAggregate)(d.expressionType),u=(0,yo.expressionIsAnalytic)(d.expressionType)}else continue}else a=s.type,o=(0,yo.hasExpression)(s)&&(0,yo.expressionIsAggregate)(s.expressionType),u=(0,yo.hasExpression)(s)&&(0,yo.expressionIsAnalytic)(s.expressionType);if((0,yo.isTemporalType)(a)||o){r.defaultOrderBy=!0,r.orderBy=[{field:l,dir:"desc"}],i=void 0;break}(0,yo.canOrderBy)(a)&&!u&&!i&&(i=l)}i&&(r.defaultOrderBy=!0,r.orderBy=[{field:i,dir:"asc"}])}return r}}i0.ReduceBuilder=pbe,Object.defineProperty(y_,"__esModule",{value:!0}),y_.ProjectBuilder=void 0;const lG=We,mbe=Fr,gbe=ym,ybe=E_,Ebe=i0;class Abe extends Ebe.QuerySegmentBuilder{constructor(e,n,r,i){super(),this.type="project",this.resultFS=new ybe.ProjectFieldSpace(e,n,r,i),this.inputFS=this.resultFS.inputSpace()}execute(e){e.elementType==="having"||e instanceof gbe.GroupBy?e.logError("illegal-operation-in-select-segment","Illegal statement in a select query operation"):super.execute(e)}finalize(e){let n;if(e)if((0,lG.isProjectSegment)(e)||(0,lG.isPartialSegment)(e))n=e;else return this.resultFS.logError("incompatible-segment-for-select-refinement",`Can't refine select with ${e.type}`),mbe.ErrorFactory.projectSegment;const r=this.resultFS.getQuerySegment(n);return this.refineFrom(n,r),r}}y_.ProjectBuilder=Abe;var v_={};Object.defineProperty(v_,"__esModule",{value:!0}),v_.PartialBuilder=void 0;const vbe=Qi,_be=i0;class Cbe extends _be.ReduceBuilder{finalize(e){const n=super.finalize(e);if((0,vbe.isQuerySegment)(n))return{...n,type:"partial"};throw new Error(`Partial Builder cannot finalize from ${n.type}`)}}v_.PartialBuilder=Cbe,Object.defineProperty(pm,"__esModule",{value:!0}),pm.QOpDesc=void 0;const Sbe=m_,bbe=y_,Tbe=i0,Rbe=Ge,Obe=is,Dbe=yr,uf=Rn,Nbe=v_;class wbe extends Rbe.ListOf{constructor(){super(...arguments),this.elementType="queryOperation"}computeType(){var e;let n,r=!1;this.refineThis&&(this.refineThis.type==="reduce"?n=uf.QueryClass.Grouping:this.refineThis.type==="project"?n=uf.QueryClass.Project:this.refineThis.type==="index"&&(n=uf.QueryClass.Index));for(const i of this.list)i.forceQueryClass&&(n?n!==i.forceQueryClass&&i.logError(`illegal-${n}-operation`,`Not legal in ${n} query`):n=i.forceQueryClass),r||(r=(e=i.needsExplicitQueryClass)!==null&&e!==void 0?e:!1);return n===void 0&&r&&(this.logError("ambiguous-view-type",{}),n=uf.QueryClass.Project),this.opClass=n,n}refineFrom(e){this.refineThis=e}getBuilder(e,n,r){switch(this.computeType()){case uf.QueryClass.Grouping:return new Tbe.ReduceBuilder(e,this.refineThis,n,r);case uf.QueryClass.Project:return new bbe.ProjectBuilder(e,this.refineThis,n,r);case uf.QueryClass.Index:return new Sbe.IndexBuilder(e,this.refineThis,n,r);case void 0:return new Nbe.PartialBuilder(e,this.refineThis,n,r)}}getOp(e,n){const r=this.getBuilder(e,n,this);for(const s of this.list)r.execute(s);const i=r.finalize(this.refineThis);return{segment:i,outputSpace:()=>new Dbe.StaticSourceSpace((0,Obe.opOutputStruct)(this,e.structDef(),i))}}}pm.QOpDesc=wbe,Object.defineProperty(p_,"__esModule",{value:!0}),p_.QOpDescView=void 0;const Fbe=We,Lbe=yr,cG=pm,Ibe=is,KD=Rn,Bbe=r0;class $be extends Bbe.View{constructor(e){super({operation:e}),this.operation=e,this.elementType="qopdesc-view"}pipelineComp(e,n){const r=this.operation.getOp(e,n);return{pipeline:[r.segment],outputStruct:r.outputSpace().structDef()}}getOp(e,n,r,i){return(0,Fbe.isRawSegment)(i)?(this.logError("refinement-of-raw-query","A raw query cannot be refined"),i):(r.refineFrom(i),r.getOp(e,n).segment)}refine(e,n,r){const i=[...n];if(i.length===0)return i;if(i.length===1)return this.operation.refineFrom(i[0]),[this.getOp(e,r,this.operation,i[0])];const s=new cG.QOpDesc([]),o=new cG.QOpDesc([]);for(const u of this.operation.list)switch(u.queryRefinementStage){case KD.LegalRefinementStage.Head:s.push(u);break;case KD.LegalRefinementStage.Single:u.logError("illegal-multistage-refinement-operation","Illegal in refinement of a query with more than one stage");break;case KD.LegalRefinementStage.Tail:o.push(u);break;default:u.logError("illegal-refinement-operation","Illegal query refinement")}if(s.notEmpty()&&(this.has({headRefinements:s}),i[0]=this.getOp(e,void 0,s,i[0])),o.notEmpty()){const u=i.length-1;this.has({tailRefinements:o});const a=(0,Ibe.getFinalStruct)(this,e.structDef(),i.slice(-1));i[u]=this.getOp(new Lbe.StaticSourceSpace(a),void 0,o,i[u])}return i}getImplicitName(){}}p_.QOpDescView=$be;var pn={},kbe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),Pbe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Mbe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&kbe(e,t,n);return Pbe(e,t),e};Object.defineProperty(pn,"__esModule",{value:!0}),pn.FieldDefinitionValue=pn.DefSpace=pn.DimensionFieldDeclaration=pn.MeasureFieldDeclaration=pn.DeclareFieldDeclaration=pn.ProjectFieldDeclaration=pn.GroupByFieldDeclaration=pn.AggregateFieldDeclaration=pn.CalculateFieldDeclaration=pn.AtomicFieldDeclaration=void 0;const JD=We,fG=Mbe(Ht),Ube=Pd,jbe=Ge,af=$n,qbe=mr,Hbe=gr;class s0 extends jbe.MalloyElement{constructor(e,n,r){super({expr:e}),this.expr=e,this.defineName=n,this.exprSrc=r,this.isNoteableObj=!0,this.extendNote=qbe.extendNoteMethod}getName(){return this.defineName}fieldDef(e,n){return this.queryFieldDef(new XD(e,this),n)}executesInOutputSpace(){return!1}queryFieldDef(e,n){let r;function i(){if(e.isQueryFieldSpace())return e.outputSpace();throw new Error("must be in a query -- weird internal error")}try{const o=this.executesInOutputSpace()?i():e;r=this.expr.getExpression(o)}catch(o){return this.logError("failed-field-definition",`Cannot define '${n}', ${o.message}`),{name:n,type:"error"}}if(r.type==="null"&&(this.expr.logWarning("null-typed-field-definition",'null value defaults to type number, use "null::TYPE" to specify correct type'),r={type:"number",value:r.value,expressionType:r.expressionType,evalSpace:r.evalSpace,compositeFieldUsage:r.compositeFieldUsage}),(0,JD.isAtomicFieldType)(r.type)&&r.type!=="error"){this.typecheckExprValue(r);const o=(0,JD.mkFieldDef)(fG.atomicDef(r),n);return(o.type==="date"||o.type==="timestamp")&&(0,Ube.isGranularResult)(r)&&(o.timeframe=r.timeframe),o.location=this.location,o.e=r.value,o.compositeFieldUsage=r.compositeFieldUsage,r.expressionType&&(o.expressionType=r.expressionType),this.exprSrc&&(o.code=this.exprSrc),this.note&&(o.annotation=this.note),o}if(!(e instanceof XD&&e.foundCircle)&&r.type!=="error"){const o=fG.inspect(r);this.logError("invalid-type-for-field-definition",`Cannot define '${n}', unexpected type: ${o}`)}return{name:n,type:"error"}}makeEntry(e){e.newEntry(this.defineName,this,new xG(e,this))}}pn.AtomicFieldDeclaration=s0;class zbe extends s0{constructor(){super(...arguments),this.elementType="calculateFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckCalculate)(e,this)}executesInOutputSpace(){return!0}}pn.CalculateFieldDeclaration=zbe;class Qbe extends s0{constructor(){super(...arguments),this.elementType="aggregateFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckAggregate)(e,this)}}pn.AggregateFieldDeclaration=Qbe;class Gbe extends s0{constructor(){super(...arguments),this.elementType="groupByFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckGroupBy)(e,this)}}pn.GroupByFieldDeclaration=Gbe;class Wbe extends s0{constructor(){super(...arguments),this.elementType="projectFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckProject)(e,this)}}pn.ProjectFieldDeclaration=Wbe;class Vbe extends s0{constructor(){super(...arguments),this.elementType="declareFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckDeclare)(e,this)}}pn.DeclareFieldDeclaration=Vbe;class Ybe extends s0{constructor(){super(...arguments),this.elementType="measureFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckMeasure)(e,this)}}pn.MeasureFieldDeclaration=Ybe;class Kbe extends s0{constructor(){super(...arguments),this.elementType="dimensionFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckDimension)(e,this)}}pn.DimensionFieldDeclaration=Kbe;class XD{constructor(e,n){this.realFS=e,this.circular=n,this.type="fieldSpace",this.foundCircle=!1}structDef(){return this.realFS.structDef()}emptyStructDef(){return this.realFS.emptyStructDef()}entry(e){return this.realFS.entry(e)}lookup(e){return e[0]&&e[0].refString===this.circular.defineName?(this.foundCircle=!0,{error:{message:`Circular reference to '${this.circular.defineName}' in definition`,code:"circular-reference-in-field-definition"},found:void 0}):this.realFS.lookup(e)}entries(){return this.realFS.entries()}dialectName(){return this.realFS.dialectName()}dialectObj(){return this.realFS.dialectObj()}isQueryFieldSpace(){return this.realFS.isQueryFieldSpace()}outputSpace(){if(this.realFS.isQueryFieldSpace())return this.realFS.outputSpace();throw new Error("Not a query field space")}inputSpace(){if(this.realFS.isQueryFieldSpace())return this.realFS.inputSpace();throw new Error("Not a query field space")}isProtectedAccessSpace(){return!0}}pn.DefSpace=XD;class xG extends Hbe.SpaceField{constructor(e,n){super(),this.space=e,this.exprDef=n,this.fieldName=n.defineName}get name(){return this.fieldName}fieldDef(){var e;const n=(e=this.defInSource)!==null&&e!==void 0?e:this.exprDef.fieldDef(this.space,this.name);return this.defInSource=n,n}getQueryFieldDef(e){if(!this.defInQuery){const n=this.exprDef.queryFieldDef(e,this.name);this.defInQuery=n}return this.defInQuery}typeDesc(){const e=this.defInQuery||this.fieldDef();if((0,JD.isAtomic)(e))return this.fieldTypeFromFieldDef(e);throw new Error(`Can't get typeDesc for ${e.type}`)}entryType(){return(this.defInQuery||this.fieldDef()).type}}pn.FieldDefinitionValue=xG;var __={};Object.defineProperty(__,"__esModule",{value:!0}),__.Aggregate=void 0;const Jbe=ns,dG=Rn;let Xbe=class extends Jbe.DefinitionList{constructor(){super(...arguments),this.elementType="aggregateList",this.queryRefinementStage=dG.LegalRefinementStage.Single,this.forceQueryClass=dG.QueryClass.Grouping}};__.Aggregate=Xbe;var C_={};Object.defineProperty(C_,"__esModule",{value:!0}),C_.Calculate=void 0;const Zbe=ns,eTe=Rn;class tTe extends Zbe.DefinitionList{constructor(){super(...arguments),this.elementType="calculate",this.forceQueryClass=void 0,this.needsExplicitQueryClass=!0,this.queryRefinementStage=eTe.LegalRefinementStage.Single}}C_.Calculate=tTe;var Em={};Object.defineProperty(Em,"__esModule",{value:!0}),Em.Dimensions=void 0;const nTe=ql;class rTe extends nTe.DeclareFields{constructor(){super(...arguments),this.elementType="dimensionList"}}Em.Dimensions=rTe;var Am={};Object.defineProperty(Am,"__esModule",{value:!0}),Am.Measures=void 0;const iTe=ql;class sTe extends iTe.DeclareFields{constructor(){super(...arguments),this.elementType="measureList"}}Am.Measures=sTe;var S_={};Object.defineProperty(S_,"__esModule",{value:!0}),S_.Nests=void 0;const oTe=ns,hG=Rn;class uTe extends oTe.DefinitionList{constructor(e){super(e),this.elementType="nestedQueries",this.queryRefinementStage=hG.LegalRefinementStage.Single,this.forceQueryClass=hG.QueryClass.Grouping}}S_.Nests=uTe;var b_={};Object.defineProperty(b_,"__esModule",{value:!0}),b_.ProjectStatement=void 0;const aTe=ns,pG=Rn;class lTe extends aTe.DefinitionList{constructor(){super(...arguments),this.elementType="projectStatement",this.forceQueryClass=pG.QueryClass.Project,this.queryRefinementStage=pG.LegalRefinementStage.Single}queryExecute(e){e.type==="project"&&e.resultFS.pushFields(...this.list)}}b_.ProjectStatement=lTe;var o0={},Ta={};Object.defineProperty(Ta,"__esModule",{value:!0}),Ta.findReferences=Ta.deprecatedParseTableURI=Ta.constructTableKey=void 0;const cTe=Cl,ZD=un;function e7(t){const e=(0,ZD.getStringIfShort)(t);if(e)return e;const n=[],r=t.string().sqlString();if(r){for(const i of(0,ZD.getStringParts)(r))typeof i=="string"&&n.push(i);return n.join("")}return""}class fTe{constructor(e,n){this.trans=e,this.tokens=n,this.needTables={},this.needImports={}}registerTableReference(e,n,r){const i=mG(e,n);this.needTables[i]||(this.needTables[i]={connectionName:e,tablePath:n,firstReference:r})}enterTableMethod(e){const n=(0,ZD.getId)(e.connectionId()),r=e7(e.tablePath()),i=this.trans.rangeFromContext(e);this.registerTableReference(n,r,i)}enterTableFunction(e){const n=e7(e.tableURI()),{connectionName:r,tablePath:i}=gG(n),s=this.trans.rangeFromContext(e);this.registerTableReference(r,i,s)}enterImportURL(e){const n=e7(e);this.needImports[n]||(this.needImports[n]=this.trans.rangeFromContext(e))}}function mG(t,e){return t===void 0?e:`${t}:${e}`}Ta.constructTableKey=mG;function gG(t){const e=t.match(/^([^:]*):(.*)$/);if(e){const[,n,r]=e;return{connectionName:n,tablePath:r}}else return{tablePath:t}}Ta.deprecatedParseTableURI=gG;function xTe(t,e,n){const r=new fTe(t,e),i=r;return cTe.ParseTreeWalker.DEFAULT.walk(i,n),{tables:r.needTables,urls:r.needImports}}Ta.findReferences=xTe,Object.defineProperty(o0,"__esModule",{value:!0}),o0.TableFunctionSource=o0.TableMethodSource=o0.TableSource=void 0;const yG=Ta,dTe=Os,EG=Fr;class t7 extends dTe.Source{getSourceDef(){var e,n,r;const i=this.getTableInfo();if(i===void 0)return EG.ErrorFactory.structDef;const{tablePath:s,connectionName:o}=i,u=(0,yG.constructTableKey)(o,s),a=(e=this.translator())===null||e===void 0?void 0:e.root.schemaZone.getEntry(u);let l=`Schema read failure for table '${s}' for connection '${o}'`;if(a){if(a.status==="present"){(n=this.document())===null||n===void 0||n.checkExperimentalDialect(this,a.value.dialect),a.value.location=this.location,a.value.fields.forEach(f=>{f.location=this.location});const c={...a.value,fields:a.value.fields.map(f=>({...f,location:this.location})),location:this.location};return(r=this.document())===null||r===void 0||r.rememberToAddModelAnnotations(c),c}a.status==="error"&&(l=a.message)}return this.logError("failed-to-fetch-table-schema",l),EG.ErrorFactory.structDef}}o0.TableSource=t7;class hTe extends t7{constructor(e,n){super(),this.connectionName=e,this.tablePath=n,this.elementType="tableMethodSource",this.has({connectionName:e})}getTableInfo(){var e;const n=this.modelEntry(this.connectionName),r=this.connectionName.refString;if(n===void 0)(e=this.namespace())===null||e===void 0||e.setEntry(r,{entry:{type:"connection",name:r},exported:!0},!0);else if(n.entry.type!=="connection"){this.connectionName.logError("invalid-connection-for-table-source",`${this.connectionName.refString} is not a connection`);return}return{tablePath:this.tablePath,connectionName:this.connectionName.refString}}}o0.TableMethodSource=hTe;class pTe extends t7{constructor(e){super(),this.tableURI=e,this.elementType="tableFunctionSource"}getTableInfo(){return(0,yG.deprecatedParseTableURI)(this.tableURI)}}o0.TableFunctionSource=pTe;var T_={};Object.defineProperty(T_,"__esModule",{value:!0}),T_.SQLString=void 0;const mTe=Ge,AG=po;class gTe extends mTe.MalloyElement{constructor(){super(...arguments),this.elementType="sqlString",this.elements=[],this.containsQueries=!1}complete(){this.has({queries:this.elements.filter(yTe)})}push(e){typeof e=="string"?e.length>0&&this.elements.push(e):e instanceof AG.SourceQueryElement?(this.elements.push(e),this.containsQueries=!0,e.parent=this):e.logError("invalid-sql-source-interpolation","This element is not legal inside an SQL string")}sqlPhrases(){const e=[];for(const n of this.elements)if(typeof n=="string")e.push({sql:n});else{const r=n.getQuery();r?e.push(r.query()):n.sqLog("failed-to-expand-sql-source","Cannot expand into a query")}return e}}T_.SQLString=gTe;function yTe(t){return t instanceof AG.SourceQueryElement}var R_={};Object.defineProperty(R_,"__esModule",{value:!0}),R_.SourceDesc=void 0;const ETe=Ge;class ATe extends ETe.ListOf{constructor(){super(...arguments),this.elementType="sourceDescription"}}R_.SourceDesc=ATe;var O_={};Object.defineProperty(O_,"__esModule",{value:!0}),O_.isSourceProperty=void 0;const vTe=xu,_Te=ql,CTe=Cd,STe=Wl,bTe=Sd,TTe=bd,RTe=Td,OTe=Gl,DTe=bi;function NTe(t){return t instanceof vTe.Filter||t instanceof DTe.JoinStatement||t instanceof _Te.DeclareFields||t instanceof CTe.FieldListEdit||t instanceof STe.Renames||t instanceof bTe.PrimaryKey||t instanceof OTe.ObjectAnnotation||t instanceof TTe.Views||t instanceof RTe.TimezoneStatement}O_.isSourceProperty=NTe;var D_={};Object.defineProperty(D_,"__esModule",{value:!0}),D_.isFieldCollectionMember=void 0;const wTe=pn,vG=xt;function FTe(t){return t instanceof vG.FieldReference||t instanceof vG.WildcardFieldReference||t instanceof wTe.AtomicFieldDeclaration}D_.isFieldCollectionMember=FTe;var N_={};Object.defineProperty(N_,"__esModule",{value:!0}),N_.isQueryElement=void 0;const LTe=Bd,ITe=$d,BTe=rm,$Te=im;function kTe(t){return t instanceof LTe.QueryArrow||t instanceof ITe.QueryRefine||t instanceof BTe.QueryReference||t instanceof $Te.QueryRaw}N_.isQueryElement=kTe;var _G={};Object.defineProperty(_G,"__esModule",{value:!0});var w_={};Object.defineProperty(w_,"__esModule",{value:!0}),w_.isQueryProperty=void 0;function PTe(t){return"queryRefinementStage"in t&&"forceQueryClass"in t}w_.isQueryProperty=PTe;var F_={};Object.defineProperty(F_,"__esModule",{value:!0}),F_.isQueryExtendProperty=void 0;const MTe=Em,UTe=bi,jTe=Am;function qTe(t){return t instanceof MTe.Dimensions||t instanceof jTe.Measures||t instanceof UTe.JoinStatement}F_.isQueryExtendProperty=qTe;var L_={};Object.defineProperty(L_,"__esModule",{value:!0}),L_.isFieldPropStatement=void 0;const HTe=Jl,zTe=xu,QTe=Xl,GTe=Hd;function WTe(t){return t instanceof zTe.Filter||t instanceof QTe.Limit||t instanceof GTe.PartitionBy||t instanceof HTe.FunctionOrdering}L_.isFieldPropStatement=WTe,function(t){var e=T&&T.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=T&&T.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(D1,t),n(yd,t),n(Ed,t),n(Os,t),n(L1,t),n(po,t),n(dv,t),n(hv,t),n(gv,t),n(X1,t),n(Av,t),n(vv,t),n(ho,t),n(Cd,t),n(Sd,t),n(Wl,t),n(bd,t),n(Td,t),n(Cv,t),n(Ud,t),n(bv,t),n(Jl,t),n(Tv,t),n(Sa,t),n(Rv,t),n(qd,t),n(Ov,t),n(Dv,t),n(Nv,t),n(Ca,t),n(wv,t),n(Fv,t),n(Iv,t),n(lm,t),n(um,t),n(tf,t),n($v,t),n(kv,t),n(Mv,t),n(jv,t),n(qv,t),n(Hv,t),n(zv,t),n(e0,t),n(Gv,t),n(Wv,t),n(Vv,t),n(Yv,t),n(Kv,t),n(Jv,t),n(Zv,t),n(n_,t),n(Jn,t),n(s_,t),n(Hd,t),n(Qd,t),n(Wd,t),n(u_,t),n(sf,t),n(Kl,t),n(a_,t),n(cm,t),n(n0,t),n(dm,t),n(l_,t),n(c_,t),n(f_,t),n($d,t),n(Bd,t),n(r0,t),n(x_,t),n(d_,t),n(h_,t),n(p_,t),n(pn,t),n(xt,t),n(__,t),n(C_,t),n(ql,t),n(Em,t),n(dm,t),n(xu,t),n(ym,t),n(mm,t),n(bi,t),n(N1,t),n(Xl,t),n(Am,t),n(D1,t),n(S_,t),n(of,t),n(b_,t),n(pm,t),n(gm,t),n(kd,t),n(ef,t),n(sm,t),n(o0,t),n(T_,t),n(Gl,t),n(mo,t),n(R_,t),n(O_,t),n(at,t),n(D_,t),n(Zl,t),n(Ge,t),n(N_,t),n(_G,t),n(w_,t),n(F_,t),n(L_,t)}(WA);var I_={},Yd={};Object.defineProperty(Yd,"__esModule",{value:!0}),Yd.ConstantExpression=Yd.ConstantFieldSpace=void 0;const VTe=at;class CG{constructor(){this.type="fieldSpace"}structDef(){throw new Error("ConstantFieldSpace cannot generate a structDef")}emptyStructDef(){throw new Error("ConstantFieldSpace cannot generate a structDef")}lookup(e){return{error:{message:"Only constants allowed in parameter default values",code:"illegal-reference-in-parameter-default"},found:void 0}}entries(){return[]}entry(){}dialectName(){return"~constant-space-unknown-dialect~"}dialectObj(){}isQueryFieldSpace(){return!1}isProtectedAccessSpace(){return!1}}Yd.ConstantFieldSpace=CG;class YTe extends VTe.ExpressionDef{constructor(e){super({expr:e}),this.expr=e,this.elementType="constantExpression"}getExpression(e){return this.constantValue()}get constantFs(){return this.cfs||(this.cfs=new CG),this.cfs}constantValue(){return this.expr.getExpression(this.constantFs)}apply(e,n,r){return this.expr.apply(e,n,r)}requestExpression(e){return this.expr.requestExpression(e)}}Yd.ConstantExpression=YTe;var KTe=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),JTe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),XTe=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&KTe(e,t,n);return JTe(e,t),e};Object.defineProperty(I_,"__esModule",{value:!0}),I_.MalloyToAST=void 0;const SG=m1,ZTe=w2,ee=XTe(WA),n7=w1,bG=Gn,e6e=WA,Ln=un,r7=We,t6e=Js,n6e=Yd,r6e=lu;class TG extends ee.SourceQueryElement{constructor(){super(...arguments),this.elementType="parseErrorSourceQuery"}}class i7 extends ee.MalloyElement{constructor(e){super(),this.elementType="ignoredByParser",this.malloySrc=e}}const i6e=["##! m4warnings=error"];class s6e extends ZTe.AbstractParseTreeVisitor{constructor(e,n,r){super(),this.parseInfo=e,this.msgLog=n,this.compilerFlags=r;for(const i of i6e){const s=t6e.Tag.fromTagline(i,this.compilerFlags);this.compilerFlags=s.tag}}internalError(e,n){return this.contextError(e,"internal-translator-error",{message:n}),new Error(`Internal Translator Error: ${n}`)}astError(e,n,r,i){this.msgLog.log((0,n7.makeLogMessage)(n,r,{at:e.location,...i}))}getLocation(e){return{url:this.parseInfo.sourceURL,range:this.parseInfo.rangeFromContext(e)}}getSourceString(e){return this.parseInfo.sourceStream.getText(new bG.Interval(e.start.startIndex,e.stop?e.stop.stopIndex:e.start.startIndex))}contextError(e,n,r,i){this.msgLog.log((0,n7.makeLogMessage)(n,r,{at:this.getLocation(e),...i}))}warnWithReplacement(e,n,r,i){this.msgLog.log((0,n7.makeLogMessage)(e,n,{at:{url:this.parseInfo.sourceURL,range:r},severity:"warn",replacement:i}))}inExperiment(e,n){const r=this.compilerFlags.tag("experimental");return r&&(r.bare()||r.has(e))?!0:(this.contextError(n,"experiment-not-enabled",{experimentId:e}),!1)}m4Severity(){const e=this.compilerFlags.tag("m4warnings");return e?e.text()==="warn"?"warn":"error":!1}m4advisory(e,n,r){const i=this.m4Severity();i&&this.contextError(e,n,r,{severity:i})}only(e,n,r){const i=[];for(const s of e){const o=n(s);o?i.push(o):s instanceof i7||this.astError(s,"unexpected-statement-in-translation",`Parser enountered unexpected statement type '${s.elementType}' when it needed '${r}'`)}return i}getNumber(e){return Number.parseInt(e.text)}getFieldName(e){return this.astAt(new ee.FieldName((0,Ln.getId)(e)),e.id())}getModelEntryName(e){return this.astAt(new ee.ModelEntryReference((0,Ln.getId)(e)),e.id())}defaultResult(){return new ee.Unimplemented}astAt(e,n){return e.location={url:this.parseInfo.sourceURL,range:this.parseInfo.rangeFromContext(n)},e}getSourceCode(e){const n=e.start.startIndex,r=e.stop||e.start,i=new bG.Interval(n,r.stopIndex);return this.parseInfo.sourceStream.getText(i)}getFilterElement(e){const n=this.getFieldExpr(e),r=new ee.FilterElement(n,this.getSourceCode(e));return this.astAt(r,e)}getFieldDefs(e,n){return e.map(r=>this.getFieldDef(r,n))}getFieldExpr(e){const n=this.visit(e);if(n instanceof ee.ExpressionDef)return this.astAt(n,e);throw this.internalError(e,`expression node unknown type '${n.elementType}'`)}getPlainStringFrom(e){const[n,r]=(0,Ln.getPlainString)(e);for(const i of r)i instanceof SG.ParserRuleContext&&this.contextError(i,"illegal-query-interpolation-outside-sql-block","%{ query } illegal in this string");return n||""}makeSqlString(e,n){for(const r of e.sqlInterpolation())r.CLOSE_CODE()&&this.m4advisory(r,"percent-terminated-query-interpolation","Use %{ ... } instead of %{ ... }%");for(const r of(0,Ln.getStringParts)(e))r instanceof SG.ParserRuleContext?n.push(this.visit(r)):n.push(r);n.complete(),this.astAt(n,e)}parseTime(e,n){let r=n(e.text);return r||(this.contextError(e,"failed-to-parse-time-literal","Time data parse error"),r=new ee.LiteralTimestamp({text:e.text})),this.astAt(r,e)}getNotes(e){return e.ANNOTATION().map(n=>({text:n.text,at:this.getLocation(e)}))}getIsNotes(e){return this.getNotes(e._beforeIs).concat(this.getNotes(e._afterIs))}visitMalloyDocument(e){const n=this.only(e.malloyStatement().map(r=>this.visit(r)),r=>ee.isDocStatementOrDocStatementList(r)&&r,"statement");return new ee.Document(n)}visitDefineSourceStatement(e){const r=e.sourcePropertyList().sourceDefinition().map(o=>this.visitSourceDefinition(o)),i=this.getNotes(e.tags()),s=new ee.DefineSourceList(r);return s.extendNote({blockNotes:i}),s}getSourceParameter(e){const n=e.fieldExpr(),r=n?this.astAt(new n6e.ConstantExpression(this.getFieldExpr(n)),n):void 0,i=e.malloyType(),s=i?this.getMalloyType(i):void 0;return this.astAt(new ee.HasParameter({name:(0,Ln.getId)(e.parameterNameDef()),type:s,default:r}),e)}getSourceParameters(e){return e===void 0?[]:(this.inExperiment("parameters",e),e.sourceParameter().map(n=>this.getSourceParameter(n)))}visitSourceDefinition(e){const n=this.visit(e.sqExplore()),r=this.getSourceParameters(e.sourceParameters()),i=new ee.DefineSource((0,Ln.getId)(e.sourceNameDef()),n instanceof ee.SourceQueryElement?n:void 0,!0,r),s=this.getNotes(e.tags()).concat(this.getIsNotes(e.isDefine()));return i.extendNote({notes:s}),this.astAt(i,e)}getSourceExtensions(e){return this.astAt(this.visitExploreProperties(e),e)}visitExploreProperties(e){const n=this.only(e.exploreStatement().map(i=>this.visit(i)),i=>ee.isSourceProperty(i)&&i,"source property");return new ee.SourceDesc(n)}visitTableFunction(e){const n=this.getPlainStringFrom(e.tableURI()),r=this.astAt(new ee.TableFunctionSource(n),e);return this.m4advisory(e,"table-function","`table('connection_name:table_path')` is deprecated; use `connection_name.table('table_path')`"),r}visitTableMethod(e){const n=e.connectionId(),r=this.astAt(this.getModelEntryName(n),n),i=this.getPlainStringFrom(e.tablePath());return this.astAt(new ee.TableMethodSource(r,i),e)}visitSqlSource(e){const n=e.connectionId(),r=this.astAt(this.getModelEntryName(n),n),i=new ee.SQLString,s=e.sqlString();s&&this.makeSqlString(s,i);const o=e.shortString();o&&i.push((0,Ln.getShortString)(o));const u=new ee.SQLSource(r,i);return this.astAt(u,e)}visitDefJoinMany(e){const n=this.getAccessLabel(e.accessLabel()),r=[];for(const s of e.joinList().joinDef()){const o=this.visit(s);o instanceof ee.Join&&(r.push(o),o instanceof ee.ExpressionJoin?(o.joinType="many",o.joinOn===void 0&&this.contextError(e,"missing-on-in-join-many","join_many: requires ON expression")):o instanceof ee.KeyJoin&&this.contextError(e,"foreign-key-in-join-many","Foreign key join not legal in join_many:"))}const i=new ee.JoinStatement(r,n);return i.extendNote({blockNotes:this.getNotes(e.tags())}),i}visitDefJoinOne(e){const n=this.getAccessLabel(e.accessLabel()),r=this.getJoinList(e.joinList()),i=[];for(const o of r)o instanceof ee.Join&&(i.push(o),o instanceof ee.ExpressionJoin&&(o.joinType="one"));const s=new ee.JoinStatement(i,n);return s.extendNote({blockNotes:this.getNotes(e.tags())}),s}visitDefJoinCross(e){const n=this.getAccessLabel(e.accessLabel()),r=this.getJoinList(e.joinList()),i=[];for(const o of r)o instanceof ee.Join&&(i.push(o),o instanceof ee.ExpressionJoin?o.joinType="cross":o.logError("foreign-key-in-join-cross","Foreign key join not legal in join_cross:"));const s=new ee.JoinStatement(i,n);return s.extendNote({blockNotes:this.getNotes(e.tags())}),s}getJoinList(e){return this.only(e.joinDef().map(n=>this.visit(n)),n=>n instanceof ee.Join&&n,"join")}getJoinFrom(e){const n=e.isExplore(),r=this.getModelEntryName(e.joinNameDef());if(n){const s=this.getSqExpr(n.sqExpr()),o=this.getNotes(n._before_is).concat(this.getNotes(n._after_is));return{joinFrom:s,notes:o,joinAs:r}}const i=e.sourceArguments();return i?{joinFrom:this.astAt(new ee.SQReference(r,this.getSQArguments(i)),e),notes:[],joinAs:r}:{joinAs:r,joinFrom:new ee.SQReference(r),notes:[]}}visitQueryJoinStatement(e){return this.astAt(this.visit(e.joinStatement()),e)}visitJoinOn(e){var n;const{joinAs:r,joinFrom:i,notes:s}=this.getJoinFrom(e.joinFrom()),o=new ee.ExpressionJoin(r,i),u=e.joinExpression(),a=((n=e.matrixOperation())===null||n===void 0?void 0:n.text.toLocaleLowerCase())||"left";return(0,r7.isMatrixOperation)(a)?o.matrixOperation=a:this.contextError(e,"unknown-matrix-operation","Internal Error: Unknown matrixOperation"),u&&(o.joinOn=this.getFieldExpr(u)),o.extendNote({notes:this.getNotes(e).concat(s)}),this.astAt(o,e)}visitJoinWith(e){const{joinAs:n,joinFrom:r,notes:i}=this.getJoinFrom(e.joinFrom()),s=this.getFieldExpr(e.fieldExpr()),o=new ee.KeyJoin(n,r,s);return o.extendNote({notes:this.getNotes(e).concat(i)}),this.astAt(o,e)}getFieldDef(e,n){const r=e.fieldExpr(),i=(0,Ln.getId)(e.fieldNameDef()),s=this.getFieldExpr(r),o=new n(s,i,this.getSourceCode(r)),u=this.getNotes(e.tags()).concat(this.getIsNotes(e.isDefine()));return o.extendNote({notes:u}),this.astAt(o,e)}visitDefDimensions(e){const n=this.getAccessLabel(e.accessLabel()),r=this.getFieldDefs(e.defList().fieldDef(),ee.DimensionFieldDeclaration),i=new ee.Dimensions(r,n);return i.extendNote({blockNotes:this.getNotes(e.tags())}),this.astAt(i,e)}getAccessLabel(e){if(e!==void 0){if(e.INTERNAL_KW())return"internal";if(e.PRIVATE_KW())return"private";if(e.PUBLIC_KW())return"public";throw this.internalError(e,`Unknown access modifier label ${e.text}`)}}getAccessLabelProp(e){if(e!==void 0){if(e.INTERNAL())return"internal";if(e.PRIVATE())return"private";if(e.PUBLIC())return"public";throw this.internalError(e,`Unknown access modifier label ${e.text}`)}}visitDefMeasures(e){const n=this.getAccessLabel(e.accessLabel()),r=this.getFieldDefs(e.defList().fieldDef(),ee.MeasureFieldDeclaration),i=new ee.Measures(r,n);return i.extendNote({blockNotes:this.getNotes(e.tags())}),this.astAt(i,e)}visitQueryExtend(e){const n=[],r=e.queryExtendStatementList().queryExtendStatement().map(s=>this.visit(s));for(const s of r)if(ee.isQueryExtendProperty(s))n.push(s);else throw this.internalError(e,`Query extend matched, but ${s.elementType} found`);const i=new ee.ExtendBlock(n);return this.astAt(i,e)}visitDeclareStatement(e){const n=this.getAccessLabel(e.accessLabel()),r=this.getFieldDefs(e.defList().fieldDef(),ee.DeclareFieldDeclaration),i=new ee.DeclareFields(r,n),s=this.astAt(i,e);return this.m4advisory(e,"declare","`declare:` is deprecated; use `dimension:` or `measure:` inside a source or `extend:` block"),s}visitExploreRenameDef(e){const n=e.fieldName(0),r=e.fieldName(1),i=new ee.RenameField((0,Ln.getId)(n),this.getFieldName(r));return this.astAt(i,e)}visitDefExploreRename(e){const n=this.getAccessLabel(e.accessLabel()),i=e.renameList().exploreRenameDef().map(o=>this.visitExploreRenameDef(o)),s=new ee.Renames(i,n);return this.astAt(s,e)}visitFilterClauseList(e){return new ee.Filter(e.fieldExpr().map(n=>this.getFilterElement(n)))}visitWhereStatement(e){const n=this.visitFilterClauseList(e.filterClauseList());return n.having=!1,this.astAt(n,e)}visitHavingStatement(e){const n=this.visitFilterClauseList(e.filterClauseList());return n.having=!0,this.astAt(n,e)}visitDefExploreQuery(e){const n=this.getAccessLabel(e.accessLabel()),r=e.subQueryDefList().exploreQueryDef().map(o=>this.visitExploreQueryDef(o)),i=new ee.Views(r,n),s=this.getNotes(e.tags());return i.extendNote({blockNotes:s}),e.QUERY()&&this.m4advisory(e,"query-in-source","Use view: inside of a source instead of query:"),i}visitDefExplorePrimaryKey(e){const n=new ee.PrimaryKey(this.getFieldName(e.fieldName()));return this.astAt(n,e)}getFieldNameList(e,n){const r=e.fieldName().map(i=>this.astAt(new n([this.getFieldName(i)]),i));return new ee.FieldReferences(r)}visitDefExploreEditField(e){const n=e.ACCEPT()?"accept":"except";return new ee.FieldListEdit(n,this.getFieldNameList(e.fieldNameList(),ee.AcceptExceptFieldReference))}visitSQInclude(e){const n=this.getSqExpr(e.sqExpr()),r=e.includeBlock(),i=r?this.getIncludeItems(r):void 0,s=new ee.SQExtend(n,new ee.SourceDesc([]),i);return this.astAt(s,e)}visitDefExploreTimezone(e){return this.visitTimezoneStatement(e.timezoneStatement())}visitTimezoneStatement(e){const n=this.getPlainStringFrom(e),r=this.astAt(new ee.TimezoneStatement(n),e.string());return r.isValid||this.astError(r,"invalid-timezone",{timezone:r.tz}),this.astAt(r,e)}visitQueryProperties(e){const n=this.only(e.queryStatement().map(r=>this.astAt(this.visit(r),r)),r=>ee.isQueryProperty(r)&&r,"query statement");return new ee.QOpDesc(n)}getFieldPath(e,n){const r=e.fieldName().map(i=>this.getFieldName(i));return this.astAt(new n(r),e)}getQueryFieldDef(e,n){const r=this.getFieldDef(e,n);return this.astAt(r,e)}getQueryFieldEntry(e,n,r){const i=e.taggedRef();if(i)return this.getTaggedRef(i,n,r);const s=e.fieldDef();if(s)return this.getQueryFieldDef(s,n);throw new Error("Expected query field entry to be a field reference or definition")}getQueryItems(e,n,r){return this.only(e.queryFieldEntry().map(i=>this.getQueryFieldEntry(i,n,r)),i=>i instanceof ee.FieldReference||i instanceof ee.AtomicFieldDeclaration?i:!1,"view field")}visitAggregateStatement(e){const n=new ee.Aggregate(this.getQueryItems(e.queryFieldList(),ee.AggregateFieldDeclaration,ee.AggregateFieldReference));return n.extendNote({blockNotes:this.getNotes(e.tags())}),n}visitGroupByStatement(e){const n=new ee.GroupBy(this.getQueryItems(e.queryFieldList(),ee.GroupByFieldDeclaration,ee.GroupByFieldReference));return n.extendNote({blockNotes:this.getNotes(e.tags())}),n}visitCalculateStatement(e){const n=new ee.Calculate(this.getQueryItems(e.queryFieldList(),ee.CalculateFieldDeclaration,ee.CalculateFieldReference));return n.extendNote({blockNotes:this.getNotes(e.tags())}),n}getTaggedRef(e,n,r){const i=e.refExpr();if(i){const o=this.getFieldPath(e.fieldPath(),ee.ExpressionFieldReference);let u;const a=i.timeframe();a&&(u=new ee.ExprGranularTime(new ee.ExprIdReference(o),this.visitTimeframe(a).text,!0));const l=i.aggregate();if(l){const f=l.text.toLowerCase();if(f==="sum")u=new ee.ExprSum(void 0,o);else return this.contextError(l,"invalid-reference-only-aggregation",`\`${f}\` is not legal in a reference-only aggregation`),o}const c=new n(u,o.outputName);return c.extendNote({notes:this.getNotes(e.tags())}),c}const s=this.getFieldPath(e.fieldPath(),r);return s.extendNote({notes:this.getNotes(e.tags())}),s}getFieldCollectionMember(e,n,r){const i=e.fieldDef();if(i)return this.getFieldDef(i,n);const s=e.taggedRef();if(s)return this.getTaggedRef(s,n,r);const o=e.collectionWildCard();if(o)return this.visitCollectionWildCard(o);throw this.internalError(e,"Unexpected element in fieldCollectionMember")}visitFieldCollection(e){const n=e.collectionMember().map(r=>this.getFieldCollectionMember(r,ee.ProjectFieldDeclaration,ee.ProjectFieldReference));return this.astAt(new ee.ProjectStatement(n),e)}visitProjectStatement(e){e.PROJECT()&&this.m4advisory(e,"project","project: keyword is deprecated, use select:");const n=this.visitFieldCollection(e.fieldCollection());return n.extendNote({blockNotes:this.getNotes(e.tags())}),n}visitCollectionWildCard(e){var n;const r=e.fieldPath(),i=r?this.getFieldPath(r,ee.ProjectFieldReference):void 0,s=this.astAt(new ee.WildcardFieldReference(i),e),o=((n=e.starQualified())===null||n===void 0?void 0:n.fieldNameList())||[];for(const u of o)for(const a of u.fieldName())s.except.add((0,Ln.getId)(a));return s}visitIndexFields(e){const n=e.indexElement().map(r=>{const i=r.fieldPath();if(!i)return this.astAt(new ee.WildcardFieldReference(void 0),e);const s=this.getFieldPath(i,ee.IndexFieldReference);return r.STAR()?this.astAt(new ee.WildcardFieldReference(s),e):this.astAt(s,e)});return new ee.FieldReferences(n)}visitIndexStatement(e){const n=this.visitIndexFields(e.indexFields()),r=new ee.Index(n),i=e.fieldName();return i&&r.useWeight(this.getFieldName(i)),this.astAt(r,e)}visitFieldPropertyLimitStatement(e){return this.inExperiment("aggregate_limit",e),this.visitLimitStatement(e.limitStatement())}visitLimitStatement(e){return new ee.Limit(this.getNumber(e.INTEGER_LITERAL()))}visitAggregateOrderBySpec(e){const n=e.ASC()?"asc":e.DESC()?"desc":void 0,r=e.fieldExpr(),i=r?this.getFieldExpr(r):void 0;return this.astAt(new ee.FunctionOrderBy(i,n),e)}visitAggregateOrderByStatement(e){return this.visitAggregateOrdering(e.aggregateOrdering())}visitAggregateOrdering(e){const n=e.aggregateOrderBySpec().map(r=>this.visitAggregateOrderBySpec(r));return this.astAt(new ee.FunctionOrdering(n),e)}visitOrderBySpec(e){const n=e.ASC()?"asc":e.DESC()?"desc":void 0,r=e.INTEGER_LITERAL();if(r)return new ee.OrderBy(this.getNumber(r),n);const i=e.fieldName();if(i)return new ee.OrderBy(this.getFieldName(i),n);throw this.internalError(e,"can't parse order_by specification")}visitOrdering(e){const n=e.orderBySpec().map(r=>this.visitOrderBySpec(r));return this.astAt(new ee.Ordering(n),e)}visitTopStatement(e){const n=this.getNumber(e.INTEGER_LITERAL());return this.astAt(new ee.Limit(n),e)}visitTopLevelQueryDefs(e){const n=e.topLevelQueryDef().map(s=>this.visitTopLevelQueryDef(s)),r=this.getNotes(e.tags()),i=new ee.DefineQueryList(n);return i.extendNote({blockNotes:r}),i}visitTopLevelQueryDef(e){const n=(0,Ln.getId)(e.queryName()),r=this.visit(e.sqExpr()),i=this.getNotes(e.tags()).concat(this.getIsNotes(e.isDefine()));if(r instanceof ee.SourceQueryElement){const s=new ee.DefineQuery(n,r);return s.extendNote({notes:i}),this.astAt(s,e)}throw this.internalError(e,`Expected query definition, got a '${r.elementType}'`)}visitAnonymousQuery(e){const n=e.topLevelAnonQueryDef(),r=this.getSqExpr(n.sqExpr()),i=this.astAt(new ee.AnonymousQuery(r),n),s=this.getNotes(e.topLevelAnonQueryDef().tags()),o=this.getNotes(e.tags());return i.extendNote({notes:s,blockNotes:o}),this.m4advisory(n,"anonymous-query","Anonymous `query:` statements are deprecated, use `run:` instead"),this.astAt(i,e)}visitRunStatement(e){const n=e.topLevelAnonQueryDef(),r=this.getSqExpr(n.sqExpr()),i=this.astAt(new ee.AnonymousQuery(r),n),s=this.getNotes(e.topLevelAnonQueryDef().tags()),o=this.getNotes(e.tags());return i.extendNote({notes:s,blockNotes:o}),this.astAt(i,e)}visitNestStatement(e){const n=this.visitNestedQueryList(e.nestedQueryList());return n.extendNote({blockNotes:this.getNotes(e.tags())}),n}visitNestedQueryList(e){return new ee.Nests(this.only(e.nestEntry().map(n=>this.visit(n)),n=>n instanceof ee.NestFieldDeclaration&&n,"query"))}visitNestDef(e){const n=e.queryName();let r;const i=this.getVExpr(e.vExpr());if(n)r=(0,Ln.getId)(n);else{const u=i.getImplicitName();u===void 0&&this.contextError(e,"anonymous-nest","`nest:` view requires a name (add `nest_name is ...`)"),r=u??"__unnamed__"}const s=new ee.NestFieldDeclaration(r,i),o=e.isDefine();return s.extendNote({notes:this.getNotes(e.tags()).concat(o?this.getIsNotes(o):[])}),this.astAt(s,e)}visitExploreQueryDef(e){const n=(0,Ln.getId)(e.exploreQueryNameDef()),r=new ee.ViewFieldDeclaration(n,this.getVExpr(e.vExpr())),i=this.getNotes(e).concat(this.getIsNotes(e.isDefine()));return r.extendNote({notes:i}),this.astAt(r,e)}visitExprNot(e){return new ee.ExprNot(this.getFieldExpr(e.fieldExpr()))}visitExprBool(e){return new ee.Boolean(e.TRUE()?"true":"false")}allFieldExpressions(e){return e.map(n=>this.getFieldExpr(n))}visitExprLogicalOr(e){const n=this.getFieldExpr(e.fieldExpr(0)),r=this.getFieldExpr(e.fieldExpr(1));return new ee.ExprLogicalOp(n,"or",r)}visitExprLogicalAnd(e){const n=this.getFieldExpr(e.fieldExpr(0)),r=this.getFieldExpr(e.fieldExpr(1));return new ee.ExprLogicalOp(n,"and",r)}visitExprOrTree(e){const n=this.getFieldExpr(e.fieldExpr()),r=this.getFieldExpr(e.partialAllowedFieldExpr());return this.astAt(new ee.ExprAlternationTree(n,"|",r),e)}visitExprAndTree(e){const n=this.getFieldExpr(e.fieldExpr()),r=this.getFieldExpr(e.partialAllowedFieldExpr());return this.astAt(new ee.ExprAlternationTree(n,"&",r),e)}visitExprCoalesce(e){const n=this.getFieldExpr(e.fieldExpr()[0]),r=this.getFieldExpr(e.fieldExpr()[1]);return this.astAt(new ee.ExprCoalesce(n,r),e)}visitPartialCompare(e){const n=e.compareOp().text;if(ee.isComparison(n))return this.astAt(new ee.PartialCompare(n,this.getFieldExpr(e.fieldExpr())),e);throw this.internalError(e,`partial comparison '${n}' not recognized`)}visitPartialTest(e){const n=e.partialCompare();return n?this.visitPartialCompare(n):this.astAt(new ee.PartialIsNull(e.NOT()?"!=":"="),e)}visitPartialAllowedFieldExpr(e){const n=e.fieldExpr();if(n)return this.getFieldExpr(n);const r=e.partialTest();if(r)return this.visitPartialTest(r);throw this.internalError(e,"impossible partial")}visitExprString(e){const n=this.getPlainStringFrom(e);return new ee.ExprString(n)}visitExprRegex(e){const n=e.HACKY_REGEX().text;return new ee.ExprRegEx(n.slice(2,-1))}visitExprNow(e){return new ee.ExprNow}visitExprNumber(e){return new ee.ExprNumber(e.text)}visitExprFieldPath(e){const n=new ee.ExprIdReference(this.getFieldPath(e.fieldPath(),ee.ExpressionFieldReference));return this.astAt(n,e)}visitExprNULL(e){return new ee.ExprNULL}visitExprExpr(e){return new ee.ExprParens(this.getFieldExpr(e.fieldExpr()))}visitExprMinus(e){return new ee.ExprMinus(this.getFieldExpr(e.fieldExpr()))}visitExprAddSub(e){const n=this.getFieldExpr(e.fieldExpr(0)),r=this.getFieldExpr(e.fieldExpr(1)),i=e.PLUS()?"+":"-";return new ee.ExprAddSub(n,i,r)}visitExprMulDiv(e){const n=e.STAR()?"*":e.SLASH()?"/":"%";return new ee.ExprMulDiv(this.getFieldExpr(e.fieldExpr(0)),n,this.getFieldExpr(e.fieldExpr(1)))}visitExprCompare(e){const n=e.compareOp().text,r=this.getFieldExpr(e.fieldExpr(0)),i=this.getFieldExpr(e.fieldExpr(1));if(ee.isEquality(n)){const s=this.parseInfo.rangeFromContext(e);return i instanceof ee.ExprNULL&&(n==="="?this.warnWithReplacement("sql-is-null","Use 'is null' to check for NULL instead of '= null'",s,`${this.getSourceCode(e.fieldExpr(0))} is null`):n==="!="&&this.warnWithReplacement("sql-is-not-null","Use 'is not null' to check for NULL instead of '!= null'",s,`${this.getSourceCode(e.fieldExpr(0))} is not null`)),this.astAt(new ee.ExprEquality(r,n,i),e)}else if(ee.isComparison(n))return this.astAt(new ee.ExprCompare(r,n,i),e);throw this.internalError(e,`untranslatable comparison operator '${n}'`)}visitExprUngroup(e){const n=e.fieldName().map(i=>this.getFieldName(i)),r=e.ungroup().text.toLowerCase();return this.astAt(new ee.ExprUngroup(r==="all"?r:"exclude",this.getFieldExpr(e.fieldExpr()),n),e)}symmetricAggregateUsageError(e){return`Symmetric aggregate function \`${e}\` must be written as \`${e}(expression)\` or \`path.to.field.${e}()\``}asymmetricAggregateUsageError(e){return`Asymmetric aggregate function \`${e}\` must be written as \`path.to.field.${e}()\`, \`path.to.join.${e}(expression)\`, or \`${e}(expression)\``}visitExprAggregate(e){const n=e.fieldPath(),r=this.getFieldPath(n,ee.ExpressionFieldReference),i=n&&r?this.astAt(r,n):void 0,s=e.aggregate().text.toLowerCase(),o=e.fieldExpr();if(e.aggregate().COUNT())return o&&this.contextError(o,"count-expression-with-locality","Expression illegal inside path.count()"),new ee.ExprCount(i);const u=o?this.getFieldExpr(o):void 0;if(s==="min"||s==="max")if(u)this.contextError(e,"invalid-symmetric-aggregate",this.symmetricAggregateUsageError(s));else{const a=this.astAt(new ee.ExprIdReference(r),n);return s==="min"?new ee.ExprMin(a):new ee.ExprMax(a)}else{if(s==="avg")return new ee.ExprAvg(u,i);if(s==="sum")return new ee.ExprSum(u,i);this.contextError(e,"aggregate-parse-error",`Cannot parse aggregate function ${s}`)}return new ee.ExprNULL}visitExprPathlessAggregate(e){const n=e.fieldExpr(),r=n?this.getFieldExpr(n):void 0,i=void 0,s=e.aggregate().text.toLowerCase();if(e.STAR()&&this.m4advisory(e,"wildcard-in-aggregate",`* illegal inside ${s}()`),s==="count")return this.astAt(r?new ee.ExprCountDistinct(r):new ee.ExprCount,e);if(s==="min"){if(r)return new ee.ExprMin(r);this.contextError(e,"invalid-symmetric-aggregate",this.symmetricAggregateUsageError(s))}else if(s==="max"){if(r)return new ee.ExprMax(r);this.contextError(e,"invalid-symmetric-aggregate",this.symmetricAggregateUsageError(s))}else{if(r===void 0)return this.contextError(e,"invalid-asymmetric-aggregate",this.asymmetricAggregateUsageError(s)),new ee.ExprNULL;const o=e.SOURCE_KW()!==void 0;if(s==="avg")return new ee.ExprAvg(r,i,o);if(s==="sum")return new ee.ExprSum(r,i,o)}return new ee.ExprNULL}visitExprApply(e){return new ee.Apply(this.getFieldExpr(e.fieldExpr()),this.getFieldExpr(e.partialAllowedFieldExpr()))}visitExprRange(e){return new ee.Range(this.getFieldExpr(e.fieldExpr(0)),this.getFieldExpr(e.fieldExpr(1)))}visitExprCast(e){const n=this.getMalloyOrSQLType(e.malloyOrSQLType());return new ee.ExprCast(this.getFieldExpr(e.fieldExpr()),n)}getMalloyType(e){const n=e.text;if((0,r7.isCastType)(n))return n;throw this.internalError(e,`unknown type '${n}'`)}getMalloyOrSQLType(e){const n=e.malloyType();if(n)return this.getMalloyType(n);const r=e.string();if(r)return{raw:this.getPlainStringFrom({string:()=>r})};throw this.internalError(e,"Expected Malloy or SQL type to either be a Malloy type or a string")}visitExprSafeCast(e){const n=this.getMalloyOrSQLType(e.malloyOrSQLType());return new ee.ExprCast(this.getFieldExpr(e.fieldExpr()),n,!0)}visitExprTimeTrunc(e){return new ee.ExprGranularTime(this.getFieldExpr(e.fieldExpr()),this.visitTimeframe(e.timeframe()).text,!0)}visitTimeframe(e){return new ee.Timeframe(e.text)}visitExprForRange(e){const n=this.getFieldExpr(e._startAt),r=this.getFieldExpr(e._duration),i=this.visitTimeframe(e.timeframe());return new ee.ForRange(n,r,i)}visitExprAggFunc(e){const n=e.argumentList(),r=n?this.allFieldExpressions(n.fieldExpr()):[],i=(0,Ln.getId)(e),s=e.fieldPath(),o=s?this.getFieldPath(s,ee.ExpressionFieldReference):void 0,u=s&&o?this.astAt(o,s):void 0;return ee.ExprTimeExtract.extractor(i)?this.astAt(new ee.ExprTimeExtract(i,r),e):this.astAt(new ee.ExprFunc(i,r,!1,void 0,u),e)}visitExprFunc(e){var n,r;const i=e.argumentList(),s=i?this.allFieldExpressions(i.fieldExpr()):[],o=e.EXCLAM()!==void 0,u=(n=e.malloyType())===null||n===void 0?void 0:n.text;let a;u&&((0,r7.isCastType)(u)?a=u:(this.contextError(e,"unexpected-malloy-type",`'#' assertion for unknown type '${u}'`),a=void 0));let l=(0,Ln.getOptionalId)(e)||((r=e.timeframe())===null||r===void 0?void 0:r.text);return l===void 0&&(this.contextError(e,"failed-to-parse-function-name","Function name error"),l="FUNCTION_NAME_ERROR"),ee.ExprTimeExtract.extractor(l)?this.astAt(new ee.ExprTimeExtract(l,s),e):this.astAt(new ee.ExprFunc(l,s,o,a),e)}visitExprDuration(e){return new ee.ExprDuration(this.getFieldExpr(e.fieldExpr()),this.visitTimeframe(e.timeframe()).text)}visitCaseStatement(e){const n=e._valueExpr,r=n?this.getFieldExpr(n):void 0,i=e.caseWhen(),s=i.map(a=>new ee.CaseWhen(this.getFieldExpr(a._condition),this.getFieldExpr(a._result))),o=e._caseElse,u=o?this.getFieldExpr(o):void 0;return this.warnWithReplacement("sql-case","Use a `pick` statement instead of `case`",this.parseInfo.rangeFromContext(e),`${[...n?[`${this.getSourceCode(n)} ?`]:[],...i.map(a=>`pick ${this.getSourceCode(a._result)} when ${this.getSourceCode(a._condition)}`),o?`else ${o.text}`:"else null"].join(" ")}`),new ee.Case(r,s,u)}visitPickStatement(e){const n=e.pick().map(r=>{let i;return r._pickValue&&(i=this.getFieldExpr(r._pickValue)),new ee.PickWhen(i,this.getFieldExpr(r._pickWhen))});return e.ELSE()?new ee.Pick(n,this.getFieldExpr(e._pickElse)):new ee.Pick(n)}visitExprFieldProps(e){const n=this.only(e.fieldProperties().fieldPropertyStatement().map(r=>this.visit(r)),r=>ee.isFieldPropStatement(r)&&r,"field property statement");return new ee.ExprProps(this.getFieldExpr(e.fieldExpr()),n)}visitPartitionByStatement(e){return this.astAt(new ee.PartitionBy(e.id().map(n=>this.astAt(new ee.PartitionByFieldReference([this.astAt(new ee.FieldName((0,Ln.idToStr)(n)),n)]),n))),e)}visitLiteralTimestamp(e){return this.parseTime(e,ee.LiteralTimestamp.parse)}visitLiteralHour(e){return this.parseTime(e,ee.LiteralHour.parse)}visitLiteralDay(e){return this.parseTime(e,ee.LiteralDay.parse)}visitLiteralWeek(e){return this.parseTime(e,ee.LiteralWeek.parse)}visitLiteralMonth(e){return this.parseTime(e,ee.LiteralMonth.parse)}visitLiteralQuarter(e){return this.parseTime(e,ee.LiteralQuarter.parse)}visitLiteralYear(e){return this.parseTime(e,ee.LiteralYear.parse)}visitImportStatement(e){const n=this.getPlainStringFrom(e.importURL()),r=this.astAt(new ee.ImportStatement(n,this.parseInfo.importBaseURL),e),i=e.importSelect();if(i)for(const s of i.importItem()){const o=s.id(),u=o[1]?this.astAt(new ee.ImportSourceName((0,Ln.idToStr)(o[1])),o[1]):void 0;r.push(this.astAt(new ee.ImportSelect((0,Ln.idToStr)(o[0]),u),o[0]))}return r}visitDebugExpr(e){return this.getFieldExpr(e.fieldExpr())}visitSampleStatement(e){const n=e.sampleSpec().INTEGER_LITERAL();if(n)return new ee.SampleProperty({rows:this.getNumber(n)});const r=e.sampleSpec().PERCENT_LITERAL();if(r)return new ee.SampleProperty({percent:this.getNumber(r)});const i=e.sampleSpec().TRUE()!==void 0;return new ee.SampleProperty({enable:i})}visitDocAnnotations(e){const n=e.DOC_ANNOTATION().map(i=>({text:i.text,at:this.getLocation(e)})),r=new ee.ModelAnnotation(n);return this.compilerFlags=r.getCompilerFlags(this.compilerFlags,this.msgLog),r}visitIgnoredObjectAnnotations(e){return this.contextError(e,"orphaned-object-annotation","Object annotation not connected to any object"),new i7(e.text)}visitIgnoredModelAnnotations(e){return this.contextError(e,"misplaced-model-annotation","Model annotations not allowed at this scope"),new i7(e.text)}visitDefExploreAnnotation(e){const n=this.getNotes(e);return new ee.ObjectAnnotation(n)}getSQArgument(e){const n=e.argumentId(),r=n?this.astAt(new ee.PartitionByFieldReference([this.astAt(new ee.FieldName((0,Ln.idToStr)(n.id())),n)]),n):void 0;return this.astAt(new ee.Argument({id:r,value:this.getFieldExpr(e.fieldExpr())}),e)}getSQArguments(e){if(e!==void 0)return this.inExperiment("parameters",e),e.sourceArgument().map(n=>this.getSQArgument(n))}visitSQID(e){const n=this.getModelEntryName(e),r=this.getSQArguments(e.sourceArguments());return this.astAt(new ee.SQReference(n,r),e.id())}getSqExpr(e){const n=this.visit(e);return n instanceof ee.SourceQueryElement?n:(this.contextError(e,"unexpected-non-source-query-expression-node",`Expected a source/query expression, not '${n.elementType}'`),new TG)}visitSQExtendedSource(e){const n=this.getSqExpr(e.sqExpr()),r=e.includeBlock(),i=r?this.getIncludeItems(r):void 0,s=new ee.SQExtend(n,this.getSourceExtensions(e.exploreProperties()),i);return this.astAt(s,e)}getIncludeItems(e){return this.inExperiment("access_modifiers",e),e.includeItem().map(n=>this.getIncludeItem(n)).filter(r6e.isNotUndefined)}getIncludeItem(e){var n;const r=e.tags(),i=r?this.getNotes(r):[],s=e.includeExceptList();if(s){r&&i.length>0&&this.contextError(r,"cannot-tag-include-except","Tags on `except:` are ignored",{severity:"warn"});const o=this.getExcludeList(s);return this.astAt(new ee.IncludeExceptItem(o),e)}else{const o=e.includeList();if(o===void 0){this.contextError((n=e.orphanedAnnotation())!==null&&n!==void 0?n:e,"orphaned-object-annotation","This tag is not attached to anything",{severity:"warn"});return}const u=this.getAccessLabelProp(e.accessLabelProp()),a=this.getIncludeList(o),l=this.astAt(new ee.IncludeAccessItem(u,a),e);return l.extendNote({blockNotes:i}),l}}getIncludeList(e){const n=e.includeField();if(n===void 0)throw this.internalError(e,"Expected a field name list");return n.map(r=>this.getIncludeListItem(r))}getExcludeList(e){return e.includeExceptListItem().map(n=>{n.tags().ANNOTATION().length>0&&this.contextError(n.tags(),"cannot-tag-include-except","Tags on `except:` are ignored",{severity:"warn"});const r=n.fieldName();if(r)return this.astAt(new ee.AccessModifierFieldReference([this.astAt(new ee.FieldName(n.text),n)]),r);const i=n.collectionWildCard();if(i)return this.astAt(this.visitCollectionWildCard(i),i);throw this.internalError(n,"Expected a field name or wildcard")})}getIncludeListItem(e){const n=e.collectionWildCard(),r=n?this.visitCollectionWildCard(n):void 0,i=e._as?e._as.text:void 0,s=e.tags(),o=s?this.getNotes(s):[],u=e.isDefine(),a=u?this.getIsNotes(u):[],l=[...o,...a],c=e._name?this.astAt(new ee.AccessModifierFieldReference([this.astAt(this.getFieldName(e._name),e._name)]),e._name):void 0,f=c??r;if(f===void 0)throw this.internalError(e,"Expected a field name or wildcard");const d=this.astAt(new ee.IncludeListItem(f,i),e);return d.extendNote({notes:l}),d}visitSQParens(e){const n=this.getSqExpr(e.sqExpr());return this.astAt(n,e)}visitSQCompose(e){const n=e.sqExpr().map(r=>this.getSqExpr(r));return this.inExperiment("composite_sources",e),this.astAt(new ee.SQCompose(n),e)}visitSQArrow(e){const n=this.getSqExpr(e.sqExpr()),r=e.segExpr(),i=new ee.SQArrow(n,this.getVExpr(r));return this.astAt(i,e)}getVExpr(e){const n=this.visit(e);if(n instanceof ee.View)return n;throw this.internalError(e,`Expected view, got a '${n.elementType}'`)}visitSegField(e){return new ee.ReferenceView(this.getFieldPath(e.fieldPath(),ee.ViewOrScalarFieldReference))}visitSegOps(e){return new ee.QOpDescView(this.visitQueryProperties(e.queryProperties()))}visitSegParen(e){return this.visit(e.vExpr())}visitVSeg(e){return this.visit(e.segExpr())}visitSegRefine(e){return new ee.ViewRefine(this.getVExpr(e._lhs),this.getVExpr(e._rhs))}visitVArrow(e){return new ee.ViewArrow(this.getVExpr(e._lhs),this.getVExpr(e._rhs))}visitSQRefinedQuery(e){const n=this.getSqExpr(e.sqExpr()),r=e.segExpr(),i=new ee.SQRefine(n,this.getVExpr(r));return this.astAt(i,e)}visitSQTable(e){const n=this.visit(e.exploreTable());if(n instanceof e6e.TableSource){const r=new ee.SQSource(n);return this.astAt(r,e)}return new TG}visitSQSQL(e){const n=new ee.SQSource(this.visitSqlSource(e.sqlSource()));return this.astAt(n,e)}visitExperimentalStatementForTesting(e){return this.inExperiment("compilerTestExperimentParse",e),this.astAt(new ee.ExperimentalExperiment("compilerTestExperimentTranslate"),e)}visitRecordRef(e){const n=new ee.ExprIdReference(this.getFieldPath(e.fieldPath(),ee.ExpressionFieldReference));return this.astAt(new ee.RecordElement({path:n}),e)}visitRecordExpr(e){const n=this.getFieldExpr(e.fieldExpr()),r=e.recordKey(),i=r?{key:(0,Ln.getId)(r),value:n}:{value:n};return this.astAt(new ee.RecordElement(i),e)}visitExprLiteralRecord(e){const n=this.only(e.recordElement().map(r=>this.astAt(this.visit(r),r)),r=>r instanceof ee.RecordElement&&r,"a legal record property description");return new ee.RecordLiteral(n)}visitExprArrayLiteral(e){const n=e.fieldExpr().map(i=>this.getFieldExpr(i)),r=new ee.ArrayLiteral(n);return this.astAt(r,e)}visitExprWarnLike(e){let n="~";const r=e.fieldExpr(0),i=e.fieldExpr(1),s=this.parseInfo.rangeFromContext(e);return e.NOT()?(n="!~",this.warnWithReplacement("sql-not-like","Use Malloy operator '!~' instead of 'NOT LIKE'",s,`${this.getSourceCode(r)} !~ ${this.getSourceCode(i)}`)):this.warnWithReplacement("sql-like","Use Malloy operator '~' instead of 'LIKE'",s,`${this.getSourceCode(r)} ~ ${this.getSourceCode(i)}`),this.astAt(new ee.ExprCompare(this.getFieldExpr(r),n,this.getFieldExpr(i)),e)}visitExprNullCheck(e){const n=e.fieldExpr();return this.astAt(new ee.ExprIsNull(this.getFieldExpr(n),e.NOT()?"!=":"="),e)}visitExprWarnIn(e){const n=this.getFieldExpr(e.fieldExpr()),r=!!e.NOT(),i=e.fieldExprList().fieldExpr(),s=this.astAt(new ee.ExprLegacyIn(n,r,i.map(o=>this.getFieldExpr(o))),e);return this.warnWithReplacement("sql-in",`Use = (a|b|c) instead of${r?" NOT":""} IN (a,b,c)`,this.parseInfo.rangeFromContext(e),`${this.getSourceCode(e.fieldExpr())} ${r?"!=":"="} (${i.map(o=>this.getSourceCode(o)).join(" | ")})`),s}}I_.MalloyToAST=s6e;var B_={};Object.defineProperty(B_,"__esModule",{value:!0}),B_.Zone=void 0;class o6e{constructor(){this.location={},this.zone=new Map}get(e){const n=this.zone.get(e);if((n==null?void 0:n.status)==="present")return n.value}getEntry(e){const n=this.zone.get(e);return n?n.firstReference||!this.location[e]?n:{...n,firstReference:this.location[e]}:{status:"error",message:"import reference failure"}}define(e,n){this.zone.set(e,{status:"present",value:n})}reference(e,n){const r=this.zone.get(e);(r==null?void 0:r.status)===void 0&&(this.zone.set(e,{status:"reference",firstReference:n}),this.location[e]=n)}getUndefined(){const e=[];for(const[n,r]of this.zone)r.status==="reference"&&e.push(n);return e.length>0?e:void 0}updateFrom(e,n){if(e)for(const[r,i]of Object.entries(e))i!==void 0&&this.define(r,i);if(n)for(const[r,i]of Object.entries(n))this.zone.set(r,{status:"error",message:i})}}B_.Zone=o6e;var $_={};Object.defineProperty($_,"__esModule",{value:!0}),$_.walkForDocumentSymbols=void 0;const u6e=Cl,a6e=un;class l6e{constructor(e,n,r,i){this.translator=e,this.tokens=n,this.scopes=r,this.symbols=i}popScope(){return this.scopes.pop()}peekScope(){return this.scopes[this.scopes.length-1]}enterTopLevelQueryDefs(e){const n=this.translator.rangeFromContext(e);e.topLevelQueryDef().length===1&&(this.blockRange=n)}enterTopLevelQueryDef(e){this.symbols.push({range:this.translator.rangeFromContext(e),name:e.queryName().text,type:"query",children:[],lensRange:this.blockRange}),this.blockRange=void 0}enterRunStatement(e){this.symbols.push({range:this.translator.rangeFromContext(e.topLevelAnonQueryDef()),name:"unnamed_query",type:"unnamed_query",children:[],lensRange:this.translator.rangeFromContext(e)})}enterAnonymousQuery(e){this.symbols.push({range:this.translator.rangeFromContext(e.topLevelAnonQueryDef().sqExpr()),name:"unnamed_query",type:"unnamed_query",children:[],lensRange:this.translator.rangeFromContext(e)})}enterDefineSourceStatement(e){const n=this.translator.rangeFromContext(e);e.sourcePropertyList().sourceDefinition().length===1&&(this.blockRange=n)}enterSourceDefinition(e){const n=this.translator.rangeFromContext(e);this.scopes.push({range:n,name:e.sourceNameDef().id().text,type:"explore",children:[],lensRange:this.blockRange}),this.blockRange=void 0}exitSourceDefinition(e){const n=this.popScope();n&&this.symbols.push(n)}enterDefExploreQuery(e){const n=this.translator.rangeFromContext(e);e.subQueryDefList().exploreQueryDef().length===1&&(this.blockRange=n)}enterExploreQueryDef(e){const n={range:this.translator.rangeFromContext(e),name:e.exploreQueryNameDef().id().text,type:"query",children:[],lensRange:this.blockRange},r=this.peekScope();r&&r.children.push(n),this.scopes.push(n),this.blockRange=void 0}exitExploreQueryDef(e){this.popScope()}getNestDefName(e){const n=e.queryName();if(n)return n.id().text;let r,i=!1;const s={enterVArrow(u){u.vExpr().enterRule(s)},enterVSeg(u){u.segExpr().enterRule(o)}},o={enterSegField(u){const a=u.fieldPath().fieldName();i||(r??(r=a[a.length-1].id().text))},enterSegParen(u){u.vExpr().enterRule(s)},enterSegRefine(u){u._lhs.enterRule(o)},enterSegOps(){r=void 0,i=!0}};return e.vExpr().enterRule(s),r}handleNestEntry(e){const n=this.getNestDefName(e);if(n===void 0)return;const r={range:this.translator.rangeFromContext(e),name:n,type:"query",children:[]},i=this.peekScope();return i&&i.children.push(r),r}enterNestDef(e){const n=this.handleNestEntry(e);n&&this.scopes.push(n)}exitNestDef(e){this.popScope()}enterFieldDef(e){const n={range:this.translator.rangeFromContext(e),name:e.fieldNameDef().id().text,type:"field",children:[]},r=this.peekScope();r&&r.children.push(n)}enterQueryFieldEntry(e){var n;const r=(n=e.taggedRef())===null||n===void 0?void 0:n.fieldPath();if(r===void 0)return;const i={range:this.translator.rangeFromContext(e),name:r.text,type:"field",children:[]},s=this.peekScope();s&&s.children.push(i)}enterExploreRenameDef(e){const n={range:this.translator.rangeFromContext(e),name:e.fieldName()[0].text,type:"field",children:[]},r=this.peekScope();r&&r.children.push(n)}enterJoinWith(e){this.handleJoinDef(e)}enterJoinOn(e){this.handleJoinDef(e)}handleJoinDef(e){const n={range:this.translator.rangeFromContext(e),name:e.joinFrom().joinNameDef().id().text,type:"join",children:[]},r=this.peekScope();r&&r.children.push(n)}enterImportStatement(e){const n=(0,a6e.getStringIfShort)(e.importURL());n&&this.scopes.push({range:this.translator.rangeFromContext(e),name:n,type:"import",children:[]})}exitImportStatement(){const e=this.popScope();e&&this.symbols.push(e)}enterImportSelect(e){const n=this.peekScope();if(n)for(const r of e.importItem()){const i={range:this.translator.rangeFromContext(e),name:r.text,type:"import_item",children:[]};n.children.push(i)}}}function c6e(t,e,n){const r=new l6e(t,e,[],[]),i=r;return u6e.ParseTreeWalker.DEFAULT.walk(i,n),r.symbols}$_.walkForDocumentSymbols=c6e;var k_={};Object.defineProperty(k_,"__esModule",{value:!0}),k_.walkForDocumentCompletions=void 0;const f6e=Cl,x6e=["dimension","measure","join_one","join_many","join_cross","where","primary_key","rename","accept","except","query","declare"],d6e=["group_by","project","index","aggregate","top","limit","order_by","where","having","nest","declare"],h6e=["source","explore","query","sql"];class p6e{constructor(e,n,r){this.tokens=e,this.completions=n,this.position=r}rangeOf(e){const n=e.stop||e.start;return{start:{line:e.start.line-1,character:e.start.charPositionInLine},end:{line:n.line-1,character:n.stopIndex-(n.startIndex-n.charPositionInLine)+1}}}inRange(e){const{start:n,end:r}=e,i=this.position.line>n.line||this.position.line===n.line&&this.position.character>=n.character,s=this.position.line<r.line||this.position.line===r.line&&this.position.character<=r.character;return i&&s}enterExploreProperties(e){if(this.inRange(this.rangeOf(e))){let n=!1;for(const r of e.exploreStatement())this.inRange(this.rangeOf(r))&&(n=!0);if(!n)for(const r of x6e)this.completions.push({type:"explore_property",text:`${r}: `})}}enterQueryProperties(e){if(this.inRange(this.rangeOf(e))){let n=!1;for(const r of e.queryStatement())this.inRange(this.rangeOf(r))&&(n=!0);if(!n)for(const r of d6e)this.completions.push({type:"query_property",text:`${r}: `})}}enterMalloyDocument(e){if(this.inRange(this.rangeOf(e))){let n=!1;for(const r of e.malloyStatement())this.inRange(this.rangeOf(r))&&(n=!0);if(!n)for(const r of h6e)this.completions.push({type:"model_property",text:`${r}: `})}}}function m6e(t,e,n){const r=new p6e(t,[],n),i=r;return f6e.ParseTreeWalker.DEFAULT.walk(i,e),r.completions}k_.walkForDocumentCompletions=m6e;var P_={};Object.defineProperty(P_,"__esModule",{value:!0}),P_.walkForDocumentHelpContext=void 0;const g6e=UT;class y6e extends g6e.AbstractParseTreeVisitor{constructor(e){super(),this.position=e,this.type=""}rangeOf(e){const n=e.stop||e.start;return{start:{line:e.start.line-1,character:e.start.charPositionInLine},end:{line:n.line-1,character:n.stopIndex-(n.startIndex-n.charPositionInLine)+1}}}inRange(e){return e.start.line<=this.position.line&&e.end.line>=this.position.line&&(this.position.line!==e.start.line||this.position.character>=e.start.character)&&(this.position.line!==e.end.line||this.position.character<=e.end.character)}defaultResult(){}visitChildren(e){let n=this.defaultResult();if(this.inRange(this.rangeOf(e))){n={type:this.type,token:e.start.text};const r=e.childCount;for(let i=0;i<r;i++){const o=e.getChild(i).accept(this);o&&(n=this.aggregateResult(n,o))}}return n}visitMalloyDocument(e){return this.inRange(this.rangeOf(e))?(this.type="model_property",this.visitChildren(e)):this.defaultResult()}visitExploreProperties(e){return this.inRange(this.rangeOf(e))?(this.type="explore_property",this.visitChildren(e)):this.defaultResult()}visitQueryProperties(e){return this.inRange(this.rangeOf(e))?(this.type="query_property",this.visitChildren(e)):this.defaultResult()}aggregateResult(e,n){return n}}function E6e(t,e){return new y6e(e).visit(t)}P_.walkForDocumentHelpContext=E6e;var M_={};Object.defineProperty(M_,"__esModule",{value:!0}),M_.ReferenceList=void 0;const A6e=lu;class v6e{constructor(e){this.sourceURL=e,this.references=[]}findIndexBefore(e){let n=0,r=this.references.length;for(;n<r;){const i=Math.floor((n+r)/2),s=this.references[i].location.range.end;s.line<e.line||s.line===e.line&&s.character<e.character?n=i+1:r=i}return n}add(e){if(e.location.url!==this.sourceURL)return;const n=this.findIndexBefore(e.location.range.end);n<this.references.length&&this.isPositionEqual(e,this.references[n])||this.references.splice(n,0,e)}isPositionEqual(e,n){const r=e.location.range,i=n.location.range;return r.start.line===i.start.line&&r.start.character===i.start.character&&r.end.line===i.end.line&&r.end.character===i.end.character}find(e){const n=this.findIndexBefore(e);if(n===this.references.length)return;const r=this.references[n];if((0,A6e.locationContainsPosition)(r.location,e))return r}}M_.ReferenceList=v6e;var U_={};Object.defineProperty(U_,"__esModule",{value:!0}),U_.isNeedResponse=void 0;function _6e(t){return!!t&&(t.tables||t.urls||t.compileSQL)!==void 0}U_.isNeedResponse=_6e;var j_={};Object.defineProperty(j_,"__esModule",{value:!0}),j_.walkForModelAnnotation=void 0;const C6e=Cl;class S6e{constructor(e,n,r){this.translator=e,this.tokens=n,this.parseInfo=r,this.notes=[]}getLocation(e){return{url:this.parseInfo.sourceURL,range:this.parseInfo.rangeFromContext(e)}}enterDocAnnotations(e){const n=e.DOC_ANNOTATION().map(r=>({text:r.text,at:this.getLocation(e)}));this.notes.push(...n)}get annotation(){return{notes:this.notes}}}function b6e(t,e,n){const r=new S6e(t,e,n),i=r;return C6e.ParseTreeWalker.DEFAULT.walk(i,n.root),r.annotation}j_.walkForModelAnnotation=b6e;var q_={};Object.defineProperty(q_,"__esModule",{value:!0}),q_.walkForTablePath=void 0;const RG=un,T6e=Cl;class R6e{constructor(e,n){this.translator=e,this.tokens=n,this.pathInfos=[]}enterTableMethod(e){const n=(0,RG.getId)(e.connectionId()),[r,i]=(0,RG.getPlainString)(e.tablePath(),!0);r!==void 0&&this.pathInfos.push({connectionId:n,tablePath:r,range:this.translator.rangeFromContext(e)})}}function O6e(t,e,n){const r=new R6e(t,e),i=r;return T6e.ParseTreeWalker.DEFAULT.walk(i,n.root),r.pathInfos}q_.walkForTablePath=O6e;var H_={},vm={};Object.defineProperty(vm,"__esModule",{value:!0}),vm.checkCustomErrorMessage=void 0;const D6e=(t,e,n)=>{const r=t.getRuleInvocationStack()[0],i=t.currentToken;for(const s of n){const o=!s.currentToken||i.type===s.currentToken,u=!s.offendingSymbol||(e==null?void 0:e.type)===s.offendingSymbol,a=!s.ruleContextOptions||s.ruleContextOptions.includes(r);if(o&&u&&a){if(s.precedingTokenOptions&&!s.precedingTokenOptions.some(f=>OG(t,f,"lookback",s.lookbackFromOffendingSymbol?e==null?void 0:e.tokenIndex:void 0))||s.lookAheadOptions&&!s.lookAheadOptions.some(f=>OG(t,f,"lookahead",s.lookbackFromOffendingSymbol?e==null?void 0:e.tokenIndex:void 0)))continue;return s.errorMessage.replace("${currentToken}",(e==null?void 0:e.text)||i.text||"")}}return""};vm.checkCustomErrorMessage=D6e;const OG=(t,e,n,r)=>{try{for(let i=0;i<e.length;i++){let s;if(typeof r=="number"){const o=n==="lookahead"?i+1:-1*(i+1);s=t.inputStream.get(r+o).type}else{const o=n==="lookahead"?i+2:-1*(i+1);s=t.inputStream.LA(o)}if(e[i]>=-1&&s!==e[i]||e[i]<-1&&s===-1*e[i])return!1}return!0}catch{return!1}};Object.defineProperty(H_,"__esModule",{value:!0}),H_.MalloyErrorStrategy=void 0;const N6e=m1,DG=D,w6e=vm,F6e=[{errorMessage:"Missing '{' after 'extend'",currentToken:DG.MalloyParser.EXTEND,ruleContextOptions:["sqExpr"],lookAheadOptions:[[-DG.MalloyParser.OCURLY]]}];class L6e extends N6e.DefaultErrorStrategy{sync(e){const n=(0,w6e.checkCustomErrorMessage)(e,void 0,F6e);if(n){e.notifyErrorListeners(n,e.currentToken,void 0);return}super.sync(e)}}H_.MalloyErrorStrategy=L6e;var NG={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.MalloyParserErrorListener=t.commonErrorCases=void 0;const e=D,n=vm,r=w1;t.commonErrorCases=[{errorMessage:"'view:' must be followed by '<identifier> is {'",ruleContextOptions:["exploreQueryDef"],offendingSymbol:e.MalloyParser.OCURLY,precedingTokenOptions:[[e.MalloyParser.VIEW],[e.MalloyParser.COLON]]},{errorMessage:"Missing '}' at '${currentToken}'",ruleContextOptions:["vExpr"],offendingSymbol:e.MalloyParser.VIEW,currentToken:e.MalloyParser.OCURLY},{errorMessage:"Missing '}' at '${currentToken}'",ruleContextOptions:["exploreProperties","queryProperties","exploreStatement"],lookAheadOptions:[[e.MalloyParser.EOF],[e.MalloyParser.RUN],[e.MalloyParser.SOURCE]]},{errorMessage:"'aggregate:' entries must include a name (ex: `some_name is count()`)",precedingTokenOptions:[[e.MalloyParser.AGGREGATE]],lookAheadOptions:[[-e.MalloyParser.IS]],lookbackFromOffendingSymbol:!0}];class i{constructor(o,u){this.translator=o,this.messages=u}logError(o,u,a){return this.messages.log((0,r.makeLogMessage)(o,u,{severity:"error",...a})),o}syntaxError(o,u,a,l,c,f){const d={line:a-1,character:l},h=u?this.translator.rangeFromToken(u):{start:d,end:d},p=(0,n.checkCustomErrorMessage)(o,u,t.commonErrorCases);p&&(c=p),this.logError("syntax-error",{message:c},{at:{url:this.translator.sourceURL,range:h}})}}t.MalloyParserErrorListener=i})(NG);var I6e=T&&T.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),B6e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),$6e=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&I6e(e,t,n);return B6e(e,t),e};Object.defineProperty(Pl,"__esModule",{value:!0}),Pl.MalloyTranslator=Pl.MalloyChildTranslator=Pl.MalloyTranslation=void 0;const wG=m1,k6e=We,P6e=rA,M6e=D,FG=$6e(WA),U6e=I_,LG=w1,j6e=Ta,s7=B_,q6e=$_,H6e=k_,z6e=P_,Q6e=M_,z_=U_,G6e=lu,IG=Js,W6e=j_,V6e=q_,Y6e=H_,K6e=NG;class J6e extends P6e.MalloyLexer{popMode(){return this._modeStack.isEmpty?this._mode:super.popMode()}}class X6e{step(e){if(this.response)return this.response;if(!e.urlIsFullPath)return e.fatalResponse();const n=e.root.importZone.getEntry(e.sourceURL);if(n.status!=="present"){if(n.status==="error"){const s=n.firstReference||e.defaultLocation();return e.root.logError("import-error",{message:n.message,url:e.sourceURL},{at:s}),this.response=e.fatalResponse(),this.response}return{urls:[e.sourceURL]}}const r=n.value===""?`
|
|
1263
1263
|
`:n.value;this.sourceInfo=this.getSourceInfo(r);let i;try{i=this.runParser(r,e)}catch(s){e.root.logError("parse-exception",{message:s.message}),i=void 0}return e.root.logger.hasErrors()?this.response={parse:i,...e.fatalResponse()}:this.response={parse:i},this.response}getSourceInfo(e){const n=/\r?\n/,r={at:[],lines:[],length:e.length};let i=e,s=0;for(;i!=="";){const o=i.match(n);if(o&&o.index!==void 0){r.lines.push(i.slice(0,o.index));const u=o.index+o[0].length;r.at.push({begin:s,end:s+u}),s+=u,i=i.slice(u)}else{r.lines.push(i),r.at.push({begin:s,end:s+i.length});break}}return r}runParser(e,n){const r=wG.CharStreams.fromString(e),i=new J6e(r),s=new wG.CommonTokenStream(i),o=new M6e.MalloyParser(s);o.removeErrorListeners(),o.addErrorListener(new K6e.MalloyParserErrorListener(n,n.root.logger)),o.errorHandler=new Y6e.MalloyErrorStrategy;const u=o[n.grammarRule];if(!u)throw new Error(`No such parse rule as ${n.grammarRule}`);return{root:u.call(o),tokenStream:s,sourceStream:r,sourceURL:n.sourceURL,importBaseURL:n.importBaseURL||n.sourceURL,rangeFromContext:a=>n.rangeFromContext(a),malloyVersion:"4.0.0"}}}class Z6e{constructor(e){this.parseStep=e,this.parseReferences=void 0}step(e){var n;const r=this.parseStep.step(e);if(r.parse===void 0)return r;if(!this.parseReferences){this.parseReferences=(0,j6e.findReferences)(e,r.parse.tokenStream,r.parse.root);for(const u in this.parseReferences.tables)e.root.schemaZone.reference(u,{url:e.sourceURL,range:this.parseReferences.tables[u].firstReference});for(const u in this.parseReferences.urls){const a=this.parseReferences.urls[u];try{const l=decodeURI(new URL(u,e.importBaseURL||e.sourceURL).toString());e.addChild(l),e.imports.push({importURL:l,location:{url:e.sourceURL,range:a}}),e.root.importZone.reference(l,{url:e.sourceURL,range:a})}catch{e.root.logError("invalid-import-url",`Malformed URL '${u}'"`,{at:{url:e.sourceURL,range:a}})}}}if(e.root.logger.hasErrors())return null;let i={};const s=e.root.schemaZone.getUndefined();if(s){const u={};for(const a of s){const l=this.parseReferences.tables[a];u[a]={connectionName:l.connectionName,tablePath:l.tablePath}}i={tables:u}}const o=((n=e.root.importZone.getUndefined())!==null&&n!==void 0?n:[]).filter(u=>e.root.pretranslatedModels.get(u)===void 0);if(o.length>0&&(i={...i,urls:o}),(0,z_.isNeedResponse)(i))return i;for(const u of e.childTranslators.values()){if(e.root.pretranslatedModels.get(u.sourceURL))continue;const a=u.importsAndTablesStep.step(u);if((0,z_.isNeedResponse)(a))return a}return null}}class eRe{constructor(e){this.importStep=e,this.walked=!1}step(e){if(this.response)return this.response;const n=this.importStep.step(e);if(n)return n;const r=e.parseStep.response;if(e.root.logger.hasErrors())return this.response=e.fatalResponse(),this.response;const i=r==null?void 0:r.parse;if(!i)throw new Error("TRANSLATOR INTERNAL ERROR: Translator parse response had no errors, but also no parser");const s=new U6e.MalloyToAST(i,e.root.logger,e.compilerFlags),o=s.visit(i.root);if(e.compilerFlags=s.compilerFlags,o.elementType==="unimplemented"&&o.logError("untranslated-parse-node","INTERNAL COMPILER ERROR: Untranslated parse node"),!this.walked){for(const u of o.walk())u instanceof FG.Unimplemented&&u.logError("untranslated-parse-node","INTERNAL COMPILER ERROR: Untranslated parse node");this.walked=!0}if(e.root.logger.hasErrors())return this.response=e.fatalResponse(),this.response;for(const u of e.childTranslators.values()){if(e.root.pretranslatedModels.get(u.sourceURL))continue;const a=u.astStep.step(u);if((0,z_.isNeedResponse)(a))return a}return o.setTranslator(e),this.response={...e.problemResponse(),ast:o,final:!0},this.response}}class tRe{constructor(e){this.parseStep=e}step(e){if(!this.response){const n=this.parseStep.step(e);if(n.parse){let r;try{r=(0,q6e.walkForDocumentSymbols)(e,n.parse.tokenStream,n.parse.root)}catch{}this.response={symbols:r,final:!0}}else return n}return this.response}}class nRe{constructor(e){this.parseStep=e}step(e,n){const r=this.parseStep.step(e);if(r.parse){let i=[];if(n!==void 0)try{i=(0,H6e.walkForDocumentCompletions)(r.parse.tokenStream,r.parse.root,n)}catch{}return{...r,completions:i}}else return r}}class rRe{constructor(e){this.parseStep=e}step(e,n){const r=this.parseStep.step(e);if(r.parse){let i;if(n!==void 0)try{i=(0,z6e.walkForDocumentHelpContext)(r.parse.root,n)}catch{}return{...r,helpContext:i}}else return r}}class iRe{constructor(e){this.parseStep=e}step(e,n){if(!this.response){const r=this.parseStep.step(e);if(!r.parse||r.final)return r;{const i=(0,W6e.walkForModelAnnotation)(e,r.parse.tokenStream,r.parse);this.response={modelAnnotation:{...i,inherits:n==null?void 0:n.annotation}}}}return this.response}}class sRe{constructor(e){this.parseStep=e}step(e){if(!this.response){const n=this.parseStep.step(e);if(n.parse){const r=(0,V6e.walkForTablePath)(e,n.parse.tokenStream,n.parse);this.response={pathInfo:r}}else return n}return this.response}}class oRe{constructor(e){this.astStep=e,this.importedAnnotations=!1}step(e,n){if(this.response)return this.response;const r=e.root.pretranslatedModels.get(e.sourceURL);if(r!==void 0)return e.modelDef=r,{modelDef:r,final:!0,fromSources:e.getDependencies()};if(n&&!this.importedAnnotations){const s=IG.Tag.annotationToTag(n.annotation,{prefix:/^##! /});e.compilerFlags=s.tag,this.importedAnnotations=!0}const i=this.astStep.step(e);if((0,z_.isNeedResponse)(i))return i;if(!i.ast)return this.response=i,this.response;if(e.grammarRule==="malloyDocument")if(i.ast instanceof FG.Document){const s=i.ast;for(s.initModelDef(n);;){const o=s.compile();if(o.needs)return o.needs;e.modelDef=o.modelDef;break}}else e.root.logError("parsed-non-malloy-document",{url:e.sourceURL},{at:e.defaultLocation()});return e.root.logger.hasErrors()?this.response={fromSources:e.getDependencies(),...e.fatalResponse()}:this.response={modelDef:{...e.modelDef,dependencies:e.getDependencyTree()},fromSources:e.getDependencies(),...e.problemResponse(),final:!0},this.response}}class o7{constructor(e,n=null,r="malloyDocument"){this.sourceURL=e,this.importBaseURL=n,this.grammarRule=r,this.sqlSources=[],this.imports=[],this.compilerFlags=new IG.Tag,this._urlIsFullPath=void 0,this.dialectAlreadyChecked={},this.allDialectsEnabled=!1,this.childTranslators=new Map,this.modelDef={name:e,exports:[],contents:{},queryList:[],dependencies:{}},this.parseStep=new X6e,this.modelAnnotationStep=new iRe(this.parseStep),this.metadataStep=new tRe(this.parseStep),this.completionsStep=new nRe(this.parseStep),this.helpContextStep=new rRe(this.parseStep),this.importsAndTablesStep=new Z6e(this.parseStep),this.astStep=new eRe(this.importsAndTablesStep),this.tablePathInfoStep=new sRe(this.parseStep),this.translateStep=new oRe(this.astStep),this.references=new Q6e.ReferenceList(e)}get urlIsFullPath(){if(this._urlIsFullPath===void 0)try{const e=new URL(this.sourceURL);this._urlIsFullPath=!0}catch(e){const n=e instanceof Error?e.message:"";this._urlIsFullPath=!1,this.root.logError("failed-to-compute-absolute-import-url",`Could not compute full path URL: ${n}`)}return this._urlIsFullPath}addChild(e){this.childTranslators.get(e)||this.childTranslators.set(e,new BG(e,this.root))}getDependencies(){const e=this.getDependencyTree();return[this.sourceURL,...$G(e)]}getDependencyTree(){const e=this.root.pretranslatedModels.get(this.sourceURL);if(e!==void 0)return e.dependencies;const n={};for(const[r,i]of this.childTranslators)n[r]=i.getDependencyTree();return n}newlyTranslatedDependencies(){if(this.root.pretranslatedModels.get(this.sourceURL)!==void 0)return[];const n=[];for(const[r,i]of this.childTranslators){if(this.root.pretranslatedModels.get(r)!==void 0)continue;const o=i.translate();o.modelDef&&(n.push({url:r,modelDef:o.modelDef}),n.push(...i.newlyTranslatedDependencies()))}return n}addReference(e){this.references.add(e)}referenceAt(e){return this.references.find(e)}fatalResponse(){return{final:!0,...this.problemResponse()}}problemResponse(){return{problems:this.problems()}}problems(){return[...this.root.logger.getLog()]}getLineMap(e){var n,r;if(e===this.sourceURL)return(n=this.parseStep.sourceInfo)===null||n===void 0?void 0:n.lines;const i=this.childTranslators.get(e);if(i)return(r=i.parseStep.sourceInfo)===null||r===void 0?void 0:r.lines}codeAtLocation(e){const n=this.getLineMap(e.url)||[];if(e.range.start.line===e.range.end.line)return n[e.range.start.line].slice(e.range.start.character,e.range.end.character);let r="";r+=n[e.range.start.line].slice(e.range.start.character);for(let i=e.range.start.line+1;i<e.range.end.line;i++)r+=n[i];return r+=n[e.range.end.line].slice(0,e.range.end.character),r}prettyErrors(){let e="",n="";for(const r of this.root.logger.getLog()){let i=r.message,s=this.sourceURL;if(r.at){s=r.at.url;const o=r.at.range.start.line,u=r.at.range.start.character,a=this.getLineMap(r.at.url);if(a){const l=a[o];i=`line ${o+1}: ${r.message}
|
|
1264
1264
|
| ${l}`,u>0&&(i=i+`
|
|
1265
1265
|
| ${" ".repeat(u)}^`)}else i=`line ${o+1}: char ${u}: ${r.message}`}n!==s&&(i=`FILE: ${s}
|