@malloydata/render 0.0.224-dev241217171758 → 0.0.224-dev241217194410

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