@malloydata/render 0.0.225-dev250106171109 → 0.0.225-dev250110175536

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.
@@ -1258,7 +1258,7 @@ vwwxxyyzz{{|||ҩ
1258
1258
  ${r} ${s}: [`,o.length>0&&(i+=`
1259
1259
  `+o.map(u=>u.stringify("",n+4)).join(`
1260
1260
  `)+`
1261
- ${r} `),i+="]")}return i}*walk(){for(const e of Object.keys(this.children)){const n=this.children[e];if(n instanceof fu)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=fu;class q1e extends fu{constructor(){super(...arguments),this.elementType="unimplemented",this.reported=!1}}Ge.Unimplemented=q1e;class _O extends fu{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=_O;class H1e extends fu{constructor(e){super(),this.id=e,this.elementType="experimentalExperiment"}execute(e){this.inExperiment(this.id)}}Ge.ExperimentalExperiment=H1e;function Yq(t){return t.execute!==void 0}Ge.isDocStatement=Yq;function z1e(t){return t instanceof O1||Yq(t)}Ge.isDocStatementOrDocStatementList=z1e;class Kq extends fu{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=Kq;class O1 extends Kq{constructor(){super(...arguments),this.elementType="topLevelStatements",this.execCursor=0,this.isNoteableObj=!0,this.extendNote=Vq.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,Vq.isNoteable)(n)&&n.extendNote(this.note),this.noteCursor+=1),n instanceof O1){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=O1;const Q1e="5a79a191-06bc-43cf-9b12-58741cd82970";function Jq(t){const e=t.inherits?Jq(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 G1e(t){const e=Jq(t).join("");return(0,U1e.v5)(e,Q1e)}class vO extends fu{constructor(e){super(),this.elementType="document",this.globalNameSpace=new j1e.GlobalNameSpace,this.documentModel={},this.queryList=[],this.sqlBlocks=[],this.didInitModel=!1,this.annotation={},this.experiments=new $1e.Tag({}),this.modelAnnotationTodoList=[],this.dialectNameSpaces=new Map,this.statements=new O1(e),this.has({statements:e})}initModelDef(e){if(!this.didInitModel){if(this.documentModel={},this.queryList=[],this.sqlBlocks=[],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);for(const i of this.sqlBlocks)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,sqlBlocks:this.sqlBlocks,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=G1e(e),e}}modelDef(){const e={name:"",exports:[],contents:{}};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}defineSQL(e,n){const r={...e,as:`$${this.sqlBlocks.length}`};if(n){if(this.getEntry(n))return!1;r.as=n,this.setEntry(n,{entry:r})}return this.sqlBlocks.push(r),!0}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,Wq.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,Wq.getDialect)(e),r=new M1e.DialectNameSpace(n);return this.dialectNameSpaces.set(e,r),r}}Ge.Document=vO;var JA={},md={},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",x="constant"){return{type:c,expressionType:f,evalSpace:x,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,x=!1,h=!0){const p=e.TD.eq(c,f),m=x&&(c.type==="null"||f.type==="null"),g=h&&(c.type==="error"||f.type==="error");return p||m||g}t.typeEq=u;function a(...c){return c.map(x=>{if(x){let h=x.type;return(0,e.expressionIsScalar)(x.expressionType)||(h=`${x.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 yr={},Ul={};Object.defineProperty(Ul,"__esModule",{value:!0}),Ul.canMakeEntry=Ul.SpaceEntry=void 0;class W1e{}Ul.SpaceEntry=W1e;function V1e(t){return"makeEntry"in t}Ul.canMakeEntry=V1e,Object.defineProperty(yr,"__esModule",{value:!0}),yr.SpaceField=void 0;const Y1e=Ul,K1e=it;class J1e extends Y1e.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,K1e.emptyCompositeFieldUsage)()}}getQueryFieldDef(e){}fieldDef(){}constructorFieldDef(){}}yr.SpaceField=J1e;var X1e=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]}),Z1e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ege=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)&&X1e(e,t,n);return Z1e(e,t),e};Object.defineProperty(md,"__esModule",{value:!0}),md.ViewField=void 0;const tge=it,nge=ege(Ht),rge=yr;class ige extends rge.SpaceField{constructor(e){super(),this.inSpace=e}typeDesc(){var e;const n=this.fieldDef();return{...nge.viewT,compositeFieldUsage:(e=n.compositeFieldUsage)!==null&&e!==void 0?e:(0,tge.emptyCompositeFieldUsage)()}}}md.ViewField=ige,Object.defineProperty(JA,"__esModule",{value:!0}),JA.ASTViewField=void 0;const sge=md;class oge extends sge.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=oge,Object.defineProperty(R1,"__esModule",{value:!0}),R1.ViewFieldDeclaration=void 0;const uge=Ge,age=mr,lge=pd,cge=JA;class fge extends uge.MalloyElement{constructor(e,n){super({view:n}),this.name=e,this.view=n,this.elementType="view-field-declaration",this.isNoteableObj=!0,this.extendNote=age.extendNoteMethod}makeEntry(e){const n=new cge.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,lge.detectAndRemovePartialStages)(n,this);return{type:"turtle",name:this.name,pipeline:i,annotation:{...this.note,inherits:r},location:this.location}}}R1.ViewFieldDeclaration=fge;var Tn={};Object.defineProperty(Tn,"__esModule",{value:!0}),Tn.LegalRefinementStage=Tn.QueryClass=void 0;var Xq;(function(t){t.Index="index",t.Project="project",t.Grouping="grouping"})(Xq||(Tn.QueryClass=Xq={}));var Zq;(function(t){t[t.Single=0]="Single",t[t.Head=1]="Head",t[t.Tail=2]="Tail"})(Zq||(Tn.LegalRefinementStage=Zq={}));var xge=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]}),dge=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),hge=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)&&xge(e,t,n);return dge(e,t),e};Object.defineProperty(T1,"__esModule",{value:!0}),T1.NestFieldDeclaration=void 0;const pge=hge(We),gge=pd,mge=R1,eH=Tn;class yge extends mge.ViewFieldDeclaration{constructor(){super(...arguments),this.elementType="nest-field-declaration",this.queryRefinementStage=eH.LegalRefinementStage.Single,this.forceQueryClass=eH.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]&&pge.isQuerySegment(n[0])?n[0].compositeFieldUsage:void 0,s=(0,gge.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")}}T1.NestFieldDeclaration=yge;var yd={},Lr={};Object.defineProperty(Lr,"__esModule",{value:!0}),Lr.ErrorFactory=void 0;const tH="~malformed~";class SO{static get structDef(){return{type:"table",name:tH,dialect:"~malformed~",connection:"~unknown~",tablePath:"//undefined_error_table_path",fields:[],errorFactory:!0}}static get joinDef(){return{type:"table",name:tH,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:SO.structDef,pipeline:[]}}static get reduceSegment(){return{type:"reduce",queryFields:[]}}static get projectSegment(){return{type:"project",queryFields:[]}}static get indexSegment(){return{type:"index",indexFields:[]}}}Lr.ErrorFactory=SO,Object.defineProperty(yd,"__esModule",{value:!0}),yd.DefineSourceList=yd.DefineSource=void 0;const Ege=Lr,nH=Ge,Age=mr;class _ge extends nH.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=Age.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),Ege.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=_ge;class vge extends nH.DocStatementList{constructor(e){super(e),this.elementType="defineSources"}}yd.DefineSourceList=vge;var Ed={};Object.defineProperty(Ed,"__esModule",{value:!0}),Ed.DefineQueryList=Ed.DefineQuery=void 0;const rH=Ge,Sge=mr;class Cge extends rH.MalloyElement{constructor(e,n){super({queryExpr:n}),this.name=e,this.queryExpr=n,this.elementType="defineQuery",this.isNoteableObj=!0,this.extendNote=Sge.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=Cge;class bge extends rH.DocStatementList{constructor(e){super(e),this.elementType="defineQueries"}}Ed.DefineQueryList=bge;var Os={};Object.defineProperty(Os,"__esModule",{value:!0}),Os.Source=void 0;const Tge=Ge;class Rge extends Tge.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=Rge;var D1={},Ad={},XA={},ql={};Object.defineProperty(ql,"__esModule",{value:!0}),ql.mergeFields=ql.nameFromDef=void 0;function CO(t){var e;return t.type==="fieldref"?t.path[t.path.length-1]:(e=t.as)!==null&&e!==void 0?e:t.name}ql.nameFromDef=CO;function Oge(t,e){if(t===void 0)return e;const n=new Set(e.map(i=>CO(i))),r=t.filter(i=>!n.has(CO(i)));return r.push(...e),r}ql.mergeFields=Oge;var N1={},Er={},xu={},Dge=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]}),Nge=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),wge=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)&&Dge(e,t,n);return Nge(e,t),e};Object.defineProperty(xu,"__esModule",{value:!0}),xu.DefinedParameter=xu.AbstractParameter=xu.SpaceParam=void 0;const Fge=Ul,iH=wge(Ht),sH=it;class bO extends Fge.SpaceEntry{constructor(){super(...arguments),this.refType="parameter"}}xu.SpaceParam=bO;class Lge extends bO{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{...iH.atomicDef(this.parameter()),expressionType:"scalar",evalSpace:"constant",compositeFieldUsage:(0,sH.emptyCompositeFieldUsage)()}}entryType(){return this.parameter().type}}xu.AbstractParameter=Lge;class Ige extends bO{constructor(e){super(),this.paramDef=e}parameter(){return this.paramDef}typeDesc(){return{...iH.atomicDef(this.paramDef),expressionType:"scalar",evalSpace:"input",compositeFieldUsage:(0,sH.emptyCompositeFieldUsage)()}}entryType(){return this.paramDef.type}}xu.DefinedParameter=Ige;var Vc={},Bge=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]}),$ge=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),kge=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)&&Bge(e,t,n);return $ge(e,t),e};Object.defineProperty(Vc,"__esModule",{value:!0}),Vc.StructSpaceFieldBase=void 0;const oH=it,Pge=We,Mge=kge(Ht),jge=yr;class Uge extends jge.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,Pge.isSourceDef)(this.structDef)?{type:this.structDef.type,evalSpace:"input",expressionType:"scalar",compositeFieldUsage:(e=this.structDef.onCompositeFieldUsage)!==null&&e!==void 0?e:(0,oH.emptyCompositeFieldUsage)()}:{...Mge.atomicDef(this.structDef),evalSpace:"input",expressionType:"scalar",compositeFieldUsage:(n=this.structDef.onCompositeFieldUsage)!==null&&n!==void 0?n:(0,oH.emptyCompositeFieldUsage)()}}}Vc.StructSpaceFieldBase=Uge;var w1={};Object.defineProperty(w1,"__esModule",{value:!0}),w1.ColumnSpaceField=void 0;const qge=yr;class Hge extends qge.SpaceField{constructor(e){super(),this.sourceFieldDef=e}fieldDef(){return this.sourceFieldDef}typeDesc(){return this.fieldTypeFromFieldDef(this.sourceFieldDef)}constructorFieldDef(){return this.sourceFieldDef}}w1.ColumnSpaceField=Hge;var ZA={};Object.defineProperty(ZA,"__esModule",{value:!0}),ZA.IRViewField=void 0;const zge=md;class Qge extends zge.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=Qge,Object.defineProperty(Er,"__esModule",{value:!0}),Er.StaticSourceSpace=Er.StructSpaceField=Er.StaticSpace=void 0;const Gge=Ho,_d=We,Wge=xu,Vge=yr,F1=Vc,Yge=w1,Kge=ZA;class TO{constructor(e,n){this.type="fieldSpace",this.fromStruct=e,this.structDialect=n}dialectName(){return this.structDialect}dialectObj(){try{return(0,Gge.getDialect)(this.structDialect)}catch{return}}defToSpaceField(e){return(0,_d.isJoined)(e)?new RO(e,this.structDialect):(0,_d.isTurtle)(e)?new Kge.IRViewField(this,e):new Yge.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,_d.isSourceDef)(this.fromStruct)&&this.fromStruct.parameters)for(const[e,n]of Object.entries(this.fromStruct.parameters))e in this.memoMap||(this.memoMap[e]=new Wge.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,_d.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 Vge.SpaceField){const o=i.fieldDef();if(o&&(!(i instanceof F1.StructSpaceFieldBase)&&(0,_d.isJoined)(o)&&(i=new RO(o,this.structDialect)),n.addReference({type:i instanceof F1.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 F1.StructSpaceFieldBase?[{...i.joinPathElement,name:n.refString}]:[];if(r.length){if(i instanceof F1.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}}Er.StaticSpace=TO;class RO extends F1.StructSpaceFieldBase{constructor(e,n){super(e),this.forDialect=n}get fieldSpace(){return(0,_d.isSourceDef)(this.structDef)?new uH(this.structDef):new TO(this.structDef,this.forDialect)}}Er.StructSpaceField=RO;class uH extends TO{constructor(e){super(e,e.dialect),this.source=e}structDef(){return this.source}emptyStructDef(){const e={...this.source};return e.parameters={},e.fields=[],e}}Er.StaticSourceSpace=uH,Object.defineProperty(N1,"__esModule",{value:!0}),N1.JoinSpaceField=void 0;const Jge=Er;class Xge extends Jge.StructSpaceField{constructor(e,n,r){super(n.structDef(e),r),this.parameterSpace=e,this.join=n}}N1.JoinSpaceField=Xge;var vd={};Object.defineProperty(vd,"__esModule",{value:!0}),vd.ParameterSpace=void 0;const Zge=xu;class eme{constructor(e){this.type="fieldSpace",this._map={};for(const n of e)this._map[n.name]=new Zge.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}}vd.ParameterSpace=eme;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]}),nme=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),rme=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 nme(e,t),e};Object.defineProperty(XA,"__esModule",{value:!0}),XA.DynamicSpace=void 0;const ime=rme(We),sme=ql,ome=Lr,ume=yr,ame=N1,lme=md,aH=xu,cme=Er,fme=Vc,xme=vd;class dme extends cme.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 aH.AbstractParameter(n)));return this}parameterSpace(){return new xme.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,sme.nameFromDef)(e),this.defToSpaceField(e))}setTimezone(e){this.newTimezone=e}structDef(){if(this.complete=!0,this.sourceDef===void 0){const e={};for(const[l,c]of this.entries())c instanceof aH.SpaceParam&&(e[l]=c.parameter());this.sourceDef={...this.fromSource,fields:[]},this.sourceDef.parameters=e;const n=new Map,r=[],i=[],s=[],o=[];for(const[l,c]of this.entries())c instanceof fme.StructSpaceFieldBase?i.push([l,c]):c instanceof lme.ViewField?s.push([l,c]):c instanceof ume.SpaceField&&r.push([l,c]);const u=[...r,...i,...s],a=this.parameterSpace();for(const[l,c]of u)if(c instanceof ame.JoinSpaceField){const f=c.join.structDef(a);ome.ErrorFactory.didCreate(f)||(n.set(l,this.sourceDef.fields.length),this.sourceDef.fields.push(f),o.push([c.join,f]))}else{const f=c.fieldDef();f&&(n.set(l,this.sourceDef.fields.length),this.sourceDef.fields.push(f))}for(const[l,c]of o)l.fixupJoinOn(this,c);for(const[l,c]of this.newAccessModifiers){const f=this.sourceDef.fields.findIndex(x=>{var h;return(h=x.as)!==null&&h!==void 0?h:x.name===l});if(f===-1)throw new Error(`Can't find field '${l}' to set access modifier`);c==="public"?delete this.sourceDef.fields[f].accessModifier:this.sourceDef.fields[f]={...this.sourceDef.fields[f],accessModifier:c}}for(const[l,c]of this.newNotes){const f=this.sourceDef.fields.findIndex(h=>{var p;return(p=h.as)!==null&&p!==void 0?p:h.name===l});if(f===-1)throw new Error(`Can't find field '${l}' to set access modifier`);const x=this.sourceDef.fields[f];this.sourceDef.fields[f]={...x,annotation:{...c,inherits:x.annotation}}}}return this.newTimezone&&ime.isSourceDef(this.sourceDef)&&(this.sourceDef.queryTimezone=this.newTimezone),this.sourceDef}emptyStructDef(){const e={...this.fromSource};return e.fields=[],e}}XA.DynamicSpace=dme;var L1={};Object.defineProperty(L1,"__esModule",{value:!0}),L1.RenameSpaceField=void 0;const hme=yr;class pme extends hme.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()}}L1.RenameSpaceField=pme,Object.defineProperty(Ad,"__esModule",{value:!0}),Ad.RefinedSpace=void 0;const gme=XA,mme=Ul,yme=L1,Eme=yr;class OO extends gme.DynamicSpace{static filteredFrom(e,n,r,i,s){const o=new OO(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 Eme.SpaceField?o.setEntry(f.as,new yme.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(([x])=>x===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 x=!!a.find(p=>p.refString===c),h=n.edit==="accept";x===h&&o.setEntry(c,f)}}return o}pushFields(...e){for(const n of e)this.addField(n)}addField(e){(0,mme.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=OO;var Hl={},ns={};Object.defineProperty(ns,"__esModule",{value:!0}),ns.DefinitionList=void 0;const Ame=Ge,lH=mr;class _me extends Ame.ListOf{constructor(){super(...arguments),this.isNoteableObj=!0}extendNote(e){(0,lH.extendNoteHelper)(this,e),this.distributeAnnotation()}distributeAnnotation(){if(this.note)for(const e of this.elements)(0,lH.isNoteable)(e)&&e.extendNote(this.note)}newContents(){super.newContents(),this.distributeAnnotation()}}ns.DefinitionList=_me,Object.defineProperty(Hl,"__esModule",{value:!0}),Hl.DeclareFields=void 0;const vme=ns,Sme=Tn;class Cme extends vme.DefinitionList{constructor(e,n){super(e),this.accessModifier=n,this.elementType="declareFields",this.queryRefinementStage=Sme.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)}}Hl.DeclareFields=Cme;var du={};Object.defineProperty(du,"__esModule",{value:!0}),du.Filter=du.FilterElement=void 0;const cH=We,bme=cu,fH=Ge,DO=Tn;class Tme extends fH.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}}}du.FilterElement=Tme;let Rme=class extends fH.ListOf{constructor(){super(...arguments),this.elementType="filter",this.forceQueryClass=void 0,this.queryRefinementStage=DO.LegalRefinementStage.Head}set having(e){this.elementType=e?"having":"where",this.havingClause=e,this.queryRefinementStage=e?DO.LegalRefinementStage.Tail:DO.LegalRefinementStage.Head}checkedFilterCondition(e,n){const r=n.filterCondition(e);if(this.havingClause!==void 0){const i=(0,cH.expressionIsAggregate)(r.expressionType),s=(0,cH.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(bme.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))}}};du.Filter=Rme;var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0}),Sd.FieldListEdit=void 0;const Ome=Ge;class Dme extends Ome.MalloyElement{constructor(e,n){super({refs:n}),this.edit=e,this.refs=n,this.elementType="fieldListEdit"}}Sd.FieldListEdit=Dme;var Cd={};Object.defineProperty(Cd,"__esModule",{value:!0}),Cd.PrimaryKey=void 0;const Nme=Ge;class wme extends Nme.MalloyElement{constructor(e){super({field:e}),this.field=e,this.elementType="primary key"}}Cd.PrimaryKey=wme;var bd={};Object.defineProperty(bd,"__esModule",{value:!0}),bd.Views=void 0;const Fme=ns;class Lme extends Fme.DefinitionList{constructor(e,n){super(e),this.accessModifier=n,this.elementType="turtleDefList"}get delarationNames(){return this.list.map(e=>e.name)}}bd.Views=Lme;var Td={};Object.defineProperty(Td,"__esModule",{value:!0}),Td.TimezoneStatement=void 0;const Ime=Ge;class Bme extends Ime.MalloyElement{constructor(e){super(),this.tz=e,this.elementType="timezone",this.forceQueryClass=void 0,this.queryRefinementStage=void 0}get isValid(){try{return Intl.DateTimeFormat(void 0,{timeZone:this.tz}),!0}catch{return!1}}queryExecute(e){e.resultFS.setTimezone(this.tz)}}Td.TimezoneStatement=Bme;var zl={};Object.defineProperty(zl,"__esModule",{value:!0}),zl.ModelAnnotation=zl.ObjectAnnotation=void 0;const $me=Js,kme=Ge;class xH extends kme.MalloyElement{constructor(e){super(),this.notes=e,this.elementType="annotation",this.forceQueryClass=void 0,this.queryRefinementStage=void 0}queryExecute(){}}zl.ObjectAnnotation=xH;class Pme extends xH{constructor(){super(...arguments),this.elementType="modelAnnotation"}getCompilerFlags(e,n){const r=$me.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)}}zl.ModelAnnotation=Pme;var Ql={};Object.defineProperty(Ql,"__esModule",{value:!0}),Ql.Renames=Ql.RenameField=void 0;const Mme=L1,dH=Ge,jme=yr;class Ume extends dH.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 jme.SpaceField?e.renameEntry(this.oldName.refString,this.newName,new Mme.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}}Ql.RenameField=Ume;class qme extends dH.ListOf{constructor(e,n){super(e),this.accessModifier=n,this.elementType="renameFields"}get delarationNames(){return this.list.map(e=>e.getName())}}Ql.Renames=qme;var bi={};Object.defineProperty(bi,"__esModule",{value:!0}),bi.JoinStatement=bi.ExpressionJoin=bi.KeyJoin=bi.Join=void 0;const NO=We,Hme=N1,zme=ns,Qme=Ge,Gme=mr,hH=Lr,Wme=Tn;class wO extends Qme.MalloyElement{constructor(){super(...arguments),this.isNoteableObj=!0,this.extendNote=Gme.extendNoteMethod}makeEntry(e){e.newEntry(this.name.refString,this,new Hme.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"),hH.ErrorFactory.structDef)}}bi.Join=wO;class Vme extends wO{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,NO.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,NO.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=Vme;class Yme extends wO{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"),hH.ErrorFactory.joinDef;const i=r.getSourceDef(e);let s="left";if(this.inExperiment("join_types",!0)&&(s=this.matrixOperation),!(0,NO.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=Yme;class Kme extends zme.DefinitionList{constructor(e,n){super(e),this.accessModifier=n,this.elementType="joinStatement",this.forceQueryClass=void 0,this.queryRefinementStage=Wme.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=Kme;var ao={};Object.defineProperty(ao,"__esModule",{value:!0}),ao.IncludeListItem=ao.IncludeExceptItem=ao.IncludeAccessItem=ao.IncludeItem=void 0;const pH=Ge,gH=mr;class FO extends pH.MalloyElement{}ao.IncludeItem=FO;class Jme extends FO{constructor(e,n){super(),this.kind=e,this.fields=n,this.elementType="include-access-item",this.isNoteableObj=!0,this.extendNote=gH.extendNoteMethod,this.has({fields:n})}}ao.IncludeAccessItem=Jme;class Xme extends FO{constructor(e){super(),this.fields=e,this.elementType="include-except-item",this.kind="except",this.has({fields:e})}}ao.IncludeExceptItem=Xme;class Zme extends pH.MalloyElement{constructor(e,n){super({name:e}),this.name=e,this.as=n,this.elementType="include-list-item",this.isNoteableObj=!0,this.extendNote=gH.extendNoteMethod}}ao.IncludeListItem=Zme;var ft={},I1={},e3e=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]}),t3e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),n3e=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)&&e3e(e,t,n);return t3e(e,t),e};Object.defineProperty(I1,"__esModule",{value:!0}),I1.ReferenceField=void 0;const mH=We,yH=n3e(Ht),EH=yr,r3e=it;class i3e extends EH.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(mH.TD.isAtomic(s))this.queryFieldDef={...(0,mH.mkFieldDef)(yH.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 EH.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,r3e.joinedCompositeFieldUsage)(n,r.compositeFieldUsage)},this.memoTypeDesc}return yH.errorT}}I1.ReferenceField=i3e;var kn={};Object.defineProperty(kn,"__esModule",{value:!0}),kn.typecheckGroupBy=kn.typecheckAggregate=kn.typecheckCalculate=kn.typecheckDeclare=kn.typecheckMeasure=kn.typecheckDimension=kn.typecheckIndex=kn.typecheckProject=void 0;const An=Qi;function s3e(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?`)}}kn.typecheckProject=s3e;function o3e(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`)}}kn.typecheckIndex=o3e;function u3e(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`)}kn.typecheckDimension=u3e;function a3e(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`)}kn.typecheckMeasure=a3e;function l3e(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")}kn.typecheckDeclare=l3e;function c3e(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?`)}}kn.typecheckCalculate=c3e;function f3e(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?`)}}kn.typecheckAggregate=f3e;function x3e(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?`)}}kn.typecheckGroupBy=x3e,Object.defineProperty(ft,"__esModule",{value:!0}),ft.FieldReferences=ft.WildcardFieldReference=ft.ViewOrScalarFieldReference=ft.DimensionFieldReference=ft.MeasureFieldReference=ft.DeclareFieldReference=ft.ProjectFieldReference=ft.GroupByFieldReference=ft.AggregateFieldReference=ft.IndexFieldReference=ft.CalculateFieldReference=ft.ParameterFieldReference=ft.PartitionByFieldReference=ft.ExpressionFieldReference=ft.AccessModifierFieldReference=ft.AcceptExceptFieldReference=ft.FieldReference=void 0;const d3e=I1,h3e=ns,AH=Ge,_H=mr,Gl=kn;class Jr extends AH.ListOf{constructor(e){super(e),this.isNoteableObj=!0,this.extendNote=_H.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 d3e.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}}ft.FieldReference=Jr;class p3e extends Jr{constructor(){super(...arguments),this.elementType="acceptExceptFieldReference"}typecheck(){}}ft.AcceptExceptFieldReference=p3e;class g3e extends Jr{constructor(){super(...arguments),this.elementType="accessModifierFieldReference"}typecheck(){}}ft.AccessModifierFieldReference=g3e;class m3e extends Jr{constructor(){super(...arguments),this.elementType="expressionFieldReference"}typecheck(){}}ft.ExpressionFieldReference=m3e;class y3e extends Jr{constructor(){super(...arguments),this.elementType="partitionByFieldReference"}typecheck(){}}ft.PartitionByFieldReference=y3e;class E3e extends Jr{constructor(){super(...arguments),this.elementType="parameterFieldReference"}typecheck(){}}ft.ParameterFieldReference=E3e;class A3e extends Jr{constructor(){super(...arguments),this.elementType="calculateFieldReference"}typecheck(e){(0,Gl.typecheckCalculate)(e,this)}}ft.CalculateFieldReference=A3e;class LO extends Jr{constructor(){super(...arguments),this.elementType="indexFieldReference"}typecheck(e){(0,Gl.typecheckIndex)(e,this)}static indexOutputName(e){return e.map(n=>encodeURIComponent(n)).join("/")}get outputName(){return LO.indexOutputName(this.path)}}ft.IndexFieldReference=LO;class _3e extends Jr{constructor(){super(...arguments),this.elementType="aggregateFieldReference"}typecheck(e){(0,Gl.typecheckAggregate)(e,this)}}ft.AggregateFieldReference=_3e;class v3e extends Jr{constructor(){super(...arguments),this.elementType="groupByFieldReference"}typecheck(e){(0,Gl.typecheckGroupBy)(e,this)}}ft.GroupByFieldReference=v3e;class S3e extends Jr{constructor(){super(...arguments),this.elementType="projectFieldReference"}typecheck(e){(0,Gl.typecheckProject)(e,this)}}ft.ProjectFieldReference=S3e;class C3e extends Jr{constructor(){super(...arguments),this.elementType="declareFieldReference"}typecheck(e){(0,Gl.typecheckDeclare)(e,this)}}ft.DeclareFieldReference=C3e;class b3e extends Jr{constructor(){super(...arguments),this.elementType="measureFieldReference"}typecheck(e){(0,Gl.typecheckMeasure)(e,this)}}ft.MeasureFieldReference=b3e;class T3e extends Jr{constructor(){super(...arguments),this.elementType="dimensionFieldReference"}typecheck(e){(0,Gl.typecheckDimension)(e,this)}}ft.DimensionFieldReference=T3e;class R3e extends Jr{constructor(){super(...arguments),this.elementType="viewOrScalarFieldReference"}typecheck(e){}}ft.ViewOrScalarFieldReference=R3e;class O3e extends AH.MalloyElement{constructor(e){super(),this.joinPath=e,this.elementType="wildcardFieldReference",this.isNoteableObj=!0,this.extendNote=_H.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}.*`:"*"}}ft.WildcardFieldReference=O3e;class D3e extends h3e.DefinitionList{constructor(e){super(e),this.elementType="fieldReferenceList"}}ft.FieldReferences=D3e,Object.defineProperty(D1,"__esModule",{value:!0}),D1.RefinedSource=void 0;const N3e=We,w3e=Ad,F3e=Hl,L3e=du,I3e=Sd,B3e=Cd,$3e=bd,k3e=Os,P3e=Td,M3e=zl,j3e=Ql,U3e=vd,q3e=bi,vH=ao,IO=ft;class H3e extends k3e.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 _ of this.refinement.list){if(_ instanceof M3e.ObjectAnnotation)continue;const v=_;if(_ instanceof B3e.PrimaryKey){if(i){const S="multiple-primary-keys";i.logError(S,"Primary key already defined"),_.logError(S,"Primary key redefined")}i=_}else if(_ instanceof I3e.FieldListEdit){if(s){const S="multiple-field-list-edits";s.logError(S,"Too many accept/except statements"),_.logError(S,"Too many accept/except statements")}s=_}else _ instanceof F3e.DeclareFields||_ instanceof q3e.JoinStatement||_ instanceof $3e.Views||_ instanceof j3e.Renames?(o.push(..._.list),_.accessModifier&&l.push({fields:_.delarationNames,access:_.accessModifier})):_ instanceof L3e.Filter?u.push(_):_ instanceof P3e.TimezoneStatement?a=_.tz:v.logError("unexpected-source-property",`Unexpected source property: '${v.elementType}'`)}const c=n?new U3e.ParameterSpace(n):void 0,f=structuredClone(this.source.getSourceDef(c)),{fieldsToInclude:x,modifiers:h,renames:p,notes:m}=z3e(this.includeList,f);for(const _ of l)for(const v of _.fields)h.set(v,_.access);i&&(f.primaryKey=i.field.name);const g=w3e.RefinedSpace.filteredFrom(f,s,x,p,c);if(a&&g.setTimezone(a),n&&g.addParameters(n),g.pushFields(...o),i){const _=i.field.getField(g);_.error&&i.logError(_.error.code,_.error.message)}g.addAccessModifiers(h),g.addNotes(m);const y=g.structDef(),E=y.filterList||[];let A=!1;for(const _ of u)for(const v of _.list){const S=v.filterCondition(g);(0,N3e.expressionIsCalculation)(S.expressionType)?v.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)}}D1.RefinedSource=H3e;function z3e(t,e){var n,r,i,s,o,u,a,l,c;const f=new Set(e.fields.map(S=>S.name)),x=new Set(e.fields.filter(S=>S.accessModifier==="private").map(S=>S.name));let h;const p=new Set;let m,g;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 vH.IncludeAccessItem)for(const C of S.fields)if(C.name instanceof IO.WildcardFieldReference)C.name.joinPath&&C.logError("unsupported-path-in-include","Wildcards with paths are not supported in `include` blocks"),m!==void 0?S.logError("already-used-star-in-include","Wildcard already used in this include block"):(m=(n=S.kind)!==null&&n!==void 0?n:"inherit",g={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;x.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 IO.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 vH.IncludeExceptItem)for(const C of S.fields)C instanceof IO.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",m="inherit",p.add(C.refString));const _=new Set(f);p.forEach(S=>_.delete(S)),x.forEach(S=>_.delete(S));let v;if(m!==void 0)for(const S of _)m!=="inherit"&&y.set(S,m),g&&A.set(S,{...g});return h!=="exclude"?m!==void 0?v=f:v=p:v=_,{fieldsToInclude:v,modifiers:y,renames:E,notes:A}}var lo={};Object.defineProperty(lo,"__esModule",{value:!0}),lo.SourceQueryElement=void 0;const Q3e=Ge;class BO extends Q3e.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 BO&&n.errored){e=!1;break}return e}}lo.SourceQueryElement=BO;var e_={},Yc={};Object.defineProperty(Yc,"__esModule",{value:!0}),Yc.QuerySource=void 0;const G3e=Os,W3e=fy;class V3e extends G3e.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,W3e.v4)()}`,type:"query_source",query:i.query};return(r=this.document())===null||r===void 0||r.rememberToAddModelAnnotations(s),{...s,parameters:this.packParameters(n)}}}Yc.QuerySource=V3e;var Rd={},B1={};Object.defineProperty(B1,"__esModule",{value:!0}),B1.QueryBase=void 0;const $O=it,SH=We,Y3e=pd,K3e=Ge;class J3e extends K3e.MalloyElement{resolveCompositeSource(e,n){var r;const i=n.pipeline[0];if(i&&((0,SH.isQuerySegment)(i)||(0,SH.isIndexSegment)(i))){const s=(r=i.compositeFieldUsage)!==null&&r!==void 0?r:(0,$O.emptyCompositeFieldUsage)();if(!(0,$O.isEmptyCompositeFieldUsage)(s)||e.type==="composite")return(0,$O.resolveCompositeSources)(e,s).sourceDef}}query(){const{query:e}=this.queryComp(!0);return{...e,pipeline:(0,Y3e.detectAndRemovePartialStages)(e.pipeline,this)}}}B1.QueryBase=J3e,Object.defineProperty(Rd,"__esModule",{value:!0}),Rd.QueryArrow=void 0;const X3e=We,Z3e=Os,CH=Er,eye=B1;class tye extends eye.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 Z3e.Source){const x=e?this.source.structRef(void 0):{structRef:this.source.getSourceDef(void 0)};i={type:"query",...x,pipeline:[],location:this.location},r=(0,X3e.refIsStructDef)(x.structRef)?x.structRef:this.source.getSourceDef(void 0),s=new CH.StaticSourceSpace(r)}else{const x=this.source.queryComp(e);i=x.query,r=x.outputStruct,s=new CH.StaticSourceSpace(x.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}}}Rd.QueryArrow=tye,Object.defineProperty(e_,"__esModule",{value:!0}),e_.SQArrow=void 0;const nye=lo,rye=Yc,iye=Rd;class sye extends nye.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 iye.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 rye.QuerySource(e);return this.has({asSource:n}),n}}e_.SQArrow=sye;var t_={},Od={},rs={};Object.defineProperty(rs,"__esModule",{value:!0}),rs.getStructFieldDef=rs.getFinalStruct=rs.opOutputStruct=void 0;const bH=Tl,oye=fc,n_=We,TH=Lr;function RH(t,e,n){const r=TH.ErrorFactory.didCreate(e)||(0,n_.structHasErrors)(e);(0,n_.isPartialSegment)(n)&&(n={...n,type:"reduce"});const i=(0,n_.segmentHasErrors)(n);if(!r&&!i)try{const s=oye.Segment.nextStructDef(e,n);if((0,n_.isSourceDef)(s))return s;t.logError("failed-to-compute-output-schema",`INTERNAL ERROR model/Segment.nextStructDef: RETURNED A NON SOURCE
1261
+ ${r} `),i+="]")}return i}*walk(){for(const e of Object.keys(this.children)){const n=this.children[e];if(n instanceof fu)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=fu;class q1e extends fu{constructor(){super(...arguments),this.elementType="unimplemented",this.reported=!1}}Ge.Unimplemented=q1e;class _O extends fu{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=_O;class H1e extends fu{constructor(e){super(),this.id=e,this.elementType="experimentalExperiment"}execute(e){this.inExperiment(this.id)}}Ge.ExperimentalExperiment=H1e;function Yq(t){return t.execute!==void 0}Ge.isDocStatement=Yq;function z1e(t){return t instanceof O1||Yq(t)}Ge.isDocStatementOrDocStatementList=z1e;class Kq extends fu{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=Kq;class O1 extends Kq{constructor(){super(...arguments),this.elementType="topLevelStatements",this.execCursor=0,this.isNoteableObj=!0,this.extendNote=Vq.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,Vq.isNoteable)(n)&&n.extendNote(this.note),this.noteCursor+=1),n instanceof O1){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=O1;const Q1e="5a79a191-06bc-43cf-9b12-58741cd82970";function Jq(t){const e=t.inherits?Jq(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 G1e(t){const e=Jq(t).join("");return(0,U1e.v5)(e,Q1e)}class vO extends fu{constructor(e){super(),this.elementType="document",this.globalNameSpace=new j1e.GlobalNameSpace,this.documentModel={},this.queryList=[],this.sqlBlocks=[],this.didInitModel=!1,this.annotation={},this.experiments=new $1e.Tag({}),this.modelAnnotationTodoList=[],this.dialectNameSpaces=new Map,this.statements=new O1(e),this.has({statements:e})}initModelDef(e){if(!this.didInitModel){if(this.documentModel={},this.queryList=[],this.sqlBlocks=[],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);for(const i of this.sqlBlocks)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,sqlBlocks:this.sqlBlocks,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=G1e(e),e}}modelDef(){const e={name:"",exports:[],contents:{}};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}defineSQL(e,n){const r={...e,as:`$${this.sqlBlocks.length}`};if(n){if(this.getEntry(n))return!1;r.as=n,this.setEntry(n,{entry:r})}return this.sqlBlocks.push(r),!0}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,Wq.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,Wq.getDialect)(e),r=new M1e.DialectNameSpace(n);return this.dialectNameSpaces.set(e,r),r}}Ge.Document=vO;var JA={},md={},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",x="constant"){return{type:c,expressionType:f,evalSpace:x,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,x=!1,h=!0){const p=e.TD.eq(c,f),m=x&&(c.type==="null"||f.type==="null"),g=h&&(c.type==="error"||f.type==="error");return p||m||g}t.typeEq=u;function a(...c){return c.map(x=>{if(x){let h=x.type;return(0,e.expressionIsScalar)(x.expressionType)||(h=`${x.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 yr={},Ul={};Object.defineProperty(Ul,"__esModule",{value:!0}),Ul.canMakeEntry=Ul.SpaceEntry=void 0;class W1e{}Ul.SpaceEntry=W1e;function V1e(t){return"makeEntry"in t}Ul.canMakeEntry=V1e,Object.defineProperty(yr,"__esModule",{value:!0}),yr.SpaceField=void 0;const Y1e=Ul,K1e=it;class J1e extends Y1e.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,K1e.emptyCompositeFieldUsage)()}}getQueryFieldDef(e){}fieldDef(){}constructorFieldDef(){}}yr.SpaceField=J1e;var X1e=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]}),Z1e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ege=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)&&X1e(e,t,n);return Z1e(e,t),e};Object.defineProperty(md,"__esModule",{value:!0}),md.ViewField=void 0;const tge=it,nge=ege(Ht),rge=yr;class ige extends rge.SpaceField{constructor(e){super(),this.inSpace=e}typeDesc(){var e;const n=this.fieldDef();return{...nge.viewT,compositeFieldUsage:(e=n.compositeFieldUsage)!==null&&e!==void 0?e:(0,tge.emptyCompositeFieldUsage)()}}}md.ViewField=ige,Object.defineProperty(JA,"__esModule",{value:!0}),JA.ASTViewField=void 0;const sge=md;class oge extends sge.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=oge,Object.defineProperty(R1,"__esModule",{value:!0}),R1.ViewFieldDeclaration=void 0;const uge=Ge,age=mr,lge=pd,cge=JA;class fge extends uge.MalloyElement{constructor(e,n){super({view:n}),this.name=e,this.view=n,this.elementType="view-field-declaration",this.isNoteableObj=!0,this.extendNote=age.extendNoteMethod}makeEntry(e){const n=new cge.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,lge.detectAndRemovePartialStages)(n,this);return{type:"turtle",name:this.name,pipeline:i,annotation:{...this.note,inherits:r},location:this.location}}}R1.ViewFieldDeclaration=fge;var Tn={};Object.defineProperty(Tn,"__esModule",{value:!0}),Tn.LegalRefinementStage=Tn.QueryClass=void 0;var Xq;(function(t){t.Index="index",t.Project="project",t.Grouping="grouping"})(Xq||(Tn.QueryClass=Xq={}));var Zq;(function(t){t[t.Single=0]="Single",t[t.Head=1]="Head",t[t.Tail=2]="Tail"})(Zq||(Tn.LegalRefinementStage=Zq={}));var xge=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]}),dge=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),hge=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)&&xge(e,t,n);return dge(e,t),e};Object.defineProperty(T1,"__esModule",{value:!0}),T1.NestFieldDeclaration=void 0;const pge=hge(We),gge=pd,mge=R1,eH=Tn;class yge extends mge.ViewFieldDeclaration{constructor(){super(...arguments),this.elementType="nest-field-declaration",this.queryRefinementStage=eH.LegalRefinementStage.Single,this.forceQueryClass=eH.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]&&pge.isQuerySegment(n[0])?n[0].compositeFieldUsage:void 0,s=(0,gge.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")}}T1.NestFieldDeclaration=yge;var yd={},Lr={};Object.defineProperty(Lr,"__esModule",{value:!0}),Lr.ErrorFactory=void 0;const tH="~malformed~";class SO{static get structDef(){return{type:"table",name:tH,dialect:"~malformed~",connection:"~unknown~",tablePath:"//undefined_error_table_path",fields:[],errorFactory:!0}}static get joinDef(){return{type:"table",name:tH,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:SO.structDef,pipeline:[]}}static get reduceSegment(){return{type:"reduce",queryFields:[]}}static get projectSegment(){return{type:"project",queryFields:[]}}static get indexSegment(){return{type:"index",indexFields:[]}}}Lr.ErrorFactory=SO,Object.defineProperty(yd,"__esModule",{value:!0}),yd.DefineSourceList=yd.DefineSource=void 0;const Ege=Lr,nH=Ge,Age=mr;class _ge extends nH.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=Age.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),Ege.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=_ge;class vge extends nH.DocStatementList{constructor(e){super(e),this.elementType="defineSources"}}yd.DefineSourceList=vge;var Ed={};Object.defineProperty(Ed,"__esModule",{value:!0}),Ed.DefineQueryList=Ed.DefineQuery=void 0;const rH=Ge,Sge=mr;class Cge extends rH.MalloyElement{constructor(e,n){super({queryExpr:n}),this.name=e,this.queryExpr=n,this.elementType="defineQuery",this.isNoteableObj=!0,this.extendNote=Sge.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=Cge;class bge extends rH.DocStatementList{constructor(e){super(e),this.elementType="defineQueries"}}Ed.DefineQueryList=bge;var Os={};Object.defineProperty(Os,"__esModule",{value:!0}),Os.Source=void 0;const Tge=Ge;class Rge extends Tge.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=Rge;var D1={},Ad={},XA={},ql={};Object.defineProperty(ql,"__esModule",{value:!0}),ql.mergeFields=ql.nameFromDef=void 0;function CO(t){var e;return t.type==="fieldref"?t.path[t.path.length-1]:(e=t.as)!==null&&e!==void 0?e:t.name}ql.nameFromDef=CO;function Oge(t,e){if(t===void 0)return e;const n=new Set(e.map(i=>CO(i))),r=t.filter(i=>!n.has(CO(i)));return r.push(...e),r}ql.mergeFields=Oge;var N1={},Er={},xu={},Dge=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]}),Nge=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),wge=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)&&Dge(e,t,n);return Nge(e,t),e};Object.defineProperty(xu,"__esModule",{value:!0}),xu.DefinedParameter=xu.AbstractParameter=xu.SpaceParam=void 0;const Fge=Ul,iH=wge(Ht),sH=it;class bO extends Fge.SpaceEntry{constructor(){super(...arguments),this.refType="parameter"}}xu.SpaceParam=bO;class Lge extends bO{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{...iH.atomicDef(this.parameter()),expressionType:"scalar",evalSpace:"constant",compositeFieldUsage:(0,sH.emptyCompositeFieldUsage)()}}entryType(){return this.parameter().type}}xu.AbstractParameter=Lge;class Ige extends bO{constructor(e){super(),this.paramDef=e}parameter(){return this.paramDef}typeDesc(){return{...iH.atomicDef(this.paramDef),expressionType:"scalar",evalSpace:"input",compositeFieldUsage:(0,sH.emptyCompositeFieldUsage)()}}entryType(){return this.paramDef.type}}xu.DefinedParameter=Ige;var Vc={},Bge=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]}),$ge=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),kge=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)&&Bge(e,t,n);return $ge(e,t),e};Object.defineProperty(Vc,"__esModule",{value:!0}),Vc.StructSpaceFieldBase=void 0;const oH=it,Pge=We,Mge=kge(Ht),jge=yr;class Uge extends jge.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,Pge.isSourceDef)(this.structDef)?{type:this.structDef.type,evalSpace:"input",expressionType:"scalar",compositeFieldUsage:(e=this.structDef.onCompositeFieldUsage)!==null&&e!==void 0?e:(0,oH.emptyCompositeFieldUsage)()}:{...Mge.atomicDef(this.structDef),evalSpace:"input",expressionType:"scalar",compositeFieldUsage:(n=this.structDef.onCompositeFieldUsage)!==null&&n!==void 0?n:(0,oH.emptyCompositeFieldUsage)()}}}Vc.StructSpaceFieldBase=Uge;var w1={};Object.defineProperty(w1,"__esModule",{value:!0}),w1.ColumnSpaceField=void 0;const qge=yr;class Hge extends qge.SpaceField{constructor(e){super(),this.sourceFieldDef=e}fieldDef(){return this.sourceFieldDef}typeDesc(){return this.fieldTypeFromFieldDef(this.sourceFieldDef)}constructorFieldDef(){return this.sourceFieldDef}}w1.ColumnSpaceField=Hge;var ZA={};Object.defineProperty(ZA,"__esModule",{value:!0}),ZA.IRViewField=void 0;const zge=md;class Qge extends zge.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=Qge,Object.defineProperty(Er,"__esModule",{value:!0}),Er.StaticSourceSpace=Er.StructSpaceField=Er.StaticSpace=void 0;const Gge=Ho,_d=We,Wge=xu,Vge=yr,F1=Vc,Yge=w1,Kge=ZA;class TO{constructor(e,n){this.type="fieldSpace",this.fromStruct=e,this.structDialect=n}dialectName(){return this.structDialect}dialectObj(){try{return(0,Gge.getDialect)(this.structDialect)}catch{return}}defToSpaceField(e){return(0,_d.isJoined)(e)?new RO(e,this.structDialect):(0,_d.isTurtle)(e)?new Kge.IRViewField(this,e):new Yge.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,_d.isSourceDef)(this.fromStruct)&&this.fromStruct.parameters)for(const[e,n]of Object.entries(this.fromStruct.parameters))e in this.memoMap||(this.memoMap[e]=new Wge.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,_d.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 Vge.SpaceField){const o=i.fieldDef();if(o&&(!(i instanceof F1.StructSpaceFieldBase)&&(0,_d.isJoined)(o)&&(i=new RO(o,this.structDialect)),n.addReference({type:i instanceof F1.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 F1.StructSpaceFieldBase?[{...i.joinPathElement,name:n.refString}]:[];if(r.length){if(i instanceof F1.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}}Er.StaticSpace=TO;class RO extends F1.StructSpaceFieldBase{constructor(e,n){super(e),this.forDialect=n}get fieldSpace(){return(0,_d.isSourceDef)(this.structDef)?new uH(this.structDef):new TO(this.structDef,this.forDialect)}}Er.StructSpaceField=RO;class uH extends TO{constructor(e){super(e,e.dialect),this.source=e}structDef(){return this.source}emptyStructDef(){const e={...this.source};return e.parameters={},e.fields=[],e}}Er.StaticSourceSpace=uH,Object.defineProperty(N1,"__esModule",{value:!0}),N1.JoinSpaceField=void 0;const Jge=Er;class Xge extends Jge.StructSpaceField{constructor(e,n,r){super(n.structDef(e),r),this.parameterSpace=e,this.join=n}}N1.JoinSpaceField=Xge;var vd={};Object.defineProperty(vd,"__esModule",{value:!0}),vd.ParameterSpace=void 0;const Zge=xu;class eme{constructor(e){this.type="fieldSpace",this._map={};for(const n of e)this._map[n.name]=new Zge.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}}vd.ParameterSpace=eme;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]}),nme=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),rme=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 nme(e,t),e};Object.defineProperty(XA,"__esModule",{value:!0}),XA.DynamicSpace=void 0;const ime=rme(We),sme=ql,ome=Lr,ume=yr,ame=N1,lme=md,aH=xu,cme=Er,fme=Vc,xme=vd;class dme extends cme.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 aH.AbstractParameter(n)));return this}parameterSpace(){return new xme.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,sme.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 aH.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 fme.StructSpaceFieldBase?i.push([a,l]):l instanceof lme.ViewField?s.push([a,l]):l instanceof ume.SpaceField&&r.push([a,l]);const o=[...r,...i,...s],u=this.parameterSpace();for(const[a,l]of o)if(l instanceof ame.JoinSpaceField){const c=l.join.structDef(u);ome.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 x;return(x=f.as)!==null&&x!==void 0?x: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(x=>{var h;return(h=x.as)!==null&&h!==void 0?h:x.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&&ime.isSourceDef(this.sourceDef)&&(this.sourceDef.queryTimezone=this.newTimezone),this.sourceDef}emptyStructDef(){const e={...this.fromSource};return e.fields=[],e}}XA.DynamicSpace=dme;var L1={};Object.defineProperty(L1,"__esModule",{value:!0}),L1.RenameSpaceField=void 0;const hme=yr;class pme extends hme.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()}}L1.RenameSpaceField=pme,Object.defineProperty(Ad,"__esModule",{value:!0}),Ad.RefinedSpace=void 0;const gme=XA,mme=Ul,yme=L1,Eme=yr;class OO extends gme.DynamicSpace{static filteredFrom(e,n,r,i,s){const o=new OO(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 Eme.SpaceField?o.setEntry(f.as,new yme.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(([x])=>x===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 x=!!a.find(p=>p.refString===c),h=n.edit==="accept";x===h&&o.setEntry(c,f)}}return o}pushFields(...e){for(const n of e)this.addField(n)}addField(e){(0,mme.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=OO;var Hl={},ns={};Object.defineProperty(ns,"__esModule",{value:!0}),ns.DefinitionList=void 0;const Ame=Ge,lH=mr;class _me extends Ame.ListOf{constructor(){super(...arguments),this.isNoteableObj=!0}extendNote(e){(0,lH.extendNoteHelper)(this,e),this.distributeAnnotation()}distributeAnnotation(){if(this.note)for(const e of this.elements)(0,lH.isNoteable)(e)&&e.extendNote(this.note)}newContents(){super.newContents(),this.distributeAnnotation()}}ns.DefinitionList=_me,Object.defineProperty(Hl,"__esModule",{value:!0}),Hl.DeclareFields=void 0;const vme=ns,Sme=Tn;class Cme extends vme.DefinitionList{constructor(e,n){super(e),this.accessModifier=n,this.elementType="declareFields",this.queryRefinementStage=Sme.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)}}Hl.DeclareFields=Cme;var du={};Object.defineProperty(du,"__esModule",{value:!0}),du.Filter=du.FilterElement=void 0;const cH=We,bme=cu,fH=Ge,DO=Tn;class Tme extends fH.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}}}du.FilterElement=Tme;let Rme=class extends fH.ListOf{constructor(){super(...arguments),this.elementType="filter",this.forceQueryClass=void 0,this.queryRefinementStage=DO.LegalRefinementStage.Head}set having(e){this.elementType=e?"having":"where",this.havingClause=e,this.queryRefinementStage=e?DO.LegalRefinementStage.Tail:DO.LegalRefinementStage.Head}checkedFilterCondition(e,n){const r=n.filterCondition(e);if(this.havingClause!==void 0){const i=(0,cH.expressionIsAggregate)(r.expressionType),s=(0,cH.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(bme.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))}}};du.Filter=Rme;var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0}),Sd.FieldListEdit=void 0;const Ome=Ge;class Dme extends Ome.MalloyElement{constructor(e,n){super({refs:n}),this.edit=e,this.refs=n,this.elementType="fieldListEdit"}}Sd.FieldListEdit=Dme;var Cd={};Object.defineProperty(Cd,"__esModule",{value:!0}),Cd.PrimaryKey=void 0;const Nme=Ge;class wme extends Nme.MalloyElement{constructor(e){super({field:e}),this.field=e,this.elementType="primary key"}}Cd.PrimaryKey=wme;var bd={};Object.defineProperty(bd,"__esModule",{value:!0}),bd.Views=void 0;const Fme=ns;class Lme extends Fme.DefinitionList{constructor(e,n){super(e),this.accessModifier=n,this.elementType="turtleDefList"}get delarationNames(){return this.list.map(e=>e.name)}}bd.Views=Lme;var Td={};Object.defineProperty(Td,"__esModule",{value:!0}),Td.TimezoneStatement=void 0;const Ime=Ge;class Bme extends Ime.MalloyElement{constructor(e){super(),this.tz=e,this.elementType="timezone",this.forceQueryClass=void 0,this.queryRefinementStage=void 0}get isValid(){try{return Intl.DateTimeFormat(void 0,{timeZone:this.tz}),!0}catch{return!1}}queryExecute(e){e.resultFS.setTimezone(this.tz)}}Td.TimezoneStatement=Bme;var zl={};Object.defineProperty(zl,"__esModule",{value:!0}),zl.ModelAnnotation=zl.ObjectAnnotation=void 0;const $me=Js,kme=Ge;class xH extends kme.MalloyElement{constructor(e){super(),this.notes=e,this.elementType="annotation",this.forceQueryClass=void 0,this.queryRefinementStage=void 0}queryExecute(){}}zl.ObjectAnnotation=xH;class Pme extends xH{constructor(){super(...arguments),this.elementType="modelAnnotation"}getCompilerFlags(e,n){const r=$me.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)}}zl.ModelAnnotation=Pme;var Ql={};Object.defineProperty(Ql,"__esModule",{value:!0}),Ql.Renames=Ql.RenameField=void 0;const Mme=L1,dH=Ge,jme=yr;class Ume extends dH.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 jme.SpaceField?e.renameEntry(this.oldName.refString,this.newName,new Mme.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}}Ql.RenameField=Ume;class qme extends dH.ListOf{constructor(e,n){super(e),this.accessModifier=n,this.elementType="renameFields"}get delarationNames(){return this.list.map(e=>e.getName())}}Ql.Renames=qme;var bi={};Object.defineProperty(bi,"__esModule",{value:!0}),bi.JoinStatement=bi.ExpressionJoin=bi.KeyJoin=bi.Join=void 0;const NO=We,Hme=N1,zme=ns,Qme=Ge,Gme=mr,hH=Lr,Wme=Tn;class wO extends Qme.MalloyElement{constructor(){super(...arguments),this.isNoteableObj=!0,this.extendNote=Gme.extendNoteMethod}makeEntry(e){e.newEntry(this.name.refString,this,new Hme.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"),hH.ErrorFactory.structDef)}}bi.Join=wO;class Vme extends wO{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,NO.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,NO.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=Vme;class Yme extends wO{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"),hH.ErrorFactory.joinDef;const i=r.getSourceDef(e);let s="left";if(this.inExperiment("join_types",!0)&&(s=this.matrixOperation),!(0,NO.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=Yme;class Kme extends zme.DefinitionList{constructor(e,n){super(e),this.accessModifier=n,this.elementType="joinStatement",this.forceQueryClass=void 0,this.queryRefinementStage=Wme.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=Kme;var ao={};Object.defineProperty(ao,"__esModule",{value:!0}),ao.IncludeListItem=ao.IncludeExceptItem=ao.IncludeAccessItem=ao.IncludeItem=void 0;const pH=Ge,gH=mr;class FO extends pH.MalloyElement{}ao.IncludeItem=FO;class Jme extends FO{constructor(e,n){super(),this.kind=e,this.fields=n,this.elementType="include-access-item",this.isNoteableObj=!0,this.extendNote=gH.extendNoteMethod,this.has({fields:n})}}ao.IncludeAccessItem=Jme;class Xme extends FO{constructor(e){super(),this.fields=e,this.elementType="include-except-item",this.kind="except",this.has({fields:e})}}ao.IncludeExceptItem=Xme;class Zme extends pH.MalloyElement{constructor(e,n){super({name:e}),this.name=e,this.as=n,this.elementType="include-list-item",this.isNoteableObj=!0,this.extendNote=gH.extendNoteMethod}}ao.IncludeListItem=Zme;var ft={},I1={},e3e=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]}),t3e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),n3e=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)&&e3e(e,t,n);return t3e(e,t),e};Object.defineProperty(I1,"__esModule",{value:!0}),I1.ReferenceField=void 0;const mH=We,yH=n3e(Ht),EH=yr,r3e=it;class i3e extends EH.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(mH.TD.isAtomic(s))this.queryFieldDef={...(0,mH.mkFieldDef)(yH.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 EH.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,r3e.joinedCompositeFieldUsage)(n,r.compositeFieldUsage)},this.memoTypeDesc}return yH.errorT}}I1.ReferenceField=i3e;var kn={};Object.defineProperty(kn,"__esModule",{value:!0}),kn.typecheckGroupBy=kn.typecheckAggregate=kn.typecheckCalculate=kn.typecheckDeclare=kn.typecheckMeasure=kn.typecheckDimension=kn.typecheckIndex=kn.typecheckProject=void 0;const An=Qi;function s3e(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?`)}}kn.typecheckProject=s3e;function o3e(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`)}}kn.typecheckIndex=o3e;function u3e(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`)}kn.typecheckDimension=u3e;function a3e(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`)}kn.typecheckMeasure=a3e;function l3e(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")}kn.typecheckDeclare=l3e;function c3e(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?`)}}kn.typecheckCalculate=c3e;function f3e(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?`)}}kn.typecheckAggregate=f3e;function x3e(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?`)}}kn.typecheckGroupBy=x3e,Object.defineProperty(ft,"__esModule",{value:!0}),ft.FieldReferences=ft.WildcardFieldReference=ft.ViewOrScalarFieldReference=ft.DimensionFieldReference=ft.MeasureFieldReference=ft.DeclareFieldReference=ft.ProjectFieldReference=ft.GroupByFieldReference=ft.AggregateFieldReference=ft.IndexFieldReference=ft.CalculateFieldReference=ft.ParameterFieldReference=ft.PartitionByFieldReference=ft.ExpressionFieldReference=ft.AccessModifierFieldReference=ft.AcceptExceptFieldReference=ft.FieldReference=void 0;const d3e=I1,h3e=ns,AH=Ge,_H=mr,Gl=kn;class Jr extends AH.ListOf{constructor(e){super(e),this.isNoteableObj=!0,this.extendNote=_H.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 d3e.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}}ft.FieldReference=Jr;class p3e extends Jr{constructor(){super(...arguments),this.elementType="acceptExceptFieldReference"}typecheck(){}}ft.AcceptExceptFieldReference=p3e;class g3e extends Jr{constructor(){super(...arguments),this.elementType="accessModifierFieldReference"}typecheck(){}}ft.AccessModifierFieldReference=g3e;class m3e extends Jr{constructor(){super(...arguments),this.elementType="expressionFieldReference"}typecheck(){}}ft.ExpressionFieldReference=m3e;class y3e extends Jr{constructor(){super(...arguments),this.elementType="partitionByFieldReference"}typecheck(){}}ft.PartitionByFieldReference=y3e;class E3e extends Jr{constructor(){super(...arguments),this.elementType="parameterFieldReference"}typecheck(){}}ft.ParameterFieldReference=E3e;class A3e extends Jr{constructor(){super(...arguments),this.elementType="calculateFieldReference"}typecheck(e){(0,Gl.typecheckCalculate)(e,this)}}ft.CalculateFieldReference=A3e;class LO extends Jr{constructor(){super(...arguments),this.elementType="indexFieldReference"}typecheck(e){(0,Gl.typecheckIndex)(e,this)}static indexOutputName(e){return e.map(n=>encodeURIComponent(n)).join("/")}get outputName(){return LO.indexOutputName(this.path)}}ft.IndexFieldReference=LO;class _3e extends Jr{constructor(){super(...arguments),this.elementType="aggregateFieldReference"}typecheck(e){(0,Gl.typecheckAggregate)(e,this)}}ft.AggregateFieldReference=_3e;class v3e extends Jr{constructor(){super(...arguments),this.elementType="groupByFieldReference"}typecheck(e){(0,Gl.typecheckGroupBy)(e,this)}}ft.GroupByFieldReference=v3e;class S3e extends Jr{constructor(){super(...arguments),this.elementType="projectFieldReference"}typecheck(e){(0,Gl.typecheckProject)(e,this)}}ft.ProjectFieldReference=S3e;class C3e extends Jr{constructor(){super(...arguments),this.elementType="declareFieldReference"}typecheck(e){(0,Gl.typecheckDeclare)(e,this)}}ft.DeclareFieldReference=C3e;class b3e extends Jr{constructor(){super(...arguments),this.elementType="measureFieldReference"}typecheck(e){(0,Gl.typecheckMeasure)(e,this)}}ft.MeasureFieldReference=b3e;class T3e extends Jr{constructor(){super(...arguments),this.elementType="dimensionFieldReference"}typecheck(e){(0,Gl.typecheckDimension)(e,this)}}ft.DimensionFieldReference=T3e;class R3e extends Jr{constructor(){super(...arguments),this.elementType="viewOrScalarFieldReference"}typecheck(e){}}ft.ViewOrScalarFieldReference=R3e;class O3e extends AH.MalloyElement{constructor(e){super(),this.joinPath=e,this.elementType="wildcardFieldReference",this.isNoteableObj=!0,this.extendNote=_H.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}.*`:"*"}}ft.WildcardFieldReference=O3e;class D3e extends h3e.DefinitionList{constructor(e){super(e),this.elementType="fieldReferenceList"}}ft.FieldReferences=D3e,Object.defineProperty(D1,"__esModule",{value:!0}),D1.RefinedSource=void 0;const N3e=We,w3e=Ad,F3e=Hl,L3e=du,I3e=Sd,B3e=Cd,$3e=bd,k3e=Os,P3e=Td,M3e=zl,j3e=Ql,U3e=vd,q3e=bi,vH=ao,IO=ft;class H3e extends k3e.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 _ of this.refinement.list){if(_ instanceof M3e.ObjectAnnotation)continue;const v=_;if(_ instanceof B3e.PrimaryKey){if(i){const S="multiple-primary-keys";i.logError(S,"Primary key already defined"),_.logError(S,"Primary key redefined")}i=_}else if(_ instanceof I3e.FieldListEdit){if(s){const S="multiple-field-list-edits";s.logError(S,"Too many accept/except statements"),_.logError(S,"Too many accept/except statements")}s=_}else _ instanceof F3e.DeclareFields||_ instanceof q3e.JoinStatement||_ instanceof $3e.Views||_ instanceof j3e.Renames?(o.push(..._.list),_.accessModifier&&l.push({fields:_.delarationNames,access:_.accessModifier})):_ instanceof L3e.Filter?u.push(_):_ instanceof P3e.TimezoneStatement?a=_.tz:v.logError("unexpected-source-property",`Unexpected source property: '${v.elementType}'`)}const c=n?new U3e.ParameterSpace(n):void 0,f=structuredClone(this.source.getSourceDef(c)),{fieldsToInclude:x,modifiers:h,renames:p,notes:m}=z3e(this.includeList,f);for(const _ of l)for(const v of _.fields)h.set(v,_.access);i&&(f.primaryKey=i.field.name);const g=w3e.RefinedSpace.filteredFrom(f,s,x,p,c);if(a&&g.setTimezone(a),n&&g.addParameters(n),g.pushFields(...o),i){const _=i.field.getField(g);_.error&&i.logError(_.error.code,_.error.message)}g.addAccessModifiers(h),g.addNotes(m);const y=g.structDef(),E=y.filterList||[];let A=!1;for(const _ of u)for(const v of _.list){const S=v.filterCondition(g);(0,N3e.expressionIsCalculation)(S.expressionType)?v.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)}}D1.RefinedSource=H3e;function z3e(t,e){var n,r,i,s,o,u,a,l,c;const f=new Set(e.fields.map(S=>S.name)),x=new Set(e.fields.filter(S=>S.accessModifier==="private").map(S=>S.name));let h;const p=new Set;let m,g;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 vH.IncludeAccessItem)for(const C of S.fields)if(C.name instanceof IO.WildcardFieldReference)C.name.joinPath&&C.logError("unsupported-path-in-include","Wildcards with paths are not supported in `include` blocks"),m!==void 0?S.logError("already-used-star-in-include","Wildcard already used in this include block"):(m=(n=S.kind)!==null&&n!==void 0?n:"inherit",g={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;x.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 IO.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 vH.IncludeExceptItem)for(const C of S.fields)C instanceof IO.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",m="inherit",p.add(C.refString));const _=new Set(f);p.forEach(S=>_.delete(S)),x.forEach(S=>_.delete(S));let v;if(m!==void 0)for(const S of _)m!=="inherit"&&y.set(S,m),g&&A.set(S,{...g});return h!=="exclude"?m!==void 0?v=f:v=p:v=_,{fieldsToInclude:v,modifiers:y,renames:E,notes:A}}var lo={};Object.defineProperty(lo,"__esModule",{value:!0}),lo.SourceQueryElement=void 0;const Q3e=Ge;class BO extends Q3e.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 BO&&n.errored){e=!1;break}return e}}lo.SourceQueryElement=BO;var e_={},Yc={};Object.defineProperty(Yc,"__esModule",{value:!0}),Yc.QuerySource=void 0;const G3e=Os,W3e=fy;class V3e extends G3e.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,W3e.v4)()}`,type:"query_source",query:i.query};return(r=this.document())===null||r===void 0||r.rememberToAddModelAnnotations(s),{...s,parameters:this.packParameters(n)}}}Yc.QuerySource=V3e;var Rd={},B1={};Object.defineProperty(B1,"__esModule",{value:!0}),B1.QueryBase=void 0;const $O=it,SH=We,Y3e=pd,K3e=Ge;class J3e extends K3e.MalloyElement{resolveCompositeSource(e,n){var r;const i=n.pipeline[0];if(i&&((0,SH.isQuerySegment)(i)||(0,SH.isIndexSegment)(i))){const s=(r=i.compositeFieldUsage)!==null&&r!==void 0?r:(0,$O.emptyCompositeFieldUsage)();if(!(0,$O.isEmptyCompositeFieldUsage)(s)||e.type==="composite")return(0,$O.resolveCompositeSources)(e,s).sourceDef}}query(){const{query:e}=this.queryComp(!0);return{...e,pipeline:(0,Y3e.detectAndRemovePartialStages)(e.pipeline,this)}}}B1.QueryBase=J3e,Object.defineProperty(Rd,"__esModule",{value:!0}),Rd.QueryArrow=void 0;const X3e=We,Z3e=Os,CH=Er,eye=B1;class tye extends eye.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 Z3e.Source){const x=e?this.source.structRef(void 0):{structRef:this.source.getSourceDef(void 0)};i={type:"query",...x,pipeline:[],location:this.location},r=(0,X3e.refIsStructDef)(x.structRef)?x.structRef:this.source.getSourceDef(void 0),s=new CH.StaticSourceSpace(r)}else{const x=this.source.queryComp(e);i=x.query,r=x.outputStruct,s=new CH.StaticSourceSpace(x.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}}}Rd.QueryArrow=tye,Object.defineProperty(e_,"__esModule",{value:!0}),e_.SQArrow=void 0;const nye=lo,rye=Yc,iye=Rd;class sye extends nye.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 iye.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 rye.QuerySource(e);return this.has({asSource:n}),n}}e_.SQArrow=sye;var t_={},Od={},rs={};Object.defineProperty(rs,"__esModule",{value:!0}),rs.getStructFieldDef=rs.getFinalStruct=rs.opOutputStruct=void 0;const bH=Tl,oye=fc,n_=We,TH=Lr;function RH(t,e,n){const r=TH.ErrorFactory.didCreate(e)||(0,n_.structHasErrors)(e);(0,n_.isPartialSegment)(n)&&(n={...n,type:"reduce"});const i=(0,n_.segmentHasErrors)(n);if(!r&&!i)try{const s=oye.Segment.nextStructDef(e,n);if((0,n_.isSourceDef)(s))return s;t.logError("failed-to-compute-output-schema",`INTERNAL ERROR model/Segment.nextStructDef: RETURNED A NON SOURCE
1262
1262
  STRUCTDEF: ${(0,bH.inspect)(s,{breakLength:72,depth:1/0})}`)}catch(s){t.logError("failed-to-compute-output-schema",`INTERNAL ERROR model/Segment.nextStructDef: ${s.message}
1263
1263
  QUERY: ${(0,bH.inspect)(n,{breakLength:72,depth:1/0})}`)}return TH.ErrorFactory.structDef}rs.opOutputStruct=RH;function uye(t,e,n){for(const r of n)e=RH(t,e,r);return e}rs.getFinalStruct=uye;function aye(t,e){return t.fields.find(n=>(n.as||n.name)===e)}rs.getStructFieldDef=aye,Object.defineProperty(Od,"__esModule",{value:!0}),Od.QueryRefine=void 0;const lye=Er,cye=rs,fye=B1;class xye extends fye.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 lye.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,cye.getFinalStruct)(this.refinement,n.inputStruct,i),inputStruct:n.inputStruct}}}Od.QueryRefine=xye;var $1={},Dd={},Ti={};Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.mkTimeResult=Ti.resolution=Ti.castTo=Ti.timeOffset=void 0;const kO=We;function dye(t,e,n,r,i){return{node:"delta",kids:{base:(0,kO.mkTemporal)(e,t),delta:r},op:n,units:i}}Ti.timeOffset=dye;function hye(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,kO.isCastType)(n)&&(i.srcType={type:n}),i}Ti.castTo=hye;function pye(t){switch(t){case"hour":case"minute":case"second":case"microsecond":case"millisecond":return"timestamp"}return"date"}Ti.resolution=pye;function gye(t,e){if(e){if(t.type==="timestamp")return{...t,timeframe:e};if((0,kO.isDateUnit)(e))return{...t,timeframe:e}}return t}Ti.mkTimeResult=gye;var Kc={},ut={},Pt={};Object.defineProperty(Pt,"__esModule",{value:!0}),Pt.literalTimeResult=Pt.literalExprValue=Pt.computedErrorExprValue=Pt.computedTimeResult=Pt.computedExprValue=void 0;const OH=Qi,PO=it;function k1({value:t,dataType:e,from:n}){return{...e,value:t,expressionType:(0,OH.maxOfExpressionTypes)(n.map(r=>r.expressionType)),evalSpace:(0,OH.mergeEvalSpaces)(...n.map(r=>r.evalSpace)),compositeFieldUsage:(0,PO.mergeCompositeFieldUsage)(...n.map(r=>r.compositeFieldUsage))}}Pt.computedExprValue=k1;function mye({value:t,dataType:e,from:n,timeframe:r}){const i=k1({value:t,dataType:e,from:n}),s={...e,expressionType:i.expressionType,evalSpace:i.evalSpace,value:i.value,compositeFieldUsage:(0,PO.mergeCompositeFieldUsage)(...n.map(o=>o.compositeFieldUsage))};return r&&(s.timeframe=r),s}Pt.computedTimeResult=mye;function yye({dataType:t,from:e,error:n}){return k1({dataType:t??{type:"error"},value:{node:"error",message:n},from:e})}Pt.computedErrorExprValue=yye;function Eye(t){return k1({...t,from:[]})}Pt.literalExprValue=Eye;function Aye({value:t,dataType:e,timeframe:n}){const r=k1({value:t,dataType:e,from:[]}),i={...e,expressionType:r.expressionType,evalSpace:r.evalSpace,value:r.value,compositeFieldUsage:(0,PO.emptyCompositeFieldUsage)()};return n&&(i.timeframe=n),i}Pt.literalTimeResult=Aye;var Nd={};Object.defineProperty(Nd,"__esModule",{value:!0}),Nd.isGranularResult=void 0;function _ye(t){return t.type==="date"||t.type==="timestamp"?t.timeframe!==void 0:!1}Nd.isGranularResult=_ye;var co={};Object.defineProperty(co,"__esModule",{value:!0}),co.isComparison=co.isEquality=co.getExprNode=void 0;function vye(t){switch(t){case"~":return"like";case"!~":return"!like"}return t}co.getExprNode=vye;function DH(t){return t==="="||t==="!="||t==="~"||t==="!~"}co.isEquality=DH;function Sye(t){return DH(t)||t===">="||t==="<="||t===">"||t==="<"}co.isComparison=Sye;var Cye=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]}),bye=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Tye=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)&&Cye(e,t,n);return bye(e,t),e};Object.defineProperty(ut,"__esModule",{value:!0}),ut.applyBinary=ut.getMorphicValue=ut.ExprDuration=ut.ExpressionDef=ut.ATNodeType=void 0;const Wl=We,Jc=Tye(Ht),MO=ts,_a=Pt,Rye=Ti,NH=Nd,Oye=Ge,P1=co;class Dye extends Error{}var jO;(function(t){t[t.And=0]="And",t[t.Or=1]="Or",t[t.Value=2]="Value",t[t.Partial=3]="Partial"})(jO||(ut.ATNodeType=jO={}));class wH extends Oye.MalloyElement{constructor(){super(...arguments),this.legalChildTypes=Jc.anyAtomicT}granular(){return!1}requestExpression(e){return this.getExpression(e)}defaultFieldName(){}typeCheck(e,n){return n.type!=="error"&&!Jc.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 ${Jc.inspect(n)}`),!1):!0}apply(e,n,r,i=!1){return BH(e,r,n,this)}canSupportPartitionBy(){return!1}canSupportOrderBy(){return!1}canSupportLimit(){return!1}supportsWhere(e){return(0,Wl.expressionIsAggregate)(e.expressionType)}atNodeType(){return jO.Value}atExpr(){return this}}ut.ExpressionDef=wH;class UO extends wH{constructor(e,n){super({n:e}),this.n=e,this.timeframe=n,this.elementType="duration",this.legalChildTypes=[Jc.timestampT,Jc.dateT]}apply(e,n,r){const i=r.getExpression(e);if(this.typeCheck(this,i),(0,Wl.isTemporalType)(i.type)&&(n==="+"||n==="-")){const s=this.n.getExpression(e);if(!Jc.typeEq(s,Jc.numberT))return this.logError("invalid-duration-quantity",`Duration quantity needs number not '${s.type}`),(0,MO.errorFor)("illegal unit expression");let o;return(0,NH.isGranularResult)(i)&&i.timeframe===this.timeframe&&(o=i.timeframe),i.type==="date"&&!(0,Wl.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,Rye.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]})}}ut.ExprDuration=UO;function FH(t,e){return t.type===e?t.value:t.morphic&&t.morphic[e]}function Nye(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]})}ut.getMorphicValue=Nye;function LH(t,e,n,r){const i=(0,Wl.isTemporalType)(e.type),s=(0,Wl.isTemporalType)(r.type),o=(0,P1.getExprNode)(n);if(i&&s)if(e.type!==r.type){const u=FH(e,"timestamp"),a=FH(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 wye(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 Fye(t,e,n){const r=e==="!="||e==="!~",i=r?"is-not-null":"is-null";if(t.type==="null"||n.type==="null")return t.type!=="null"?{node:i,e:t.value}:n.type!=="null"?{node:i,e:n.value}:{node:r?"false":"true"}}function Lye(t,e,n,r){var i;const s=e.getExpression(t),o=r.getExpression(t),u=(0,P1.getExprNode)(n),a=M1("boolean",s,o);if(a)return a;const l=Wl.TD.isSQL(s)?s.rawType||"typeless-left":void 0,c=Wl.TD.isSQL(o)?o.rawType||"typeless-right":void 0;if((l||c)&&!(s.type==="null"||o.type==="null"||l===c)){const h=j1(e,s,r,o);if(h)return{...h,type:"boolean"}}let f=LH(e,s,n,o)||{node:u,kids:{left:s.value,right:o.value}};if(s.type!=="error"&&o.type!=="error")switch(n){case"~":case"!~":{if(s.type!=="string"||o.type!=="string"){let x=wye(s,o);if(x)n[0]==="!"&&(x={node:"not",e:{...x}});else throw new Dye("Incompatible types for match('~') operator");f=x}break}case"=":case"!=":{f=(i=Fye(s,n,o))!==null&&i!==void 0?i:f;break}}return(0,_a.computedExprValue)({dataType:{type:"boolean"},value:f,from:[s,o]})}function Iye(t,e,n,r){const i=e.getExpression(t),s=r.getExpression(t),o=M1("boolean",i,s);if(o)return o;const u=j1(e,i,r,s);if(u)return{...u,type:"boolean"};const a=LH(e,i,n,s)||{node:(0,P1.getExprNode)(n),kids:{left:i.value,right:s.value}};return(0,_a.computedExprValue)({dataType:{type:"boolean"},value:a,from:[i,s]})}function IH(t,e,n,r){const i=e.getExpression(t),s=r.getExpression(t),o=M1("number",i,s);if(o)return o;const u=j1(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,MO.errorFor)("numbers required")}function Bye(t,e,n,r){const i=e.getExpression(t),s=r.getExpression(t),o=j1(e,i,r,s);if(o)return o;const u=(0,Wl.isTemporalType)(i.type),a=M1(u?"error":"number",i,s);if(a)return a;if(u){let l=r;if(s.type!=="duration")if((0,NH.isGranularResult)(i))l=new UO(r,i.timeframe);else if(i.type==="date")l=new UO(r,"day");else return e.loggedErrorExpr("time-offset-type-mismatch",`Can not offset time by '${s.type}'`);return l.apply(t,n,e)}return IH(t,e,n,r)}function BH(t,e,n,r){if((0,P1.isEquality)(n))return Lye(t,e,n,r);if((0,P1.isComparison)(n))return Iye(t,e,n,r);if(n==="+"||n==="-")return Bye(t,e,n,r);if(n==="*")return IH(t,e,n,r);if(n==="/"||n==="%"){const i=e.getExpression(t),s=r.getExpression(t),o=j1(e,i,r,s);if(o)return o;const u=M1("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,MO.errorFor)("divide type mismatch")}return e.loggedErrorExpr("unexpected-binary-operator",`Cannot use ${n} operator here`)}ut.applyBinary=BH;function M1(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 j1(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(Kc,"__esModule",{value:!0}),Kc.ExprIdReference=void 0;const $ye=We,kye=ut,Pye=it;class Mye extends kye.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,Pye.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,$ye.expressionIsAggregate)(i.expressionType)?"output":i.evalSpace;return{...i,value:o,evalSpace:u,compositeFieldUsage:s}}return this.loggedErrorExpr(n.error.code,n.error.message)}}Kc.ExprIdReference=Mye,Object.defineProperty(Dd,"__esModule",{value:!0}),Dd.NamedSource=void 0;const qO=We,jye=Os,Uye=Lr,qye=Ti,$H=Ge,Hye=Kc,zye=vd;class Qye extends jye.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 $H.ModelEntryReference&&this.has({ref:e})}get refName(){return this.ref instanceof $H.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,qO.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 Hye.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 x=e??new zye.ParameterSpace(r??[]),h=a.value.getExpression(x);let p=h.value;h.type!==f.type&&(0,qO.isCastType)(f.type)&&(p=(0,qye.castTo)(f.type,h.value,h.type,!0)),o[c]={...f,value:p}}}for(const a in n)a in o||((0,qO.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=Uye.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}}Dd.NamedSource=Qye;var U1={},r_={};Object.defineProperty(r_,"__esModule",{value:!0}),r_.QueryHeadStruct=void 0;const Gye=We,Wye=Os,Vye=Dd;class Yye extends Wye.Source{constructor(e,n){super(),this.fromRef=e,this.sourceArguments=n,this.elementType="internalOnlyQueryHead"}structRef(){return{structRef:this.fromRef}}getSourceDef(e){if((0,Gye.refIsStructDef)(this.fromRef))return this.fromRef;const n=new Vye.NamedSource(this.fromRef,this.sourceArguments,void 0);return this.has({exploreReference:n}),n.getSourceDef(e)}}r_.QueryHeadStruct=Yye,Object.defineProperty(U1,"__esModule",{value:!0}),U1.QueryReference=void 0;const HO=Lr,Kye=Ge,Jye=r_,Xye=We,Zye=rs;class eEe extends Kye.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:HO.ErrorFactory.structDef,outputStruct:HO.ErrorFactory.structDef,query:HO.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 Jye.QueryHeadStruct(r.structRef,r.sourceArguments);this.has({queryHead:s});const o=s.getSourceDef(void 0),u=(0,Zye.getFinalStruct)(this,o,r.pipeline);return{query:e||(0,Xye.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}}U1.QueryReference=eEe,Object.defineProperty($1,"__esModule",{value:!0}),$1.SQReference=void 0;const tEe=lo,nEe=Yc,rEe=Dd,kH=U1,PH=Qi;class iEe extends tEe.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 kH.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,PH.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 kH.QueryReference(this.ref);this.asSource=new nEe.QuerySource(n)}else if((0,PH.isSourceDef)(e))this.asSource=new rEe.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}}$1.SQReference=iEe,Object.defineProperty(t_,"__esModule",{value:!0}),t_.SQRefine=void 0;const sEe=lo,oEe=Yc,uEe=Od,aEe=$1;class lEe extends sEe.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 aEe.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 uEe.QueryRefine(e,this.refine);return this.has({query:n}),n}}getSource(){const e=this.getQuery();if(e){const n=new oEe.QuerySource(e);return this.has({queryAsSource:n}),n}}}t_.SQRefine=lEe;var i_={},q1={};Object.defineProperty(q1,"__esModule",{value:!0}),q1.QueryRaw=void 0;const cEe=We,fEe=Ge;class xEe extends fEe.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,cEe.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}}q1.QueryRaw=xEe;var H1={},s_={};Object.defineProperty(s_,"__esModule",{value:!0}),s_.makeSQLSentence=void 0;const dEe=We,hEe=Ot;function pEe(t,e){return{name:`sql://${e}/${gEe(t)}`,connection:e,select:t}}s_.makeSQLSentence=pEe;function gEe(t){const e=t.map(n=>(0,dEe.isSegmentSQL)(n)?n.sql:JSON.stringify(n));return(0,hEe.generateHash)(e.join(";"))}Object.defineProperty(H1,"__esModule",{value:!0}),H1.SQLSource=void 0;const mEe=s_,yEe=Os,o_=Lr;class EEe extends yEe.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,mEe.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 o_.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"),o_.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(`
1264
1264
  `)),o_.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"),o_.ErrorFactory.structDef}}H1.SQLSource=EEe,Object.defineProperty(i_,"__esModule",{value:!0}),i_.SQSource=void 0;const AEe=lo,_Ee=q1,vEe=H1;class SEe extends AEe.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 vEe.SQLSource){const e=new _Ee.QueryRaw(this.theSource);return this.has({rawQuery:e}),e}else this.sqLog("invalid-source-as-query","This source cannot be used as a query")}}i_.SQSource=SEe;var u_={};Object.defineProperty(u_,"__esModule",{value:!0}),u_.SQExtend=void 0;const CEe=D1,bEe=lo;class TEe extends bEe.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 CEe.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}}u_.SQExtend=TEe;var a_={},l_={};Object.defineProperty(l_,"__esModule",{value:!0}),l_.CompositeSource=void 0;const REe=We,OEe=Os;class DEe extends OEe.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 x=r[c];x.connection!==i&&l.logError("composite-source-connection-mismatch",`All sources in a composite source must share the same connection; connection \`${x.connection}\` differs from previous connection \`${i}\``);for(const h of x.fields){if(!(0,REe.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,m=a.get(p);if(m===void 0){const g={...h,name:p,as:void 0,e:{node:"compositeField"},compositeFieldUsage:{fields:[p],joinedUsage:{}},code:this.code,location:this.codeLocation};a.set(p,g),u.push(g)}else h.accessModifier==="internal"&&(m.accessModifier="internal")}}),{type:"composite",sources:r,connection:i,fields:u,dialect:s,name:o,parameters:r[0].parameters}}}l_.CompositeSource=DEe,Object.defineProperty(a_,"__esModule",{value:!0}),a_.SQCompose=void 0;const NEe=l_,wEe=lo;class FEe extends wEe.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(LEe(e))return this.asSource=new NEe.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}}a_.SQCompose=FEe;function LEe(t){return t.every(e=>e!==void 0)}var c_={},va={},z1={},IEe=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]}),BEe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),$Ee=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)&&IEe(e,t,n);return BEe(e,t),e};Object.defineProperty(z1,"__esModule",{value:!0}),z1.BinaryBoolean=void 0;const kEe=ts,PEe=$Ee(Ht),MEe=co,jEe=Pt,UEe=ut;class qEe extends UEe.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=[PEe.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,jEe.computedExprValue)({dataType:{type:"boolean"},value:{node:(0,MEe.getExprNode)(this.op),kids:{left:n.value,right:r.value}},from:[n,r]}):(0,kEe.errorFor)("logical-op expected boolean")}}z1.BinaryBoolean=qEe;var HEe=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]}),zEe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),QEe=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)&&HEe(e,t,n);return zEe(e,t),e};Object.defineProperty(va,"__esModule",{value:!0}),va.ExprLegacyIn=va.ExprEquality=va.ExprCompare=void 0;const Jt=QEe(Ht),GEe=Pt,WEe=ut,VEe=z1,YEe={"~":[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 MH extends VEe.BinaryBoolean{constructor(e,n,r){super(e,n,r),this.elementType="a<=>b",this.legalChildTypes=YEe[n]}getExpression(e){return this.right.apply(e,this.op,this.left)}}va.ExprCompare=MH;class KEe extends MH{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)}}va.ExprEquality=KEe;class JEe extends WEe.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,GEe.computedExprValue)({dataType:{type:"boolean"},value:{node:"in",not:this.notIn,kids:{e:n.value,oneOf:r.map(i=>i.value)}},from:[n,...r]})}}va.ExprLegacyIn=JEe;var Q1={},wd={};Object.defineProperty(wd,"__esModule",{value:!0}),wd.ExprTime=void 0;const XEe=We,ZEe=Pt,eAe=ut;class zO extends eAe.ExpressionDef{constructor(e,n,r){super(),this.elementType="timestampOrDate",this.elementType=e,this.translationValue=(0,ZEe.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,XEe.isTemporalType)(n.type)&&(i.srcType={type:n.type}),r=i}return new zO(e,r,[n])}}wd.ExprTime=zO;var Vl={};Object.defineProperty(Vl,"__esModule",{value:!0}),Vl.Range=void 0;const tAe=ts,nAe=Pt,rAe=ut;class iAe extends rAe.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,nAe.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,tAe.errorFor)("a range is not a value")}}Vl.Range=iAe;var sAe=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]}),oAe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),uAe=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)&&sAe(e,t,n);return oAe(e,t),e};Object.defineProperty(Q1,"__esModule",{value:!0}),Q1.ExprGranularTime=void 0;const QO=We,aAe=ts,jH=uAe(Ht),UH=Ti,lAe=ut,f_=wd,qH=Vl;class cAe extends lAe.ExpressionDef{constructor(e,n,r){super({expr:e}),this.expr=e,this.units=n,this.truncate=r,this.elementType="granularTime",this.legalChildTypes=[jH.timestampT,jH.dateT]}granular(){return!0}getExpression(e){const n=this.units,r=this.expr.getExpression(e);if(QO.TD.isTemporal(r)){const s={...r,timeframe:n};return this.truncate&&(s.value={node:"trunc",e:(0,QO.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,QO.isDateUnit)(n)?"date":"timestamp"),{...i,value:(0,aAe.errorFor)("granularity typecheck").value,evalSpace:"constant"}}toRange(e){const n=this.getExpression(e),r={node:"numberLiteral",literal:"1"};if(n.type==="timestamp"){const u=f_.ExprTime.fromValue("timestamp",n),a=new f_.ExprTime("timestamp",(0,UH.timeOffset)("timestamp",n.value,"+",r,this.units),[n]);return new qH.Range(u,a)}const i=new f_.ExprTime("date",n.value,[n]),s=(0,UH.timeOffset)("date",n.value,"+",r,this.units),o=new f_.ExprTime("date",s,[n]);return new qH.Range(i,o)}}Q1.ExprGranularTime=cAe,Object.defineProperty(c_,"__esModule",{value:!0}),c_.Apply=void 0;const fAe=va,xAe=Nd,HH=Q1;class dAe extends fAe.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,xAe.isGranularResult)(r)&&(n=new HH.ExprGranularTime(this.right,r.timeframe,!1))}return n instanceof HH.ExprGranularTime?n.toRange(e).apply(e,this.op,this.left):super.getExpression(e)}}c_.Apply=dAe;var Fd={},hAe=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]}),pAe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),gAe=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)&&hAe(e,t,n);return pAe(e,t),e};Object.defineProperty(Fd,"__esModule",{value:!0}),Fd.BinaryNumeric=void 0;const mAe=gAe(Ht),yAe=ut;class EAe extends yAe.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=[mAe.numberT]}getExpression(e){return this.right.apply(e,this.op,this.left)}}Fd.BinaryNumeric=EAe;var x_={},AAe=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]}),_Ae=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),vAe=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)&&AAe(e,t,n);return _Ae(e,t),e};Object.defineProperty(x_,"__esModule",{value:!0}),x_.Boolean=void 0;const SAe=ut,CAe=vAe(Ht);let bAe=class extends SAe.ExpressionDef{constructor(e){super(),this.value=e,this.elementType="boolean literal"}getExpression(){return{...CAe.boolT,value:{node:this.value}}}};x_.Boolean=bAe;var Yl={};Object.defineProperty(Yl,"__esModule",{value:!0}),Yl.FunctionOrdering=Yl.FunctionOrderBy=void 0;const GO=We,zH=Ge,TAe=Kc;class RAe extends zH.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,GO.expressionIsAggregate)(n.expressionType)||((0,GO.expressionIsScalar)(n.expressionType)?(!(this.field instanceof TAe.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,GO.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}}}Yl.FunctionOrderBy=RAe;class OAe extends zH.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))}}Yl.FunctionOrdering=OAe;var d_={};Object.defineProperty(d_,"__esModule",{value:!0}),d_.ExprAddSub=void 0;const DAe=Fd;class NAe extends DAe.BinaryNumeric{constructor(){super(...arguments),this.elementType="+-"}}d_.ExprAddSub=NAe;var Sa={},wAe=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]}),FAe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),LAe=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)&&wAe(e,t,n);return FAe(e,t),e};Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.ExprAggregateFunction=void 0;const G1=We,IAe=Ot,BAe=ts,QH=Er,GH=LAe(Ht),$Ae=ft,kAe=ut,PAe=yr,MAe=Kc;class jAe extends kAe.ExpressionDef{constructor(e,n,r){super(),this.func=e,this.legalChildTypes=[GH.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 x=f.found,h=x.typeDesc();if(!(x instanceof QH.StructSpaceField))if((0,G1.isAtomicFieldType)(h.type)){o=this.source,u={...GH.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(g=>UAe(g,p[0])))&&(a=p[0].map(g=>g.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,G1.expressionIsAggregate)(u.expressionType))return this.loggedErrorExpr("aggregate-of-aggregate","Aggregate expression cannot be aggregate");if(!(u.type==="error")){const f=this.getJoinUsage(s),x=this.source!==void 0||this.explicitSource;if(o&&!(!this.source&&f.every(p=>p.length===0))&&!this.isSymmetricFunction()){const p=VO(l,f),m=YO(this.elementType,p),g=x?m==null?void 0:m.message:"Join path is required for this calculation";if(g){const y=qAe(g,f,o,this.elementType),E=(i=m==null?void 0:m.code)!==null&&i!==void 0?i:"bad-join-usage";m?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,BAe.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(...WO(e,i))}if(this.expr){const r=this.expr.getExpression(e).value;n.push(...WO(e,r))}return n}}Sa.ExprAggregateFunction=jAe;function UAe(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 WO(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 QH.StructSpaceField&&u.length>0){const l=r(a.fieldSpace,u);return{...l,joinPath:[{...a.joinPathElement,name:o},...l.joinPath]}}else if(a instanceof PAe.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,IAe.exprWalk)(e))if(i.node==="field"){const s=r(t,i.path),o=s.def;if((0,G1.isAtomic)(o)&&!(0,G1.isJoined)(o))if((0,G1.hasExpression)(o)){const u=WO(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 VO(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 YO(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 qAe(t,e,n,r){if(e.length===0)return t;let i=e[0];for(const p of e.slice(1))for(let m=0;m<i.length;m++){const g=i[m],y=p[m];if(g.name!==y.name){i=i.slice(0,m);break}}const s=VO(i,e),o=YO(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=VO(l,e),f=YO(r,c),x=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 $Ae.FieldReference?`${n.refString}.${r}()`:n instanceof MAe.ExprIdReference?`${n.fieldReference.refString}.${r}()`:`${x}.${r}(${n.code})`,m=`${h}.${r}(${n.code})`;let g=`${t}; use \`${p}\``;return f===void 0&&h!==x&&(g+=` or \`${m}\` to get a result weighted with respect to \`${h}\``),g}}var h_={};Object.defineProperty(h_,"__esModule",{value:!0}),h_.ExprAlternationTree=void 0;const WH=Pt,Ld=ut,HAe=co;function KO(t){const e=t.atExpr();switch(e.atNodeType()){case Ld.ATNodeType.And:case Ld.ATNodeType.Partial:return;case Ld.ATNodeType.Or:{if(e instanceof VH){const n=KO(e.left);if(n){const r=KO(e.right);if(r)return[...n,...r]}}return}default:return e.granular()?void 0:[e]}}class VH extends Ld.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=KO(this)||[]),this.inList}apply(e,n,r,i){if((0,HAe.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,WH.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,WH.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==="|"?Ld.ATNodeType.Or:Ld.ATNodeType.And}}h_.ExprAlternationTree=VH;var Id={};Object.defineProperty(Id,"__esModule",{value:!0}),Id.ExprAsymmetric=void 0;const zAe=Sa;class QAe extends zAe.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}`}}}}Id.ExprAsymmetric=QAe;var p_={};Object.defineProperty(p_,"__esModule",{value:!0}),p_.ExprAvg=void 0;const GAe=Id;class WAe extends GAe.ExprAsymmetric{constructor(e,n,r){super("avg",e,n,r),this.has({source:n})}}p_.ExprAvg=WAe;var g_={};Object.defineProperty(g_,"__esModule",{value:!0}),g_.ExprCast=void 0;const VAe=Ti,YAe=Pt,KAe=ut;class JAe extends KAe.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,YAe.computedExprValue)({dataType:r,value:(0,VAe.castTo)(this.castType,n.value,n.type,this.safe),from:[n]})}}g_.ExprCast=JAe;var m_={},XAe=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]}),ZAe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),e_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)&&XAe(e,t,n);return ZAe(e,t),e};Object.defineProperty(m_,"__esModule",{value:!0}),m_.ExprCoalesce=void 0;const YH=Qi,KH=e_e(Ht),t_e=ut;class n_e extends t_e.ExpressionDef{constructor(e,n){super({expr:e,altExpr:n}),this.expr=e,this.altExpr=n,this.elementType="coalesce expression",this.legalChildTypes=KH.anyAtomicT}getExpression(e){const n=this.expr.getExpression(e),r=this.altExpr.getExpression(e);return n.type==="null"?r:(KH.typeEq(n,r)||this.logError("mismatched-coalesce-types",`Mismatched types for coalesce (${n.type}, ${r.type})`),{...n.type==="error"?r:n,expressionType:(0,YH.maxExpressionType)(n.expressionType,r.expressionType),value:{node:"coalesce",kids:{left:n.value,right:r.value}},evalSpace:(0,YH.mergeEvalSpaces)(n.evalSpace,r.evalSpace)})}}m_.ExprCoalesce=n_e;var y_={};Object.defineProperty(y_,"__esModule",{value:!0}),y_.ExprCount=void 0;const r_e=it,i_e=Sa;class s_e extends i_e.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,r_e.emptyCompositeFieldUsage)()}}}y_.ExprCount=s_e;var E_={},o_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]}),u_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),a_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)&&o_e(e,t,n);return u_e(e,t),e};Object.defineProperty(E_,"__esModule",{value:!0}),E_.ExprCountDistinct=void 0;const A_=a_e(Ht),l_e=Sa;class c_e extends l_e.ExprAggregateFunction{constructor(e){super("distinct",e),this.legalChildTypes=[A_.numberT,A_.stringT,A_.dateT,A_.timestampT]}returns(e){return{type:"number",numberType:"integer",evalSpace:e.evalSpace,expressionType:"aggregate",value:e.value,compositeFieldUsage:e.compositeFieldUsage}}}E_.ExprCountDistinct=c_e;var __={},Kl={};Object.defineProperty(Kl,"__esModule",{value:!0}),Kl.Limit=void 0;const f_e=Ge,x_e=Tn;class d_e extends f_e.MalloyElement{constructor(e){super(),this.limit=e,this.elementType="limit",this.queryRefinementStage=x_e.LegalRefinementStage.Tail,this.forceQueryClass=void 0}}Kl.Limit=d_e;var Bd={};Object.defineProperty(Bd,"__esModule",{value:!0}),Bd.PartitionBy=void 0;const h_e=Ge;class p_e extends h_e.ListOf{constructor(e){super(e),this.partitionFields=e,this.elementType="partition_by"}}Bd.PartitionBy=p_e;var W1={},Jl={};Object.defineProperty(Jl,"__esModule",{value:!0}),Jl.FieldName=void 0;const g_e=Ge;class m_e extends g_e.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])}}Jl.FieldName=m_e;var y_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]}),E_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),A_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)&&y_e(e,t,n);return E_e(e,t),e};Object.defineProperty(W1,"__esModule",{value:!0}),W1.ExprFunc=void 0;const Jn=We,__e=ts,v_e=Vc,S_e=Pt,C_e=ut,b_e=Jl,JH=Ot,XH=A_e(Ht),T_e=it;class R_e extends C_e.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(F=>F.getExpression(e));if(this.isRaw){const F=[`${this.name}(`];u.forEach((z,X)=>{X!==0&&F.push(","),F.push(z.value)}),F.push(")");const B=(r=u[0])!==null&&r!==void 0?r:{type:"number"},U=this.rawType?{type:this.rawType}:B;return(0,S_e.computedExprValue)({dataType:U,value:(0,JH.composeSQLExpr)(F),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,__e.errorFor)(c);let f,x=(s=this.source)===null||s===void 0?void 0:s.path;if(this.source){const B=this.source.getField(e).found;if(B){const U=B.typeDesc();if((0,Jn.isAtomicFieldType)(U.type))f={...XH.atomicDef(U),expressionType:U.expressionType,value:{node:"field",path:this.source.path},evalSpace:U.evalSpace,compositeFieldUsage:U.compositeFieldUsage},x=this.source.path.slice(0,-1);else if(!(B instanceof v_e.StructSpaceFieldBase))return this.loggedErrorExpr("invalid-aggregate-source",`Aggregate source cannot be a ${U.type}`)}else this.loggedErrorExpr("aggregate-source-not-found",`Reference to undefined value ${this.source.refString}`)}const h=[...f?[f]:[],...u],p=O_e(l,h);if(p===void 0)return this.loggedErrorExpr("no-matching-function-overload",`No matching overload for function ${this.name}(${h.map(F=>F.type).join(", ")})`);const{overload:m,expressionTypeErrors:g,evalSpaceErrors:y,nullabilityErrors:E,returnType:A}=p;for(const F of g){const B=F.argIndex-(f?1:0),U=(0,Jn.expressionIsScalar)(F.maxExpressionType)?"scalar":"scalar or aggregate";this.args[B].logError("invalid-function-argument-expression-type",`Parameter ${F.argIndex+1} ('${F.param.name}') of ${this.name} must be ${U}, but received ${F.actualExpressionType}`)}for(const F of y){const B=F.argIndex-(f?1:0),U=F.maxEvalSpace==="literal"?"literal":F.maxEvalSpace==="constant"?"literal or constant":"literal, constant or output";this.args[B].logError("invalid-function-argument-evaluation-space",`Parameter ${F.argIndex+1} ('${F.param.name}') of ${this.name} must be ${U}, but received ${F.actualEvalSpace}`)}for(const F of E){const B=F.argIndex-(f?1:0);this.args[B].logError("literal-null-function-argument",`Parameter ${F.argIndex+1} ('${F.param.name}') of ${this.name} must not be a literal null`)}p.returnTypeError&&this.logError(p.returnTypeError.code,p.returnTypeError.parameters);const _=m.returnType,v=(0,Jn.maxOfExpressionTypes)([(o=_.expressionType)!==null&&o!==void 0?o:"scalar",...h.map(F=>F.expressionType)]);if(!(0,Jn.expressionIsAggregate)(m.returnType.expressionType)&&this.source!==void 0)return this.loggedErrorExpr("non-aggregate-function-with-source",`Cannot call function ${this.name}(${h.map(F=>F.type).join(", ")}) with source`);const S={node:"function_call",overload:m,name:this.name,kids:{args:h.map(F=>F.value)},expressionType:v,structPath:x};let C=S;if(n!=null&&n.orderBys&&n.orderBys.length>0){const F=(0,Jn.expressionIsAnalytic)(m.returnType.expressionType);if(F||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"),m.supportsOrderBy||F){const B=m.supportsOrderBy!=="only_default",U=n.orderBys.flatMap(z=>F?z.getAnalyticOrderBy(e):z.getAggregateOrderBy(e,B));S.kids.orderBy=U}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&&(m.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 F=[];for(const B of n.partitionBys)for(const U of B.partitionFields){const z=U.getField(e);z.found===void 0?U.logError("partition-by-not-found",`${U.refString} is not defined`):(0,Jn.expressionIsAnalytic)(z.found.typeDesc().expressionType)||(0,Jn.expressionIsUngroupedAggregate)(z.found.typeDesc().expressionType)?U.logError("non-scalar-or-aggregate-partition-by","Partition expression must be scalar or aggregate"):F.push(U.nameString)}S.partitionBy=F}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 F=h[0].value;if(F.node!=="stringLiteral")this.logError("invalid-sql-function-argument",`Invalid string literal for \`${l.name}\``);else{const B=F.literal,U=D_e(B),z=U.filter(W=>W.type==="interpolation"&&W.name.includes(".")).map(W=>W.type==="interpolation"?`\${${W.name}}`:`\${${W.value}}`);if(z.length>0){const W=z.length===1?`'.' paths are not yet supported in sql interpolations, found ${z.at(0)}`:`'.' paths are not yet supported in sql interpolations, found (${z.join(", ")})`;return this.loggedErrorExpr("unsupported-sql-function-interpolation",W)}const X=[];for(const W of U)if(W.type==="string")X.push(W.value);else if(W.name==="TABLE")X.push({node:"source-reference"});else{const ue=new b_e.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"?X.push({node:"parameter",path:[W.name]}):X.push({node:"field",path:[W.name]})}C=(0,JH.composeSQLExpr)(X)}}const b=(0,Jn.mergeEvalSpaces)(...h.map(F=>F.evalSpace)),O=b==="constant"?"constant":(0,Jn.expressionIsScalar)(v)?b:"output";return{...(0,Jn.isAtomic)(A)?XH.atomicDef(A):A,expressionType:v,value:C,evalSpace:O,compositeFieldUsage:(0,T_e.mergeCompositeFieldUsage)(...h.map(F=>F.compositeFieldUsage))}}}W1.ExprFunc=R_e;function O_e(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],m=r.params[s];if(m===void 0){o=!1;break}if(!m.allowedTypes.some(y=>{var E;const{dataTypeMatch:A,genericsSet:_}=$d(i,(E=r.genericTypes)!==null&&E!==void 0?E:[],p,y);for(const v of _)i.set(v.name,v.type);return y.expressionType&&((0,Jn.isExpressionTypeLEQ)(p.expressionType,y.expressionType)||a.push({argIndex:h,maxExpressionType:y.expressionType,actualExpressionType:p.expressionType,param:m})),(y.evalSpace==="literal"&&p.evalSpace!=="literal"||y.evalSpace==="constant"&&(p.evalSpace==="input"||p.evalSpace==="output")||(0,Jn.expressionIsAnalytic)(r.returnType.expressionType)&&p.evalSpace==="input")&&l.push({argIndex:h,param:m,maxEvalSpace:y.evalSpace,actualEvalSpace:p.evalSpace}),y.evalSpace==="literal"&&p.type==="null"&&c.push({argIndex:h,param:m}),A})){o=!1;break}m.isVariadic?h===e.length-1&&(u=!0):s++}if(!u&&(s!==e.length||s!==r.params.length))continue;const f=v_(r.returnType,i),x=(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:x}}}function D_e(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 $d(t,e,n,r){var i,s,o,u;if(Jn.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,Jn.isScalarArray)(n))return(0,Jn.isRepeatedRecordFunctionParam)(r)?{dataTypeMatch:!1,genericsSet:[]}:$d(t,e,n.elementTypeDef,r.elementTypeDef);if((0,Jn.isRepeatedRecordFunctionParam)(r)){const a={type:"record",fields:r.fields},l={type:"record",fields:n.fields};return $d(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 x=$d(new Map([...t.entries(),...a.map(h=>[h.name,h.type])]),e,c,f);a.push(...x.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 $d(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=$d(t,e,n,c);if(f.dataTypeMatch){if(!(0,Jn.isAtomic)(n)&&n.type!=="null")continue;const x={name:r.generic,type:n};return{dataTypeMatch:!0,genericsSet:[...f.genericsSet,x]}}}}return{dataTypeMatch:!1,genericsSet:[]}}function v_(t,e){switch(t.type){case"array":{if("fields"in t){const i=t.fields.map(s=>{const o=v_(s,e);return{...s,...o}});return{error:void 0,returnType:{type:"array",elementTypeDef:t.elementTypeDef,fields:i}}}const n=v_(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,Jn.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=v_(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 N_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]}),w_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),F_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)&&N_e(e,t,n);return w_e(e,t),e};Object.defineProperty(__,"__esModule",{value:!0}),__.ExprProps=void 0;const L_e=We,I_e=ts,B_e=F_e(Ht),$_e=Yl,k_e=Kl,P_e=Bd,M_e=ut,j_e=W1,U_e=it;class q_e extends M_e.ExpressionDef{constructor(e,n){super({expr:e,statements:n}),this.expr=e,this.statements=n,this.elementType="expression with props",this.legalChildTypes=B_e.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,L_e.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,U_e.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,I_e.errorFor)("cannot filter type"))}return n}getExpression(e){const n=[];let r;const i=[],s=[];for(const u of this.statements)u instanceof P_e.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 k_e.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 $_e.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 j_e.ExprFunc?this.expr.getPropsExpression(e,{partitionBys:n,limit:r,orderBys:i}):this.expr.getExpression(e);return this.getFilteredExpression(e,o,s)}}__.ExprProps=q_e;var S_={},H_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]}),z_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Q_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)&&H_e(e,t,n);return z_e(e,t),e};Object.defineProperty(S_,"__esModule",{value:!0}),S_.ExprLogicalOp=void 0;const G_e=z1,ZH=Q_e(Ht);class W_e extends G_e.BinaryBoolean{constructor(){super(...arguments),this.elementType="logical operator",this.legalChildTypes=[ZH.boolT,ZH.aggregateBoolT]}}S_.ExprLogicalOp=W_e;var C_={},V_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]}),Y_e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),K_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)&&V_e(e,t,n);return Y_e(e,t),e};Object.defineProperty(C_,"__esModule",{value:!0}),C_.ExprMax=void 0;const b_=K_e(Ht),J_e=Sa;class X_e extends J_e.ExprAggregateFunction{constructor(e){super("max",e),this.legalChildTypes=[b_.numberT,b_.stringT,b_.dateT,b_.timestampT]}returns(e){return e}}C_.ExprMax=X_e;var T_={},Z_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]}),eve=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),tve=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)&&Z_e(e,t,n);return eve(e,t),e};Object.defineProperty(T_,"__esModule",{value:!0}),T_.ExprMin=void 0;const R_=tve(Ht),nve=Sa;class rve extends nve.ExprAggregateFunction{constructor(e){super("min",e),this.legalChildTypes=[R_.numberT,R_.stringT,R_.dateT,R_.timestampT]}returns(e){return e}}T_.ExprMin=rve;var O_={},ive=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]}),sve=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ove=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)&&ive(e,t,n);return sve(e,t),e};Object.defineProperty(O_,"__esModule",{value:!0}),O_.ExprMinus=void 0;const uve=ts,ez=ove(Ht),ave=ut;class lve extends ave.ExpressionDef{constructor(e){super({expr:e}),this.expr=e,this.elementType="unary minus",this.legalChildTypes=[ez.numberT]}getExpression(e){const n=this.expr.getExpression(e);return ez.typeIn(n,this.legalChildTypes)?{...n,type:"number",value:{node:"unary-",e:n.value}}:(0,uve.errorFor)("negate requires number")}}O_.ExprMinus=lve;var D_={};Object.defineProperty(D_,"__esModule",{value:!0}),D_.ExprMulDiv=void 0;const cve=Fd;class fve extends cve.BinaryNumeric{constructor(){super(...arguments),this.elementType="*/%"}}D_.ExprMulDiv=fve;var N_={},V1={};Object.defineProperty(V1,"__esModule",{value:!0}),V1.Unary=void 0;const xve=ut;class dve extends xve.ExpressionDef{constructor(e){super({expr:e}),this.expr=e}}V1.Unary=dve;var hve=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]}),pve=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),gve=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)&&hve(e,t,n);return pve(e,t),e};Object.defineProperty(N_,"__esModule",{value:!0}),N_.ExprNot=void 0;const tz=gve(Ht),mve=V1;class yve extends mve.Unary{constructor(e){super(e),this.elementType="not",this.legalChildTypes=[tz.boolT,tz.nullT]}getExpression(e){const n=this.expr.getExpression(e),r=this.typeCheck(this.expr,n);return{...n,type:"boolean",value:{node:"not",e:r?n.value:{node:"false"}}}}}N_.ExprNot=yve;var w_={};Object.defineProperty(w_,"__esModule",{value:!0}),w_.ExprNow=void 0;const Eve=ut,Ave=it;class _ve extends Eve.ExpressionDef{constructor(){super(...arguments),this.elementType="timestamp"}getExpression(e){return{type:"timestamp",expressionType:"scalar",evalSpace:"constant",value:{node:"now"},compositeFieldUsage:(0,Ave.emptyCompositeFieldUsage)()}}}w_.ExprNow=_ve;var F_={};Object.defineProperty(F_,"__esModule",{value:!0}),F_.ExprNULL=void 0;const vve=Pt,Sve=ut;class Cve extends Sve.ExpressionDef{constructor(){super(...arguments),this.elementType="NULL"}getExpression(){return(0,vve.literalExprValue)({dataType:{type:"null"},value:{node:"null"}})}}F_.ExprNULL=Cve;var L_={};Object.defineProperty(L_,"__esModule",{value:!0}),L_.ExprNumber=void 0;const bve=Pt,Tve=ut;class Rve extends Tve.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,bve.literalExprValue)({dataType:n,value:{node:"numberLiteral",literal:this.n}})}}L_.ExprNumber=Rve;var I_={};Object.defineProperty(I_,"__esModule",{value:!0}),I_.ExprParens=void 0;const JO=ut;class Ove extends JO.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()===JO.ATNodeType.Or?this.expr.apply(e,n,r,i):(0,JO.applyBinary)(e,r,n,this)}atNodeType(){return this.expr.atNodeType()}atExpr(){return this.expr}}I_.ExprParens=Ove;var B_={};Object.defineProperty(B_,"__esModule",{value:!0}),B_.ExprRegEx=void 0;const Dve=Pt,Nve=ut;class wve extends Nve.ExpressionDef{constructor(e){super(),this.regex=e,this.elementType="regular expression literal"}getExpression(){return(0,Dve.literalExprValue)({dataType:{type:"regular expression"},value:{node:"regexpLiteral",literal:this.regex}})}}B_.ExprRegEx=wve;var $_={};Object.defineProperty($_,"__esModule",{value:!0}),$_.ExprString=void 0;const Fve=ut,Lve=Pt;class Ive extends Fve.ExpressionDef{constructor(e){super(),this.elementType="string literal",this.value=e}getExpression(e){return(0,Lve.literalExprValue)({dataType:{type:"string"},value:{node:"stringLiteral",literal:this.value}})}}$_.ExprString=Ive;var k_={};Object.defineProperty(k_,"__esModule",{value:!0}),k_.ExprSum=void 0;const Bve=Id;class $ve extends Bve.ExprAsymmetric{constructor(e,n,r){super("sum",e,n,r),this.has({source:n})}}k_.ExprSum=$ve;var P_={};Object.defineProperty(P_,"__esModule",{value:!0}),P_.ExprTimeExtract=void 0;const Ca=We,M_=Pt,XO=ut,kve=Vl;class Y1 extends XO.ExpressionDef{static extractor(e){const n=Y1.pluralMap[e];if(n)return n;if((0,Ca.isExtractUnit)(e))return e}constructor(e,n){super({args:n}),this.extractText=e,this.args=n,this.elementType="timeExtract"}getExpression(e){const n=Y1.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 kve.Range){let i=r.first.getExpression(e),s=r.last.getExpression(e);if(i.type==="error"||s.type==="error")return(0,M_.computedErrorExprValue)({dataType:{type:"number"},error:"extract from error",from:[i,s]});if(!(0,Ca.isTemporalType)(i.type))return r.first.loggedErrorExpr("invalid-type-for-time-extraction",`Can't extract ${n} from '${i.type}'`);if(!(0,Ca.isTemporalType)(s.type))return r.last.loggedErrorExpr("invalid-type-for-time-extraction",`Cannot extract ${n} from '${s.type}'`);let o=i.type;if(!Ca.TD.eq(i,s)){let u=!0;if(o="timestamp",i.type==="date"){const a=(0,XO.getMorphicValue)(i,"timestamp");a&&(i=a,u=!1)}else{const a=(0,XO.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,Ca.isTimestampUnit)(n)?(0,M_.computedExprValue)({dataType:{type:"number",numberType:"integer"},value:{node:"timeDiff",units:n,kids:{left:(0,Ca.mkTemporal)(i.value,o),right:(0,Ca.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,Ca.isTemporalType)(i.type)?(0,M_.computedExprValue)({dataType:{type:"number",numberType:"integer"},value:{node:"extract",e:(0,Ca.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,M_.computedErrorExprValue)({dataType:{type:"number",numberType:"integer"},error:`${this.extractText} bad type ${i.type}`,from:[i]}))}}throw this.internalError(`Illegal extraction unit '${this.extractText}'`)}}P_.ExprTimeExtract=Y1,Y1.pluralMap={years:"year",quarters:"quarter",months:"month",weeks:"week",days:"day",hours:"hour",minutes:"minute",seconds:"second"};var j_={},fo={},U_={};Object.defineProperty(U_,"__esModule",{value:!0}),U_.QueryInputSpace=void 0;const Pve=bi,Mve=Ad;class jve extends Mve.RefinedSpace{constructor(e,n,r){super(e),this.queryOutput=n,this._isProtectedAccessSpace=r,this.extendList=[]}extendSource(e){this.pushFields(e),e instanceof Pve.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}}U_.QueryInputSpace=jve;var Uve=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]}),qve=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Hve=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)&&Uve(e,t,n);return qve(e,t),e};Object.defineProperty(fo,"__esModule",{value:!0}),fo.ReduceFieldSpace=fo.QuerySpace=fo.QueryOperationSpace=void 0;const q_=Hve(We),ZO=ql,nz=Jl,rz=yr,zve=ft,Qve=Ad,Gve=w1,Wve=Er,Vve=U_,ba=it,Yve=Vc;class iz extends Qve.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 Vve.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 Wve.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();q_.TD.isAtomic(l)&&q_.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 rz.SpaceField&&this.compositeFieldUsers.push({type:"field",name:e,field:n,logTo:void 0})}getJoinOnCompositeFieldUsage(e){var n;const r=e.map(s=>new nz.FieldName(s));this.astEl.has({reference:r});const i=this.exprSpace.lookup(r);if(i.found&&i.found instanceof Yve.StructSpaceFieldBase)return(n=i.found.fieldDef().onCompositeFieldUsage)!==null&&n!==void 0?n:(0,ba.emptyCompositeFieldUsage)();throw new Error("Unexpected join lookup was not found or not a struct")}getCompositeFieldUsageIncludingJoinOns(e){let n=e;const r=(0,ba.compositeFieldUsageJoinPaths)(e);for(const i of r)n=(0,ba.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 rz.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,ba.compositeFieldUsageDifference)(i,n));if(n=(0,ba.mergeCompositeFieldUsage)(n,o),!(0,ba.isEmptyCompositeFieldUsage)(o)){const u=(0,ba.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}}}fo.QueryOperationSpace=iz;class sz extends iz{addRefineFromFields(e){var n;if(q_.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 nz.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 Gve.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 zve.WildcardFieldReference?this.addWild(n):super.pushFields(n)}canContain(e){return!0}queryFieldDefs(){const e=[];let n=(0,ba.emptyCompositeFieldUsage)(),r=(0,ba.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 x=l.typeDesc();o=x.compositeFieldUsage,x&&x.type!=="error"&&this.canContain(x)&&!Jve(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(q_.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,ZO.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,ZO.nameFromDef)(u)===s);o&&r.push(o)}n.extendSource=(0,ZO.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}}fo.QuerySpace=sz;class Kve extends sz{constructor(){super(...arguments),this.segmentType="reduce"}}fo.ReduceFieldSpace=Kve;function Jve(t){return typeof t!="string"&&t.type==="turtle"&&t.pipeline.length===0}var Xve=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]}),Zve=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)&&Xve(e,t,n);return Zve(e,t),e};Object.defineProperty(j_,"__esModule",{value:!0}),j_.ExprUngroup=void 0;const oz=We,t5e=fo,uz=e5e(Ht),n5e=ut;class r5e extends n5e.ExpressionDef{constructor(e,n,r){super({expr:n,fields:r}),this.control=e,this.expr=n,this.fields=r,this.legalChildTypes=uz.anyAtomicT,this.elementType="ungroup"}getExpression(e){const n=this.expr.getExpression(e);if(!(0,oz.expressionIsAggregate)(n.expressionType))return this.expr.loggedErrorExpr("ungroup-of-non-aggregate",`${this.control}() expression must be an aggregate`);if((0,oz.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 t5e.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{...uz.atomicDef(n),expressionType:"ungrouped_aggregate",value:r,evalSpace:"output",compositeFieldUsage:n.compositeFieldUsage}}return this.loggedErrorExpr("ungroup-with-non-scalar",`${this.control}() incompatible type`)}}j_.ExprUngroup=r5e;var H_={},i5e=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]}),s5e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),o5e=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)&&i5e(e,t,n);return s5e(e,t),e};Object.defineProperty(H_,"__esModule",{value:!0}),H_.ForRange=void 0;const u5e=ts,az=o5e(Ht),z_=Ti,a5e=Pt,l5e=ut,Q_=wd,lz=Vl;class c5e extends l5e.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=[az.timestampT,az.dateT]}apply(e,n,r){const i=this.from.getExpression(e),s=r.getExpression(e);if(!this.typeCheck(r,s))return(0,u5e.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,a5e.computedErrorExprValue)({dataType:{type:"boolean"},error:"for not number",from:[i,s]});const u=this.timeframe.text;let a=(0,z_.resolution)(u);if(i.type==="timestamp"&&(a="timestamp"),s.type==="date"&&a==="date"){const p=this.from,m=(0,z_.timeOffset)("date",i.value,"+",o.value,u),g=new Q_.ExprTime("date",m);return new lz.Range(p,g).apply(e,n,r)}const l=Q_.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,z_.castTo)("timestamp",f,"date"),c=new Q_.ExprTime("timestamp",f,[i])}const x=(0,z_.timeOffset)("timestamp",f,"+",o.value,u),h=new Q_.ExprTime("timestamp",x,[i,o]);return new lz.Range(c,h).apply(e,n,l)}requestExpression(e){}getExpression(e){return this.loggedErrorExpr("range-as-value","A Range is not a value")}}H_.ForRange=c5e;var Xn={};class Xc extends Error{}class f5e extends Xc{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class x5e extends Xc{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class d5e extends Xc{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class K1 extends Xc{}class cz extends Xc{constructor(e){super(`Invalid unit ${e}`)}}class Ds extends Xc{}class Xl extends Xc{constructor(){super("Zone is an abstract class")}}const ke="numeric",xo="short",is="long",eD={year:ke,month:ke,day:ke},fz={year:ke,month:xo,day:ke},h5e={year:ke,month:xo,day:ke,weekday:xo},xz={year:ke,month:is,day:ke},dz={year:ke,month:is,day:ke,weekday:is},hz={hour:ke,minute:ke},pz={hour:ke,minute:ke,second:ke},gz={hour:ke,minute:ke,second:ke,timeZoneName:xo},mz={hour:ke,minute:ke,second:ke,timeZoneName:is},yz={hour:ke,minute:ke,hourCycle:"h23"},Ez={hour:ke,minute:ke,second:ke,hourCycle:"h23"},Az={hour:ke,minute:ke,second:ke,hourCycle:"h23",timeZoneName:xo},_z={hour:ke,minute:ke,second:ke,hourCycle:"h23",timeZoneName:is},vz={year:ke,month:ke,day:ke,hour:ke,minute:ke},Sz={year:ke,month:ke,day:ke,hour:ke,minute:ke,second:ke},Cz={year:ke,month:xo,day:ke,hour:ke,minute:ke},bz={year:ke,month:xo,day:ke,hour:ke,minute:ke,second:ke},p5e={year:ke,month:xo,day:ke,weekday:xo,hour:ke,minute:ke},Tz={year:ke,month:is,day:ke,hour:ke,minute:ke,timeZoneName:xo},Rz={year:ke,month:is,day:ke,hour:ke,minute:ke,second:ke,timeZoneName:xo},Oz={year:ke,month:is,day:ke,weekday:is,hour:ke,minute:ke,timeZoneName:is},Dz={year:ke,month:is,day:ke,weekday:is,hour:ke,minute:ke,second:ke,timeZoneName:is};function vt(t){return typeof t>"u"}function Zc(t){return typeof t=="number"}function G_(t){return typeof t=="number"&&t%1===0}function g5e(t){return typeof t=="string"}function m5e(t){return Object.prototype.toString.call(t)==="[object Date]"}function Nz(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function y5e(t){return Array.isArray(t)?t:[t]}function wz(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 E5e(t,e){return e.reduce((n,r)=>(n[r]=t[r],n),{})}function kd(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Ta(t,e,n){return G_(t)&&t>=e&&t<=n}function A5e(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(!(vt(t)||t===null||t===""))return parseInt(t,10)}function ef(t){if(!(vt(t)||t===null||t===""))return parseFloat(t)}function tD(t){if(!(vt(t)||t===null||t==="")){const e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function nD(t,e,n=!1){const r=10**e;return(n?Math.trunc:Math.round)(t*r)/r}function J1(t){return t%4===0&&(t%100!==0||t%400===0)}function X1(t){return J1(t)?366:365}function W_(t,e){const n=A5e(e-1,12)+1,r=t+(e-n)/12;return n===2?J1(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function rD(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 V_(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 iD(t){return t>99?t:t>60?1900+t:2e3+t}function Fz(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 Y_(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 Lz(t){const e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ds(`Invalid unit value ${t}`);return e}function K_(t,e){const n={};for(const r in t)if(kd(t,r)){const i=t[r];if(i==null)continue;n[e(r)]=Lz(i)}return n}function Z1(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 J_(t){return E5e(t,["hour","minute","second","millisecond"])}const Iz=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/,_5e=["January","February","March","April","May","June","July","August","September","October","November","December"],Bz=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],v5e=["J","F","M","A","M","J","J","A","S","O","N","D"];function $z(t){switch(t){case"narrow":return[...v5e];case"short":return[...Bz];case"long":return[..._5e];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 kz=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Pz=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],S5e=["M","T","W","T","F","S","S"];function Mz(t){switch(t){case"narrow":return[...S5e];case"short":return[...Pz];case"long":return[...kz];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const jz=["AM","PM"],C5e=["Before Christ","Anno Domini"],b5e=["BC","AD"],T5e=["B","A"];function Uz(t){switch(t){case"narrow":return[...T5e];case"short":return[...b5e];case"long":return[...C5e];default:return null}}function R5e(t){return jz[t.hour<12?0:1]}function O5e(t,e){return Mz(e)[t.weekday-1]}function D5e(t,e){return $z(e)[t.month-1]}function N5e(t,e){return Uz(e)[t.year<0?0:1]}function w5e(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 qz(t,e){let n="";for(const r of t)r.literal?n+=r.val:n+=e(r.val);return n}const F5e={D:eD,DD:fz,DDD:xz,DDDD:dz,t:hz,tt:pz,ttt:gz,tttt:mz,T:yz,TT:Ez,TTT:Az,TTTT:_z,f:vz,ff:Cz,fff:Tz,ffff:Oz,F:Sz,FF:bz,FFF:Rz,FFFF:Dz};class Ri{static create(e,n={}){return new Ri(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 F5e[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?R5e(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),a=(h,p)=>r?D5e(e,h):s(p?{month:h}:{month:h,day:"numeric"},"month"),l=(h,p)=>r?O5e(e,h):s(p?{weekday:h}:{weekday:h,month:"long",day:"numeric"},"weekday"),c=h=>{const p=Ri.macroTokenToFormatOpts(h);return p?this.formatWithSystemDefault(e,p):h},f=h=>r?N5e(e,h):s({era:h},"era"),x=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 qz(Ri.parseFormat(n),x)}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=Ri.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 qz(s,i(u))}}class ho{constructor(e,n){this.reason=e,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}let Pd=class{get type(){throw new Xl}get name(){throw new Xl}get ianaName(){return this.name}get isUniversal(){throw new Xl}offsetName(e,n){throw new Xl}formatOffset(e,n){throw new Xl}offset(e){throw new Xl}equals(e){throw new Xl}get isValid(){throw new Xl}},sD=null;class X_ extends Pd{static get instance(){return sD===null&&(sD=new X_),sD}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:n,locale:r}){return Fz(e,n,r)}formatOffset(e,n){return Z1(this.offset(e),n)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}let Z_={};function L5e(t){return Z_[t]||(Z_[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"})),Z_[t]}const I5e={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function B5e(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 $5e(t,e){const n=t.formatToParts(e),r=[];for(let i=0;i<n.length;i++){const{type:s,value:o}=n[i],u=I5e[s];s==="era"?r[u]=o:vt(u)||(r[u]=parseInt(o,10))}return r}let ev={};class hu extends Pd{static create(e){return ev[e]||(ev[e]=new hu(e)),ev[e]}static resetCache(){ev={},Z_={}}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=hu.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:n,locale:r}){return Fz(e,n,r,this.name)}formatOffset(e,n){return Z1(this.offset(e),n)}offset(e){const n=new Date(e);if(isNaN(n))return NaN;const r=L5e(this.name);let[i,s,o,u,a,l,c]=r.formatToParts?$5e(r,n):B5e(r,n);u==="BC"&&(i=-Math.abs(i)+1);const x=rD({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,(x-h)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let oD=null;class Ir extends Pd{static get utcInstance(){return oD===null&&(oD=new Ir(0)),oD}static instance(e){return e===0?Ir.utcInstance:new Ir(e)}static parseSpecifier(e){if(e){const n=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new Ir(Y_(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Z1(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Z1(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,n){return Z1(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 Hz extends Pd{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 e0(t,e){if(vt(t)||t===null)return e;if(t instanceof Pd)return t;if(g5e(t)){const n=t.toLowerCase();return n==="local"||n==="system"?e:n==="utc"||n==="gmt"?Ir.utcInstance:Ir.parseSpecifier(n)||hu.create(t)}else return Zc(t)?Ir.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Hz(t)}let zz=()=>Date.now(),Qz="system",Gz=null,Wz=null,Vz=null,Yz;class Fn{static get now(){return zz}static set now(e){zz=e}static set defaultZone(e){Qz=e}static get defaultZone(){return e0(Qz,X_.instance)}static get defaultLocale(){return Gz}static set defaultLocale(e){Gz=e}static get defaultNumberingSystem(){return Wz}static set defaultNumberingSystem(e){Wz=e}static get defaultOutputCalendar(){return Vz}static set defaultOutputCalendar(e){Vz=e}static get throwOnInvalid(){return Yz}static set throwOnInvalid(e){Yz=e}static resetCaches(){dn.resetCache(),hu.resetCache()}}let Kz={};function k5e(t,e={}){const n=JSON.stringify([t,e]);let r=Kz[n];return r||(r=new Intl.ListFormat(t,e),Kz[n]=r),r}let uD={};function aD(t,e={}){const n=JSON.stringify([t,e]);let r=uD[n];return r||(r=new Intl.DateTimeFormat(t,e),uD[n]=r),r}let lD={};function P5e(t,e={}){const n=JSON.stringify([t,e]);let r=lD[n];return r||(r=new Intl.NumberFormat(t,e),lD[n]=r),r}let cD={};function M5e(t,e={}){const{base:n,...r}=e,i=JSON.stringify([t,r]);let s=cD[i];return s||(s=new Intl.RelativeTimeFormat(t,e),cD[i]=s),s}let eg=null;function j5e(){return eg||(eg=new Intl.DateTimeFormat().resolvedOptions().locale,eg)}function U5e(t){const e=t.indexOf("-u-");if(e===-1)return[t];{let n;const r=t.substring(0,e);try{n=aD(t).resolvedOptions()}catch{n=aD(r).resolvedOptions()}const{numberingSystem:i,calendar:s}=n;return[r,i,s]}}function q5e(t,e,n){return(n||e)&&(t+="-u",n&&(t+=`-ca-${n}`),e&&(t+=`-nu-${e}`)),t}function H5e(t){const e=[];for(let n=1;n<=12;n++){const r=at.utc(2016,n,1);e.push(t(r))}return e}function z5e(t){const e=[];for(let n=1;n<=7;n++){const r=at.utc(2016,11,13+n);e.push(t(r))}return e}function tv(t,e,n,r,i){const s=t.listingMode(n);return s==="error"?null:s==="en"?r(e):i(e)}function Q5e(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 G5e{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=P5e(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):nD(e,3);return wn(n,this.padTo)}}}class W5e{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&&hu.create(u).valid?(i=u,this.dt=e):(i="UTC",r.timeZoneName?this.dt=e:this.dt=e.offset===0?e:at.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=aD(n,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}}class V5e{constructor(e,n,r){this.opts={style:"long",...r},!n&&Nz()&&(this.rtf=M5e(e,r))}format(e,n){return this.rtf?this.rtf.format(e,n):w5e(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":j5e()),u=n||Fn.defaultNumberingSystem,a=r||Fn.defaultOutputCalendar;return new dn(o,u,a,s)}static resetCache(){eg=null,uD={},lD={},cD={}}static fromObject({locale:e,numberingSystem:n,outputCalendar:r}={}){return dn.create(e,n,r)}constructor(e,n,r,i){const[s,o,u]=U5e(e);this.locale=s,this.numberingSystem=n||o||null,this.outputCalendar=r||u||null,this.intl=q5e(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=Q5e(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 tv(this,e,r,$z,()=>{const i=n?{month:e,day:"numeric"}:{month:e},s=n?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=H5e(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,n=!1,r=!0){return tv(this,e,r,Mz,()=>{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]=z5e(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return tv(this,void 0,e,()=>jz,()=>{if(!this.meridiemCache){const n={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[at.utc(2016,11,13,9),at.utc(2016,11,13,19)].map(r=>this.extract(r,n,"dayperiod"))}return this.meridiemCache})}eras(e,n=!0){return tv(this,e,n,Uz,()=>{const r={era:e};return this.eraCache[e]||(this.eraCache[e]=[at.utc(-40,1,1),at.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 G5e(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,n={}){return new W5e(e,this.intl,n)}relFormatter(e={}){return new V5e(this.intl,this.isEnglish(),e)}listFormatter(e={}){return k5e(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 Md(...t){const e=t.reduce((n,r)=>n+r.source,"");return RegExp(`^${e}$`)}function jd(...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 Ud(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 Jz(...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 Xz=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Y5e=`(?:${Xz.source}?(?:\\[(${Iz.source})\\])?)?`,fD=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Zz=RegExp(`${fD.source}${Y5e}`),xD=RegExp(`(?:T${Zz.source})?`),K5e=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,J5e=/(\d{4})-?W(\d\d)(?:-?(\d))?/,X5e=/(\d{4})-?(\d{3})/,Z5e=Jz("weekYear","weekNumber","weekDay"),e4e=Jz("year","ordinal"),t4e=/(\d{4})-(\d\d)-(\d\d)/,eQ=RegExp(`${fD.source} ?(?:${Xz.source}|(${Iz.source}))?`),n4e=RegExp(`(?: ${eQ.source})?`);function qd(t,e,n){const r=t[e];return vt(r)?n:Zl(r)}function r4e(t,e){return[{year:qd(t,e),month:qd(t,e+1,1),day:qd(t,e+2,1)},null,e+3]}function Hd(t,e){return[{hours:qd(t,e,0),minutes:qd(t,e+1,0),seconds:qd(t,e+2,0),milliseconds:tD(t[e+3])},null,e+4]}function tg(t,e){const n=!t[e]&&!t[e+1],r=Y_(t[e+1],t[e+2]),i=n?null:Ir.instance(r);return[{},i,e+3]}function ng(t,e){const n=t[e]?hu.create(t[e]):null;return[{},n,e+1]}const i4e=RegExp(`^T?${fD.source}$`),s4e=/^-?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 o4e(t){const[e,n,r,i,s,o,u,a,l]=t,c=e[0]==="-",f=a&&a[0]==="-",x=(h,p=!1)=>h!==void 0&&(p||h&&c)?-h:h;return[{years:x(ef(n)),months:x(ef(r)),weeks:x(ef(i)),days:x(ef(s)),hours:x(ef(o)),minutes:x(ef(u)),seconds:x(ef(a),a==="-0"),milliseconds:x(tD(l),f)}]}const u4e={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 dD(t,e,n,r,i,s,o){const u={year:e.length===2?iD(Zl(e)):Zl(e),month:Bz.indexOf(n)+1,day:Zl(r),hour:Zl(i),minute:Zl(s)};return o&&(u.second=Zl(o)),t&&(u.weekday=t.length>3?kz.indexOf(t)+1:Pz.indexOf(t)+1),u}const a4e=/^(?:(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 l4e(t){const[,e,n,r,i,s,o,u,a,l,c,f]=t,x=dD(e,i,r,n,s,o,u);let h;return a?h=u4e[a]:l?h=0:h=Y_(c,f),[x,new Ir(h)]}function c4e(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const f4e=/^(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$/,x4e=/^(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$/,d4e=/^(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 tQ(t){const[,e,n,r,i,s,o,u]=t;return[dD(e,i,r,n,s,o,u),Ir.utcInstance]}function h4e(t){const[,e,n,r,i,s,o,u]=t;return[dD(e,u,n,r,i,s,o),Ir.utcInstance]}const p4e=Md(K5e,xD),g4e=Md(J5e,xD),m4e=Md(X5e,xD),y4e=Md(Zz),nQ=jd(r4e,Hd,tg,ng),E4e=jd(Z5e,Hd,tg,ng),A4e=jd(e4e,Hd,tg,ng),_4e=jd(Hd,tg,ng);function v4e(t){return Ud(t,[p4e,nQ],[g4e,E4e],[m4e,A4e],[y4e,_4e])}function S4e(t){return Ud(c4e(t),[a4e,l4e])}function C4e(t){return Ud(t,[f4e,tQ],[x4e,tQ],[d4e,h4e])}function b4e(t){return Ud(t,[s4e,o4e])}const T4e=jd(Hd);function R4e(t){return Ud(t,[i4e,T4e])}const O4e=Md(t4e,n4e),D4e=Md(eQ),N4e=jd(Hd,tg,ng);function w4e(t){return Ud(t,[O4e,nQ],[D4e,N4e])}const F4e="Invalid Duration",rQ={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}},L4e={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},...rQ},Ns=146097/400,zd=146097/4800,I4e={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:zd/7,days:zd,hours:zd*24,minutes:zd*24*60,seconds:zd*24*60*60,milliseconds:zd*24*60*60*1e3},...rQ},tf=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],B4e=tf.slice(0).reverse();function nf(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 $4e(t){return t<0?Math.floor(t):Math.ceil(t)}function iQ(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?$4e(o):Math.trunc(o);r[i]+=a,e[n]-=a*s}function k4e(t,e){B4e.reduce((n,r)=>vt(e[r])?n:(n&&iQ(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?I4e:L4e,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:K_(e,St.normalizeUnit),loc:dn.fromObject(n),conversionAccuracy:n.conversionAccuracy})}static fromDurationLike(e){if(Zc(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]=b4e(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]=R4e(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 ho?e:new ho(e,n);if(Fn.throwOnInvalid)throw new d5e(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 cz(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?Ri.create(this.loc,r).formatDurationFromString(this,e):F4e}toHuman(e={}){const n=tf.map(r=>{const i=this.values[r];return vt(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+=nD(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 tf)(kd(n.values,i)||kd(this.values,i))&&(r[i]=n.get(i)+this.get(i));return nf(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]=Lz(e(this.values[r],r));return nf(this,{values:n},!0)}get(e){return this[St.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const n={...this.values,...K_(e,St.normalizeUnit)};return nf(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),nf(this,s)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return k4e(this.matrix,e),nf(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 tf)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;Zc(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)tf.indexOf(l)>tf.indexOf(o)&&iQ(this.matrix,i,l,n,o)}else Zc(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 nf(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 nf(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 tf)if(!n(this.values[r],e.values[r]))return!1;return!0}}const rg="Invalid Interval";function P4e(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 ho?e:new ho(e,n);if(Fn.throwOnInvalid)throw new x5e(r);return new hn({invalid:r})}static fromDateTimes(e,n){const r=ug(e),i=ug(n),s=P4e(r,i);return s??new hn({start:r,end:i})}static after(e,n){const r=St.fromDurationLike(n),i=ug(e);return hn.fromDateTimes(i,i.plus(r))}static before(e,n){const r=St.fromDurationLike(n),i=ug(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=at.fromISO(r,n),o=s.isValid}catch{o=!1}let u,a;try{u=at.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(ug).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()})`:rg}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:rg}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:rg}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:rg}toFormat(e,{separator:n=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${n}${this.e.toFormat(e)}`:rg}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 ig=class{static hasDST(e=Fn.defaultZone){const n=at.now().setZone(e).set({month:12});return!e.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(e){return hu.isValidZone(e)}static normalizeZone(e){return e0(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:Nz()}}};function sQ(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 M4e(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=sQ(u,a);return(l-l%7)/7}],["days",sQ]],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 j4e(t,e,n,r){let[i,s,o,u]=M4e(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 hD={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},oQ={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]},U4e=hD.hanidec.replace(/[\[|\]]/g,"").split("");function q4e(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(hD.hanidec)!==-1)e+=U4e.indexOf(t[n]);else for(const i in oQ){const[s,o]=oQ[i];r>=s&&r<=o&&(e+=r-s)}}return parseInt(e,10)}else return e}function po({numberingSystem:t},e=""){return new RegExp(`${hD[t||"latn"]}${e}`)}const H4e="missing Intl.DateTimeFormat.formatToParts support";function It(t,e=n=>n){return{regex:t,deser:([n])=>e(q4e(n))}}const uQ="[  ]",aQ=new RegExp(uQ,"g");function z4e(t){return t.replace(/\./g,"\\.?").replace(aQ,uQ)}function lQ(t){return t.replace(/\./g,"").replace(aQ," ").toLowerCase()}function go(t,e){return t===null?null:{regex:RegExp(t.map(z4e).join("|")),deser:([n])=>t.findIndex(r=>lQ(n)===lQ(r))+e}}function cQ(t,e){return{regex:t,deser:([,n,r])=>Y_(n,r),groups:e}}function pD(t){return{regex:t,deser:([e])=>e}}function Q4e(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function G4e(t,e){const n=po(e),r=po(e,"{2}"),i=po(e,"{3}"),s=po(e,"{4}"),o=po(e,"{6}"),u=po(e,"{1,2}"),a=po(e,"{1,3}"),l=po(e,"{1,6}"),c=po(e,"{1,9}"),f=po(e,"{2,4}"),x=po(e,"{4,6}"),h=g=>({regex:RegExp(Q4e(g.val)),deser:([y])=>y,literal:!0}),m=(g=>{if(t.literal)return h(g);switch(g.val){case"G":return go(e.eras("short",!1),0);case"GG":return go(e.eras("long",!1),0);case"y":return It(l);case"yy":return It(f,iD);case"yyyy":return It(s);case"yyyyy":return It(x);case"yyyyyy":return It(o);case"M":return It(u);case"MM":return It(r);case"MMM":return go(e.months("short",!0,!1),1);case"MMMM":return go(e.months("long",!0,!1),1);case"L":return It(u);case"LL":return It(r);case"LLL":return go(e.months("short",!1,!1),1);case"LLLL":return go(e.months("long",!1,!1),1);case"d":return It(u);case"dd":return It(r);case"o":return It(a);case"ooo":return It(i);case"HH":return It(r);case"H":return It(u);case"hh":return It(r);case"h":return It(u);case"mm":return It(r);case"m":return It(u);case"q":return It(u);case"qq":return It(r);case"s":return It(u);case"ss":return It(r);case"S":return It(a);case"SSS":return It(i);case"u":return pD(c);case"uu":return pD(u);case"uuu":return It(n);case"a":return go(e.meridiems(),0);case"kkkk":return It(s);case"kk":return It(f,iD);case"W":return It(u);case"WW":return It(r);case"E":case"c":return It(n);case"EEE":return go(e.weekdays("short",!1,!1),1);case"EEEE":return go(e.weekdays("long",!1,!1),1);case"ccc":return go(e.weekdays("short",!0,!1),1);case"cccc":return go(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return cQ(new RegExp(`([+-]${u.source})(?::(${r.source}))?`),2);case"ZZZ":return cQ(new RegExp(`([+-]${u.source})(${r.source})?`),2);case"z":return pD(/[a-z_+-/]{1,256}?/i);default:return h(g)}})(t)||{invalidReason:H4e};return m.token=t,m}const W4e={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 V4e(t,e,n){const{type:r,value:i}=t;if(r==="literal")return{literal:!0,val:i};const s=n[r];let o=W4e[r];if(typeof o=="object"&&(o=o[s]),o)return{literal:!1,val:o}}function Y4e(t){return[`^${t.map(n=>n.regex).reduce((n,r)=>`${n}(${r.source})`,"")}$`,t]}function K4e(t,e,n){const r=t.match(e);if(r){const i={};let s=1;for(const o in n)if(kd(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 J4e(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 vt(t.z)||(n=hu.create(t.z)),vt(t.Z)||(n||(n=new Ir(t.Z)),r=t.Z),vt(t.q)||(t.M=(t.q-1)*3+1),vt(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),vt(t.u)||(t.S=tD(t.u)),[Object.keys(t).reduce((s,o)=>{const u=e(o);return u&&(s[u]=t[o]),s},{}),n,r]}let gD=null;function X4e(){return gD||(gD=at.fromMillis(1555555555555)),gD}function Z4e(t,e){if(t.literal)return t;const n=Ri.macroTokenToFormatOpts(t.val);if(!n)return t;const s=Ri.create(e,n).formatDateTimeParts(X4e()).map(o=>V4e(o,e,n));return s.includes(void 0)?t:s}function eSe(t,e){return Array.prototype.concat(...t.map(n=>Z4e(n,e)))}function fQ(t,e,n){const r=eSe(Ri.parseFormat(n),t),i=r.map(o=>G4e(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:r,invalidReason:s.invalidReason};{const[o,u]=Y4e(i),a=RegExp(o,"i"),[l,c]=K4e(e,a,u),[f,x,h]=c?J4e(c):[null,null,void 0];if(kd(c,"a")&&kd(c,"H"))throw new K1("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:r,regex:a,rawMatches:l,matches:c,result:f,zone:x,specificOffset:h}}}function tSe(t,e,n){const{result:r,zone:i,specificOffset:s,invalidReason:o}=fQ(t,e,n);return[r,i,s,o]}const xQ=[0,31,59,90,120,151,181,212,243,273,304,334],dQ=[0,31,60,91,121,152,182,213,244,274,305,335];function ws(t,e){return new ho("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function hQ(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 pQ(t,e,n){return n+(J1(t)?dQ:xQ)[e-1]}function gQ(t,e){const n=J1(t)?dQ:xQ,r=n.findIndex(s=>s<e),i=e-n[r];return{month:r+1,day:i}}function mD(t){const{year:e,month:n,day:r}=t,i=pQ(e,n,r),s=hQ(e,n,r);let o=Math.floor((i-s+10)/7),u;return o<1?(u=e-1,o=V_(u)):o>V_(e)?(u=e+1,o=1):u=e,{weekYear:u,weekNumber:o,weekday:s,...J_(t)}}function mQ(t){const{weekYear:e,weekNumber:n,weekday:r}=t,i=hQ(e,1,4),s=X1(e);let o=n*7+r-i-3,u;o<1?(u=e-1,o+=X1(u)):o>s?(u=e+1,o-=X1(e)):u=e;const{month:a,day:l}=gQ(u,o);return{year:u,month:a,day:l,...J_(t)}}function yD(t){const{year:e,month:n,day:r}=t,i=pQ(e,n,r);return{year:e,ordinal:i,...J_(t)}}function yQ(t){const{year:e,ordinal:n}=t,{month:r,day:i}=gQ(e,n);return{year:e,month:r,day:i,...J_(t)}}function nSe(t){const e=G_(t.weekYear),n=Ta(t.weekNumber,1,V_(t.weekYear)),r=Ta(t.weekday,1,7);return e?n?r?!1:ws("weekday",t.weekday):ws("week",t.week):ws("weekYear",t.weekYear)}function rSe(t){const e=G_(t.year),n=Ta(t.ordinal,1,X1(t.year));return e?n?!1:ws("ordinal",t.ordinal):ws("year",t.year)}function EQ(t){const e=G_(t.year),n=Ta(t.month,1,12),r=Ta(t.day,1,W_(t.year,t.month));return e?n?r?!1:ws("day",t.day):ws("month",t.month):ws("year",t.year)}function AQ(t){const{hour:e,minute:n,second:r,millisecond:i}=t,s=Ta(e,0,23)||e===24&&n===0&&r===0&&i===0,o=Ta(n,0,59),u=Ta(r,0,59),a=Ta(i,0,999);return s?o?u?a?!1:ws("millisecond",i):ws("second",r):ws("minute",n):ws("hour",e)}const ED="Invalid DateTime",_Q=864e13;function nv(t){return new ho("unsupported zone",`the zone "${t.name}" is not supported`)}function AD(t){return t.weekData===null&&(t.weekData=mD(t.c)),t.weekData}function sg(t,e){const n={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new at({...n,...e,old:n})}function vQ(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 SQ(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 rv(t,e,n){return vQ(rD(t),e,n)}function CQ(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,W_(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=rD(s);let[a,l]=vQ(u,n,t.zone);return o!==0&&(a+=o,l=t.zone.offset(a)),{ts:a,o:l}}function og(t,e,n,r,i,s){const{setZone:o,zone:u}=n;if(t&&Object.keys(t).length!==0){const a=e||u,l=at.fromObject(t,{...n,zone:a,specificOffset:s});return o?l:l.setZone(u)}else return at.invalid(new ho("unparsable",`the input "${i}" can't be parsed as ${r}`))}function iv(t,e,n=!0){return t.isValid?Ri.create(dn.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(t,e):null}function _D(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 bQ(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 TQ={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},iSe={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},sSe={ordinal:1,hour:0,minute:0,second:0,millisecond:0},RQ=["year","month","day","hour","minute","second","millisecond"],oSe=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],uSe=["year","ordinal","hour","minute","second","millisecond"];function OQ(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 cz(t);return e}function DQ(t,e){const n=e0(e.zone,Fn.defaultZone),r=dn.fromObject(e),i=Fn.now();let s,o;if(vt(t.year))s=i;else{for(const l of RQ)vt(t[l])&&(t[l]=TQ[l]);const u=EQ(t)||AQ(t);if(u)return at.invalid(u);const a=n.offset(i);[s,o]=rv(t,a,n)}return new at({ts:s,zone:n,loc:r,o})}function NQ(t,e,n){const r=vt(n.round)?!0:n.round,i=(o,u)=>(o=nD(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 wQ(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 at{constructor(e){const n=e.zone||Fn.defaultZone;let r=e.invalid||(Number.isNaN(e.ts)?new ho("invalid input"):null)||(n.isValid?null:nv(n));this.ts=vt(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=SQ(this.ts,u),r=Number.isNaN(i.year)?new ho("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 at({})}static local(){const[e,n]=wQ(arguments),[r,i,s,o,u,a,l]=n;return DQ({year:r,month:i,day:s,hour:o,minute:u,second:a,millisecond:l},e)}static utc(){const[e,n]=wQ(arguments),[r,i,s,o,u,a,l]=n;return e.zone=Ir.utcInstance,DQ({year:r,month:i,day:s,hour:o,minute:u,second:a,millisecond:l},e)}static fromJSDate(e,n={}){const r=m5e(e)?e.valueOf():NaN;if(Number.isNaN(r))return at.invalid("invalid input");const i=e0(n.zone,Fn.defaultZone);return i.isValid?new at({ts:r,zone:i,loc:dn.fromObject(n)}):at.invalid(nv(i))}static fromMillis(e,n={}){if(Zc(e))return e<-_Q||e>_Q?at.invalid("Timestamp out of range"):new at({ts:e,zone:e0(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(Zc(e))return new at({ts:e*1e3,zone:e0(n.zone,Fn.defaultZone),loc:dn.fromObject(n)});throw new Ds("fromSeconds requires a numerical input")}static fromObject(e,n={}){e=e||{};const r=e0(n.zone,Fn.defaultZone);if(!r.isValid)return at.invalid(nv(r));const i=Fn.now(),s=vt(n.specificOffset)?r.offset(i):n.specificOffset,o=K_(e,OQ),u=!vt(o.ordinal),a=!vt(o.year),l=!vt(o.month)||!vt(o.day),c=a||l,f=o.weekYear||o.weekNumber,x=dn.fromObject(n);if((c||u)&&f)throw new K1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&u)throw new K1("Can't mix ordinal dates with month/day");const h=f||o.weekday&&!c;let p,m,g=SQ(i,s);h?(p=oSe,m=iSe,g=mD(g)):u?(p=uSe,m=sSe,g=yD(g)):(p=RQ,m=TQ);let y=!1;for(const b of p){const O=o[b];vt(O)?y?o[b]=m[b]:o[b]=g[b]:y=!0}const E=h?nSe(o):u?rSe(o):EQ(o),A=E||AQ(o);if(A)return at.invalid(A);const _=h?mQ(o):u?yQ(o):o,[v,S]=rv(_,s,r),C=new at({ts:v,zone:r,o:S,loc:x});return o.weekday&&c&&e.weekday!==C.weekday?at.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]=v4e(e);return og(r,i,n,"ISO 8601",e)}static fromRFC2822(e,n={}){const[r,i]=S4e(e);return og(r,i,n,"RFC 2822",e)}static fromHTTP(e,n={}){const[r,i]=C4e(e);return og(r,i,n,"HTTP",n)}static fromFormat(e,n,r={}){if(vt(e)||vt(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]=tSe(o,e,n);return c?at.invalid(c):og(u,a,r,`format ${n}`,e,l)}static fromString(e,n,r={}){return at.fromFormat(e,n,r)}static fromSQL(e,n={}){const[r,i]=w4e(e);return og(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 ho?e:new ho(e,n);if(Fn.throwOnInvalid)throw new f5e(r);return new at({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?AD(this).weekYear:NaN}get weekNumber(){return this.isValid?AD(this).weekNumber:NaN}get weekday(){return this.isValid?AD(this).weekday:NaN}get ordinal(){return this.isValid?yD(this.c).ordinal:NaN}get monthShort(){return this.isValid?ig.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?ig.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?ig.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?ig.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 J1(this.year)}get daysInMonth(){return W_(this.year,this.month)}get daysInYear(){return this.isValid?X1(this.year):NaN}get weeksInWeekYear(){return this.isValid?V_(this.weekYear):NaN}resolvedLocaleOptions(e={}){const{locale:n,numberingSystem:r,calendar:i}=Ri.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:i}}toUTC(e=0,n={}){return this.setZone(Ir.instance(e),n)}toLocal(){return this.setZone(Fn.defaultZone)}setZone(e,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(e=e0(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]=rv(o,s,e)}return sg(this,{ts:i,zone:e})}else return at.invalid(nv(e))}reconfigure({locale:e,numberingSystem:n,outputCalendar:r}={}){const i=this.loc.clone({locale:e,numberingSystem:n,outputCalendar:r});return sg(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const n=K_(e,OQ),r=!vt(n.weekYear)||!vt(n.weekNumber)||!vt(n.weekday),i=!vt(n.ordinal),s=!vt(n.year),o=!vt(n.month)||!vt(n.day),u=s||o,a=n.weekYear||n.weekNumber;if((u||i)&&a)throw new K1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new K1("Can't mix ordinal dates with month/day");let l;r?l=mQ({...mD(this.c),...n}):vt(n.ordinal)?(l={...this.toObject(),...n},vt(n.day)&&(l.day=Math.min(W_(l.year,l.month),l.day))):l=yQ({...yD(this.c),...n});const[c,f]=rv(l,this.o,this.zone);return sg(this,{ts:c,o:f})}plus(e){if(!this.isValid)return this;const n=St.fromDurationLike(e);return sg(this,CQ(this,n))}minus(e){if(!this.isValid)return this;const n=St.fromDurationLike(e).negate();return sg(this,CQ(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?Ri.create(this.loc.redefaultToEN(n)).formatDateTimeFromString(this,e):ED}toLocaleString(e=eD,n={}){return this.isValid?Ri.create(this.loc.clone(n),e).formatDateTime(this):ED}toLocaleParts(e={}){return this.isValid?Ri.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=_D(this,o);return u+="T",u+=bQ(this,o,n,r,i,s),u}toISODate({format:e="extended"}={}){return this.isValid?_D(this,e==="extended"):null}toISOWeekDate(){return iv(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":"")+bQ(this,o==="extended",n,e,r,s):null}toRFC2822(){return iv(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return iv(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?_D(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")),iv(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():ED}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=y5e(n).map(St.normalizeUnit),o=e.valueOf()>this.valueOf(),u=o?this:e,a=o?e:this,l=j4e(u,a,s,i);return o?l.negate():l}diffNow(e="milliseconds",n={}){return this.diff(at.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||at.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),NQ(n,this.plus(r),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?NQ(e.base||at.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(at.isDateTime))throw new Ds("min requires all arguments be DateTimes");return wz(e,n=>n.valueOf(),Math.min)}static max(...e){if(!e.every(at.isDateTime))throw new Ds("max requires all arguments be DateTimes");return wz(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 fQ(o,e,n)}static fromStringExplain(e,n,r={}){return at.fromFormatExplain(e,n,r)}static get DATE_SHORT(){return eD}static get DATE_MED(){return fz}static get DATE_MED_WITH_WEEKDAY(){return h5e}static get DATE_FULL(){return xz}static get DATE_HUGE(){return dz}static get TIME_SIMPLE(){return hz}static get TIME_WITH_SECONDS(){return pz}static get TIME_WITH_SHORT_OFFSET(){return gz}static get TIME_WITH_LONG_OFFSET(){return mz}static get TIME_24_SIMPLE(){return yz}static get TIME_24_WITH_SECONDS(){return Ez}static get TIME_24_WITH_SHORT_OFFSET(){return Az}static get TIME_24_WITH_LONG_OFFSET(){return _z}static get DATETIME_SHORT(){return vz}static get DATETIME_SHORT_WITH_SECONDS(){return Sz}static get DATETIME_MED(){return Cz}static get DATETIME_MED_WITH_SECONDS(){return bz}static get DATETIME_MED_WITH_WEEKDAY(){return p5e}static get DATETIME_FULL(){return Tz}static get DATETIME_FULL_WITH_SECONDS(){return Rz}static get DATETIME_HUGE(){return Oz}static get DATETIME_HUGE_WITH_SECONDS(){return Dz}}function ug(t){if(at.isDateTime(t))return t;if(t&&t.valueOf&&Zc(t.valueOf()))return at.fromJSDate(t);if(t&&typeof t=="object")return at.fromObject(t);throw new Ds(`Unknown datetime argument: ${t}, of type ${typeof t}`)}const FQ=c$(Object.freeze(Object.defineProperty({__proto__:null,DateTime:at,Duration:St,FixedOffsetZone:Ir,IANAZone:hu,Info:ig,Interval:hn,InvalidZone:Hz,Settings:Fn,SystemZone:X_,VERSION:"2.5.2",Zone:Pd},Symbol.toStringTag,{value:"Module"})));Object.defineProperty(Xn,"__esModule",{value:!0}),Xn.LiteralYear=Xn.LiteralQuarter=Xn.LiteralMonth=Xn.LiteralWeek=Xn.LiteralDay=Xn.LiteralHour=Xn.LiteralTimestamp=Xn.TimeFormatError=void 0;const t0=FQ,aSe=We,lSe=Pt,cSe=Vl,LQ=wd,vD=ut;class fSe extends Error{}Xn.TimeFormatError=fSe;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 IQ="yyyy",BQ=`${IQ}-LL`,Fs=`${BQ}-dd`,$Q=`${Fs} HH`,kQ=`${$Q}:mm`,SD=`${kQ}:ss`;class PQ extends vD.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,lSe.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 CD extends PQ{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,SD);if(s.isValid)return new CD(r,n);if(s=t0.DateTime.fromFormat(e,kQ),s.isValid){r.text=r.text+":00",n="minute";const o=s.plus({minute:1}).toFormat(SD);return new bD(r,n,"timestamp",o)}}}Xn.LiteralTimestamp=CD;class bD extends PQ{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,vD.getMorphicValue)(i,"timestamp"),a=(0,vD.getMorphicValue)(s,"timestamp");if(u&&a)i=u,s=a;else return super.apply(e,n,r)}if(s&&(0,aSe.isTemporalType)(o.type)){const u=o.type;return new cSe.Range(new LQ.ExprTime(u,i.value),new LQ.ExprTime(u,s.value)).apply(e,n,r)}}return super.apply(e,n,r)}}class TD 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,$Q);if(i.isValid)return n.text=n.text+":00:00",r=i.plus({hour:1}).toFormat(SD),new TD(n,r)}}Xn.LiteralHour=TD;class ag 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 RD extends ag{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 RD(n,r)}}Xn.LiteralDay=RD;class OD extends ag{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 OD(n,r)}}}Xn.LiteralWeek=OD;class DD extends ag{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,BQ);if(i.isValid){const s=i.plus({months:1});return n.text=i.toFormat(Fs),r=s.toFormat(Fs),new DD(n,r)}}}Xn.LiteralMonth=DD;class ND extends ag{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 ND(n,r)}}}Xn.LiteralQuarter=ND;class wD extends ag{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,IQ);if(i.isValid){const s=i.plus({year:1});return n.text=i.toFormat(Fs),r=s.toFormat(Fs),new wD(n,r)}}}Xn.LiteralYear=wD;var sv={};Object.defineProperty(sv,"__esModule",{value:!0}),sv.PartialCompare=void 0;const MQ=ut;class xSe extends MQ.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 MQ.ATNodeType.Partial}}sv.PartialCompare=xSe;var Qd={},dSe=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]}),hSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),pSe=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)&&dSe(e,t,n);return hSe(e,t),e};Object.defineProperty(Qd,"__esModule",{value:!0}),Qd.PickWhen=Qd.Pick=void 0;const Gd=pSe(Ht),jQ=Pt,gSe=ut,mSe=Ge;function ov(t,e){return t===void 0||t.type==="null"||t.type==="error"?e:t}class ySe extends gSe.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 x of this.choices){const h=x.when.apply(e,"=",r),p=x.pick?x.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=ov(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=ov(o,c);return Gd.typeEq(f,c,!0)?(s.kids.caseElse=c.value,(0,jQ.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=ov(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=ov(s,o);return Gd.typeEq(u,o,!0)?(n.kids.caseElse=o.value,(0,jQ.computedExprValue)({dataType:u,value:n,from:i})):this.elsePick.loggedErrorExpr("pick-else-type-does-not-match",{elseType:o.type,returnType:u.type})}}Qd.Pick=ySe;class ESe extends mSe.MalloyElement{constructor(e,n){super({when:n}),this.pick=e,this.when=n,this.elementType="caseWhen",this.has({pick:e})}}Qd.PickWhen=ESe;var Wd={},ASe=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}),vSe=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)&&ASe(e,t,n);return _Se(e,t),e};Object.defineProperty(Wd,"__esModule",{value:!0}),Wd.CaseWhen=Wd.Case=void 0;const SSe=Pt,CSe=ut,bSe=Ge,Vd=vSe(Ht);function UQ(t,e){return t===void 0||t.type==="null"||t.type==="error"?e:t}class TSe extends CSe.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=UQ(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=UQ(o,u),r.push(u),n.kids.caseElse=u.value}return(0,SSe.computedExprValue)({value:n,dataType:o?Vd.atomicDef(o):{type:"null"},from:r})}}Wd.Case=TSe;class RSe extends bSe.MalloyElement{constructor(e,n){super({when:e,then:n}),this.when=e,this.then=n,this.elementType="caseWhen"}}Wd.CaseWhen=RSe;var uv={},sf={},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(sf,"__esModule",{value:!0}),sf.RecordLiteral=sf.RecordElement=void 0;const qQ=Qi,wSe=Pt,FSe=ut,LSe=Ge,ISe=NSe(Ht);class BSe extends LSe.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=BSe;class $Se extends FSe.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);qQ.TD.isAtomic(l)?(s.push(l),i.kids[a]=l.value,i.typeDef.fields.push((0,qQ.mkFieldDef)(ISe.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,wSe.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=$Se;var kSe=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]}),PSe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),MSe=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)&&kSe(e,t,n);return PSe(e,t),e};Object.defineProperty(uv,"__esModule",{value:!0}),uv.ArrayLiteral=void 0;const jSe=Pt,USe=ut,HQ=MSe(Ht),qSe=sf;class HSe extends USe.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 qSe.RecordLiteral?a.getNextElement(e,i):a.getExpression(e);if(r.push(l),l.type!=="error"){if(i){if(l.type!=="null"&&!HQ.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=HQ.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,jSe.computedExprValue)({dataType:o,value:u,from:r})}}uv.ArrayLiteral=HSe;var av={};Object.defineProperty(av,"__esModule",{value:!0}),av.Timeframe=void 0;const zSe=We,QSe=Ge;class GSe extends QSe.MalloyElement{constructor(e){super(),this.elementType="timeframe";let n=e.toLowerCase();n.endsWith("s")&&(n=n.slice(0,-1)),this.text=(0,zSe.isTimestampUnit)(n)?n:"second"}}av.Timeframe=GSe;var n0={};Object.defineProperty(n0,"__esModule",{value:!0}),n0.ImportStatement=n0.ImportSelect=n0.ImportSourceName=void 0;const FD=Ge;class WSe extends FD.MalloyElement{constructor(e){super(),this.text=e,this.elementType="importSourceName"}}n0.ImportSourceName=WSe;class VSe extends FD.MalloyElement{constructor(e,n){super(),this.text=e,this.from=n,this.elementType="importName",n&&this.has({from:n})}}n0.ImportSelect=VSe;class YSe extends FD.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.importZone.getEntry(this.fullURL);if(r.status==="present"){const i=n.getChildExports(this.fullURL);if(this.notEmpty())for(const s of this.list){const o=s.from||s;if(e.getEntry(s.text))s.logError("name-conflict-on-selective-import",`Cannot redefine '${s.text}'`);else if(i[o.text]){const u={...i[o.text]};s.from&&(u.as=s.text),e.setEntry(s.text,{entry:u,exported:!1})}else o.logError("selective-import-not-found",`Cannot find '${o.text}', not imported`)}else for(const[s,o]of Object.entries(n.getChildExports(this.fullURL)))e.getEntry(s)?this.logError("name-conflict-on-indiscriminate-import",`Cannot redefine '${s}'`):e.setEntry(s,{entry:o,exported:!1})}else r.status==="error"?this.logError("failed-import",`import failed: '${r.message}'`):this.logError("failed-import",`import failed with status: '${r.status}'`)}}}n0.ImportStatement=YSe;var lg={};Object.defineProperty(lg,"__esModule",{value:!0}),lg.ExtendBlock=void 0;const KSe=Ge,JSe=Tn;class XSe extends KSe.ListOf{constructor(){super(...arguments),this.elementType="extendBlock",this.forceQueryClass=void 0,this.queryRefinementStage=JSe.LegalRefinementStage.Single}queryExecute(e){for(const n of this.list)for(const r of n.list)e.inputFS.extendSource(r)}}lg.ExtendBlock=XSe;var lv={};Object.defineProperty(lv,"__esModule",{value:!0}),lv.Argument=void 0;const ZSe=Ge;class eCe extends ZSe.MalloyElement{constructor(e){super({...e}),this.elementType="Argument",this.id=e.id,this.value=e.value}}lv.Argument=eCe;var cv={};Object.defineProperty(cv,"__esModule",{value:!0}),cv.HasParameter=void 0;const zQ=We,tCe=Ge;class nCe extends tCe.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"}}}cv.HasParameter=nCe;var fv={};Object.defineProperty(fv,"__esModule",{value:!0}),fv.AnonymousQuery=void 0;const rCe=Ge,iCe=mr;class sCe extends rCe.MalloyElement{constructor(e){super(),this.queryExpr=e,this.elementType="anonymousQuery",this.isNoteableObj=!0,this.extendNote=iCe.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)}}fv.AnonymousQuery=sCe;var r0={};Object.defineProperty(r0,"__esModule",{value:!0}),r0.View=void 0;const oCe=Ge;let uCe=class extends oCe.MalloyElement{pipeline(e,n){return this.pipelineComp(e,n).pipeline}};r0.View=uCe;var xv={};Object.defineProperty(xv,"__esModule",{value:!0}),xv.ViewArrow=void 0;const aCe=Er,lCe=r0;class cCe extends lCe.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 aCe.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()}}xv.ViewArrow=cCe;var dv={},cg={};Object.defineProperty(cg,"__esModule",{value:!0}),cg.refine=void 0;const LD=Qi,fCe=it,ID=ql;function xCe(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,LD.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,LD.isQuerySegment)(o)&&(0,LD.isQuerySegment)(s)){const u=[],a=[],l=new Map(s.queryFields.map(c=>[(0,ID.nameFromDef)(c),c]));for(const c of o.queryFields)l.has((0,ID.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(ID.nameFromDef)}`),s.compositeFieldUsage=(0,fCe.mergeCompositeFieldUsage)(s.compositeFieldUsage,o.compositeFieldUsage)}else o.type==="index"&&s.type==="index"&&(s.indexFields=[...o.indexFields,...s.indexFields]);return[s]}cg.refine=xCe,Object.defineProperty(dv,"__esModule",{value:!0}),dv.ViewRefine=void 0;const dCe=Lr,hCe=rs,pCe=cg,gCe=r0;class mCe extends gCe.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,hCe.getFinalStruct)(this.refinement,e.structDef(),i):dCe.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,pCe.refine)(this,n,i[0])}getImplicitName(){return this.base.getImplicitName()}}dv.ViewRefine=mCe;var hv={};Object.defineProperty(hv,"__esModule",{value:!0}),hv.ReferenceView=void 0;const BD=We,QQ=Lr,yCe=rs,ECe=yr,ACe=cg,_Ce=r0;class vCe extends _Ce.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:QQ.ErrorFactory.structDef,outputStruct:QQ.ErrorFactory.structDef,pipeline:[],error:!0}};if(!r.found)return this.reference.logError(r.error.code,r.error.message),i();if(!(r.found instanceof ECe.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,BD.isAtomic)(s)){const o={type:"reduce",queryFields:[this.reference.refToField],compositeFieldUsage:s.compositeFieldUsage},u=this.reference.nameString,a={...(0,BD.sourceBase)(e.structDef()),type:"query_result",name:u,fields:[s]};return{pipeline:[o],name:u,outputStruct:a}}else return(0,BD.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,yCe.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,ACe.refine)(this,n,i):n}getImplicitName(){return this.reference.nameString}}hv.ReferenceView=vCe;var pv={},fg={},gv={},xg={};Object.defineProperty(xg,"__esModule",{value:!0}),xg.Index=void 0;const SCe=Ge,CCe=Tn;let bCe=class extends SCe.MalloyElement{constructor(e){super({fields:e}),this.fields=e,this.elementType="index",this.forceQueryClass=CCe.QueryClass.Index,this.queryRefinementStage=void 0}useWeight(e){this.has({weightBy:e}),this.weightBy=e}};xg.Index=bCe;var dg={};Object.defineProperty(dg,"__esModule",{value:!0}),dg.SampleProperty=void 0;const TCe=Ge,GQ=Tn;class RCe extends TCe.MalloyElement{constructor(e){super(),this.sample=e,this.elementType="sampleProperty",this.queryRefinementStage=GQ.LegalRefinementStage.Tail,this.forceQueryClass=GQ.QueryClass.Index}sampling(){return this.sample}}dg.SampleProperty=RCe;var mv={};Object.defineProperty(mv,"__esModule",{value:!0}),mv.IndexFieldSpace=void 0;const WQ=it,VQ=We,$D=ft,OCe=yr,DCe=fo,NCe=I1,wCe=Er;class FCe extends DCe.QueryOperationSpace{constructor(){super(...arguments),this.segmentType="index"}pushFields(...e){for(const n of e)n instanceof $D.FieldReference?super.pushFields(n):n instanceof $D.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,WQ.emptyCompositeFieldUsage)(),r=(0,WQ.emptyNarrowedCompositeFieldResolution)();const i=[],s=this.inputSpace().structDef();for(const[o,u]of this.entries())if(u instanceof OCe.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 NCe.ReferenceField){const x=u.fieldRef,h=x.getField(this.exprSpace);h.error?x.logError(h.error.code,h.error.message):(i.push(x.refToField),a=h.found.typeDesc().compositeFieldUsage,l=x)}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 wCe.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=$D.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();VQ.TD.isLeafAtomic(c)&&(0,VQ.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)}}mv.IndexFieldSpace=FCe,Object.defineProperty(gv,"__esModule",{value:!0}),gv.IndexBuilder=void 0;const kD=We,LCe=Lr,ICe=du,BCe=xg,$Ce=Kl,kCe=dg,PCe=mv,PD=it;class MCe{constructor(e,n,r,i){this.filters=[],this.alwaysJoins=[],this.type="index",this.resultFS=new PCe.IndexFieldSpace(e,n,r,i),this.inputFS=this.resultFS.inputSpace()}execute(e){e instanceof ICe.Filter?e.queryExecute(this):e instanceof $Ce.Limit?(this.limit&&this.limit.logError("index-limit-already-specified","Ignored, too many limit: statements"),this.limit=e):e instanceof BCe.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 kCe.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,kD.isIndexSegment)(e)&&!(0,kD.isPartialSegment)(e))return this.resultFS.logError("refinement-of-index-segment",`Can't refine index with ${e.type}`),LCe.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,kD.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,PD.emptyCompositeFieldUsage)();return r.compositeFieldUsage=(0,PD.mergeCompositeFieldUsage)(s,this.compositeFieldUsage),r}}gv.IndexBuilder=MCe;var yv={},hg={};Object.defineProperty(hg,"__esModule",{value:!0}),hg.GroupBy=void 0;const jCe=ns,YQ=Tn;class UCe extends jCe.DefinitionList{constructor(){super(...arguments),this.elementType="groupBy",this.queryRefinementStage=YQ.LegalRefinementStage.Single,this.forceQueryClass=YQ.QueryClass.Grouping}}hg.GroupBy=UCe;var Ev={};Object.defineProperty(Ev,"__esModule",{value:!0}),Ev.ProjectFieldSpace=void 0;const Av=We,qCe=fo;class HCe extends qCe.QuerySpace{constructor(){super(...arguments),this.segmentType="project"}canContain(e){return e===void 0||!Av.TD.isAtomic(e)||(0,Av.expressionIsAggregate)(e.expressionType)?!1:(0,Av.expressionInvolvesAggregate)(e.expressionType)&&(0,Av.expressionIsAnalytic)(e.expressionType)?(this.logError("aggregate-analytic-in-select","Cannot add aggregate analyics to select"),!1):!0}}Ev.ProjectFieldSpace=HCe;var i0={},of={};Object.defineProperty(of,"__esModule",{value:!0}),of.Ordering=of.OrderBy=void 0;const zCe=We,KQ=Jl,JQ=Ge,QCe=Tn;class GCe extends JQ.MalloyElement{constructor(e,n){super(),this.field=e,this.dir=n,this.elementType="orderBy",e instanceof KQ.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 KQ.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,zCe.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=GCe;class WCe extends JQ.ListOf{constructor(e){super(e),this.elementType="ordering",this.queryRefinementStage=QCe.LegalRefinementStage.Tail,this.forceQueryClass=void 0}getOrderBy(e){return this.list.map(n=>n.getOrderBy(e))}}of.Ordering=WCe,Object.defineProperty(i0,"__esModule",{value:!0}),i0.ReduceBuilder=i0.QuerySegmentBuilder=void 0;const mo=We,VCe=Lr,YCe=Jl,KCe=Kl,JCe=of,XCe=fo,ZCe=ns,MD=it;function XQ(t){return t.type==="fieldref"?t.path[t.path.length-1]:t.name}class ZQ{constructor(){this.alwaysJoins=[],this.filters=[]}execute(e){if(e.queryExecute){e.queryExecute(this);return}e instanceof ZCe.DefinitionList?this.resultFS.pushFields(...e.list):e instanceof KCe.Limit?this.limit?e.logError("limit-already-specified","Query operation already limited"):this.limit=e.limit:e instanceof JCe.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,mo.isQuerySegment)(e)&&(r=e.compositeFieldUsage)!==null&&r!==void 0?r:(0,MD.emptyCompositeFieldUsage)();n.compositeFieldUsage=(0,MD.mergeCompositeFieldUsage)(s,this.compositeFieldUsage)}}i0.QuerySegmentBuilder=ZQ;class ebe extends ZQ{constructor(e,n,r,i){super(),this.type="grouping",this.resultFS=new XCe.ReduceFieldSpace(e,n,r,i),this.inputFS=this.resultFS.inputSpace()}finalize(e){let n;if(e)if((0,mo.isReduceSegment)(e)||(0,mo.isPartialSegment)(e))n=e;else return this.resultFS.logError("incompatible-segment-for-reduce-refinement",`Can't refine reduce with ${e.type}`),VCe.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=XQ(s)}}if(r.orderBy===void 0||r.defaultOrderBy){let i;for(const s of r.queryFields){let o=!1,u=!1,a;const l=XQ(s);if(s.type==="fieldref"){const c=s.path.map(x=>new YCe.FieldName(x)),f=this.inputFS.lookup(c).found;if(f){const x=f.typeDesc();a=x.type,o=(0,mo.expressionIsAggregate)(x.expressionType),u=(0,mo.expressionIsAnalytic)(x.expressionType)}else continue}else a=s.type,o=(0,mo.hasExpression)(s)&&(0,mo.expressionIsAggregate)(s.expressionType),u=(0,mo.hasExpression)(s)&&(0,mo.expressionIsAnalytic)(s.expressionType);if((0,mo.isTemporalType)(a)||o){r.defaultOrderBy=!0,r.orderBy=[{field:l,dir:"desc"}],i=void 0;break}(0,mo.canOrderBy)(a)&&!u&&!i&&(i=l)}i&&(r.defaultOrderBy=!0,r.orderBy=[{field:i,dir:"asc"}])}return r}}i0.ReduceBuilder=ebe,Object.defineProperty(yv,"__esModule",{value:!0}),yv.ProjectBuilder=void 0;const eG=We,tbe=Lr,nbe=hg,rbe=Ev,ibe=i0;class sbe extends ibe.QuerySegmentBuilder{constructor(e,n,r,i){super(),this.type="project",this.resultFS=new rbe.ProjectFieldSpace(e,n,r,i),this.inputFS=this.resultFS.inputSpace()}execute(e){e.elementType==="having"||e instanceof nbe.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,eG.isProjectSegment)(e)||(0,eG.isPartialSegment)(e))n=e;else return this.resultFS.logError("incompatible-segment-for-select-refinement",`Can't refine select with ${e.type}`),tbe.ErrorFactory.projectSegment;const r=this.resultFS.getQuerySegment(n);return this.refineFrom(n,r),r}}yv.ProjectBuilder=sbe;var _v={};Object.defineProperty(_v,"__esModule",{value:!0}),_v.PartialBuilder=void 0;const obe=Qi,ube=i0;class abe extends ube.ReduceBuilder{finalize(e){const n=super.finalize(e);if((0,obe.isQuerySegment)(n))return{...n,type:"partial"};throw new Error(`Partial Builder cannot finalize from ${n.type}`)}}_v.PartialBuilder=abe,Object.defineProperty(fg,"__esModule",{value:!0}),fg.QOpDesc=void 0;const lbe=gv,cbe=yv,fbe=i0,xbe=Ge,dbe=rs,hbe=Er,uf=Tn,pbe=_v;class gbe extends xbe.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 fbe.ReduceBuilder(e,this.refineThis,n,r);case uf.QueryClass.Project:return new cbe.ProjectBuilder(e,this.refineThis,n,r);case uf.QueryClass.Index:return new lbe.IndexBuilder(e,this.refineThis,n,r);case void 0:return new pbe.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 hbe.StaticSourceSpace((0,dbe.opOutputStruct)(this,e.structDef(),i))}}}fg.QOpDesc=gbe,Object.defineProperty(pv,"__esModule",{value:!0}),pv.QOpDescView=void 0;const mbe=We,ybe=Er,tG=fg,Ebe=rs,jD=Tn,Abe=r0;class _be extends Abe.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,mbe.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 tG.QOpDesc([]),o=new tG.QOpDesc([]);for(const u of this.operation.list)switch(u.queryRefinementStage){case jD.LegalRefinementStage.Head:s.push(u);break;case jD.LegalRefinementStage.Single:u.logError("illegal-multistage-refinement-operation","Illegal in refinement of a query with more than one stage");break;case jD.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,Ebe.getFinalStruct)(this,e.structDef(),i.slice(-1));i[u]=this.getOp(new ybe.StaticSourceSpace(a),void 0,o,i[u])}return i}getImplicitName(){}}pv.QOpDescView=_be;var pn={},vbe=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]}),Sbe=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Cbe=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)&&vbe(e,t,n);return Sbe(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 UD=We,nG=Cbe(Ht),bbe=Nd,Tbe=Ge,af=kn,Rbe=mr,Obe=yr;class s0 extends Tbe.MalloyElement{constructor(e,n,r){super({expr:e}),this.expr=e,this.defineName=n,this.exprSrc=r,this.isNoteableObj=!0,this.extendNote=Rbe.extendNoteMethod}getName(){return this.defineName}fieldDef(e,n){return this.queryFieldDef(new qD(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,UD.isAtomicFieldType)(r.type)&&r.type!=="error"){this.typecheckExprValue(r);const o=(0,UD.mkFieldDef)(nG.atomicDef(r),n);return(o.type==="date"||o.type==="timestamp")&&(0,bbe.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 qD&&e.foundCircle)&&r.type!=="error"){const o=nG.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 rG(e,this))}}pn.AtomicFieldDeclaration=s0;class Dbe extends s0{constructor(){super(...arguments),this.elementType="calculateFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckCalculate)(e,this)}executesInOutputSpace(){return!0}}pn.CalculateFieldDeclaration=Dbe;class Nbe extends s0{constructor(){super(...arguments),this.elementType="aggregateFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckAggregate)(e,this)}}pn.AggregateFieldDeclaration=Nbe;class wbe extends s0{constructor(){super(...arguments),this.elementType="groupByFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckGroupBy)(e,this)}}pn.GroupByFieldDeclaration=wbe;class Fbe extends s0{constructor(){super(...arguments),this.elementType="projectFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckProject)(e,this)}}pn.ProjectFieldDeclaration=Fbe;class Lbe extends s0{constructor(){super(...arguments),this.elementType="declareFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckDeclare)(e,this)}}pn.DeclareFieldDeclaration=Lbe;class Ibe extends s0{constructor(){super(...arguments),this.elementType="measureFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckMeasure)(e,this)}}pn.MeasureFieldDeclaration=Ibe;class Bbe extends s0{constructor(){super(...arguments),this.elementType="dimensionFieldDeclaration"}typecheckExprValue(e){(0,af.typecheckDimension)(e,this)}}pn.DimensionFieldDeclaration=Bbe;class qD{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=qD;class rG extends Obe.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,UD.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=rG;var vv={};Object.defineProperty(vv,"__esModule",{value:!0}),vv.Aggregate=void 0;const $be=ns,iG=Tn;let kbe=class extends $be.DefinitionList{constructor(){super(...arguments),this.elementType="aggregateList",this.queryRefinementStage=iG.LegalRefinementStage.Single,this.forceQueryClass=iG.QueryClass.Grouping}};vv.Aggregate=kbe;var Sv={};Object.defineProperty(Sv,"__esModule",{value:!0}),Sv.Calculate=void 0;const Pbe=ns,Mbe=Tn;class jbe extends Pbe.DefinitionList{constructor(){super(...arguments),this.elementType="calculate",this.forceQueryClass=void 0,this.needsExplicitQueryClass=!0,this.queryRefinementStage=Mbe.LegalRefinementStage.Single}}Sv.Calculate=jbe;var pg={};Object.defineProperty(pg,"__esModule",{value:!0}),pg.Dimensions=void 0;const Ube=Hl;class qbe extends Ube.DeclareFields{constructor(){super(...arguments),this.elementType="dimensionList"}}pg.Dimensions=qbe;var gg={};Object.defineProperty(gg,"__esModule",{value:!0}),gg.Measures=void 0;const Hbe=Hl;class zbe extends Hbe.DeclareFields{constructor(){super(...arguments),this.elementType="measureList"}}gg.Measures=zbe;var Cv={};Object.defineProperty(Cv,"__esModule",{value:!0}),Cv.Nests=void 0;const Qbe=ns,sG=Tn;class Gbe extends Qbe.DefinitionList{constructor(e){super(e),this.elementType="nestedQueries",this.queryRefinementStage=sG.LegalRefinementStage.Single,this.forceQueryClass=sG.QueryClass.Grouping}}Cv.Nests=Gbe;var bv={};Object.defineProperty(bv,"__esModule",{value:!0}),bv.ProjectStatement=void 0;const Wbe=ns,oG=Tn;class Vbe extends Wbe.DefinitionList{constructor(){super(...arguments),this.elementType="projectStatement",this.forceQueryClass=oG.QueryClass.Project,this.queryRefinementStage=oG.LegalRefinementStage.Single}queryExecute(e){e.type==="project"&&e.resultFS.pushFields(...this.list)}}bv.ProjectStatement=Vbe;var o0={},Ra={};Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.findReferences=Ra.deprecatedParseTableURI=Ra.constructTableKey=void 0;const Ybe=Cl,HD=un;function zD(t){const e=(0,HD.getStringIfShort)(t);if(e)return e;const n=[],r=t.string().sqlString();if(r){for(const i of(0,HD.getStringParts)(r))typeof i=="string"&&n.push(i);return n.join("")}return""}class Kbe{constructor(e,n){this.trans=e,this.tokens=n,this.needTables={},this.needImports={}}registerTableReference(e,n,r){const i=uG(e,n);this.needTables[i]||(this.needTables[i]={connectionName:e,tablePath:n,firstReference:r})}enterTableMethod(e){const n=(0,HD.getId)(e.connectionId()),r=zD(e.tablePath()),i=this.trans.rangeFromContext(e);this.registerTableReference(n,r,i)}enterTableFunction(e){const n=zD(e.tableURI()),{connectionName:r,tablePath:i}=aG(n),s=this.trans.rangeFromContext(e);this.registerTableReference(r,i,s)}enterImportURL(e){const n=zD(e);this.needImports[n]||(this.needImports[n]=this.trans.rangeFromContext(e))}}function uG(t,e){return t===void 0?e:`${t}:${e}`}Ra.constructTableKey=uG;function aG(t){const e=t.match(/^([^:]*):(.*)$/);if(e){const[,n,r]=e;return{connectionName:n,tablePath:r}}else return{tablePath:t}}Ra.deprecatedParseTableURI=aG;function Jbe(t,e,n){const r=new Kbe(t,e),i=r;return Ybe.ParseTreeWalker.DEFAULT.walk(i,n),{tables:r.needTables,urls:r.needImports}}Ra.findReferences=Jbe,Object.defineProperty(o0,"__esModule",{value:!0}),o0.TableFunctionSource=o0.TableMethodSource=o0.TableSource=void 0;const lG=Ra,Xbe=Os,cG=Lr;class QD extends Xbe.Source{getSourceDef(){var e,n,r;const i=this.getTableInfo();if(i===void 0)return cG.ErrorFactory.structDef;const{tablePath:s,connectionName:o}=i,u=(0,lG.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),cG.ErrorFactory.structDef}}o0.TableSource=QD;class Zbe extends QD{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=Zbe;class eTe extends QD{constructor(e){super(),this.tableURI=e,this.elementType="tableFunctionSource"}getTableInfo(){return(0,lG.deprecatedParseTableURI)(this.tableURI)}}o0.TableFunctionSource=eTe;var Tv={};Object.defineProperty(Tv,"__esModule",{value:!0}),Tv.SQLString=void 0;const tTe=Ge,fG=lo;class nTe extends tTe.MalloyElement{constructor(){super(...arguments),this.elementType="sqlString",this.elements=[],this.containsQueries=!1}complete(){this.has({queries:this.elements.filter(rTe)})}push(e){typeof e=="string"?e.length>0&&this.elements.push(e):e instanceof fG.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}}Tv.SQLString=nTe;function rTe(t){return t instanceof fG.SourceQueryElement}var Rv={};Object.defineProperty(Rv,"__esModule",{value:!0}),Rv.SourceDesc=void 0;const iTe=Ge;class sTe extends iTe.ListOf{constructor(){super(...arguments),this.elementType="sourceDescription"}}Rv.SourceDesc=sTe;var Ov={};Object.defineProperty(Ov,"__esModule",{value:!0}),Ov.isSourceProperty=void 0;const oTe=du,uTe=Hl,aTe=Sd,lTe=Ql,cTe=Cd,fTe=bd,xTe=Td,dTe=zl,hTe=bi;function pTe(t){return t instanceof oTe.Filter||t instanceof hTe.JoinStatement||t instanceof uTe.DeclareFields||t instanceof aTe.FieldListEdit||t instanceof lTe.Renames||t instanceof cTe.PrimaryKey||t instanceof dTe.ObjectAnnotation||t instanceof fTe.Views||t instanceof xTe.TimezoneStatement}Ov.isSourceProperty=pTe;var Dv={};Object.defineProperty(Dv,"__esModule",{value:!0}),Dv.isFieldCollectionMember=void 0;const gTe=pn,xG=ft;function mTe(t){return t instanceof xG.FieldReference||t instanceof xG.WildcardFieldReference||t instanceof gTe.AtomicFieldDeclaration}Dv.isFieldCollectionMember=mTe;var Nv={};Object.defineProperty(Nv,"__esModule",{value:!0}),Nv.isQueryElement=void 0;const yTe=Rd,ETe=Od,ATe=U1,_Te=q1;function vTe(t){return t instanceof yTe.QueryArrow||t instanceof ETe.QueryRefine||t instanceof ATe.QueryReference||t instanceof _Te.QueryRaw}Nv.isQueryElement=vTe;var dG={};Object.defineProperty(dG,"__esModule",{value:!0});var wv={};Object.defineProperty(wv,"__esModule",{value:!0}),wv.isQueryProperty=void 0;function STe(t){return"queryRefinementStage"in t&&"forceQueryClass"in t}wv.isQueryProperty=STe;var Fv={};Object.defineProperty(Fv,"__esModule",{value:!0}),Fv.isQueryExtendProperty=void 0;const CTe=pg,bTe=bi,TTe=gg;function RTe(t){return t instanceof CTe.Dimensions||t instanceof TTe.Measures||t instanceof bTe.JoinStatement}Fv.isQueryExtendProperty=RTe;var Lv={};Object.defineProperty(Lv,"__esModule",{value:!0}),Lv.isFieldPropStatement=void 0;const OTe=Yl,DTe=du,NTe=Kl,wTe=Bd;function FTe(t){return t instanceof DTe.Filter||t instanceof NTe.Limit||t instanceof wTe.PartitionBy||t instanceof OTe.FunctionOrdering}Lv.isFieldPropStatement=FTe,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(T1,t),n(yd,t),n(Ed,t),n(Os,t),n(D1,t),n(lo,t),n(e_,t),n(t_,t),n(i_,t),n($1,t),n(u_,t),n(a_,t),n(ao,t),n(Sd,t),n(Cd,t),n(Ql,t),n(bd,t),n(Td,t),n(c_,t),n(Fd,t),n(x_,t),n(Yl,t),n(d_,t),n(Sa,t),n(h_,t),n(Id,t),n(p_,t),n(g_,t),n(m_,t),n(va,t),n(y_,t),n(E_,t),n(__,t),n(W1,t),n(Q1,t),n(Kc,t),n(S_,t),n(C_,t),n(T_,t),n(O_,t),n(D_,t),n(N_,t),n(w_,t),n(F_,t),n(L_,t),n(I_,t),n(B_,t),n($_,t),n(k_,t),n(P_,t),n(j_,t),n(H_,t),n(Xn,t),n(sv,t),n(Bd,t),n(Qd,t),n(Wd,t),n(uv,t),n(sf,t),n(Vl,t),n(av,t),n(V1,t),n(n0,t),n(lg,t),n(lv,t),n(cv,t),n(fv,t),n(Od,t),n(Rd,t),n(r0,t),n(xv,t),n(dv,t),n(hv,t),n(pv,t),n(pn,t),n(ft,t),n(vv,t),n(Sv,t),n(Hl,t),n(pg,t),n(lg,t),n(du,t),n(hg,t),n(xg,t),n(bi,t),n(R1,t),n(Kl,t),n(gg,t),n(T1,t),n(Cv,t),n(of,t),n(bv,t),n(fg,t),n(dg,t),n(Dd,t),n(Yc,t),n(H1,t),n(o0,t),n(Tv,t),n(zl,t),n(co,t),n(Rv,t),n(Ov,t),n(ut,t),n(Dv,t),n(Jl,t),n(Ge,t),n(Nv,t),n(dG,t),n(wv,t),n(Fv,t),n(Lv,t)}(GA);var Iv={},Yd={};Object.defineProperty(Yd,"__esModule",{value:!0}),Yd.ConstantExpression=Yd.ConstantFieldSpace=void 0;const LTe=ut;class hG{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=hG;class ITe extends LTe.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 hG),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=ITe;var BTe=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]}),$Te=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),kTe=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)&&BTe(e,t,n);return $Te(e,t),e};Object.defineProperty(Iv,"__esModule",{value:!0}),Iv.MalloyToAST=void 0;const pG=UE,PTe=D2,ee=kTe(GA),GD=WA,gG=Wn,MTe=GA,Ln=un,WD=We,jTe=Js,UTe=Yd,qTe=cu;class mG extends ee.SourceQueryElement{constructor(){super(...arguments),this.elementType="parseErrorSourceQuery"}}class VD extends ee.MalloyElement{constructor(e){super(),this.elementType="ignoredByParser",this.malloySrc=e}}const HTe=["##! m4warnings=error"];class zTe extends PTe.AbstractParseTreeVisitor{constructor(e,n,r){super(),this.parseInfo=e,this.msgLog=n,this.compilerFlags=r;for(const i of HTe){const s=jTe.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,GD.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 gG.Interval(e.start.startIndex,e.stop?e.stop.stopIndex:e.start.startIndex))}contextError(e,n,r,i){this.msgLog.log((0,GD.makeLogMessage)(n,r,{at:this.getLocation(e),...i}))}warnWithReplacement(e,n,r,i){this.msgLog.log((0,GD.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 VD||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 gG.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 pG.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 pG.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 UTe.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,WD.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)}visitPartialAllowedFieldExpr(e){var n;const r=this.getFieldExpr(e.fieldExpr()),i=(n=e.compareOp())===null||n===void 0?void 0:n.text;if(i){if(ee.isComparison(i))return this.astAt(new ee.PartialCompare(i,r),e);throw this.internalError(e,`partial comparison '${i}' not recognized`)}return r}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))return this.astAt(new ee.ExprEquality(r,n,i),e);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,WD.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,WD.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 VD(e.text)}visitIgnoredModelAnnotations(e){return this.contextError(e,"misplaced-model-annotation","Model annotations not allowed at this scope"),new VD(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 mG)}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(qTe.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 x=this.astAt(new ee.IncludeListItem(f,i),e);return x.extendNote({notes:l}),x}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 MTe.TableSource){const r=new ee.SQSource(n);return this.astAt(r,e)}return new mG}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)}visitExprWarnNullCmp(e){let n="=";const r=e.fieldExpr(),i=this.parseInfo.rangeFromContext(e);e.NOT()?(n="!=",this.warnWithReplacement("sql-is-not-null","Use '!= NULL' to check for NULL instead of 'IS NOT NULL'",i,`${this.getSourceCode(r)} != null`)):this.warnWithReplacement("sql-is-null","Use '= NULL' to check for NULL instead of 'IS NULL'",i,`${this.getSourceCode(r)} = null`);const s=new ee.ExprNULL;return this.astAt(new ee.ExprCompare(this.getFieldExpr(r),n,s),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}}Iv.MalloyToAST=zTe;var Bv={};Object.defineProperty(Bv,"__esModule",{value:!0}),Bv.Zone=void 0;class QTe{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})}}Bv.Zone=QTe;var $v={};Object.defineProperty($v,"__esModule",{value:!0}),$v.walkForDocumentSymbols=void 0;const GTe=Cl,WTe=un;class VTe{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,WTe.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 YTe(t,e,n){const r=new VTe(t,e,[],[]),i=r;return GTe.ParseTreeWalker.DEFAULT.walk(i,n),r.symbols}$v.walkForDocumentSymbols=YTe;var kv={};Object.defineProperty(kv,"__esModule",{value:!0}),kv.walkForDocumentCompletions=void 0;const KTe=Cl,JTe=["dimension","measure","join_one","join_many","join_cross","where","primary_key","rename","accept","except","query","declare"],XTe=["group_by","project","index","aggregate","top","limit","order_by","where","having","nest","declare"],ZTe=["source","explore","query","sql"];class e6e{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 JTe)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 XTe)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 ZTe)this.completions.push({type:"model_property",text:`${r}: `})}}}function t6e(t,e,n){const r=new e6e(t,[],n),i=r;return KTe.ParseTreeWalker.DEFAULT.walk(i,e),r.completions}kv.walkForDocumentCompletions=t6e;var Pv={};Object.defineProperty(Pv,"__esModule",{value:!0}),Pv.walkForDocumentHelpContext=void 0;const n6e=BT;class r6e extends n6e.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 i6e(t,e){return new r6e(e).visit(t)}Pv.walkForDocumentHelpContext=i6e;var Mv={};Object.defineProperty(Mv,"__esModule",{value:!0}),Mv.ReferenceList=void 0;const s6e=cu;class o6e{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,s6e.locationContainsPosition)(r.location,e))return r}}Mv.ReferenceList=o6e;var jv={};Object.defineProperty(jv,"__esModule",{value:!0}),jv.isNeedResponse=void 0;function u6e(t){return!!t&&(t.tables||t.urls||t.compileSQL)!==void 0}jv.isNeedResponse=u6e;var Uv={};Object.defineProperty(Uv,"__esModule",{value:!0}),Uv.walkForModelAnnotation=void 0;const a6e=Cl;class l6e{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 c6e(t,e,n){const r=new l6e(t,e,n),i=r;return a6e.ParseTreeWalker.DEFAULT.walk(i,n.root),r.annotation}Uv.walkForModelAnnotation=c6e;var qv={};Object.defineProperty(qv,"__esModule",{value:!0}),qv.walkForTablePath=void 0;const yG=un,f6e=Cl;class x6e{constructor(e,n){this.translator=e,this.tokens=n,this.pathInfos=[]}enterTableMethod(e){const n=(0,yG.getId)(e.connectionId()),[r,i]=(0,yG.getPlainString)(e.tablePath(),!0);r!==void 0&&this.pathInfos.push({connectionId:n,tablePath:r,range:this.translator.rangeFromContext(e)})}}function d6e(t,e,n){const r=new x6e(t,e),i=r;return f6e.ParseTreeWalker.DEFAULT.walk(i,n.root),r.pathInfos}qv.walkForTablePath=d6e;var h6e=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]}),p6e=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),g6e=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)&&h6e(e,t,n);return p6e(e,t),e};Object.defineProperty(iu,"__esModule",{value:!0}),iu.MalloyParserErrorHandler=iu.MalloyTranslator=iu.MalloyChildTranslator=iu.MalloyTranslation=void 0;const EG=UE,m6e=We,y6e=nA,E6e=D,AG=g6e(GA),A6e=Iv,YD=WA,_6e=Ra,KD=Bv,v6e=$v,S6e=kv,C6e=Pv,b6e=Mv,Hv=jv,T6e=cu,_G=Js,R6e=Uv,O6e=qv;class D6e extends y6e.MalloyLexer{popMode(){return this._modeStack.isEmpty?this._mode:super.popMode()}}class N6e{step(e){if(this.response)return this.response;if(e.urlIsFullPath===void 0)try{const s=new URL(e.sourceURL);e.urlIsFullPath=!0}catch(s){const o=s instanceof Error?s.message:"";e.urlIsFullPath=!1,e.root.logError("failed-to-compute-absolute-import-url",`Could not compute full path URL: ${o}`)}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===""?`